From f1f506172a3edff8d31e4db77b8940f115660919 Mon Sep 17 00:00:00 2001 From: songhuangfeng123 <shf18767906695@163.com> Date: 星期二, 20 九月 2022 16:25:43 +0800 Subject: [PATCH] fix --- emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 132 insertions(+), 31 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 63a3827..94c034b 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 @@ -7,6 +7,7 @@ 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.*; @@ -17,13 +18,13 @@ 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; +import com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp.EmergencyExecuteNumDetailRPCResp; 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.baseService.EmergencyDrillExecuteInfoService; import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesInfoService; import com.gkhy.safePlatform.emergency.utils.TimeUtils; -import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,40 +48,66 @@ @Override 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()); - String lastTime = emergencyDrillExecuteInfoService.selectEmergencyDrillExecuteIntervalTimeByDeptId(query.getDeptId()); - emergencyExecuteTimeRPCResp.setLastTime(lastTime); - emergencyExecuteTimeRPCResp.setDays(TimeUtils.differentDays(lastTime, TimeUtils.formatDate(new Date()))); + emergencyExecuteTimeRPCResp.setParentDepId(depInfoRPCRespDTO.getParentDepId()); - return new SearchResultVO<>( + getSingleTimeData(emergencyExecuteTimeRPCResp); + SearchResultVO searchResultVO = new SearchResultVO<>( false, null, null, null, - 1L, + null, emergencyExecuteTimeRPCResp, ResultCodes.OK ); + searchResultVO.setCount(1); + return searchResultVO; } @Override public SearchResultVO<List<EmergencyExecuteTimeRPCResp>> getTimeByDeptIds(EmergencyExecuteTimeRPCReq query) { List<EmergencyExecuteTimeRPCResp> list = new ArrayList<>(); - return new SearchResultVO<>( + + // 获取该部门及其子部门的所有信息 + 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()); + emergencyExecuteTimeRPCResp.setParentDepId(depInfoRPCRespDTO.getParentDepId()); + + getSingleTimeData(emergencyExecuteTimeRPCResp); + list.add(emergencyExecuteTimeRPCResp); + } + + SearchResultVO searchResultVO = new SearchResultVO<>( false, null, null, null, - (long) list.size(), + null, list, ResultCodes.OK ); + if (!list.isEmpty()){ + searchResultVO.setCount(list.size()); + } + return searchResultVO; + } + + 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 @@ -91,45 +118,106 @@ EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp = new EmergencyExecuteNumRPCResp(); // 获取id对应的部门 DepInfoRPCRespDTO depInfoRPCRespDTO = getDepInfoByDepId(query.getDeptId()); - emergencyExecuteNumRPCResp.setDeptId(depInfoRPCRespDTO.getDepId()); emergencyExecuteNumRPCResp.setDeptName(depInfoRPCRespDTO.getDepName()); emergencyExecuteNumRPCResp.setDeptLevel(depInfoRPCRespDTO.getDepLevel()); + emergencyExecuteNumRPCResp.setParentDepId(depInfoRPCRespDTO.getParentDepId()); - // 查到该年度对应月份的数据 - List<Map<String,String>> mapList = new ArrayList<>(); - String startTime = TimeUtils.getYearFirst(query.getYear()); - String endTime = TimeUtils.getYearLast(query.getYear()); - List<Long> deptIds = new ArrayList<>(); - deptIds.add(query.getDeptId()); - List<EmergencyDrillExecuteCountData> emergencyDrillExecuteCountDataList = emergencyDrillExecuteInfoService.selectByMonthAndDept(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); + getSingleNumData(emergencyExecuteNumRPCResp,query); - return new SearchResultVO<>( + SearchResultVO searchResultVO = new SearchResultVO<>( false, null, null, null, - 1L, + null, emergencyExecuteNumRPCResp, ResultCodes.OK ); + searchResultVO.setCount(1); + return searchResultVO; } @Override public SearchResultVO<List<EmergencyExecuteNumRPCResp>> getNumByDeptIds(EmergencyExecuteNumRPCReq query) { - return null; + 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()); + emergencyExecuteNumRPCResp.setParentDepId(depInfoRPCRespDTO.getParentDepId()); + + getSingleNumData(emergencyExecuteNumRPCResp,query); + list.add(emergencyExecuteNumRPCResp); + } + + SearchResultVO searchResultVO = new SearchResultVO<>( + false, + null, + null, + null, + null, + list, + ResultCodes.OK + ); + if (!list.isEmpty()){ + searchResultVO.setCount(list.size()); + } + return searchResultVO; } - public DepInfoRPCRespDTO getDepInfoByDepId(Long deptId) { + private void getSingleNumData(EmergencyExecuteNumRPCResp emergencyExecuteNumRPCResp,EmergencyExecuteNumRPCReq query){ + List<Long> deptIds = new ArrayList<>(); + deptIds.add(emergencyExecuteNumRPCResp.getDeptId()); + + List<Map<String,Integer>> mapList = new ArrayList<>(); + List<EmergencyDrillExecuteCountRPC> emergencyDrillExecuteCountDataList = new ArrayList<>(); + String startTime ; + String endTime ; + Integer distType; + if (query.getMonth()==null){ + distType=1; + // 查该年度12个月份的 + startTime = TimeUtils.getYearFirst(query.getYear()); + endTime = TimeUtils.getYearLast(query.getYear()); + emergencyDrillExecuteCountDataList= emergencyDrillExecuteInfoService.selectByMonthAndDeptForIntegerMonth(startTime, endTime, deptIds); + }else{ + // 查该年度指定月份的 + distType=2; + startTime = TimeUtils.getMonthFirst(query.getYear(),query.getMonth()); + endTime = TimeUtils.getMonthLast(query.getYear(),query.getMonth()); + emergencyDrillExecuteCountDataList= emergencyDrillExecuteInfoService.selectByDayAndDept(startTime, endTime, deptIds); + } + if (!emergencyDrillExecuteCountDataList.isEmpty()){ + List<EmergencyExecuteNumDetailRPCResp> detailList =new ArrayList<>(); + for (EmergencyDrillExecuteCountRPC emergencyDrillExecuteCountRPC : emergencyDrillExecuteCountDataList){ + + EmergencyExecuteNumDetailRPCResp emergencyExecuteNumDetailRPCResp = new EmergencyExecuteNumDetailRPCResp(); + + emergencyExecuteNumDetailRPCResp.setTime(emergencyDrillExecuteCountRPC.getName()); + emergencyExecuteNumDetailRPCResp.setDistType(distType); + emergencyExecuteNumDetailRPCResp.setYear(query.getYear()); + if (distType==1){ + emergencyExecuteNumDetailRPCResp.setMonth(emergencyDrillExecuteCountRPC.getName()); + } + if (distType==2){ + emergencyExecuteNumDetailRPCResp.setMonth(query.getMonth()); + emergencyExecuteNumDetailRPCResp.setDay(emergencyDrillExecuteCountRPC.getName()); + } + emergencyExecuteNumDetailRPCResp.setNum(emergencyDrillExecuteCountRPC.getNum()); + detailList.add(emergencyExecuteNumDetailRPCResp); + } + emergencyExecuteNumRPCResp.setDetail(detailList); + } + + } + + private DepInfoRPCRespDTO getDepInfoByDepId(Long deptId) { DepInfoRPCRespDTO dep = new DepInfoRPCRespDTO(); ResultVO<DepInfoRPCRespDTO> rpcResult = accountDepartmentService.getDepInfoByDepId(deptId); if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) { @@ -142,6 +230,19 @@ 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) { -- Gitblit v1.9.2