| | |
| | | import com.zt.life.modules.mainPart.basicInfo.model.ParamData; |
| | | import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel; |
| | | import com.zt.life.modules.mainPart.taskReliability.dao.*; |
| | | import com.zt.life.modules.mainPart.taskReliability.dto.TaskModelCheckResult; |
| | | import com.zt.life.modules.mainPart.taskReliability.dto.TaskModelCheckResultDto; |
| | | import com.zt.life.modules.mainPart.taskReliability.model.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | * @param productId 产品节点ID(一般为总体) |
| | | * @return 检查出的错误的List,长度为0表示没有错误,不会返回null |
| | | */ |
| | | public List<TaskModelCheckResult> checkTaskModel(Long productId) { |
| | | List<TaskModelCheckResult> result = new ArrayList<>(); |
| | | result = doCheckTaskModel(productId, null); |
| | | return result; |
| | | } |
| | | |
| | | private List<TaskModelCheckResult> doCheckTaskModel(Long productId, Long taskModelId) { |
| | | List<TaskModelCheckResult> checkResult = new ArrayList<>(); |
| | | public List<TaskModelCheckResultDto> checkTaskModel(Long productId, Long taskModelId) { |
| | | List<TaskModelCheckResultDto> checkResult = new ArrayList<>(); |
| | | List<XhProductModel> deviceUsedList = new ArrayList<>(); // 检查对象模型中使用到的所有设备 |
| | | |
| | | // 1. 获取数据 |
| | |
| | | setTaskModelCheckResult(taskModel, |
| | | null, |
| | | null, null, null, |
| | | TaskModelCheckResult.CATEGORY_TASK_TIME, checkResult); |
| | | TaskModelCheckResultDto.CATEGORY_TASK_TIME, checkResult); |
| | | } |
| | | List<TaskPhase> phases = taskModelPhaseList.stream().filter(item -> |
| | | taskModel.getId().equals(item.getTaskId())).collect(Collectors.toList()); |
| | |
| | | setTaskModelCheckResult(taskModel, |
| | | phase, |
| | | null, null, null, |
| | | TaskModelCheckResult.CATEGORY_PHASE_TIME, checkResult); |
| | | TaskModelCheckResultDto.CATEGORY_PHASE_TIME, checkResult); |
| | | } |
| | | List<TaskPhaseModel> phaseModels = taskModelPhaseModelList.stream().filter(item -> |
| | | phase.getId().equals(item.getPhaseId())).collect(Collectors.toList()); |
| | |
| | | setTaskModelCheckResult(taskModel, |
| | | phase, |
| | | null, null, null, |
| | | TaskModelCheckResult.CATEGORY_GK_TIME, checkResult); |
| | | TaskModelCheckResultDto.CATEGORY_GK_TIME, checkResult); |
| | | } else { |
| | | // 有工况模型数据 |
| | | List<TaskPhaseModel> phaseModelWithDurations = taskModelPhaseModelList.stream().filter(item -> |
| | |
| | | phase, |
| | | taskPhaseModel, |
| | | null, null, |
| | | TaskModelCheckResult.CATEGORY_GK_TIME, checkResult); |
| | | TaskModelCheckResultDto.CATEGORY_GK_TIME, checkResult); |
| | | } |
| | | } else { |
| | | // 有工况模型被选用,检查选用的工况模型 |
| | |
| | | taskPhaseModel, |
| | | null, |
| | | node, |
| | | TaskModelCheckResult.CATEGORY_GK_MODEL, checkResult); |
| | | TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult); |
| | | } else { |
| | | // 有工况模型树,检查其完整性 |
| | | // checkGkModel(taskModel, phase, taskPhaseModel, gkModelTops.get(0), |
| | |
| | | List<ModelNodeAlgorithm> rbdNodeList, |
| | | List<XhProductModel> productTreeList, |
| | | List<XhProductModel> deviceUsedList, |
| | | List<TaskModelCheckResult> checkResult) { |
| | | List<TaskModelCheckResultDto> checkResult) { |
| | | // 首先找到顶层模型 |
| | | List<OperatConditModel> gkModelTops = gkModelList.stream().filter(item -> |
| | | taskPhaseModel.getOperatConditId().equals(item.getOperatConditId()) |
| | |
| | | taskPhaseModel, |
| | | null, |
| | | node, |
| | | TaskModelCheckResult.CATEGORY_GK_MODEL, checkResult); |
| | | TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult); |
| | | } |
| | | } |
| | | |
| | |
| | | OperatConditModel gkModel, |
| | | XhProductModel node, |
| | | String category, |
| | | List<TaskModelCheckResult> checkResult) { |
| | | TaskModelCheckResult result = new TaskModelCheckResult(); |
| | | List<TaskModelCheckResultDto> checkResult) { |
| | | TaskModelCheckResultDto result = new TaskModelCheckResultDto(); |
| | | result.setCategory(category); |
| | | result.setProductId(taskModel.getProductId()); |
| | | result.setTaskModelId(taskModel.getId()); |
| | | result.setTaskModelName(taskModel.getTaskName()); |
| | | switch(category) { |
| | | case TaskModelCheckResult.CATEGORY_TASK_TIME: |
| | | case TaskModelCheckResultDto.CATEGORY_TASK_TIME: |
| | | break; |
| | | case TaskModelCheckResult.CATEGORY_PHASE_TIME: |
| | | case TaskModelCheckResultDto.CATEGORY_PHASE_TIME: |
| | | result.setTaskModelPhaseId(taskModelPhase.getId()); |
| | | result.setTaskModelPhaseName(taskModelPhase.getPhaseName()); |
| | | break; |
| | | case TaskModelCheckResult.CATEGORY_GK_TIME: |
| | | case TaskModelCheckResultDto.CATEGORY_GK_TIME: |
| | | result.setTaskModelPhaseId(taskModelPhase.getId()); |
| | | result.setTaskModelPhaseName(taskModelPhase.getPhaseName()); |
| | | if (null != taskModelPhaseModel) { |
| | |
| | | result.setGkName(taskModelPhaseModel.getOperatConditName()); |
| | | } |
| | | break; |
| | | case TaskModelCheckResult.CATEGORY_GK_MODEL: |
| | | case TaskModelCheckResultDto.CATEGORY_GK_MODEL: |
| | | result.setTaskModelPhaseId(taskModelPhase.getId()); |
| | | result.setTaskModelPhaseName(taskModelPhase.getPhaseName()); |
| | | result.setGkId(taskModelPhaseModel.getOperatConditId()); |