package com.gk.hotwork.Service.ServiceImpl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gk.hotwork.Domain.*;
|
import com.gk.hotwork.Domain.Exception.BusinessException;
|
import com.gk.hotwork.Domain.Utils.StringUtils;
|
import com.gk.hotwork.Mapper.EmergencyPlanFileMapper;
|
import com.gk.hotwork.Mapper.EmergencyPlanMapper;
|
import com.gk.hotwork.Service.EmergencyPlanService;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service("emergencyPlanService")
|
@Transactional
|
public class EmergencyPlanImpl extends ServiceImpl<EmergencyPlanMapper,EmergencyPlan> implements EmergencyPlanService {
|
|
@Autowired
|
private EmergencyPlanMapper emergencyPlanMapper;
|
@Autowired
|
private EmergencyPlanFileMapper emergencyPlanFileMapper;
|
|
/**
|
* @Description: 分页
|
*/
|
@Override
|
public IPage<EmergencyPlan> selectPage(Page<EmergencyPlan> page, Map<String, Object> filter, UserInfo user) {
|
IPage<EmergencyPlan> res = emergencyPlanMapper.selectPages(page,filter);
|
if (CollectionUtils.isNotEmpty(res.getRecords())){
|
for (int i = 0 ; i < res.getRecords().size(); i++){
|
List<EmergencyPlanFile> fileList = emergencyPlanFileMapper.getByEmergencyPlanId(res.getRecords().get(i).getId());
|
res.getRecords().get(i).setFileList(fileList);
|
}
|
}
|
return res;
|
}
|
|
|
/**
|
* @Description: 新增
|
*/
|
@Override
|
public void addOne(EmergencyPlan param, UserInfo user) {
|
requiredVerification(param);
|
|
Date date = new Date();
|
String username = user.getRealname();
|
param.setValidFlag(Boolean.TRUE);
|
param.setUpdateBy(username);
|
param.setCreateBy(username);
|
param.setUpdateTime(date);
|
param.setCreateTime(date);
|
this.save(param);
|
if (CollectionUtils.isNotEmpty(param.getFileList())){
|
for (EmergencyPlanFile emergencyPlanFile : param.getFileList()){
|
emergencyPlanFile.setValidFlag(Boolean.TRUE);
|
emergencyPlanFile.setUpdateBy(username);
|
emergencyPlanFile.setCreateBy(username);
|
emergencyPlanFile.setUpdateTime(date);
|
emergencyPlanFile.setCreateTime(date);
|
emergencyPlanFile.setEmergencyPlanId(param.getId());
|
emergencyPlanFileMapper.insert(emergencyPlanFile);
|
}
|
}
|
}
|
|
|
/**
|
* @Description: 修改
|
*/
|
@Override
|
public void modOne(EmergencyPlan param, UserInfo user) {
|
|
Date date = new Date();
|
String username = user.getRealname();
|
selectVerification(param.getId());
|
requiredVerification(param);
|
param.setUpdateTime(date);
|
param.setUpdateBy(username);
|
this.updateById(param);
|
|
//对比删除文件
|
List<EmergencyPlanFile> oldFileList = emergencyPlanFileMapper.getByEmergencyPlanId(param.getId());
|
List<EmergencyPlanFile> newFileList = param.getFileList();
|
|
List<Long> oldIdList = new ArrayList<>();
|
List<Long> newIdList = new ArrayList<>();
|
|
for (EmergencyPlanFile oldEmergencyPlanFile :oldFileList ){
|
oldIdList.add(oldEmergencyPlanFile.getId());
|
}
|
for (EmergencyPlanFile newEmergencyPlanFile :newFileList ){
|
if (newEmergencyPlanFile.getId()==null){
|
//1.添加新增的元素
|
newEmergencyPlanFile.setValidFlag(Boolean.TRUE);
|
newEmergencyPlanFile.setUpdateBy(username);
|
newEmergencyPlanFile.setCreateBy(username);
|
newEmergencyPlanFile.setUpdateTime(date);
|
newEmergencyPlanFile.setCreateTime(date);
|
newEmergencyPlanFile.setEmergencyPlanId(param.getId());
|
emergencyPlanFileMapper.insert(newEmergencyPlanFile);
|
}else{
|
newIdList.add(newEmergencyPlanFile.getId());
|
}
|
}
|
//2.删除不存在的元素
|
List<Long> diffList = getDif(oldIdList,newIdList);
|
if (CollectionUtils.isNotEmpty(diffList)){
|
for (Long id : diffList){
|
emergencyPlanFileMapper.deleteById(id,username,date);
|
}
|
}
|
}
|
|
public List<Long> getDif(List<Long> oldIdList , List<Long> newIdList ){
|
ArrayList<Long> dif = new ArrayList<>();
|
//查找出oldIdList表中不包含newIdList的元素
|
for (Long id : oldIdList) {
|
if (!(newIdList.contains(id))) {
|
dif.add(id);
|
}
|
}
|
return dif;
|
}
|
|
|
/**
|
* @Description: 删除
|
*/
|
@Override
|
public void delOne(Long id, UserInfo user) {
|
selectVerification(id);
|
EmergencyPlan delOne = new EmergencyPlan();
|
delOne.setId(id);
|
delOne.setUpdateTime(new Date());
|
delOne.setUpdateBy(user.getRealname());
|
delOne.setValidFlag(Boolean.FALSE);
|
this.updateById(delOne);
|
}
|
|
/**
|
* 查询验证
|
* 验证对象存在
|
*/
|
public void selectVerification(Long id){
|
if (id == null) throw new BusinessException("id传参不能为空");
|
EmergencyPlan EmergencyPlan = this.getById(id);
|
if (EmergencyPlan == null) throw new BusinessException("找不到对应实体");
|
}
|
|
/**
|
* 操作验证
|
* 验证必填项
|
*
|
*/
|
public void requiredVerification(EmergencyPlan param){
|
if(StringUtils.isBlank(param.getName())) throw new BusinessException("请填写应急预案名称");
|
if (param.getFileType() == null) throw new BusinessException("请选择应急预案文件类型");
|
if (param.getFileType() == 0 && CollectionUtils.isEmpty(param.getFileList())){
|
throw new BusinessException("请上传图片");
|
}
|
if (param.getFileType() == 1 && CollectionUtils.isEmpty(param.getFileList())){
|
throw new BusinessException("请上传文件");
|
}
|
}
|
|
}
|