package com.gkhy.labRiskManage.domain.basic.service.impl; import com.gkhy.labRiskManage.api.controller.basic.dto.repDto.OldRiskAssessQueryReqBO; import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessExportRespDTO; import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessQueryRespDTO; import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessResDTO; import com.gkhy.labRiskManage.commons.domain.Result; import com.gkhy.labRiskManage.commons.domain.SearchResult; import com.gkhy.labRiskManage.commons.enums.ResultCode; import com.gkhy.labRiskManage.commons.enums.StatusEnum; import com.gkhy.labRiskManage.commons.exception.BusinessException; import com.gkhy.labRiskManage.commons.utils.BeanCopyUtils; import com.gkhy.labRiskManage.domain.account.model.dto.UserInfoDomainDTO; import com.gkhy.labRiskManage.domain.account.service.UserDomainService; import com.gkhy.labRiskManage.domain.basic.entity.OldRiskAssess; import com.gkhy.labRiskManage.domain.basic.repository.jpa.OldRiskAssessRepository; import com.gkhy.labRiskManage.domain.basic.service.OldRiskAssessService; import org.apache.poi.hssf.usermodel.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.NumberFormat; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; /** * 基础仪器设备表 */ @Service public class OldRiskAssessServiceImpl implements OldRiskAssessService { @Autowired private UserDomainService userDomainService; @Autowired private OldRiskAssessRepository repository; @Override public int insertOldRiskAssess(Long currentUserId, OldRiskAssess oldRiskAssess) { if (ObjectUtils.isEmpty(oldRiskAssess)){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"要保存的数据不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getRegion())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"区域不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getPotentialAccident())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"潜在事故不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getDangerReason())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"危险、危害因素不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getTriggerFactor())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"触发条件不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getAccidentResult())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"事故后果不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getL())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"L数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getD())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"D数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getC())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"C数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getE())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"E数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getDangerLevel())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"危险等级不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getControlMeasure())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"现有安全控制措施不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getControlLevel())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"管控层级不能为空"); } LocalDateTime nowDate = LocalDateTime.now(); oldRiskAssess.setUpdateTime(nowDate); oldRiskAssess.setCreateTime(nowDate); oldRiskAssess.setCreateByUserId(currentUserId); oldRiskAssess.setUpdateByUserId(currentUserId); oldRiskAssess.setDeleteStatus((byte)0); OldRiskAssess saveResult = repository.save(oldRiskAssess); if (ObjectUtils.isEmpty(saveResult)){ return StatusEnum.FAIL.getCode(); } return StatusEnum.SUCCESS.getCode(); } @Override public int updateOldRiskAssess(Long currentUserId, OldRiskAssess oldRiskAssess) { OldRiskAssess oldRiskAssessById = repository.getOldRiskAssessById(oldRiskAssess.getId()); if (ObjectUtils.isEmpty(oldRiskAssessById)){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"要修改的数据不存在,或已被删除"); } if (ObjectUtils.isEmpty(oldRiskAssess.getRegion())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"区域不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getPotentialAccident())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"潜在事故不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getDangerReason())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"危险、危害因素不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getTriggerFactor())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"触发条件不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getAccidentResult())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"事故后果不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getL())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"L数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getD())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"D数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getC())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"C数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getE())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"E数值不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getDangerLevel())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"危险等级不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getControlMeasure())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"现有安全控制措施不能为空"); } if (ObjectUtils.isEmpty(oldRiskAssess.getControlLevel())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"管控层级不能为空"); } LocalDateTime nowDate = LocalDateTime.now(); oldRiskAssessById.setUpdateTime(nowDate); oldRiskAssessById.setDeleteStatus((byte)0); oldRiskAssessById.setUpdateByUserId(currentUserId); oldRiskAssessById.setUpdateTime(nowDate); oldRiskAssessById.setRegion(oldRiskAssess.getRegion()); oldRiskAssessById.setPotentialAccident(oldRiskAssess.getPotentialAccident()); oldRiskAssessById.setDangerReason(oldRiskAssess.getDangerReason()); oldRiskAssessById.setTriggerFactor(oldRiskAssess.getTriggerFactor()); oldRiskAssessById.setAccidentResult(oldRiskAssess.getAccidentResult()); oldRiskAssessById.setL(oldRiskAssess.getL()); oldRiskAssessById.setE(oldRiskAssess.getE()); oldRiskAssessById.setD(oldRiskAssess.getD()); oldRiskAssessById.setC(oldRiskAssess.getC()); oldRiskAssessById.setDangerLevel(oldRiskAssess.getDangerLevel()); oldRiskAssessById.setControlMeasure(oldRiskAssess.getControlMeasure()); oldRiskAssessById.setControlLevel(oldRiskAssess.getControlLevel()); OldRiskAssess saveResult = repository.save(oldRiskAssessById); if (ObjectUtils.isEmpty(saveResult)){ return StatusEnum.FAIL.getCode(); } return StatusEnum.SUCCESS.getCode(); } @Override public int deleteOldRiskAssess(Long currentUserId, Long id) { if (currentUserId < 0){ throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"当前用户无效,请重新登陆"); } if (ObjectUtils.isEmpty(id)){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode() ,"请选择正常的数据进行删除"); } OldRiskAssess oldRiskAssessById = repository.getOldRiskAssessById(id); if (ObjectUtils.isEmpty(oldRiskAssessById)){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"要删除的数据不存在,或已被删除"); } UserInfoDomainDTO userInfoById = userDomainService.getUserInfoById(currentUserId); LocalDateTime date = LocalDateTime.now(); //设置数据为删除 oldRiskAssessById.setDeleteStatus(StatusEnum.DELETED.getCode().byteValue()); oldRiskAssessById.setUpdateByUserId(userInfoById.getId()); oldRiskAssessById.setUpdateTime(date); OldRiskAssess deleteResult = repository.save(oldRiskAssessById); if (ObjectUtils.isEmpty(deleteResult)){ return StatusEnum.FAIL.getCode(); } return StatusEnum.SUCCESS.getCode(); } @Transactional @Override public int importOldRiskAssess(Long currentUserId, MultipartFile file) { if (currentUserId < 0){ throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"当前用户无效,请重新登陆"); } //根据路径获取这个操作excel的实例 HSSFWorkbook wb = null; List list = new ArrayList<>(); try { wb = new HSSFWorkbook(file.getInputStream()); //根据页面index 获取sheet页 HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row = null; //循环sheet页中数据从第二行开始,第一行是标题 LocalDateTime nowDate = LocalDateTime.now(); for (int i = 1; i <= sheet.getPhysicalNumberOfRows()-1; i++) { //获取每一行数据 row = sheet.getRow(i); OldRiskAssess oldRiskAssess = new OldRiskAssess(); oldRiskAssess.setUpdateTime(nowDate); oldRiskAssess.setCreateTime(nowDate); oldRiskAssess.setCreateByUserId(currentUserId); oldRiskAssess.setUpdateByUserId(currentUserId); oldRiskAssess.setDeleteStatus((byte)0); if (ObjectUtils.isEmpty(row.getCell(1))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() , "第"+ (i+1) +"行:区域不能为空"); } if (ObjectUtils.isEmpty(row.getCell(2))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:潜在事故不能为空"); } if (ObjectUtils.isEmpty(row.getCell(3))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:危险、危害因素不能为空"); } if (ObjectUtils.isEmpty(row.getCell(4))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:触发条件不能为空"); } if (ObjectUtils.isEmpty(row.getCell(5))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:事故后果不能为空"); } if (ObjectUtils.isEmpty(row.getCell(6))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:L数值不能为空"); } if (ObjectUtils.isEmpty(row.getCell(7))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:D数值不能为空"); } if (ObjectUtils.isEmpty(row.getCell(8))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:C数值不能为空"); } if (ObjectUtils.isEmpty(row.getCell(9))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:E数值不能为空"); } if (ObjectUtils.isEmpty(row.getCell(10))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:危险等级不能为空"); } if (ObjectUtils.isEmpty(row.getCell(11))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:现有安全控制措施不能为空"); } if (ObjectUtils.isEmpty(row.getCell(12))){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"第"+ (i+1) +"行:管控层级不能为空"); } oldRiskAssess.setRegion(row.getCell(1).toString()); oldRiskAssess.setPotentialAccident(row.getCell(2).toString()); oldRiskAssess.setDangerReason(row.getCell(3).toString()); oldRiskAssess.setTriggerFactor(row.getCell(4).toString()); oldRiskAssess.setAccidentResult(row.getCell(5).toString()); oldRiskAssess.setDangerLevel(row.getCell(10).toString()); oldRiskAssess.setControlMeasure(row.getCell(11).toString()); oldRiskAssess.setControlLevel(row.getCell(12).toString()); double cellL = row.getCell(6).getNumericCellValue(); double cellE = row.getCell(7).getNumericCellValue(); double cellC = row.getCell(8).getNumericCellValue(); double cellD = row.getCell(9).getNumericCellValue(); NumberFormat nf = NumberFormat.getInstance(); String L = nf.format(cellL); String E = nf.format(cellE); String C = nf.format(cellC); String D = nf.format(cellD); // if (L.indexOf(",") >= 0) { // L = L.replace(",", ""); // } oldRiskAssess.setL(L); oldRiskAssess.setE(E); oldRiskAssess.setC(C); oldRiskAssess.setD(D); list.add(oldRiskAssess); } } catch (IOException e) { throw new RuntimeException(e); } for (OldRiskAssess oldRiskAssess : list) { OldRiskAssess save = repository.save(oldRiskAssess); if (ObjectUtils.isEmpty(save)){ throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"导入出错"); } } return StatusEnum.SUCCESS.getCode(); } @Override public Result exportOldRiskAssess(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO , HttpServletResponse response, HttpServletRequest request) { //组装查询条件 Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { List predicateList = new ArrayList<>(); if(queryReqDO.getRegion() != null && !queryReqDO.getRegion().equals("")){ predicateList.add(criteriaBuilder.like(root.get("region"),'%'+ queryReqDO.getRegion() +'%')); } if(queryReqDO.getPotentialAccident() != null && !queryReqDO.getPotentialAccident().equals("")){ predicateList.add(criteriaBuilder.like(root.get("potentialAccident"),'%'+queryReqDO.getPotentialAccident() +'%')); } if(queryReqDO.getDangerReason() != null && !queryReqDO.getDangerReason().equals("")){ predicateList.add(criteriaBuilder.like(root.get("dangerReason"),'%'+queryReqDO.getDangerReason() +'%')); } if(queryReqDO.getTriggerFactor() != null && !queryReqDO.getTriggerFactor().equals("")){ predicateList.add(criteriaBuilder.like(root.get("triggerFactor"),'%'+queryReqDO.getTriggerFactor() +'%')); } if(queryReqDO.getAccidentResult() != null && !queryReqDO.getAccidentResult().equals("")){ predicateList.add(criteriaBuilder.like(root.get("accidentResult"),'%'+queryReqDO.getAccidentResult() +'%')); } if(queryReqDO.getDangerLevel() != null && !queryReqDO.getDangerLevel().equals("")){ predicateList.add(criteriaBuilder.like(root.get("dangerLevel"),'%'+queryReqDO.getDangerLevel() +'%')); } if(queryReqDO.getControlMeasure() != null && !queryReqDO.getControlMeasure().equals("")){ predicateList.add(criteriaBuilder.like(root.get("controlMeasure"),'%'+queryReqDO.getControlMeasure() +'%')); } if(queryReqDO.getControlLevel() != null && !queryReqDO.getControlLevel().equals("")){ predicateList.add(criteriaBuilder.like(root.get("controlLevel"),'%'+queryReqDO.getControlLevel() +'%')); } predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"),StatusEnum.DELETE_NOT.getCode())); //返回组装的条件 return criteriaBuilder.and(predicateList.toArray(predicateList.toArray(new Predicate[0]))); } }; List list = repository.findAll(specification); Result result = new Result<>(); //创建工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); //创建sheet HSSFSheet sheet=workbook.createSheet("评分标准"); //创建第一行 HSSFRow header = sheet.createRow(0); //创建单元格并插入表头 HSSFCell cell = null; String[] infos={"编号","区域","潜在事故","危险、有害因素","触发条件","事故后果","L","E","C","D", "危险等级","现有安全控制措施(工程技术、管理、培训教育、个体防护、应急处置)","管控层级(公司级、部门级、岗位级)"}; for(int i = 0; i < infos.length; i++){ cell = header.createCell(i); cell.setCellValue(infos[i]); } //写入数据 for (int j = 1; j < list.size(); j++) { OldRiskAssess oldRiskAssess = list.get(j - 1); HSSFRow row = sheet.createRow(j); cell= row.createCell(0); cell.setCellValue(j); cell = row.createCell(1); cell.setCellValue(oldRiskAssess.getRegion()); cell = row.createCell(2); cell.setCellValue(oldRiskAssess.getPotentialAccident()); cell = row.createCell(3); cell.setCellValue(oldRiskAssess.getDangerReason()); cell = row.createCell(4); cell.setCellValue(oldRiskAssess.getTriggerFactor()); cell = row.createCell(5); cell.setCellValue(oldRiskAssess.getAccidentResult()); cell = row.createCell(6); cell.setCellValue(oldRiskAssess.getL()); cell = row.createCell(7); cell.setCellValue(oldRiskAssess.getE()); cell = row.createCell(8); cell.setCellValue(oldRiskAssess.getC()); cell = row.createCell(9); cell.setCellValue(oldRiskAssess.getD()); cell = row.createCell(10); cell.setCellValue(oldRiskAssess.getDangerLevel()); cell = row.createCell(11); cell.setCellValue(oldRiskAssess.getControlMeasure()); cell = row.createCell(12); cell.setCellValue(oldRiskAssess.getControlLevel()); } // // 保存Excel文件 // try{ // ServletOutputStream out = null; // response.setContentType("application/json"); // response.setCharacterEncoding("utf-8"); // response.setContentType("application/octet-stream;charset=UTF-8"); // String fileName = "测试测试.xls"; // // String agent = request.getHeader("USER-AGENT").toLowerCase(); // String uncodeFileNameString = ""; // if(agent.contains("firefox")){ // // 火狐 // uncodeFileNameString = "=?UTF-8?B?" + (new String(Base64Utils.encodeToString(fileName.getBytes("UTF-8")))) + "?="; // }else{ // // 其他 // uncodeFileNameString = URLEncoder.encode(fileName, "UTF-8"); // uncodeFileNameString = uncodeFileNameString.replace("+", "%20"); // 空格被转为了 "+" ,要转成utf-8的空格符号 "%20" // } // response.setContentType("application/octet-stream;charset=UTF-8"); // response.setHeader("Content-disposition", "attachment; filename=" + uncodeFileNameString); // out = response.getOutputStream(); // // //// // 获取桌面路径 //// String desktopPath = System.getProperty("user.home") + "/Desktop/"; //// // 导出文件名 //// String fileName = desktopPath + "评分标准.xlsx"; //// FileOutputStream fileOutputStream = new FileOutputStream(new File(fileName)); // // 将工作簿写入文件 // workbook.write(out); // workbook.close(); // out.close(); // } catch (Exception e) { // e.printStackTrace(); // } result.setData(list); result.setCount(list.size()); return result; } @Override public List getOldRiskAssessListByRegion(List region) { Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { query.orderBy(criteriaBuilder.asc(root.get("region"))); List predicateList = new ArrayList<>(); predicateList.add(criteriaBuilder.in(root.get("region")).value(region)); predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"),StatusEnum.DELETE_NOT.getCode())); //返回组装的条件 return criteriaBuilder.and(predicateList.toArray(predicateList.toArray(new Predicate[0]))); } }; List all = repository.findAll(specification); if (ObjectUtils.isEmpty(all)){ return null; } List oldRiskAssessResDTOS = BeanCopyUtils.copyBeanList(all, OldRiskAssessResDTO.class); oldRiskAssessResDTOS.forEach(oldRiskAssessResDTO -> { oldRiskAssessResDTO.setSort(oldRiskAssessResDTOS.indexOf(oldRiskAssessResDTO) + 1); }); return oldRiskAssessResDTOS; } @Override public SearchResult getOldRiskAssessPage(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO) { //校验参数 if (ObjectUtils.isEmpty(queryReqDO.getPageSize())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"分页信息不能为空"); } if (ObjectUtils.isEmpty(queryReqDO.getPageIndex())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"分页信息不能为空"); } SearchResult searchResult = new SearchResult<>(); //组装查询条件 Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { List predicateList = new ArrayList<>(); if(queryReqDO.getRegion() != null && !queryReqDO.getRegion().equals("")){ predicateList.add(criteriaBuilder.like(root.get("region"),'%'+ queryReqDO.getRegion() +'%')); } if(queryReqDO.getPotentialAccident() != null && !queryReqDO.getPotentialAccident().equals("")){ predicateList.add(criteriaBuilder.like(root.get("potentialAccident"),'%'+queryReqDO.getPotentialAccident() +'%')); } if(queryReqDO.getDangerReason() != null && !queryReqDO.getDangerReason().equals("")){ predicateList.add(criteriaBuilder.like(root.get("dangerReason"),'%'+queryReqDO.getDangerReason() +'%')); } if(queryReqDO.getTriggerFactor() != null && !queryReqDO.getTriggerFactor().equals("")){ predicateList.add(criteriaBuilder.like(root.get("triggerFactor"),'%'+queryReqDO.getTriggerFactor() +'%')); } if(queryReqDO.getAccidentResult() != null && !queryReqDO.getAccidentResult().equals("")){ predicateList.add(criteriaBuilder.like(root.get("accidentResult"),'%'+queryReqDO.getAccidentResult() +'%')); } if(queryReqDO.getDangerLevel() != null && !queryReqDO.getDangerLevel().equals("")){ predicateList.add(criteriaBuilder.like(root.get("dangerLevel"),'%'+queryReqDO.getDangerLevel() +'%')); } if(queryReqDO.getControlMeasure() != null && !queryReqDO.getControlMeasure().equals("")){ predicateList.add(criteriaBuilder.like(root.get("controlMeasure"),'%'+queryReqDO.getControlMeasure() +'%')); } if(queryReqDO.getControlLevel() != null && !queryReqDO.getControlLevel().equals("")){ predicateList.add(criteriaBuilder.like(root.get("controlLevel"),'%'+queryReqDO.getControlLevel() +'%')); } predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"),StatusEnum.DELETE_NOT.getCode())); //返回组装的条件 return criteriaBuilder.and(predicateList.toArray(predicateList.toArray(new Predicate[0]))); } }; PageRequest page = PageRequest.of(queryReqDO.getPageIndex() - 1, queryReqDO.getPageSize(), Sort.Direction.DESC, "updateTime"); Page pageResult = repository.findAll(specification, page); List oldRiskAssessQueryRespDTO = BeanCopyUtils.copyBeanList(pageResult.getContent(), OldRiskAssessQueryRespDTO.class); List userList = userDomainService.getUserList(); for (OldRiskAssessQueryRespDTO oldRiskAssess : oldRiskAssessQueryRespDTO) { for (UserInfoDomainDTO userInfo : userList) { if (userInfo.getId() == oldRiskAssess.getCreateByUserId()){ oldRiskAssess.setCreateByUserName(userInfo.getRealName()); } if (userInfo.getId() == oldRiskAssess.getUpdateByUserId()){ oldRiskAssess.setUpdateByUserName(userInfo.getRealName()); } } } searchResult.setTotal(pageResult.getTotalElements()); searchResult.setData(oldRiskAssessQueryRespDTO); return searchResult; } }