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 implements RiskEventService { @Autowired private RiskEventMapper riskEventMapper; @Autowired private RiskControlMeasureService riskControlMeasureService; @Autowired private RiskAnaUnitService riskAnaUnitService; /** * @Description: 分页 */ @Override public IPage selectPage(Page page, Map 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() .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().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() .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() .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 getRiskEventList(HttpServletRequest request, HttpServletResponse response) { List risklist = riskEventMapper.getRiskEventList(); List 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 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); } }