From 54a33a391e211a4b2b97621501c6236527d32331 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 01 八月 2024 10:41:00 +0800 Subject: [PATCH] 文件采集公式计算调整 --- inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java | 5 +++++ cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 42 ++++++++++++++++++------------------------ inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java | 4 +++- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 6 +----- 4 files changed, 27 insertions(+), 30 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java index ab8db5b..4dab601 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java @@ -261,15 +261,13 @@ formula = formula.replace("锛�", "(") .replace("锛�", ")") .replace("锛�", ","); - //鐒跺悗鎻愬彇鑻辨枃瀛楁瘝,鍏ㄩ儴杞崲涓哄ぇ鍐� - String[] strs = formula.split("[^A-Za-z]+"); - String upperStr = ""; - for (String str : strs) { - upperStr += str.toUpperCase(); - } + //鐒跺悗鎻愬彇鍏紡 + String strs = formula.substring(0,formula.indexOf("(")); + String upperStr = strs.toUpperCase(); if (upperStr.equals("")) { throw new ErrorException(formula + "閲岄潰鐨勫叕寮忔病鏈夊嚱鏁�"); } + System.out.println(upperStr); //鐒跺悗鑾峰彇鏈�澶栭潰鎷彿閲岄潰鐨勫��,鍐嶆牴鎹�","鍒嗗壊 int start = formula.indexOf("("); int end = -1; @@ -289,51 +287,47 @@ throw new ErrorException("鍏紡鎷彿涓嶅尮閰�: " + formula); } - String inner = formula.substring(start + 1, end); + String argumentsStr = formula.substring(start + 1, end); List<String> arguments = new ArrayList<>(); - int depth = 0; + int bracketCount = 0; StringBuilder currentArgument = new StringBuilder(); - for ( - char c : inner.toCharArray()) { - if (c == ',' && depth == 0) { + for (char c : argumentsStr.toCharArray()) { + if (c == ',' && bracketCount == 0) { arguments.add(currentArgument.toString()); currentArgument.setLength(0); } else { - if (c == '(') { - depth++; - } else if (c == ')') { - depth--; - } + if (c == '(') bracketCount++; + if (c == ')') bracketCount--; currentArgument.append(c); } } arguments.add(currentArgument.toString()); String[] bracketStrs = arguments.toArray(new String[0]); - List<BigDecimal> results = new ArrayList<>(); - for ( - String expr : bracketStrs) { + for (String expr : bracketStrs) { System.out.println("鏇挎崲鍓�" + expr); - Pattern pattern = Pattern.compile("\\b\\d+\\b"); + Pattern pattern = Pattern.compile("([A-Z])(\\d+)"); Matcher matcher = pattern.matcher(expr); StringBuffer sb = new StringBuffer(); while (matcher.find()) { - int index = Integer.parseInt(matcher.group()) - 1; + String letter = matcher.group(1); + int index = Integer.parseInt(matcher.group(2)) - 1; // 灏�1-based杞负0-based if (index < bigDecimalList.size()) { matcher.appendReplacement(sb, bigDecimalList.get(index).toString()); } else { - throw new ErrorException("琛ㄨ揪寮忎腑鐨勪笅鏍� " + index + " 瓒呭嚭鑼冨洿"); + throw new RuntimeException("鍏紡涓殑涓嬫爣 " + index + " 瓒呭嚭鑼冨洿"); } } matcher.appendTail(sb); System.out.println("鏇挎崲鍚�" + sb.toString()); - //璁$畻 + + // 璁$畻琛ㄨ揪寮� ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); try { Object result = engine.eval(sb.toString()); results.add(new BigDecimal(result.toString())); } catch (Exception e) { - throw new IllegalArgumentException("鏃犳硶璁$畻琛ㄨ揪寮�: " + sb, e); + throw new IllegalArgumentException("鏃犳硶璁$畻鍏紡: " + sb, e); } } // 鏍规嵁鍑芥暟鍚嶇О杩涜鐩稿簲璁$畻 diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java index d95eb28..8e450da 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java @@ -68,30 +68,35 @@ throw new ErrorException("鏂囦欢涓婁紶澶辫触"); } } + @ValueClassify("鎶ュ憡缂栧埗") @ApiOperation(value = "鎶ュ憡杩樺師") @PostMapping("/upReportUrl") public Result upReportUrl(Integer id) { return Result.success(insReportService.upReportUrl(id)); } + @ValueClassify("鎶ュ憡缂栧埗") @ApiOperation(value = "鎶ュ憡鍦ㄧ嚎缂栧埗") @GetMapping("/upReportFile") public Result upReportFile() { return Result.success(); } + @ValueClassify("鎶ュ憡缂栧埗") @ApiOperation(value = "鎻愪氦") @PostMapping("/writeReport") public Result writeReport(Integer id) { return Result.success(insReportService.writeReport(id)); } + @ValueClassify("鎶ュ憡缂栧埗") @ApiOperation(value = "瀹℃牳") @PostMapping("/examineReport") public Result examineReport(Integer id, Integer isExamine, String examineTell) { return Result.success(insReportService.examineReport(id, isExamine, examineTell)); } + @ValueClassify("鎶ュ憡缂栧埗") @ApiOperation(value = "鎵瑰噯") @PostMapping("/ratifyReport") diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java index 63e5676..2876dd4 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java @@ -635,17 +635,13 @@ .collect(Collectors.groupingBy(CostStatisticsDto::getCompany)); try { // 鏂板缓ExcelWriter - ExcelWriter excelWriter = - EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); - + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); for (Map.Entry<String, List<CostStatisticsDto>> companyDataEntry : groupByCompany.entrySet()) { String sheetName = companyDataEntry.getKey(); List<CostStatisticsDto> dataList = companyDataEntry.getValue(); WriteSheet mainSheet = EasyExcel.writerSheet(sheetName).head(CostStatisticsDto.class).build(); excelWriter.write(dataList, mainSheet); } - - // 鍏抽棴娴� excelWriter.finish(); } catch (IOException e) { diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java index 348afe6..4169a84 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java @@ -75,7 +75,9 @@ } } String[] split1 = insSample.getFactory().split(" - "); - list = list.stream().filter(list1 -> list1.getSample().equals(split1[3])).collect(Collectors.toList()); + if (ObjectUtils.isNotEmpty(split1[3])){ + list = list.stream().filter(list1 -> list1.getSample().equals(split1[3])).collect(Collectors.toList()); + } list = list.stream().filter(a -> { try { if (a.getSection() != null && !Objects.equals(a.getSection(), "")) { -- Gitblit v1.9.3