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