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.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gk.hotwork.Domain.Exception.BusinessException;
|
import com.gk.hotwork.Domain.RiskAnaUnit;
|
import com.gk.hotwork.Domain.RiskControlMeasure;
|
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.RiskEventExportVo;
|
import com.gk.hotwork.Mapper.RiskEventMapper;
|
import com.gk.hotwork.Service.RiskAnaUnitService;
|
import com.gk.hotwork.Service.RiskControlMeasureService;
|
import com.gk.hotwork.Service.RiskEventService;
|
import lombok.SneakyThrows;
|
import org.apache.commons.lang3.ObjectUtils;
|
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.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service("riskEventService")
|
public class RiskEventServiceImpl extends ServiceImpl<RiskEventMapper,RiskEvent> implements RiskEventService {
|
|
@Autowired
|
private RiskEventMapper riskEventMapper;
|
@Autowired
|
private RiskControlMeasureService riskControlMeasureService;
|
@Autowired
|
private RiskAnaUnitService riskAnaUnitService;
|
|
|
/**
|
* @Description: 分页
|
*/
|
@Override
|
public IPage<RiskEvent> selectPage(Page<RiskEvent> page, Map<String, Object> filter, UserInfo user) {
|
return riskEventMapper.selectPages(page,filter);
|
}
|
|
|
/**
|
* @Description: 新增
|
*/
|
@Override
|
public void addOne(RiskEvent riskEventVo, UserInfo user) {
|
if(StringUtils.isBlank(riskEventVo.getRiskEventName())) throw new BusinessException("请填写安全风险事件名称");
|
if (riskEventVo.getRiskUnitId() == null) throw new BusinessException("请选择安全风险单位");
|
int count = riskAnaUnitService.count(new LambdaQueryWrapper<RiskAnaUnit>()
|
.eq(RiskAnaUnit::getId, riskEventVo.getRiskUnitId())
|
.eq(RiskAnaUnit::getValidFlag, Boolean.TRUE));
|
if (count < 1 ) throw new BusinessException("安全风险单位不存在");
|
|
Date date = new Date();
|
String username = user.getRealname();
|
riskEventVo.setValidFlag(Boolean.TRUE);
|
riskEventVo.setUpdateBy(username);
|
riskEventVo.setCreateBy(username);
|
riskEventVo.setUpdateTime(date);
|
riskEventVo.setCreateTime(date);
|
this.save(riskEventVo);
|
}
|
|
|
/**
|
* @Description: 修改
|
*/
|
@Override
|
public void modOne(RiskEvent riskEventVo, UserInfo user) {
|
if (riskEventVo.getId() == null) throw new BusinessException("id传参不能为空");
|
int eventCount = this.count(new LambdaQueryWrapper<RiskEvent>().eq(RiskEvent::getId, riskEventVo.getId()));
|
if (eventCount < 1) throw new BusinessException("找不到对应实体");
|
if(StringUtils.isBlank(riskEventVo.getRiskEventName())) throw new BusinessException("请填写安全风险事件名称");
|
if (riskEventVo.getRiskUnitId() == null) throw new BusinessException("请选择安全风险单位");
|
int unitCount = riskAnaUnitService.count(new LambdaQueryWrapper<RiskAnaUnit>()
|
.eq(RiskAnaUnit::getId, riskEventVo.getRiskUnitId())
|
.eq(RiskAnaUnit::getValidFlag, Boolean.TRUE));
|
if (unitCount < 1 ) throw new BusinessException("安全风险单位不存在");
|
|
riskEventVo.setUpdateTime(new Date());
|
riskEventVo.setUpdateBy(user.getRealname());
|
this.updateById(riskEventVo);
|
}
|
|
|
/**
|
* @Description: 删除
|
*/
|
@Override
|
public void delOne(Long id, UserInfo user) {
|
if (id == null) throw new BusinessException("id传参不能为空");
|
RiskEvent riskEvent = this.getById(id);
|
if (riskEvent == null) throw new BusinessException("找不到对应实体");
|
int count = riskControlMeasureService.count(new LambdaQueryWrapper<RiskControlMeasure>()
|
.eq(RiskControlMeasure::getRiskEventId, riskEvent.getId())
|
.eq(RiskControlMeasure::getValidFlag, Boolean.TRUE));
|
if (count > 0) throw new BusinessException("当前风险事件仍然绑定风险管控措施,无法删除");
|
RiskEvent delOne = new RiskEvent();
|
delOne.setId(id);
|
delOne.setUpdateTime(new Date());
|
delOne.setUpdateBy(user.getRealname());
|
delOne.setValidFlag(Boolean.FALSE);
|
this.updateById(delOne);
|
}
|
|
|
/**
|
* @Description: 导出
|
*/
|
@SneakyThrows
|
@Override
|
public List<RiskEventExportVo> getRiskEventList(HttpServletRequest request, HttpServletResponse response) {
|
|
List<RiskEvent> risklist = riskEventMapper.getRiskEventList();
|
List<RiskEventExportVo> list = new ArrayList<>();
|
|
for (RiskEvent riskEvent : risklist) {
|
RiskAnaUnit byId = riskAnaUnitService.getById(riskEvent.getRiskUnitId());
|
RiskEventExportVo copy = BeanUtils.copy(riskEvent, RiskEventExportVo.class);
|
copy.setRiskUnitName(byId.getRiskUnitName());
|
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);
|
//
|
// for (int i = 0; i < list.size(); i++) {
|
// //创建单元格,并赋值
|
// row=sheet.createRow(i+1);
|
// RiskEvent riskEvent = list.get(i);
|
// RiskAnaUnit riskAnaUnit = riskAnaUnitService.getById(riskEvent.getRiskUnitId());
|
//
|
// row.createCell((short) 0).setCellValue(riskEvent.getRiskEventName());
|
// row.createCell((short)1).setCellValue(riskAnaUnit.getRiskUnitName());
|
//
|
// }
|
// //第六步,下载Excel
|
// FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\风险事件.xls"));
|
// wb.write(fileOutputStream);
|
|
}
|
|
@Transactional
|
@Override
|
public void importRiskEventData(List<RiskEventExportVo> param, UserInfo user) {
|
if (CollectionUtils.isEmpty(param)){
|
throw new BusinessException("文件不能为空");
|
}
|
|
for (RiskEventExportVo riskEventExportVo : param) {
|
//取出风险单元名称,查出对应风险单元信息
|
RiskAnaUnit riskUnitInfo = riskAnaUnitService.getInfoByRiskUnitName(riskEventExportVo.getRiskUnitName());
|
if (riskEventExportVo.getRiskUnitName() == null || ObjectUtils.isEmpty(riskUnitInfo)) {
|
throw new BusinessException("请确认文件格式是否正确或风险单元是否存在");
|
}
|
if (riskEventExportVo.getRiskEventName() == null){
|
throw new BusinessException("请填写风险事件名称");
|
}
|
|
//取出风险事件名称,将数据写入RiskEvent对象
|
RiskEvent riskEvent = new RiskEvent();
|
|
riskEvent.setRiskUnitId(riskUnitInfo.getId());
|
riskEvent.setRiskEventName(riskEventExportVo.getRiskEventName());
|
riskEvent.setValidFlag(Boolean.TRUE);
|
riskEvent.setUpdateBy(user.getRealname());
|
riskEvent.setCreateBy(user.getRealname());
|
riskEvent.setCreateTime(new Date());
|
riskEvent.setUpdateTime(new Date());
|
|
this.save(riskEvent);
|
}
|
}
|
|
@Override
|
public RiskEvent getByRiskEventName(String riskEventName) {
|
|
return riskEventMapper.getByRiskEventName(riskEventName);
|
}
|
}
|