From b1c6c32fdcee89f97c05bd21f4fb0b95f4009764 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期六, 19 七月 2025 10:18:26 +0800
Subject: [PATCH] 修改方法
---
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java | 20 +++++----
cnas-device/src/main/java/com/ruoyi/device/pojo/Device.java | 7 +++
cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java | 78 +++++++++++++++++++++++++++++++++-----
cnas-device/src/main/java/com/ruoyi/device/dto/DeviceCollectionDto.java | 6 +++
4 files changed, 90 insertions(+), 21 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceCollectionDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceCollectionDto.java
index 29a7c53..6d84b56 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceCollectionDto.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceCollectionDto.java
@@ -25,4 +25,10 @@
@ApiModelProperty(value = "閲囬泦鐨勬楠岄」id")
private List<Integer> itemIds;
+ //鏁版嵁搴撶敤鎴峰悕
+ @ApiModelProperty(value = "鏁版嵁搴撶敤鎴峰悕")
+ private String dbUserName;
+ //鏁版嵁搴撳瘑鐮�
+ @ApiModelProperty(value = "鏁版嵁搴撳瘑鐮�")
+ private String dbPassword;
}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/Device.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/Device.java
index d403f5a..a3dbdc8 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/pojo/Device.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/pojo/Device.java
@@ -134,5 +134,10 @@
@ApiModelProperty("浜у湴")
private String origin;
-
+ //鏁版嵁搴撶敤鎴峰悕
+ @ApiModelProperty("鏁版嵁搴撶敤鎴峰悕")
+ private String dbUserName;
+ //鏁版嵁搴撳瘑鐮�
+ @ApiModelProperty("鏁版嵁搴撳瘑鐮�")
+ private String dbPassword;
}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
index d07704c..a9ac09f 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -35,6 +35,7 @@
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -194,6 +195,8 @@
@Override
public Result<?> dataAcquisition(HttpServletRequest request, DeviceCollectionDto dto) {
+
+
// 鏌ヨ妫�楠岄」
List<Integer> itemIds = dto.getItemIds();
if (CollectionUtils.isEmpty(itemIds)) {
@@ -234,7 +237,12 @@
// 鏁伴噰杩斿洖淇℃伅
Map<String, Object> map = new HashMap<>();
for (Device device : deviceList) {
+
+ Device device1 = deviceMapper.selectById(device.getId());
+ dto.setDbUserName(device1.getDbUserName());
+ dto.setDbPassword(device1.getDbPassword());
String ip = device.getIp();
+
// 鏍规嵁妫�楠岄」鑾峰彇config
List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery()
.in(DataConfig::getStructureItemParameterId, itemParameterIds)
@@ -244,16 +252,10 @@
// 鍒ゆ柇璁惧鏄惁鏄暟瀛楃洿妗CZX-ZB-ER02022
if (device.getManagementNumber().equals("JCZX-ZB-ER02022")) {
map.putAll(dataCollectBridge(list, device, dto.getEntrustCode()));
-// list锛氬寘鍚澶囬厤缃俊鎭殑 DataConfig 鍒楄〃銆�
-// device锛氬綋鍓嶇殑璁惧瀵硅薄銆�
-// dto.getEntrustCode()锛氫粠 DeviceCollectionDto 瀵硅薄涓幏鍙栫殑濮旀墭缂栫爜
+
} else {
- map.putAll(DataAcquisition.dataAcquisitionEntrance(list, device, dto.getEntrustCode(), dto.getEntrustCode(), ip, insProducts.get(0).getCableTag()));
-// list锛氬寘鍚澶囬厤缃俊鎭殑 DataConfig 鍒楄〃銆�
-// device锛氬綋鍓嶇殑璁惧瀵硅薄銆�
-// dto.getEntrustCode()锛氬鎵樼紪鐮侊紝姝ゅ浼犲叆涓ゆ銆�
-// ip锛氬綋鍓嶈澶囩殑 IP 鍦板潃銆�
-// insProducts.get(0).getCableTag()锛氫粠 insProducts 鍒楄〃鐨勭涓�涓厓绱犱腑鑾峰彇鐨勭數缂嗘爣绛�
+ map.putAll(DataAcquisition.dataAcquisitionEntrance(list, device, dto.getEntrustCode(), dto.getEntrustCode(), ip, insProducts.get(0).getCableTag(),dto.getDbUserName(),dto.getDbPassword()));
+
}
}
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 98c04ec..5d55dc4 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
@@ -43,7 +43,7 @@
* @param device
* @return
*/
- public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag) {
+ public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag, String dbUserName, String dbPassword) {
// 鍒ゆ柇鏄惁鏄奖鍍忔祴閲忎华
if (device.getManagementNumber().equals("JCZX-ZB-OP07001")) {
if (device.getFileType().equals(".xlsx")) {
@@ -76,7 +76,9 @@
"&sampleCode=" + sampleCode +
"&mdbEntrustCode=" + device.getEntrustCode() +
"&mdbSampleCode=" + device.getSampleCode() +
- "&dbFileName=" + device.getDbFileName();
+ "&dbFileName=" + device.getDbFileName()+
+ "&dbUserName=" + dbUserName +
+ "&dbPassword=" + dbPassword;
System.out.println("璇锋眰鐨� URL: " + http);
String result = null;
try {
@@ -134,7 +136,8 @@
}
break;
case ".db":
- map = analysisDb(data, userMap, device);
+ map = analysisDb1(data, userMap, device);
+// map = analysisDb(data, userMap, device);
break;
case ".png":
map = readPngString(data, userMap, device);
@@ -187,6 +190,56 @@
return "1";
}
+ private static Map<String, Object> analysisDb1(String data, Map<String, List<DataConfig>> dataConfig, Device device) {
+ JSONObject jsonObject = JSON.parseObject(data);
+ Map<String, Object> map = new HashMap<>();
+ if (jsonObject.isEmpty()) {
+ return map;
+ }
+ // 浠� JSON 鏁版嵁涓彁鍙� data 鏁扮粍
+ JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString());
+ dataConfig.forEach((k, v) -> {
+ AtomicInteger numberOfDataEntries = new AtomicInteger();
+ List<Object> list = new ArrayList<>();
+ for (int config = 0; config < v.size(); config++) {
+ String refery = getRefer(v.get(config).getRefery());
+ for (int i = 0; i < dataList.size(); i++) {
+ JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString());
+ if (ObjectUtils.isNotEmpty(jsonObject1.get(refery))) {
+ numberOfDataEntries.addAndGet(1);
+ list.add(jsonObject1.get(refery));
+ }
+// Object o = jsonObject1.get(refery);
+// if (ObjectUtils.isNotEmpty(o)) {
+// numberOfDataEntries.addAndGet(1);
+// list.add(o);
+// }
+ }
+ }
+ // 鎷兼帴鏁伴噰閰嶇疆
+ List<Object> result = new ArrayList<>();
+ for (int i = 0; i < numberOfDataEntries.get(); i++) {
+ StringBuilder aggregate = new StringBuilder();
+ for (int j = 0; j < v.size(); j++) {
+ int index;
+ if (j == 0) {
+ index = i;
+ } else {
+ index = numberOfDataEntries.get() + i;
+ }
+ aggregate.append(list.get(index).toString()).append(",");
+ }
+ if (aggregate.length() > 0) {
+ aggregate.setLength(aggregate.length() - 1);
+ }
+ result.add(aggregate.toString());
+ }
+ // 杩涜鍏紡璁$畻
+ Object resultValue = calculationFormula(result, v.get(0), k, device);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
/**
* 闇�瑕侀�氳繃X,Y杞村畾浣�
@@ -195,17 +248,20 @@
* @param dataConfig
* @return
*/
+
private static Map<String, Object> analysisDb(String data, Map<String, List<DataConfig>> dataConfig, Device device) {
JSONObject jsonObject = JSON.parseObject(data);
Map<String, Object> map = new HashMap<>();
if (jsonObject.isEmpty()) {
return map;
}
+ // 浠� JSON 鏁版嵁涓彁鍙� data 鏁扮粍
JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString());
dataConfig.forEach((k, v) -> {
AtomicInteger numberOfDataEntries = new AtomicInteger();
List<Object> list = new ArrayList<>();
for (int config = 0; config < v.size(); config++) {
+// String refery = v.get(config).getRefery();
String refery = getRefer(v.get(config).getRefery());
for (int i = 0; i < dataList.size(); i++) {
JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString());
@@ -783,7 +839,7 @@
continue;
}
// 鏈�缁堢粨鏋�
-// List<Object> result = new ArrayList<>();
+ List<Object> result = new ArrayList<>();
// 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿
String[] aColumnY = data.replaceAll(" ", "").split("\n");
Integer end = null;
@@ -807,7 +863,7 @@
}
try {
// System.out.println("----------");
- list.add(split1[j]);
+ result.add(split1[j]);
} catch (Exception e) {
throw new ErrorException(k + "锛歑杞村畾浣嶈秴鍑猴紒");
@@ -831,7 +887,7 @@
if (aLineX[j].contains(referx)) {
try {
// System.out.println("77777777777777");
- list.add(aLineX[j + x]);
+ result.add(aLineX[j + x]);
} catch (Exception e) {
throw new ErrorException(k + "锛歑杞村畾浣嶈秴鍑猴紒");
}
@@ -848,7 +904,7 @@
if (aLineX[j].contains(referx)) {
try {
// System.out.println("4444444444444444");
- list.add(aLineX[j + x]);
+ result.add(aLineX[j + x]);
} catch (Exception e) {
throw new ErrorException(k + "锛歑杞村畾浣嶈秴鍑猴紒");
}
@@ -856,11 +912,11 @@
}
}
}
- // 闃叉璁$畻鍏紡鐨勬椂鍊欏嚭鐜帮細[null] 杩欑鏁版嵁
-// if (ObjectUtils.isNotEmpty(result)) {
+// 闃叉璁$畻鍏紡鐨勬椂鍊欏嚭鐜帮細[null] 杩欑鏁版嵁
+ if (ObjectUtils.isNotEmpty(result)) {
// String formatProcessing = getFormatProcessing(result);
-// list.addAll(result);
-// }
+ list.addAll(result);
+ }
}
return list;
}
--
Gitblit v1.9.3