From a7418fdc3875d68b03f5d89ceaa0c66a8e3902cd Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 24 十二月 2025 14:03:54 +0800
Subject: [PATCH] 销售订单报检区分物料属性
---
cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java | 80 ++++++++++++++++++++++++++++++---------
1 files changed, 61 insertions(+), 19 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java b/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
index 622525b..ef616a4 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
@@ -128,11 +128,12 @@
case ".docx":
map = analysisString(data, userMap, device, entrustCode, sampleCode);
break;
+ case ".xls":
case ".xlsx":
map = analysisList(data, userMap, device, entrustCode, sampleCode);
break;
- case ".xls":
- map = analysisTxt(data, userMap, device, entrustCode, sampleCode);
+ case ".pngInExcel":
+ map = analysisPngInExcel(data, userMap, device, entrustCode, sampleCode);
break;
case ".txt":
map = analysisTxt(data, userMap, device, entrustCode, sampleCode);
@@ -345,23 +346,25 @@
}
}
// 鎷兼帴鏁伴噰閰嶇疆
- List<Object> result = new ArrayList<>();
- for (int i = 0; i < numberOfDataEntries.get(); i++) {
- String aggregate = "";
- for (int j = 0; j < v.size(); j++) {
- int index;
- if (j == 0) {
- index = i;
- } else {
- index = numberOfDataEntries.get() + i;
- }
- aggregate += list.get(index).toString() + ",";
- }
- int lastIndex = aggregate.lastIndexOf(",");
- String substring = aggregate.substring(0, lastIndex);
- result.add(substring);
-
- }
+ List<Object> result = new ArrayList<>(list);
+// String join = String.join(",", list.stream().map(String::valueOf).collect(Collectors.toList()));
+// result.add(join);
+// for (int i = 0; i < numberOfDataEntries.get(); i++) {
+// String aggregate = "";
+// for (int j = 0; j < v.size(); j++) {
+// int index;
+// if (j == 0) {
+// index = i;
+// } else {
+// index = numberOfDataEntries.get() + i;
+// }
+// aggregate += list.get(index).toString() + ",";
+// }
+// int lastIndex = aggregate.lastIndexOf(",");
+// String substring = aggregate.substring(0, lastIndex);
+// result.add(substring);
+//
+// }
// 杩涜鍏紡璁$畻
Object resultValue = calculationFormula(result, v.get(0), k, device);
map.put(k, resultValue);
@@ -571,6 +574,45 @@
}
/**
+ * 瑙f瀽excel涓瘑鍒埌鐨勫浘鐗囧唴瀹�
+ *
+ * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
+ * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
+ * @return
+ */
+ private static Map<String, Object> analysisPngInExcel(String data, Map<String, List<DataConfig>> dataConfig,
+ Device device, String entrustCode, String sampleCode) {
+ Map<String, Object> map = new HashMap<>();
+ //澶勭悊data
+ Map<String,List<Object>> dataMap = new HashMap<>();
+ String[] rows = data.split("\n");
+ String[] headRow = rows[0].split(" ");//鑾峰彇琛ㄥご鍒楄〃
+ for (int i = 0; i < headRow.length; i++) {
+ //鏁版嵁鏈�澶氫簲鏉�
+ List<Object> vals = new ArrayList<>();
+ for (int j = 1; j <= 5; j++) {
+ String[] cols = rows[j].split(" ");
+ vals.add(cols[i]);
+ }
+ dataMap.put(headRow[i],vals);
+ }
+ dataConfig.forEach((k, v) -> {
+ List<Object> list = new ArrayList<>();
+ v.stream().sorted(Comparator.comparing(DataConfig::getX)).forEach(config->{
+ for (Map.Entry<String, List<Object>> entry : dataMap.entrySet()) {
+ if(entry.getKey().contains(config.getReferx())){
+ list.addAll(entry.getValue());
+ }
+ }
+ });
+ // 杩涜鍏紡璁$畻
+ Object resultValue = calculationFormula(list, v.get(0), k, device);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
+
+ /**
* @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
* @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
* @return
--
Gitblit v1.9.3