From 1069d8bf6622690e6be091753def954ccf4495ae Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 10 十二月 2024 10:38:53 +0800
Subject: [PATCH] 修改

---
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java |   46 +++++----
 web/src/views/modules/taskReliability/SimulatHistory.vue                                                      |  114 +++++++++++++---------
 modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml                                        |   20 +++
 web/src/views/modules/taskReliability/TimeDiagram.vue                                                         |   24 ++++
 web/src/views/modules/taskReliability/ReliabilityWeakness.vue                                                 |   26 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sys/controller/SysMysqlController.java            |   13 --
 web/src/views/modules/taskReliability/SimulatAssess.vue                                                       |    4 
 7 files changed, 157 insertions(+), 90 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sys/controller/SysMysqlController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sys/controller/SysMysqlController.java
index a12988f..b93d5fe 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sys/controller/SysMysqlController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sys/controller/SysMysqlController.java
@@ -1,27 +1,16 @@
 package com.zt.life.modules.mainPart.sys.controller;
 
 
-import com.zt.common.annotation.LogOperation;
-import com.zt.common.annotation.QueryParam;
-import com.zt.common.constant.Constant;
-import com.zt.common.db.query.QueryFilter;
 import com.zt.common.servlet.Result;
 import com.zt.life.modules.mainPart.sys.model.SysMysql;
 import com.zt.life.modules.mainPart.sys.service.SysMysqlService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.*;
-import java.nio.charset.StandardCharsets;
-import java.util.LinkedList;
-import java.util.List;
+
 
 
 /**
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 613d3f1..05d095f 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
@@ -257,7 +257,7 @@
             JsonUtils2.setJsonValueByPath(textJson, "id".split("/"), UUIDUtil.generateId().toString());
             JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/text".split("/"), dto.getName());
             JsonUtils2.setJsonValueByPath(textJson, "position/x".split("/"), 20);
-            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y - 15);
+            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y + 10);
             jsonArray3.add(textJson);
         }
 
@@ -607,7 +607,7 @@
             if (jsonArray3.size() == 0) {
                 StatusDto statusDto = new StatusDto();
                 statusDto.setTimes(phaseModelList.get(j).getGkDuration());
-                statusDto.setStatus("");
+                statusDto.setStatus("M");
                 productStatusDto.getStatusList().add(statusDto);
             } else {
                 for (int a = 0; a < jsonArray3.size(); a++) {
@@ -621,6 +621,9 @@
                         }
                     }
                     if (status != null || times != null) {
+                        if (StringUtils.isBlank(status)) {
+                            status = "M";
+                        }
                         StatusDto statusDto = new StatusDto();
                         statusDto.setTimes(times);
                         statusDto.setStatus(status);
@@ -1297,7 +1300,6 @@
         JSONObject xmlJSONObj = XML.toJSONObject(xml);
         JSONArray jsonArray = xmlJSONObj.getJSONObject("ResultNodes").getJSONArray("ResultNode");
         for (int i = 0; i < jsonArray.size(); i++) {
-            WeakDto data = new WeakDto();
             Long productId1;
             String nameValue = jsonArray.getJSONObject(i).get("name").toString();
             if (StringUtils.isNotBlank(nameValue)) {
@@ -1322,12 +1324,14 @@
         }
         List<WeakDto> productList = baseDao.getProductList(taskId, productId);
         for (WeakDto item : productList) {
-            WeakDto dto = map.get(item.getId());
-            item.setMtbf(dto.getMtbf());
-            item.setMttr(dto.getMttr());
-            item.setMsr(dto.getMsr());
-            item.setMtbfTime(dto.getMtbf() / item.getTimeRate());
-            item.setIsWeak(0);
+            if (map.get(item.getId()) != null) {
+                WeakDto dto = map.get(item.getId());
+                item.setMtbf(dto.getMtbf());
+                item.setMttr(dto.getMttr());
+                item.setMsr(dto.getMsr());
+                item.setMtbfTime(dto.getMtbf() / item.getTimeRate());
+                item.setIsWeak(0);
+            }
         }
 
         List<WeakDto> treeList = new ArrayList<>();
@@ -1342,13 +1346,15 @@
     private void getIsweak(List<WeakDto> treeList) {
         WeakDto minDto = null;
         for (WeakDto dto : treeList) {
-            if (dto.getProductType() == 10)
-                continue;
-            if (minDto == null) {
-                minDto = dto;
-            }
-            if (dto.getMtbfTime() < minDto.getMtbfTime()) {
-                minDto = dto;
+            if (dto.getMtbfTime() != null) {
+                if (dto.getProductType() == 10)
+                    continue;
+                if (minDto == null) {
+                    minDto = dto;
+                }
+                if (dto.getMtbfTime() < minDto.getMtbfTime()) {
+                    minDto = dto;
+                }
             }
         }
         minDto.setIsWeak(1);
@@ -1468,13 +1474,11 @@
                 String[] arr = availability.split(" ");
                 // 閬嶅巻瀛愬瓧绗︿覆鏁扮粍锛屽皢姣忎釜鍏冪礌杞崲涓篸ouble骞跺瓨鍌ㄥ埌double鏁扮粍涓�
                 Double j = 0.0;
-                Double b = 100.0;
                 for (int a = 0; a < arr.length - 1; a++) {
-                    if (Convert.toDouble(arr[a]) < Convert.toDouble(arr[a+1])) {
-                        System.out.println(arr[a]);
-                    }
                     j = samplPeriod + j;
-                    doubleArray.add(Double.parseDouble(arr[a]));
+                    if (!StringUtils.isEmpty(arr[a])) {
+                        doubleArray.add(Double.parseDouble(arr[a]));
+                    }
                     xList.add(j);
                 }
 
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml
index 69d59d6..ac8e880 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml
@@ -4,7 +4,7 @@
 <mapper namespace="com.zt.life.modules.mainPart.basicInfo.dao.StatisticsDao">
 
     <select id="getTaskReliabList" resultType="com.zt.life.modules.mainPart.basicInfo.model.TaskReliabData">
-        SELECT
+        /*SELECT
             a.name,
             count(distinct b.id) AS taskNum,
             count(distinct c.id) AS operatConNum,
@@ -21,7 +21,23 @@
                  left join  assess_result g on g.product_id = a.id and g.IS_DELETE=0
         where a.product_type = 2 and a.IS_DELETE =0
         group by a.id,a.name
-        order by a.name
+        order by a.name*/
+        SELECT
+            a.name,
+            (SELECT COUNT(DISTINCT b.id) FROM task b WHERE b.product_id = a.id AND b.IS_DELETE = 0) AS taskNum,
+            (SELECT COUNT(DISTINCT c.id) FROM operat_condit c WHERE c.product_id = a.id AND c.IS_DELETE = 0) AS operatConNum,
+            (SELECT COUNT(DISTINCT d.id) FROM model_rbd d WHERE d.ship_id = a.id AND d.IS_DELETE = 0) AS modelNum,
+            (SELECT COUNT(DISTINCT e.id) FROM simulat_assess e WHERE e.product_id = a.id AND e.IS_DELETE = 0) AS simulatNum,
+            (SELECT COUNT(DISTINCT f.id) FROM assess_item f WHERE f.product_id = a.id AND f.IS_DELETE = 0) AS testData,
+            (SELECT COUNT(DISTINCT g.id) FROM assess_result g WHERE g.product_id = a.id AND g.IS_DELETE = 0) AS assessNum
+        FROM
+            product_model a
+        WHERE
+            a.product_type = 2 AND a.IS_DELETE = 0
+        GROUP BY
+            a.id, a.name
+        ORDER BY
+            a.name
     </select>
     <select id="getBaseReliabList" resultType="com.zt.life.modules.mainPart.basicInfo.model.BaseReliabData">
         SELECT
