xiangpei
2024-08-02 e95640de95304ca7a300a0f48e255b4c6e594e1a
Merge remote-tracking branch 'origin/master'
9个文件已修改
2个文件已添加
269 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/query/HomeQuery.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/HomeQuery.java
New file
@@ -0,0 +1,31 @@
package com.ycl.platform.domain.query;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * @author gonghl
 * @since 2024/8/1 下午 6:08
 */
@Data
public class HomeQuery {
    /**
     * 单位id
     */
    private Integer unitId;
    /**
     * 日期范围
     */
    private List<Date> dateRange;
    /**
     * 日期类型
     */
    private String dateType;
}
ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java
New file
@@ -0,0 +1,42 @@
package com.ycl.platform.controller;
import com.ycl.platform.domain.query.HomeQuery;
import com.ycl.platform.service.ITMonitorService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.platform.service.YwUnitService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import pojo.AjaxResult;
/**
 * @author gonghl
 * @since 2024/8/1 下午 5:41
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/home")
public class HomeController {
    private final YwUnitService ywUnitService;
    private final ITMonitorService tMonitorService;
    private final WorkOrderService workOrderService;
    @GetMapping("/ywUnitList")
    public AjaxResult ywUnitList() {
        return AjaxResult.success(ywUnitService.all());
    }
    @GetMapping("/monitor")
    public AjaxResult monitor(HomeQuery monitorQuery) {
        return AjaxResult.success(tMonitorService.home(monitorQuery));
    }
    @GetMapping("/workOrder")
    public AjaxResult workOrder(HomeQuery monitorQuery) {
        return AjaxResult.success(workOrderService.home(monitorQuery));
    }
}
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.query.HomeQuery;
import com.ycl.platform.domain.vo.TMonitorVO;
import java.util.List;
@@ -70,6 +71,11 @@
     */
    Map<String, String> getVideoCount(TMonitor tMonitor);
    /**
     * 获取恢复异常设备
     * @param time 时间
     * @return 数据
     */
    Map<String, String> recoveryException(String time);
    /**
@@ -77,4 +83,11 @@
     * @return 设备
     */
    List<TMonitorVO> selectRecoveryMonitor(String time);
    /**
     * 首页折线图
     * @param monitorQuery 查询条件
     * @return 数据
     */
    List<Map<String, Object>> home(HomeQuery monitorQuery);
}
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
@@ -1,20 +1,20 @@
package com.ycl.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.platform.domain.entity.WorkOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
import com.ycl.platform.domain.query.HomeQuery;
import com.ycl.platform.domain.query.ScreenQuery;
import com.ycl.platform.domain.query.WorkOrderQuery;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.form.WorkOrderForm;
import java.util.List;
import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
import com.ycl.platform.domain.vo.YwPointJobVO;
import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * 工单 Mapper 接口
@@ -43,4 +43,11 @@
     * @return
     */
    ScreenWorkOrderVO screenWorkOrder(@Param("query") ScreenQuery query);
    /**
     * 首页统计数据
     * @param monitorQuery 查询条件
     * @return 数据
     */
    List<Map<String, Object>> home(HomeQuery monitorQuery);
}
ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.query.HomeQuery;
import com.ycl.platform.domain.vo.TMonitorVO;
import java.util.List;
@@ -71,5 +72,16 @@
     */
    Map<String, String> getVideoCount(TMonitor tMonitor);
    /**
     * 获取异常恢复视频设备统计数
     * @return 数据
     */
    Map<String, String> recoveryException();
    /**
     * 获取首页设备折线图
     * @param monitorQuery 查询条件
     * @return 数据
     */
    Map<String, Object> home(HomeQuery monitorQuery);
}
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -4,11 +4,13 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
import com.ycl.platform.domain.query.HomeQuery;
import com.ycl.platform.domain.query.ScreenQuery;
import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
import com.ycl.system.Result;
import com.ycl.platform.domain.query.WorkOrderQuery;
import java.util.List;
import java.util.Map;
/**
 * 工单 服务类
@@ -131,7 +133,7 @@
    /**
     * 批量下发
     * @param ids id
     * @param query 条件
     * @return 结果
     */
    Result selectedIdsDistribute(DistributeWorkOrderQuery query);
