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