package com.gkhy.safePlatform.emergency.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.EmergencyPlanStatus; import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes; import com.gkhy.safePlatform.emergency.excepiton.EmergencyException; import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyPlanReqDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.*; import com.gkhy.safePlatform.emergency.query.EmergencyPlanQuery; import com.gkhy.safePlatform.emergency.query.db.EmergencyPlanDBQuery; import com.gkhy.safePlatform.emergency.service.EmergencyPlanService; import com.gkhy.safePlatform.emergency.service.baseService.*; 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.List; @Service("emergencyPlanService") public class EmergencyPlanServiceImpl implements EmergencyPlanService { @Autowired private EmergencyPlanInfoService emergencyPlanInfoService; @Autowired private EmergencyPlanAreaInfoService emergencyPlanAreaInfoService; @Autowired private EmergencyPlanDepartmentInfoService emergencyPlanDepartmentInfoService; @Autowired private EmergencyPlanTeamInfoService emergencyPlanTeamInfoService; @Autowired private EmergencyPlanFileInfoService emergencyPlanFileInfoService; @Override public SearchResultVO> selectEmergencyPlanList(PageQuery query) { Long pageIndex = query.getPageIndex(); Long pageSize = query.getPageSize(); Page page = new Page<>(pageIndex, pageSize); EmergencyPlanDBQuery emergencyPlanDBQuery = new EmergencyPlanDBQuery(); if (query.getSearchParams() != null) { BeanUtils.copyProperties(query.getSearchParams(), emergencyPlanDBQuery); } List emergencyPlanListDoInfoList = emergencyPlanInfoService.selectEmergencyPlanList(page,emergencyPlanDBQuery); List respList = BeanCopyUtils.copyBeanList(emergencyPlanListDoInfoList, EmergencyPlanPageRespDTO.class); return new SearchResultVO<>( true, pageIndex, pageSize, page.getTotal(), respList, ResultCodes.OK ); } @Override public ResultVO addEmergencyPlan(Long uid, EmergencyPlanReqDTO emergencyPlanReqDTO) { Date nowDate = new Date(); // 新增应急预案 EmergencyPlanInfo emergencyPlanInfo = new EmergencyPlanInfo(); BeanUtils.copyProperties(emergencyPlanReqDTO,emergencyPlanInfo); emergencyPlanInfo.setDelFlag(false); emergencyPlanInfo.setCreateUid(uid); emergencyPlanInfo.setGmtCreate(nowDate); emergencyPlanInfo.setStatus(EmergencyPlanStatus.START.getStatus()); emergencyPlanInfoService.addEmergencyPlan(emergencyPlanInfo); // 新增应急预案区域表 if (!CollectionUtils.isEmpty(emergencyPlanReqDTO.getAreaList())){ List emergencyPlanAreaInfoList = BeanCopyUtils.copyBeanList(emergencyPlanReqDTO.getAreaList(),EmergencyPlanAreaInfo.class); emergencyPlanAreaInfoList.forEach(EmergencyPlanAreaInfo->{ EmergencyPlanAreaInfo.setDelFlag(false); EmergencyPlanAreaInfo.setCreateUid(uid); EmergencyPlanAreaInfo.setGmtCreate(nowDate); EmergencyPlanAreaInfo.setPlanId(emergencyPlanInfo.getId()); }); for (EmergencyPlanAreaInfo emergencyPlanAreaInfo : emergencyPlanAreaInfoList){ emergencyPlanAreaInfoService.addEmergencyPlanArea(emergencyPlanAreaInfo); } } // 新增应急预案适用部门表 if (!CollectionUtils.isEmpty(emergencyPlanReqDTO.getDeptList())){ List emergencyPlanDepartmentInfoList = BeanCopyUtils.copyBeanList(emergencyPlanReqDTO.getDeptList(),EmergencyPlanDepartmentInfo.class); emergencyPlanDepartmentInfoList.forEach(EmergencyPlanDepartmentInfo->{ EmergencyPlanDepartmentInfo.setDelFlag(false); EmergencyPlanDepartmentInfo.setCreateUid(uid); EmergencyPlanDepartmentInfo.setGmtCreate(nowDate); EmergencyPlanDepartmentInfo.setPlanId(emergencyPlanInfo.getId()); }); for (EmergencyPlanDepartmentInfo emergencyPlanDepartmentInfo : emergencyPlanDepartmentInfoList){ emergencyPlanDepartmentInfoService.addEmergencyPlanDepartment(emergencyPlanDepartmentInfo); } } // 新增应急预案附件表 if (!CollectionUtils.isEmpty(emergencyPlanReqDTO.getFileList())){ List emergencyPlanFileInfoList = BeanCopyUtils.copyBeanList(emergencyPlanReqDTO.getFileList(),EmergencyPlanFileInfo.class); emergencyPlanFileInfoList.forEach(EmergencyPlanFileInfo->{ EmergencyPlanFileInfo.setDelFlag(false); EmergencyPlanFileInfo.setCreateUid(uid); EmergencyPlanFileInfo.setGmtCreate(nowDate); EmergencyPlanFileInfo.setPlanId(emergencyPlanInfo.getId()); }); for (EmergencyPlanFileInfo emergencyPlanFileInfo : emergencyPlanFileInfoList){ emergencyPlanFileInfoService.addEmergencyPlanFile(emergencyPlanFileInfo); } } // 新增应急预案应急队伍表 if (!CollectionUtils.isEmpty(emergencyPlanReqDTO.getTeamList())){ List emergencyPlanTeamInfoList = BeanCopyUtils.copyBeanList(emergencyPlanReqDTO.getTeamList(),EmergencyPlanTeamInfo.class); emergencyPlanTeamInfoList.forEach(EmergencyPlanTeamInfo->{ EmergencyPlanTeamInfo.setDelFlag(false); EmergencyPlanTeamInfo.setCreateUid(uid); EmergencyPlanTeamInfo.setGmtCreate(nowDate); EmergencyPlanTeamInfo.setPlanId(emergencyPlanInfo.getId()); }); for (EmergencyPlanTeamInfo emergencyPlanTeamInfo : emergencyPlanTeamInfoList){ emergencyPlanTeamInfoService.addEmergencyPlanTeam(emergencyPlanTeamInfo); } } return new ResultVO<>(ResultCodes.OK); } @Override public ResultVO getEmergencyPlanById(Long id) { EmergencyPlanDetailRespDTO emergencyPlanDetailRespDTO = new EmergencyPlanDetailRespDTO(); // 查询是否存在 EmergencyPlanInfoDetailDO emergencyPlanInfoDetailDO = emergencyPlanInfoService.selectEmergencyPlanById(id); if (emergencyPlanInfoDetailDO==null){ throw new EmergencyException(EmergencyResultCodes.PLAN_NOT_EXIST); }else{ BeanUtils.copyProperties(emergencyPlanInfoDetailDO,emergencyPlanDetailRespDTO); // 查找对应的区域 List emergencyPlanAreaInfoDOList = emergencyPlanAreaInfoService.selectEmergencyPlanAreaByPlanId(id); if (!CollectionUtils.isEmpty(emergencyPlanAreaInfoDOList)){ List emergencyTeamFileRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanAreaInfoDOList , EmergencyPlanAreaRespDTO.class); emergencyPlanDetailRespDTO.setAreaList(emergencyTeamFileRespDTOList); } // 查找对应的适用部门 List emergencyPlanDepartmentInfoDOList = emergencyPlanDepartmentInfoService.selectEmergencyPlanDepartmentByPlanId(id); if (!CollectionUtils.isEmpty(emergencyPlanDepartmentInfoDOList)){ List emergencyTeamDepartmentRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanDepartmentInfoDOList , EmergencyPlanDepartmentRespDTO.class); emergencyPlanDetailRespDTO.setDeptList(emergencyTeamDepartmentRespDTOList); } // 查找对应的应急队伍 List emergencyPlanTeamInfoDOList = emergencyPlanTeamInfoService.selectEmergencyPlanTeamByPlanId(id); if (!CollectionUtils.isEmpty(emergencyPlanTeamInfoDOList)){ List emergencyTeamTeamRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanTeamInfoDOList , EmergencyPlanTeamRespDTO.class); emergencyPlanDetailRespDTO.setTeamList(emergencyTeamTeamRespDTOList); } // 查找对应的附件 List emergencyPlanFileInfoDOList = emergencyPlanFileInfoService.selectEmergencyPlanFileByPlanId(id); if (!CollectionUtils.isEmpty(emergencyPlanFileInfoDOList)){ List emergencyTeamFileRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanFileInfoDOList , EmergencyPlanFileRespDTO.class); emergencyPlanDetailRespDTO.setFileList(emergencyTeamFileRespDTOList); } return new ResultVO<>(ResultCodes.OK,emergencyPlanDetailRespDTO); } } }