From 79eab76ac1b4b77696c92d72cfbde1e122c4c28f Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期一, 28 十月 2024 17:58:44 +0800
Subject: [PATCH] 关于修改可靠性产品重复

---
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java |   33 +++++++++++++++++++++++++++------
 1 files changed, 27 insertions(+), 6 deletions(-)

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 b574501..ae1baa0 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
@@ -5,6 +5,7 @@
 import cn.hutool.json.XML;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.spire.pdf.tables.table.convert.Convert;
+import com.zt.common.db.query.QueryFilter;
 import com.zt.common.exception.RenException;
 import com.zt.common.service.BaseService;
 import com.zt.common.servlet.Result;
@@ -24,6 +25,7 @@
 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 com.zt.life.modules.mainPart.utils.OSUtils.ProcessUtils;
 import io.swagger.models.auth.In;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -115,7 +117,6 @@
     Map<Integer, String> templetsStrMap2 = new HashMap<>();
 
     private JSONObject xmlJSONObj;
-
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -354,9 +355,9 @@
                         currentStatusDto.setX2(nextStatusDto.getX1());
                         statusDtoListNew.add(new TimeDiagramStatusDto(nextStatusDto.getX1(), nextStatusDto.getX2(), nextStatusDto.getStatus()));
                     } else if (nextStatusDto.getX1() > currentStatusDto.getX1() && nextStatusDto.getX2() < currentStatusDto.getX2()) {
-                        currentStatusDto.setX2(nextStatusDto.getX1());
                         statusDtoListNew.add(new TimeDiagramStatusDto(nextStatusDto.getX1(), nextStatusDto.getX2(), nextStatusDto.getStatus()));
                         statusDtoListOld.add(new TimeDiagramStatusDto(nextStatusDto.getX2(), currentStatusDto.getX2(), currentStatusDto.getStatus()));
+                        currentStatusDto.setX2(nextStatusDto.getX1());
                     }
                 } else {
                     if (nextStatusDto.getX1() >= currentStatusDto.getX2()) {
@@ -581,6 +582,7 @@
                 this.processJSONArray(jsonArray, item, taskId);
             }
         }
+        childList.removeIf(item -> item.getStatusList().size() == 0);
         return childList;
     }
 
@@ -655,7 +657,6 @@
         return result;
     }
 
-    @Transactional(rollbackFor = Exception.class)
     public Boolean simulate(SimulatAssess simulatAssess) {
         Boolean result = false;
         // 2. 缁勮渚涚畻娉曞簱浠跨湡鐨勬ā鍨媥ml
@@ -665,6 +666,11 @@
         result = callReliaSimLib(simulatAssess);
 
         return result;
+    }
+
+    public List<SimulatAssess> process(QueryFilter queryFilter) {
+        List<SimulatAssess> page = baseDao.getProcessList(queryFilter.getParams());
+        return queryFilter.getPageList(page);
     }
 
     private Boolean callReliaSimLib(SimulatAssess simulatAssess) {
@@ -690,6 +696,8 @@
             } else {
                 throw new RenException("鏆備笉鏀寔璇ユ搷浣滅郴缁燂紝杩涜鍚姩绠楁硶搴撹绠楋紒");
             }
+            long pid = ProcessUtils.getProcessId(process);
+            logger.info("绠楁硶搴揚ID锛�" + pid);
             is = process.getInputStream();
             // 浠ュ懡浠よ鏂瑰紡璋冪敤绠楁硶搴撴椂锛屾帴鍙g害瀹氳繑鍥炵殑缁撴灉鏄痷tf-8缂栫爜
             br = new BufferedReader(new InputStreamReader(is, "utf-8"));
@@ -700,6 +708,8 @@
                 ReliaSimLibResult rtn = com.alibaba.fastjson.JSONObject.parseObject(line, ReliaSimLibResult.class);
                 if ("0".equals(rtn.getCode())) {
                     logger.info("鍚姩鍙潬鎬т豢鐪熻瘎浼扮畻娉曞簱鎴愬姛銆�");
+                    newProcess(simulatAssess, pid, command);
+                    update(simulatAssess);
                     result = true;
                 } else {
                     String errorMsg = rtn.getErrorMsg();
@@ -728,6 +738,14 @@
         }
 
         return result;
+    }
+
+    public void newProcess(SimulatAssess simulatAssess, long pid, String command) {
+        simulatAssess.setPid(pid);
+        simulatAssess.setCommandLine(command);
+        simulatAssess.setProcessIsAlive(true);
+        simulatAssess.setProcessStartTime(new Date());
+        simulatAssess.setProgress(0);
     }
 
     private void setParamToRedis(SimulatAssess simulatAssess) {
@@ -1193,11 +1211,13 @@
         return failureModel;
     }
 
-    private boolean isRepairDirac(boolean repairDiracFlag, TaskPhaseModel taskPhaseModel, Long productId) {
+    private boolean isRepairDirac(Boolean repairDiracFlag, TaskPhaseModel taskPhaseModel, Long productId) {
         boolean result = false;
 
-        if (repairDiracFlag) {
-            if (taskPhaseModel.getPhaseConstraints() != null) {
+        if (repairDiracFlag != null && repairDiracFlag) {
+            if (taskPhaseModel.getPhaseConstraints() == null) {
+                result = true;
+            } else {
                 List<TaskPhaseConstraintDto> list = taskPhaseModel.getPhaseConstraints().stream().filter(item ->
                         productId.equals(item.getProductId())).collect(Collectors.toList());
                 if (list.size() == 0) {
@@ -1212,6 +1232,7 @@
     private RepairModel createRepairModelDirac(double time) {
         RepairModel repairModel = new RepairModel();
         repairModel.setId(UUIDUtil.generateId());
+        repairModel.setType(RepairModel.TYPE_DIRAC);
         repairModel.setParam1(0);
         return repairModel;
     }

--
Gitblit v1.9.1