From 208b6439eb8e63b6485240a8b466ebdcfd08c57a Mon Sep 17 00:00:00 2001 From: songhuangfeng123 <shf18767906695@163.com> Date: 星期一, 05 九月 2022 11:27:23 +0800 Subject: [PATCH] 应急统计 --- emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java | 197 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 164 insertions(+), 33 deletions(-) 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 a547e56..e865b2a 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 @@ -2,31 +2,33 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService; -import com.gkhy.safePlatform.commons.enums.E; +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.query.PageQuery; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; +import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.emergency.entity.*; +import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes; +import com.gkhy.safePlatform.emergency.excepiton.EmergencyException; import com.gkhy.safePlatform.emergency.model.dto.resp.*; import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery; import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery; -import com.gkhy.safePlatform.emergency.rpc.api.model.req.EmergencyExecuteNumRPCReq; -import com.gkhy.safePlatform.emergency.rpc.api.model.req.EmergencyExecuteTimeRPCReq; -import com.gkhy.safePlatform.emergency.rpc.api.model.resp.EmergencyExecuteNumRPCResp; -import com.gkhy.safePlatform.emergency.rpc.api.model.resp.EmergencyExecuteTimeRPCResp; +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.resp.EmergencyExecuteNumRPCResp; +import com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp.EmergencyExecuteTimeRPCResp; import com.gkhy.safePlatform.emergency.service.EmergencyCountService; -import com.gkhy.safePlatform.emergency.service.EmergencySuppliesService; import com.gkhy.safePlatform.emergency.service.baseService.EmergencyDrillExecuteInfoService; import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesInfoService; import com.gkhy.safePlatform.emergency.utils.TimeUtils; import org.apache.dubbo.config.annotation.DubboReference; -import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import sun.security.pkcs11.wrapper.CK_SSL3_KEY_MAT_OUT; import java.text.SimpleDateFormat; import java.util.*; @@ -44,25 +46,169 @@ private EmergencySuppliesInfoService emergencySuppliesInfoService; @Override - public EmergencyExecuteTimeRPCResp getTimeByDeptId(EmergencyExecuteTimeRPCReq query) { - return null; + public SearchResultVO<EmergencyExecuteTimeRPCResp> getTimeByDeptId(EmergencyExecuteTimeRPCReq query) { + EmergencyExecuteTimeRPCResp emergencyExecuteTimeRPCResp = new EmergencyExecuteTimeRPCResp(); + // 获取id对应的部门 + DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId()); + emergencyExecuteTimeRPCResp.setDeptId(depInfoRPCRespDTO.getDepId()); + emergencyExecuteTimeRPCResp.setDeptName(depInfoRPCRespDTO.getDepName()); + emergencyExecuteTimeRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel()); + + getSingleTimeData(emergencyExecuteTimeRPCResp); + return new SearchResultVO<>( + false, + null, + null, + null, + 1L, + emergencyExecuteTimeRPCResp, + ResultCodes.OK + ); } @Override - public List<EmergencyExecuteTimeRPCResp> getTimeByDeptIds(EmergencyExecuteTimeRPCReq query) { - return null; + public SearchResultVO<List<EmergencyExecuteTimeRPCResp>> getTimeByDeptIds(EmergencyExecuteTimeRPCReq query) { + List<EmergencyExecuteTimeRPCResp> list = new ArrayList<>(); + + // 获取该部门及其子部门的所有信息 + List<DepInfoRPCRespDTO> depList = getDepListInfoByDepId(query.getDeptId()); + for (DepInfoRPCRespDTO depInfoRPCRespDTO : depList){ + EmergencyExecuteTimeRPCResp emergencyExecuteTimeRPCResp = new EmergencyExecuteTimeRPCResp(); + emergencyExecuteTimeRPCResp.setDeptId(depInfoRPCRespDTO.getDepId()); + emergencyExecuteTimeRPCResp.setDeptName(depInfoRPCRespDTO.getDepName()); + emergencyExecuteTimeRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel()); + + getSingleTimeData(emergencyExecuteTimeRPCResp); + list.add(emergencyExecuteTimeRPCResp); + } + return new SearchResultVO<>( + false, + null, + null, + null, + (long) list.size(), + list, + ResultCodes.OK + ); + } + + private void getSingleTimeData(EmergencyExecuteTimeRPCResp emergencyExecuteTimeRPCResp){ + // 查询该部门最后一次演练时间 + String lastTime = emergencyDrillExecuteInfoService.selectEmergencyDrillExecuteIntervalTimeByDeptId(emergencyExecuteTimeRPCResp.getDeptId()); + if (StringUtils.isNotBlank(lastTime)){ + emergencyExecuteTimeRPCResp.setLastTime(lastTime); + emergencyExecuteTimeRPCResp.setDays(TimeUtils.differentDays(lastTime, TimeUtils.formatDate(new Date()))); + } } @Override - public EmergencyExecuteNumRPCResp getNumByDeptId(EmergencyExecuteNumRPCReq query) { - return null; + public SearchResultVO<EmergencyExecuteNumRPCResp> getNumByDeptId(EmergencyExecuteNumRPCReq query) { + if (query.getYear()==null){ + throw new EmergencyException(EmergencyResultCodes.YEAR_NULL); + } + EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp = new EmergencyExecuteNumRPCResp(); + // 获取id对应的部门 + DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId()); + emergencyExecuteNumRPCResp.setDeptId(depInfoRPCRespDTO.getDepId()); + emergencyExecuteNumRPCResp.setDeptName(depInfoRPCRespDTO.getDepName()); + emergencyExecuteNumRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel()); + + getSingleNumData(emergencyExecuteNumRPCResp,query); + + return new SearchResultVO<>( + false, + null, + null, + null, + 1L, + emergencyExecuteNumRPCResp, + ResultCodes.OK + ); } @Override - public List<EmergencyExecuteNumRPCResp> getNumByDeptIds(EmergencyExecuteNumRPCReq query) { - return null; + public SearchResultVO<List<EmergencyExecuteNumRPCResp>> getNumByDeptIds(EmergencyExecuteNumRPCReq query) { + List<EmergencyExecuteNumRPCResp> list = new ArrayList<>(); + + // 获取该部门及其子部门的所有信息 + List<DepInfoRPCRespDTO> deptList = getDepListInfoByDepId(query.getDeptId()); + + for (DepInfoRPCRespDTO depInfoRPCRespDTO : deptList){ + EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp = new EmergencyExecuteNumRPCResp(); + emergencyExecuteNumRPCResp.setDeptId(depInfoRPCRespDTO.getDepId()); + emergencyExecuteNumRPCResp.setDeptName(depInfoRPCRespDTO.getDepName()); + emergencyExecuteNumRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel()); + + getSingleNumData(emergencyExecuteNumRPCResp,query); + list.add(emergencyExecuteNumRPCResp); + } + return new SearchResultVO<>( + false, + null, + null, + null, + (long) list.size(), + list, + ResultCodes.OK + ); } + private void getSingleNumData(EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp,EmergencyExecuteNumRPCReq query){ + List<Long> deptIds = new ArrayList<>(); + deptIds.add(emergencyExecuteNumRPCResp.getDeptId()); + + List<Map<String,String>> mapList = new ArrayList<>(); + List<EmergencyDrillExecuteCountData> emergencyDrillExecuteCountDataList = new ArrayList<>(); + + String startTime ; + String endTime ; + if (query.getMonth()==null){ + // 查该年度12个月份的 + startTime = TimeUtils.getYearFirst(query.getYear()); + endTime = TimeUtils.getYearLast(query.getYear()); + emergencyDrillExecuteCountDataList= emergencyDrillExecuteInfoService.selectByMonthAndDept(startTime, endTime, deptIds); + }else{ + // 查该年度指定月份的 + startTime = TimeUtils.getMonthFirst(query.getYear(),query.getMonth()); + endTime = TimeUtils.getMonthLast(query.getYear(),query.getMonth()); + emergencyDrillExecuteCountDataList= emergencyDrillExecuteInfoService.selectByDayAndDept(startTime, endTime, deptIds); + } + if (!emergencyDrillExecuteCountDataList.isEmpty()){ + for (EmergencyDrillExecuteCountData emergencyDrillExecuteCountData : emergencyDrillExecuteCountDataList){ + Map<String ,String> map = new HashMap<>(); + map.put("name",emergencyDrillExecuteCountData.getName()); + map.put("num",emergencyDrillExecuteCountData.getNum().toString()); + mapList.add(map); + } + } + emergencyExecuteNumRPCResp.setData(mapList); + } + + 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<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(EmergencyDrillExecuteCountQuery query) { @@ -77,15 +223,15 @@ List<EmergencyDrillExecuteCountData> list = new ArrayList<>(); // 获取部门id集合 List<Long> deptIds = new ArrayList<>(); - - ResultVO<List<Long>> rpcResult = accountDepartmentService.listDepAndSubDepIds(query.getDeptId()); + deptIds.add(query.getDeptId()); +/* ResultVO<List<Long>> rpcResult = accountDepartmentService.listDepAndSubDepIds(query.getDeptId()); if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) { if (rpcResult.getData() != null) { deptIds = (List<Long>) rpcResult.getData(); } } else { throw new BusinessException(ResultCodes.CLIENT_DEP_NOT_EXIST); - } + }*/ // 获取时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); Date date = new Date(); @@ -159,19 +305,4 @@ ); } - - public static void main(String[] args) { - Date date = new Date();//获取当前日期 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化一下 - Calendar calendar1 = Calendar.getInstance();//获取对日期操作的类对象 - //两种写法都可以获取到前三天的日期 - calendar1.set(Calendar.DAY_OF_YEAR, calendar1.get(Calendar.DAY_OF_YEAR) - 40); - //在当前时间的基础上获取前三天的日期 -// calendar1.add(Calendar.DATE, -40); - //add方法 参数也可传入 月份,获取的是前几月或后几月的日期 - //calendar1.add(Calendar.MONTH, -3); - Date today = calendar1.getTime(); - String time = sdf.format(today); - System.out.println(time); - } } -- Gitblit v1.9.2