diff --git a/web/src/views/modules/taskReliability/ReliabilityWeakness.vue b/web/src/views/modules/taskReliability/ReliabilityWeakness.vue
index 03fdf49..1fa39f9 100644
--- a/web/src/views/modules/taskReliability/ReliabilityWeakness.vue
+++ b/web/src/views/modules/taskReliability/ReliabilityWeakness.vue
@@ -48,6 +48,8 @@
 </template>
 <script>
 
+  import Cookies from "js-cookie";
+
   export default {
     data() {
       return {
@@ -76,13 +78,31 @@
       },
     },
     mounted() {
-      this.getProductList()
+      this.getProductList(Cookies.get('productId'))
     },
     methods: {
-      async getProductList() {
+      getPath(){
+        if (Cookies.get('productId') != null){
+          this.dataForm.fzId = Cookies.get('fzId')
+          this.dataForm.productId = Cookies.get('productId')
+          this.dataForm.taskModelId = Cookies.get('taskModelId')
+          console.log(this.dataForm.productId)
+          this.getTaskList()
+          this.$nextTick(() => {
+            this.onProductSelected({id:this.dataForm.productId})
+            this.onTaskSelected({id:Cookies.get('taskModelId')})
+            this.onSimulatSelected({id:Cookies.get('fzId')})
+          })
+        }
+      },
+      async getProductList(productId) {
         let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
         this.productList = res.data
-        this.onProductSelected(this.productList[0])
+        if(productId!=null){
+          this.getPath()
+        }else{
+          this.onProductSelected(this.productList[0])
+        }
       },
       async getTaskList() {
         let params = {
diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue
index 6739d7a..9fcea17 100644
--- a/web/src/views/modules/taskReliability/SimulatAssess.vue
+++ b/web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -70,7 +70,6 @@
   import SimulatCurve from "./SimulatCurve";
   import ProductModelTree from "../basicInfo/ProductModelTree";
   import Process from "./Process";
-  import qs from "qs";
   import Cookies from "js-cookie";
 
 
@@ -158,6 +157,9 @@
             if (this.percentage >= 100) {
               clearInterval(this.timers)
               this.percentage = 0
+              Cookies.set('productId', this.dataForm.productId)
+              Cookies.set('taskModelId', this.dataForm.taskModelId)
+              Cookies.set('fzId', this.dataForm.id)
               this.$refs.SimulatCurve.initEcharts(this.dataForm);
             }
           }
diff --git a/web/src/views/modules/taskReliability/SimulatHistory.vue b/web/src/views/modules/taskReliability/SimulatHistory.vue
index a6f6d41..a46b5d3 100644
--- a/web/src/views/modules/taskReliability/SimulatHistory.vue
+++ b/web/src/views/modules/taskReliability/SimulatHistory.vue
@@ -1,46 +1,46 @@
 <template>
   <div class="fa-card-a">
     <el-row :gutter="5">
-        <el-form :inline="true" :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="80px">
-          <zt-form-item label="浜у搧鑺傜偣" prop="productId">
-            <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
-          </zt-form-item>
-          <zt-form-item label="鎬讳綋浠诲姟" prop="taskModelId">
-            <zt-select v-model="dataForm.taskModelId" :datas="taskList" @change="onTaskSelected"/>
-          </zt-form-item>
-          <zt-form-item label="浠跨湡璁板綍" prop="simulatHis">
-            <zt-select v-model="dataForm.id" :datas="simulatList" @change="onSimulatSelected"/>
-          </zt-form-item>
-          <zt-form-item label="鏃堕棿鍒嗙墖" prop="samplPeriod">
-            <el-input v-model="dataForm.samplPeriod" readonly="false" style="width: 150px;vertical-align: baseline;">
-              <template slot="append">鍒嗛挓</template>
-            </el-input>
-          </zt-form-item>
-          <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency">
-            <el-input v-model="dataForm.simulatFrequency" readonly="false" style="width: 150px;vertical-align: baseline;">
-            </el-input>
-          </zt-form-item>
-          <el-dropdown style="margin-left: 10px" @command="download">
-            <el-button type="primary">
-              涓嬭浇xml<i class="el-icon-arrow-down el-icon--right"></i>
-            </el-button>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="1">杈撳叆xml</el-dropdown-item>
-              <el-dropdown-item command="2">杈撳嚭xml</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </el-form>
-          <el-col :span="4">
-            <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect">
-              <product-model-tree @on-selected="onTreeSelected" showXdy="false"
-                                  ref="ProductModelTree" :isShow="false" basic="5" :productId="dataForm.productId"/>
-            </div>
-          </el-col>
-          <el-col :span="20">
-            <div class="fa-card-a" style="height: calc(100vh - 230px)">
-                <SimulatCurve ref="SimulatCurve"></SimulatCurve>
-            </div>
-          </el-col>
+      <el-form :inline="true" :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="80px">
+        <zt-form-item label="浜у搧鑺傜偣" prop="productId">
+          <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
+        </zt-form-item>
+        <zt-form-item label="鎬讳綋浠诲姟" prop="taskModelId">
+          <zt-select v-model="dataForm.taskModelId" :datas="taskList" @change="onTaskSelected"/>
+        </zt-form-item>
+        <zt-form-item label="浠跨湡璁板綍" prop="simulatHis">
+          <zt-select v-model="dataForm.id" :datas="simulatList" @change="onSimulatSelected"/>
+        </zt-form-item>
+        <zt-form-item label="鏃堕棿鍒嗙墖" prop="samplPeriod">
+          <el-input v-model="dataForm.samplPeriod" readonly="false" style="width: 150px;vertical-align: baseline;">
+            <template slot="append">鍒嗛挓</template>
+          </el-input>
+        </zt-form-item>
+        <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency">
+          <el-input v-model="dataForm.simulatFrequency" readonly="false" style="width: 150px;vertical-align: baseline;">
+          </el-input>
+        </zt-form-item>
+        <el-dropdown style="margin-left: 10px" @command="download">
+          <el-button type="primary">
+            涓嬭浇xml<i class="el-icon-arrow-down el-icon--right"></i>
+          </el-button>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="1">杈撳叆xml</el-dropdown-item>
+            <el-dropdown-item command="2">杈撳嚭xml</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </el-form>
+      <el-col :span="4">
+        <div style="margin-right: 5px;height: calc(100vh - 230px)" v-if="isSelect">
+          <product-model-tree @on-selected="onTreeSelected" showXdy="false"
+                              ref="ProductModelTree" :isShow="false" basic="5" :productId="dataForm.productId"/>
+        </div>
+      </el-col>
+      <el-col :span="20">
+        <div class="fa-card-a" style="height: calc(100vh - 230px)">
+          <SimulatCurve ref="SimulatCurve"></SimulatCurve>
+        </div>
+      </el-col>
     </el-row>
   </div>
 </template>
@@ -76,7 +76,7 @@
       }
     },
     mounted() {
-      this.getProductList()
+        this.getProductList(Cookies.get('productId'))
     },
     components: {
       ProductModelTree,
@@ -84,10 +84,28 @@
     },
 
     methods: {
-      async getProductList() {
+      getPath(){
+        if (Cookies.get('productId') != null){
+          this.dataForm.id = Cookies.get('fzId')
+          this.dataForm.productId = Cookies.get('productId')
+          this.dataForm.taskModelId = Cookies.get('taskModelId')
+          console.log(this.dataForm.id)
+          this.getTaskList()
+          this.$nextTick(() => {
+            this.onProductSelected({id:this.dataForm.productId})
+            this.onTaskSelected({id:Cookies.get('taskModelId')})
+            this.onSimulatSelected({id:Cookies.get('fzId')})
+          })
+        }
+      },
+      async getProductList(productId) {
         let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
         this.productList = res.data
-        this.onProductSelected(this.productList[0])
+        if(productId!=null){
+          this.getPath()
+        }else{
+          this.onProductSelected(this.productList[0])
+        }
       },
       async getTaskList() {
         let params = {
@@ -128,16 +146,16 @@
         this.dataForm.taskModelId = data.id
         this.getSimulatList()
         this.dataForm.id = ''
+        console.log(this.dataForm.taskModelId)
       },
       async onSimulatSelected(data) {
         this.dataForm.id = data.id
-        this.dataForm.samplPeriod = data.samplPeriod
+        console.log(data)
         let params = {
           id: this.dataForm.id,
           taskModelId: this.dataForm.taskModelId
         }
         let res = await this.$http.get('/taskReliability/SimulatAssess/getSimulatParams', {params: params})
-        console.log(res.data.samplPeriod)
         this.dataForm.samplPeriod = res.data.samplPeriod
         this.dataForm.simulatFrequency = res.data.simulatFrequency
         this.$nextTick(() => {
@@ -145,16 +163,16 @@
         })
       },
       async download(selsect) {
-        if(this.dataForm.id){
+        if (this.dataForm.id) {
           let param = qs.stringify({
             'token': Cookies.get('token'),
             type: 'fz',
-            xml:selsect,
+            xml: selsect,
             id: this.dataForm.id
           })
           let apiURL = `/taskReliability/SimulatAssess/downloadXml`
           window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${param}`
-        }else{
+        } else {
           this.$alert('杩樻湭閫夋嫨浠跨湡璁板綍')
         }
       },
diff --git a/web/src/views/modules/taskReliability/TimeDiagram.vue b/web/src/views/modules/taskReliability/TimeDiagram.vue
index 5aaf2c8..bf021da 100644
--- a/web/src/views/modules/taskReliability/TimeDiagram.vue
+++ b/web/src/views/modules/taskReliability/TimeDiagram.vue
@@ -150,7 +150,7 @@
       window.removeEventListener('scroll', this.handleScroll);
     },
     mounted() {
-      this.getProductList()
+      this.getProductList(Cookies.get('productId'))
       this.init()
       this.$refs.textDiagram.init()
       this.$refs.timeDiagramThumbnail.init()
@@ -169,6 +169,20 @@
         let top = this.graph.getScrollbarPosition().top
         this.$refs.textDiagram.setScroll(top)
         this.$refs.timeDiagramThumbnail.getNodePointX(left,this.bigWidth)
+      },
+      getPath(){
+        if (Cookies.get('productId') != null){
+          this.dataForm.id = Cookies.get('fzId')
+          this.dataForm.productId = Cookies.get('productId')
+          this.dataForm.taskModelId = Cookies.get('taskModelId')
+          console.log(this.dataForm.id)
+          this.getTaskList()
+          this.$nextTick(() => {
+            this.onProductSelected({id:this.dataForm.productId})
+            this.onTaskSelected({id:Cookies.get('taskModelId')})
+            this.onSimulatSelected({id:Cookies.get('fzId')})
+          })
+        }
       },
       init() {
         this.graph = new Graph({
@@ -363,10 +377,14 @@
           style.display = 'none'
         })
       },
-      async getProductList() {
+      async getProductList(productId) {
         let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
         this.productList = res.data
-        this.onProductSelected(this.productList[0])
+        if(productId!=null){
+          this.getPath()
+        }else{
+          this.onProductSelected(this.productList[0])
+        }
       },
       async getTaskList() {
         let params = {

--
Gitblit v1.9.1