From 4e818e2aa272786be2a5b252d222595812d52c2b Mon Sep 17 00:00:00 2001 From: yaowanxin <3588231647@qq.com> Date: 星期一, 04 八月 2025 14:58:32 +0800 Subject: [PATCH] 调整方法返回格式 --- cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java | 101 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 88 insertions(+), 13 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 9d740d3..2801da1 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 @@ -7,6 +7,9 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.utils.RedisUtil; +import com.ruoyi.device.constant.DCResistanceMqttConstants; import com.ruoyi.device.dto.DeviceCollectionDto; import com.ruoyi.device.pojo.DataConfig; import com.ruoyi.device.pojo.Device; @@ -23,6 +26,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; + +import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log; public class DataAcquisition { @@ -43,7 +48,7 @@ * @param device * @return */ - public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag, String dbUserName, String dbPassword) { + public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag, String dbUserName, String dbPassword,String dbTable) { // 鍒ゆ柇鏄惁鏄奖鍍忔祴閲忎华 if (device.getManagementNumber().equals("JCZX-ZB-OP07001")) { if (device.getFileType().equals(".xlsx")) { @@ -78,7 +83,8 @@ "&mdbSampleCode=" + device.getSampleCode() + "&dbFileName=" + device.getDbFileName()+ "&dbUserName=" + dbUserName + - "&dbPassword=" + dbPassword; + "&dbPassword=" + dbPassword + + "&dbTable=" + dbTable; System.out.println("璇锋眰鐨� URL: " + http); String result = null; try { @@ -136,11 +142,18 @@ } break; case ".db": - map = analysisDb1(data, userMap, device); -// map = analysisDb(data, userMap, device); +// map = analysisDb1(data, userMap, device); + map = analysisDb(data, userMap, device); + break; + case ".mysql": +// map = analysisDb1(data, userMap, device); + map = analysisDb(data, userMap, device); break; case ".png": map = readPngString(data, userMap, device); + break; + case ".mqtt": + map = getActualResistanceValueAsMap(userMap, device); break; default: map = null; @@ -154,6 +167,68 @@ return map; } } + /** + * 浠� Redis 涓幏鍙栧疄闄呯數闃诲�硷紝骞朵互閿�煎褰㈠紡杩斿洖 + * @param dataConfig 鏁版嵁閰嶇疆淇℃伅 + * @param device 璁惧淇℃伅 + * @return 鍖呭惈瀹為檯鐢甸樆鍊煎鐞嗙粨鏋滅殑閿�煎锛涜嫢鏈幏鍙栧埌鏈夋晥鏁版嵁鍒欒繑鍥炵┖ Map + */ + public static Map<String, Object> getActualResistanceValueAsMap(Map<String, List<DataConfig>> dataConfig, Device device) { + Map<String, Object> map = new HashMap<>(); + if (ObjectUtils.isEmpty(dataConfig)) { + return map; + } + 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()); + if (refery.equals(DCResistanceMqttConstants.NSDQCS_DQCS_DZZ)){ + // 浠� Redis 涓幏鍙栦竴涓暟鎹� + Object value = RedisUtil.get(refery); + list.add(value); + numberOfDataEntries.addAndGet(1); + }else { + // 浠� Redis 涓幏鍙栧垪琛ㄦ暟鎹� + List<Object> objectList = RedisUtil.lGet(refery, 0, -1); + for (Object item : objectList) { +// System.out.println(item); + String[] split = item.toString().replace("[","").replace("]","").split(","); + for (Object a : + split) { + list.add(a); + numberOfDataEntries.addAndGet(1); + } + } + } + } + // 鎷兼帴鏁伴噰閰嶇疆 + 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; + } + if (index < list.size()) { + 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; + } + public static Map<String, Object> createFrequency(String entrustCode, String sampleCode, Map<String, Object> map) { Set<String> set = new LinkedHashSet<>(); @@ -205,15 +280,15 @@ 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)) { +// if (ObjectUtils.isNotEmpty(jsonObject1.get(refery))) { // numberOfDataEntries.addAndGet(1); -// list.add(o); +// list.add(jsonObject1.get(refery)); // } + Object o = jsonObject1.get(refery); + if (ObjectUtils.isNotEmpty(o)) { + numberOfDataEntries.addAndGet(1); + list.add(o); + } } } // 鎷兼帴鏁伴噰閰嶇疆 @@ -501,10 +576,10 @@ listResult.addAll(list); } // 涓轰簡缁欏墠绔仛鏁版嵁鍖哄垎 - if (listResult.size() > 1) { + if (listResult.size() >= 1) { hashMap.put("result", listResult); } else { - hashMap.put("result", listResult.get(0).toString()); + hashMap.put("result", listResult); } hashMap.put("equipName", device.getDeviceName()); hashMap.put("equipValue", device.getManagementNumber()); -- Gitblit v1.9.3