@@ -142,4 +144,11 @@
     * @return
     */
    Result screenWorkOrder(ScreenQuery query);
    /**
     * 首页折线图
     * @param monitorQuery 查询条件
     * @return 数据
     */
    Map<String, Object> home(HomeQuery monitorQuery);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -1,6 +1,7 @@
package com.ycl.platform.service.impl;
import annotation.DataScope;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.platform.domain.dto.CheckScoreDTO;
import com.ycl.platform.domain.dto.CheckScoreIndexDTO;
@@ -133,8 +134,26 @@
        // 获取数据日期时间
        Calendar calendar = Calendar.getInstance();
        getCheckScore(checkScore, calendar);
        // 一号查询之前的数据
        if (LocalDateTime.now().getDayOfMonth() == 1) { calendar.add(Calendar.DAY_OF_MONTH, -1); }
        List<CheckScore> checkScores = scoreMapper.selectCheckScoreMap(checkScore);
        // 如果数据为空,则查询之前的数据
        if (checkScores.isEmpty()) {
            CheckScore one = new LambdaQueryChainWrapper<>(baseMapper).select(CheckScore::getCreateTime).last("order by create_time desc limit 1").one();
            if (Objects.nonNull(one)) {
                calendar.setTime(one.getCreateTime());
                getCheckScore(checkScore, calendar);
                checkScores = scoreMapper.selectCheckScoreMap(checkScore);
            }
        }
        return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
    }
    private void getCheckScore(CheckScore checkScore, Calendar calendar)
    {
        // 0 省厅月度 1 市局月度 2 省厅季度 3 市局季度
        switch (checkScore.getExamineTag()) {
            case 0, 1:
@@ -148,7 +167,6 @@
                checkScore.setExamineTag(checkScore.getExamineTag() == 2 ? 0 : 1);
                break;
        }
        return scoreMapper.selectCheckScoreMap(checkScore).stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
    }
    /**
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -3,14 +3,17 @@
import annotation.DataScope;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.query.HomeQuery;
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.mapper.TMonitorMapper;
import com.ycl.platform.service.ITMonitorService;
import com.ycl.system.service.ISysConfigService;
import com.ycl.utils.StringUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -122,4 +125,22 @@
        String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time");
        return tMonitorMapper.recoveryException(time);
    }
    @Override
    public Map<String, Object> home(HomeQuery monitorQuery) {
        Map<String, Object> dataMap = new HashMap<>();
        Map<String, Object> monthMap1 = new HashMap<>();
        Map<String, Object> monthMap2 = new HashMap<>();
        List<Map<String, Object>> home = baseMapper.home(monitorQuery);
        if (ObjectUtils.isNotEmpty(home)) {
            for (Map<String, Object> map : home) {
                monthMap1.put(map.get("months").toString(), map.get("num1"));
                monthMap2.put(map.get("months").toString(), map.get("num2"));
            }
            dataMap.put("name", home.get(0).get("name"));
            dataMap.put("state", monthMap1);
            dataMap.put("state2", monthMap2);
        }
        return dataMap;
    }
}
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -9,13 +9,17 @@
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
import com.ycl.platform.domain.query.HomeQuery;
import com.ycl.platform.domain.query.ScreenQuery;
import com.ycl.platform.domain.query.WorkOrderQuery;
import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
import com.ycl.platform.mapper.*;
import com.ycl.platform.mapper.WorkOrderAuditingRecordMapper;
import com.ycl.platform.mapper.WorkOrderDistributeRecordMapper;
import com.ycl.platform.mapper.WorkOrderMapper;
import com.ycl.platform.mapper.WorkOrderYwConditionRecordMapper;
import com.ycl.platform.service.NotifyService;
import com.ycl.platform.service.WorkOrderAuditingRecordService;
import com.ycl.platform.service.WorkOrderService;
@@ -31,8 +35,8 @@
import enumeration.general.UrgentLevelEnum;
import enumeration.general.WorkOrderDistributeWayEnum;
import enumeration.general.WorkOrderStatusEnum;
import enumeration.general.*;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -42,9 +46,6 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
@@ -428,4 +429,27 @@
        ScreenWorkOrderVO screen = baseMapper.screenWorkOrder(query);
        return Result.ok().data(screen);
    }
    @Override
    public Map<String, Object> home(HomeQuery monitorQuery) {
        Map<String, Object> dataMap = new HashMap<>();
        Map<String, Object> data1 = new HashMap<>();
        Map<String, Object> data2 = new HashMap<>();
        Map<String, Object> data3 = new HashMap<>();
        List<Map<String, Object>> home = baseMapper.home(monitorQuery);
        if (ObjectUtils.isNotEmpty(home)) {
            for (Map<String, Object> map : home) {
                if (Objects.nonNull(map.get("dateType")) && StringUtils.hasText(map.get("dateType").toString())) {
                    data1.put(map.get("dateType").toString(), map.get("num1"));
                    data2.put(map.get("dateType").toString(), map.get("num2"));
                    data3.put(map.get("dateType").toString(), map.get("num3"));
                }
            }
            dataMap.put("name", home.get(0).get("name"));
        }
        dataMap.put("complete", data1);
        dataMap.put("waiting", data2);
        dataMap.put("pending", data3);
        return dataMap;
    }
}
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -243,4 +243,23 @@
        ]]>
    </select>
    <select id="home" resultType="java.util.Map">
        SELECT
            u.unit_name AS name,
            CONCAT(MONTH(w.create_time), '月') AS months,
            COUNT(w.id) AS num1,
            COUNT(m.id) - COUNT(w.id) AS num2
        FROM
            t_monitor m
                LEFT JOIN t_yw_point p ON m.serial_number = p.serial_number
                LEFT JOIN t_yw_unit u ON p.unit_id = u.id
                LEFT JOIN t_work_order w ON p.id = w.point_id
        WHERE u.id = #{unitId} AND MONTH(w.create_time) IS NOT NULL
          <if test="dateRange != null and dateRange.size > 0">
            AND DATE_FORMAT(w.create_time, '%Y-%m') BETWEEN #{dateRange[0]} AND #{dateRange[1]}
          </if>
        GROUP BY months
        ORDER BY months
    </select>
</mapper>
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -90,4 +90,53 @@
            t_work_order
    </select>
    <select id="home" resultType="java.util.Map">
        <if test="dateType == 'month'">
            -- 月工单数
            SELECT
                u.unit_name AS name,
                CONCAT(MONTH(w.create_time), '月') AS dateType,
                COUNT(IF(status = 'AUDITING_SUCCESS', 1, NULL)) AS num1,
                COUNT(IF(status = 'DISTRIBUTED', 1, NULL)) AS num2,
                COUNT(IF(status = 'YW_HANDLE', 1, NULL)) AS num3
            FROM t_work_order w
            LEFT JOIN t_yw_unit u ON w.unit_id = u.id
            WHERE DATE_FORMAT(w.create_time, '%Y') = DATE_FORMAT(NOW(), '%Y')
                AND w.deleted = 0 AND unit_id = #{unitId}
            GROUP BY dateType
        </if>
        <if test="dateType == 'week'">
            -- 周工单数
            SELECT
                u.unit_name AS name,
                CONCAT('周', WEEKDAY(w.create_time)) AS dateType,
                COUNT(IF(status = 'AUDITING_SUCCESS', 1, NULL)) AS num1,
                COUNT(IF(status = 'DISTRIBUTED', 1, NULL)) AS num2,
                COUNT(IF(status = 'YW_HANDLE', 1, NULL)) AS num3
            FROM t_work_order w
            LEFT JOIN t_yw_unit u ON w.unit_id = u.id
            WHERE
            w.create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND DATE_ADD(CURDATE(), INTERVAL (6 - WEEKDAY(CURDATE())) DAY)
               AND w.deleted = 0 AND unit_id = #{unitId}
            GROUP BY dateType
        </if>
        <if test="dateType == 'day'">
            -- 日工单数
            SELECT
                u.unit_name AS name,
                DATE_FORMAT(w.create_time, '%d') AS dateType,
                COUNT(IF(status = 'AUDITING_SUCCESS', 1, NULL)) AS num1,
                COUNT(IF(status = 'DISTRIBUTED', 1, NULL)) AS num2,
                COUNT(IF(status = 'YW_HANDLE', 1, NULL)) AS num3
            FROM t_work_order w
            LEFT JOIN t_yw_unit u ON w.unit_id = u.id
            WHERE
                DATE_FORMAT(w.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())
              AND w.deleted = 0 AND unit_id = #{unitId}
            GROUP BY dateType
        </if>
    </select>
</mapper>