From 761bdc5b3f17df62aae1b424f2d2dabc11e844bc Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期五, 23 五月 2025 09:33:44 +0800 Subject: [PATCH] 变动大幅度版本 --- src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java | 291 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 264 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java index 7295182..1738dc6 100644 --- a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java +++ b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java @@ -1,5 +1,7 @@ package com.gkhy.labRiskManage.domain.riskReport.service.impl; +import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessResDTO; +import com.gkhy.labRiskManage.api.controller.experiment.dto.req.ExperimentAndPersonInsertReqBO; import com.gkhy.labRiskManage.api.controller.riskReport.dto.repDto.ReportReqBO; import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportExperimentSiteQueryRespDTO; import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportPersonQueryRespDTO; @@ -19,10 +21,12 @@ import com.gkhy.labRiskManage.domain.account.model.dto.UserInfoDomainDTO; import com.gkhy.labRiskManage.domain.account.service.UserDomainService; import com.gkhy.labRiskManage.domain.basic.entity.BasicRiskUnitType; +import com.gkhy.labRiskManage.domain.basic.entity.OldRiskAssess; import com.gkhy.labRiskManage.domain.basic.model.dto.SiteQueryDTO; import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentPersonService; import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentSiteService; import com.gkhy.labRiskManage.domain.basic.service.BasicRiskUnitTypeService; +import com.gkhy.labRiskManage.domain.basic.service.OldRiskAssessService; import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndSite; import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog; import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentInfo; @@ -30,10 +34,12 @@ import com.gkhy.labRiskManage.domain.experiment.enums.ExperimentRectifyStatusEnum; import com.gkhy.labRiskManage.domain.experiment.model.dto.ExperimentInfoDTO; import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAndSiteService; +import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAndTypeService; import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAssessLogService; import com.gkhy.labRiskManage.domain.experiment.service.ExperimentInfoService; import com.gkhy.labRiskManage.domain.riskReport.entity.*; import com.gkhy.labRiskManage.domain.riskReport.model.bo.ReportQueryBO; +import com.gkhy.labRiskManage.domain.riskReport.model.bo.RiskPlanMethodBO; import com.gkhy.labRiskManage.domain.riskReport.model.bo.UpdateExperimentInfoBO; import com.gkhy.labRiskManage.domain.riskReport.model.dto.*; import com.gkhy.labRiskManage.domain.riskReport.repository.jpa.ReportRiskAssessInfoRepository; @@ -48,14 +54,15 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** @@ -104,6 +111,24 @@ @Autowired private RiskAssessPlanEvaluateRsService rsService; + @Autowired + private ExperimentAndTypeService experimentAndTypeService; + + @Autowired + private OldRiskAssessService oldRiskAssessService; + + + @Autowired + private RiskAssessPlanIdentificationAnalogyService analogyService; + @Autowired + private RiskAssessPlanIdentificationHazopService hazopService; + @Autowired + private RiskAssessPlanIdentificationJhaService jhaService; + @Autowired + private RiskAssessPlanIdentificationPhaService phaService; + @Autowired + private RiskAssessPlanIdentificationSclService sclService; + /** * 风险评估报告 - 查询 @@ -122,8 +147,11 @@ if (ObjectUtils.isEmpty(queryBO.getTag())){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"查询报告类别参数缺失"); } - if (queryBO.getExperimentName() == "null"){ + if (queryBO.getExperimentName() == ""){ queryBO.setExperimentName(null); + } + if (queryBO.getExportTag() == null){ + queryBO.setExportTag(false); } UserInfoDomainDTO user = userDomainService.getUserById(currentUserId); if (ObjectUtils.isEmpty(user)){ @@ -157,7 +185,7 @@ predicateList.add(criteriaBuilder.equal(root.get("experimentId"),queryParam.getExperimentId())); } if (!ObjectUtils.isEmpty(queryParam.getExperimentName())){ - predicateList.add(criteriaBuilder.equal(root.get("experimentName"), queryParam.getExperimentName())); + predicateList.add(criteriaBuilder.like(root.get("experimentName"),"%"+queryParam.getExperimentName()+"%")); } if (roleTag == UserTagEnum.USER_TAG_0.getCode()){ predicateList.add(criteriaBuilder.equal(root.get("personUserId"), currentUserId)); @@ -165,7 +193,8 @@ if (queryParam.getTag() == 1){ predicateList.add(criteriaBuilder.isNull(root.get("assessPerson"))); }else if (queryParam.getTag() == 2){ - predicateList.add(criteriaBuilder.isNotNull(root.get("assessPerson"))); + predicateList.add(criteriaBuilder.isNotNull(root.get("assessPerson")) + ); } //现在领导能查看所有的报告 // if (roleTag == UserTagEnum.USER_TAG_2.getCode()){ @@ -190,6 +219,8 @@ List<ReportAppQueryDTO> reportAppQueryDTOS = BeanCopyUtils.copyBeanList(reportQueryDTOS, ReportAppQueryDTO.class); List<UserInfoDomainDTO> userList = userDomainService.getUserList(); + + for (ReportAppQueryDTO reportQueryDTO : reportAppQueryDTOS) { //获取审批人员 List<ReportPersonQueryRespDTO> personByReportId = reportPersonService.listPersonByReportId(reportQueryDTO.getId()); @@ -204,13 +235,27 @@ //获取评估计划 List<AssessPlanQueryDTO> assessPlanByExperimentId = assessPlanService.getAssessPlanByExperimentId(reportQueryDTO.getExperimentId()); reportQueryDTO.setEvaluateTime(experimentById.getCreateTime()); + if (!ObjectUtils.isEmpty(experimentById.getProcess())){ + reportQueryDTO.setProcess(experimentById.getProcess()); + } + + if (!ObjectUtils.isEmpty(assessPlanByExperimentId)){ - for (AssessPlanQueryDTO assessPlan : assessPlanByExperimentId) { - if (reportQueryDTO.getEvaluateTime().isBefore(assessPlan.getEvaluateTime())){ - reportQueryDTO.setEvaluateTime(assessPlan.getEvaluateTime()); - } + //导出 查询辨识方法塞入数据 + if (queryBO.getExportTag()){ + reportQueryDTO.setRiskPlanMethodBO(getRiskPlanMethodBO(assessPlanByExperimentId)); } + for (AssessPlanQueryDTO assessPlan : assessPlanByExperimentId) { + + if (assessPlan.getEvaluateTime() != null){ + if (reportQueryDTO.getEvaluateTime().isBefore(assessPlan.getEvaluateTime())){ + reportQueryDTO.setEvaluateTime(assessPlan.getEvaluateTime()); + } + } + + } + } if (!ObjectUtils.isEmpty(riskSourceByReportId)){ @@ -224,17 +269,29 @@ } if (!ObjectUtils.isEmpty(siteByReportId)){ reportQueryDTO.setExperimentSite(BeanCopyUtils.copyBeanList(siteByReportId, ReportExperimentSiteQueryRespDTO.class)); + if (queryBO.getExperimentId() != null){ + List<ReportExperimentSiteQueryRespDTO> experimentSite = reportQueryDTO.getExperimentSite(); + List<String> collect = experimentSite.stream().map(ReportExperimentSiteQueryRespDTO::getSiteName).collect(Collectors.toList()); + List<OldRiskAssessResDTO> oldRiskAssessListByRegion = oldRiskAssessService.getOldRiskAssessListByRegion(collect); + if (!ObjectUtils.isEmpty(oldRiskAssessListByRegion)){ + + reportQueryDTO.setOldRiskAssess(oldRiskAssessListByRegion); + } + reportQueryDTO.setExperimentAndType(experimentAndTypeService.getByExperimentId(reportQueryDTO.getExperimentId())); + } } reportQueryDTO.setExperimentCode(experimentById.getExperimentCode()); for (UserInfoDomainDTO userInfo : userList) { - if (userInfo.getId() == reportQueryDTO.getCreateByUserId()){ + if (Objects.equals(userInfo.getId(), reportQueryDTO.getCreateByUserId())){ reportQueryDTO.setCreateByUserName(userInfo.getRealName()); } - if (userInfo.getId() == reportQueryDTO.getUpdateByUserId()){ + if (Objects.equals(userInfo.getId(), reportQueryDTO.getUpdateByUserId())){ reportQueryDTO.setUpdateByUserName(userInfo.getRealName()); } } + + } searchResult.setData(reportAppQueryDTOS); @@ -242,12 +299,140 @@ return searchResult; } + private List<RiskPlanMethodBO> getRiskPlanMethodBO(List<AssessPlanQueryDTO> assessPlanByExperimentId) { + + List<RiskPlanMethodBO> riskPlanMethodBOList = new ArrayList<>(); + for (AssessPlanQueryDTO assessPlanQueryDTO : assessPlanByExperimentId) { + //辨识方法 1-PHA; + if (assessPlanQueryDTO.getIdentificationMethod() == 1) { + List<PhaQueryDTO> phaQueryDTOS = phaService.listPhaByPlanId(assessPlanQueryDTO.getId()); + if (ObjectUtils.isEmpty(phaQueryDTOS)){ + continue; + } + for (PhaQueryDTO phaQueryDTO : phaQueryDTOS) { + RiskPlanMethodBO riskPlanMethodBO = new RiskPlanMethodBO(); + riskPlanMethodBO.setAssessPlanName(assessPlanQueryDTO.getAssessPlanName()); + riskPlanMethodBO.setCheckItem(phaQueryDTO.getPhaCheckItem()); + riskPlanMethodBO.setRiskFactor(phaQueryDTO.getPhaRiskFactor()); + riskPlanMethodBO.setResult(phaQueryDTO.getPhaResult()); + riskPlanMethodBO.setIdentificationMethod(assessPlanQueryDTO.getIdentificationMethod()); + riskPlanMethodBO.setEvaluateMethod(assessPlanQueryDTO.getEvaluateMethod()); + dealRiskPlanMethodBO(assessPlanQueryDTO,riskPlanMethodBO,phaQueryDTO.getId()); + riskPlanMethodBOList.add(riskPlanMethodBO); + } + + //辨识方法 2-JHA; + } else if (assessPlanQueryDTO.getIdentificationMethod() == 2) { + List<JhaQueryDTO> jhaQueryDTOS = jhaService.listJhaByPlanId(assessPlanQueryDTO.getId()); + if (ObjectUtils.isEmpty(jhaQueryDTOS)){ + continue; + } + for (JhaQueryDTO jhaQueryDTO : jhaQueryDTOS) { + RiskPlanMethodBO riskPlanMethodBO = new RiskPlanMethodBO(); + riskPlanMethodBO.setAssessPlanName(assessPlanQueryDTO.getAssessPlanName()); + riskPlanMethodBO.setCheckItem(jhaQueryDTO.getJhaCheckItem()); + riskPlanMethodBO.setRiskFactor(jhaQueryDTO.getJhaRiskFactor()); + riskPlanMethodBO.setResult(jhaQueryDTO.getJhaResult()); + riskPlanMethodBO.setIdentificationMethod(assessPlanQueryDTO.getIdentificationMethod()); + riskPlanMethodBO.setEvaluateMethod(assessPlanQueryDTO.getEvaluateMethod()); + dealRiskPlanMethodBO(assessPlanQueryDTO,riskPlanMethodBO,jhaQueryDTO.getId()); + riskPlanMethodBOList.add(riskPlanMethodBO); + } + + //辨识方法 3-SCL; + } else if (assessPlanQueryDTO.getIdentificationMethod() == 3) { + List<SclQueryDTO> sclQueryDTOS = sclService.listSclByPlanId(assessPlanQueryDTO.getId()); + if (ObjectUtils.isEmpty(sclQueryDTOS)){ + continue; + } + for (SclQueryDTO sclQueryDTO : sclQueryDTOS) { + RiskPlanMethodBO riskPlanMethodBO = new RiskPlanMethodBO(); + riskPlanMethodBO.setAssessPlanName(assessPlanQueryDTO.getAssessPlanName()); + riskPlanMethodBO.setCheckItem(sclQueryDTO.getSclCheckItem()); + riskPlanMethodBO.setRiskFactor(sclQueryDTO.getSclCheckStandard()); + riskPlanMethodBO.setResult(sclQueryDTO.getSclCheckResult()); + riskPlanMethodBO.setIdentificationMethod(assessPlanQueryDTO.getIdentificationMethod()); + riskPlanMethodBO.setEvaluateMethod(assessPlanQueryDTO.getEvaluateMethod()); + dealRiskPlanMethodBO(assessPlanQueryDTO,riskPlanMethodBO,sclQueryDTO.getId()); + riskPlanMethodBOList.add(riskPlanMethodBO); + } + //辨识方法 4-HAZOP; + } else if (assessPlanQueryDTO.getIdentificationMethod() == 4) { + List<HazopQueryDTO> hazopQueryDTOS = hazopService.listHazopByPlanId(assessPlanQueryDTO.getId()); + if (ObjectUtils.isEmpty(hazopQueryDTOS)){ + continue; + } + for (HazopQueryDTO hazopQueryDTO : hazopQueryDTOS) { + RiskPlanMethodBO riskPlanMethodBO = new RiskPlanMethodBO(); + riskPlanMethodBO.setAssessPlanName(assessPlanQueryDTO.getAssessPlanName()); + riskPlanMethodBO.setCheckItem(hazopQueryDTO.getHazopNode()); + riskPlanMethodBO.setRiskFactor(hazopQueryDTO.getHazopParam()); + riskPlanMethodBO.setResult(hazopQueryDTO.getHazopResult()); + riskPlanMethodBO.setIdentificationMethod(assessPlanQueryDTO.getIdentificationMethod()); + riskPlanMethodBO.setEvaluateMethod(assessPlanQueryDTO.getEvaluateMethod()); + dealRiskPlanMethodBO(assessPlanQueryDTO,riskPlanMethodBO,hazopQueryDTO.getId()); + riskPlanMethodBOList.add(riskPlanMethodBO); + } + //5-类比法 analogy; + } else if (assessPlanQueryDTO.getIdentificationMethod() == 5) { + List<AnalogyQueryDTO> analogyQueryDTOS = analogyService.listAnalogyByPlanId(assessPlanQueryDTO.getId()); + if (ObjectUtils.isEmpty(analogyQueryDTOS)){ + continue; + } + for (AnalogyQueryDTO analogyQueryDTO : analogyQueryDTOS) { + RiskPlanMethodBO riskPlanMethodBO = new RiskPlanMethodBO(); + riskPlanMethodBO.setAssessPlanName(assessPlanQueryDTO.getAssessPlanName()); + riskPlanMethodBO.setCheckItem(analogyQueryDTO.getAnalogyCheckItem()); + riskPlanMethodBO.setRiskFactor(analogyQueryDTO.getAnalogyRiskFactor()); + riskPlanMethodBO.setResult(analogyQueryDTO.getAnalogyResult()); + riskPlanMethodBO.setIdentificationMethod(assessPlanQueryDTO.getIdentificationMethod()); + riskPlanMethodBO.setEvaluateMethod(assessPlanQueryDTO.getEvaluateMethod()); + dealRiskPlanMethodBO(assessPlanQueryDTO,riskPlanMethodBO,analogyQueryDTO.getId()); + riskPlanMethodBOList.add(riskPlanMethodBO); + } + } + } + return riskPlanMethodBOList; + } + + private void dealRiskPlanMethodBO(AssessPlanQueryDTO assessPlanQueryDTO, RiskPlanMethodBO riskPlanMethodBO,Long dataId) { + //lec 方法 + if (assessPlanQueryDTO.getEvaluateMethod() == 1){ + List<RiskAssessPlanEvaluateLec> riskAssessPlanEvaluateLecs = + lecService.listLecByParam(assessPlanQueryDTO.getId(), dataId, assessPlanQueryDTO.getIdentificationMethod()); + if (!ObjectUtils.isEmpty(riskAssessPlanEvaluateLecs)){ + riskPlanMethodBO.setRiskLevel(riskAssessPlanEvaluateLecs.get(0).getRiskLevel()); + riskPlanMethodBO.setEvaluateDesc(riskAssessPlanEvaluateLecs.get(0).getEvaluateDesc()); + } + }else if (assessPlanQueryDTO.getEvaluateMethod() == 2){ + List<RiskAssessPlanEvaluateLs> riskAssessPlanEvaluateLs = lsService.listLsByParam(assessPlanQueryDTO.getId(), dataId, assessPlanQueryDTO.getIdentificationMethod()); + if (!ObjectUtils.isEmpty(riskAssessPlanEvaluateLs)){ + riskPlanMethodBO.setRiskLevel(riskAssessPlanEvaluateLs.get(0).getRiskLevel()); + riskPlanMethodBO.setEvaluateDesc(riskAssessPlanEvaluateLs.get(0).getEvaluateDesc()); + } + }else if (assessPlanQueryDTO.getEvaluateMethod() == 3){ + List<RiskAssessPlanEvaluateMes> riskAssessPlanEvaluateMes = mesService.listMesByParam(assessPlanQueryDTO.getId(), dataId, assessPlanQueryDTO.getIdentificationMethod()); + if (!ObjectUtils.isEmpty(riskAssessPlanEvaluateMes)){ + riskPlanMethodBO.setRiskLevel(riskAssessPlanEvaluateMes.get(0).getRiskLevel()); + riskPlanMethodBO.setEvaluateDesc(riskAssessPlanEvaluateMes.get(0).getEvaluateDesc()); + } + + }else if (assessPlanQueryDTO.getEvaluateMethod() == 4){ + List<RiskAssessPlanEvaluateRs> riskAssessPlanEvaluateRs = rsService.listRsByParam(assessPlanQueryDTO.getId(), dataId, assessPlanQueryDTO.getIdentificationMethod()); + if (!ObjectUtils.isEmpty(riskAssessPlanEvaluateRs)){ + riskPlanMethodBO.setRiskLevel(riskAssessPlanEvaluateRs.get(0).getRiskLevel()); + riskPlanMethodBO.setEvaluateDesc(riskAssessPlanEvaluateRs.get(0).getEvaluateDesc()); + } + } + } + + /** * 风险评估报告 - 生成报告信息 */ @Transactional @Override - public ReportInsertDTO insertRiskReport(Long currentUserId, Long id) { + public ReportInsertDTO insertRiskReport(Long currentUserId, Long id,String reSubmit) { if (currentUserId < 0){ throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"当前用户无效,请重新登陆"); @@ -268,13 +453,29 @@ if (roleTag == 0){ throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"不是管理员,无权生成报告"); } - if (experimentById.getStage() == StatusEnum.EXPERIMENT_STATUS_REPORT.getCode().byteValue()){ - throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"该实验已经生成报告,无需重复操作"); + if (!ObjectUtils.isEmpty(reSubmit) && "1".equals(reSubmit) && experimentById.getStage() >= StatusEnum.EXPERIMENT_STATUS_FINISH.getCode().byteValue()){ + //删除已生成的报告数据 + delReportData(id,currentUserId); + }else { + if (experimentById.getStage() == StatusEnum.EXPERIMENT_STATUS_REPORT.getCode().byteValue()){ + throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"该实验已经生成报告,无需重复操作"); + } } + + ReportRiskAssessInfo byExperimentId = reportRepository.getByExperimentId(id); + if (!ObjectUtils.isEmpty(byExperimentId)){ + throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"该实验已经生成报告,请勿重复操作"); + } + //定义初始风险等级0级 Byte level = 0; //获取该实验的所有计划信息 List<AssessPlanQueryDTO> assessPlanList = assessPlanService.getAssessPlanByExperimentId(id); + Map<Long, String> assessPlanMap = assessPlanList.stream() + .collect(Collectors.toMap( + AssessPlanQueryDTO::getId, + AssessPlanQueryDTO::getAssessPlanName + )); int tag = 0; StringBuilder info = new StringBuilder(); List<Long> assessPlanIds = new ArrayList<>(); @@ -290,14 +491,16 @@ if (tag == 1){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"该实验有未完成的评估计划" + info); } - - UserInfoDomainDTO liabilityUser = userDomainService.getUserInfoById(experimentById.getLiabilityUserId()); - if (ObjectUtils.isEmpty(liabilityUser)){ - throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"实验责任人信息不存在"); - } +//20250520实验责任人去掉验证 +// UserInfoDomainDTO liabilityUser = userDomainService.getUserInfoById(experimentById.getLiabilityUserId()); +// if (ObjectUtils.isEmpty(liabilityUser)){ +// throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"实验责任人信息不存在"); +// } //检查该实验所有的评价结果,遍历评价结果等级 + + Set<Byte> riskLevelList = new HashSet<>(); int a = 1; StringBuilder analysis = new StringBuilder(); List<RiskAssessPlanEvaluateLec> lecByIds = lecService.getLecByIds(assessPlanIds); @@ -308,8 +511,9 @@ if (lecByIds .size() > 0){ for (RiskAssessPlanEvaluateLec lecById : lecByIds) { if (lecById.getRiskLevel() > level){ + riskLevelList.add(lecById.getRiskLevel()); level = lecById.getRiskLevel(); - analysis.append(a + lecById.getSafeRiskAnalysis() + ";");//todo 安全风险分析 + analysis.append(a +(ObjectUtils.isEmpty(assessPlanMap.get(lecById.getAssessPlanId())) ? "" : assessPlanMap.get(lecById.getAssessPlanId()))+ lecById.getSafeRiskAnalysis() + ";");//todo 安全风险分析 a++; } } @@ -317,8 +521,9 @@ if (lsByIds .size() > 0){ for (RiskAssessPlanEvaluateLs lsById : lsByIds) { if (lsById.getRiskLevel() > level){ + riskLevelList.add(lsById.getRiskLevel()); level = lsById.getRiskLevel(); - analysis.append(a + lsById.getSafeRiskAnalysis() + ";"); + analysis.append(a +(ObjectUtils.isEmpty(assessPlanMap.get(lsById.getAssessPlanId())) ? "" : assessPlanMap.get(lsById.getAssessPlanId()))+ lsById.getSafeRiskAnalysis() + ";"); a++; } } @@ -326,8 +531,9 @@ if (mesByIds .size() > 0){ for (RiskAssessPlanEvaluateMes mesById : mesByIds) { if (mesById.getRiskLevel() > level){ + riskLevelList.add(mesById.getRiskLevel()); level = mesById.getRiskLevel(); - analysis.append(a + mesById.getSafeRiskAnalysis() + ";"); + analysis.append(a +(ObjectUtils.isEmpty(assessPlanMap.get(mesById.getAssessPlanId())) ? "" : assessPlanMap.get(mesById.getAssessPlanId()))+ mesById.getSafeRiskAnalysis() + ";"); a++; } } @@ -336,8 +542,9 @@ if (rsByIds .size() > 0){ for (RiskAssessPlanEvaluateRs rsById : rsByIds) { if (rsById.getRiskLevel() > level){ + riskLevelList.add(rsById.getRiskLevel()); level = rsById.getRiskLevel(); - analysis.append(a + rsById.getSafeRiskAnalysis() + ";"); + analysis.append(a +(ObjectUtils.isEmpty(assessPlanMap.get(rsById.getAssessPlanId())) ? "" : assessPlanMap.get(rsById.getAssessPlanId()))+ rsById.getSafeRiskAnalysis() + ";"); a++; } } @@ -368,9 +575,26 @@ reportInfo.setSafeRiskAnalysis(analysis.toString()); reportInfo.setAssessPerson(null); - reportInfo.setAssessLevel(null); - reportInfo.setDepId(null); //todo 不确定是否需要部门 - reportInfo.setSafeRiskAnalysis(null); //todo 安全风险分析,暂时不知道数据来源,先设空 + if (ObjectUtils.isEmpty(riskLevelList)){ + reportInfo.setAssessLevel(StatusEnum.REPORT_LEVEL_4.getCode().byteValue()); + }else { + byte b = riskLevelList.stream().max(Comparator.comparing(Integer::valueOf)).get(); + if (b == StatusEnum.REPORT_LEVEL_1.getCode().byteValue()){ + reportInfo.setAssessLevel(StatusEnum.REPORT_LEVEL_4.getCode().byteValue()); + }else if (b == StatusEnum.REPORT_LEVEL_2.getCode().byteValue()){ + reportInfo.setAssessLevel(StatusEnum.REPORT_LEVEL_3.getCode().byteValue()); + }else if (b == StatusEnum.REPORT_LEVEL_3.getCode().byteValue()){ + reportInfo.setAssessLevel(StatusEnum.REPORT_LEVEL_2.getCode().byteValue()); + }else if (b == StatusEnum.REPORT_LEVEL_4.getCode().byteValue()){ + reportInfo.setAssessLevel(StatusEnum.REPORT_LEVEL_1.getCode().byteValue()); + } + + } + + //todo 不确定是否需要部门 + reportInfo.setDepId(null); +// reportInfo.setSafeRiskAnalysis(null); + //修改实验 4 生成报告, @@ -453,6 +677,16 @@ return BeanCopyUtils.copyBean(saveResult, ReportInsertDTO.class); + } + + private void delReportData(Long id,Long userId){ + ReportRiskAssessInfo byExperimentId = reportRepository.getByExperimentId(id); + if (!ObjectUtils.isEmpty(byExperimentId)){ + reportRepository.delReport(userId, byExperimentId.getId()); + reportExperimentSiteService.delReportData(byExperimentId.getId()); + reportSourceTypeService.delReportData(byExperimentId.getId()); + + } } /** @@ -555,8 +789,10 @@ reportById.setAssessPerson(reportUpdateBO.getAssessPerson()); reportById.setAssessLevel(reportUpdateBO.getAssessLevel()); -// reportById.setSafeRiskAnalysis(reportUpdateBO.getSafeRiskAnalysis()); reportById.setDescription(reportUpdateBO.getDescription()); + if(!ObjectUtils.isEmpty(reportUpdateBO.getSafeRiskAnalysis())){ + reportById.setSafeRiskAnalysis(reportUpdateBO.getSafeRiskAnalysis()); + } reportById.setUpdateTime(LocalDateTime.now()); reportById.setUpdateByUserId(currentUserId); @@ -724,6 +960,7 @@ * 风险评估报告 - 报告审核 - 新 - 单次审核 */ @Override + @Transactional public int reportNew(Long currentUserId, ReportReqBO reportReqBO) { if (currentUserId < 0){ -- Gitblit v1.9.2