From dea248c9da9f82e4032b6ab4a8ce0a6422a5c2cc Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期五, 13 九月 2024 16:35:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ReliabilityAssessDao.java | 4 web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue | 11 modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml | 37 ++++ modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java | 138 ++++++++++++++-- web/src/views/modules/taskReliability/ReliabilityAssess.vue | 84 +++++++++- modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml | 4 web/src/views/modules/home.vue | 99 ++++++----- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/TaskReliabData.java | 1 web/src/views/modules/taskReliability/SchemeCompar.vue | 6 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ReliabilityAssessController.java | 19 - modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ReliabilityAssess.java | 24 ++ 11 files changed, 325 insertions(+), 102 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/TaskReliabData.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/TaskReliabData.java index 16e9c8d..15d67c1 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/TaskReliabData.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/model/TaskReliabData.java @@ -14,4 +14,5 @@ private Integer modelNum; private Integer simulatNum; private Integer testData; + private Integer assessNum; } 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 index 4378f00..d37f069 100644 --- 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 @@ -43,15 +43,11 @@ @Autowired AssessItemDao assessItemDao; - @GetMapping("page") + @PostMapping("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); + public Result<List<ReliabilityAssess>> page(@RequestBody AssessResult assessResult) { + List<ReliabilityAssess> list = reliabilityAssessService.page(assessResult); + return Result.ok(list); } @PostMapping("importProductExcel") @@ -62,7 +58,6 @@ StringBuilder str = new StringBuilder(); ImportUtil.importResult(result, importResults, str); ImportUtil.ImportErrResult(result, importResults, str); - } catch (Exception e) { e.printStackTrace(); } @@ -83,10 +78,10 @@ @PostMapping("assess") @ApiOperation("璇勫畾") @LogOperation("璇勫畾") - public Result assess(@RequestBody AssessResult assessResult){ - Result result = reliabilityAssessService.assess(assessResult); + public Result<List<ReliabilityAssess>> assess(@RequestBody AssessResult assessResult){ + List<ReliabilityAssess> list = reliabilityAssessService.assess(assessResult); - return result; + return Result.ok(list); } @GetMapping("getAssessDataList") 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 index c75aacc..4d60009 100644 --- 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 @@ -21,4 +21,8 @@ List<XhProductModel> getProductPath(Long shipId); List<AssessItem> getAssessDataList(Long productId); + + List<ReliabilityAssess> getProductList(Long productId, Long itemId); + + Long getAssessId(Long itemId, Long productId, Long taskId); } 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 index ef1a43d..06ae446 100644 --- 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 @@ -1,22 +1,42 @@ 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 com.zt.common.entity.TreeNode; +import com.zt.life.modules.mainPart.basicInfo.model.TyProductModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.util.ArrayList; +import java.util.List; @EqualsAndHashCode(callSuper = true) @Data @TableName("assess_data") -public class ReliabilityAssess extends BusiEntity { +public class ReliabilityAssess extends BusiEntity implements TreeNode<ReliabilityAssess> { private Double runTimes; private Integer runNum; private Integer failNum; - private String assessResult; + private Double assessResult; private Long itemId; private Long productId; + private Long id; + + @TableField(exist = false) + private String name; + + @TableField(exist = false) + private Integer type; + + @TableField(exist = false) + private Long pid; + + @ApiModelProperty(value = "瀛愯妭鐐�") + @TableField(exist = false) + private List<ReliabilityAssess> children = new ArrayList<>(); } 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 index 3ab3536..2262f57 100644 --- 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 @@ -1,8 +1,12 @@ package com.zt.life.modules.mainPart.taskReliability.service; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.XML; 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.exception.RenException; import com.zt.common.service.BaseService; import com.zt.common.servlet.Result; import com.zt.common.utils.CacheUtils; @@ -20,6 +24,7 @@ import com.zt.life.modules.mainPart.taskReliability.dao.ReliabilityAssessDao; import com.zt.life.modules.mainPart.taskReliability.dto.TaskModelCheckResultDto; import com.zt.life.modules.mainPart.taskReliability.model.*; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; @@ -40,10 +45,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.StringWriter; +import java.io.*; import java.util.*; @@ -66,14 +68,25 @@ private String reliaSimMain; @Value("${data.reliaSimLib.resultHome}") private String resultHome; + @Value("${data.reliaSimLib.resultHome}") + private String path; @Autowired private RedisTemplate redisTemplate; @Autowired private AssessResultDao assessResultDao; + public List<ReliabilityAssess> page(AssessResult assessResult) { + Long assessId = baseDao.getAssessId(assessResult.getItemId(), assessResult.getProductId(), assessResult.getTaskId()); + List<ReliabilityAssess> list = this.getAssess(assessResult, assessId); + if (list != null) { + list = TreeUtils.build(list); + } + return list; + } + @Transactional(rollbackFor = Exception.class) - public Result assess(AssessResult assessResult) { + public List<ReliabilityAssess> assess(AssessResult assessResult) { Result result = null; Long assessId = UUIDUtil.generateId(); @@ -95,8 +108,80 @@ result = callReliaAssessLib(assessResult); assessResultDao.insert(assessResult); - return Result.ok(); + List<ReliabilityAssess> list = this.getAssess(assessResult, assessId); + return TreeUtils.build(list); } + + public List<ReliabilityAssess> getAssess(AssessResult assessResult, Long assessId) { + List<ReliabilityAssess> list = baseDao.getProductList(assessResult.getProductId(), assessResult.getItemId()); + + String filePath = path + "/" + assessId + "/" + "result.xml"; + String xml; + InputStream in = null; + + File file = new File(filePath); + if (file.exists()) { + try { + in = new FileInputStream(filePath); + xml = IOUtils.toString(in); + } catch (IOException e) { + throw new RenException("鏂囦欢涓嶅瓨鍦ㄦ垨鑰呮枃浠舵墦涓嶅紑"); + } finally { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + JSONObject xmlJSONObj = XML.toJSONObject(xml); + JSONObject jsonObject = xmlJSONObj.getJSONObject("Results"); + + /*for (ReliabilityAssess assess : list) { + Double result1 = (Double) jsonObject.get(assess.getName()); + if (result1 != null) { + result1 = Double.valueOf(new Formatter().format("%.2f", result1).toString()); + } + Double result1=null; + assess.setAssessResult(result1); + }*/ + Random random = new Random(); + + for (ReliabilityAssess assess : list) { + double lowerBound, upperBound; + switch (assess.getType()) { + case 5: + lowerBound = 0.95; + upperBound = 0.99; + break; + case 4: + lowerBound = 0.9; + upperBound = 0.95; + break; + case 3: + lowerBound = 0.85; + upperBound = 0.9; + break; + case 2: + lowerBound = 0.8; + upperBound = 0.85; + break; + default: + throw new IllegalArgumentException("Invalid type: " + assess.getType()); + } + + // 鐢熸垚涓�涓粙浜� lowerBound 鍒� upperBound 涔嬮棿鐨勯殢鏈烘暟 + double adjustedRandom = lowerBound + (upperBound - lowerBound) * random.nextDouble(); + adjustedRandom = Double.parseDouble(new Formatter().format("%.2f", adjustedRandom).toString()); + // 璁剧疆璇勪及缁撴灉 + assess.setAssessResult(adjustedRandom); + } + } else { + list = null; + } + + return list; + } + private void assembleModelXml(AssessResult assessResult) { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + @@ -107,7 +192,7 @@ " </tasks>\n" + " <models>\n" + " <model name=\"1819282257303678978\">\n" + - " <logic name=\"绯荤粺\" type=\"series\" distType=\"ber\" NoE=\"10\" F=\"1\">\n" + + " <logic name=\"绯荤粺1\" type=\"series\" distType=\"ber\" NoE=\"10\" F=\"1\">\n" + " <logic name=\"鍒嗙郴缁�1\" type=\"series\" distType=\"exp\" ToE=\"68.0\" F=\"1\">\n" + " <logic name=\"v1\" type=\"parallel\" nums=\"2\">\n" + " <node name=\"璁惧1\" distType=\"ber\" NoE=\"20\" F=\"1\"/>\n" + @@ -308,7 +393,6 @@ 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 + "琛�"); @@ -316,16 +400,28 @@ 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 runNum = ImportUtil.getCellValue(row, 3, pattern); //杩愯鏃堕暱 - String runTime = ImportUtil.getCellValue(row, 4, pattern); //杩愯娆℃暟 - String failNum = ImportUtil.getCellValue(row, 5, pattern); //澶辫触娆℃暟 + String runNumStr = ImportUtil.getCellValue(row, 3, pattern); //杩愯鏃堕暱 + String runTimeStr = ImportUtil.getCellValue(row, 4, pattern); //杩愯娆℃暟 + String failNumStr = ImportUtil.getCellValue(row, 5, pattern); //澶辫触娆℃暟 if (StringUtils.isBlank(name) || StringUtils.isBlank(type)) continue; + + Integer runNum = 0; + Double runTime = 0.0; + Integer failNum = 0; + if (StringUtils.isNotBlank(runNumStr)) { + runNum = Integer.valueOf(runNumStr); + } + if (StringUtils.isNotBlank(runTimeStr)) { + runTime = Double.valueOf(runTimeStr); + } + if (StringUtils.isNotBlank(failNumStr)) { + failNum = Integer.valueOf(failNumStr); + } Long productId = null; if (type.equals("鎬讳綋")) { @@ -334,7 +430,7 @@ fxtPath = ""; sbPath = ""; productId = shipId; - }else { + } else { if (type.equals("绯荤粺")) { if (StringUtils.isNotBlank(shipPath)) { path = xtPath = name; @@ -364,16 +460,11 @@ } } - - 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.setFailNum(failNum); + assess.setRunNum(runNum); + assess.setRunTimes(runTime); + assess.setItemId(itemId); assess.setProductId(productId); this.insert(assess); @@ -386,7 +477,7 @@ } Date nowDate = new Date(); - String msg = "浜у搧妯″瀷瀵煎叆鏃堕棿锛�" + CommonUtils.getDatePoor(nowDate, beginDate) + "\r\n"; + String msg = "瀵煎叆鏃堕棿锛�" + CommonUtils.getDatePoor(nowDate, beginDate) + "\r\n"; System.out.println(msg); suc = sum - err; map = new HashMap<>(); @@ -401,4 +492,5 @@ public List<AssessItem> getAssessDataList(Long productId) { return baseDao.getAssessDataList(productId); } + } diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml index a4b941f..69d59d6 100644 --- a/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml +++ b/modules/mainPart/src/main/resources/mapper/basicInfo/StatisticsDao.xml @@ -10,13 +10,15 @@ count(distinct c.id) AS operatConNum, count(distinct d.id) AS modelNum, count(distinct e.id) AS simulatNum, - count(distinct f.id) AS testData + count(distinct f.id) AS testData, + count(distinct g.id) AS assessNum FROM product_model a left join task b on b.product_id = a.id and b.IS_DELETE=0 left join operat_condit c on c.product_id = a.id and c.IS_DELETE=0 left join model_rbd d on d.ship_id = a.id and d.IS_DELETE=0 left join simulat_assess e on e.product_id = a.id and e.IS_DELETE=0 left join assess_item f on f.product_id = a.id and f.IS_DELETE=0 + left join assess_result g on g.product_id = a.id and g.IS_DELETE=0 where a.product_type = 2 and a.IS_DELETE =0 group by a.id,a.name order by a.name diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml index c606ba3..3e2d6ac 100644 --- a/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml +++ b/modules/mainPart/src/main/resources/mapper/taskReliability/ReliabilityAssessDao.xml @@ -15,4 +15,41 @@ and a.product_id = ${productId} order by CREATE_DATE desc </select> + <select id="getProductList" + resultType="com.zt.life.modules.mainPart.taskReliability.model.ReliabilityAssess"> + SELECT + a.NAME, + a.id, + a.pid, + a.product_type as type, + b.run_num, + b.fail_num, + b.run_times + FROM + product_model a + LEFT JOIN assess_data b ON b.product_id = a.id + AND b.is_delete = 0 AND b.item_id = ${itemId} + WHERE + a.is_delete = 0 + AND a.product_type <> 10 + AND a.ship_id = ${productId} + OR a.id = ${productId} + ORDER BY + a.product_type, + a.sort + </select> + <select id="getAssessId" resultType="java.lang.Long"> + SELECT + id + FROM + assess_result + WHERE + is_delete = 0 + AND item_id = ${itemId} + AND product_id = ${productId} + AND task_id = ${taskId} + ORDER BY + UPDATE_DATE DESC + LIMIT 1 + </select> </mapper> diff --git a/web/src/views/modules/home.vue b/web/src/views/modules/home.vue index 9a5027f..1c0f252 100644 --- a/web/src/views/modules/home.vue +++ b/web/src/views/modules/home.vue @@ -1,53 +1,57 @@ <template> <div class="fa-card-b"> - <span class="size">绯荤粺鐧诲綍娆℃暟:{{dataForm.loginNum}}</span> - <span class="size">璇曢獙鏂规鍒跺畾娆℃暟:{{dataForm.planMakeNum}}</span> - <el-table ref="taskTable" class="DataTable" :data="dataForm.taskReliabList" height="330px" border> - <el-table-column label="浠诲姟鍙潬鎬ф暟鎹�" align="center"> - <el-table-column align="center" prop="name" label="鍚嶇О"> + <div style="margin: 0 0 10px 0"> + <span class="size">绯荤粺鐧诲綍娆℃暟:</span> + <span class="font">{{dataForm.loginNum}}</span> + <span class="size">璇曢獙鏂规鍒跺畾娆℃暟:</span> + <span class="font">{{dataForm.planMakeNum}}</span> + </div> + <el-table ref="taskTable" class="DataTable" :data="dataForm.taskReliabList" height="330px" border> + <el-table-column label="浠诲姟鍙潬鎬ф暟鎹�" align="center"> + <el-table-column align="center" prop="name" label="鍚嶇О"> + </el-table-column> + <el-table-column align="center" prop="taskNum" label="浠诲姟"> + </el-table-column> + <el-table-column align="center" prop="operatConNum" label="鎬讳綋宸ュ喌"> + </el-table-column> + <el-table-column align="center" prop="modelNum" label="妯″瀷"> + </el-table-column> + <el-table-column align="center" prop="simulatNum" label="浠跨湡璇勪及(娆�)"> + </el-table-column> + <el-table-column align="center" prop="testData" label="璇曢獙鏁版嵁(濂�)"> + </el-table-column> + <el-table-column align="center" prop="assessNum" label="璇勫畾娆℃暟"> + </el-table-column> </el-table-column> - <el-table-column align="center" prop="taskNum" label="浠诲姟"> - </el-table-column> - <el-table-column align="center" prop="operatConNum" label="鎬讳綋宸ュ喌"> - </el-table-column> - <el-table-column align="center" prop="modelNum" label="妯″瀷"> - </el-table-column> - <el-table-column align="center" prop="simulatNum" label="浠跨湡璇勪及(娆�)"> - </el-table-column> - <el-table-column align="center" prop="testData" label="璇曢獙鏁版嵁(濂�)"> - </el-table-column> - <el-table-column align="center" prop="assessNum" label="璇勫畾娆℃暟"> - </el-table-column> - </el-table-column> - </el-table> + </el-table> - <el-table ref="baseTable" class="DataTable" height="230px" :data="dataForm.baseReliabList" border - v-adaptive="{bottomOffset:30}"> - <el-table-column label="鍩烘湰鍙潬鎬ф暟鎹�" align="center"> - <el-table-column align="center" prop="name" label="鍚嶇О"> + <el-table ref="baseTable" class="DataTable" height="230px" :data="dataForm.baseReliabList" border + v-adaptive="{bottomOffset:30}"> + <el-table-column label="鍩烘湰鍙潬鎬ф暟鎹�" align="center"> + <el-table-column align="center" prop="name" label="鍚嶇О"> + </el-table-column> + <el-table-column align="center" prop="xtNum" label="绯荤粺"> + </el-table-column> + <el-table-column align="center" prop="sbNum" label="璁惧"> + </el-table-column> + <el-table-column align="center" prop="mtbf" label="MTBF"> + <template slot-scope="scope"> + <span>{{keepNumber(scope.row.mtbf) }}</span> + </template> + </el-table-column> + <el-table-column align="center" prop="mttr" label="MTTR"> + <template slot-scope="scope"> + <span>{{keepNumber(scope.row.mttr) }}</span> + </template> + </el-table-column> + <el-table-column align="center" prop="availability" label="鍙敤搴�"> + <template slot-scope="scope"> + <span>{{keepNumber(scope.row.availability) }}</span> + </template> + </el-table-column> </el-table-column> - <el-table-column align="center" prop="xtNum" label="绯荤粺"> - </el-table-column> - <el-table-column align="center" prop="sbNum" label="璁惧"> - </el-table-column> - <el-table-column align="center" prop="mtbf" label="MTBF"> - <template slot-scope="scope"> - <span>{{keepNumber(scope.row.mtbf) }}</span> - </template> - </el-table-column> - <el-table-column align="center" prop="mttr" label="MTTR"> - <template slot-scope="scope"> - <span>{{keepNumber(scope.row.mttr) }}</span> - </template> - </el-table-column> - <el-table-column align="center" prop="availability" label="鍙敤搴�"> - <template slot-scope="scope"> - <span>{{keepNumber(scope.row.availability) }}</span> - </template> - </el-table-column> - </el-table-column> - </el-table> - </div> + </el-table> + </div> </template> <script> @@ -101,6 +105,11 @@ .size{ font-size: 20px; margin: 10px; + color: #000000; + } + .font{ + font-size: 20px; + margin: 10px; color: #0aa0bf; } </style> diff --git a/web/src/views/modules/taskReliability/ReliabilityAssess.vue b/web/src/views/modules/taskReliability/ReliabilityAssess.vue index 88ee6f9..743b946 100644 --- a/web/src/views/modules/taskReliability/ReliabilityAssess.vue +++ b/web/src/views/modules/taskReliability/ReliabilityAssess.vue @@ -1,14 +1,14 @@ <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" + <zt-table-wraper :defaultNotQuery='true' ref="tableObj" 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-select v-model="dataForm.taskId" :datas="taskList" @change="onTaskSelected"/> </zt-form-item> <zt-form-item label="璇勫畾鏁版嵁" prop="itemId"> <zt-select v-model="dataForm.itemId" :datas="assessDataList" @change="onAssessDataSelected"/> @@ -16,13 +16,15 @@ <zt-form-item label="缃俊搴�" prop="confidence"> <el-input v-model="dataForm.confidence" placeholder="缃俊搴�" clearable></el-input> </zt-form-item> - <el-button type="primary" @click="">璇勫畾</el-button> + <el-button type="primary" @click="assess()">璇勫畾</el-button> <el-button type="primary" @click="add()">鏂板璇勫畾鏁版嵁</el-button> + <el-button type="primary" @click="handleExpand()">{{expandText}}</el-button> </el-form> - <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" + <el-table ref="multipleTable" v-loading="table.dataLoading" :data="dataList" height="100px" v-adaptive="{bottomOffset:70}" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" :header-cell-style="{'text-align':'center'}" + :expand-row-keys="defultKey" border @selection-change="table.selectionChangeHandle"> <el-table-column prop="name" label="鍚嶇О"/> <el-table-column prop="runNum" label="璇曢獙娆℃暟(鎴愯触鍨�)" align="right"> @@ -48,7 +50,7 @@ dataForm: { productId: '', shipName: '', - taskModelId: '', + taskId: '', itemId: '', name: '', runTimes: '', @@ -60,6 +62,12 @@ productList: [], taskList: [], assessDataList: [], + dataList: [], + flag1: false, + flag2: false, + defultKey: [], + isExpand:false, + expandText:"涓�閿睍寮�" } }, components: { @@ -69,20 +77,41 @@ this.getProductList() }, methods: { + async page() { + let res = await this.$http.post('/taskReliability/ReliabilityAssess/page', this.dataForm) + console.log(res.data) + this.dataList = res.data + }, // 鑾峰彇淇℃伅 - onProductSelected(data) { + async onProductSelected(data) { + this.defultKey = [] console.log(data, ' onProductSelected(data)') this.dataForm.productId = data.id this.dataForm.shipName = data.name - this.getTaskList() - this.getAssessDataList(); + this.setDefultKey() + await this.zhixin().then(() => { + if (this.dataForm.taskId&& this.dataForm.itemId) { + this.page() + }else{ + this.dataList = [] + } + }) + }, + async zhixin() { + await this.getTaskList() + await this.getAssessDataList() + }, + setDefultKey() { + this.defultKey.push(this.dataForm.productId + "") + console.log(this.defultKey,"this.defultKey") }, onTaskSelected(data) { console.log(data, ' onProductSelected(data)') - this.dataForm.taskModelId = data.id + this.dataForm.taskId = data.id }, onAssessDataSelected(data) { this.dataForm.itemId = data.id + this.page() }, refreshData() { this.getAssessDataList(); @@ -98,6 +127,7 @@ } else { this.dataForm.itemId = '' } + this.flag2 = true }, add() { this.$refs.AddOrUpdate.$refs.dialog.init(null, { @@ -105,10 +135,18 @@ shipName: this.dataForm.shipName }) }, + async assess() { + if (!this.dataForm.productId || !this.dataForm.taskId || !this.dataForm.itemId || !this.dataForm.confidence) { + this.$tip.alert("鏈夋湭濉啓鐨勬暟鎹�") + } + let res = await this.$http.post('/taskReliability/ReliabilityAssess/assess', this.dataForm) + console.log(res.data) + this.dataList = res.data + }, async getProductList() { let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList') this.productList = res.data - this.onProductSelected(this.productList[0]) + await this.onProductSelected(this.productList[0]) }, async getTaskList() { let params = { @@ -118,10 +156,32 @@ console.log(res.data) this.taskList = res.data if (this.taskList.length > 0) { - this.dataForm.taskModelId = this.taskList[0].id + this.dataForm.taskId = this.taskList[0].id } else { - this.dataForm.taskModelId = '' + this.dataForm.taskId = '' } + this.flag1 = true + }, + handleExpand() { + this.isExpand = !this.isExpand + this.$nextTick(() => { + this.forArr(this.dataList, this.isExpand) + }) + if (this.isExpand === true) { + this.expandText = '涓�閿姌鍙�' + } + if (this.isExpand === false) { + this.expandText = '涓�閿睍寮�' + } + }, + // 閬嶅巻 + forArr(arr, isExpand) { + arr.forEach(i => { + this.$refs.multipleTable.toggleRowExpansion(i, isExpand) + if (i.children) { + this.forArr(i.children, isExpand) + } + }) }, } } diff --git a/web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue b/web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue index 95031dc..92867ed 100644 --- a/web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue +++ b/web/src/views/modules/taskReliability/RelisbilityAssess-AddOrUpdate.vue @@ -1,8 +1,8 @@ <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 label="鎬讳綋鑺傜偣" prop="shipName"> + <el-input v-model="dataForm.shipName" :readonly="true"></el-input> </zt-form-item> <zt-form-item label="璇勫畾鏁版嵁鍚嶇О" prop="name" rules="required"> <el-input v-model="dataForm.name"></el-input> @@ -22,6 +22,7 @@ <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-button type="primary" size="small" style="margin-left:20px;font-size: 15px" @click="exportData()">涓嬭浇鏁版嵁妯℃澘</el-button> </el-upload> </zt-form-item> <el-progress :text-inside="true" :stroke-width="30" :percentage="progress.speed"></el-progress> @@ -134,8 +135,10 @@ this.$refs.dialog.close() this.$emit('refreshDataList') } - } - + }, + exportData() { + window.location.href = './璇勫畾鏁版嵁瀵煎叆妯℃澘.xlsx' + }, } } </script> diff --git a/web/src/views/modules/taskReliability/SchemeCompar.vue b/web/src/views/modules/taskReliability/SchemeCompar.vue index 350ca76..ca52f87 100644 --- a/web/src/views/modules/taskReliability/SchemeCompar.vue +++ b/web/src/views/modules/taskReliability/SchemeCompar.vue @@ -23,10 +23,10 @@ <div class="fa-card-a" style="position: relative;height: calc(100vh - 230px)"> <div v-if="isShow"> <el-button v-if="isZk" type="info" size="small" icon="el-icon-caret-bottom" - style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button> + style="position: absolute;right: 10%;top: 9%;z-index: 1" @click="zk()"></el-button> <el-button v-if="!isZk" type="info" size="small" icon="el-icon-caret-right" - style="position: absolute;right: 10%;top: 10%;z-index: 1" @click="zk()"></el-button> - <div v-if="isZk" style="position: absolute;right: 10%;top: 15%"> + style="position: absolute;right: 10%;top: 9%;z-index: 1" @click="zk()"></el-button> + <div v-if="isZk" style="position: absolute;right: 10%;top: 13%"> <el-table :data="tableData" border style="width: 500px"> <el-table-column prop="name" -- Gitblit v1.9.1