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