package com.gk.hotwork.Service.ServiceImpl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.extension.api.R;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gk.hotwork.Domain.DepartmentInfo;
|
import com.gk.hotwork.Domain.Exception.BusinessException;
|
import com.gk.hotwork.Domain.RiskAnaUnit;
|
import com.gk.hotwork.Domain.RiskEvent;
|
import com.gk.hotwork.Domain.UserInfo;
|
import com.gk.hotwork.Domain.Utils.BeanUtils;
|
import com.gk.hotwork.Domain.Utils.StringUtils;
|
import com.gk.hotwork.Domain.Vo.RiskAnaUintExoprtVo;
|
import com.gk.hotwork.Domain.Vo.RiskEventExportVo;
|
import com.gk.hotwork.Mapper.RiskAnaUintMapper;
|
import com.gk.hotwork.Service.DepartmentService;
|
import com.gk.hotwork.Service.RiskAnaUnitService;
|
import com.gk.hotwork.Service.RiskEventService;
|
import com.gk.hotwork.Service.UserService;
|
import io.netty.util.internal.ObjectUtil;
|
import lombok.SneakyThrows;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.poi.hssf.usermodel.*;
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.File;
|
import java.io.FileOutputStream;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author celin
|
* @date 2022/3/16 14:40
|
*/
|
@Service("riskAnaUnitService")
|
public class RiskAnaUnitServiceImpl extends ServiceImpl<RiskAnaUintMapper,RiskAnaUnit> implements RiskAnaUnitService {
|
|
@Autowired
|
private RiskAnaUintMapper riskAnaUintMapper;
|
@Autowired
|
private DepartmentService departmentService;
|
@Autowired
|
private RiskEventService riskEventService;
|
@Autowired
|
private UserService userService;
|
|
/**
|
* @Description: 分页查询
|
* @date 2022/3/16 10:01
|
*/
|
@Override
|
public IPage<RiskAnaUnit> selectPage(Page<RiskAnaUnit> page, Map<String, Object> filter, UserInfo user) {
|
return riskAnaUintMapper.selectPages(page,filter,user);
|
}
|
|
/**
|
* @Description: 新增记录
|
*/
|
@Override
|
public void addOne(RiskAnaUnit riskAnaUnitVo,UserInfo userInfo) {
|
Date date = new Date();
|
//判空
|
if (riskAnaUnitVo.getHazardDepId() == null) throw new BusinessException("部门id参数为空");
|
if (riskAnaUnitVo.getHazardLiablePersonId() == null) throw new BusinessException("负责人id参数为空");
|
DepartmentInfo department = departmentService.getById(riskAnaUnitVo.getHazardDepId());
|
if (department == null) throw new BusinessException("部门不存在");
|
UserInfo hazardLiablePerson = userService.getById(riskAnaUnitVo.getHazardLiablePersonId());
|
if(hazardLiablePerson == null) throw new BusinessException("择负责人不存在");
|
if(StringUtils.isBlank(riskAnaUnitVo.getRiskUnitName())) throw new BusinessException("请填写安全风险分析单元名称");
|
if(StringUtils.isBlank(riskAnaUnitVo.getHazardCode())) throw new BusinessException("请填写危险源编码");
|
//编号待定
|
riskAnaUnitVo.setCreateTime(date);
|
riskAnaUnitVo.setUpdateTime(date);
|
riskAnaUnitVo.setCreateBy(userInfo.getRealname());
|
riskAnaUnitVo.setUpdateBy(userInfo.getRealname());
|
riskAnaUnitVo.setValidFlag(Boolean.TRUE);
|
this.save(riskAnaUnitVo);
|
}
|
|
/**
|
* @Description: 修改信息
|
*/
|
|
@Override
|
public void modOne(RiskAnaUnit riskAnaUnitVo, UserInfo user) {
|
if (riskAnaUnitVo.getId() == null) throw new BusinessException("id参数为空");
|
int count = this.count(new LambdaQueryWrapper<RiskAnaUnit>().eq(RiskAnaUnit::getId, riskAnaUnitVo.getId()));
|
if (count < 1) throw new BusinessException("未找到相应实体");
|
//判空
|
if (riskAnaUnitVo.getHazardDepId() == null) throw new BusinessException("部门id参数为空");
|
DepartmentInfo department = departmentService.getById(riskAnaUnitVo.getHazardDepId());
|
if (department == null) throw new BusinessException("部门不存在");
|
if (riskAnaUnitVo.getHazardLiablePersonId() == null) throw new BusinessException("负责人id参数为空");
|
UserInfo hazardLiablePerson = userService.getById(riskAnaUnitVo.getHazardLiablePersonId());
|
if(hazardLiablePerson == null) throw new BusinessException("择负责人不存在");
|
if(StringUtils.isBlank(riskAnaUnitVo.getRiskUnitName())) throw new BusinessException("请填写安全风险分析单元名称");
|
riskAnaUnitVo.setUpdateBy(user.getRealname());
|
riskAnaUnitVo.setUpdateTime(new Date());
|
this.updateById(riskAnaUnitVo);
|
}
|
|
|
/**
|
* @Description: 删除
|
*/
|
@Override
|
public void delOne(Long id, UserInfo userInfo) {
|
if (id == null) throw new BusinessException("id参数为空");
|
RiskAnaUnit riskAnaUnit = this.getById(id);
|
if (riskAnaUnit == null) throw new BusinessException("未找到相应实体");
|
int count = riskEventService.count(new LambdaQueryWrapper<RiskEvent>()
|
.eq(RiskEvent::getRiskUnitId, riskAnaUnit.getId())
|
.eq(RiskEvent::getValidFlag, Boolean.TRUE));
|
if (count > 0) throw new BusinessException("安全风险分析单元仍然绑定安全风险事件,无法删除");
|
RiskAnaUnit delOne = new RiskAnaUnit();
|
delOne.setId(id);
|
delOne.setValidFlag(Boolean.FALSE);
|
delOne.setUpdateBy(userInfo.getRealname());
|
delOne.setUpdateTime(new Date());
|
this.updateById(delOne);
|
}
|
|
@Override
|
public List<Map> selectDepartmentAnalysis() {
|
return riskAnaUintMapper.selectDepartmentAnalysis();
|
}
|
|
@SneakyThrows
|
@Override
|
public List<RiskAnaUintExoprtVo> getInfo(HttpServletRequest request, HttpServletResponse response) {
|
|
List<RiskAnaUnit> riskAnaUnitlist = riskAnaUintMapper.getInfo();
|
List<RiskAnaUintExoprtVo> list = new ArrayList<>();
|
|
for (RiskAnaUnit riskAnaUnit : riskAnaUnitlist) {
|
RiskAnaUintExoprtVo copy = BeanUtils.copy(riskAnaUnit, RiskAnaUintExoprtVo.class);
|
list.add(copy);
|
}
|
|
return list;
|
|
/* //第一步创建一个webbook,对应一个Excel文件
|
HSSFWorkbook wb=new HSSFWorkbook();
|
//第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
|
HSSFSheet sheet=wb.createSheet("管控措施");
|
//第三步,在sheet中添加表头第0行
|
HSSFRow row = sheet.createRow(0);
|
//第四步,创建单元格,并设置表头居中
|
HSSFCellStyle style = wb.createCellStyle();
|
style.setAlignment(HorizontalAlignment.CENTER);//居中格式
|
|
HSSFCell cell = row.createCell(0);
|
cell.setCellValue("安全风险对象编码");
|
cell.setCellStyle(style);
|
|
cell=row.createCell((short)1);
|
cell.setCellValue("安全风险单元名称");
|
cell.setCellStyle(style);
|
|
cell=row.createCell((short)2);
|
cell.setCellValue("责任人");
|
cell.setCellStyle(style);
|
|
cell=row.createCell((short)3);
|
cell.setCellValue("责任部门");
|
cell.setCellStyle(style);
|
|
for (int i = 0; i < list.size(); i++) {
|
//创建单元格,并赋值
|
row=sheet.createRow(i+1);
|
RiskAnaUnit riskAnaUnit = list.get(i);
|
|
row.createCell((short) 0).setCellValue(riskAnaUnit.getHazardCode());
|
row.createCell((short)1).setCellValue(riskAnaUnit.getRiskUnitName());
|
row.createCell((short)2).setCellValue(riskAnaUnit.getHazardLiablePerson());
|
row.createCell((short)3).setCellValue(riskAnaUnit.getHazardDep());
|
|
}
|
//第六步,下载Excel
|
FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\安全风险分析单元.xls"));
|
wb.write(fileOutputStream);*/
|
|
}
|
|
@Override
|
public RiskAnaUnit getInfoByRiskUnitName(String riskUnitName) {
|
//riskAnaUintMapper.getInfoByRiskUnitName(riskUnitName);
|
return riskAnaUintMapper.getInfoByRiskUnitName(riskUnitName);
|
}
|
@Transactional
|
@Override
|
public void importRiskAnaUnit(List<RiskAnaUintExoprtVo> param, UserInfo user) {
|
|
if (CollectionUtils.isEmpty(param)){
|
throw new BusinessException("文件不能为空");
|
}
|
|
for (RiskAnaUintExoprtVo riskAnaUintVo : param) {
|
/**传入字段
|
* 风险源编码hazardCode 风险单元名称riskUnitName 责任人hazardLiablePerson 责任部门hazardDep
|
* 补充字段
|
* 创建时间,修改时间,创建人,修改人,有效状态,责任人id,责任部门id
|
* */
|
DepartmentInfo departmentInfo = departmentService.getInfoByName(riskAnaUintVo.getHazardDep());
|
if (departmentInfo.getDepartment() == null) throw new BusinessException("部门不存在");
|
|
UserInfo userInfo = userService.getByRealName(riskAnaUintVo.getHazardLiablePerson(), departmentInfo.getDepartment());
|
if (ObjectUtils.isEmpty(userInfo)) throw new BusinessException("负责人不存在");
|
|
if (riskAnaUintVo.getHazardCode() == null && riskAnaUintVo.getRiskUnitName() == null){
|
throw new BusinessException("生产装置编码与风险单元名称不能为空");
|
}
|
RiskAnaUnit riskAnaUnit = new RiskAnaUnit();
|
|
riskAnaUnit.setHazardCode(riskAnaUintVo.getHazardCode());
|
riskAnaUnit.setRiskUnitName(riskAnaUintVo.getRiskUnitName());
|
riskAnaUnit.setHazardLiablePerson(riskAnaUintVo.getHazardLiablePerson());
|
riskAnaUnit.setHazardDep(riskAnaUintVo.getHazardDep());
|
|
riskAnaUnit.setHazardDepId(departmentInfo.getId());
|
riskAnaUnit.setHazardLiablePersonId(userInfo.getId());
|
riskAnaUnit.setCreateTime(new Date());
|
riskAnaUnit.setUpdateTime(new Date());
|
riskAnaUnit.setCreateBy(user.getRealname());
|
riskAnaUnit.setUpdateBy(user.getRealname());
|
riskAnaUnit.setValidFlag(Boolean.TRUE);
|
this.save(riskAnaUnit);
|
}
|
}
|
|
}
|