heheng
2025-05-23 761bdc5b3f17df62aae1b424f2d2dabc11e844bc
src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java
@@ -39,6 +39,7 @@
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;
@@ -117,6 +118,18 @@
    private OldRiskAssessService oldRiskAssessService;
    @Autowired
    private RiskAssessPlanIdentificationAnalogyService analogyService;
    @Autowired
    private RiskAssessPlanIdentificationHazopService hazopService;
    @Autowired
    private RiskAssessPlanIdentificationJhaService jhaService;
    @Autowired
    private RiskAssessPlanIdentificationPhaService phaService;
    @Autowired
    private RiskAssessPlanIdentificationSclService sclService;
    /**
     * 风险评估报告 - 查询
     */
@@ -136,6 +149,9 @@
        }
        if (queryBO.getExperimentName() == ""){
            queryBO.setExperimentName(null);
        }
        if (queryBO.getExportTag() == null){
            queryBO.setExportTag(false);
        }
        UserInfoDomainDTO user = userDomainService.getUserById(currentUserId);
        if (ObjectUtils.isEmpty(user)){
@@ -224,8 +240,14 @@
            }
            if (!ObjectUtils.isEmpty(assessPlanByExperimentId)){
                //导出  查询辨识方法塞入数据
                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());
@@ -233,6 +255,7 @@
                    }
                }
            }
            if (!ObjectUtils.isEmpty(riskSourceByReportId)){
@@ -260,14 +283,13 @@
            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());
                }
            }
        }
@@ -275,6 +297,133 @@
        searchResult.setData(reportAppQueryDTOS);
        searchResult.setTotal(pageResult.getTotalElements());
        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());
            }
        }
    }
    
@@ -322,6 +471,11 @@
        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<>();
@@ -359,7 +513,7 @@
                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++;
                }
            }
@@ -369,7 +523,7 @@
                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++;
                }
            }
@@ -379,7 +533,7 @@
                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++;
                }
            }
@@ -390,7 +544,7 @@
                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++;
                }
            }