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