From 9a73660fa673120de8fb4fdacdfe2a9f47fe9fbb Mon Sep 17 00:00:00 2001 From: zhangfeng <1603559716@qq.com> Date: 星期二, 08 十一月 2022 08:38:10 +0800 Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/safePlatform-out into zf --- 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 | 5 emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml | 43 +++ emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteDepLevelLasTimeRPCRespDTO.java | 44 ++++ emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteTimeRPCRespDTO.java | 2 emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyRpcProvider.java | 74 ++++++ emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCRespDTO.java | 28 ++ emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java | 150 ++++++++++++- emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java | 6 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/schedule/KeepAliveRobot.java | 28 ++ emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java | 18 + emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencyExecuteLastTimeRespDTO.java | 58 +++++ emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/req/EmergencydrillTimeRPCReq.java | 35 +++ emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java | 17 + emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/EmergencyRpcAPi.java | 11 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillTimeQuery.java | 35 +++ emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java | 4 17 files changed, 562 insertions(+), 40 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 ae173b8..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 @@ -7,6 +7,7 @@ import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteCountRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteNumRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteTimeRPCReq; +import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencydrillTimeRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp.*; @@ -36,10 +37,16 @@ /*****************************************重构***********************************************************/ // RPC接口--1、传入部门ID,查询该部门最后一次完成应急演练的时间 - ResultVO<EmergencyExecuteLastTimeRPCResp> getExecuteLastTimeByDeptId(Long depId); + ResultVO<EmergencyExecuteTimeRPCRespDTO> getExecuteLastTimeByDeptId(Long depId); // RPC接口--2、传入部门ID,查询该部门以及子级部门中最后一次完成应急演练的时间 - ResultVO<EmergencyExecuteLastTimeRPCResp> getExecuteLastTimeByDeptIds(Long depId); + ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> getExecuteLastTimeByDeptIds(Long depId); + + // RPC接口--1、传入部门ID,指定年份,月份,查询该部门最后一次完成应急演练的时间 + ResultVO<EmergencyExecuteLastTimeRPCRespDTO> getExecuteLastTimeByDeptIdAndTime(EmergencydrillTimeRPCReq query); + + // RPC接口--2、传入部门ID,,指定年份,月份,查询该部门以及子级部门中最后一次完成应急演练的时间 + 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/req/EmergencydrillTimeRPCReq.java b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/req/EmergencydrillTimeRPCReq.java new file mode 100644 index 0000000..0a6e41e --- /dev/null +++ b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/req/EmergencydrillTimeRPCReq.java @@ -0,0 +1,35 @@ +package com.gkhy.safePlatform.emergency.rpc.api.model.dto.req; + +public class EmergencydrillTimeRPCReq { + //部门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; + } + +} 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-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCResp.java b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCRespDTO.java similarity index 63% copy from emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCResp.java copy to emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCRespDTO.java index 89009b6..f564bbe 100644 --- a/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCResp.java +++ b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCRespDTO.java @@ -1,15 +1,17 @@ package com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp; -/** - * 应急演练时间 - */ -public class EmergencyExecuteLastTimeRPCResp { - +public class EmergencyExecuteLastTimeRPCRespDTO { // 部门id private Long depId; // 部门级别 private Byte depLevel; + + //年份 + private Integer year; + + //月份 + private Integer month; //左后一次演练的时间 private String lastPricticeTime; @@ -30,6 +32,22 @@ 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 getLastPricticeTime() { return lastPricticeTime; } diff --git a/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCResp.java b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteTimeRPCRespDTO.java similarity index 93% rename from emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCResp.java rename to emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteTimeRPCRespDTO.java index 89009b6..9f3e154 100644 --- a/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteLastTimeRPCResp.java +++ b/emergency/emergency-rpc-api/src/main/java/com/gkhy/safePlatform/emergency/rpc/api/model/dto/resp/EmergencyExecuteTimeRPCRespDTO.java @@ -3,7 +3,7 @@ /** * 应急演练时间 */ -public class EmergencyExecuteLastTimeRPCResp { +public class EmergencyExecuteTimeRPCRespDTO { // 部门id private Long depId; 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 c0b9b22..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 @@ -10,10 +10,12 @@ import com.gkhy.safePlatform.emergency.excepiton.EmergencyException; import com.gkhy.safePlatform.emergency.model.dto.resp.*; import com.gkhy.safePlatform.emergency.query.EmergencyDrillCountQuery; +import com.gkhy.safePlatform.emergency.query.EmergencyDrillTimeQuery; import com.gkhy.safePlatform.emergency.rpc.api.EmergencyRpcAPi; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteCountRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteNumRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteTimeRPCReq; +import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencydrillTimeRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp.*; import com.gkhy.safePlatform.emergency.service.EmergencyCountService; import com.gkhy.safePlatform.emergency.service.EmergencySuppliesService; @@ -106,10 +108,10 @@ } @Override - public ResultVO<EmergencyExecuteLastTimeRPCResp> getExecuteLastTimeByDeptId(Long depId) { - ResultVO<EmergencyExecuteLastTimeRPCResp> result = new ResultVO<>(ResultCodes.OK); + public ResultVO<EmergencyExecuteTimeRPCRespDTO> getExecuteLastTimeByDeptId(Long depId) { + ResultVO<EmergencyExecuteTimeRPCRespDTO> result = new ResultVO<>(ResultCodes.OK); try{ - EmergencyExecuteLastTimeRPCResp lastTimeRPCResp = new EmergencyExecuteLastTimeRPCResp(); + EmergencyExecuteTimeRPCRespDTO lastTimeRPCResp = new EmergencyExecuteTimeRPCRespDTO(); EmergencyExecuteTimeRespDTO timeRespDTO = emergencyCountService.getLastTimeByDeptId(depId); if(null != timeRespDTO){ BeanUtils.copyProperties(timeRespDTO,lastTimeRPCResp); @@ -125,11 +127,40 @@ return result; } @Override - public ResultVO<EmergencyExecuteLastTimeRPCResp> getExecuteLastTimeByDeptIds(Long depId) { - ResultVO<EmergencyExecuteLastTimeRPCResp> result = new ResultVO<>(ResultCodes.OK); + public ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> getExecuteLastTimeByDeptIds(Long depId) { + ResultVO<List<EmergencyExecuteDepLevelLasTimeRPCRespDTO>> result = new ResultVO<>(ResultCodes.OK); try{ - EmergencyExecuteLastTimeRPCResp lastTimeRPCResp = new EmergencyExecuteLastTimeRPCResp(); - EmergencyExecuteTimeRespDTO timeRespDTO = emergencyCountService.getLastTimeByDeptIds(depId); + 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(timeRPCRespDTOS); + }catch (EmergencyException e){ + result.setCode(e.getCode()); + result.setMsg(e.getMessage()); + }catch (Exception e) { + result.setCode(EmergencyResultCodes.ERROR.getCode()); + result.setMsg(EmergencyResultCodes.ERROR.getDesc()); + } + return result; + } + + @Override + public ResultVO<EmergencyExecuteLastTimeRPCRespDTO> getExecuteLastTimeByDeptIdAndTime(EmergencydrillTimeRPCReq query) { + ResultVO<EmergencyExecuteLastTimeRPCRespDTO> 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.getLastPracticeTimeByDeptIdAndTime(timeQuery); if(null != timeRespDTO){ BeanUtils.copyProperties(timeRespDTO,lastTimeRPCResp); } @@ -145,6 +176,35 @@ } @Override + 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{ + 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(levelLasTimeRPCRespDTOS); + }catch (EmergencyException e){ + result.setCode(e.getCode()); + result.setMsg(e.getMessage()); + }catch (Exception e) { + result.setCode(EmergencyResultCodes.ERROR.getCode()); + result.setMsg(EmergencyResultCodes.ERROR.getDesc()); + } + return result; + } + + @Override public ResultVO<StatisticsDepLevelMonthEexcuteRPCRespDTO> getExecuteCountByDeptIdAndMonth(EmergencyExecuteCountRPCReq query) { ResultVO<StatisticsDepLevelMonthEexcuteRPCRespDTO> result = new ResultVO<>(ResultCodes.OK); 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 1eeab81..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 @@ -8,6 +8,7 @@ import com.gkhy.safePlatform.emergency.model.dto.resp.*; import com.gkhy.safePlatform.emergency.query.EmergencyDrillCountQuery; import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery; +import com.gkhy.safePlatform.emergency.query.EmergencyDrillTimeQuery; import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteNumRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteTimeRPCReq; @@ -90,12 +91,27 @@ * 根据部门以及子级部门查询最后一次完成应急演练的时间 */ @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); } /** + * 根据部门id,年份月份,查询最后一次完成应急演练的时间 + */ + @RequestMapping(value = "/getLastTimeByDeptIdAndTime",method = RequestMethod.POST) + public EmergencyExecuteLastTimeRespDTO getLastTimeByDeptIdAndTime(@RequestBody EmergencyDrillTimeQuery query){ + return emergencyCountService.getLastPracticeTimeByDeptIdAndTime(query); + } + /** + * 根据部门以及子级部门,年份月份,查询最后一次完成应急演练的时间 + */ + @RequestMapping(value = "/getLastTimeByDeptIdsAndTime",method = RequestMethod.POST) + public List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastTimeByDeptIdsAndTime(@RequestBody EmergencyDrillTimeQuery query){ + return emergencyCountService.getLastPracticeTimeByDeptIdsAndTime(query); + } + + /** * 根据指定和年份统计演练数据 * @param query * @return 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/model/dto/resp/EmergencyExecuteLastTimeRespDTO.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencyExecuteLastTimeRespDTO.java new file mode 100644 index 0000000..26db663 --- /dev/null +++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencyExecuteLastTimeRespDTO.java @@ -0,0 +1,58 @@ +package com.gkhy.safePlatform.emergency.model.dto.resp; + +public class EmergencyExecuteLastTimeRespDTO { + // 部门id + private Long depId; + + // 部门级别 + private Byte depLevel; + + //年份 + private Integer year; + + //月份 + private Integer month; + + //左后一次演练的时间 + private String lastPricticeTime; + + public Long getDepId() { + return depId; + } + + public void setDepId(Long depId) { + this.depId = depId; + } + + 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 getLastPricticeTime() { + return lastPricticeTime; + } + + public void setLastPricticeTime(String lastPricticeTime) { + this.lastPricticeTime = lastPricticeTime; + } +} diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillTimeQuery.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillTimeQuery.java new file mode 100644 index 0000000..4ac1688 --- /dev/null +++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillTimeQuery.java @@ -0,0 +1,35 @@ +package com.gkhy.safePlatform.emergency.query; + +public class EmergencyDrillTimeQuery { + //部门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; + } + +} 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 7d31b2a..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,4 +46,7 @@ List<EmergencyExecuteCountDO> getCountByDeptIdAndYear(@Param("year")Integer year, @Param("deptId")Long deptId); + 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 7f97f22..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 @@ -6,6 +6,7 @@ import com.gkhy.safePlatform.emergency.model.dto.resp.*; import com.gkhy.safePlatform.emergency.query.EmergencyDrillCountQuery; import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery; +import com.gkhy.safePlatform.emergency.query.EmergencyDrillTimeQuery; import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteNumRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteTimeRPCReq; @@ -38,7 +39,7 @@ //根据部门id查询最后一次完成应急演练的时间 EmergencyExecuteTimeRespDTO getLastTimeByDeptId(Long deptId); //根据部门id查询该部门以及其子级部门最后一次完成应急演练的时间 - EmergencyExecuteTimeRespDTO getLastTimeByDeptIds(Long deptId); + List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastTimeByDeptIds(Long deptId); /** * 根据部门id统计指定年份的应急演练数据 * @param query @@ -66,5 +67,8 @@ */ List<StatisticsDepLevelMonthEexcuteRespDTO> getCountByDeptIdsAndMonth(EmergencyDrillCountQuery query); + EmergencyExecuteLastTimeRespDTO getLastPracticeTimeByDeptIdAndTime(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 111f474..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); + 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 4eca391..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,12 +89,27 @@ } @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 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); + } + return baseMapper.getLastTimeByDeptIdsAndTime(deptIdList,startTime,endTime); + } + + @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) { 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 3836a66..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 @@ -17,6 +17,7 @@ import com.gkhy.safePlatform.emergency.model.dto.resp.*; import com.gkhy.safePlatform.emergency.query.EmergencyDrillCountQuery; import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery; +import com.gkhy.safePlatform.emergency.query.EmergencyDrillTimeQuery; import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteNumRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteTimeRPCReq; @@ -32,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; @@ -371,7 +373,7 @@ * 查询部门及其子级部门最后一次演练时间 * 后面按部门等级划分 */ - public EmergencyExecuteTimeRespDTO getLastTimeByDeptIds(Long deptId){ + public List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastTimeByDeptIds(Long deptId){ if(null == deptId){ throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL); @@ -383,24 +385,144 @@ .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 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) { + if(null == query.getDeptId()){ + throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL,"部门id不可为空"); + } + if(null == query.getYear()){ + throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL,"年份不可为空"); + } + //通过RPC获取部门相关数据 + DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId()); + //开始时间结束时间 + String startTime; + String endTime; + if(null == query.getMonth()){//年 + startTime = TimeUtils.getYearFirst(query.getYear()); + endTime = TimeUtils.getYearLast(query.getYear()); + }else{//月 + startTime = TimeUtils.getMonthFirst(query.getYear(),query.getMonth()); + endTime = TimeUtils.getMonthLast(query.getYear(),query.getMonth()); + } + // 查询该部门最后一次演练时间 + String lastTime = emergencyDrillExecuteInfoService.getLastTimeByDeptIdAndTime(query.getDeptId(), startTime,endTime); + //填充数据 + EmergencyExecuteLastTimeRespDTO respDTO = new EmergencyExecuteLastTimeRespDTO(); + respDTO.setDepId(depInfoRPCRespDTO.getDepId()); + respDTO.setDepLevel(depInfoRPCRespDTO.getDepLevel()); + respDTO.setYear(query.getYear()); + respDTO.setMonth(query.getMonth()); + respDTO.setLastPricticeTime(StringUtils.isBlank(lastTime) == true ? "" : lastTime); return respDTO; } + @Override + public List<EmergencyExecuteDepLevelLasTimeRespDTO> getLastPracticeTimeByDeptIdsAndTime(EmergencyDrillTimeQuery query) { + if(null == query.getDeptId()){ + throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL,"部门id不可为空"); + } + if(null == query.getYear()){ + throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL,"年份不可为空"); + } + //通过RPC获取部门相关数据 + List<DepInfoRPCRespDTO> depInfoList = getDepListInfoByDepId(query.getDeptId()); + //过滤获取部门id + List<Long> deptIdList = depInfoList + .stream() + .map(dep -> dep.getDepId()) + .collect(Collectors.toList()); + //开始时间结束时间 + String startTime; + String endTime; + if(null == query.getMonth()){//年 + startTime = TimeUtils.getYearFirst(query.getYear()); + endTime = TimeUtils.getYearLast(query.getYear()); + }else{//月 + startTime = TimeUtils.getMonthFirst(query.getYear(),query.getMonth()); + endTime = TimeUtils.getMonthLast(query.getYear(),query.getMonth()); + } + // 查询该部门ids最后一次演练时间 + 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 depLevelRespDTOList; + } /** * 根据部门id和指定年份 统计演练数据 * @@ -615,4 +737,6 @@ } + + } 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 e6e6f5a..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,6 +307,32 @@ DATE_FORMAT( a.gmt_create, '%Y-%m' ), DATE_FORMAT(a.gmt_create,'%m') </select> - - + <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, + 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 DATE( a.gmt_create ) BETWEEN #{startTime} + AND #{endTime} + AND b.department_id IN + <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> diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/schedule/KeepAliveRobot.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/schedule/KeepAliveRobot.java new file mode 100644 index 0000000..7deed08 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/schedule/KeepAliveRobot.java @@ -0,0 +1,28 @@ +package com.gkhy.safePlatform.equipment.schedule; + +import com.gkhy.safePlatform.equipment.service.EquipmentInfoService; +import com.gkhy.safePlatform.equipment.service.baseService.EquipmentInfoBaseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + + +@Component("equipmentKeepAlive") +@EnableScheduling +@ConditionalOnProperty(prefix = "threadPool.scheduling", name = "enabled", havingValue = "true") +public class KeepAliveRobot { + + @Autowired + private EquipmentInfoBaseService equipmentInfoBaseService; + + // 30m + @Scheduled(cron = "0 0/30 * * * ?") + public void keepAlive(){ + // + equipmentInfoBaseService.getById(-1L); + + } + +} -- Gitblit v1.9.2