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.EmergencySuppliesQuery; import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesDBQuery; 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 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 EmergencySuppliesMaintainInfoService emergencySuppliesMaintainInfoService; @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); 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); } } }