songhuangfeng123
2022-07-07 0ce7df5c83217a0561ef71e927444ae8f52c2a47
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyPlanServiceImpl.java
@@ -6,17 +6,22 @@
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.EmergencyPlanInfoPageDO;
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.EmergencyPlanPageRespDTO;
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.EmergencyPlanInfoService;
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")
@@ -24,6 +29,18 @@
    @Autowired
    private EmergencyPlanInfoService emergencyPlanInfoService;
    @Autowired
    private EmergencyPlanAreaInfoService emergencyPlanAreaInfoService;
    @Autowired
    private EmergencyPlanDepartmentInfoService emergencyPlanDepartmentInfoService;
    @Autowired
    private EmergencyPlanTeamInfoService emergencyPlanTeamInfoService;
    @Autowired
    private EmergencyPlanFileInfoService emergencyPlanFileInfoService;
    @Override
    public SearchResultVO<List<EmergencyPlanPageRespDTO>> selectEmergencyPlanList(PageQuery<EmergencyPlanQuery> query) {
@@ -49,10 +66,107 @@
    }
    @Override
    public ResultVO<String> add(Long valueOf, EmergencyPlanReqDTO emergencyPlanReqDTO) {
        //新增应急预案
        //新增应急预案使用部门表
        //
        return null;
    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<EmergencyPlanAreaInfo> 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<EmergencyPlanDepartmentInfo> 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<EmergencyPlanFileInfo> 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<EmergencyPlanTeamInfo> 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<EmergencyPlanDetailRespDTO> 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<EmergencyPlanAreaInfoDO> emergencyPlanAreaInfoDOList = emergencyPlanAreaInfoService.selectEmergencyPlanAreaByPlanId(id);
            if (!CollectionUtils.isEmpty(emergencyPlanAreaInfoDOList)){
                List<EmergencyPlanAreaRespDTO> emergencyTeamFileRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanAreaInfoDOList , EmergencyPlanAreaRespDTO.class);
                emergencyPlanDetailRespDTO.setAreaList(emergencyTeamFileRespDTOList);
            }
            // 查找对应的适用部门
            List<EmergencyPlanDepartmentInfoDO> emergencyPlanDepartmentInfoDOList = emergencyPlanDepartmentInfoService.selectEmergencyPlanDepartmentByPlanId(id);
            if (!CollectionUtils.isEmpty(emergencyPlanDepartmentInfoDOList)){
                List<EmergencyPlanDepartmentRespDTO> emergencyTeamDepartmentRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanDepartmentInfoDOList , EmergencyPlanDepartmentRespDTO.class);
                emergencyPlanDetailRespDTO.setDeptList(emergencyTeamDepartmentRespDTOList);
            }
            // 查找对应的应急队伍
            List<EmergencyPlanTeamInfoDO> emergencyPlanTeamInfoDOList = emergencyPlanTeamInfoService.selectEmergencyPlanTeamByPlanId(id);
            if (!CollectionUtils.isEmpty(emergencyPlanTeamInfoDOList)){
                List<EmergencyPlanTeamRespDTO> emergencyTeamTeamRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanTeamInfoDOList , EmergencyPlanTeamRespDTO.class);
                emergencyPlanDetailRespDTO.setTeamList(emergencyTeamTeamRespDTOList);
            }
            // 查找对应的附件
            List<EmergencyPlanFileInfoDO> emergencyPlanFileInfoDOList = emergencyPlanFileInfoService.selectEmergencyPlanFileByPlanId(id);
            if (!CollectionUtils.isEmpty(emergencyPlanFileInfoDOList)){
                List<EmergencyPlanFileRespDTO> emergencyTeamFileRespDTOList = BeanCopyUtils.copyBeanList(emergencyPlanFileInfoDOList , EmergencyPlanFileRespDTO.class);
                emergencyPlanDetailRespDTO.setFileList(emergencyTeamFileRespDTOList);
            }
            return new ResultVO<>(ResultCodes.OK,emergencyPlanDetailRespDTO);
        }
    }
}