47bfee2fafdae8dd9339021f787787acfddfc0a5..8219cdfcb825b6d75c3a235a7e5195c8cac9a2ea
2022-09-06 songhuangfeng123
统计接口rpc
8219cd 对比 | 目录
2022-09-05 songhuangfeng123
rpc统计fix
90a864 对比 | 目录
2022-09-05 songhuangfeng123
应急统计
208b64 对比 | 目录
已修改22个文件
已添加9个文件
已重命名1个文件
1033 ■■■■■ 文件已修改
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/req/EmergencyExecuteNumRPCReq.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteNumRPCResp.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteTimeRPCResp.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/entity/EmergencyDrillExecuteCountRPC.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java 145 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/equ.zip 补丁 | 查看 | 原始文档 | blame | 历史
goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/ExamineMngServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-api/pom.xml 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/IncidentManageRpcAPi.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/IncidentManageCountData.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/req/IncidentManageCountRPCReq.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/resp/IncidentManageCountDetailRPCResp.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/resp/IncidentManageCountRPCResp.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/resp/IncidentManageRPCResp.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-provider/pom.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-rpc-provider/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/provider/IncidentManageRpcProvider.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/pom.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentCountController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/entity/AccidentReportCountRPC.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/enums/AccidentResultCodes.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/repository/AccidentReportInfoRepository.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentCountService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/baseService/AccidentReportInfoService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/baseService/impl/AccidentReportInfoServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentCountServiceImpl.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
incident-manage/incident-manage-service/src/main/resources/config/mapper/incidentManage/AccidentReportInfoMapper.xml 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java
@@ -10,12 +10,15 @@
public interface EmergencyRpcAPi {
    // RPC接口--1、传入部门ID,查询该部门最后一次完成应急演练的时间
    SearchResultVO<EmergencyExecuteTimeRPCResp> getTimeByDeptId(EmergencyExecuteTimeRPCReq query);
    // RPC接口--2、传入部门ID,查询该部门及其子部门的最后一次完成应急演练的时间
    SearchResultVO<List<EmergencyExecuteTimeRPCResp>> getTimeByDeptIds(EmergencyExecuteTimeRPCReq query);
    // RPC接口--3、传入部门ID和年份月份,查询该部门在指定的年份,或者指定的月份的应急演练的次数
    SearchResultVO<EmergencyExecuteNumRPCResp> getNumByDeptId(EmergencyExecuteNumRPCReq query);
    // RPC接口--4、传入部门ID和年份月份,查询该部门及其子部门,在指定的年份,或者指定的月份的应急演练的次数
    SearchResultVO<List<EmergencyExecuteNumRPCResp>> getNumByDeptIds(EmergencyExecuteNumRPCReq query);
}
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/req/EmergencyExecuteNumRPCReq.java
@@ -14,7 +14,7 @@
    private Integer year;
    // 月
    private Integer mouth;
    private Integer month;
    public Long getDeptId() {
        return deptId;
@@ -32,11 +32,11 @@
        this.year = year;
    }
    public Integer getMouth() {
        return mouth;
    public Integer getMonth() {
        return month;
    }
    public void setMouth(Integer mouth) {
        this.mouth = mouth;
    public void setMonth(Integer month) {
        this.month = month;
    }
}
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteNumRPCResp.java
@@ -1,8 +1,6 @@
package com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp;
import com.gkhy.safePlatform.emergency.rpc.api.model.EmergencyDrillExecuteCountData;
import java.util.List;
import java.util.Map;
@@ -17,8 +15,8 @@
    // 部门级别
    private Integer deptLevel;
    // 名称+数据
    private List<Map<String ,String>> data;
    // 名称+数据 1如果为查询的是年:返回的name为月份 2如果查询的是月,返回的name为天
    private List<Map<String ,Integer>> data;
    public Long getDeptId() {
        return deptId;
@@ -44,11 +42,11 @@
        this.deptLevel = deptLevel;
    }
    public List<Map<String, String>> getData() {
    public List<Map<String, Integer>> getData() {
        return data;
    }
    public void setData(List<Map<String, String>> data) {
    public void setData(List<Map<String, Integer>> data) {
        this.data = data;
    }
}
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteTimeRPCResp.java
@@ -15,9 +15,6 @@
    //上次演练的时间
    private String lastTime;
    // 距离上次演练的天数
    private Integer days;
    public Long getDeptId() {
        return deptId;
    }
@@ -50,11 +47,4 @@
        this.lastTime = lastTime;
    }
    public Integer getDays() {
        return days;
    }
    public void setDays(Integer days) {
        this.days = days;
    }
}
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java
@@ -46,9 +46,32 @@
    /**
     * 应急演练次数统计图
     */
    @RequestMapping(value = "/getTimeByDeptId",method = RequestMethod.POST)
    public SearchResultVO<EmergencyExecuteTimeRPCResp> getTimeByDeptId(@RequestBody EmergencyExecuteTimeRPCReq query){
        return emergencyCountService.getTimeByDeptId(query);
    }
    /**
     * 应急演练次数统计图
     */
    @RequestMapping(value = "/getTimeByDeptIds",method = RequestMethod.POST)
    public SearchResultVO<List<EmergencyExecuteTimeRPCResp>> getTimeByDeptIds(@RequestBody EmergencyExecuteTimeRPCReq query){
        return emergencyCountService.getTimeByDeptIds(query);
    }
    /**
     * 应急演练次数统计图
     */
    @RequestMapping(value = "/getNumByDeptId",method = RequestMethod.POST)
    public SearchResultVO<EmergencyExecuteNumRPCResp> getNumByDeptId(@RequestBody EmergencyExecuteNumRPCReq query){
        return emergencyCountService.getNumByDeptId(query);
    }
    /**
     * 应急演练次数统计图
     */
    @RequestMapping(value = "/getNumByDeptIds",method = RequestMethod.POST)
    public SearchResultVO<List<EmergencyExecuteNumRPCResp>> getNumByDeptIds(@RequestBody EmergencyExecuteNumRPCReq query){
        return emergencyCountService.getNumByDeptIds(query);
    }
}
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/entity/EmergencyDrillExecuteCountRPC.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.safePlatform.emergency.entity;
public class EmergencyDrillExecuteCountRPC {
    private Integer num ;
    private Integer name ;
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    public Integer getName() {
        return name;
    }
    public void setName(Integer name) {
        this.name = name;
    }
}
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java
@@ -30,5 +30,9 @@
    List<EmergencyDrillExecuteCountData> selectByYearAndDept(@Param("startTime") String startTime ,@Param("endTime")String endTime ,@Param("deptIds")List<Long> deptIds);
    List<EmergencyDrillExecuteCountRPC> selectByDayAndDept(@Param("startTime") String startTime ,@Param("endTime")String endTime ,@Param("deptIds")List<Long> deptIds);
    List<EmergencyDrillExecuteCountRPC> selectByMonthAndDeptForIntegerMonth(@Param("startTime") String startTime ,@Param("endTime")String endTime ,@Param("deptIds")List<Long> deptIds);
    String selectEmergencyDrillExecuteIntervalTimeByDeptId(@Param("deptId")Long deptId);
}
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java
@@ -28,5 +28,10 @@
    List<EmergencyDrillExecuteCountData> selectByYearAndDept(String startTime ,String endTime ,List<Long> deptIds);
    List<EmergencyDrillExecuteCountRPC> selectByDayAndDept(String startTime, String endTime, List<Long> deptIds);
    List<EmergencyDrillExecuteCountRPC> selectByMonthAndDeptForIntegerMonth(String startTime, String endTime, List<Long> deptIds);
    String selectEmergencyDrillExecuteIntervalTimeByDeptId(Long deptId);
}
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java
@@ -63,6 +63,16 @@
    }
    @Override
    public List<EmergencyDrillExecuteCountRPC> selectByDayAndDept(String startTime, String endTime, List<Long> deptIds) {
        return emergencyDrillExecuteInfoRepository.selectByDayAndDept(startTime,endTime,deptIds);
    }
    @Override
    public List<EmergencyDrillExecuteCountRPC> selectByMonthAndDeptForIntegerMonth(String startTime, String endTime, List<Long> deptIds) {
        return emergencyDrillExecuteInfoRepository.selectByMonthAndDeptForIntegerMonth(startTime,endTime,deptIds);
    }
    @Override
    public String selectEmergencyDrillExecuteIntervalTimeByDeptId(Long deptId) {
        return emergencyDrillExecuteInfoRepository.selectEmergencyDrillExecuteIntervalTimeByDeptId(deptId);
    }
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java
@@ -7,6 +7,7 @@
import com.gkhy.safePlatform.commons.exception.BusinessException;
import com.gkhy.safePlatform.commons.query.PageQuery;
import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
import com.gkhy.safePlatform.commons.utils.StringUtils;
import com.gkhy.safePlatform.commons.vo.ResultVO;
import com.gkhy.safePlatform.commons.vo.SearchResultVO;
import com.gkhy.safePlatform.emergency.entity.*;
@@ -23,11 +24,11 @@
import com.gkhy.safePlatform.emergency.service.baseService.EmergencyDrillExecuteInfoService;
import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesInfoService;
import com.gkhy.safePlatform.emergency.utils.TimeUtils;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import sun.security.pkcs11.wrapper.CK_SSL3_KEY_MAT_OUT;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -47,40 +48,64 @@
    @Override
    public SearchResultVO<EmergencyExecuteTimeRPCResp> getTimeByDeptId(EmergencyExecuteTimeRPCReq query) {
        EmergencyExecuteTimeRPCResp emergencyExecuteTimeRPCResp = new EmergencyExecuteTimeRPCResp();
        // 获取id对应的部门
        DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId());
        emergencyExecuteTimeRPCResp.setDeptId(depInfoRPCRespDTO.getDepId());
        emergencyExecuteTimeRPCResp.setDeptName(depInfoRPCRespDTO.getDepName());
        emergencyExecuteTimeRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel());
        String lastTime = emergencyDrillExecuteInfoService.selectEmergencyDrillExecuteIntervalTimeByDeptId(query.getDeptId());
        emergencyExecuteTimeRPCResp.setLastTime(lastTime);
        emergencyExecuteTimeRPCResp.setDays(TimeUtils.differentDays(lastTime, TimeUtils.formatDate(new Date())));
        return new SearchResultVO<>(
        getSingleTimeData(emergencyExecuteTimeRPCResp);
        SearchResultVO searchResultVO = new SearchResultVO<>(
                false,
                null,
                null,
                null,
                1L,
                null,
                emergencyExecuteTimeRPCResp,
                ResultCodes.OK
        );
        searchResultVO.setCount(1);
        return searchResultVO;
    }
    @Override
    public SearchResultVO<List<EmergencyExecuteTimeRPCResp>> getTimeByDeptIds(EmergencyExecuteTimeRPCReq query) {
        List<EmergencyExecuteTimeRPCResp> list = new ArrayList<>();
        return new SearchResultVO<>(
        // 获取该部门及其子部门的所有信息
        List<DepInfoRPCRespDTO> depList = getDepListInfoByDepId(query.getDeptId());
        for (DepInfoRPCRespDTO depInfoRPCRespDTO : depList){
            EmergencyExecuteTimeRPCResp emergencyExecuteTimeRPCResp = new EmergencyExecuteTimeRPCResp();
            emergencyExecuteTimeRPCResp.setDeptId(depInfoRPCRespDTO.getDepId());
            emergencyExecuteTimeRPCResp.setDeptName(depInfoRPCRespDTO.getDepName());
            emergencyExecuteTimeRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel());
            getSingleTimeData(emergencyExecuteTimeRPCResp);
            list.add(emergencyExecuteTimeRPCResp);
        }
        SearchResultVO searchResultVO = new SearchResultVO<>(
                false,
                null,
                null,
                null,
                (long) list.size(),
                null,
                list,
                ResultCodes.OK
        );
        if (!list.isEmpty()){
            searchResultVO.setCount(list.size());
        }
        return searchResultVO;
    }
    private void getSingleTimeData(EmergencyExecuteTimeRPCResp emergencyExecuteTimeRPCResp){
        // 查询该部门最后一次演练时间
        String lastTime = emergencyDrillExecuteInfoService.selectEmergencyDrillExecuteIntervalTimeByDeptId(emergencyExecuteTimeRPCResp.getDeptId());
        if (StringUtils.isNotBlank(lastTime)){
            emergencyExecuteTimeRPCResp.setLastTime(lastTime);
//            emergencyExecuteTimeRPCResp.setDays(TimeUtils.differentDays(lastTime, TimeUtils.formatDate(new Date())));
        }
    }
    @Override
