From 21dff46677c9172c98d38192bc2982a8764f65fc Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 26 三月 2024 08:37:15 +0800
Subject: [PATCH] 修改

---
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java       |   40 ++++
 zt/core/src/main/java/com/zt/core/config/shiro/ShiroConfig.java                                                     |    1 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java |  117 +++++++++++++
 modules/mainPart/src/main/resources/mapper/taskReliability/SimulatAssessDao.xml                                     |   20 ++
 web/src/views/modules/taskReliability/SimulatData.vue                                                               |   64 +++++++
 web/src/views/modules/taskReliability/SimulatAssess.vue                                                             |  153 +++++++++++++++++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/SimulatAssessDao.java               |   23 ++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java                |   54 ++++++
 web/src/views/modules/taskReliability/SimulatCurve.vue                                                              |   47 +++++
 9 files changed, 519 insertions(+), 0 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java
new file mode 100644
index 0000000..88d71d9
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java
@@ -0,0 +1,117 @@
+package com.zt.life.modules.mainPart.taskReliability.controller;
+
+
+import cn.hutool.http.HttpUtil;
+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.servlet.PageResult;
+import com.zt.common.utils.UUIDUtil;
+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.taskReliability.model.SimulatAssess;
+import com.zt.life.modules.mainPart.taskReliability.service.SimulatAssessService;
+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.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+
+
+/**
+ * simulat_assess
+ *
+ * @author zt generator
+ * @since 1.0.0 2024-03-20
+ */
+@RestController
+@RequestMapping("/taskReliability/SimulatAssess/")
+@Api(tags = "simulat_assess")
+public class SimulatAssessController {
+    @Autowired
+    private SimulatAssessService simulatAssessService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+            @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+            @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 PageResult<SimulatAssess> page(@ApiIgnore @QueryParam QueryFilter queryFilter) {
+
+        return PageResult.ok(simulatAssessService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<SimulatAssess> get(@PathVariable("id") Long id) {
+        SimulatAssess data = simulatAssessService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping("analyze")
+    public Result<Long> analyze(@RequestBody SimulatAssess simulatAssess) {
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(simulatAssess, AddGroup.class, DefaultGroup.class);
+        Long taskId = UUIDUtil.generateId();
+        Integer time = simulatAssess.getSamplPeriod();
+        Integer Frequency = simulatAssess.getSimulatFrequency();
+        HashMap<String, Object> paramMap = new HashMap<>();
+        paramMap.put("taskId", taskId);
+        paramMap.put("time", time);
+        paramMap.put("Frequency", Frequency);
+        paramMap.put("url", "http://localhost:8050/test-project//taskReliability/SimulatAssess/calculate");
+        String result1 = HttpUtil.get("http://localhost:8080/system/user/get", paramMap);
+
+        return Result.ok(taskId);
+    }
+
+    @GetMapping("calculate")
+    public Result calculate(Long taskId, String List, String code, String errorMsg) {
+        SimulatAssess simulatAssess = new SimulatAssess();
+        simulatAssess.setId(taskId);
+        simulatAssess.setCurveData(List);
+        simulatAssess.setCode(code);
+        simulatAssess.setErrorMsg(errorMsg);
+        simulatAssessService.insert(simulatAssess);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody SimulatAssess simulatAssess) {
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(simulatAssess, UpdateGroup.class, DefaultGroup.class);
+        simulatAssessService.update(simulatAssess);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids) {
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        simulatAssessService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/SimulatAssessDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/SimulatAssessDao.java
new file mode 100644
index 0000000..0e38413
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/SimulatAssessDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.mainPart.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.mainPart.taskReliability.model.SimulatAssess;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * simulat_assess
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-20
+ */
+@Mapper
+public interface SimulatAssessDao extends BaseDao<SimulatAssess> {
+
+    List<SimulatAssess> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
new file mode 100644
index 0000000..9b1e5b1
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
@@ -0,0 +1,54 @@
+package com.zt.life.modules.mainPart.taskReliability.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * simulat_assess
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("simulat_assess")
+public class SimulatAssess extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "涓婄骇ID")
+	private Long pid;
+
+	@ApiModelProperty(value = "浜у搧鑺傜偣ID")
+	private Long productId;
+
+	@ApiModelProperty(value = "鎬讳綋浠诲姟")
+	private String task;
+
+	@ApiModelProperty(value = "鏁版嵁绫诲瀷")
+	private Integer dataType;
+
+	@ApiModelProperty(value = "鏄惁鍙慨")
+	private Integer isRepair;
+
+	@ApiModelProperty(value = "閲囨牱鍛ㄦ湡")
+	private Integer samplPeriod;
+
+	@ApiModelProperty(value = "浠跨湡娆℃暟")
+	private Integer simulatFrequency;
+
+	@ApiModelProperty(value = "")
+	private Integer status;
+
+	private String code;
+
+	private String errorMsg;
+	private String curveData;
+
+}
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
new file mode 100644
index 0000000..5d180b2
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java
@@ -0,0 +1,40 @@
+package com.zt.life.modules.mainPart.taskReliability.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.mainPart.taskReliability.dao.SimulatAssessDao;
+import com.zt.life.modules.mainPart.taskReliability.model.SimulatAssess;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * simulat_assess
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-20
+ */
+@Service
+public class SimulatAssessService  extends BaseService<SimulatAssessDao, SimulatAssess> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<SimulatAssess> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+}
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/SimulatAssessDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/SimulatAssessDao.xml
new file mode 100644
index 0000000..06f1274
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/SimulatAssessDao.xml
@@ -0,0 +1,20 @@
+<?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.SimulatAssessDao">
+
+    <select id="getList" resultType="com.zt.life.modules.mainPart.taskReliability.model.SimulatAssess">
+        select a.*
+        from simulat_assess a
+        <where>
+            a.is_delete = 0
+            <if test="whereSql!=null">
+                and ${whereSql}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+
+</mapper>
diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue
new file mode 100644
index 0000000..e9a7e3e
--- /dev/null
+++ b/web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -0,0 +1,153 @@
+<template>
+  <div>
+    <el-row :gutter="10">
+      <el-col :span="6">
+        <div class="fa-card-a">
+          <div class="mod-taskReliability-simulatAssess">
+            <el-form :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="task">
+                <zt-select v-model="dataForm.task" :datas="taskList" @change="onTaskSelected"/>
+              </zt-form-item>
+              <zt-form-item label="鏁版嵁绫诲瀷" prop="dataType">
+                <zt-dict v-model="dataForm.dataType" dict="dataType"></zt-dict>
+              </zt-form-item>
+              <zt-form-item label="鏄惁鍙慨" prop="isRepair">
+                <zt-dict v-model="dataForm.isRepair" dict="is_or_not"></zt-dict>
+              </zt-form-item>
+              <zt-form-item label="閲囨牱鍛ㄦ湡" prop="samplPeriod">
+                <el-input type="number" :min="1" v-model="dataForm.samplPeriod">
+                  <template slot="append">鍒嗛挓</template>
+                </el-input>
+              </zt-form-item>
+              <zt-form-item label="浠跨湡娆℃暟" prop="simulatFrequency">
+                <el-input type="number" :min="1" v-model="dataForm.simulatFrequency">
+                  <template slot="append">娆℃暟</template>
+                </el-input>
+              </zt-form-item>
+              <zt-form-item>
+                <zt-button @click="analyze()">浠跨湡鍒嗘瀽</zt-button>
+                <zt-button>鍒嗘瀽缁撴灉</zt-button>
+              </zt-form-item>
+            </el-form>
+          </div>
+        </div>
+      </el-col>
+      <el-col :span="17">
+        <div style="height: calc(100vh - 165px);background: white">
+          <SimulatCurve ref="SimulatCurve"></SimulatCurve>
+          <SimulatData></SimulatData>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import SimulatCurve from "./SimulatCurve";
+  import SimulatData from "./SimulatData";
+
+
+  export default {
+    data() {
+      return {
+        productList: [],
+        taskList: [],
+        dataForm: {
+          id: '',
+          pid: '',
+          productId: '',
+          task: '',
+          dataType: '',
+          isRepair: '',
+          samplPeriod: '',
+          simulatFrequency: '',
+        }
+      }
+    },
+    mounted() {
+      this.getProductList()
+    },
+    components: {
+      SimulatCurve,
+      SimulatData
+    },
+
+    methods: {
+      // 鑾峰彇淇℃伅
+      onProductSelected(data) {
+        console.log(data, ' onProductSelected(data)')
+        this.dataForm.productId = data.id
+        this.getTaskList()
+      },
+      onTaskSelected(data) {
+        console.log(data, ' onProductSelected(data)')
+        this.dataForm.task = data.id
+      },
+      async getProductList() {
+        let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
+        this.productList = res.data
+      },
+      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
+      },
+      async analyze() {
+        let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm)
+        if (res.success) {
+          console.log(res.data, 'analyze')
+          let stopPolling = false
+          if (!stopPolling) {
+            let timer = setInterval(async () => {
+              let res2 = await this.$http.get(`/taskReliability/SimulatAssess/${res.data}`)
+              console.log(res2.data, 'setInterval')
+              if (res2.data) {
+                if (res2.data.code === '0' || res2.data.errorMsg === '0') {
+                  stopPolling = true
+                  // 涓杞
+                  clearInterval(timer)
+                  alert('宸茶幏鍙�')
+                  this.$refs.SimulatCurve.initEcharts(res2.data.curveData);
+                  // 娓呴櫎瀹氭椂鍣�
+                } else {
+                  stopPolling = true
+                  // 涓杞
+                  clearInterval(timer)
+                  alert('鏁版嵁鏈夎锛岄噸鏂拌緭鍏�')
+                }
+              }
+            }, 400)
+          }
+
+        }
+      }
+    }
+  }
+</script>
+<style>
+  .mod-taskReliability-simulatAssess {
+    height: calc(100vh - 165px);
+  }
+
+  .mod-taskReliability-simulatAssess .el-form-item__label {
+    line-height: calc((100vh - 165px) / 7);
+  }
+
+  .mod-taskReliability-simulatAssess .el-form-item__content {
+    line-height: calc((100vh - 165px) / 7);
+  }
+
+  .mod-taskReliability-simulatAssess .el-form-item__content > .el-input-group--append {
+    vertical-align: baseline;
+  }
+
+  div.el-col.el-col-17 {
+    background: white;
+  }
+</style>
diff --git a/web/src/views/modules/taskReliability/SimulatCurve.vue b/web/src/views/modules/taskReliability/SimulatCurve.vue
new file mode 100644
index 0000000..dbe4b67
--- /dev/null
+++ b/web/src/views/modules/taskReliability/SimulatCurve.vue
@@ -0,0 +1,47 @@
+<template>
+  <div class="mod-taskReliability-taskPhase">
+    <div class="echart" id="mychart" :style="myChartStyle"></div>
+  </div>
+</template>
+
+<script>
+  import * as echarts from "echarts";
+
+  export default {
+    name: 'SimulatCurve',
+    data() {
+      return {
+        myChart: {},
+        myChartStyle: {float: "left", width: "100%", height: "400px"} //鍥捐〃鏍峰紡
+      }
+    },
+    components: {},
+    methods: {
+      initEcharts(CurveData) {
+        console.log(eval(CurveData), 'initEcharts(CurveData)')
+        const option = {
+          xAxis: {
+            data: eval(CurveData)[0]
+          },
+          yAxis: {},
+          series: [
+            {
+              data: eval(CurveData)[1],
+              type: 'line',
+              smooth: true
+            }
+          ]
+        };
+        this.myChart = echarts.init(document.getElementById("mychart"));
+        this.myChart.setOption(option);
+        //闅忕潃灞忓箷澶у皬璋冭妭鍥捐〃
+        window.addEventListener("resize", () => {
+          this.myChart.resize();
+        });
+      }
+    }
+  }
+</script>
+<style>
+
+</style>
diff --git a/web/src/views/modules/taskReliability/SimulatData.vue b/web/src/views/modules/taskReliability/SimulatData.vue
new file mode 100644
index 0000000..6e529b0
--- /dev/null
+++ b/web/src/views/modules/taskReliability/SimulatData.vue
@@ -0,0 +1,64 @@
+<template>
+    <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url=""
+                     :paging='false'
+                     delete-url="" v-slot="{ table }">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+      </el-form>
+      <el-table v-loading="table.dataLoading" :data="table.dataList" height="400"
+                 @selection-change="table.selectionChangeHandle">
+        <el-table-column prop="name" label="鍚嶇О" />
+        <el-table-column prop="totalTime" label="鎬绘椂闂�"/>
+        <el-table-column prop="faultNum" label="鏁呴殰娆℃暟"/>
+        <el-table-column prop="repairTime" label="淇悊鏃堕棿"/>
+        <el-table-column prop="availability" label="鍙敤搴�"/>
+        <el-table-column prop="mtbcf" label="MTBCF"/>
+        <el-table-column prop="mttcr" label="MTTCR"/>
+      </el-table>
+    </zt-table-wraper>
+</template>
+
+<script>
+
+
+  export default {
+    name: 'SimulatData',
+    data() {
+      return {
+        productList: [],
+        dataForm: {
+          productId: ''
+        }
+      }
+    },
+    components: {
+
+    },
+    mounted() {
+      this.getTaskProductList()
+    },
+    methods: {
+      init() {
+
+      },
+      add() {
+        this.$refs.AddOrUpdate.$refs.dialog.init(null,{productId: this.dataForm.productId})
+      },
+      selectTask(row){
+        this.$emit('onTaskSelected',row)
+      },
+      async getTaskProductList() {
+        let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
+        this.productList = res.data
+        console.log(this.productList, ' async getTaskProductList()')
+      },
+      onProductSelected(data){
+        console.log(data, ' onProductSelected(data)')
+        this.dataForm.productId = data.id
+        this.$refs.tableObj.query()
+      }
+    }
+  }
+</script>
+<style>
+
+</style>
diff --git a/zt/core/src/main/java/com/zt/core/config/shiro/ShiroConfig.java b/zt/core/src/main/java/com/zt/core/config/shiro/ShiroConfig.java
index aff2df8..dff9d3d 100644
--- a/zt/core/src/main/java/com/zt/core/config/shiro/ShiroConfig.java
+++ b/zt/core/src/main/java/com/zt/core/config/shiro/ShiroConfig.java
@@ -115,6 +115,7 @@
 
         filterMap.put("/product/getShipList","anon");
         filterMap.put("/teamGroup/class/tree","anon");
+        filterMap.put("/taskReliability/SimulatAssess/calculate","anon");
 
 
 

--
Gitblit v1.9.1