From 316e1c18d0d55b28d64400923721bab2158ff251 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期五, 13 九月 2024 16:32:35 +0800 Subject: [PATCH] 修改 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java | 138 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 115 insertions(+), 23 deletions(-) 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); } + } -- Gitblit v1.9.1