package com.gkhy.safePlatform.emergency.rpc.provider; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; 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.emergency.enums.EmergencyResultCodes; 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; import org.apache.commons.collections.CollectionUtils; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @DubboService public class EmergencyRpcProvider implements EmergencyRpcAPi { @Autowired private EmergencySuppliesService emergencySuppliesService; @Autowired private EmergencyCountService emergencyCountService; @Override public SearchResultVO getTimeByDeptId(EmergencyExecuteTimeRPCReq query) { return emergencyCountService.getTimeByDeptId(query); } @Override public SearchResultVO> getTimeByDeptIds(EmergencyExecuteTimeRPCReq query) { return emergencyCountService.getTimeByDeptIds(query); } @Override public SearchResultVO getNumByDeptId(EmergencyExecuteNumRPCReq query) { return emergencyCountService.getNumByDeptId(query); } @Override public SearchResultVO> getNumByDeptIds(EmergencyExecuteNumRPCReq query) { return emergencyCountService.getNumByDeptIds(query); } @Override public ResultVO> emergencySuppliesList(ContextCacheUser currentUser) { ResultVO> result = new ResultVO<>(ResultCodes.OK); List typeRPCRespList = new ArrayList<>(); try{ List typeRespDTOList = emergencySuppliesService.emergencySuppliesList(currentUser); for (EmergencySuppliesTypeRespDTO typeRespDTO:typeRespDTOList) { EmergencySuppliesTypeRPCResp typeRPCResp = new EmergencySuppliesTypeRPCResp(); typeRPCResp.setMaterialType(typeRespDTO.getMaterialType()); typeRPCResp.setMaterialTypeName(typeRespDTO.getMaterialTypeName()); if(!CollectionUtils.isEmpty(typeRespDTO.getList())){ List emergencySuppliesRPCRespList = BeanCopyUtils.copyBeanList(typeRespDTO.getList(), EmergencySuppliesRPCResp.class); typeRPCResp.setList(emergencySuppliesRPCRespList); } typeRPCRespList.add(typeRPCResp); } result.setData(typeRPCRespList); }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> listCountByIds(ContextCacheUser currentUser,List ids) { ResultVO> result = new ResultVO<>(ResultCodes.OK); try{ List emergencySuppliesRPCRespList = new ArrayList<>(); List respDTOList = emergencySuppliesService.listCountByIds(currentUser, ids); if(!CollectionUtils.isEmpty(respDTOList)){ emergencySuppliesRPCRespList = BeanCopyUtils.copyBeanList(respDTOList, EmergencySuppliesRPCResp.class); } result.setData(emergencySuppliesRPCRespList); }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 getExecuteLastTimeByDeptId(Long depId) { ResultVO result = new ResultVO<>(ResultCodes.OK); try{ EmergencyExecuteTimeRPCRespDTO lastTimeRPCResp = new EmergencyExecuteTimeRPCRespDTO(); EmergencyExecuteTimeRespDTO timeRespDTO = emergencyCountService.getLastTimeByDeptId(depId); if(null != timeRespDTO){ BeanUtils.copyProperties(timeRespDTO,lastTimeRPCResp); } result.setData(lastTimeRPCResp); }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> getExecuteLastTimeByDeptIds(Long depId) { ResultVO> result = new ResultVO<>(ResultCodes.OK); try{ List lasTimeRespDTOS = emergencyCountService.getLastTimeByDeptIds(depId); List 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 getExecuteLastTimeByDeptIdAndTime(EmergencydrillTimeRPCReq query) { ResultVO 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); } result.setData(lastTimeRPCResp); }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> getExecuteLastTimeByDeptIdsAndTime(EmergencydrillTimeRPCReq query) { ResultVO> result = new ResultVO<>(ResultCodes.OK); EmergencyDrillTimeQuery timeQuery = new EmergencyDrillTimeQuery(); timeQuery.setDeptId(query.getDeptId()); timeQuery.setYear(query.getYear()); timeQuery.setMonth(query.getMonth()); try{ List levelLasTimeRPCRespDTOS = new ArrayList<>(); List 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 getExecuteCountByDeptIdAndMonth(EmergencyExecuteCountRPCReq query) { ResultVO result = new ResultVO<>(ResultCodes.OK); EmergencyDrillCountQuery countQuery = new EmergencyDrillCountQuery(); countQuery.setDeptId(query.getDeptId()); countQuery.setYear(query.getYear()); countQuery.setMonth(query.getMonth()); try{ StatisticsDepLevelMonthEexcuteRespDTO monthEexcuteRespDTO = emergencyCountService.getCountByDeptIdAndMonth(countQuery); StatisticsDepLevelMonthEexcuteRPCRespDTO monthEexcuteRPCRespDTO = new StatisticsDepLevelMonthEexcuteRPCRespDTO(); monthEexcuteRPCRespDTO.setDepLevel(monthEexcuteRespDTO.getDepLevel()); monthEexcuteRPCRespDTO.setExecuteCount(monthEexcuteRespDTO.getExecuteCount()); monthEexcuteRPCRespDTO.setMonth(monthEexcuteRespDTO.getMonth()); result.setData(monthEexcuteRPCRespDTO); }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 getExecuteCountByDeptIdAndYear(EmergencyExecuteCountRPCReq query) { ResultVO result = new ResultVO<>(ResultCodes.OK); EmergencyDrillCountQuery countQuery = new EmergencyDrillCountQuery(); countQuery.setDeptId(query.getDeptId()); countQuery.setYear(query.getYear()); try{ StatisticsDepLevelYearExecuteRespDTO executeRespDTO = emergencyCountService.getCountByDeptIdAndYear(countQuery); StatisticsDepLevelYearExecuteRPCRespDTO executeRPCRespDTO = new StatisticsDepLevelYearExecuteRPCRespDTO(); executeRPCRespDTO.setDepLevel(executeRespDTO.getDepLevel()); executeRPCRespDTO.setYear(executeRespDTO.getYear()); executeRPCRespDTO.setYearTotalCount(executeRespDTO.getYearTotalCount()); List monthExecuteCountList = executeRespDTO.getMonthExecuteCountList(); if(!CollectionUtils.isEmpty(monthExecuteCountList)){ List monthExecuteCountRPCRespDTOList = BeanCopyUtils.copyBeanList(monthExecuteCountList, StatisticsMonthExecuteCountRPCRespDTO.class); executeRPCRespDTO.setMonthExecuteCountList(monthExecuteCountRPCRespDTOList); } result.setData(executeRPCRespDTO); }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> getExecuteCountByDeptIdsAndMonth(EmergencyExecuteCountRPCReq query) { ResultVO> result = new ResultVO<>(ResultCodes.OK); EmergencyDrillCountQuery countQuery = new EmergencyDrillCountQuery(); countQuery.setDeptId(query.getDeptId()); countQuery.setYear(query.getYear()); countQuery.setMonth(query.getMonth()); try{ List monthEexcuteRespDTOList = emergencyCountService.getCountByDeptIdsAndMonth(countQuery); if(!CollectionUtils.isEmpty(monthEexcuteRespDTOList)){ List monthExecuteCountRPCRespDTOList = BeanCopyUtils.copyBeanList(monthEexcuteRespDTOList, StatisticsDepLevelMonthEexcuteRPCRespDTO.class); result.setData(monthExecuteCountRPCRespDTOList); } }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> getExecuteCountByDeptIdsAndYear(EmergencyExecuteCountRPCReq query) { ResultVO> result = new ResultVO<>(ResultCodes.OK); EmergencyDrillCountQuery countQuery = new EmergencyDrillCountQuery(); countQuery.setDeptId(query.getDeptId()); countQuery.setYear(query.getYear()); try{ List executeRespDTOList = emergencyCountService.getCountByDeptIdsAndYear(countQuery); List RPCRespDTO = new ArrayList<>(); for(StatisticsDepLevelYearExecuteRespDTO vo : executeRespDTOList){ StatisticsDepLevelYearExecuteRPCRespDTO executeRPCRespDTO = new StatisticsDepLevelYearExecuteRPCRespDTO(); executeRPCRespDTO.setDepLevel(vo.getDepLevel()); executeRPCRespDTO.setYear(vo.getYear()); executeRPCRespDTO.setYearTotalCount(vo.getYearTotalCount()); List monthExecuteCountList = vo.getMonthExecuteCountList(); if(!CollectionUtils.isEmpty(monthExecuteCountList)){ List monthExecuteCountRPCRespDTOList = BeanCopyUtils.copyBeanList(monthExecuteCountList, StatisticsMonthExecuteCountRPCRespDTO.class); executeRPCRespDTO.setMonthExecuteCountList(monthExecuteCountRPCRespDTOList); } RPCRespDTO.add(executeRPCRespDTO); } result.setData(RPCRespDTO); }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> getEmergencySupplies() { ResultVO> result = new ResultVO<>(ResultCodes.OK); try{ List emergencySupplies = emergencySuppliesService.getEmergencySupplies(); List collect = new ArrayList<>(); for (EmergencySuppliesInfoRespDTO emergencySupply : emergencySupplies) { EmergencySuppliesInfoRPCRespDTO emergencySupplyDTO = new EmergencySuppliesInfoRPCRespDTO(); BeanUtils.copyProperties(emergencySupply, emergencySupplyDTO); collect.add(emergencySupplyDTO); } result.setData(collect); }catch (EmergencyException e){ result.setCode(e.getCode()); result.setMsg(e.getMessage()); }catch (Exception e) { e.printStackTrace(); result.setCode(EmergencyResultCodes.ERROR.getCode()); result.setMsg(EmergencyResultCodes.ERROR.getDesc()); } return result; } }