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.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.RiskControlMeasureExportVo; import com.gk.hotwork.Mapper.RiskControlMeasureMapper; import com.gk.hotwork.Service.RiskControlMeasureService; import com.gk.hotwork.Service.RiskEventService; import org.apache.commons.beanutils.DynaBean; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.checkerframework.checker.units.qual.A; 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.*; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * @author celin */ @Service("riskControlMeasure") public class RiskControlMeasureServiceImpl extends ServiceImpl implements RiskControlMeasureService { @Autowired private RiskControlMeasureMapper riskControlMeasureMapper; @Autowired private RiskEventService riskEventService; /** * @Description: 分页 */ @Override public IPage selectPage(Page page, Map filter, UserInfo user) { return riskControlMeasureMapper.selectPages(page,filter); } /** * @Description: 新增 */ @Override public void addOne(RiskControlMeasure riskControlMeasureVo,UserInfo userInfo) { if (StringUtils.isBlank(riskControlMeasureVo.getClassify1()) || StringUtils.isBlank(riskControlMeasureVo.getClassify2()) || StringUtils.isBlank(riskControlMeasureVo.getDataSrc())) throw new BusinessException("请填写分类"); if (riskControlMeasureVo.getRiskEventId() == null) throw new BusinessException("请选择风险事件"); int count = riskEventService.count(new LambdaQueryWrapper() .eq(RiskEvent::getId, riskControlMeasureVo.getRiskEventId()) .eq(RiskEvent::getValidFlag, Boolean.TRUE)); if (count < 1) throw new BusinessException("风险事件不存在"); String username = userInfo.getRealname(); Date date = new Date(); riskControlMeasureVo.setCreateBy(username); riskControlMeasureVo.setUpdateBy(username); riskControlMeasureVo.setCreateTime(date); riskControlMeasureVo.setUpdateTime(date); riskControlMeasureVo.setValidFlag(Boolean.TRUE); this.save(riskControlMeasureVo); } /** * @Description: 修改 * @date 2022/3/17 14:32 */ @Override public void modOne(RiskControlMeasure riskControlMeasureVo, UserInfo user) { if (riskControlMeasureVo.getId() == null) throw new BusinessException("id参数传递为空"); int measureCount = this.count(new LambdaQueryWrapper().eq(RiskControlMeasure::getId, riskControlMeasureVo.getId())); if (measureCount < 1) throw new BusinessException("找不到相应实体"); if (StringUtils.isBlank(riskControlMeasureVo.getClassify1()) || StringUtils.isBlank(riskControlMeasureVo.getClassify2()) || StringUtils.isBlank(riskControlMeasureVo.getDataSrc())) throw new BusinessException("请填写分类"); if (riskControlMeasureVo.getRiskEventId() == null) throw new BusinessException("请选择风险事件"); int eventCount = riskEventService.count(new LambdaQueryWrapper() .eq(RiskEvent::getId, riskControlMeasureVo.getRiskEventId()) .eq(RiskEvent::getValidFlag, Boolean.TRUE)); if (eventCount < 1) throw new BusinessException("风险事件不存在"); riskControlMeasureVo.setUpdateTime(new Date()); riskControlMeasureVo.setUpdateBy(user.getRealname()); this.updateById(riskControlMeasureVo); } /** * @Description: 删除 */ @Override public void delOne(Long id, UserInfo user) { if (id == null) throw new BusinessException("id参数传递为空"); int count = this.count(new LambdaQueryWrapper().eq(RiskControlMeasure::getId, id)); if (count < 1) throw new BusinessException("找不到相应实体"); RiskControlMeasure delOne = new RiskControlMeasure(); delOne.setUpdateTime(new Date()); delOne.setUpdateBy(user.getRealname()); delOne.setValidFlag(Boolean.FALSE); delOne.setId(id); this.updateById(delOne); } /** * @Description: */ @Override public List getRiskControlMeasureList(HttpServletRequest request, HttpServletResponse response) throws IOException { List riskMeasureList = riskControlMeasureMapper.getRiskControlMeasureList(); List list = new ArrayList<>(); for (RiskControlMeasure riskControlMeasure : riskMeasureList) { RiskControlMeasureExportVo copy = BeanUtils.copy(riskControlMeasure, RiskControlMeasureExportVo.class); RiskEvent byId = riskEventService.getById(riskControlMeasure.getRiskEventId()); copy.setRiskEventName(byId.getRiskEventName()); list.add(copy); } return list; // // RiskControlMeasureExportVo copy = BeanUtils.copy(riskMeasureList, RiskControlMeasureExportVo.class); // //第一步创建一个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("管控措施分类1"); // cell.setCellStyle(style); // // cell=row.createCell((short)4); // cell.setCellValue("管控措施分类2"); // // cell.setCellStyle(style); // cell=row.createCell((short)5); // cell.setCellValue("管控措施分类3"); // cell.setCellStyle(style); // // cell=row.createCell((short)6); // cell.setCellValue("隐患排查内容"); // cell.setCellStyle(style); // // cell=row.createCell((short)7); // cell.setCellValue("周期"); // cell.setCellStyle(style); // // cell=row.createCell((short)8); // cell.setCellValue("单位"); // cell.setCellStyle(style); // // for (int i = 0; i < list.size(); i++) { // //创建单元格,并赋值 // row=sheet.createRow(i+1); // RiskControlMeasureExportVo riskVo = list.get(i); // // row.createCell((short) 0).setCellValue(riskVo.getRiskEventName()); // row.createCell((short)1).setCellValue(riskVo.getDataSrc()); // row.createCell((short)2).setCellValue(riskVo.getRiskMeasureDesc()); // row.createCell((short)3).setCellValue(riskVo.getClassify1()); // row.createCell((short)4).setCellValue(riskVo.getClassify2()); // row.createCell((short)5).setCellValue(riskVo.getClassify3()); // row.createCell((short)6).setCellValue(riskVo.getTroubleshootContent()); // row.createCell((short)7).setCellValue(riskVo.getTimeEffect()); // row.createCell((short)8).setCellValue(riskVo.getTimeUnit()); // } // //第六步,下载Excel // FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\管控措施.xls")); // wb.write(fileOutputStream); } @Transactional @Override public void importRiskControlMeasure(List param, UserInfo user) { if (CollectionUtils.isEmpty(param)){ throw new BusinessException("文件不能为空"); } for (RiskControlMeasureExportVo riskControlMeasureVo : param) { /**传入字段 * 安全风险事件名称(使用id) 管控方式dataSrc 管控方式描述riskMeasureDesc * 管控措施分类1classify1 管控措施分类2classify2 管控措施分类3classify3 隐患排查内容troubleshootContent * 补充字段 * 创建时间,修改时间,创建人,修改人,有效状态 * */ RiskEvent riskEventByName = riskEventService.getByRiskEventName(riskControlMeasureVo.getRiskEventName()); if (ObjectUtils.isEmpty(riskEventByName)){ throw new BusinessException("风险事件不存在"); } if (riskControlMeasureVo.getDataSrc() == null ){ throw new BusinessException("请检查是否正确填写管控方式"); } if (riskControlMeasureVo.getRiskMeasureDesc() == null ){ throw new BusinessException("请检查是否正确填写管控方式描述"); } if (riskControlMeasureVo.getTroubleshootContent() == null ){ throw new BusinessException("请检查是否正确填写隐患排查内容"); } if (riskControlMeasureVo.getClassify1() == null && riskControlMeasureVo.getClassify2() == null && riskControlMeasureVo.getClassify3() == null){ throw new BusinessException("请检查是否正确填写管控措施分类"); } RiskControlMeasure riskControlMeasure = new RiskControlMeasure(); riskControlMeasure.setRiskEventId(riskEventByName.getId()); riskControlMeasure.setDataSrc(riskControlMeasure.getDataSrc()); riskControlMeasure.setRiskMeasureDesc(riskControlMeasureVo.getRiskMeasureDesc()); riskControlMeasure.setClassify1(riskControlMeasureVo.getClassify1()); riskControlMeasure.setClassify2(riskControlMeasureVo.getClassify2()); riskControlMeasure.setClassify3(riskControlMeasureVo.getClassify3()); riskControlMeasure.setTroubleshootContent(riskControlMeasureVo.getTroubleshootContent()); riskControlMeasure.setCreateBy(user.getRealname()); riskControlMeasure.setUpdateBy(user.getRealname()); riskControlMeasure.setCreateTime(new Date()); riskControlMeasure.setUpdateTime(new Date()); this.save(riskControlMeasure); } } @Override public String getByDataSrc(String trim) { RiskControlMeasure byDataSrc = riskControlMeasureMapper.getByDataSrc(trim); return byDataSrc.getDataSrc(); } }