From c2f855eb59e9d19d4957bc4cb51e3ca63d4ce4c4 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 16 七月 2024 14:51:24 +0800
Subject: [PATCH] 修改
---
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/controller/ParamDataBasicController.java | 97 +++++++++++++
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java | 8 -
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java | 2
web/src/views/modules/basicInfo/XhProductModel.vue | 1
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/ParamData.java | 13 +
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/service/ParamDataBasicService.java | 49 +++++++
modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml | 91 +++++++++++++
modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml | 5
web/src/views/modules/baseReliability/ParamDataBasic.vue | 120 +++++++++++++++++
web/src/views/modules/basicInfo/ParamData.vue | 4
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/dao/ParamDataBasicDao.java | 26 +++
11 files changed, 403 insertions(+), 13 deletions(-)
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/controller/ParamDataBasicController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/controller/ParamDataBasicController.java
new file mode 100644
index 0000000..3886d12
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/controller/ParamDataBasicController.java
@@ -0,0 +1,97 @@
+package com.zt.life.modules.mainPart.baseReliability.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+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.modules.mainPart.baseReliability.service.ParamDataBasicService;
+import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
+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 java.util.List;
+
+
+/**
+ * param_data_basic
+ *
+ * @author zt generator
+ * @since 1.0.0 2024-07-11
+ */
+@RestController
+@RequestMapping("/baseReliability/ParamDataBasic/")
+@Api(tags="param_data_basic")
+public class ParamDataBasicController {
+ @Autowired
+ private ParamDataBasicService paramDataBasicService;
+
+ @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),
+ @ApiImplicitParam(name = "shipId", value = "鑸笽D", dataType = Constant.QT.LONG),
+ @ApiImplicitParam(name = "isRecal", value = "鏄惁閲嶆柊璁$畻", dataType = Constant.QT.INT),
+ })
+ public Result<List<ParamData>> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+ if ((Integer) queryFilter.getParams().get("isRecal")==1){
+ Long shipId =(Long) queryFilter.getParams().get("shipId");
+ paramDataBasicService.compute(shipId);
+ }
+ return Result.ok(paramDataBasicService.page(queryFilter));
+ }
+
+ @GetMapping("{id}")
+ @ApiOperation("淇℃伅")
+ public Result<ParamData> get(@PathVariable("id") Long id){
+ ParamData data = paramDataBasicService.get(id);
+
+ return Result.ok(data);
+ }
+
+ @PostMapping
+ @ApiOperation("鏂板")
+ @LogOperation("鏂板")
+ public Result insert(@RequestBody ParamData paramDataBasic){
+ //鏁堥獙鏁版嵁
+ ValidatorUtils.validateEntity(paramDataBasic, AddGroup.class, DefaultGroup.class);
+ paramDataBasicService.insert(paramDataBasic);
+
+ return Result.ok();
+ }
+
+ @PutMapping
+ @ApiOperation("淇敼")
+ @LogOperation("淇敼")
+ public Result update(@RequestBody ParamData paramDataBasic){
+ //鏁堥獙鏁版嵁
+ ValidatorUtils.validateEntity(paramDataBasic, UpdateGroup.class, DefaultGroup.class);
+ paramDataBasicService.update(paramDataBasic);
+
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @ApiOperation("鍒犻櫎")
+ @LogOperation("鍒犻櫎")
+ public Result delete(@RequestBody Long[] ids){
+ //鏁堥獙鏁版嵁
+ AssertUtils.isArrayEmpty(ids, "id");
+ paramDataBasicService.delete(ids);
+
+ return Result.ok();
+ }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/dao/ParamDataBasicDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/dao/ParamDataBasicDao.java
new file mode 100644
index 0000000..668bcf3
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/dao/ParamDataBasicDao.java
@@ -0,0 +1,26 @@
+package com.zt.life.modules.mainPart.baseReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * param_data_basic
+ *
+ * @author zt generator
+ * @since 1.0.0 2024-07-11
+ */
+@Mapper
+public interface ParamDataBasicDao extends BaseDao<ParamData> {
+
+ List<ParamData> getAI(Map<String, Object> params);
+
+ void compute(Long shipId,Integer productType);
+
+ void compute2(Long shipId);
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/service/ParamDataBasicService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/service/ParamDataBasicService.java
new file mode 100644
index 0000000..76647fb
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/baseReliability/service/ParamDataBasicService.java
@@ -0,0 +1,49 @@
+package com.zt.life.modules.mainPart.baseReliability.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.common.utils.TreeUtils;
+import com.zt.common.utils.TreeUtils2;
+import com.zt.life.modules.mainPart.baseReliability.dao.ParamDataBasicDao;
+import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+
+import java.util.List;
+
+
+/**
+ * param_data_basic
+ *
+ * @author zt generator
+ * @since 1.0.0 2024-07-11
+ */
+@Service
+public class ParamDataBasicService extends BaseService<ParamDataBasicDao, ParamData> {
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param queryFilter
+ * @return
+ */
+ public List<ParamData> page(QueryFilter queryFilter) {
+ List<ParamData> list = baseDao.getAI(queryFilter.getQueryParams());
+ return TreeUtils.build(list);
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param ids
+ */
+ public void delete(Long[] ids) {
+ super.deleteLogic(ids);
+ }
+
+ public void compute(Long shipId) {
+ baseDao.compute(shipId,4);
+ baseDao.compute(shipId,3);
+ baseDao.compute(shipId,2);
+ baseDao.compute2(shipId);
+ }
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java
index fa7a623..bc3297c 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java
@@ -24,4 +24,6 @@
List<ParamData> getByShipId(Long shipId);
void deleteByShipId(Long shipId);
+
+ void recalculate(Long shipId);
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/ParamData.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/ParamData.java
index ca143f3..31cfd74 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/ParamData.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/ParamData.java
@@ -3,10 +3,13 @@
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.common.entity.TreeNode2;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -18,7 +21,7 @@
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("param_data")
-public class ParamData extends BusiEntity {
+public class ParamData extends BusiEntity implements TreeNode<ParamData> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "婧怚D")
@@ -106,6 +109,8 @@
@ApiModelProperty(value = "杩愯鏃堕棿")
private Double runTime;
+ private Double ai;
+
@TableField(exist = false)
private Long productIdInit;
@@ -114,4 +119,10 @@
@TableField(exist = false)
private List<ParamData> dataThreeList;
+ @TableField(exist = false)
+ private Long pid;
+
+ @ApiModelProperty(value = "瀛愯妭鐐�")
+ @TableField(exist = false)
+ private List<ParamData> children = new ArrayList<>();
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
index 61a0a01..31d1a1e 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
@@ -228,14 +228,6 @@
com.zt.life.util.ImportUtil.updateErrMap(errMap, "娌℃湁濉啓鏄惁鍙傚姞璁$畻", sheetName, row1);
continue;
}
- if (StringUtils.isEmpty(basicMtbfRegulate)) {
- com.zt.life.util.ImportUtil.updateErrMap(errMap, "娌℃湁濉啓mtbf", sheetName, row1);
- continue;
- }
- if (StringUtils.isEmpty(taskMtbcfRegulate)) {
- com.zt.life.util.ImportUtil.updateErrMap(errMap, "娌℃湁濉啓mtbcf", sheetName, row1);
- continue;
- }
if (StringUtils.isEmpty(repairable)) {
com.zt.life.util.ImportUtil.updateErrMap(errMap, "娌℃湁濉啓鏄惁鍙淮淇�", sheetName, row1);
continue;
diff --git a/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml
new file mode 100644
index 0000000..fe5ab9c
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml
@@ -0,0 +1,91 @@
+<?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.baseReliability.dao.ParamDataBasicDao">
+ <update id="compute">
+ update param_data f,
+ (
+ SELECT
+ c.*,
+ CASE
+ WHEN WeightedFailure IS NOT NULL
+ AND WeightedFailure > 0 THEN
+ 1 / WeightedFailure ELSE 0
+ END AS basic_mtbf_regulate,
+ CASE
+ WHEN WeightedFailure IS NOT NULL
+ AND WeightedFailure > 0 THEN
+ WeightedMTTR / WeightedFailure ELSE 0
+ END AS repair_mttcr
+ FROM
+ (
+ SELECT
+ c.id,
+ c.name,
+ sum(
+ CASE
+ WHEN b.product_type < 5 THEN
+ 1 * 1 / basic_mtbf_regulate
+ WHEN a.reliab_distrib_type = 1 THEN
+ 1 * a.basic_mtbf_operating_ratio / a.basic_mtbf_regulate
+ WHEN a.reliab_distrib_type = 2 THEN
+ 1 * a.basic_mtbf_operating_ratio / a.basic_mtbf_regul_succ_rate
+ ELSE 0 END
+ ) AS WeightedFailure,
+ sum(
+ CASE
+ WHEN b.product_type < 5 THEN
+ 1 * 1 * a.repair_mttcr / a.basic_mtbf_regulate
+ WHEN a.repairable = 1 and a.reliab_distrib_type = 1 THEN
+ 1 * a.basic_mtbf_operating_ratio * a.repair_mttcr / a.basic_mtbf_regulate
+ WHEN a.repairable = 1 and a.reliab_distrib_type = 2 THEN
+ 1 * a.basic_mtbf_operating_ratio * a.repair_mttcr / a.basic_mtbf_regul_succ_rate
+ ELSE 0
+ END
+ ) AS WeightedMttr
+ FROM
+ param_data a,
+ product_model b,
+ product_model c
+ WHERE 1 = 1
+ and c.ship_id = ${shipId} and c.product_type = ${productType} and c.is_delete = 0
+ and b.ship_id = ${shipId} and b.pid = c.id and b.is_delete = 0
+ and a.IS_DELETE = 0 and a.product_id = b.id
+ AND (b.product_type =5 AND a.basic_join_compute = 1 || b.product_type < 5)
+ AND ((a.reliab_distrib_type =1
+ AND a.basic_mtbf_regulate > 0
+ )
+ OR ( a.reliab_distrib_type = 2
+ AND a.basic_mtbf_regul_succ_rate > 0
+ ))
+
+ GROUP BY c.id,c.name
+ ) c
+ )d set f.basic_mtbf_regulate = d.basic_mtbf_regulate,
+ f.repair_mttcr = d.repair_mttcr
+ where f.product_id = d.id;
+ </update>
+
+ <update id="compute2">
+ UPDATE param_data a, product_model b
+ SET ai = basic_mtbf_regulate / (basic_mtbf_regulate + repair_mttcr)
+ where b.ship_id = ${shipId}
+ </update>
+
+ <select id="getAI" resultType="com.zt.life.modules.mainPart.basicInfo.model.ParamData">
+ SELECT a.NAME,
+ a.id,
+ a.pid,
+ b.ai,
+ b.basic_mtbf_regulate,
+ b.repair_mttcr,
+ b.basic_mtbf_operating_ratio
+ FROM product_model a
+ LEFT JOIN param_data b ON b.product_id = a.id and b.is_delete = 0
+ where a.is_delete = 0
+ and a.ship_id = ${shipId}
+ or a.id =${shipId}
+ ORDER BY a.product_type, a.sort
+ </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml
index 78c92b2..02d292a 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml
@@ -2,8 +2,11 @@
<!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.basicInfo.dao.ParamDataDao">
+
<delete id="deleteByShipId">
- delete from param_data where ship_id =${shipId}
+ delete
+ from param_data
+ where ship_id = ${shipId}
</delete>
<select id="getList" resultType="com.zt.life.modules.mainPart.basicInfo.model.ParamData">
diff --git a/web/src/views/modules/baseReliability/ParamDataBasic.vue b/web/src/views/modules/baseReliability/ParamDataBasic.vue
new file mode 100644
index 0000000..36aa965
--- /dev/null
+++ b/web/src/views/modules/baseReliability/ParamDataBasic.vue
@@ -0,0 +1,120 @@
+<template>
+ <div>
+ <el-row :gutter="5">
+ <el-col :span="5">
+ <div class="fa-card-a" style="margin-right: 5px;height: calc(100vh - 123px)">
+ <product-model-tree ref="modelTree" @on-selected="onProductSelected" @on-default="onDefault" showXdy="false"
+ basic="3"/>
+ </div>
+ </el-col>
+ <el-col :span="19">
+ <div class="mod-baseReliability-paramDataBasic fa-card-a" style="margin-left: 5px;">
+ <zt-table-wraper :defaultNotQuery='true' ref="tableObj" query-url="/baseReliability/ParamDataBasic/page"
+ delete-url="/baseReliability/ParamDataBasic"
+ v-slot="{ table }" :paging='false'>
+ <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+ <el-form-item>
+ <!--<zt-button type="query" @click="table.query()"/>
+ <zt-button type="add" perm="baseReliability:add" @click="table.editHandle()"/>
+ <zt-button type="delete" perm="baseReliability:delete" @click="table.deleteHandle()"/>-->
+ <zt-button type="primary" @click="recalculate()">閲嶆柊璁$畻</zt-button>
+ </el-form-item>
+ </el-form>
+ <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
+ row-key="id"
+ :expand-row-keys="defultKey"
+ :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+ border @selection-change="table.selectionChangeHandle">
+ <!--<el-table-column type="selection" width="40"/>-->
+ <el-table-column prop="name" label="鍚嶇О"/>
+ <el-table-column prop="basicMtbfRegulate" label="MTBF" align="right">
+ <template slot-scope="scope">
+ <span>{{ scope.row.basicMtbfRegulate | keepNumber }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="repairMttcr" label="MTTR" align="right">
+ <template slot-scope="scope">
+ <span>{{ scope.row.repairMttcr | keepNumber }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="basicMtbfOperatingRatio" label="杩愯姣�" align="right">
+ <template slot-scope="scope">
+ <span>{{ scope.row.basicMtbfOperatingRatio | keepNumber }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="ai" label="鍙敤搴�" align="right">
+ <template slot-scope="scope">
+ <span>{{ scope.row.ai | keepNumber }}</span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </zt-table-wraper>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+</template>
+<script>
+ import ProductModelTree from "../basicInfo/ProductModelTree";
+
+ export default {
+ data() {
+ return {
+ dataForm: {
+ shipId: '',
+ isRecal: 0,
+ basicMtbfRegulate: '',
+ repairMttcr: '',
+ basicMtbfOperatingRatio: '',
+ ai: ''
+ },
+ defultKey: []
+ }
+ },
+ components: {
+ ProductModelTree,
+ },
+ filters: {
+ keepNumber(value) { //杩囨护鍣ㄤ繚鐣�4涓哄皬鏁�
+ const numM = Number(value).toFixed(5);
+ if (numM === "NaN") {
+ return "0.0000";
+ }
+ if (numM === '0.0000' && value > 0) {
+
+ }
+ const realVal = numM.substring(0, numM.length - 1);
+ return realVal;
+ },
+ },
+ methods: {
+ onProductSelected(data) {
+ this.defultKey = []
+ this.dataForm.shipId = data.id
+ this.dataForm.productType = data.productType
+ console.log(data, 'onProductSelected(data)')
+ this.$nextTick(() => {
+ this.$refs.tableObj.query()
+ this.setDefultKey()
+ })
+ },
+ setDefultKey() {
+ console.log(this.$refs.tableObj.dataList[0].id,'this.$refs.tableObj.dataList[0].id')
+ this.defultKey.push(this.dataForm.shipId + "")
+ },
+ onDefault(defaultId) {
+ this.dataForm.shipId = defaultId
+ this.$nextTick(() => {
+ this.$refs.tableObj.query()
+ this.setDefultKey()
+ })
+ },
+ async recalculate() {
+ this.dataForm.isRecal = 1
+ this.$nextTick(() => {
+ this.$refs.tableObj.query()
+ })
+ },
+ }
+ }
+</script>
diff --git a/web/src/views/modules/basicInfo/ParamData.vue b/web/src/views/modules/basicInfo/ParamData.vue
index 59f7a63..78efdca 100644
--- a/web/src/views/modules/basicInfo/ParamData.vue
+++ b/web/src/views/modules/basicInfo/ParamData.vue
@@ -1,12 +1,12 @@
<template>
<div>
<el-row :gutter="5">
- <el-col :span="4">
+ <el-col :span="5">
<div class="fa-card-a" style="margin-right: 5px;height: calc(100vh - 123px)">
<product-model-tree @on-selected="onProductSelected" showXdy="false"/>
</div>
</el-col>
- <el-col :span="20">
+ <el-col :span="19">
<div class="mod-basicInfo-paramData fa-card-a" style="margin-left: 5px;">
<zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/basicInfo/ParamData/page"
delete-url="/basicInfo/ParamData/"
diff --git a/web/src/views/modules/basicInfo/XhProductModel.vue b/web/src/views/modules/basicInfo/XhProductModel.vue
index 2909167..1ef5428 100644
--- a/web/src/views/modules/basicInfo/XhProductModel.vue
+++ b/web/src/views/modules/basicInfo/XhProductModel.vue
@@ -85,7 +85,6 @@
methods: {
add() {
this.dataForm.type = this.productType
- alert(this.dataForm.type )
if (this.dataForm.type !== '1') {
if (this.dataForm.type !== '3') {
this.dataForm.type = this.dataForm.type - 1
--
Gitblit v1.9.1