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.zipBinary 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>