heheng
2025-04-27 4f8987b03bff3ce1525e3744735b26bb4fef4a4c
src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/RiskAssessPlanServiceImpl.java
@@ -6,6 +6,7 @@
import com.gkhy.labRiskManage.application.riskReport.dto.bo.*;
import com.gkhy.labRiskManage.application.riskReport.dto.dto.RiskAssessAppQueryDTO;
import com.gkhy.labRiskManage.application.riskReport.dto.dto.RiskAssessPlanListAppDTO;
import com.gkhy.labRiskManage.commons.domain.Result;
import com.gkhy.labRiskManage.commons.domain.SearchResult;
import com.gkhy.labRiskManage.commons.enums.*;
import com.gkhy.labRiskManage.commons.exception.BusinessException;
@@ -1870,6 +1871,759 @@
        return searchResult;
    }
    @Override
    public Result<List<AssessExportDTO>> selectAssessExport(Long currentUserId, RiskAssessAppQueryBO queryBO) {
        //校验参数
        if (ObjectUtils.isEmpty(queryBO.getPageSize())) {
            throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode(), "分页信息不能为空");
        }
        if (ObjectUtils.isEmpty(queryBO.getPageIndex())) {
            throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode(), "分页信息不能为空");
        }
        // 检查是否是实验管理者
        UserInfoDomainDTO userInfo = userDomainService.getUserById(currentUserId);
        if (ObjectUtils.isEmpty(userInfo)) {
            throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode(), "用户不存在");
        }
        if (queryBO.getAssessPlanName() == "null") {
            queryBO.setAssessPlanName(null);
        }
        if (queryBO.getExperimentName() == "null") {
            queryBO.setExperimentName(null);
        }
        AssessQueryBO queryParam = BeanCopyUtils.copyBean(queryBO, AssessQueryBO.class);
        if (!ObjectUtils.isEmpty(queryBO.getExperimentName())) {
            ExperimentInfoDTO experimentByName = experimentInfoService.getExperimentByName(queryBO.getExperimentName());
            if (ObjectUtils.isEmpty(experimentByName)) {
                throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode(), "分页信息不能为空");
            }
            queryParam.setExperimentId(experimentByName.getId());
        }
        // 拿到所有的固有风险单元 ,遍历
        List<Long> planIds = new ArrayList<>();
        List<RiskUnit> riskUnits = riskUnitService.listInherentRiskUnit();
        if (ObjectUtils.isEmpty(riskUnits)) {
            for (RiskUnit riskUnit : riskUnits) {
                // 拿到所有固有风险的评估计划
                List<RiskAssessPlan> assessPlanByInherentUnit = assessPlanRepository.getAssessPlanByInherentUnit(riskUnit.getBasicRiskUnitId());
                if (assessPlanByInherentUnit.size() > 0) {
                    // 遍历固有风险评估计划,如果当前用户属于对应实验的负责人,新增,修改人
                    for (RiskAssessPlan inherentRiskAssessPlan : assessPlanByInherentUnit) {
                        if (riskUnit.getExperimentId().equals(currentUserId) || riskUnit.getCreateByUserId().equals(currentUserId) || riskUnit.getUpdateByUserId().equals(currentUserId)) {
                            planIds.add(inherentRiskAssessPlan.getId());
                        }
                    }
                }
            }
        }
        List<ExperimentInfoDTO> experimentByList = experimentInfoService.getExperimentByUser(currentUserId);
        List<Long> experimentIdList = new ArrayList<>();
        experimentIdList.add(0L);
        if (!ObjectUtils.isEmpty(experimentByList)) {
            for (ExperimentInfoDTO experimentInfo : experimentByList) {
                experimentIdList.add(experimentInfo.getId());
            }
        }
        Result searchResult = new Result<>();
        int roleTag = GetRoleTagUtils.GetRoleTagUtils(userInfo);
        //封装查询参数
        Specification<RiskAssessPlan> specification = new Specification<RiskAssessPlan>() {
            @Override
            public Predicate toPredicate(Root<RiskAssessPlan> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
                List<Predicate> predicateList = new ArrayList<>();
                if (queryParam.getAssessPlanName() != null && !queryParam.getAssessPlanName().equals("")) {
                    predicateList.add(criteriaBuilder.like(root.get("assessPlanName"), "%" + queryParam.getAssessPlanName() + "%"));
                }
                if (queryParam.getExperimentId() != null && !queryParam.getExperimentId().equals("")) {
                    predicateList.add(criteriaBuilder.equal(root.get("experimentId"), queryParam.getExperimentId()));
                }
                if (queryParam.getAssessPlanId() != null && !queryParam.getAssessPlanId().equals("")) {
                    predicateList.add(criteriaBuilder.equal(root.get("id"), queryParam.getAssessPlanId()));
                }
                if (!ObjectUtils.isEmpty(queryParam.getPlanExecStatus())) {
                    if (queryParam.getPlanExecStatus() == 5) {
                        predicateList.add(criteriaBuilder.ge(root.get("planExecStatus"), 3));
                    } else {
                        predicateList.add(criteriaBuilder.equal(root.get("planExecStatus"), queryParam.getPlanExecStatus()));
                    }
                }
                if (queryParam.getTag() == 2) {
                    predicateList.add(criteriaBuilder.isNotNull(root.get("identificationTime")));
                }
                if (queryParam.getTag() == 3) {
                    predicateList.add(criteriaBuilder.isNotNull(root.get("evaluateTime")));
                }
                if (planIds.size() > 0) {
                    predicateList.add(criteriaBuilder.in(root.get("id")).value(planIds));
                }
                Join<RiskAssessPlan, RiskAssessPlanIdentificationUser> identificationUserJoin = root.join("riskAssessPlanIdentificationUsers", JoinType.LEFT);
                Join<RiskAssessPlan, RiskAssessPlanEvaluateUser> evaluateUserJoin = root.join("riskAssessPlanEvaluateUsers", JoinType.LEFT);
                Join<RiskAssessPlan, User> planUserJoin = root.join("planUser", JoinType.LEFT);
                if (roleTag == UserTagEnum.USER_TAG_0.getCode()) {
                    //辨识
                    if (queryParam.getTag() == 1) {
                        predicateList.add(criteriaBuilder.equal(identificationUserJoin.get("identificationUserId"), currentUserId));
                    }
                    //评论
                    if (queryParam.getTag() == 2) {
                        predicateList.add(criteriaBuilder.equal(evaluateUserJoin.get("evaluateUserId"), currentUserId));
                    }
                    //此处应有谁能查询:辨识专家,评价专家,实验负责人(此处未存相关信息,以实验id为条件查询)
                }
                query.groupBy(root.get("id"));
                query.orderBy(criteriaBuilder.desc(root.get("updateTime")));
                predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"), StatusEnum.DELETE_NOT.getCode()));
                return criteriaBuilder.and(predicateList.toArray(new Predicate[0]));
            }
        };
        List<RiskAssessPlan> pageResult = assessPlanRepository.findAll(specification);
        //循环遍历结果集,封装查询结果
        List<AssessExportDTO> assessQueryDTOList = new ArrayList<>();
        List<UserInfoDomainDTO> userList = userDomainService.getUserList();
        if (pageResult.size() > 0) {
            for (RiskAssessPlan riskAssessPlan : pageResult) {
                AssessExportDTO assessQueryDTO = BeanCopyUtils.copyBean(riskAssessPlan, AssessExportDTO.class);
                if(riskAssessPlan.getPlanUser() != null){
                    assessQueryDTO.setPlanUserName(riskAssessPlan.getPlanUser().getRealName());
                }
                List<RiskAssessPlanIdentificationUser> riskAssessPlanIdentificationUsers = riskAssessPlan.getRiskAssessPlanIdentificationUsers();
                if (!ObjectUtils.isEmpty(riskAssessPlanIdentificationUsers)) {
                    String identificationUsersString = riskAssessPlanIdentificationUsers.stream()
                            .map(RiskAssessPlanIdentificationUser::getIdentificationUser)
                            .collect(Collectors.joining(","));
                    assessQueryDTO.setIdentificationUser(identificationUsersString);
                }
                List<RiskAssessPlanEvaluateUser> riskAssessPlanEvaluateUsers = riskAssessPlan.getRiskAssessPlanEvaluateUsers();
                if (!ObjectUtils.isEmpty(riskAssessPlanEvaluateUsers)) {
                    String identificationUsersString = riskAssessPlanEvaluateUsers.stream()
                            .map(RiskAssessPlanEvaluateUser::getEvaluateUser)
                            .collect(Collectors.joining(","));
                    assessQueryDTO.setEvaluateUser(identificationUsersString);
                }
                List<PhaQueryDTO> phaList = new ArrayList<>();
                List<JhaQueryDTO> jhaList = new ArrayList<>();
                List<SclQueryDTO> sclList = new ArrayList<>();
                List<HazopQueryDTO> hazopList = new ArrayList<>();
                List<AnalogyQueryDTO> analogyList = new ArrayList<>();
                //辨识方法 1-PHA;
                if (assessQueryDTO.getIdentificationMethod() == 1) {
                    phaList = phaService.listPhaByPlanId(riskAssessPlan.getId());
                    //辨识方法 2-JHA;
                } else if (assessQueryDTO.getIdentificationMethod() == 2) {
                    jhaList = jhaService.listJhaByPlanId(riskAssessPlan.getId());
                    //辨识方法 3-SCL;
                } else if (assessQueryDTO.getIdentificationMethod() == 3) {
                    sclList = sclService.listSclByPlanId(riskAssessPlan.getId());
                    //辨识方法 4-HAZOP;
                } else if (assessQueryDTO.getIdentificationMethod() == 4) {
                    hazopList = hazopService.listHazopByPlanId(riskAssessPlan.getId());
                    //5-类比法 analogy;
                } else if (assessQueryDTO.getIdentificationMethod() == 5) {
                    analogyList = analogyService.listAnalogyByPlanId(riskAssessPlan.getId());
                } else {
                    throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode(), "辨识方法参数错误");
                }
                for (UserInfoDomainDTO user : userList) {
                    if (user.getId() == assessQueryDTO.getCreateByUserId()) {
                        assessQueryDTO.setCreateByUserName(user.getRealName());
                    }
                    if (user.getId() == assessQueryDTO.getUpdateByUserId()) {
                        assessQueryDTO.setUpdateByUserName(user.getRealName());
                    }
                }
                Boolean isBegin = false;
                //评价方法1 - LEC
                if (assessQueryDTO.getEvaluateMethod() == 1) {
                    List<LecQueryDTO> lecList = lecService.listLecByPlanId(riskAssessPlan.getId());
                    if (assessQueryDTO.getIdentificationMethod() == 1) {
                        for (PhaQueryDTO pha : phaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(pha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setPhaId(pha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(pha.getUpdateTime());
                            for (LecQueryDTO lec : lecList) {
                                if (lec.getIdentificationId() == pha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lecMatchPha(pha, lec);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setPhaId(pha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getPhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getPhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 2) {
                        for (JhaQueryDTO jha : jhaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(jha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setJhaId(jha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(jha.getUpdateTime());
                            for (LecQueryDTO lec : lecList) {
                                if (lec.getIdentificationId() == jha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lecMatchJha(jha, lec);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setJhaId(jha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getJhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getJhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 3) {
                        for (SclQueryDTO scl : sclList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(scl, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setSclId(scl.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(scl.getUpdateTime());
                            for (LecQueryDTO lec : lecList) {
                                if (lec.getIdentificationId() == scl.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lecMatchScl(scl, lec);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setSclId(scl.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getSclCheckResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getSclCheckStandard());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getSclCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 4) {
                        for (HazopQueryDTO hazop : hazopList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(hazop, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setHazopId(hazop.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(hazop.getUpdateTime());
                            for (LecQueryDTO lec : lecList) {
                                if (lec.getIdentificationId() == hazop.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lecMatchHazop(hazop, lec);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setHazopId(hazop.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getHazopResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getHazopParamDesc());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getHazopPossibleCauses());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 5) {
                        for (AnalogyQueryDTO analogy : analogyList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(analogy, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setAnalogyId(analogy.getAssessPlanId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(analogy.getUpdateTime());
                            for (LecQueryDTO lec : lecList) {
                                if (lec.getIdentificationId() == analogy.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lecMatchAnalogy(analogy, lec);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setAnalogyId(analogy.getAssessPlanId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getAnalogyResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getAnalogyRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getAnalogyCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    }
                    //评价方法2 - LS
                } else if (assessQueryDTO.getEvaluateMethod() == 2) {
                    List<LsQueryDTO> lsList = lsService.listLsByPlanId(riskAssessPlan.getId());
                    if (assessQueryDTO.getIdentificationMethod() == 1) {
                        for (PhaQueryDTO pha : phaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(pha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setPhaId(pha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(pha.getUpdateTime());
                            for (LsQueryDTO ls : lsList) {
                                if (ls.getIdentificationId() == pha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lsMatchPha(pha, ls);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setPhaId(pha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getPhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getPhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 2) {
                        for (JhaQueryDTO jha : jhaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(jha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setJhaId(jha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(jha.getUpdateTime());
                            for (LsQueryDTO ls : lsList) {
                                if (ls.getIdentificationId() == jha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lsMatchJha(jha, ls);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setJhaId(jha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getJhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getJhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 3) {
                        for (SclQueryDTO scl : sclList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(scl, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setSclId(scl.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(scl.getUpdateTime());
                            for (LsQueryDTO ls : lsList) {
                                if (ls.getIdentificationId() == scl.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lsMatchScl(scl, ls);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setSclId(scl.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getSclCheckResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getSclCheckStandard());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getSclCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 4) {
                        for (HazopQueryDTO hazop : hazopList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(hazop, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setHazopId(hazop.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(hazop.getUpdateTime());
                            for (LsQueryDTO ls : lsList) {
                                if (ls.getIdentificationId() == hazop.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lsMatchHazop(hazop, ls);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setHazopId(hazop.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getHazopResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getHazopParamDesc());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getHazopPossibleCauses());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 5) {
                        for (AnalogyQueryDTO analogy : analogyList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(analogy, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setAnalogyId(analogy.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(analogy.getUpdateTime());
                            for (LsQueryDTO ls : lsList) {
                                if (ls.getIdentificationId() == analogy.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.lsMatchAnalogy(analogy, ls);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setAnalogyId(analogy.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getAnalogyResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getAnalogyRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getAnalogyCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    }
                    //评价方法3 - MES
                } else if (assessQueryDTO.getEvaluateMethod() == 3) {
                    List<MesQueryDTO> mesList = mesService.listMesByPlanId(riskAssessPlan.getId());
                    if (assessQueryDTO.getIdentificationMethod() == 1) {
                        for (PhaQueryDTO pha : phaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(pha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setPhaId(pha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(pha.getUpdateTime());
                            for (MesQueryDTO mes : mesList) {
                                if (mes.getIdentificationId() == pha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.mesMatchPha(pha, mes);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setPhaId(pha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getPhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getPhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 2) {
                        for (JhaQueryDTO jha : jhaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(jha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setJhaId(jha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(jha.getUpdateTime());
                            for (MesQueryDTO mes : mesList) {
                                if (mes.getIdentificationId() == jha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.mesMatchJha(jha, mes);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setJhaId(jha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getJhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getJhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 3) {
                        for (SclQueryDTO scl : sclList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(scl, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setSclId(scl.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(scl.getUpdateTime());
                            for (MesQueryDTO mes : mesList) {
                                if (mes.getIdentificationId() == scl.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.mesMatchScl(scl, mes);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setSclId(scl.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getSclCheckResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getSclCheckStandard());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getSclCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 4) {
                        for (HazopQueryDTO hazop : hazopList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(hazop, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setHazopId(hazop.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(hazop.getUpdateTime());
                            for (MesQueryDTO mes : mesList) {
                                if (mes.getIdentificationId() == hazop.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.mesMatchHazop(hazop, mes);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setHazopId(hazop.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getHazopResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getHazopParamDesc());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getHazopPossibleCauses());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 5) {
                        for (AnalogyQueryDTO analogy : analogyList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(analogy, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setAnalogyId(analogy.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(analogy.getUpdateTime());
                            for (MesQueryDTO mes : mesList) {
                                if (mes.getIdentificationId() == analogy.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.mesMatchAnalogy(analogy, mes);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setAnalogyId(analogy.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getAnalogyResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getAnalogyRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getAnalogyCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    }
                    //评价方法4 - RS
                } else if (assessQueryDTO.getEvaluateMethod() == 4) {
                    List<RsQueryDTO> rsList = rsService.listRsByPlanId(riskAssessPlan.getId());
                    if (assessQueryDTO.getIdentificationMethod() == 1) {
                        for (PhaQueryDTO pha : phaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(pha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setPhaId(pha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(pha.getUpdateTime());
                            for (RsQueryDTO rs : rsList) {
                                if (rs.getIdentificationId() == pha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.rsMatchPha(pha, rs);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setPhaId(pha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getPhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getPhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 2) {
                        for (JhaQueryDTO jha : jhaList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(jha, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setJhaId(jha.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(jha.getUpdateTime());
                            for (RsQueryDTO rs : rsList) {
                                if (rs.getIdentificationId() == jha.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.rsMatchJha(jha, rs);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setJhaId(jha.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getJhaResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getJhaRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getPhaCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 3) {
                        for (SclQueryDTO scl : sclList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(scl, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setSclId(scl.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(scl.getUpdateTime());
                            for (RsQueryDTO rs : rsList) {
                                if (rs.getIdentificationId() == scl.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.rsMatchScl(scl, rs);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setSclId(scl.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getSclCheckResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getSclCheckStandard());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getSclCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 4) {
                        for (HazopQueryDTO hazop : hazopList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(hazop, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setHazopId(hazop.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(hazop.getUpdateTime());
                            for (RsQueryDTO rs : rsList) {
                                if (rs.getIdentificationId() == hazop.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.rsMatchHazop(hazop, rs);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setHazopId(hazop.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getHazopResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getHazopParamDesc());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getHazopPossibleCauses());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    } else if (assessQueryDTO.getIdentificationMethod() == 5) {
                        for (AnalogyQueryDTO analogy : analogyList) {
                            FactorQueryDTO factorQueryDTO = BeanCopyUtils.copyBean(analogy, FactorQueryDTO.class);
                            factorQueryDTO.setId(riskAssessPlan.getId());
                            factorQueryDTO.setAnalogyId(analogy.getId());
                            factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                            factorQueryDTO.setItemIdentificationTime(analogy.getUpdateTime());
                            for (RsQueryDTO rs : rsList) {
                                if (rs.getIdentificationId() == analogy.getId()) {
                                    EvaluateAndIdentificationUtils evaluateAndIdentificationUtils = new EvaluateAndIdentificationUtils();
                                    factorQueryDTO = evaluateAndIdentificationUtils.rsMatchAnalogy(analogy, rs);
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                    factorQueryDTO.setId(riskAssessPlan.getId());
                                    factorQueryDTO.setAnalogyId(analogy.getId());
                                    factorQueryDTO.setEvaluateMethod(riskAssessPlan.getEvaluateMethod());
                                }
                            }
                            AssessExportDTO assessQueryDTO1 = BeanCopyUtils.copyBean(assessQueryDTO, AssessExportDTO.class);
                            assessQueryDTO1.setResult(factorQueryDTO.getResult());
                            assessQueryDTO1.setDataResult(factorQueryDTO.getAnalogyResult());
                            assessQueryDTO1.setDataRiskFactor(factorQueryDTO.getAnalogyRiskFactor());
                            assessQueryDTO1.setDataCheckItem(factorQueryDTO.getAnalogyCheckItem());
                            assessQueryDTOList.add(assessQueryDTO1);
                            isBegin = true;
                        }
                    }
                } else {
                    throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode(), "评价方法参数错误");
                }
                if (!isBegin){
                    assessQueryDTOList.add(assessQueryDTO);
                }
            }
        }
        searchResult.setData(assessQueryDTOList);
        return searchResult;
    }
    /**
     * 风险评估计划 - 辨识删除
     */