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.utils.StringUtils;
|
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.EmergencySuppliesMaintainReqDTO;
|
import com.gkhy.safePlatform.emergency.model.dto.req.EmergencySuppliesMaintainUserReqDTO;
|
import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencySuppliesMaintainDetailRespDTO;
|
import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencySuppliesMaintainPageRespDTO;
|
import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencySuppliesMaintainUserRespDTO;
|
import com.gkhy.safePlatform.emergency.query.EmergencySuppliesMaintainQuery;
|
import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesMaintainDBQuery;
|
import com.gkhy.safePlatform.emergency.service.EmergencySuppliesMaintainService;
|
import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesInfoService;
|
import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesMaintainInfoService;
|
import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesMaintainUserInfoService;
|
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.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Service("emergencySuppliesMaintainService")
|
public class EmergencySuppliesMaintainServiceImpl implements EmergencySuppliesMaintainService {
|
|
@Autowired
|
private EmergencySuppliesMaintainInfoService emergencySuppliesMaintainInfoService;
|
|
@Autowired
|
private EmergencySuppliesMaintainUserInfoService emergencySuppliesMaintainUserInfoService;
|
|
@Autowired
|
private EmergencySuppliesInfoService emergencySuppliesInfoService;
|
|
|
@Override
|
public SearchResultVO<List<EmergencySuppliesMaintainPageRespDTO>> selectEmergencySuppliesMaintainList(PageQuery<EmergencySuppliesMaintainQuery> query) {
|
Long pageIndex = query.getPageIndex();
|
Long pageSize = query.getPageSize();
|
Page<EmergencySuppliesMaintainInfoPageDO> page = new Page<>(pageIndex, pageSize);
|
|
EmergencySuppliesMaintainDBQuery emergencySuppliesMaintainDBQuery = new EmergencySuppliesMaintainDBQuery();
|
if (query.getSearchParams() != null) {
|
BeanUtils.copyProperties(query.getSearchParams(), emergencySuppliesMaintainDBQuery);
|
}
|
List<EmergencySuppliesMaintainInfoPageDO> emergencySuppliesMaintainListDoInfoList = emergencySuppliesMaintainInfoService.selectEmergencySuppliesMaintainList(page,emergencySuppliesMaintainDBQuery);
|
List<EmergencySuppliesMaintainPageRespDTO> respList = BeanCopyUtils.copyBeanList(emergencySuppliesMaintainListDoInfoList, EmergencySuppliesMaintainPageRespDTO.class);
|
|
return new SearchResultVO<>(
|
true,
|
pageIndex,
|
pageSize,
|
page.getTotal(),
|
respList,
|
ResultCodes.OK
|
);
|
}
|
|
@Override
|
public ResultVO addEmergencySuppliesMaintain(Long uid, EmergencySuppliesMaintainReqDTO emergencySuppliesMaintainReqDTO) {
|
Long suppliesId = emergencySuppliesMaintainReqDTO.getSuppliesId();
|
|
if (suppliesId==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NULL);
|
}else{
|
EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(suppliesId);
|
if (emergencySuppliesInfoDetailDO==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NOT_EXIST);
|
}else{
|
Date nowDate = new Date();
|
// 新增应急物资检查
|
EmergencySuppliesMaintainInfo emergencySuppliesMaintainInfo = new EmergencySuppliesMaintainInfo();
|
BeanUtils.copyProperties(emergencySuppliesMaintainReqDTO,emergencySuppliesMaintainInfo);
|
emergencySuppliesMaintainInfo.setDelFlag(false);
|
emergencySuppliesMaintainInfo.setCreateUid(uid);
|
emergencySuppliesMaintainInfo.setGmtCreate(nowDate);
|
emergencySuppliesMaintainInfoService.addEmergencySuppliesMaintain(emergencySuppliesMaintainInfo);
|
|
// 新增急演练计划应急人员表
|
if (!CollectionUtils.isEmpty(emergencySuppliesMaintainReqDTO.getUserList())) {
|
addEmergencySuppliesMaintainUser(uid, emergencySuppliesMaintainInfo.getId(), nowDate, emergencySuppliesMaintainReqDTO.getUserList());
|
}
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
}
|
}
|
|
private void addEmergencySuppliesMaintainUser(Long uid, Long MaintainId, Date nowDate, List<EmergencySuppliesMaintainUserReqDTO> userList) {
|
List<EmergencySuppliesMaintainUserInfo> emergencySuppliesMaintainUserInfoList = BeanCopyUtils.copyBeanList(userList, EmergencySuppliesMaintainUserInfo.class);
|
emergencySuppliesMaintainUserInfoList.forEach(EmergencySuppliesMaintainUserInfo -> {
|
EmergencySuppliesMaintainUserInfo.setDelFlag(false);
|
EmergencySuppliesMaintainUserInfo.setCreateUid(uid);
|
EmergencySuppliesMaintainUserInfo.setGmtCreate(nowDate);
|
EmergencySuppliesMaintainUserInfo.setMaintainId(MaintainId);
|
});
|
for (EmergencySuppliesMaintainUserInfo emergencySuppliesMaintainUserInfo : emergencySuppliesMaintainUserInfoList) {
|
emergencySuppliesMaintainUserInfoService.addEmergencySuppliesMaintainUser(emergencySuppliesMaintainUserInfo);
|
}
|
}
|
|
|
@Override
|
public ResultVO<EmergencySuppliesMaintainDetailRespDTO> getEmergencySuppliesMaintainById(Long id) {
|
EmergencySuppliesMaintainDetailRespDTO emergencySuppliesMaintainDetailRespDTO = new EmergencySuppliesMaintainDetailRespDTO();
|
// 查询是否存在
|
EmergencySuppliesMaintainInfoDetailDO emergencySuppliesMaintainInfoDetailDO = emergencySuppliesMaintainInfoService.selectEmergencySuppliesMaintainById(id);
|
if (emergencySuppliesMaintainInfoDetailDO==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_MAINTAIN_NOT_EXIST);
|
}else{
|
BeanUtils.copyProperties(emergencySuppliesMaintainInfoDetailDO,emergencySuppliesMaintainDetailRespDTO);
|
|
// 查找对应的人员表
|
List<EmergencySuppliesMaintainUserInfoDO> emergencySuppliesMaintainUserInfoDOList = emergencySuppliesMaintainUserInfoService.selectEmergencySuppliesMaintainUserBySuppliesMaintainId(id);
|
if (!CollectionUtils.isEmpty(emergencySuppliesMaintainUserInfoDOList)) {
|
List<EmergencySuppliesMaintainUserRespDTO> emergencySuppliesMaintainUserRespDTOList = BeanCopyUtils.copyBeanList(emergencySuppliesMaintainUserInfoDOList, EmergencySuppliesMaintainUserRespDTO.class);
|
emergencySuppliesMaintainDetailRespDTO.setUserList(emergencySuppliesMaintainUserRespDTOList);
|
}
|
|
return new ResultVO<>(ResultCodes.OK,emergencySuppliesMaintainDetailRespDTO);
|
}
|
}
|
|
@Override
|
public ResultVO updateEmergencySuppliesMaintain(Long uid, EmergencySuppliesMaintainReqDTO emergencySuppliesMaintainReqDTO) {
|
Date nowDate = new Date();
|
// 查询是否存在
|
EmergencySuppliesMaintainInfoDetailDO emergencySuppliesMaintainInfoDetailDO = emergencySuppliesMaintainInfoService.selectEmergencySuppliesMaintainById(emergencySuppliesMaintainReqDTO.getId());
|
if (emergencySuppliesMaintainInfoDetailDO==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_MAINTAIN_NOT_EXIST);
|
}else{
|
EmergencySuppliesMaintainInfo emergencySuppliesMaintainInfo = new EmergencySuppliesMaintainInfo();
|
BeanUtils.copyProperties(emergencySuppliesMaintainReqDTO,emergencySuppliesMaintainInfo);
|
emergencySuppliesMaintainInfo.setUpdateUid(uid);
|
emergencySuppliesMaintainInfo.setGmtModitify(nowDate);
|
emergencySuppliesMaintainInfoService.updateEmergencySuppliesMaintain(emergencySuppliesMaintainInfo);
|
|
// 更新急演练计划应急人员表
|
if (!CollectionUtils.isEmpty(emergencySuppliesMaintainReqDTO.getUserList())) {
|
updateEmergencySuppliesMaintainUser(uid, emergencySuppliesMaintainInfo.getId(), nowDate, emergencySuppliesMaintainReqDTO.getUserList());
|
}
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
}
|
|
private void updateEmergencySuppliesMaintainUser(Long uid, Long suppliesMaintainId, Date
|
nowDate, List<EmergencySuppliesMaintainUserReqDTO> UserReqDTOList) {
|
List<EmergencySuppliesMaintainUserInfoDO> emergencySuppliesMaintainUserInfoDOList = emergencySuppliesMaintainUserInfoService.selectEmergencySuppliesMaintainUserBySuppliesMaintainId(suppliesMaintainId);
|
List<Long> oldIdsList = emergencySuppliesMaintainUserInfoDOList.stream().map(EmergencySuppliesMaintainUserInfoDO::getId).collect(Collectors.toList());
|
List<Long> newIdsList = new ArrayList<>();
|
|
//新增的区域集合
|
List<EmergencySuppliesMaintainUserInfo> addList = new ArrayList<>();
|
//删除的区域集合(id)
|
List<Long> deleteList = new ArrayList<>();
|
for (EmergencySuppliesMaintainUserReqDTO emergencySuppliesMaintainUserReqDTO : UserReqDTOList) {
|
//如果不存在id则表示页面新增的附件
|
if (emergencySuppliesMaintainUserReqDTO.getId() == null) {
|
EmergencySuppliesMaintainUserInfo emergencySuppliesMaintainUserInfo = new EmergencySuppliesMaintainUserInfo();
|
BeanUtils.copyProperties(emergencySuppliesMaintainUserReqDTO, emergencySuppliesMaintainUserInfo);
|
emergencySuppliesMaintainUserInfo.setDelFlag(false);
|
emergencySuppliesMaintainUserInfo.setGmtCreate(nowDate);
|
emergencySuppliesMaintainUserInfo.setCreateUid(uid);
|
emergencySuppliesMaintainUserInfo.setMaintainId(suppliesMaintainId);
|
addList.add(emergencySuppliesMaintainUserInfo);
|
}
|
//如果存在id则判断页面是否删除
|
else {
|
newIdsList.add(emergencySuppliesMaintainUserReqDTO.getId());
|
}
|
}
|
for (Long oldId : oldIdsList) {
|
if (!newIdsList.contains(oldId)) {
|
deleteList.add(oldId);
|
}
|
}
|
if (!CollectionUtils.isEmpty(addList)) {
|
for (EmergencySuppliesMaintainUserInfo emergencySuppliesMaintainUserInfo : addList) {
|
emergencySuppliesMaintainUserInfoService.addEmergencySuppliesMaintainUser(emergencySuppliesMaintainUserInfo);
|
}
|
}
|
if (!CollectionUtils.isEmpty(deleteList)) {
|
emergencySuppliesMaintainUserInfoService.deleteEmergencySuppliesMaintainUserByIds(deleteList);
|
}
|
}
|
|
@Override
|
public ResultVO batchDeleteEmergencySuppliesMaintain(String ids) {
|
if (StringUtils.isBlank(ids)) {
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_MAINTAIN_NULL);
|
} else {
|
String[] idArr = ids.split(",");
|
for (String id : idArr) {
|
deleteEmergencySuppliesMaintain(Long.valueOf(id));
|
}
|
return new ResultVO(ResultCodes.OK);
|
}
|
}
|
|
private void deleteEmergencySuppliesMaintain(Long id) {
|
//查询是否存在
|
EmergencySuppliesMaintainInfoDetailDO emergencySuppliesMaintainInfoDetailDO = emergencySuppliesMaintainInfoService.selectEmergencySuppliesMaintainById(id);
|
if (emergencySuppliesMaintainInfoDetailDO==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_MAINTAIN_NOT_EXIST);
|
}else{
|
Long suppliesMaintainId = emergencySuppliesMaintainInfoDetailDO.getId();
|
emergencySuppliesMaintainInfoService.deleteEmergencySuppliesMaintain(suppliesMaintainId);
|
//删除人员
|
emergencySuppliesMaintainUserInfoService.deleteEmergencySuppliesMaintainUserBySuppliesMaintainId(suppliesMaintainId);
|
}
|
}
|
}
|