From aa4a6ed94ea6861a6ce634550d2f05f528529098 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期四, 05 九月 2024 09:07:53 +0800
Subject: [PATCH] 修改
---
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java | 24 +
web/src/views/modules/taskReliability/Task-AddOrUpdate.vue | 2
web/src/views/modules/taskReliability/ReliabilityAssess.vue | 116 +++++++
modules/mainPart/src/main/resources/mapper/basicInfo/TyProductModelDao.xml | 26 +
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/service/TestSchemeService.java | 158 ++++++---
web/src/views/modules/taskReliability/SchemeCompar.vue | 4
web/src/views/modules/taskReliability/OperatCondit.vue | 2
web/src/views/modules/taskReliability/OperatConditModel.vue | 19
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java | 6
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ResultDto.java | 12
web/src/views/modules/taskReliability/ModelRbd-AddOrUpdate.vue | 2
web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue | 6
web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue | 6
web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue | 141 ++++++++
web/packages/components/zt-dialog/src/zt-dialog.vue | 5
web/src/views/modules/basicInfo/XhProductModel.vue | 2
web/src/views/modules/taskReliability/PlanMake.vue | 17
web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue | 2
web/src/views/modules/taskReliability/TaskPhase.vue | 1
modules/mainPart/src/main/resources/mapper/taskReliability/AssessItemDao.xml | 6
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/AssessItemDao.java | 21 +
modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml | 18 +
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java | 175 ++++++++++
web/src/views/modules/basicInfo/TyProductModel.vue | 2
web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue | 2
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/AssessItem.java | 16 +
web/src/views/modules/basicInfo/SelectTyModel.vue | 2
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ConditionDto.java | 4
modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml | 1
web/src/views/modules/taskReliability/SimulatAssess.vue | 3
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java | 90 +++++
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ReliabilityAssess.java | 22 +
web/src/views/modules/basicInfo/ProductImport.vue | 2
33 files changed, 797 insertions(+), 118 deletions(-)
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ConditionDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ConditionDto.java
index 5f158cb..ed0f39c 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ConditionDto.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ConditionDto.java
@@ -11,7 +11,7 @@
private String tjlx;
private Double specifiedValue;
private Double minAccepValue;
- private BigDecimal productionRisk;
- private BigDecimal userRisk;
+ private Double productionRisk;
+ private Double userRisk;
private Integer showFailureTime;
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ResultDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ResultDto.java
index 34643e9..feaab5b 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ResultDto.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/dto/ResultDto.java
@@ -10,19 +10,19 @@
@Data
public class ResultDto {
- @ApiModelProperty(value = "")
+ @ApiModelProperty(value = "鎺ュ彈鍊�")
private int acceptNumber;
- @ApiModelProperty(value = "")
+ @ApiModelProperty(value = "鎬诲疄楠屾椂闂�")
private String totalTestTime;
- @ApiModelProperty(value = "")
- private String number;
+ @ApiModelProperty(value = "妫�楠屼笂闄�")
+ private String specifiedValue;
- @ApiModelProperty(value = "")
+ @ApiModelProperty(value = "鐢熸垚鏂归闄╁疄闄呭��")
private String productionRiskReal;
- @ApiModelProperty(value = "")
+ @ApiModelProperty(value = "浣跨敤鏂归闄╁疄闄呭��")
private String userRiskReal;
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/service/TestSchemeService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/service/TestSchemeService.java
index 439e250..3c1ce06 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/service/TestSchemeService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/TestScheme/service/TestSchemeService.java
@@ -1,10 +1,12 @@
package com.zt.life.modules.mainPart.TestScheme.service;
+import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.life.modules.mainPart.TestScheme.dao.TestSchemeDao;
import com.zt.life.modules.mainPart.TestScheme.dto.ConditionDto;
import com.zt.life.modules.mainPart.TestScheme.dto.ResultDto;
import com.zt.life.modules.mainPart.TestScheme.model.TestScheme;
+import org.apache.commons.math3.distribution.ChiSquaredDistribution;
import org.springframework.stereotype.Service;
import com.zt.common.db.query.QueryFilter;
@@ -48,34 +50,61 @@
public List<ResultDto> getResult(ConditionDto dto) {
List<ResultDto> result = new ArrayList<>();
- List<TestScheme> list = baseDao.getList();
- if (dto.getTjlx().equals("鎸夐闄╁悕涔夊�兼煡璇�")) {
- result = this.getCondition1(dto, list);
- } else if (dto.getTjlx().equals("涓嶉檺瀹氱敓浜ф柟椋庨櫓鏌ヨ")) {
- result = this.getCondition2(dto, list);
- } else if (dto.getTjlx().equals("涓嶉檺瀹氳瀹氬�兼煡璇�")) {
- result = this.getCondition3(dto, list);
+ switch (dto.getTjlx()) {
+ case "鎸夐闄╁悕涔夊�兼煡璇�":
+ result = this.getCondition1(dto);
+ break;
+ case "涓嶉檺瀹氱敓浜ф柟椋庨櫓鏌ヨ":
+ result = this.getCondition2(dto);
+ break;
+ case "涓嶉檺瀹氳瀹氬�兼煡璇�":
+ result = this.getCondition3(dto);
+ break;
}
return result;
}
- private List<ResultDto> getCondition1(ConditionDto dto, List<TestScheme> list) {
+ private List<ResultDto> getCondition1(ConditionDto dto) {
List<ResultDto> result = new ArrayList<>();
- int C = 0;
+ int C = 1;
double oldvalue = 0;
- for (int i = 1; i <= 10; i++) {
- Integer finalI = i;
- TestScheme data1 = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).findFirst().get();//
- TestScheme data2 = list.stream().filter(k -> k.getPa().equals(BigDecimal.ONE.subtract(dto.getUserRisk())) && k.getPc() == (2 * finalI + 2)).findFirst().get();//
+ double strate = dto.getMinAccepValue() / dto.getSpecifiedValue();
+ for (int i = 1; i <= 10000; i++) {
+ Double data1 = getUpperQuantile(1 - dto.getProductionRisk(), 2 * i + 2);
+ Double data2 = getUpperQuantile(dto.getUserRisk(), 2 * i + 2);//绠楁硶璁$畻
if (data1 != null && data2 != null) {
- Double value = data2.getValue() / data1.getValue();
- double strate = dto.getMinAccepValue() / dto.getSpecifiedValue();
-
- if (value >= strate) {
- C = i;
- if (strate - oldvalue < value - strate)
- C = i - 1;
- break;
+ double value = data1 / data2;
+ System.out.println(value);
+ if (dto.getUserRisk() < 1 - dto.getProductionRisk()) {
+ if (oldvalue != 0) {
+ if (value > strate) {
+ C = i;
+ if (strate - oldvalue < value - strate) {
+ C = i - 1;
+ }
+ break;
+ }
+ } else {
+ if (value > strate) {
+ C = i;
+ break;
+ }
+ }
+ } else {
+ if (oldvalue != 0) {
+ if (value < strate) {
+ C = i;
+ if (oldvalue - strate < strate - value) {
+ C = i - 1;
+ }
+ break;
+ }
+ } else {
+ if (value < strate) {
+ C = i;
+ break;
+ }
+ }
}
oldvalue = value;
}
@@ -84,11 +113,9 @@
double T = 0; //鎬昏瘯楠屾椂闂�
double TST1 = 0; //T/胃1
double TST0 = 0; //T/胃0
- Integer finalC = C;
- Stream<TestScheme> testSchemeStream = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalC + 2));
- TestScheme data3 = testSchemeStream.findFirst().get();
+ Double data3 = getUpperQuantile(dto.getUserRisk(), 2 * C + 2);
if (data3 != null) {
- TST1 = data3.getValue() / 2; //T/胃1
+ TST1 = data3 / 2; //T/胃1
//TST1 = Convert.ToDouble(TST1.ToString("G2")); //鍙栦袱浣嶆湁鏁堟暟瀛�
if (TST1 < 10) {
TST1 = TST1 + 0.1;
@@ -102,11 +129,16 @@
double e = 2.71828182845904523536; //鑷劧鏁癳
for (int r = 0; r <= C; r++) {
- productionRisk = productionRisk + Math.pow(TST0, r) * Math.pow(e, -TST0) / getjc(r);
+ double a = Math.pow(TST0, r) * Math.pow(e, -TST0) / getjc(r);
+ /* if (r>35){
+ System.out.println(111);
+ }*/
+ productionRisk = productionRisk + a;
userRisk = userRisk + Math.pow(TST1, r) * Math.pow(e, -TST1) / getjc(r);
}
- ResultDto resultDto = new ResultDto();
productionRisk = 1 - productionRisk;
+
+ ResultDto resultDto = new ResultDto();
resultDto.setAcceptNumber(C);
resultDto.setTotalTestTime(String.valueOf(Math.round(T)));
resultDto.setProductionRiskReal(new Formatter().format("%.2f", productionRisk * 100).toString());
@@ -115,20 +147,19 @@
return result;
}
- public List<ResultDto> getCondition2(ConditionDto dto, List<TestScheme> list) {
+ public List<ResultDto> getCondition2(ConditionDto dto) {
List<ResultDto> result = new ArrayList<>();
- for (Integer i = 0; i < dto.getShowFailureTime(); i++) {
- Integer finalI = i;
- List<TestScheme> data = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());//
- ResultDto resultDto = new ResultDto();
- double T = 0;
- double TST1 = 0; // T/胃1
- double TST0 = 0;// T/胃0
- for (TestScheme item : data) {
- TST1 = item.getValue() / 2;
- T = TST1 * dto.getMinAccepValue();
- TST0 = T / dto.getSpecifiedValue(); // T/胃0
- }
+ for (int i = 0; i < dto.getShowFailureTime(); i++) {
+ double T;
+ double TST1; // T/胃1
+ double TST0;// T/胃0
+
+ Double data2 = getUpperQuantile(dto.getUserRisk(), 2 * i + 2);
+ TST1 = data2 / 2;
+ T = TST1 * dto.getMinAccepValue();
+ TST0 = T / dto.getSpecifiedValue(); // T/胃0
+
+
double productionRisk = 0;
double userRisk = 0;
double e = 2.71828182845904523536;
@@ -138,6 +169,7 @@
}
productionRisk = 1 - productionRisk;
+ ResultDto resultDto = new ResultDto();
resultDto.setAcceptNumber(i + 1);
resultDto.setTotalTestTime(String.valueOf(Math.round(T)));
resultDto.setProductionRiskReal(new Formatter().format("%.2f", productionRisk * 100).toString());
@@ -147,24 +179,21 @@
return result;
}
- private List<ResultDto> getCondition3(ConditionDto dto, List<TestScheme> list) {
+ private List<ResultDto> getCondition3(ConditionDto dto) {
List<ResultDto> result = new ArrayList<>();
for (int i = 0; i < dto.getShowFailureTime(); i++) {
- Integer finalI = i;
- List<TestScheme> data = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());//
- List<TestScheme> data2 = list.stream().filter(k -> k.getPa().equals(BigDecimal.ONE.subtract(dto.getProductionRisk())) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());//
- double T = 0;
- double TST1 = 0; // T/胃1
- double TST0 = 0;// T/胃0
- double ST0 = 0; // 胃0
- for (TestScheme item : data) {
- TST1 = item.getValue() / 2;
- T = TST1 * dto.getMinAccepValue();
- for (TestScheme item2 : data2) {
- ST0 = item.getValue() * dto.getMinAccepValue() / item2.getValue();
- }
- TST0 = T / ST0;
- }
+ double T;
+ double TST1; // T/胃1
+ double TST0;// T/胃0
+ double ST0; // 胃0
+
+ Double data1 = getUpperQuantile(dto.getUserRisk(), 2 * i + 2);
+ Double data2 = getUpperQuantile(1 - dto.getProductionRisk(), 2 * i + 2);
+ TST1 = data1 / 2;
+ T = TST1 * dto.getMinAccepValue();
+ ST0 = data1 * dto.getMinAccepValue() / data2;
+ TST0 = T / ST0;
+
double productionRisk = 0;
double userRisk = 0;
@@ -173,10 +202,12 @@
productionRisk = productionRisk + Math.pow(TST0, r) * Math.pow(e, -TST0) / getjc(r);
userRisk = userRisk + Math.pow(TST1, r) * Math.pow(e, -TST1) / getjc(r);
}
+ productionRisk = 1 - productionRisk;
+
ResultDto resultDto = new ResultDto();
resultDto.setAcceptNumber(i + 1);
resultDto.setTotalTestTime(String.valueOf(Math.round(T)));
- resultDto.setNumber(String.valueOf(Math.round(ST0)));
+ resultDto.setSpecifiedValue(String.valueOf(Math.round(ST0)));//妫�楠屼笂闄�
resultDto.setProductionRiskReal(new Formatter().format("%.2f", productionRisk * 100).toString());
resultDto.setUserRiskReal(new Formatter().format("%.2f", userRisk * 100).toString());
result.add(resultDto);
@@ -185,10 +216,19 @@
}
//璁$畻闃朵箻
- int getjc(int a) {
- int result = 1;
+ Double getjc(int a) {
+ double result = 1.0;
for (int i = a; i > 0; i--)
result = result * i;
return result;
}
+
+ //鍗℃柟鍒嗗竷鐨勪笂渚卞垎浣嶆暟绠楁硶
+ public Double getUpperQuantile(Double alpha, Integer degreesOfFreedom) {
+ ChiSquaredDistribution chiSquaredDistribution = new ChiSquaredDistribution(degreesOfFreedom);
+ Double upperQuantile = chiSquaredDistribution.inverseCumulativeProbability(1 - alpha);
+ String str = String.format("%.4f", upperQuantile);
+ upperQuantile = Convert.toDouble(str);
+ return upperQuantile;
+ }
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java
new file mode 100644
index 0000000..b7036ca
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java
@@ -0,0 +1,90 @@
+package com.zt.life.modules.mainPart.taskReliability.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.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+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.dto.ImportErrDto;
+import com.zt.life.modules.mainPart.baseReliability.service.ParamDataBasicService;
+import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
+import com.zt.life.modules.mainPart.taskReliability.dao.AssessItemDao;
+import com.zt.life.modules.mainPart.taskReliability.model.AssessItem;
+import com.zt.life.modules.mainPart.taskReliability.model.OperatCondit;
+import com.zt.life.modules.mainPart.taskReliability.model.ReliabilityAssess;
+import com.zt.life.modules.mainPart.taskReliability.service.ReliabilityAssessService;
+import com.zt.life.util.ImportUtil;
+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 org.springframework.web.multipart.MultipartFile;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.List;
+import java.util.Map;
+
+
+@RestController
+@RequestMapping("/taskReliability/ReliabilityAssess/")
+public class ReliabilityAssessController {
+ @Autowired
+ ReliabilityAssessService reliabilityAssessService;
+
+ @Autowired
+ AssessItemDao assessItemDao;
+
+ @GetMapping("page")
+ @ApiOperation("鍒嗛〉")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+ @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+ })
+ public Result<List<ReliabilityAssess>> page(@ApiIgnore @QueryParam QueryFilter queryFilter) {
+
+ return Result.ok(null);
+ }
+
+ @PostMapping("importProductExcel")
+ public Result importProductExcel(MultipartFile file, String progressId, Long pid, Long itemId) {
+ Result<List<ImportErrDto>> result = Result.ok();
+ try {
+ List<Map<String, Object>> importResults = reliabilityAssessService.importProductExcel(file, progressId, pid, itemId);
+ StringBuilder str = new StringBuilder();
+ ImportUtil.importResult(result, importResults, str);
+ ImportUtil.ImportErrResult(result, importResults, str);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @PostMapping("add")
+ @ApiOperation("鏂板")
+ @LogOperation("鏂板")
+ public Result insert(@RequestBody AssessItem assessItem){
+ //鏁堥獙鏁版嵁
+ ValidatorUtils.validateEntity(assessItem, AddGroup.class, DefaultGroup.class);
+ assessItemDao.insert(assessItem);
+
+ return Result.ok();
+ }
+
+ @GetMapping("getAssessDataList")
+ public Result<List<AssessItem>> getAssessDataList(Long productId){
+ List<AssessItem> dataList = reliabilityAssessService.getAssessDataList(productId);
+
+ return Result.ok(dataList);
+ }
+
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/AssessItemDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/AssessItemDao.java
new file mode 100644
index 0000000..86bac5a
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/AssessItemDao.java
@@ -0,0 +1,21 @@
+package com.zt.life.modules.mainPart.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel;
+import com.zt.life.modules.mainPart.taskReliability.model.AssessItem;
+import com.zt.life.modules.mainPart.taskReliability.model.ReliabilityAssess;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+
+/**
+ * task
+ *
+ * @author zt generator
+ * @since 1.0.0 2024-03-15
+ */
+@Mapper
+public interface AssessItemDao extends BaseDao<AssessItem> {
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java
new file mode 100644
index 0000000..c75aacc
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java
@@ -0,0 +1,24 @@
+package com.zt.life.modules.mainPart.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel;
+import com.zt.life.modules.mainPart.taskReliability.model.AssessItem;
+import com.zt.life.modules.mainPart.taskReliability.model.ReliabilityAssess;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+
+/**
+ * task
+ *
+ * @author zt generator
+ * @since 1.0.0 2024-03-15
+ */
+@Mapper
+public interface ReliabilityAssessDao extends BaseDao<ReliabilityAssess> {
+
+ List<XhProductModel> getProductPath(Long shipId);
+
+ List<AssessItem> getAssessDataList(Long productId);
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/AssessItem.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/AssessItem.java
new file mode 100644
index 0000000..0afa594
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/AssessItem.java
@@ -0,0 +1,16 @@
+package com.zt.life.modules.mainPart.taskReliability.model;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName("assess_item")
+public class AssessItem extends BusiEntity {
+ private String name;
+ private Long id;
+ private Long productId;
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ReliabilityAssess.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ReliabilityAssess.java
new file mode 100644
index 0000000..ef1a43d
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ReliabilityAssess.java
@@ -0,0 +1,22 @@
+package com.zt.life.modules.mainPart.taskReliability.model;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName("assess_data")
+public class ReliabilityAssess extends BusiEntity {
+ private Double runTimes;
+ private Integer runNum;
+ private Integer failNum;
+ private String assessResult;
+ private Long itemId;
+ private Long productId;
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java
new file mode 100644
index 0000000..9d3531b
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java
@@ -0,0 +1,175 @@
+package com.zt.life.modules.mainPart.taskReliability.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.zt.common.constant.Constant;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.service.BaseService;
+import com.zt.common.utils.CacheUtils;
+import com.zt.common.utils.CommonUtils;
+import com.zt.common.utils.TreeUtils;
+import com.zt.common.utils.UUIDUtil;
+import com.zt.core.shiro.ImportUtil;
+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.basicInfo.service.ParamDataService;
+import com.zt.life.modules.mainPart.sysPictureBase.service.SysPictureBaseService;
+import com.zt.life.modules.mainPart.taskReliability.dao.ReliabilityAssessDao;
+import com.zt.life.modules.mainPart.taskReliability.model.AssessItem;
+import com.zt.life.modules.mainPart.taskReliability.model.ReliabilityAssess;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.*;
+
+
+/**
+ * product_model
+ *
+ * @author zt generator
+ * @since 1.0.0 2024-02-29
+ */
+@Service
+public class ReliabilityAssessService extends BaseService<ReliabilityAssessDao, ReliabilityAssess> {
+ public List<Map<String, Object>> importProductExcel(MultipartFile mutFile, String progressId, Long shipId, Long itemId) {
+ Date beginDate = new Date();
+ List<Map<String, Object>> list = new ArrayList<>();//瀛樺偍鎵�鏈夌殑瀵煎叆鐘舵��
+ Map<String, Object> map;//瀛樺偍姣忎竴琛岀殑鐘舵��
+ Integer sum = 0; // 鎬诲叡鐨勬潯鏁�
+ Integer suc = 0; // 鎴愬姛鐨勬潯鏁�
+ Integer err = 0; // 澶辫触鐨勬潯鏁�
+ int row1 = 0;
+ Map<String, Object> errMap = new HashMap<>();
+
+ try {
+ // 鑾峰彇瀵煎叆鏂囦欢鐨勫悗缂�鍚�
+ String fileName = mutFile.getOriginalFilename();
+ Workbook workbook = null;
+ //瑙e喅excel鐗堟湰闂
+ if (fileName != null && fileName.endsWith(".xls")) {
+ workbook = new HSSFWorkbook(mutFile.getInputStream());
+ } else if (fileName != null && fileName.endsWith(".xlsx")) {
+ workbook = new XSSFWorkbook(mutFile.getInputStream());
+ }
+ assert workbook != null; //鏂█濡傛灉[boolean琛ㄨ揪寮廬涓簍rue锛屽垯绋嬪簭缁х画鎵ц銆� 濡傛灉涓篺alse锛屽垯绋嬪簭鎶涘嚭AssertionError锛屽苟缁堟鎵ц銆�
+ int sheets = workbook.getNumberOfSheets();
+
+ Map<String, XhProductModel> modelMap = new HashMap<>();
+ List<XhProductModel> prductList = baseDao.getProductPath(shipId);
+
+ for (XhProductModel product : prductList) {
+ if (StringUtils.isNotBlank(product.getNamePath())) {
+ modelMap.put(product.getNamePath(), product);
+ }
+ }
+
+ String shipPath = "";
+ String xtPath = "";
+ String fxtPath = "";
+ String sbPath = "";
+ String path = "";
+ for (int i = 0; i < sheets; i++) {
+ Sheet sheet = workbook.getSheetAt(i);
+ int num = sheet.getLastRowNum(); // 涓�鍏辨湁澶氬皯琛�
+ String sheetName = sheet.getSheetName(); //鑾峰彇褰撳墠sheet鍚嶇О
+ for (int j = 1; j <= num; j++) {
+ CacheUtils.put(progressId, "speed", CommonUtils.getPercent(j, num));
+ CacheUtils.put(progressId, "msg", "鍏�" + num + "琛岋紝宸插畬鎴愮" + j + "琛�");
+
+ row1 = j;
+ String pattern = "yyyy-MM-dd";
+ Row row = sheet.getRow(row1);
+ // String sort = ImportUtil.getCellValue(row, 0, pattern); //搴忓彿
+
+ String name = ImportUtil.getCellValue(row, 1, pattern); //鑺傜偣鍚嶇О
+ String type = ImportUtil.getCellValue(row, 2, pattern);//鑺傜偣绫诲瀷
+ String runTime = ImportUtil.getCellValue(row, 3, pattern); //杩愯鏃堕暱
+ String runNum = ImportUtil.getCellValue(row, 4, pattern); //杩愯娆℃暟
+ String failNum = ImportUtil.getCellValue(row, 5, pattern); //澶辫触娆℃暟
+
+ if (StringUtils.isBlank(name) || StringUtils.isBlank(type))
+ continue;
+
+ Long productId = null;
+ if (type.equals("鎬讳綋")) {
+ path = shipPath = name;
+ xtPath = "";
+ fxtPath = "";
+ sbPath = "";
+ productId = shipId;
+ }else {
+ if (type.equals("绯荤粺")) {
+ if (StringUtils.isNotBlank(shipPath)) {
+ path = xtPath = name;
+ fxtPath = "";
+ sbPath = "";
+ } else {
+ continue;
+ }
+ }
+ if (type.equals("鍒嗙郴缁�")) {
+ if (StringUtils.isNotBlank(xtPath)) {
+ path = fxtPath = xtPath + "," + name;
+ sbPath = "";
+ } else {
+ continue;
+ }
+ }
+ if (type.equals("璁惧")) {
+ if ((StringUtils.isNotBlank(xtPath) || StringUtils.isNotBlank(fxtPath))) {
+ path = sbPath = StringUtils.isNotBlank(fxtPath) ? fxtPath + "," + name : xtPath + "," + name;
+ } else {
+ continue;
+ }
+ }
+ if (modelMap.get(path) != null) {
+ productId = modelMap.get(path).getId();
+ }
+ }
+
+
+
+ ReliabilityAssess assess = new ReliabilityAssess();
+ assess.setFailNum(Integer.valueOf(failNum));
+ if (StringUtils.isNotBlank(runNum)){
+ assess.setRunNum(Integer.valueOf(runNum));
+ }
+ if (StringUtils.isNotBlank(runTime)){
+ assess.setRunTimes(Double.valueOf(runTime));
+ }
+ assess.setItemId(itemId);
+ assess.setProductId(productId);
+ this.insert(assess);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ ImportUtil.updateErrMap(errMap, "瀵煎叆寮傚父" + e.getMessage(), "", row1);
+ //err++;
+ }
+
+ Date nowDate = new Date();
+ String msg = "浜у搧妯″瀷瀵煎叆鏃堕棿锛�" + CommonUtils.getDatePoor(nowDate, beginDate) + "\r\n";
+ System.out.println(msg);
+ suc = sum - err;
+ map = new HashMap<>();
+ map.put("sum", sum + ""); // 鎵�鏈夊鍏ョ殑鏉℃暟
+ map.put("suc", suc + ""); // 鎴愬姛鐨勬潯鏁�
+ map.put("err", err + ""); // 澶辫触鐨勬潯鏁�
+ list.add(map);
+ list.add(errMap);
+ return list;
+ }
+
+ public List<AssessItem> getAssessDataList(Long productId) {
+ return baseDao.getAssessDataList(productId);
+ }
+}
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 8047000..ea18bfb 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
@@ -1023,7 +1023,7 @@
String filePath = path + "/" + fzId + "/" + "result.xml";
List<WeakDto> list = new ArrayList<>();
Map<Long, WeakDto> map = new HashMap<>();
- String xml = null;
+ String xml;
InputStream in = null;
try {
in = new FileInputStream(filePath);
@@ -1047,7 +1047,7 @@
JSONArray jsonArray = xmlJSONObj.getJSONObject("ResultNodes").getJSONArray("ResultNode");
for (int i = 0; i < jsonArray.size(); i++) {
WeakDto data = new WeakDto();
- Long productId1 = null;
+ Long productId1;
Object nameValue = jsonArray.getJSONObject(i).get("name");
if (nameValue instanceof Long) {
productId1 = (Long) nameValue;
@@ -1147,7 +1147,7 @@
this.update(simulatAssess);
}
String filePath = path + "/" + simulatAssess.getId() + "/" + "result.xml";
- String xml = null;
+ String xml;
InputStream in = null;
try {
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/TyProductModelDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/TyProductModelDao.xml
index 344618a..fafc06e 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/TyProductModelDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/TyProductModelDao.xml
@@ -4,22 +4,28 @@
<mapper namespace="com.zt.life.modules.mainPart.basicInfo.dao.TyProductModelDao">
<select id="getList" resultType="com.zt.life.modules.mainPart.basicInfo.model.TyProductModel">
- SELECT PMC.*
- FROM product_model_common PMC
+ SELECT a.*
+ FROM product_model_common a
JOIN (SELECT product_type, src_id
FROM product_model
- WHERE id = ${pid} AND is_delete = 0) AS PM ON TRUE
- WHERE PMC.is_delete = 0
+ WHERE id = ${pid} AND is_delete = 0) AS b
+ WHERE a.is_delete = 0
AND (
- PM.product_type = 3
- AND (CASE WHEN pm.src_id IS NULL THEN node_type > 3 ELSE pid IN (src_id) END)
+ b.product_type = 3
+ AND a.node_type <> 3
OR (
- PM.product_type != 3
- AND (CASE WHEN pm.src_id IS NULL THEN pid IS NULL ELSE pid IN (src_id) END)
+ b.product_type = 4
+ AND a.node_type = 5
+ )
+ OR (
+ b.product_type = 2
+ AND a.node_type <> 4
)
)
- ORDER BY PMC.node_type,
- PMC.sort;
+ ORDER BY a.node_type,
+ a.sort;
+
+
</select>
<select id="getProductList" resultType="com.zt.life.modules.mainPart.basicInfo.model.TyProductModel">
select a.name, a.id
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
index afa52bf..91e3d92 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
@@ -46,7 +46,6 @@
select a.name, a.id
from product_model a
where a.is_delete = 0
- and a.product_type = 1
</select>
<select id="getProduct" resultType="com.zt.life.modules.mainPart.basicInfo.model.ProductImg">
SELECT a.operat_img as imgPath,
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/AssessItemDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/AssessItemDao.xml
new file mode 100644
index 0000000..8bd3cc0
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/AssessItemDao.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.mainPart.taskReliability.dao.AssessItemDao">
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml
new file mode 100644
index 0000000..c606ba3
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.mainPart.taskReliability.dao.ReliabilityAssessDao">
+ <select id="getProductPath" resultType="com.zt.life.modules.mainPart.basicInfo.model.XhProductModel">
+ select a.*
+ from product_model a
+ where a.IS_DELETE = 0
+ and a.ship_id = ${shipId}
+ </select>
+ <select id="getAssessDataList" resultType="com.zt.life.modules.mainPart.taskReliability.model.AssessItem">
+ select a.name,a.id
+ from assess_item a
+ where a.IS_DELETE = 0
+ and a.product_id = ${productId}
+ order by CREATE_DATE desc
+ </select>
+</mapper>
diff --git a/web/packages/components/zt-dialog/src/zt-dialog.vue b/web/packages/components/zt-dialog/src/zt-dialog.vue
index 513cb98..edfeda4 100644
--- a/web/packages/components/zt-dialog/src/zt-dialog.vue
+++ b/web/packages/components/zt-dialog/src/zt-dialog.vue
@@ -82,10 +82,13 @@
computed: {
_title() {
if (this.title) {
+ console.log(this.title,'this.title')
return this.title
- } else if (!this.editAble) {
+ } else if (this.isView) {
+ console.log(this.editAble,'this.editAble')
return this.$t('view')
} else if (this.$parent.dataForm !== undefined) {
+ console.log(this.$parent.dataForm,'this.$parent.dataForm')
return !this.$parent.dataForm.id ? this.$t('add') : this.$t('update')
}
}
diff --git a/web/src/views/modules/basicInfo/ProductImport.vue b/web/src/views/modules/basicInfo/ProductImport.vue
index 4f7a586..b1b4d38 100644
--- a/web/src/views/modules/basicInfo/ProductImport.vue
+++ b/web/src/views/modules/basicInfo/ProductImport.vue
@@ -1,5 +1,5 @@
<template>
- <zt-dialog ref="dialog" title="瀵煎叆浜у搧妯″瀷" :hasConfirm="false" :editAble="false" append-to-body>
+ <zt-dialog ref="dialog" title="瀵煎叆浜у搧缁撴瀯鏍�" :hasConfirm="false" :editAble="false" append-to-body>
<el-form>
<zt-form-item style="width:100%;" label="" prop="remark">
<el-upload
diff --git a/web/src/views/modules/basicInfo/SelectTyModel.vue b/web/src/views/modules/basicInfo/SelectTyModel.vue
index 9260214..4b1da4a 100644
--- a/web/src/views/modules/basicInfo/SelectTyModel.vue
+++ b/web/src/views/modules/basicInfo/SelectTyModel.vue
@@ -1,5 +1,5 @@
<template>
- <zt-dialog ref="dialog" column="2" title="閫夋嫨閫氱敤妯″瀷" append-to-body :editAble="false" :hasConfirm="true"
+ <zt-dialog ref="dialog" column="2" title="閫夋嫨閫氱敤浜у搧鑺傜偣" append-to-body :editAble="false" :hasConfirm="true"
@confirm="formSubmit">
<el-card shadow="never" class="aui-card--fill">
<div class="mod-tyProductModel-tyProductModel}">
diff --git a/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue b/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue
index cda8fca..ea08f92 100644
--- a/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue
+++ b/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue
@@ -1,7 +1,7 @@
<template>
- <zt-dialog ref="dialog" @confirm="formSubmit" append-to-body>
+ <zt-dialog ref="dialog" append-to-body @confirm="formSubmit" :hasConfirm="true">
<el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
- <zt-form-item label="涓婄骇绯荤粺" prop="pid">
+ <zt-form-item label="涓婄骇鑺傜偣" prop="pid">
<zt-select v-model="dataForm.pid" placeholder=" " :datas="productList" @input="selectDefaultProduct"/>
</zt-form-item>
<zt-form-item label="鍚嶇О" prop="name" rules="required">
@@ -69,7 +69,7 @@
this.getProductList()
},
selectDefaultProduct() {
- this.dataForm.nodeType = 1
+ this.dataForm.nodeType = 5
this.getDefaultImg(this.dataForm.nodeType)
},
// 鑾峰彇绯荤粺鍒楄〃
diff --git a/web/src/views/modules/basicInfo/TyProductModel.vue b/web/src/views/modules/basicInfo/TyProductModel.vue
index 7c0fc07..0023a00 100644
--- a/web/src/views/modules/basicInfo/TyProductModel.vue
+++ b/web/src/views/modules/basicInfo/TyProductModel.vue
@@ -35,7 +35,7 @@
</template>
</el-table-column>
<el-table-column prop="sort" label="鎺掑簭" align="center"/>
- <zt-table-column-handle :table="table" width="150" />
+ <zt-table-column-handle :table="table" width="150"/>
</el-table>
<!-- 寮圭獥, 鏂板 / 淇敼 -->
<add-or-update @refreshDataList="table.query"/>
diff --git a/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue b/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue
index 976797f..8812cec 100644
--- a/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue
+++ b/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue
@@ -1,7 +1,7 @@
<template>
- <zt-dialog ref="dialog" @confirm="formSubmit">
+ <zt-dialog ref="dialog" @confirm="formSubmit" :hasConfirm="true">
<el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
- <zt-form-item label="涓婄骇绯荤粺" prop="pid" v-if="isShow">
+ <zt-form-item label="涓婄骇鑺傜偣" prop="pid" v-if="isShow">
<zt-combo-tree v-model="dataForm.pid" :datas="productList"/>
</zt-form-item>
<zt-form-item label="鍚嶇О" prop="name" rules="required">
@@ -58,6 +58,7 @@
},
methods: {
init(id, params) {
+ this.getProductList()
if (params.shipId) {
this.dataForm.shipId = params.shipId
}
@@ -69,7 +70,6 @@
} else if (params.type === 'zt') {
this.dataForm.pid = params.pid
this.dataForm.productType = 2
- this.getProductList()
this.getDefaultImg(this.dataForm.productType)
} else {
this.dataForm.pid = params.pid
diff --git a/web/src/views/modules/basicInfo/XhProductModel.vue b/web/src/views/modules/basicInfo/XhProductModel.vue
index 047fc4a..54bb502 100644
--- a/web/src/views/modules/basicInfo/XhProductModel.vue
+++ b/web/src/views/modules/basicInfo/XhProductModel.vue
@@ -39,7 +39,7 @@
</template>
</el-table-column>
<el-table-column prop="sort" label="鎺掑簭" width="100px" align="center"/>
- <zt-table-column-handle :table="table" width="180px">
+ <zt-table-column-handle :table="table" width="180px" >
<template v-slot="{ row }">
<zt-table-button v-if="productType==='1'" size="small" type="primary"
@click="importData(row)">瀵煎叆
diff --git a/web/src/views/modules/taskReliability/ModelRbd-AddOrUpdate.vue b/web/src/views/modules/taskReliability/ModelRbd-AddOrUpdate.vue
index e1a0d6d..5bede61 100644
--- a/web/src/views/modules/taskReliability/ModelRbd-AddOrUpdate.vue
+++ b/web/src/views/modules/taskReliability/ModelRbd-AddOrUpdate.vue
@@ -1,5 +1,5 @@
<template>
- <zt-dialog ref="dialog" @confirm="formSubmit">
+ <zt-dialog ref="dialog" @confirm="formSubmit" :hasConfirm="true">
<el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
<zt-form-item label="妯″瀷鍚嶇О" prop="modelName" rules="required">
<el-input v-model="dataForm.modelName"></el-input>
diff --git a/web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue b/web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue
index 66d6522..30f806b 100644
--- a/web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue
+++ b/web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue
@@ -1,5 +1,5 @@
<template>
- <zt-dialog ref="dialog" @confirm="formSubmit">
+ <zt-dialog ref="dialog" @confirm="formSubmit" :hasConfirm="true">
<el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
<zt-form-item label="宸ュ喌鍚嶇О" prop="name" rules="required">
<el-input v-model="dataForm.name"></el-input>
diff --git a/web/src/views/modules/taskReliability/OperatCondit.vue b/web/src/views/modules/taskReliability/OperatCondit.vue
index e0f9934..f968740 100644
--- a/web/src/views/modules/taskReliability/OperatCondit.vue
+++ b/web/src/views/modules/taskReliability/OperatCondit.vue
@@ -13,7 +13,7 @@
v-slot="{ table }" :paging='false'>
<el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
<el-form-item>
- <zt-button v-if="dataForm.productId" type="query" @click="table.query()"/>
+ <!--<zt-button v-if="dataForm.productId" type="query" @click="table.query()"/>-->
<zt-button v-if="dataForm.productId" type="add" @click="add()"/>
<zt-button v-if="dataForm.productId" type="delete" @click="table.deleteHandle()"/>
</el-form-item>
diff --git a/web/src/views/modules/taskReliability/OperatConditModel.vue b/web/src/views/modules/taskReliability/OperatConditModel.vue
index 5d30233..78e4fd2 100644
--- a/web/src/views/modules/taskReliability/OperatConditModel.vue
+++ b/web/src/views/modules/taskReliability/OperatConditModel.vue
@@ -18,7 +18,7 @@
<template slot-scope="scope">
<el-select v-model="scope.row.modelId" :disabled="scope.row.isDisabled == 1" placeholder="璇烽�夋嫨"
style="width:100%" @change="modelChanged(scope.row)">
- <el-option on
+ <el-option
v-for="item in scope.row.modelList"
:key="item.id"
:label="item.modelName"
@@ -33,15 +33,15 @@
</template>
</el-table-column>
</el-table>
- <el-dialog v-dialogDrag title="妯″瀷璁捐" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">
- <RBDEditImg ref="rbdEditImg"></RBDEditImg>
+ <el-dialog v-dialogDrag :title="title" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">
+ <model-view ref="modelView"></model-view>
</el-dialog>
</zt-table-wraper>
</div>
</template>
<script>
- import RBDEditImg from './RBD-edit-img'
+ import ModelView from "./ModelView";
import cloneDeep from 'lodash/cloneDeep'
export default {
@@ -57,10 +57,11 @@
modelList: [],
dialogVisible2: false,
isChange: false,
+ title: ''
}
},
components: {
- RBDEditImg
+ ModelView
},
mounted() {
this.getModelNodes()
@@ -110,8 +111,8 @@
console.log(row.children, 'row.children')
for (let subRow of row.children) {
- console.log(subRow,'subRow')
- console.log(subRow.productId,'subRow.productId')
+ console.log(subRow, 'subRow')
+ console.log(subRow.productId, 'subRow.productId')
if (modelNodes.indexOf(subRow.productId) != -1) {
subRow.isDisabled = 0
if (subRow.modelList.length == 1) {
@@ -144,13 +145,13 @@
},
drawRBD(row) {
this.dialogVisible2 = true
+ this.title=row.modelName + '妯″瀷璁捐'
let param = {
id: row.modelId,
modelName: row.modelName,
- productId: row.productId
}
this.$nextTick(() => {
- this.$refs.rbdEditImg.init(param)
+ this.$refs.modelView.init(param)
})
}
}
diff --git a/web/src/views/modules/taskReliability/PlanMake.vue b/web/src/views/modules/taskReliability/PlanMake.vue
index d2bab9f..5a0e77c 100644
--- a/web/src/views/modules/taskReliability/PlanMake.vue
+++ b/web/src/views/modules/taskReliability/PlanMake.vue
@@ -3,12 +3,12 @@
<el-table ref="table" :data="tjDataList" height="230px" border>
<el-table-column align="center" prop="tjlx" label="鏌ヨ绫诲瀷">
</el-table-column>
- <el-table-column align="center" prop="specifiedValue" label="宸茬煡瑙勫畾鍊�">
+ <el-table-column align="center" prop="specifiedValue" label="妫�楠屼笂闄�">
<template v-slot="{ row }">
<el-input v-model="row.specifiedValue" style="width:100%" :disabled="row.tjlx==='涓嶉檺瀹氳瀹氬�兼煡璇�'"></el-input>
</template>
</el-table-column>
- <el-table-column align="center" prop="minAccepValue" label="鏈�浣庡彲鎺ュ彈鍊�">
+ <el-table-column align="center" prop="minAccepValue" label="妫�楠屼笅闄�">
<template v-slot="{ row }">
<el-input v-model="row.minAccepValue" style="width:100%"></el-input>
</template>
@@ -37,7 +37,7 @@
</el-table-column>
<el-table-column align="center" width="100" label="鎿嶄綔">
<template v-slot="{ row }">
- <el-button type="primary" @click="check(row)">鏌ヨ</el-button>
+ <el-button type="primary" @click="check(row)">{{row.btnName}}</el-button>
</template>
</el-table-column>
</el-table>
@@ -47,7 +47,7 @@
</el-table-column>
<el-table-column align="center" prop="totalTestTime" label="鎬昏瘯楠屾椂闂�(h)">
</el-table-column>
- <el-table-column v-if="isShow" align="center" prop="number" label="瑙勫畾鍊�">
+ <el-table-column v-if="isShow" align="center" prop="specifiedValue" label="妫�楠屼笂闄�">
</el-table-column>
<el-table-column align="center" prop="productionRiskReal" label="鐢熶骇鏂归闄╁疄闄呭��(%)">
</el-table-column>
@@ -69,6 +69,7 @@
isShow: false,
tjDataList: [{
tjlx: '鎸夐闄╁悕涔夊�兼煡璇�',
+ btnName: '鏌ヨ涓�',
specifiedValue: null,
minAccepValue: null,
productionRisk: null,
@@ -77,19 +78,21 @@
},
{
tjlx: '涓嶉檺瀹氱敓浜ф柟椋庨櫓鏌ヨ',
+ btnName: '鏌ヨ浜�',
specifiedValue: null,
minAccepValue: null,
productionRisk: null,
userRisk: null,
- showFailureTime: null
+ showFailureTime: 10
},
{
tjlx: '涓嶉檺瀹氳瀹氬�兼煡璇�',
+ btnName: '鏌ヨ涓�',
specifiedValue: null,
minAccepValue: null,
productionRisk: null,
userRisk: null,
- showFailureTime: null
+ showFailureTime: 10
}
],
riskList: [
@@ -161,6 +164,8 @@
this.dataList = res.data
if (row.tjlx === "涓嶉檺瀹氳瀹氬�兼煡璇�") {
this.isShow = true
+ }else{
+ this.isShow = false
}
}
}
diff --git a/web/src/views/modules/taskReliability/ReliabilityAssess.vue b/web/src/views/modules/taskReliability/ReliabilityAssess.vue
new file mode 100644
index 0000000..78ac8bb
--- /dev/null
+++ b/web/src/views/modules/taskReliability/ReliabilityAssess.vue
@@ -0,0 +1,116 @@
+<template>
+ <div>
+ <div class="mod-baseReliability-paramDataBasic fa-card-a" style="margin-left: 5px;">
+ <zt-table-wraper :defaultNotQuery='true' ref="tableObj" query-url="/taskReliability/ReliabilityAssess/page"
+ v-slot="{ table }" :paging='false'>
+ <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="taskModelId">
+ <zt-select v-model="dataForm.itemId" :datas="assessDataList" @change="onAssessDataSelected"/>
+ </zt-form-item>
+ <zt-form-item label="缃俊搴�" prop="confidence">
+ <el-input v-model="dataForm.confidence" placeholder="缃俊搴�" clearable></el-input>
+ </zt-form-item>
+ <el-button type="primary">璇勫畾</el-button>
+ <el-button type="primary" @click="add()">鏂板璇勫畾鏁版嵁</el-button>
+ </el-form>
+ <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
+ row-key="id"
+ :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+ :header-cell-style="{'text-align':'center'}"
+ border @selection-change="table.selectionChangeHandle">
+ <el-table-column prop="name" label="鍚嶇О"/>
+ <el-table-column prop="runTimes" label="杩愯鏃堕暱" align="right">
+ </el-table-column>
+ <el-table-column prop="runNum" label="杩愯娆℃暟" align="right">
+ </el-table-column>
+ <el-table-column prop="failNum" label="澶辫触娆℃暟" align="right">
+ </el-table-column>
+ <el-table-column prop="assessResult" label="璇勫畾缁撴灉" align="right">
+ </el-table-column>
+ </el-table>
+ <add-or-update @refreshDataList="refreshData" ref="AddOrUpdate"/>
+ </zt-table-wraper>
+ </div>
+ </div>
+</template>
+<script>
+ import AddOrUpdate from './RelisbilityAssess-AddOrUpdate'
+
+ export default {
+ data() {
+ return {
+ dataForm: {
+ productId:'',
+ shipName:'',
+ taskModelId:'',
+ itemId:'',
+ name:'',
+ runTimes:'',
+ failNum:'',
+ runNum:'',
+ assessResult:'',
+ confidence:'',
+ },
+ productList: [],
+ taskList: [],
+ assessDataList: [],
+ }
+ },
+ components: {
+ AddOrUpdate
+ },
+ mounted() {
+ this.getProductList()
+ },
+ methods: {
+ // 鑾峰彇淇℃伅
+ onProductSelected(data) {
+ console.log(data, ' onProductSelected(data)')
+ this.dataForm.productId = data.id
+ this.dataForm.shipName = data.name
+ this.getTaskList()
+ this.getAssessDataList();
+ },
+ onTaskSelected(data) {
+ console.log(data, ' onProductSelected(data)')
+ this.dataForm.taskModelId = data.id
+ },
+ onAssessDataSelected(data){
+ this.dataForm.itemId = data.id
+ },
+ refreshData(){
+ this.getAssessDataList();
+ },
+ async getAssessDataList() {
+ let params={
+ productId:this.dataForm.productId
+ }
+ let res = await this.$http.get('/taskReliability/ReliabilityAssess/getAssessDataList',{params: params})
+ this.assessDataList = res.data
+ this.dataForm.itemId = this.assessDataList[0].id
+ },
+ add(){
+ this.$refs.AddOrUpdate.$refs.dialog.init(null, {productId: this.dataForm.productId,shipName: this.dataForm.shipName})
+ },
+ async getProductList() {
+ let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
+ this.productList = res.data
+ this.onProductSelected(this.productList[0])
+ },
+ async getTaskList() {
+ let params = {
+ productId: this.dataForm.productId
+ }
+ let res = await this.$http.get('/taskReliability/Task/getTaskList', {params: params})
+ console.log(res.data)
+ this.taskList = res.data
+ },
+ }
+ }
+</script>
diff --git a/web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue b/web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue
new file mode 100644
index 0000000..fd6debc
--- /dev/null
+++ b/web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue
@@ -0,0 +1,141 @@
+<template>
+ <zt-dialog ref="dialog" @confirm="formSubmit" :hasConfirm="true">
+ <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
+ <zt-form-item label="鎬讳綋" prop="shipName">
+ <el-input v-model="dataForm.shipName"></el-input>
+ </zt-form-item>
+ <zt-form-item label="鍚嶇О" prop="name" rules="required">
+ <el-input v-model="dataForm.name"></el-input>
+ </zt-form-item>
+ <zt-form-item style="width:100%;" label="">
+ <el-upload
+ style="width: 600px"
+ class="upload-demo"
+ ref="upload"
+ :action="apiURL"
+ :on-success="succ"
+ :on-exceed="uploadExceed"
+ :on-error="err"
+ :limit="1"
+ :file-list="fileList"
+ :auto-upload="false">
+ <div style="display:inline-block;font-size: 14px;" class="el-upload__tip"> 鍙兘涓婁紶.xlsx鎴�.xls鐨勬枃浠讹紝涓斾笉瓒呰繃2G</div>
+ <el-button slot="trigger" size="small" type="primary" style="font-size: 15px">閫夊彇鏂囦欢</el-button>
+ <el-button type="primary" size="small" style="margin-left:20px;font-size: 15px" @click="submitUpload()">鎻� 浜�</el-button>
+ </el-upload>
+ </zt-form-item>
+ <el-progress :text-inside="true" :stroke-width="30" :percentage="progress.speed"></el-progress>
+ </el-form>
+ </zt-dialog>
+</template>
+
+<script>
+ import {guid} from "../../../commonJS/common";
+ import qs from "qs";
+ import Cookies from "js-cookie";
+
+ export default {
+ data() {
+ return {
+ dataForm: {
+ name:'',
+ productId:''
+ },
+ progress: {
+ id: null,
+ speed: 0,
+ text: '',
+ start: false,
+ timer: null
+ },
+ start: 0,
+ fileType: ['xlsx', 'xls'],
+ fileList:[],
+ apiURL:'',
+ itemId:''
+ }
+ },
+ methods: {
+ async init(id, param) {
+ let result = await this.$http.get(`/basicInfo/TyProductModel/getUuid`)
+ this.dataForm.itemId = result.data
+ this.dataForm.productId = param.productId
+ this.dataForm.shipName = param.shipName
+ this.fileList = []
+ this.resultData = []
+ this.progress.id = guid()
+ let params = qs.stringify({
+ token: Cookies.get('token'),
+ progressId: this.progress.id,
+ pid: this.dataForm.productId,
+ itemId: this.dataForm.itemId,
+ })
+ this.apiURL = `${window.SITE_CONFIG['apiURL']}/taskReliability/ReliabilityAssess/importProductExcel?${params}`
+ },
+ uploadExceed(files, fileList) {
+ this.$set(fileList[0], 'raw', files[0])
+ this.$set(fileList[0], 'name', files[0].name)
+ this.$refs.upload.clearFiles()
+ this.$refs.upload.handleStart(files[0])
+ },
+ succ(res, file, fileList) {
+ clearInterval(this.timer)
+ this.dataForm.speed = 100
+ this.$refs.upload.clearFiles()
+ this.fileList = []
+ this.$emit('refreshDataList')
+ },
+ err(res, file, fileList) {
+ clearInterval(this.timer)
+ this.dataForm.speed = 0
+ this.$tip.error(res.msg)
+ },
+ submitUpload() {
+ this.dataForm.speed = 0
+ this.progress.speed = 0
+ this.progress.start = true
+ this.progress.timer = window.setInterval(this.getStroke, 1000)
+ this.uploadQuery()
+ },
+ uploadQuery() {
+ if (this.$refs.upload.uploadFiles.length === 1) {
+ this.start = 1
+ this.$refs.upload.submit()
+ } else {
+ this.$tip.error('璇烽�夋嫨闇�瑕佷笂浼犵殑.xlsx鎴�.xls鐨勬枃浠�')
+ }
+ },
+ getStroke() {
+ //console.log('getStroke:',this.progress.start,"锛�",this.progress.speed)
+ if (this.progress.start && this.progress.speed < 100) {
+ //console.log('getStroke2')
+ this.$http.get(`sys/common/stroke?progressId=${this.progress.id}`).then(
+ res => {
+ if (res.success) {
+ this.progress.speed = parseFloat(res.data.speed)
+ this.progress.text = res.data.text
+ }
+ }
+ )
+ } else {
+ clearInterval(this.timer)
+ }
+ },
+ // 琛ㄥ崟鎻愪氦
+ async formSubmit() {
+ let param={
+ id:this.dataForm.itemId,
+ name:this.dataForm.name,
+ productId:this.dataForm.productId
+ }
+ let res = await this.$http.post('/taskReliability/ReliabilityAssess/add', param)
+ if (res.success) {
+ await this.$tip.success()
+ this.$refs.dialog.close()
+ this.$emit('refreshDataList')
+ }
+ }
+
+ }
+ }
+</script>
diff --git a/web/src/views/modules/taskReliability/SchemeCompar.vue b/web/src/views/modules/taskReliability/SchemeCompar.vue
index ffada1d..350ca76 100644
--- a/web/src/views/modules/taskReliability/SchemeCompar.vue
+++ b/web/src/views/modules/taskReliability/SchemeCompar.vue
@@ -64,7 +64,7 @@
</div>
</div>
<div :disabled="isShow">
- <div class="echart" id="myChart" :style="myChartStyle"></div>
+ <div class="echart" id="SchemeCompar" :style="myChartStyle"></div>
</div>
</div>
</el-col>
@@ -191,7 +191,7 @@
},
series: this.seriesList
};
- this.myChart = echart.init(document.getElementById("myChart"));
+ this.myChart = echart.init(document.getElementById("SchemeCompar"));
console.log(this.option, ' this.option ')
this.myChart.setOption(this.option);
//闅忕潃灞忓箷澶у皬璋冭妭鍥捐〃
diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue
index 692e6b2..d312e46 100644
--- a/web/src/views/modules/taskReliability/SimulatAssess.vue
+++ b/web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -118,12 +118,9 @@
this.taskList = res.data
},
getStroke() {
- //console.log('getStroke:',this.progress.start,"锛�",this.progress.speed)
if (this.percentage < 100) {
- //console.log('getStroke2')
this.$http.get(`/taskReliability/SimulatAssess/getCalcProgress?taskId=${this.dataForm.id}`).then(
res => {
- // console.log(res.data, 'res.data')
if (res.data) {
this.percentage = parseFloat(res.data)
}
diff --git a/web/src/views/modules/taskReliability/Task-AddOrUpdate.vue b/web/src/views/modules/taskReliability/Task-AddOrUpdate.vue
index a7ead35..762cc36 100644
--- a/web/src/views/modules/taskReliability/Task-AddOrUpdate.vue
+++ b/web/src/views/modules/taskReliability/Task-AddOrUpdate.vue
@@ -1,5 +1,5 @@
<template>
- <zt-dialog ref="dialog" @confirm="formSubmit">
+ <zt-dialog ref="dialog" @confirm="formSubmit" :hasConfirm="true">
<el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
<zt-form-item label="浠诲姟鍚嶇О" prop="taskName" rules="required">
<el-input v-model="dataForm.taskName"></el-input>
diff --git a/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue b/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
index 243e337..4e0a0be 100644
--- a/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
+++ b/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
@@ -1,5 +1,5 @@
<template>
- <zt-dialog ref="dialog" @confirm="formSubmit">
+ <zt-dialog ref="dialog" @confirm="formSubmit" :hasConfirm="true">
<el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
<zt-form-item label="浠诲姟闃舵鍚嶇О" prop="phaseName" rules="required">
<el-input v-model="dataForm.phaseName"></el-input>
diff --git a/web/src/views/modules/taskReliability/TaskPhase.vue b/web/src/views/modules/taskReliability/TaskPhase.vue
index b2b9a27..00c2ab5 100644
--- a/web/src/views/modules/taskReliability/TaskPhase.vue
+++ b/web/src/views/modules/taskReliability/TaskPhase.vue
@@ -85,7 +85,6 @@
console.log(this.time)
},
add() {
- console.log(this.time)
this.$refs.AddOrUpdate.$refs.dialog.init(null, {
taskId: this.dataForm.taskId,
productId: this.dataForm.productId,
--
Gitblit v1.9.1