@@ -91,45 +116,90 @@
        EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp = new EmergencyExecuteNumRPCResp();
        // 获取id对应的部门
        DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId());
        emergencyExecuteNumRPCResp.setDeptId(depInfoRPCRespDTO.getDepId());
        emergencyExecuteNumRPCResp.setDeptName(depInfoRPCRespDTO.getDepName());
        emergencyExecuteNumRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel());
        // 查到该年度对应月份的数据
        List<Map<String,String>> mapList = new ArrayList<>();
        String startTime = TimeUtils.getYearFirst(query.getYear());
        String endTime = TimeUtils.getYearLast(query.getYear());
        List<Long> deptIds = new ArrayList<>();
        deptIds.add(query.getDeptId());
        List<EmergencyDrillExecuteCountData> emergencyDrillExecuteCountDataList = emergencyDrillExecuteInfoService.selectByMonthAndDept(startTime, endTime, deptIds);
        if (!emergencyDrillExecuteCountDataList.isEmpty()){
            for (EmergencyDrillExecuteCountData emergencyDrillExecuteCountData : emergencyDrillExecuteCountDataList){
                Map<String ,String> map = new HashMap<>();
                map.put("name",emergencyDrillExecuteCountData.getName());
                map.put("num",emergencyDrillExecuteCountData.getNum().toString());
                mapList.add(map);
            }
        }
        emergencyExecuteNumRPCResp.setData(mapList);
        getSingleNumData(emergencyExecuteNumRPCResp,query);
        return new SearchResultVO<>(
        SearchResultVO searchResultVO = new SearchResultVO<>(
                false,
                null,
                null,
                null,
                1L,
                null,
                emergencyExecuteNumRPCResp,
                ResultCodes.OK
        );
        searchResultVO.setCount(1);
        return searchResultVO;
    }
    @Override
    public SearchResultVO<List<EmergencyExecuteNumRPCResp>> getNumByDeptIds(EmergencyExecuteNumRPCReq query) {
        return null;
        List<EmergencyExecuteNumRPCResp> list = new ArrayList<>();
        // 获取该部门及其子部门的所有信息
        List<DepInfoRPCRespDTO> deptList = getDepListInfoByDepId(query.getDeptId());
        for (DepInfoRPCRespDTO depInfoRPCRespDTO : deptList){
            EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp = new EmergencyExecuteNumRPCResp();
            emergencyExecuteNumRPCResp.setDeptId(depInfoRPCRespDTO.getDepId());
            emergencyExecuteNumRPCResp.setDeptName(depInfoRPCRespDTO.getDepName());
            emergencyExecuteNumRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel());
            getSingleNumData(emergencyExecuteNumRPCResp,query);
            list.add(emergencyExecuteNumRPCResp);
        }
        SearchResultVO searchResultVO = new SearchResultVO<>(
                false,
                null,
                null,
                null,
                null,
                list,
                ResultCodes.OK
        );
        if (!list.isEmpty()){
            searchResultVO.setCount(list.size());
        }
        return searchResultVO;
    }
    public DepInfoRPCRespDTO getDepInfoByDepId(Long deptId) {
    private void getSingleNumData(EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp,EmergencyExecuteNumRPCReq query){
        List<Long> deptIds = new ArrayList<>();
        deptIds.add(emergencyExecuteNumRPCResp.getDeptId());
        List<Map<String,Integer>> mapList = new ArrayList<>();
        List<EmergencyDrillExecuteCountRPC> emergencyDrillExecuteCountDataList = new ArrayList<>();
        String startTime ;
        String endTime ;
        if (query.getMonth()==null){
            // 查该年度12个月份的
            startTime = TimeUtils.getYearFirst(query.getYear());
            endTime = TimeUtils.getYearLast(query.getYear());
            emergencyDrillExecuteCountDataList= emergencyDrillExecuteInfoService.selectByMonthAndDeptForIntegerMonth(startTime, endTime, deptIds);
        }else{
            // 查该年度指定月份的
            startTime = TimeUtils.getMonthFirst(query.getYear(),query.getMonth());
            endTime = TimeUtils.getMonthLast(query.getYear(),query.getMonth());
            emergencyDrillExecuteCountDataList= emergencyDrillExecuteInfoService.selectByDayAndDept(startTime, endTime, deptIds);
        }
        if (!emergencyDrillExecuteCountDataList.isEmpty()){
            for (EmergencyDrillExecuteCountRPC emergencyDrillExecuteCountRPC : emergencyDrillExecuteCountDataList){
                Map<String ,Integer> map = new HashMap<>();
                // 名称+数据 1如果为查询的是年:返回的name为月份 2如果查询的是月,返回的name为天
                map.put("name",emergencyDrillExecuteCountRPC.getName());
                map.put("num",emergencyDrillExecuteCountRPC.getNum());
                mapList.add(map);
            }
        }
        emergencyExecuteNumRPCResp.setData(mapList);
    }
    private DepInfoRPCRespDTO getDepInfoByDepId(Long deptId) {
        DepInfoRPCRespDTO dep = new DepInfoRPCRespDTO();
        ResultVO<DepInfoRPCRespDTO> rpcResult = accountDepartmentService.getDepInfoByDepId(deptId);
        if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
@@ -142,6 +212,19 @@
        return dep;
    }
    private List<DepInfoRPCRespDTO> getDepListInfoByDepId(Long deptId){
        List<DepInfoRPCRespDTO> depList = new ArrayList<>();
        ResultVO<List<DepInfoRPCRespDTO>> rpcResult = accountDepartmentService.listDepAndSubDepByDepId(deptId);
        if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
            if (rpcResult.getData() != null) {
                depList = (List<DepInfoRPCRespDTO>)rpcResult.getData();
            }
        } else {
            throw new BusinessException(ResultCodes.CLIENT_DEP_NOT_EXIST);
        }
        return depList;
    }
    @Override
    public ResultVO<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(EmergencyDrillExecuteCountQuery query) {
emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
@@ -174,9 +174,57 @@
    </select>
    <resultMap type="com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteCountRPC"
               id="emergencyDrillExecuteCountRPC">
        <result column="num" property="num"/>
        <result column="name" property="name"/>
    </resultMap>
    <select id="selectByDayAndDept" resultMap="emergencyDrillExecuteCountRPC">
        SELECT
        count( 0 ) AS num,
        DATE_FORMAT( a.gmt_create, '%d' ) AS `name`
        FROM
        `emergency_drill_execute` a
        LEFT JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        WHERE
        a.del_flag = 0
        AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
        AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
        <if test="deptIds != null " >
            and b.department_id in
            <foreach item="id" collection="deptIds" open="(" separator="," close=")">
                #{id}
            </foreach>
        </if>
        GROUP BY
        DATE_FORMAT( a.gmt_create, '%Y-%m-%d' )
    </select>
    <select id="selectByMonthAndDeptForIntegerMonth" resultMap="emergencyDrillExecuteCountRPC">
        SELECT
        count( 0 ) AS num,
        DATE_FORMAT( a.gmt_create, '%m' ) AS `name`
        FROM
        `emergency_drill_execute` a
        LEFT JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        WHERE
        a.del_flag = 0
        AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
        AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
        <if test="deptIds != null " >
            and b.department_id in
            <foreach item="id" collection="deptIds" open="(" separator="," close=")">
                #{id}
            </foreach>
        </if>
        GROUP BY
        DATE_FORMAT( a.gmt_create, '%Y-%m' )
    </select>
    <select id="selectEmergencyDrillExecuteIntervalTimeByDeptId" resultType="java.lang.String">
        SELECT
            DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d' ) AS lastTime
            DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime
        FROM
            `emergency_drill_execute` a
            INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/equ.zip
Binary files differ
goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/ExamineMngServiceImpl.java
@@ -137,7 +137,7 @@
        //获取打分明细
        List<CurrentExamineDto> list = JSONObject.parseArray( examineMng.getNumberDetailJson(), CurrentExamineDto.class);
        List<Long> idList = list.stream().map(CurrentExamineDto::getId).collect(Collectors.toList());
        if (idList.isEmpty()){
        if (!idList.isEmpty()){
            List<ExamineItem> itemList = examineItemRepository.selectBatchIds(idList);
            Map<Long,ExamineItem> itemMap = itemList.stream().collect(
                    Collectors.toMap(ExamineItem::getId, Function.identity(),(k1, k2)->k1));
incident-manage/incident-manage-rpc-api/pom.xml
@@ -2,18 +2,86 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>incident-manage</artifactId>
        <groupId>com.gkhy.safePlatfrom</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <!--    <parent>-->
    <!--        <artifactId>emergency</artifactId>-->
    <!--        <groupId>com.gkhy.safePlatfrom</groupId>-->
    <!--        <version>1.0-SNAPSHOT</version>-->
    <!--    </parent>-->
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>com.gkhy.safePlatfrom</groupId>
            <artifactId>commons</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <groupId>com.gkhy.safePlatfrom</groupId>
    <artifactId>incident-manage-rpc-api</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
</project>
    <distributionManagement>
        <!--稳定版本的仓库地址,必须是允许上传的私服地址-->
        <repository>
            <id>nexus-gkhy-releases</id>
            <url>http://121.239.169.27:28080/repository/guotai-release/</url>
        </repository>
        <!--开发版本的仓库地址,必须是允许上传的私服地址-->
        <snapshotRepository>
            <id>nexus-gkhy-snapshots</id>
            <url>http://121.239.169.27:28080/repository/guotai-snapshot/</url>
        </snapshotRepository>
    </distributionManagement>
    <build>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
            </extension>
        </extensions>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/main/java</source>
                                <!--                                <source>build/generated/source/proto/main/java</source>-->
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- 上传源码 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.2.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/IncidentManageRpcAPi.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.safePlatform.incidentManage.rpc.api;
import com.gkhy.safePlatform.commons.vo.SearchResultVO;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.req.IncidentManageCountRPCReq;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageRPCResp;
import java.util.List;
public interface IncidentManageRpcAPi {
    // RPC接口--1、传入部门ID和年份、月份,查询该部门在指定年份、或者指定月份的事故统计,(特别重大、重大、较大、一般、未遂)这5个档次来分别统计,
    // 并且统计不同等级的事故所造成的后果(死亡人数、重伤人数、轻伤人数、经济损失)
    SearchResultVO<IncidentManageRPCResp> getCountByDeptId(IncidentManageCountRPCReq query);
    // RPC接口--1、传入部门ID和年份、月份,查询该部门及其子部门在指定年份、或者指定月份的事故统计,(特别重大、重大、较大、一般、未遂)这5个档次来分别统计,
    // 并且统计不同等级的事故所造成的后果(死亡人数、重伤人数、轻伤人数、经济损失)
    SearchResultVO<List<IncidentManageRPCResp>> getCountByDeptIds(IncidentManageCountRPCReq query);
}
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/IncidentManageCountData.java
文件名从 emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/EmergencyDrillExecuteCountData.java 修改
@@ -1,7 +1,7 @@
package com.gkhy.safePlatform.emergency.rpc.api.model;
package com.gkhy.safePlatform.incidentManage.rpc.api.model;
public class EmergencyDrillExecuteCountData {
public class IncidentManageCountData {
    private Integer num ;
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/req/IncidentManageCountRPCReq.java
对比新文件
@@ -0,0 +1,42 @@
package com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.req;
public class IncidentManageCountRPCReq {
    /**
     * 1、指定年份,查该年度12个月份的
     * 2、指定年份月份,查该指定月份的
     */
    // 部门id
    private Long deptId;
    //年
    private Integer year;
    // 月
    private Integer month;
    public Long getDeptId() {
        return deptId;
    }
    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }
    public Integer getYear() {
        return year;
    }
    public void setYear(Integer year) {
        this.year = year;
    }
    public Integer getMonth() {
        return month;
    }
    public void setMonth(Integer month) {
        this.month = month;
    }
}
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/resp/IncidentManageCountDetailRPCResp.java
对比新文件
@@ -0,0 +1,70 @@
package com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
public class IncidentManageCountDetailRPCResp {
    // 事故等级
    private String level ;
    // 事故数量
    private Integer num ;
    // 轻伤
    private Integer minorInjuryNum;
    // 重伤
    private Integer seriousInjuryNum;
    // 经济损失
    private Integer deathNum;
    private BigDecimal economicLoss;
    public String getLevel() {
        return level;
    }
    public void setLevel(String level) {
        this.level = level;
    }
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    public Integer getMinorInjuryNum() {
        return minorInjuryNum;
    }
    public void setMinorInjuryNum(Integer minorInjuryNum) {
        this.minorInjuryNum = minorInjuryNum;
    }
    public Integer getSeriousInjuryNum() {
        return seriousInjuryNum;
    }
    public void setSeriousInjuryNum(Integer seriousInjuryNum) {
        this.seriousInjuryNum = seriousInjuryNum;
    }
    public Integer getDeathNum() {
        return deathNum;
    }
    public void setDeathNum(Integer deathNum) {
        this.deathNum = deathNum;
    }
    public BigDecimal getEconomicLoss() {
        return economicLoss;
    }
    public void setEconomicLoss(BigDecimal economicLoss) {
        this.economicLoss = economicLoss;
    }
}
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/resp/IncidentManageCountRPCResp.java
对比新文件
@@ -0,0 +1,30 @@
package com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp;
import java.util.List;
import java.util.Map;
public class IncidentManageCountRPCResp {
    // 时间 如果查的是年,返回的是月份 ,如果查的是月,返回的是天
    private Integer time ;
    // 数据
    private List<IncidentManageCountDetailRPCResp> detail;
    public Integer getTime() {
        return time;
    }
    public void setTime(Integer time) {
        this.time = time;
    }
    public List<IncidentManageCountDetailRPCResp> getDetail() {
        return detail;
    }
    public void setDetail(List<IncidentManageCountDetailRPCResp> detail) {
        this.detail = detail;
    }
}
incident-manage/incident-manage-rpc-api/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/api/model/dto/resp/IncidentManageRPCResp.java
对比新文件
@@ -0,0 +1,52 @@
package com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp;
import java.util.List;
import java.util.Map;
public class IncidentManageRPCResp {
    // 部门id
    private Long deptId;
    // 部门名称
    private String deptName;
    // 部门级别
    private Integer deptLevel;
    // 名称+数据
    private List<IncidentManageCountRPCResp> data;
    public Long getDeptId() {
        return deptId;
    }
    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public Integer getDeptLevel() {
        return deptLevel;
    }
    public void setDeptLevel(Integer deptLevel) {
        this.deptLevel = deptLevel;
    }
    public List<IncidentManageCountRPCResp> getData() {
        return data;
    }
    public void setData(List<IncidentManageCountRPCResp> data) {
        this.data = data;
    }
}
incident-manage/incident-manage-rpc-provider/pom.xml
@@ -8,12 +8,22 @@
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>incident-manage-rpc-provider</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.gkhy.safePlatfrom</groupId>
            <artifactId>incident-manage-rpc-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.gkhy.safePlatfrom</groupId>
            <artifactId>incident-manage-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>
</project>
incident-manage/incident-manage-rpc-provider/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/provider/IncidentManageRpcProvider.java
对比新文件
@@ -0,0 +1,29 @@
package com.gkhy.safePlatform.incidentManage.rpc.provider;
import com.gkhy.safePlatform.commons.vo.SearchResultVO;
import com.gkhy.safePlatform.incidentManage.rpc.api.IncidentManageRpcAPi;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.req.IncidentManageCountRPCReq;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageRPCResp;
import com.gkhy.safePlatform.incidentManage.service.AccidentCountService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@DubboService
public class IncidentManageRpcProvider implements IncidentManageRpcAPi {
    @Autowired
    private AccidentCountService accidentCountService;
    @Override
    public SearchResultVO<IncidentManageRPCResp> getCountByDeptId(IncidentManageCountRPCReq query) {
        return accidentCountService.getCountByDeptId(query);
    }
    @Override
    public SearchResultVO<List<IncidentManageRPCResp>> getCountByDeptIds(IncidentManageCountRPCReq query) {
        return accidentCountService.getCountByDeptIds(query);
    }
}
incident-manage/incident-manage-service/pom.xml
@@ -8,7 +8,7 @@
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>incident-manage-service</artifactId>
    <properties>
@@ -16,4 +16,17 @@
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
</project>
    <dependencies>
        <dependency>
            <groupId>com.gkhy.safePlatfrom</groupId>
            <artifactId>incident-manage-rpc-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.gkhy.safePlatfrom</groupId>
            <artifactId>account-rpc-api</artifactId>
        </dependency>
    </dependencies>
</project>
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentCountController.java
@@ -3,6 +3,8 @@
import com.gkhy.safePlatform.commons.vo.ResultVO;
import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportCountRespDTO;
import com.gkhy.safePlatform.incidentManage.query.AccidentReportCountQuery;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.req.IncidentManageCountRPCReq;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageRPCResp;
import com.gkhy.safePlatform.incidentManage.service.AccidentCountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -25,4 +27,20 @@
        return accidentCountService.countAccidentReport(query);
    }
    /**
     * 事故报告统计的rpc接口
     */
    @RequestMapping(value = "/getCountByDeptId/count",method = RequestMethod.POST)
    public ResultVO<IncidentManageRPCResp> getCountByDeptId(@RequestBody IncidentManageCountRPCReq query){
        return accidentCountService.getCountByDeptId(query);
    }
    /**
     * 事故报告统计的rpc接口
     */
    @RequestMapping(value = "/getCountByDeptIds/count",method = RequestMethod.POST)
    public ResultVO<List<IncidentManageRPCResp>> getCountByDeptIds(@RequestBody IncidentManageCountRPCReq query){
        return accidentCountService.getCountByDeptIds(query);
    }
}
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/entity/AccidentReportCountRPC.java
对比新文件
@@ -0,0 +1,78 @@
package com.gkhy.safePlatform.incidentManage.entity;
import java.math.BigDecimal;
public class AccidentReportCountRPC {
    private Integer time;
    private String level ;
    private Integer num ;
    private Integer minorInjuryNum;
    private Integer seriousInjuryNum;
    private Integer deathNum;
    private BigDecimal economicLoss;
    public Integer getTime() {
        return time;
    }
    public void setTime(Integer time) {
        this.time = time;
    }
    public String getLevel() {
        return level;
    }
    public void setLevel(String level) {
        this.level = level;
    }
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    public Integer getMinorInjuryNum() {
        return minorInjuryNum;
    }
    public void setMinorInjuryNum(Integer minorInjuryNum) {
        this.minorInjuryNum = minorInjuryNum;
    }
    public Integer getSeriousInjuryNum() {
        return seriousInjuryNum;
    }
    public void setSeriousInjuryNum(Integer seriousInjuryNum) {
        this.seriousInjuryNum = seriousInjuryNum;
    }
    public Integer getDeathNum() {
        return deathNum;
    }
    public void setDeathNum(Integer deathNum) {
        this.deathNum = deathNum;
    }
    public BigDecimal getEconomicLoss() {
        return economicLoss;
    }
    public void setEconomicLoss(BigDecimal economicLoss) {
        this.economicLoss = economicLoss;
    }
}
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/enums/AccidentResultCodes.java
@@ -45,6 +45,8 @@
    CASE_TITLE_NULL("C1003", "事故案例标题不可为空"),
    CASE_CONTENT_NULL("C1004", "事故案例内容不可为空"),
    YEAR_NULL("Y1001" , "年份不能为空"),
    ERROR("A3000", "未知错误");
    private String code;
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/repository/AccidentReportInfoRepository.java
@@ -2,10 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportCount;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfo;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfoDetailDO;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfoPageDO;
import com.gkhy.safePlatform.incidentManage.entity.*;
import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportDBQuery;
import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportCountDBQuery;
import org.apache.ibatis.annotations.Param;
@@ -27,4 +24,9 @@
    void deleteAccidentReportById(@Param("id") Long id);
    List<AccidentReportCount> selectByTimeAndType(@Param("query") AccidentReportCountDBQuery dbQuery);
    List<AccidentReportCountRPC> getCountForRPCByDeptIdAndMonth(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("deptId")Long deptId);
    List<AccidentReportCountRPC> getCountForRPCByDeptIdAndDay(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("deptId")Long deptId);
}
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentCountService.java
@@ -1,12 +1,23 @@
package com.gkhy.safePlatform.incidentManage.service;
import com.gkhy.safePlatform.commons.vo.ResultVO;
import com.gkhy.safePlatform.commons.vo.SearchResultVO;
import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportCountRespDTO;
import com.gkhy.safePlatform.incidentManage.query.AccidentReportCountQuery;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.req.IncidentManageCountRPCReq;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageRPCResp;
import java.util.List;
public interface AccidentCountService {
    ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(AccidentReportCountQuery query);
    // RPC接口--1、传入部门ID和年份、月份,查询该部门在指定年份、或者指定月份的事故统计,(特别重大、重大、较大、一般、未遂)这5个档次来分别统计,
    // 并且统计不同等级的事故所造成的后果(死亡人数、重伤人数、轻伤人数、经济损失)
    SearchResultVO<IncidentManageRPCResp> getCountByDeptId(IncidentManageCountRPCReq query);
    // RPC接口--1、传入部门ID和年份、月份,查询该部门及其子部门在指定年份、或者指定月份的事故统计,(特别重大、重大、较大、一般、未遂)这5个档次来分别统计,
    // 并且统计不同等级的事故所造成的后果(死亡人数、重伤人数、轻伤人数、经济损失)
    SearchResultVO<List<IncidentManageRPCResp>> getCountByDeptIds(IncidentManageCountRPCReq query);
}
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/baseService/AccidentReportInfoService.java
@@ -2,10 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportCount;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfo;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfoDetailDO;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfoPageDO;
import com.gkhy.safePlatform.incidentManage.entity.*;
import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportDBQuery;
import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportCountDBQuery;
@@ -26,4 +23,8 @@
    List<AccidentReportCount> selectByTimeAndType(AccidentReportCountDBQuery dbQuery);
    List<AccidentReportCountRPC> getCountForRPCByDeptIdAndMonth(String startTime, String endTime, Long deptId);
    List<AccidentReportCountRPC> getCountForRPCByDeptIdAndDay(String startTime, String endTime, Long deptId);
}
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/baseService/impl/AccidentReportInfoServiceImpl.java
@@ -2,10 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportCount;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfo;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfoDetailDO;
import com.gkhy.safePlatform.incidentManage.entity.AccidentReportInfoPageDO;
import com.gkhy.safePlatform.incidentManage.entity.*;
import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportDBQuery;
import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportCountDBQuery;
import com.gkhy.safePlatform.incidentManage.repository.AccidentReportInfoRepository;
@@ -51,4 +48,13 @@
        return accidentReportInfoRepository.selectByTimeAndType(dbQuery);
    }
    @Override
    public List<AccidentReportCountRPC> getCountForRPCByDeptIdAndMonth(String startTime, String endTime, Long deptId) {
        return accidentReportInfoRepository.getCountForRPCByDeptIdAndMonth(startTime,endTime,deptId);
    }
    @Override
    public List<AccidentReportCountRPC> getCountForRPCByDeptIdAndDay(String startTime, String endTime, Long deptId) {
        return accidentReportInfoRepository.getCountForRPCByDeptIdAndDay(startTime,endTime,deptId);
    }
}
incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentCountServiceImpl.java
@@ -1,19 +1,33 @@
package com.gkhy.safePlatform.incidentManage.service.impl;
import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService;
import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepInfoRPCRespDTO;
import com.gkhy.safePlatform.commons.enums.ResultCodes;
import com.gkhy.safePlatform.commons.exception.BusinessException;
import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
import com.gkhy.safePlatform.commons.vo.ResultVO;
import com.gkhy.safePlatform.commons.vo.SearchResultVO;
import com.gkhy.safePlatform.incidentManage.entity.*;
import com.gkhy.safePlatform.incidentManage.enums.AccidentResultCodes;
import com.gkhy.safePlatform.incidentManage.exception.AccidentException;
import com.gkhy.safePlatform.incidentManage.model.dto.resp.*;
import com.gkhy.safePlatform.incidentManage.query.AccidentReportCountQuery;
import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportCountDBQuery;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.req.IncidentManageCountRPCReq;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageCountDetailRPCResp;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageCountRPCResp;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageRPCResp;
import com.gkhy.safePlatform.incidentManage.service.AccidentCountService;
import com.gkhy.safePlatform.incidentManage.service.baseService.AccidentReportInfoService;
import com.gkhy.safePlatform.incidentManage.utils.TimeUtils;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.print.DocFlavor;
import java.util.*;
import java.util.stream.Collectors;
@Service("accidentCountService")
public class AccidentCountServiceImpl implements AccidentCountService {
@@ -21,6 +35,150 @@
    @Autowired
    private AccidentReportInfoService accidentReportInfoService;
    @DubboReference(check = false)
    private AccountDepartmentService accountDepartmentService;
    @Override
    public SearchResultVO<IncidentManageRPCResp> getCountByDeptId(IncidentManageCountRPCReq query) {
        if (query.getYear() == null) {
            throw new AccidentException(AccidentResultCodes.YEAR_NULL);
        }
        IncidentManageRPCResp incidentManageCountRPCResp = new IncidentManageRPCResp();
        // 获取id对应的部门
        DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId());
        incidentManageCountRPCResp.setDeptId(depInfoRPCRespDTO.getDepId());
        incidentManageCountRPCResp.setDeptName(depInfoRPCRespDTO.getDepName());
        incidentManageCountRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel());
        getSingleTimeData(incidentManageCountRPCResp, query);
        SearchResultVO searchResultVO = new SearchResultVO<>(
                false,
                null,
                null,
                null,
                null,
                incidentManageCountRPCResp,
                ResultCodes.OK
        );
        searchResultVO.setCount(1);
        return searchResultVO;
    }
    @Override
    public SearchResultVO<List<IncidentManageRPCResp>> getCountByDeptIds(IncidentManageCountRPCReq query) {
        if (query.getYear() == null) {
            throw new AccidentException(AccidentResultCodes.YEAR_NULL);
        }
        List<IncidentManageRPCResp> list = new ArrayList<>();
        // 获取该部门及其子部门的所有信息
        List<DepInfoRPCRespDTO> deptList = getDepListInfoByDepId(query.getDeptId());
        for (DepInfoRPCRespDTO depInfoRPCRespDTO : deptList) {
            IncidentManageRPCResp incidentManageCountRPCResp = new IncidentManageRPCResp();
            incidentManageCountRPCResp.setDeptId(depInfoRPCRespDTO.getDepId());
            incidentManageCountRPCResp.setDeptName(depInfoRPCRespDTO.getDepName());
            incidentManageCountRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel());
            getSingleTimeData(incidentManageCountRPCResp, query);
            list.add(incidentManageCountRPCResp);
        }
        SearchResultVO searchResultVO = new SearchResultVO<>(
                false,
                null,
                null,
                null,
                null,
                list,
                ResultCodes.OK
        );
        if (!list.isEmpty()){
            searchResultVO.setCount(list.size());
        }
        return searchResultVO;
    }
    private void getSingleTimeData(IncidentManageRPCResp incidentManageRPCResp, IncidentManageCountRPCReq query) {
        List<IncidentManageCountRPCResp> resList = new ArrayList<>();
        List<AccidentReportCountRPC> accidentReportCountRPCList = new ArrayList<>();
        Long deptId = incidentManageRPCResp.getDeptId();
        String startTime;
        String endTime;
        if (query.getMonth() == null) {
            // 查该年度12个月份的
            startTime = TimeUtils.getYearFirst(query.getYear());
            endTime = TimeUtils.getYearLast(query.getYear());
            accidentReportCountRPCList= accidentReportInfoService.getCountForRPCByDeptIdAndMonth(startTime, endTime, deptId);
        } else {
            // 查该年度指定月份的
            startTime = TimeUtils.getMonthFirst(query.getYear(), query.getMonth());
            endTime = TimeUtils.getMonthLast(query.getYear(), query.getMonth());
            accidentReportCountRPCList = accidentReportInfoService.getCountForRPCByDeptIdAndDay(startTime, endTime, deptId);
        }
        // 拼装第一层时间(去重)
        Set<Integer> timeSET = accidentReportCountRPCList.stream().map(AccidentReportCountRPC::getTime).collect(Collectors.toSet());
        // 拼装第一层时间(排序)
        List<Integer> timeList = timeSET.stream().sorted().collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(timeSET)) {
            for (Integer integer : timeSET) {
                IncidentManageCountRPCResp incidentManageCountRPCResp = new IncidentManageCountRPCResp();
                incidentManageCountRPCResp.setTime(integer);
                incidentManageCountRPCResp.setDetail(new ArrayList<>());
                resList.add(incidentManageCountRPCResp);
            }
        }
        // 拼装第二层事故详情
        if (!CollectionUtils.isEmpty(timeList)) {
            for (AccidentReportCountRPC accidentReportCountRPC : accidentReportCountRPCList) {
                for (IncidentManageCountRPCResp incidentManageCountRPCResp : resList) {
                    if (accidentReportCountRPC.getTime().equals(incidentManageCountRPCResp.getTime())) {
                        IncidentManageCountDetailRPCResp incidentManageCountDetailRPCResp = new IncidentManageCountDetailRPCResp();
                        incidentManageCountDetailRPCResp.setLevel(accidentReportCountRPC.getLevel());
                        incidentManageCountDetailRPCResp.setNum(accidentReportCountRPC.getNum());
                        incidentManageCountDetailRPCResp.setMinorInjuryNum(accidentReportCountRPC.getMinorInjuryNum());
                        incidentManageCountDetailRPCResp.setSeriousInjuryNum(accidentReportCountRPC.getSeriousInjuryNum());
                        incidentManageCountDetailRPCResp.setDeathNum(accidentReportCountRPC.getDeathNum());
                        incidentManageCountDetailRPCResp.setEconomicLoss(accidentReportCountRPC.getEconomicLoss());
                        incidentManageCountRPCResp.getDetail().add(incidentManageCountDetailRPCResp);
                    }
                }
            }
        }
        incidentManageRPCResp.setData(resList);
    }
    private DepInfoRPCRespDTO getDepInfoByDepId(Long deptId) {
        DepInfoRPCRespDTO dep = new DepInfoRPCRespDTO();
        ResultVO<DepInfoRPCRespDTO> rpcResult = accountDepartmentService.getDepInfoByDepId(deptId);
        if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
            if (rpcResult.getData() != null) {
                dep = (DepInfoRPCRespDTO) rpcResult.getData();
            }
        } else {
            throw new BusinessException(ResultCodes.CLIENT_DEP_NOT_EXIST);
        }
        return dep;
    }
    private List<DepInfoRPCRespDTO> getDepListInfoByDepId(Long deptId) {
        List<DepInfoRPCRespDTO> depList = new ArrayList<>();
        ResultVO<List<DepInfoRPCRespDTO>> rpcResult = accountDepartmentService.listDepAndSubDepByDepId(deptId);
        if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
            if (rpcResult.getData() != null) {
                depList = (List<DepInfoRPCRespDTO>) rpcResult.getData();
            }
        } else {
            throw new BusinessException(ResultCodes.CLIENT_DEP_NOT_EXIST);
        }
        return depList;
    }
    @Override
    public ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(AccidentReportCountQuery query) {
incident-manage/incident-manage-service/src/main/resources/config/mapper/incidentManage/AccidentReportInfoMapper.xml
@@ -203,20 +203,74 @@
    </resultMap>
    <select id="selectByTimeAndType" resultMap="emergencyDrillExecuteCountChart">
        SELECT
        a.accident_level AS `name`,
        accident_level AS `name`,
        count( 0 ) AS num,
        sum( economic_loss ) AS economicLoss,
        sum( minor_injury_num ) AS minorInjuryNum,
        sum( serious_injury_num ) AS seriousInjuryNum,
        sum( death_num ) AS deathNum
        FROM
        `accident_report` a
        `accident_report`
        WHERE
        del_flag = 0
        AND a.gmt_create <![CDATA[ >= ]]> #{query.startTime}
        AND a.gmt_create <![CDATA[ <= ]]> #{query.endTime}
        <if test="query.level != null and query.level != ''" >and b.drill_level = #{query.level}</if>
        AND gmt_create <![CDATA[ >= ]]> #{query.startTime}
        AND gmt_create <![CDATA[ <= ]]> #{query.endTime}
        <if test="query.level != null and query.level != ''" >and accident_level = #{query.level}</if>
        GROUP BY
        accident_level
    </select>
    <resultMap type="com.gkhy.safePlatform.incidentManage.entity.AccidentReportCountRPC"
               id="accidentReportCountRPC">
        <result column="time" property="time"/>
        <result column="num" property="num"/>
        <result column="level" property="level"/>
        <result column="minorInjuryNum" property="minorInjuryNum"/>
        <result column="seriousInjuryNum" property="seriousInjuryNum"/>
        <result column="deathNum" property="deathNum"/>
        <result column="economicLoss" property="economicLoss"/>
    </resultMap>
    <select id="getCountForRPCByDeptIdAndMonth" resultMap="accidentReportCountRPC">
        SELECT
            DATE_FORMAT( a.gmt_create, '%m' ) as time,
            a.accident_level AS `level`,
            count( 0 ) AS num,
            sum( a.economic_loss ) AS economicLoss,
            sum( a.minor_injury_num ) AS minorInjuryNum,
            sum( a.serious_injury_num ) AS seriousInjuryNum,
            sum( a.death_num ) AS deathNum
        FROM
            `accident_report` a
            INNER JOIN `accident_express` b ON a.accident_express_id = b.id
            AND b.accident_department_id = #{deptId}
        WHERE
            a.del_flag = 0
            AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
            AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
        GROUP BY
            DATE_FORMAT( a.gmt_create, '%Y-%m' ),
            a.accident_level
    </select>
    <select id="getCountForRPCByDeptIdAndDay" resultMap="accidentReportCountRPC">
        SELECT
            DATE_FORMAT( a.gmt_create, '%d' ) as time,
            a.accident_level AS `level`,
            count( 0 ) AS num,
            sum( a.economic_loss ) AS economicLoss,
            sum( a.minor_injury_num ) AS minorInjuryNum,
            sum( a.serious_injury_num ) AS seriousInjuryNum,
            sum( a.death_num ) AS deathNum
        FROM
            `accident_report` a
            INNER JOIN `accident_express` b ON a.accident_express_id = b.id
            AND b.accident_department_id = #{deptId}
        WHERE
            a.del_flag = 0
            AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
            AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
        GROUP BY
            DATE_FORMAT( a.gmt_create, '%Y-%m-%d' ),
            a.accident_level
    </select>
</mapper>