package com.gkhy.safePlatform.emergency.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepInfoRPCRespDTO; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; 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.entity.*; import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes; import com.gkhy.safePlatform.emergency.excepiton.EmergencyException; import com.gkhy.safePlatform.emergency.model.dto.req.*; import com.gkhy.safePlatform.emergency.model.dto.resp.*; import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery; import com.gkhy.safePlatform.emergency.query.EmergencySuppliesQuery; import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesDBQuery; import com.gkhy.safePlatform.emergency.service.EmergencySuppliesMaintainService; import com.gkhy.safePlatform.emergency.service.EmergencySuppliesService; import com.gkhy.safePlatform.emergency.service.baseService.*; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @Service("emergencySuppliesService") public class EmergencySuppliesServiceImpl implements EmergencySuppliesService { @Autowired private EmergencySuppliesInfoService emergencySuppliesInfoService; @Autowired private EmergencySuppliesInspectInfoService emergencySuppliesInspectInfoService; @Autowired private EmergencySuppliesInspectUserInfoService emergencySuppliesInspectUserInfoService; @Autowired private EmergencySuppliesMaintainInfoService emergencySuppliesMaintainInfoService; @Autowired private EmergencySuppliesMaintainUserInfoService emergencySuppliesMaintainUserInfoService; @DubboReference(check = false) private AccountDepartmentService accountDepartmentService; @Override public SearchResultVO> selectEmergencySuppliesList(PageQuery query) { Long pageIndex = query.getPageIndex(); Long pageSize = query.getPageSize(); Page page = new Page<>(pageIndex, pageSize); EmergencySuppliesDBQuery emergencySuppliesDBQuery = new EmergencySuppliesDBQuery(); if (query.getSearchParams() != null) { BeanUtils.copyProperties(query.getSearchParams(), emergencySuppliesDBQuery); } List emergencySuppliesListDoInfoList = emergencySuppliesInfoService.selectEmergencySuppliesList(page,emergencySuppliesDBQuery); List respList = BeanCopyUtils.copyBeanList(emergencySuppliesListDoInfoList, EmergencySuppliesPageRespDTO.class); Map depPool = new HashMap<>(); respList.forEach(AccidentExpressPageRespDTO ->{ // 设置部门名称 if (!depPool.containsKey(AccidentExpressPageRespDTO.getDepartmentId())) { ResultVO rpcResult = accountDepartmentService.getDepInfoByDepId(AccidentExpressPageRespDTO.getDepartmentId()); if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) { if (rpcResult.getData() != null) { DepInfoRPCRespDTO dep = (DepInfoRPCRespDTO) rpcResult.getData(); depPool.put(dep.getDepId(), dep.getDepName()); } }} String depName = depPool.get(AccidentExpressPageRespDTO.getDepartmentId()); AccidentExpressPageRespDTO.setDeptName(depName); }); return new SearchResultVO<>( true, pageIndex, pageSize,page.getPages(), page.getTotal(), respList, ResultCodes.OK ); } @Override public ResultVO addEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO) { Date nowDate = new Date(); // 新增应急物资 EmergencySuppliesInfo emergencySuppliesInfo = new EmergencySuppliesInfo(); BeanUtils.copyProperties(emergencySuppliesReqDTO,emergencySuppliesInfo); emergencySuppliesInfo.setDelFlag(false); emergencySuppliesInfo.setCreateUid(uid); emergencySuppliesInfo.setGmtCreate(nowDate); emergencySuppliesInfoService.addEmergencySupplies(emergencySuppliesInfo); return new ResultVO<>(ResultCodes.OK); } @Override public ResultVO getEmergencySuppliesById(Long id) { EmergencySuppliesDetailRespDTO emergencySuppliesDetailRespDTO = new EmergencySuppliesDetailRespDTO(); // 查询是否存在 EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(id); if (emergencySuppliesInfoDetailDO==null){ throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NOT_EXIST); }else{ BeanUtils.copyProperties(emergencySuppliesInfoDetailDO,emergencySuppliesDetailRespDTO); // 查找检查记录 List inspectDetailDOList = emergencySuppliesInspectInfoService.selectEmergencySuppliesInspectBySuppliesId(emergencySuppliesDetailRespDTO.getId()); if (!CollectionUtils.isEmpty(inspectDetailDOList)){ List inspectList = BeanCopyUtils.copyBeanList(inspectDetailDOList,EmergencySuppliesInspectDetailRespDTO.class); // 创建人 for (EmergencySuppliesInspectDetailRespDTO emergencySuppliesInspectDetailRespDTO :inspectList){ List inspectUserDOList = emergencySuppliesInspectUserInfoService.selectEmergencySuppliesInspectUserBySuppliesInspectId(emergencySuppliesInspectDetailRespDTO.getId()); if (!CollectionUtils.isEmpty(inspectUserDOList)){ List inspectUserList = BeanCopyUtils.copyBeanList(inspectUserDOList,EmergencySuppliesInspectUserRespDTO.class); emergencySuppliesInspectDetailRespDTO.setUserList(inspectUserList); } } emergencySuppliesDetailRespDTO.setInspectList(inspectList); } // 查找保养记录 List maintainDetailDOList = emergencySuppliesMaintainInfoService.selectEmergencySuppliesMaintainBySuppliesId(emergencySuppliesDetailRespDTO.getId()); if (!CollectionUtils.isEmpty(maintainDetailDOList)){ List maintainList = BeanCopyUtils.copyBeanList(maintainDetailDOList,EmergencySuppliesMaintainDetailRespDTO.class); // 创建人 for (EmergencySuppliesMaintainDetailRespDTO emergencySuppliesMaintainDetailRespDTO :maintainList){ List maintainUserDOList = emergencySuppliesMaintainUserInfoService.selectEmergencySuppliesMaintainUserBySuppliesMaintainId(emergencySuppliesMaintainDetailRespDTO.getId()); if (!CollectionUtils.isEmpty(maintainUserDOList)){ List maintainUserList = BeanCopyUtils.copyBeanList(maintainUserDOList,EmergencySuppliesMaintainUserRespDTO.class); emergencySuppliesMaintainDetailRespDTO.setUserList(maintainUserList); } } emergencySuppliesDetailRespDTO.setMaintainList(maintainList); } return new ResultVO<>(ResultCodes.OK,emergencySuppliesDetailRespDTO); } } @Override public ResultVO updateEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO) { Date nowDate = new Date(); // 查询是否存在 EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(emergencySuppliesReqDTO.getId()); if (emergencySuppliesInfoDetailDO==null){ throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NOT_EXIST); }else{ EmergencySuppliesInfo emergencySuppliesInfo = new EmergencySuppliesInfo(); BeanUtils.copyProperties(emergencySuppliesReqDTO,emergencySuppliesInfo); emergencySuppliesInfo.setUpdateUid(uid); emergencySuppliesInfo.setGmtModitify(nowDate); emergencySuppliesInfoService.updateEmergencySupplies(emergencySuppliesInfo); return new ResultVO<>(ResultCodes.OK); } } @Override public ResultVO batchDeleteEmergencySupplies( Long[] ids) { if (ids == null || ids.length==0){ throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NULL); }else{ for (Long id : ids){ deleteEmergencySupplies(id); } return new ResultVO(ResultCodes.OK); } } private void deleteEmergencySupplies(Long id) { //查询是否存在 EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(id); if (emergencySuppliesInfoDetailDO==null){ throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NOT_EXIST); }else{ Long SuppliesId = emergencySuppliesInfoDetailDO.getId(); emergencySuppliesInfoService.deleteEmergencySupplies(SuppliesId); // 删除保养记录 emergencySuppliesMaintainInfoService.deleteBySuppliesId(id); // 删除检查记录 emergencySuppliesInspectInfoService.deleteBySuppliesId(id); } } }