songhuangfeng123
2022-09-05 90a86453a5266a88c8cbdbbddc888070ccb8df29
rpc统计fix
已修改12个文件
已添加9个文件
751 ■■■■■ 文件已修改
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/equ.zip 补丁 | 查看 | 原始文档 | 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 25 ●●●●● 补丁 | 查看 | 原始文档 | 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 149 ●●●●● 补丁 | 查看 | 原始文档 | 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);
}
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/equ.zip
Binary files differ
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
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.safePlatform.incidentManage.rpc.api.model;
public class IncidentManageCountData {
    private Integer num ;
    private String name ;
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
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 String time ;
    // 数据
    private List<IncidentManageCountDetailRPCResp> detail;
    public String getTime() {
        return time;
    }
    public void setTime(String 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 String time;
    private String level ;
    private Integer num ;
    private Integer minorInjuryNum;
    private Integer seriousInjuryNum;
    private Integer deathNum;
    private BigDecimal economicLoss;
    public String getTime() {
        return time;
    }
    public void setTime(String 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,141 @@
    @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);
        return new SearchResultVO<>(
                false,
                null,
                null,
                null,
                1L,
                incidentManageCountRPCResp,
                ResultCodes.OK
        );
    }
    @Override
    public SearchResultVO<List<IncidentManageRPCResp>> getCountByDeptIds(IncidentManageCountRPCReq query) {
        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);
        }
        return new SearchResultVO<>(
                false,
                null,
                null,
                null,
                (long) list.size(),
                list,
                ResultCodes.OK
        );
    }
    private void getSingleTimeData(IncidentManageRPCResp incidentManageRPCResp, IncidentManageCountRPCReq query) {
        List<IncidentManageCountRPCResp> resList = new ArrayList<>();
        List<AccidentReportCountRPC> accidentReportCountRPCList = new ArrayList<>();
        Long deptId = query.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<String> timeSET = accidentReportCountRPCList.stream().map(AccidentReportCountRPC::getTime).collect(Collectors.toSet());
        // 拼装第一层时间(排序)
        List<String> timeList = timeSET.stream().sorted().collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(timeSET)) {
            for (String str : timeSET) {
                IncidentManageCountRPCResp incidentManageCountRPCResp = new IncidentManageCountRPCResp();
                incidentManageCountRPCResp.setTime(str);
                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, '%Y-%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, '%Y-%m-%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>