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<List<EmergencyPlanPageRespDTO>> selectEmergencyPlanList(PageQuery<EmergencyPlanQuery> query) {
|
Long pageIndex = query.getPageIndex();
|
Long pageSize = query.getPageSize();
|
Page<EmergencyPlanInfoPageDO> page = new Page<>(pageIndex, pageSize);
|
|
EmergencyPlanDBQuery emergencyPlanDBQuery = new EmergencyPlanDBQuery();
|
if (query.getSearchParams() != null) {
|
BeanUtils.copyProperties(query.getSearchParams(), emergencyPlanDBQuery);
|
}
|
List<EmergencyPlanInfoPageDO> emergencyPlanListDoInfoList = emergencyPlanInfoService.selectEmergencyPlanList(page,emergencyPlanDBQuery);
|
List<EmergencyPlanPageRespDTO> 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<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);
|
}
|
}
|
}
|