From 193daa341f2123d07a0dda7111fbceb02bb734c9 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期五, 19 七月 2024 17:55:03 +0800
Subject: [PATCH] 文件采集完成 - 80%
---
cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 172 +++++++++++++++++++++++++++++++++++---------------------
1 files changed, 107 insertions(+), 65 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 99e3fd7..b2ffe28 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
@@ -97,10 +97,17 @@
}
}
}
+ map.put("frequency", "1");
return Result.success(map);
}
}
+ /**
+ * 闇�瑕侀�氳繃X,Y杞村畾浣�
+ * @param data
+ * @param dataConfig
+ * @return
+ */
private static Map<String, String> analysisDb(String data, Map<String, List<DataConfig>> dataConfig) {
JSONObject jsonObject = JSON.parseObject(data);
JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString());
@@ -111,7 +118,7 @@
for (int config = 0; config < v.size(); config++) {
String referx = v.get(config).getReferx();
if(ObjectUtils.isEmpty(v.get(config).getX()) && ObjectUtils.isEmpty(v.get(config).getY())) {
- throw new ErrorException("鏈粰" + k + "杩涜鏁伴噰閰嶇疆x锛寉锛�");
+ continue;
}
int x = Integer.parseInt(v.get(config).getX());
int y = Integer.parseInt(v.get(config).getY());
@@ -128,12 +135,18 @@
}
}
// 杩涜鍏紡璁$畻
- String resultValue = calculationFormula(list, v.get(0));
+ String resultValue = calculationFormula(list, v.get(0), k);
map.put(k, resultValue);
});
return map;
}
+ /**
+ * 闇�瑕侀�氳繃X,Y杞村畾浣�
+ * @param data
+ * @param dataConfig
+ * @return
+ */
private static Map<String, String> analysisMdb(String data, Map<String, List<DataConfig>> dataConfig, String entrustCode, String sampleCode) {
JSONObject jsonObject = JSON.parseObject(data);
JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString());
@@ -161,7 +174,7 @@
}
}
// 杩涜鍏紡璁$畻
- String resultValue = calculationFormula(list, v.get(0));
+ String resultValue = calculationFormula(list, v.get(0), k);
map.put(k, resultValue);
});
return map;
@@ -169,7 +182,7 @@
private static Pattern SPATTERN = Pattern.compile("([-+])?\\d+(\\.\\d+)?");
/**
- * 瑙f瀽String鏁版嵁
+ * 鍙渶X杞�
* @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
* @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
* @return
@@ -204,7 +217,7 @@
}
}
// 杩涜鍏紡璁$畻
- String resultValue = calculationFormula(list, v.get(0));
+ String resultValue = calculationFormula(list, v.get(0), k);
map.put(k, resultValue);
});
return map;
@@ -216,7 +229,7 @@
* @param dataConfig 瀛樺偍鍏紡鐨勫璞�
* @return
*/
- private static String calculationFormula(List<Object> list, DataConfig dataConfig) {
+ private static String calculationFormula(List<Object> list, DataConfig dataConfig, String insProductItem) {
// 濡傛灉涓嶄负绌猴紝杩涜鍏紡璁$畻
if (ObjectUtils.isNotEmpty(dataConfig.getFormula())) {
@@ -224,10 +237,11 @@
// 鍚﹀垯锛氭病鏈夊叕寮忎唬琛ㄤ笉闇�瑕佽绠楋紝鐩存帴鎻愬彇List閲岄潰鐨勬暟鎹�
} else {
// 杩欓噷鍙細鍙栧垪琛ㄧ涓�涓暟鎹�
- if (list.size() > 0) {
+ if (list.size() > 1) {
+ throw new ErrorException("鏈粰锛�" + insProductItem + " 閰嶇疆鍏紡锛屽彲鏄嵈閲囬泦鍒颁簡" + list.size() + "涓�硷紒鍒嗗埆涓猴細" + list);
+ } else {
return list.get(0).toString();
}
- return null;
}
}
@@ -254,39 +268,41 @@
String[] aLineX = aColumnY[i].split(",");
for (int j = 0; j < aLineX.length; j++) {
if (ObjectUtils.isNotEmpty(referx) && aLineX[j].contains(referx)) {
- int x = Integer.parseInt(v.get(config).getX());
try {
+ int x = Integer.parseInt(v.get(config).getX());
xResult = aLineX[j + x];
- } catch (Exception e) {
- throw new ErrorException("鏁伴噰閰嶇疆X杞磋秴鍑猴紒");
- }
+ } catch (Exception e) {}
}
if (ObjectUtils.isNotEmpty(refery) && aLineX[j].contains(refery)) {
- int y = Integer.parseInt(v.get(config).getY());
try {
+ int y = Integer.parseInt(v.get(config).getY());
String[] split = aColumnY[i + y].split(",");
yResult = split[split.length - 1];
- } catch (Exception e) {
- throw new ErrorException("鏁伴噰閰嶇疆Y杞磋秴鍑猴紒");
- }
+ } catch (Exception e) {}
}
}
}
- if (ObjectUtils.isEmpty(xResult) && ObjectUtils.isEmpty(yResult)) {
- throw new ErrorException("鍙傜収鐗╀负锛�" + referx + "涓�" + refery + "鏈彇鍒板�硷紒璇锋鏌ユ暟閲囬厤缃紒");
+ if (ObjectUtils.isNotEmpty(xResult) && ObjectUtils.isNotEmpty(yResult)) {
+ if(xResult.equals(yResult)) {
+ list.add(xResult);
+ } else {
+ throw new ErrorException(k + "椤圭洰X杞村�硷細" + xResult + "锛孻杞村�硷細" + yResult + "鍙栧緱鐨勬暟鎹笉鐩稿悓锛佽妫�鏌ユ暟閲囬厤缃紒");
+ }
}
- list.add(yResult);
- list.add(xResult);
}
// 杩涜鍏紡璁$畻
- String resultValue = calculationFormula(list, v.get(0));
- map.put(k, resultValue);
+ if (list.size() > 0) {
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ } else {
+ map.put(k, null);
+ }
});
return map;
}
/**
- * 瑙f瀽String鏁版嵁
+ *
* @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
* @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
* @return
@@ -298,47 +314,74 @@
List<Object> list = new ArrayList<>();
for (int config = 0; config < v.size(); config++) {
String referx = v.get(config).getReferx();
+ String refery = v.get(config).getRefery();
String xResult = null;
+ String yResult = null;
// 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿
String[] aColumnY = processingDataAfterSpaces.split("\n");
// 璇ュ惊鐜緱鍑虹敤鎴烽厤缃殑y杞�
for (int i = 0; i < aColumnY.length; i++) {
- // 寰楀嚭鐢ㄦ埛閰嶇疆鐨剎杞�
- String[] aLineX = aColumnY[i].split(splitIdentifier);
- for (int j = 0; j < aLineX.length; j++) {
- if (ObjectUtils.isNotEmpty(referx) && aLineX[j].replaceAll(" ", "").contains(referx.replaceAll(" ", ""))) {
- int x = Integer.parseInt(v.get(config).getX());
- try {
- xResult = aLineX[j + x];
- } catch (Exception e) {
- throw new ErrorException("鏁伴噰閰嶇疆X杞磋秴鍑猴紒");
+ if (aColumnY[i].replaceAll(" ", "").contains(refery.replaceAll(" ", ""))) {
+ int y = Integer.parseInt(v.get(config).getY());
+ int x = Integer.parseInt(v.get(config).getX());
+ String[] split = aColumnY[i + y].split(splitIdentifier);
+ for (int i1 = 0; i1 < split.length; i1++) {
+ if (split[i1].replaceAll(" ", "").equals(referx.replaceAll(" ", ""))) {
+// split[i1 + x]
}
}
+// String[] aLineX = aColumnY[i].split(splitIdentifier);
+// try {
+// int y = Integer.parseInt(v.get(config).getY());
+// String[] split = aColumnY[i + y].split(splitIdentifier);
+// yResult = split[split.length - 1];
+// } catch (Exception e) {}
+ }
+ // 寰楀嚭鐢ㄦ埛閰嶇疆鐨剎杞�
+
+// for (int j = 0; j < aLineX.length; j++) {
+// if (ObjectUtils.isNotEmpty(referx) && aLineX[j].replaceAll(" ", "").contains(referx.replaceAll(" ", ""))) {
+// try {
+// int x = Integer.parseInt(v.get(config).getX());
+// xResult = aLineX[j + x];
+// } catch (Exception e) {}
+// }
+//
+// }
+ }
+ if (ObjectUtils.isNotEmpty(yResult)) {
+ yResult = yResult.replaceAll(" ", "");
+ // 缁撴灉鍖呭惈鐗规畩瀛楃锛岄渶瑕佸墧闄ゆ帀
+ if(yResult.contains("=")) {
+ String[] split = yResult.split("=");
+ list.add(split[split.length - 1]);
+ } else if (yResult.contains(":")) {
+ String[] split = yResult.split(":");
+ list.add(split[split.length - 1].replaceAll("%", ""));
}
}
- if (ObjectUtils.isEmpty(xResult)) {
- throw new ErrorException("鍙傜収鐗╀负锛�" + referx + "鏈彇鍒板�硷紒璇锋鏌ユ暟閲囬厤缃紒");
- }
- // 缁撴灉鍖呭惈鐗规畩瀛楃锛岄渶瑕佸墧闄ゆ帀
- if(xResult.contains("=")) {
- String[] split = xResult.split("=");
- list.add(split[split.length - 1]);
- } else if (xResult.contains(":")) {
- String[] split = xResult.split(":");
- list.add(split[split.length - 1].replaceAll("%", ""));
- } else {
- list.add(xResult);
+ System.out.println(xResult + "=========" + yResult);
+ if (ObjectUtils.isNotEmpty(xResult) && ObjectUtils.isNotEmpty(yResult)) {
+ if(xResult.equals(yResult)) {
+ list.add(xResult);
+ } else {
+ throw new ErrorException("X杞村�硷細" + xResult + "锛孻杞村�硷細" + yResult + "鍙栧緱鐨勬暟鎹笉鐩稿悓锛佽妫�鏌ユ暟閲囬厤缃紒");
+ }
}
}
// 杩涜鍏紡璁$畻
- String resultValue = calculationFormula(list, v.get(0));
- map.put(k, resultValue);
+ if (list.size() > 0) {
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ } else {
+ map.put(k, null);
+ }
});
return map;
}
/**
- * 瑙f瀽String鏁版嵁
+ * 鍙朮锛孻涓や釜瀹氫綅
* @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
* @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
* @return
@@ -360,36 +403,35 @@
String[] aLineX = aColumnY[i].split(splitIdentifier);
for (int j = 0; j < aLineX.length; j++) {
if (ObjectUtils.isNotEmpty(referx) && referx.equals(aLineX[j])) {
- int x = Integer.parseInt(v.get(config).getX());
try {
+ int x = Integer.parseInt(v.get(config).getX());
xResult = aLineX[j + x];
- } catch (Exception e) {
- throw new ErrorException("鏁伴噰閰嶇疆X杞磋秴鍑猴紒");
- }
+ } catch (Exception e) {}
}
if (ObjectUtils.isNotEmpty(refery) && refery.equals(aLineX[j])) {
- int y = Integer.parseInt(v.get(config).getY());
- String aColumnData = aColumnY[i + y]; // 鑾峰彇鍒扮Y琛岀殑鏁版嵁
try {
+ int y = Integer.parseInt(v.get(config).getY());
+ String aColumnData = aColumnY[i + y]; // 鑾峰彇鍒扮Y琛岀殑鏁版嵁
yResult = aColumnData.split(splitIdentifier)[j];
- } catch (Exception e) {
- throw new ErrorException("鏁伴噰閰嶇疆Y杞磋秴鍑猴紒");
- }
+ } catch (Exception e) {}
}
}
}
- if (ObjectUtils.isEmpty(xResult) || ObjectUtils.isEmpty(yResult)) {
- throw new ErrorException("X杞存垨Y杞存湭鍙栧埌鍊硷紒璇锋鏌ユ暟閲囬厤缃紒");
- }
- if(xResult.equals(yResult)) {
- list.add(xResult);
- } else {
- throw new ErrorException("X杞翠笌Y杞村彇寰楃殑鏁版嵁涓嶇浉鍚岋紒璇锋鏌ユ暟閲囬厤缃紒");
+ if (ObjectUtils.isNotEmpty(xResult) && ObjectUtils.isNotEmpty(yResult)) {
+ if(xResult.equals(yResult)) {
+ list.add(xResult);
+ } else {
+ throw new ErrorException("X杞村�硷細" + xResult + "锛孻杞村�硷細" + yResult + "鍙栧緱鐨勬暟鎹笉鐩稿悓锛佽妫�鏌ユ暟閲囬厤缃紒");
+ }
}
}
// 杩涜鍏紡璁$畻
- String resultValue = calculationFormula(list, v.get(0));
- map.put(k, resultValue);
+ if (list.size() > 0) {
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ } else {
+ map.put(k, null);
+ }
});
return map;
}
--
Gitblit v1.9.3