From ecd2f8acec4e743e18d978b7e0a1bb92bd17e70e Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期二, 13 八月 2024 15:38:25 +0800 Subject: [PATCH] 修改仿真后台 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java | 130 ++++++++++++++++----- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskRepairParamDao.java | 3 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/ModelLinePairDto.java | 2 modules/mainPart/src/main/resources/mapper/taskReliability/TaskRepairParamDao.xml | 57 ++++++++- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java | 22 +-- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java | 32 ++-- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java | 2 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskPhaseConstraintDto.java | 41 ++++++ modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java | 4 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelRbdNodeService.java | 22 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java | 7 11 files changed, 222 insertions(+), 100 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java index ed86acf..17ac4eb 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java @@ -11,7 +11,7 @@ import com.zt.common.validator.group.AddGroup; import com.zt.common.validator.group.DefaultGroup; import com.zt.common.validator.group.UpdateGroup; -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.Task; import com.zt.life.modules.mainPart.taskReliability.service.TaskService; import io.swagger.annotations.Api; @@ -65,7 +65,7 @@ @GetMapping("checkTaskModel") @ApiOperation("浠诲姟妯″瀷瀹屾暣鎬ф鏌�") - public Result<List<TaskModelCheckResult>> checkTaskModel(Long productId){ + public Result<List<TaskModelCheckResultDto>> checkTaskModel(Long productId){ // List<TaskModelCheckResult> checkResult = taskService.checkTaskModel(productId); // return Result.ok(checkResult); return Result.ok(); diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskRepairParamDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskRepairParamDao.java index 2f9442c..eef55b8 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskRepairParamDao.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskRepairParamDao.java @@ -1,6 +1,7 @@ package com.zt.life.modules.mainPart.taskReliability.dao; import com.zt.common.dao.BaseDao; +import com.zt.life.modules.mainPart.taskReliability.dto.TaskPhaseConstraintDto; import com.zt.life.modules.mainPart.taskReliability.model.TaskRepairParam; import org.apache.ibatis.annotations.Mapper; @@ -19,6 +20,6 @@ public interface TaskRepairParamDao extends BaseDao<TaskRepairParam> { List<TaskRepairParam> getList(Map<String, Object> params); - List<TaskRepairParam> getTaskRepairParams(Long taskModelId); + List<TaskPhaseConstraintDto> getTaskRepairConstraints(Long taskId, Long phaseId, Long gkId); } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/ModelLinePair.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/ModelLinePairDto.java similarity index 86% rename from modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/ModelLinePair.java rename to modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/ModelLinePairDto.java index 04562fc..7aaa5b3 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/ModelLinePair.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/ModelLinePairDto.java @@ -4,7 +4,7 @@ import lombok.Data; @Data -public class ModelLinePair { +public class ModelLinePairDto { private ModelLine line1; private ModelLine line2; } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResult.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java similarity index 96% rename from modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResult.java rename to modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java index b7d307c..8501008 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResult.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java @@ -3,7 +3,7 @@ import lombok.Data; @Data -public class TaskModelCheckResult { +public class TaskModelCheckResultDto { public final static String CATEGORY_TASK_TIME = "浠诲姟鎬绘椂闀挎湭閰嶇疆"; public final static String CATEGORY_PHASE_TIME = "闃舵鏃堕暱鏈厤缃�"; public final static String CATEGORY_GK_TIME = "宸ュ喌鏃堕暱鏈厤缃�"; diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskPhaseConstraintDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskPhaseConstraintDto.java new file mode 100644 index 0000000..704a9a4 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskPhaseConstraintDto.java @@ -0,0 +1,41 @@ +package com.zt.life.modules.mainPart.taskReliability.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * TaskRepairConstraintDto + * + * @author zt generator + * @since 1.0.0 2024-08-07 + */ +@Data +public class TaskPhaseConstraintDto { + @ApiModelProperty(value = "浠诲姟ID") + private Long taskId; + + @ApiModelProperty(value = "闃舵id") + private Long phaseId; + + @ApiModelProperty(value = "宸ュ喌妯″瀷id锛堝綋鍓嶆湭浣跨敤锛�") + private Long gkModelId; + + @ApiModelProperty(value = "浜у搧缁撴瀯鏍戣妭鐐笽D锛堝綋鍓嶆湭浣跨敤锛�") + private Long nodeId; + + @ApiModelProperty(value = "妯″瀷id锛堝綋鍓嶆湭浣跨敤锛�") + private Long modelId; + + @ApiModelProperty(value = "璁惧绫诲瀷") + private String equipType; + + @ApiModelProperty(value = "鐘舵��") + private Integer status; + + @ApiModelProperty(value = "璁惧ID") + private Long productId; + + @ApiModelProperty(value = "璁惧鍚嶇О") + private String productName; + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java index 29f5673..d1e0d80 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java @@ -3,13 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.zt.common.entity.BusiEntity; -import com.zt.common.entity.TreeNode; -import com.zt.life.modules.mainPart.basicInfo.model.ParamData; +import com.zt.life.modules.mainPart.taskReliability.dto.TaskPhaseConstraintDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.ArrayList; import java.util.List; /** @@ -52,5 +50,8 @@ @TableField(exist = false) private double operatConditDuration; + @ApiModelProperty(value = "闃舵绾︽潫") + @TableField(exist = false) + private List<TaskPhaseConstraintDto> phaseConstraints; } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java index 398b57f..d9f6b39 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java @@ -7,24 +7,16 @@ import com.zt.common.utils.UUIDUtil; import com.zt.life.modules.mainPart.basicInfo.dao.ParamDataDao; import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao; -import com.zt.life.modules.mainPart.basicInfo.model.ParamData; import com.zt.life.modules.mainPart.basicInfo.model.ProductImg; -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.ModelLinePair; +import com.zt.life.modules.mainPart.taskReliability.dto.ModelLinePairDto; import com.zt.life.modules.mainPart.taskReliability.model.*; import org.apache.commons.lang3.StringUtils; -import org.dom4j.DocumentHelper; -import org.dom4j.Document; -import org.dom4j.Element; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.XMLWriter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; import org.springframework.transaction.annotation.Transactional; -import java.io.StringWriter; import java.util.*; import java.util.stream.Collectors; @@ -736,8 +728,8 @@ List<ModelLine> lines = modelLineList.stream().filter(item -> item.getEndCell().equals(startNode.getPicId())).collect(Collectors.toList()); if (lines.size()<2) continue; - List<ModelLinePair> linePairs = getLinePairs(lines); - for (ModelLinePair linePair : linePairs) { + List<ModelLinePairDto> linePairs = getLinePairs(lines); + for (ModelLinePairDto linePair : linePairs) { hasSimplifiedMe = simplifyBridgeOneLinePair(modelId, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, startNode, linePair); if (hasSimplifiedMe) { @@ -756,7 +748,7 @@ List<Algorithm> algorithmList, List<ModelNode> modelNodeAndVnodeList, ModelNode startNode, - ModelLinePair linePair) { + ModelLinePairDto linePair) { ModelNode node1 = null; ModelNode node2 = null; ModelNode node3 = null; @@ -967,11 +959,11 @@ } // 鎵惧嚭鎵�鏈�2鏍圭嚎鐨勭粍鍚� - private List<ModelLinePair> getLinePairs(List<ModelLine> lines) { - List<ModelLinePair> linePairs = new ArrayList<>(); + private List<ModelLinePairDto> getLinePairs(List<ModelLine> lines) { + List<ModelLinePairDto> linePairs = new ArrayList<>(); for (int i=0; i<lines.size()-1; i++) { for (int j=i+1; j<lines.size(); j++) { - ModelLinePair linePair = new ModelLinePair(); + ModelLinePairDto linePair = new ModelLinePairDto(); linePair.setLine1(lines.get(i)); linePair.setLine2(lines.get(j)); linePairs.add(linePair); diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelRbdNodeService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelRbdNodeService.java index d9ff88a..83db7f2 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelRbdNodeService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelRbdNodeService.java @@ -1,32 +1,10 @@ package com.zt.life.modules.mainPart.taskReliability.service; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; -import com.zt.common.db.query.QueryFilter; import com.zt.common.service.BaseService; -import com.zt.common.utils.JsonUtils2; import com.zt.common.utils.UUIDUtil; -import com.zt.life.modules.mainPart.basicInfo.dao.ParamDataDao; -import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao; -import com.zt.life.modules.mainPart.basicInfo.model.ParamData; -import com.zt.life.modules.mainPart.basicInfo.model.ProductImg; -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.ModelLinePair; import com.zt.life.modules.mainPart.taskReliability.model.*; -import org.apache.commons.lang3.StringUtils; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.XMLWriter; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.io.StringWriter; -import java.util.*; -import java.util.stream.Collectors; /** diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java index 10595e9..ec36a1c 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java @@ -17,7 +17,8 @@ import com.zt.life.modules.mainPart.taskReliability.dao.SimulatAssessDao; import com.zt.life.modules.mainPart.taskReliability.dao.TimeDiagramDao; import com.zt.life.modules.mainPart.taskReliability.dto.ProductStatusDto; -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.dto.TaskPhaseConstraintDto; import com.zt.life.modules.mainPart.taskReliability.model.*; import com.zt.life.modules.mainPart.utils.GetStringSpace; import org.dom4j.Document; @@ -675,7 +676,7 @@ public Result simulate(SimulatAssess simulatAssess) { Result result = null; // 1. 妫�鏌ユā鍨嬪畬鏁存�� - List<TaskModelCheckResult> chkResult = taskService.checkTaskModel(simulatAssess.getProductId(), + List<TaskModelCheckResultDto> chkResult = taskService.checkTaskModel(simulatAssess.getProductId(), simulatAssess.getTaskModelId()); if (chkResult.size() > 0) { result = Result.error("妯″瀷涓嶅畬鏁达紝璇锋鏌ユā鍨嬪畾涔夊強鍙傛暟閰嶇疆銆�"); @@ -782,7 +783,6 @@ Long taskId = simulatAssess.getTaskModelId(); Task task = taskService.get(taskId); List<TaskBinoParam> binoParams = taskBinoParamDao.getBinoParams(taskId); - List<TaskRepairParam> taskRepairParams = taskRepairParamDao.getTaskRepairParams(taskId); // 1. 璁$畻鍚勪换鍔¢樁娈电殑杩愯鏃堕暱 List<TaskPhase> taskPhases = calcTaskPhaseDuration(task); @@ -801,12 +801,12 @@ Element root = document.addElement("des"); root.addAttribute("name", "General system"); addTasksTag(taskPhaseModelAll, root); - addModelsTag(productId, + addModelsTag(taskId, + productId, productList, paramDataList, taskPhaseModelAll, binoParams, - taskRepairParams, root, failureModels, repairModels); addFailureModelsTag(failureModels, root); @@ -854,7 +854,8 @@ satpm.setPhaseName(phase.getPhaseName()); satpm.setPhaseDurationRate(phase.getPhaseDurationRate()); satpm.setPhaseDuration(phase.getPhaseDuration()); - satpm.setPhaseConstraint(null); // TODO + satpm.setPhaseConstraint(tpm.getPhaseConstraints().stream().map(item -> + item.getProductId().toString()).collect(Collectors.joining(","))); satpm.setGkId(tpm.getOperatConditId()); satpm.setGkName(tpm.getOperatConditName()); satpm.setGkDurationRate(tpm.getOperatConditDurationRate()); @@ -871,6 +872,11 @@ Element taskTag = tasksTag.addElement("task"); taskTag.addAttribute("duration", String.valueOf(taskPhaseModel.getOperatConditDuration())); taskTag.addAttribute("model", taskPhaseModel.getOperatConditId().toString()); + if (null != taskPhaseModel.getPhaseConstraints() && taskPhaseModel.getPhaseConstraints().size() > 0) { + taskTag.addAttribute("NAM", + taskPhaseModel.getPhaseConstraints().stream().map(item -> + item.getProductId().toString()).collect(Collectors.joining(","))); + } } } @@ -902,7 +908,7 @@ ele.addAttribute("value", String.valueOf(failureModel.getParam3())); break; case FailureModel.TYPE_FIX: - ele = failureModelTag.addElement("unreliability"); + ele = failureModelTag.addElement("reliability"); ele.addAttribute("value", String.valueOf(failureModel.getParam1())); break; default: @@ -945,6 +951,10 @@ double duration = taskPhase.getPhaseDuration() * taskPhaseModel.getOperatConditDurationRate() / totalRate; taskPhaseModel.setOperatConditDuration(duration); sum += duration; + + List<TaskPhaseConstraintDto> taskRepairConstraints = taskRepairParamDao.getTaskRepairConstraints(taskPhase.getTaskId(), + taskPhaseModel.getPhaseId(), taskPhaseModel.getOperatConditId()); + taskPhaseModel.setPhaseConstraints(taskRepairConstraints); taskPhaseModelAll.add(taskPhaseModel); } // 鎶婇浂澶磋ˉ鍒版渶鍚庝竴涓伐鍐垫ā鍨� @@ -968,12 +978,12 @@ return taskPhases; } - private void addModelsTag(Long productId, + private void addModelsTag(Long taskId, + Long productId, List<XhProductModel> productList, List<ParamData> paramDataList, List<TaskPhaseModel> taskPhaseModelAll, List<TaskBinoParam> binoParams, - List<TaskRepairParam> taskRepairParams, Element root, List<FailureModel> failureModels, List<RepairModel> repairModels) { @@ -992,28 +1002,32 @@ "end".equals(item.getAlgorithmType())).collect(Collectors.toList()).get(0); ModelNode computerNode = modelNodeAndVnodeList.stream().filter(item -> endAlgo.getComputerList().equals(item.getId().toString())).collect(Collectors.toList()).get(0); - node2DOM(productId, + node2DOM(taskId, + taskPhaseModel, + gkModelTop.getModelId(), + productId, productList, paramDataList, gkModelsAssembled, algorithmList, modelNodeAndVnodeList, binoParams, - taskRepairParams, computerNode, modelTag, failureModels, repairModels); } } // 閫掑綊鍑芥暟 - private void node2DOM(Long productId, + private void node2DOM(Long taskId, + TaskPhaseModel taskPhaseModel, + Long modelId, + Long productId, List<XhProductModel> productList, List<ParamData> paramDataList, List<OperatConditModel> gkModelsAssembled, List<Algorithm> algorithmList, List<ModelNode> modelNodeAndVnodeList, List<TaskBinoParam> binoParams, - List<TaskRepairParam> taskRepairParams, ModelNode node, Element parent, List<FailureModel> failureModels, @@ -1032,37 +1046,53 @@ "end".equals(item.getAlgorithmType())).collect(Collectors.toList()).get(0); ModelNode computerNode = modelNodeAndVnodeListSub.stream().filter(item -> endAlgo.getComputerList().equals(item.getId().toString())).collect(Collectors.toList()).get(0); - node2DOM(product.getId(), + node2DOM(taskId, + taskPhaseModel, + gkModel.getModelId(), + product.getId(), productList, paramDataList, gkModelsAssembled, algorithmListSub, modelNodeAndVnodeListSub, binoParams, - taskRepairParams, computerNode, parent, failureModels, repairModels); } else if ("5".equals(product.getProductType())) { // 璁惧 - ParamData paramData = paramDataList.stream().filter(item -> - dataId.equals(item.getProductId())).collect(Collectors.toList()).get(0); Element nodeTag = parent.addElement("node"); nodeTag.addAttribute("name", dataId.toString()); nodeTag.addAttribute("type", "node"); - FailureModel failureModel = new FailureModel(); - failureModel.setId(UUIDUtil.generateId()); - failureModel.setType(FailureModel.TYPE_EXP); - failureModel.setParam1(1.0 / paramData.getTaskMtbcfRegulate()); + ParamData paramData = paramDataList.stream().filter(item -> + dataId.equals(item.getProductId())).collect(Collectors.toList()).get(0); + Double ratio = paramData.getTaskMtbcfOperatingRatio(); + if (null != ratio && ratio > 0) { + // 闂存柇鍨嬭澶囩殑澶勭悊 + double cycon = taskPhaseModel.getOperatConditDuration() * ratio; + double cycdown = taskPhaseModel.getOperatConditDuration() - cycon; + nodeTag.addAttribute("cycon", String.valueOf(cycon)); + nodeTag.addAttribute("cycdown", String.valueOf(cycdown)); + } + TaskBinoParam taskBinoParam = null; + if (3 == paramData.getReliabDistribType()) { + // 浜岄」鍒嗗竷澶勭悊 + taskBinoParam = binoParams.stream() + .filter(item -> taskId.equals(item.getTaskId())) + .filter(item -> taskPhaseModel.getPhaseId().equals(item.getPhaseId())) + .filter(item -> taskPhaseModel.getOperatConditId().equals(item.getOperatConditId())) + .filter(item -> modelId.equals(item.getModelId())) + .filter(item -> dataId.equals(item.getProductId())) + .collect(Collectors.toList()).get(0); + } + FailureModel failureModel = createFailureModel(paramData, taskBinoParam); failureModels.add(failureModel); - Element failureTag = nodeTag.addElement("failure_model"); failureTag.addAttribute("name", failureModel.getId().toString()); + if (1 == paramData.getRepairable()) { - RepairModel repairModel = new RepairModel(); - repairModel.setId(UUIDUtil.generateId()); - repairModel.setType(RepairModel.TYPE_EXP); - repairModel.setParam1(1.0 / paramData.getRepairMttcr()); + // 鍙淮淇� + RepairModel repairModel = createRepairModel(paramData); repairModels.add(repairModel); Element repairTag = nodeTag.addElement("repair_model"); repairTag.addAttribute("name", repairModel.getId().toString()); @@ -1094,35 +1124,50 @@ for (String nodeStr : computerNodeListStr) { ModelNode mn = modelNodeAndVnodeList.stream().filter(item -> nodeStr.equals(item.getId().toString())).collect(Collectors.toList()).get(0); - node2DOM(null, + node2DOM(taskId, + taskPhaseModel, + modelId, + null, productList, paramDataList, gkModelsAssembled, algorithmList, modelNodeAndVnodeList, binoParams, - taskRepairParams, mn, element, failureModels, repairModels); } } } - private FailureModel createFailureModel(ParamData paramData) { + private FailureModel createFailureModel(ParamData paramData, TaskBinoParam taskBinoParam) { FailureModel failureModel = new FailureModel(); failureModel.setId(UUIDUtil.generateId()); switch (paramData.getReliabDistribType()) { case 1: + // 鎸囨暟鍒嗗竷 failureModel.setType(FailureModel.TYPE_EXP); failureModel.setParam1(1.0 / paramData.getTaskMtbcfRegulate()); break; case 2: + // 濞佸竷灏斿垎甯� failureModel.setType(FailureModel.TYPE_WBL); failureModel.setParam2(paramData.getTaskMtbcfOtherParams2()); failureModel.setParam3(paramData.getTaskMtbcfOtherParams3()); break; case 3: - failureModel.setType(FailureModel.TYPE_BIN); + // 浜岄」鍒嗗竷 + if (taskBinoParam.getSimulatTimes().intValue() == taskBinoParam.getSuccessTimes().intValue()) { + // 鐩哥瓑鍒欎负鎴愯触鍨� + failureModel.setType(FailureModel.TYPE_FIX); + failureModel.setParam1(taskBinoParam.getSuccessRate()); + } else { + // 浜岄」鍒嗗竷 + failureModel.setType(FailureModel.TYPE_BIN); + failureModel.setParam1(taskBinoParam.getSuccessRate()); + failureModel.setParam2(taskBinoParam.getSimulatTimes()); + failureModel.setParam3(taskBinoParam.getSuccessTimes()); + } break; default: break; @@ -1130,4 +1175,29 @@ return failureModel; } + + private RepairModel createRepairModel(ParamData paramData) { + RepairModel repairModel = new RepairModel(); + repairModel.setId(UUIDUtil.generateId()); + switch (paramData.getRepairDistribType()) { + case 1: + // 鎸囨暟鍒嗗竷 + repairModel.setType(FailureModel.TYPE_EXP); + repairModel.setParam1(1.0 / paramData.getRepairMttcr()); + break; + case 2: + // 濞佸竷灏斿垎甯� + repairModel.setType(FailureModel.TYPE_WBL); + repairModel.setParam2(paramData.getRepairMttcrOtherParams2()); + repairModel.setParam3(paramData.getRepairMttcrOtherParams3()); + break; + case 3: + // 浜岄」鍒嗗竷锛堢淮淇病鏈夛級 + break; + default: + break; + } + + return repairModel; + } } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java index 3a77b32..c0d7577 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java @@ -6,7 +6,7 @@ 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; @@ -76,8 +76,8 @@ * @param productId 浜у搧鑺傜偣ID锛堜竴鑸负鎬讳綋锛� * @return 妫�鏌ュ嚭鐨勯敊璇殑List锛岄暱搴︿负0琛ㄧず娌℃湁閿欒锛屼笉浼氳繑鍥瀗ull */ - public List<TaskModelCheckResult> checkTaskModel(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. 鑾峰彇鏁版嵁 @@ -108,7 +108,7 @@ 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()); @@ -118,7 +118,7 @@ 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()); @@ -128,7 +128,7 @@ setTaskModelCheckResult(taskModel, phase, null, null, null, - TaskModelCheckResult.CATEGORY_GK_TIME, checkResult); + TaskModelCheckResultDto.CATEGORY_GK_TIME, checkResult); } else { // 鏈夊伐鍐垫ā鍨嬫暟鎹� List<TaskPhaseModel> phaseModelWithDurations = taskModelPhaseModelList.stream().filter(item -> @@ -141,7 +141,7 @@ phase, taskPhaseModel, null, null, - TaskModelCheckResult.CATEGORY_GK_TIME, checkResult); + TaskModelCheckResultDto.CATEGORY_GK_TIME, checkResult); } } else { // 鏈夊伐鍐垫ā鍨嬭閫夌敤锛屾鏌ラ�夌敤鐨勫伐鍐垫ā鍨� @@ -159,7 +159,7 @@ taskPhaseModel, null, node, - TaskModelCheckResult.CATEGORY_GK_MODEL, checkResult); + TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult); } else { // 鏈夊伐鍐垫ā鍨嬫爲锛屾鏌ュ叾瀹屾暣鎬� // checkGkModel(taskModel, phase, taskPhaseModel, gkModelTops.get(0), @@ -185,7 +185,7 @@ 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()) @@ -199,7 +199,7 @@ taskPhaseModel, null, node, - TaskModelCheckResult.CATEGORY_GK_MODEL, checkResult); + TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult); } } @@ -209,20 +209,20 @@ 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) { @@ -230,7 +230,7 @@ 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()); diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskRepairParamDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskRepairParamDao.xml index bb33675..ab95b0d 100644 --- a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskRepairParamDao.xml +++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskRepairParamDao.xml @@ -47,14 +47,53 @@ on e.task_id = d.task_id and e.phase_id = d.phase_id and e.equip_type = d.equip_type </select> - <select id="getTaskRepairParams" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskRepairParam"> - select a.* - from - task_repair_param a - where - a.IS_DELETE=0 - <if test="shipId!=null"> - and a.task_id = #{taskModelId} - </if> + <select id="getTaskRepairConstraints" resultType="com.zt.life.modules.mainPart.taskReliability.dto.TaskPhaseConstraintDto"> + SELECT + h.task_id, + h.phase_id, + b.operat_condit_id as gk_model_id, + d.model_id, + h.equip_type, + h.STATUS, + f.`NAME` as product_name, + f.ID as product_id + FROM + task_phase a, + task_phase_model b, + operat_condit c, + operat_condit_model d, + model_node_algorithm e, + product_model f, + param_data g, + task_repair_param h + WHERE + a.task_id = #{taskId} + AND a.is_delete = 0 + AND b.phase_id = a.id + and a.id = #{phaseId} + AND b.is_delete = 0 + AND c.id = b.operat_condit_id + and c.id = #{gkId} + AND c.is_delete = 0 + AND d.operat_condit_id = c.id + AND d.is_delete = 0 + AND d.is_disabled = 0 + AND e.model_id = d.model_id + AND e.is_delete = 0 + AND f.id = e.data_id + AND f.is_delete = 0 + AND g.product_id = f.id + AND g.is_delete = 0 + AND g.repairable = 1 + and h.task_id = a.task_id + and h.phase_id = b.phase_id + and h.`STATUS` = 1 + and h.equip_type = f.equip_type + order by h.task_id, + h.phase_id, + b.operat_condit_id, + d.model_id, + h.equip_type, + f.`NAME` </select> </mapper> -- Gitblit v1.9.1