From 80b96d6b2541ddd581bc9bdf1ecfcb566e06a478 Mon Sep 17 00:00:00 2001
From: zhangfeng <1603559716@qq.com>
Date: 星期三, 12 十月 2022 17:07:38 +0800
Subject: [PATCH] 修改应急演练查询接口
---
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java | 4
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencyExecuteDepLevelLasTimeRespDTO.java | 44 +++++++
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java | 6
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java | 4
emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml | 32 ++++-
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java | 12 +
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java | 4
emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteDepLevelLasTimeRPCRespDTO.java | 44 +++++++
emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyRpcProvider.java | 37 +++--
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java | 6
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java | 112 +++++++++++++-----
11 files changed, 237 insertions(+), 68 deletions(-)
diff --git a/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java
index 401dd5c..d54c4dc 100644
--- a/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java
+++ b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java
@@ -40,13 +40,13 @@
ResultVO<EmergencyExecuteTimeRPCRespDTO> getExecuteLastTimeByDeptId(Long depId);
// RPC接口--2、传入部门ID,查询该部门以及子级部门中最后一次完成应急演练的时间
- ResultVO<EmergencyExecuteTimeRPCRespDTO> getExecuteLastTimeByDeptIds(Long depId);
+ ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> getExecuteLastTimeByDeptIds(Long depId);
// RPC接口--1、传入部门ID,指定年份,月份,查询该部门最后一次完成应急演练的时间
ResultVO<EmergencyExecuteLastTimeRPCRespDTO> getExecuteLastTimeByDeptIdAndTime(EmergencydrillTimeRPCReq query);
// RPC接口--2、传入部门ID,,指定年份,月份,查询该部门以及子级部门中最后一次完成应急演练的时间
- ResultVO<EmergencyExecuteLastTimeRPCRespDTO> getExecuteLastTimeByDeptIdsAndTime(EmergencydrillTimeRPCReq query);
+ ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> getExecuteLastTimeByDeptIdsAndTime(EmergencydrillTimeRPCReq query);
// RPC接口--3、传入部门ID,指定月份 ,统计演练次数
ResultVO<StatisticsDepLevelMonthEexcuteRPCRespDTO> getExecuteCountByDeptIdAndMonth(EmergencyExecuteCountRPCReq query);
diff --git a/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteDepLevelLasTimeRPCRespDTO.java b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteDepLevelLasTimeRPCRespDTO.java
new file mode 100644
index 0000000..7921aca
--- /dev/null
+++ b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteDepLevelLasTimeRPCRespDTO.java
@@ -0,0 +1,44 @@
+package com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp;
+
+public class EmergencyExecuteDepLevelLasTimeRPCRespDTO {
+ //部门等级
+ private Byte depLevel;
+ //年
+ private Integer year;
+ //月
+ private Integer month;
+ //最后一次演练时间
+ private String LastPricateTime;
+
+ public Byte getDepLevel() {
+ return depLevel;
+ }
+
+ public void setDepLevel(Byte depLevel) {
+ this.depLevel = depLevel;
+ }
+
+ 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;
+ }
+
+ public String getLastPricateTime() {
+ return LastPricateTime;
+ }
+
+ public void setLastPricateTime(String lastPricateTime) {
+ LastPricateTime = lastPricateTime;
+ }
+}
diff --git a/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyRpcProvider.java b/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyRpcProvider.java
index bcc3210..52220f8 100644
--- a/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyRpcProvider.java
+++ b/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyRpcProvider.java
@@ -127,15 +127,20 @@
return result;
}
@Override
- public ResultVO<EmergencyExecuteTimeRPCRespDTO> getExecuteLastTimeByDeptIds(Long depId) {
- ResultVO<EmergencyExecuteTimeRPCRespDTO> result = new ResultVO<>(ResultCodes.OK);
+ public ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> getExecuteLastTimeByDeptIds(Long depId) {
+ ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> result = new ResultVO<>(ResultCodes.OK);
try{
- EmergencyExecuteTimeRPCRespDTO lastTimeRPCResp = new EmergencyExecuteTimeRPCRespDTO();
- EmergencyExecuteTimeRespDTO timeRespDTO = emergencyCountService.getLastTimeByDeptIds(depId);
- if(null != timeRespDTO){
- BeanUtils.copyProperties(timeRespDTO,lastTimeRPCResp);
+ List<EmergencyExecuteDepLevelLasTimeRespDTO> lasTimeRespDTOS = emergencyCountService.getLastTimeByDeptIds(depId);
+ List<EmergencyExecuteDepLevelLasTimeRPCRespDTO> timeRPCRespDTOS = new ArrayList<>();
+
+ for(EmergencyExecuteDepLevelLasTimeRespDTO timeRespDTO:lasTimeRespDTOS){
+ if(timeRespDTO != null){
+ EmergencyExecuteDepLevelLasTimeRPCRespDTO timeRPCRespDTO = new EmergencyExecuteDepLevelLasTimeRPCRespDTO();
+ BeanUtils.copyProperties(timeRespDTO,timeRPCRespDTO);
+ timeRPCRespDTOS.add(timeRPCRespDTO);
+ }
}
- result.setData(lastTimeRPCResp);
+ result.setData(timeRPCRespDTOS);
}catch (EmergencyException e){
result.setCode(e.getCode());
result.setMsg(e.getMessage());
@@ -171,20 +176,24 @@
}
@Override
- public ResultVO<EmergencyExecuteLastTimeRPCRespDTO> getExecuteLastTimeByDeptIdsAndTime(EmergencydrillTimeRPCReq query) {
- ResultVO<EmergencyExecuteLastTimeRPCRespDTO> result = new ResultVO<>(ResultCodes.OK);
+ public ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> getExecuteLastTimeByDeptIdsAndTime(EmergencydrillTimeRPCReq query) {
+ ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> result = new ResultVO<>(ResultCodes.OK);
EmergencyDrillTimeQuery timeQuery = new EmergencyDrillTimeQuery();
timeQuery.setDeptId(query.getDeptId());
timeQuery.setYear(query.getYear());
timeQuery.setMonth(query.getMonth());
try{
- EmergencyExecuteLastTimeRPCRespDTO lastTimeRPCResp = new EmergencyExecuteLastTimeRPCRespDTO();
- EmergencyExecuteLastTimeRespDTO timeRespDTO = emergencyCountService.getLastPracticeTimeByDeptIdsAndTime(timeQuery);
- if(null != timeRespDTO){
- BeanUtils.copyProperties(timeRespDTO,lastTimeRPCResp);
+ List<EmergencyExecuteDepLevelLasTimeRPCRespDTO> levelLasTimeRPCRespDTOS = new ArrayList<>();
+ List<EmergencyExecuteDepLevelLasTimeRespDTO> lasTimeRespDTOS = emergencyCountService.getLastPracticeTimeByDeptIdsAndTime(timeQuery);
+ for(EmergencyExecuteDepLevelLasTimeRespDTO lastTimeRPCRespDTO :lasTimeRespDTOS){
+ if(null != lastTimeRPCRespDTO){
+ EmergencyExecuteDepLevelLasTimeRPCRespDTO levelLasTimeRPCRespDTO = new EmergencyExecuteDepLevelLasTimeRPCRespDTO();
+ BeanUtils.copyProperties(lastTimeRPCRespDTO,levelLasTimeRPCRespDTO);
+ levelLasTimeRPCRespDTOS.add(levelLasTimeRPCRespDTO);
+ }
}
- result.setData(lastTimeRPCResp);
+ result.setData(levelLasTimeRPCRespDTOS);
}catch (EmergencyException e){
result.setCode(e.getCode());
result.setMsg(e.getMessage());
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java
index 7573261..bd0dd04 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java
@@ -91,7 +91,7 @@
* 根据部门以及子级部门查询最后一次完成应急演练的时间
*/
@RequestMapping(value = "/getLastTimeByDeptIds",method = RequestMethod.POST)
- public EmergencyExecuteTimeRespDTO getLastTimeByDeptIds(@RequestBody JSONObject jsonObject){
+ public List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastTimeByDeptIds(@RequestBody JSONObject jsonObject){
Long deptId = jsonObject.getLong("deptId");
return emergencyCountService.getLastTimeByDeptIds(deptId);
}
@@ -107,7 +107,7 @@
* 根据部门以及子级部门,年份月份,查询最后一次完成应急演练的时间
*/
@RequestMapping(value = "/getLastTimeByDeptIdsAndTime",method = RequestMethod.POST)
- public EmergencyExecuteLastTimeRespDTO getLastTimeByDeptIdsAndTime(@RequestBody EmergencyDrillTimeQuery query){
+ public List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastTimeByDeptIdsAndTime(@RequestBody EmergencyDrillTimeQuery query){
return emergencyCountService.getLastPracticeTimeByDeptIdsAndTime(query);
}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencyExecuteDepLevelLasTimeRespDTO.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencyExecuteDepLevelLasTimeRespDTO.java
new file mode 100644
index 0000000..d7ebb61
--- /dev/null
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencyExecuteDepLevelLasTimeRespDTO.java
@@ -0,0 +1,44 @@
+package com.gkhy.safePlatform.emergency.model.dto.resp;
+
+public class EmergencyExecuteDepLevelLasTimeRespDTO {
+ //部门等级
+ private Byte depLevel;
+ //年
+ private Integer year;
+ //月
+ private Integer month;
+ //最后一次演练时间
+ private String LastPricateTime;
+
+ public Byte getDepLevel() {
+ return depLevel;
+ }
+
+ public void setDepLevel(Byte depLevel) {
+ this.depLevel = depLevel;
+ }
+
+ 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;
+ }
+
+ public String getLastPricateTime() {
+ return LastPricateTime;
+ }
+
+ public void setLastPricateTime(String lastPricateTime) {
+ LastPricateTime = lastPricateTime;
+ }
+}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java
index 9cff90a..872ecdb 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java
@@ -38,7 +38,7 @@
String getLastTimeByDeptId(@Param("deptId")Long deptId);
- String getLastTimeByDeptIds(@Param("deptIdList")List<Long> deptIdList);
+ List<EmergencyDrillExecuteLastTimeDO> getLastTimeByDeptIds(@Param("deptIdList")List<Long> deptIdList);
List<EmergencyExecuteCountDO> getCountByDeptIdsAndTime(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("deptIds")List<Long> deptIds);
@@ -46,5 +46,7 @@
List<EmergencyExecuteCountDO> getCountByDeptIdAndYear(@Param("year")Integer year, @Param("deptId")Long deptId);
- String getLastTimeByDeptIdsAndTime(@Param("deptIdList")List<Long> deptIdList, @Param("startTime")String startTime, @Param("endTime")String endTime);
+ List<EmergencyDrillExecuteLastTimeDO> getLastTimeByDeptIdsAndTime(@Param("deptIdList")List<Long> deptIdList, @Param("startTime")String startTime, @Param("endTime")String endTime);
+
+ String getLastTimeByDeptIdAndTime(@Param("deptId")Long deptId, @Param("startTime")String startTime, @Param("endTime")String endTime);
}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java
index 8f3858b..b329447 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java
@@ -39,7 +39,7 @@
//根据部门id查询最后一次完成应急演练的时间
EmergencyExecuteTimeRespDTO getLastTimeByDeptId(Long deptId);
//根据部门id查询该部门以及其子级部门最后一次完成应急演练的时间
- EmergencyExecuteTimeRespDTO getLastTimeByDeptIds(Long deptId);
+ List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastTimeByDeptIds(Long deptId);
/**
* 根据部门id统计指定年份的应急演练数据
* @param query
@@ -69,6 +69,6 @@
EmergencyExecuteLastTimeRespDTO getLastPracticeTimeByDeptIdAndTime(EmergencyDrillTimeQuery query);
- EmergencyExecuteLastTimeRespDTO getLastPracticeTimeByDeptIdsAndTime(EmergencyDrillTimeQuery query);
+ List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastPracticeTimeByDeptIdsAndTime(EmergencyDrillTimeQuery query);
}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java
index 60764b7..06ea050 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java
@@ -36,11 +36,13 @@
String getLastTimeByDeptId(Long deptId);
- String getLastTimeByDeptIds(List<Long> deptIdList);
+ List<EmergencyDrillExecuteLastTimeDO> getLastTimeByDeptIds(List<Long> deptIdList);
List<EmergencyExecuteCountDO> getCountByDeptIdsAndTime(String startTime, String endTime, List<Long> deptId);
EmergencyExecuteCountDO getCountByDeptIdAndMonth(Integer year,Integer month, Long deptId);
List<EmergencyExecuteCountDO> getCountByDeptIdAndYear(Integer year, Long deptId);
- String getLastTimeByDeptIdsAndTime(List<Long> deptIdList,String startTime,String endTime);
+ List<EmergencyDrillExecuteLastTimeDO> getLastTimeByDeptIdsAndTime(List<Long> deptIdList,String startTime,String endTime);
+
+ String getLastTimeByDeptIdAndTime(Long deptId, String startTime, String endTime);
}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java
index b7c5a9e..1627f7e 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java
@@ -89,14 +89,14 @@
}
@Override
- public String getLastTimeByDeptIds(List<Long> deptIdList) {
+ public List<EmergencyDrillExecuteLastTimeDO> getLastTimeByDeptIds(List<Long> deptIdList) {
if(null == deptIdList || deptIdList.size() == 0){
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL);
}
return baseMapper.getLastTimeByDeptIds(deptIdList);
}
@Override
- public String getLastTimeByDeptIdsAndTime(List<Long> deptIdList,String startTime,String endTime) {
+ public List<EmergencyDrillExecuteLastTimeDO> getLastTimeByDeptIdsAndTime(List<Long> deptIdList,String startTime,String endTime) {
if(null == deptIdList || deptIdList.size() == 0 || StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)){
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL);
}
@@ -104,6 +104,14 @@
}
@Override
+ public String getLastTimeByDeptIdAndTime(Long deptId, String startTime, String endTime) {
+ if(null == deptId || StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)){
+ throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL);
+ }
+ return baseMapper.getLastTimeByDeptIdAndTime(deptId,startTime,endTime);
+ }
+
+ @Override
public List<EmergencyExecuteCountDO> getCountByDeptIdsAndTime(String startTime, String endTime, List<Long> deptIds) {
if(null == deptIds || StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime) || deptIds.size() == 0){
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL);
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java
index 3509e45..24c9560 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java
@@ -33,6 +33,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -372,7 +373,7 @@
* 查询部门及其子级部门最后一次演练时间
* 后面按部门等级划分
*/
- public EmergencyExecuteTimeRespDTO getLastTimeByDeptIds(Long deptId){
+ public List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastTimeByDeptIds(Long deptId){
if(null == deptId){
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL);
@@ -384,22 +385,58 @@
.stream()
.map(dep -> dep.getDepId())
.collect(Collectors.toList());
- //过滤出传入部门的信息
- List<DepInfoRPCRespDTO> selectDepList = depInfoList
- .stream()
- .filter(dep -> dep.getDepId().equals(deptId))
- .collect(Collectors.toList());
// 查询该部门ids最后一次演练时间
- String lastTime = emergencyDrillExecuteInfoService.getLastTimeByDeptIds(deptIdList);
+ List<EmergencyDrillExecuteLastTimeDO> executeLastTimeDOS = emergencyDrillExecuteInfoService.getLastTimeByDeptIds(deptIdList);
+ List<EmergencyExecuteDepLevelLasTimeRespDTO> depLevelRespDTOList = new ArrayList<>();
+ //循环部门等级
+ for(DepartmentLevelEnum departmentLevelEnum : DepartmentLevelEnum.values()){
+ //数据填充
+ EmergencyExecuteDepLevelLasTimeRespDTO depLevelRespDTO = new EmergencyExecuteDepLevelLasTimeRespDTO();
+ depLevelRespDTO.setDepLevel(departmentLevelEnum.getCode());
- //填充数据
- EmergencyExecuteTimeRespDTO respDTO = new EmergencyExecuteTimeRespDTO();
- respDTO.setDepId(deptId);
- respDTO.setLastPricticeTime(StringUtils.isBlank(lastTime) == true ? "" : lastTime);
- if(selectDepList.size()>0){
- respDTO.setDepLevel(selectDepList.get(0).getDepLevel());
+ //该等级下的部门数据
+ List<DepInfoRPCRespDTO> selectDepList = depInfoList
+ .stream()
+ .filter(dep -> dep.getDepLevel().equals(departmentLevelEnum.getCode()))
+ .collect(Collectors.toList());
+ //获取该部门等级下部门演练数据
+ List<EmergencyDrillExecuteLastTimeDO> selectExeList = executeLastTimeDOS
+ .stream()
+ .filter(exe -> selectDepList.stream().map(dep -> dep.getDepId()).collect(Collectors.toList()).contains(exe.getDeptId()))
+ .collect(Collectors.toList());
+ //获取该等级最后一次演练时间
+ String lastTime = getLastPracticeTime(selectExeList);
+ depLevelRespDTO.setLastPricateTime(lastTime);
+ depLevelRespDTOList.add(depLevelRespDTO);
}
- return respDTO;
+ return depLevelRespDTOList;
+ }
+ //获取最大日期
+ private String getLastPracticeTime(List<EmergencyDrillExecuteLastTimeDO> selectExeList){
+ String lastTime = "";
+ if(selectExeList.size()>0){
+ SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Collections.sort(selectExeList, new Comparator<EmergencyDrillExecuteLastTimeDO>(){
+ @Override
+ public int compare(EmergencyDrillExecuteLastTimeDO timeDO01, EmergencyDrillExecuteLastTimeDO timeDO02) {
+
+ int flag = -1;
+ try {
+ Date date1 = sdft.parse(timeDO01.getLastTime());
+ Date date2 = sdft.parse(timeDO02.getLastTime());
+ if(date1.before(date2)){
+ flag=1;
+ }
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ return flag;
+ } //compare
+ });
+ EmergencyDrillExecuteLastTimeDO lastTimeDO = selectExeList.get(0);
+ lastTime = lastTimeDO.getLastTime();
+ }
+ return lastTime;
}
@Override
public EmergencyExecuteLastTimeRespDTO getLastPracticeTimeByDeptIdAndTime(EmergencyDrillTimeQuery query) {
@@ -411,8 +448,6 @@
}
//通过RPC获取部门相关数据
DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId());
- List<Long> idList = new ArrayList<>();
- idList.add(query.getDeptId());
//开始时间结束时间
String startTime;
String endTime;
@@ -424,7 +459,7 @@
endTime = TimeUtils.getMonthLast(query.getYear(),query.getMonth());
}
// 查询该部门最后一次演练时间
- String lastTime = emergencyDrillExecuteInfoService.getLastTimeByDeptIdsAndTime(idList,startTime,endTime);
+ String lastTime = emergencyDrillExecuteInfoService.getLastTimeByDeptIdAndTime(query.getDeptId(), startTime,endTime);
//填充数据
EmergencyExecuteLastTimeRespDTO respDTO = new EmergencyExecuteLastTimeRespDTO();
respDTO.setDepId(depInfoRPCRespDTO.getDepId());
@@ -436,7 +471,7 @@
}
@Override
- public EmergencyExecuteLastTimeRespDTO getLastPracticeTimeByDeptIdsAndTime(EmergencyDrillTimeQuery query) {
+ public List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastPracticeTimeByDeptIdsAndTime(EmergencyDrillTimeQuery query) {
if(null == query.getDeptId()){
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL,"部门id不可为空");
}
@@ -450,11 +485,6 @@
.stream()
.map(dep -> dep.getDepId())
.collect(Collectors.toList());
- //过滤出传入部门的信息
- List<DepInfoRPCRespDTO> selectDepList = depInfoList
- .stream()
- .filter(dep -> dep.getDepId().equals(query.getDeptId()))
- .collect(Collectors.toList());
//开始时间结束时间
String startTime;
String endTime;
@@ -466,18 +496,32 @@
endTime = TimeUtils.getMonthLast(query.getYear(),query.getMonth());
}
// 查询该部门ids最后一次演练时间
- String lastTime = emergencyDrillExecuteInfoService.getLastTimeByDeptIdsAndTime(deptIdList,startTime,endTime);
-
- //填充数据
- EmergencyExecuteLastTimeRespDTO respDTO = new EmergencyExecuteLastTimeRespDTO();
- respDTO.setDepId(query.getDeptId());
- respDTO.setYear(query.getYear());
- respDTO.setMonth(query.getMonth());
- respDTO.setLastPricticeTime(StringUtils.isBlank(lastTime) == true ? "" : lastTime);
- if(selectDepList.size()>0){
- respDTO.setDepLevel(selectDepList.get(0).getDepLevel());
+ List<EmergencyDrillExecuteLastTimeDO> executeLastTimeDOS = emergencyDrillExecuteInfoService.getLastTimeByDeptIdsAndTime(deptIdList,startTime,endTime);
+ List<EmergencyExecuteDepLevelLasTimeRespDTO> depLevelRespDTOList = new ArrayList<>();
+ //循环部门等级
+ for(DepartmentLevelEnum departmentLevelEnum : DepartmentLevelEnum.values()){
+ //数据填充
+ EmergencyExecuteDepLevelLasTimeRespDTO depLevelRespDTO = new EmergencyExecuteDepLevelLasTimeRespDTO();
+ depLevelRespDTO.setDepLevel(departmentLevelEnum.getCode());
+ depLevelRespDTO.setYear(query.getYear());
+ depLevelRespDTO.setMonth(query.getMonth());
+ //该等级下的部门数据
+ List<DepInfoRPCRespDTO> selectDepList = depInfoList
+ .stream()
+ .filter(dep -> dep.getDepLevel().equals(departmentLevelEnum.getCode()))
+ .collect(Collectors.toList());
+ //获取该部门等级下部门演练数据
+ List<EmergencyDrillExecuteLastTimeDO> selectExeList = executeLastTimeDOS
+ .stream()
+ .filter(exe -> selectDepList.stream().map(dep -> dep.getDepId()).collect(Collectors.toList()).contains(exe.getDeptId()))
+ .collect(Collectors.toList());
+ //获取该等级最后一次演练时间
+ String lastTime = getLastPracticeTime(selectExeList);
+ depLevelRespDTO.setLastPricateTime(lastTime);
+ depLevelRespDTOList.add(depLevelRespDTO);
}
- return respDTO;
+
+ return depLevelRespDTOList;
}
/**
* 根据部门id和指定年份 统计演练数据
diff --git a/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml b/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
index 55c1692..3d18dba 100644
--- a/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
+++ b/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
@@ -242,16 +242,19 @@
AND a.del_flag = 0 AND b.department_id = #{deptId}
</select>
<!--根据部门及其子级获取-->
- <select id="getLastTimeByDeptIds" resultType="java.lang.String">
+ <select id="getLastTimeByDeptIds" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteLastTimeDO">
SELECT
- DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime
+ DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime,
+ b.department_id AS deptId
FROM
- `emergency_drill_execute` a
- INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
- AND a.del_flag = 0 AND b.department_id IN
+ `emergency_drill_execute` a
+ INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
+ AND a.del_flag = 0 AND b.department_id IN
<foreach collection="deptIdList" item="deptId" open="(" close=")" separator=",">
#{deptId}
</foreach>
+ GROUP BY
+ b.department_id
</select>
<select id="getCountByDeptIdsAndTime" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyExecuteCountDO">
SELECT
@@ -304,9 +307,10 @@
DATE_FORMAT( a.gmt_create, '%Y-%m' ),
DATE_FORMAT(a.gmt_create,'%m')
</select>
- <select id="getLastTimeByDeptIdsAndTime" resultType="java.lang.String">
+ <select id="getLastTimeByDeptIdsAndTime" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteLastTimeDO">
SELECT
- DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime
+ DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime,
+ b.department_id AS deptId
FROM
`emergency_drill_execute` a
INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
@@ -317,6 +321,18 @@
<foreach collection="deptIdList" item="deptId" open="(" close=")" separator=",">
#{deptId}
</foreach>
+ GROUP BY
+ b.department_id
</select>
-
+ <select id="getLastTimeByDeptIdAndTime" resultType="java.lang.String">
+ SELECT
+ 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
+ AND a.del_flag = 0
+ AND DATE( a.gmt_create ) BETWEEN #{startTime}
+ AND #{endTime}
+ AND b.department_id = #{deptId}
+ </select>
</mapper>
--
Gitblit v1.9.2