diff --git a/user-service/src/main/java/com/mh/user/job/DealDataJob.java b/user-service/src/main/java/com/mh/user/job/DealDataJob.java index df7f02f..4a980c5 100644 --- a/user-service/src/main/java/com/mh/user/job/DealDataJob.java +++ b/user-service/src/main/java/com/mh/user/job/DealDataJob.java @@ -92,22 +92,31 @@ public class DealDataJob { List deviceParamsByType = cacheUtil.getDeviceParamsByType(threadName); // 分组data_com Map> dataComMap = deviceParamsByType.stream().collect(Collectors.groupingBy(DeviceCodeParamEntity::getDataCom)); - CountDownLatch countDownLatch = new CountDownLatch(dataComMap.size()); - for (int j = 0; j < dataComMap.size(); j++) { - if (Constant.WEB_FLAG) { + int batchSize = 10; // 定义一个批次大小 + for (int k = 0; k < dataComMap.size(); ) { + CountDownLatch countDownLatch = new CountDownLatch(Math.min(batchSize, dataComMap.size() - k)); + for (int j = 0; j < Math.min(batchSize, dataComMap.size() - k); j++) { + if (Constant.WEB_FLAG) { + break; + } + // 获取data_com口 + String dataCom = dataComMap.keySet().toArray(new String[0])[j]; + SerialPortThread myThread = new SerialPortThread(); + myThread.setName(threadName, dataCom.toLowerCase().replace("com", ""), countDownLatch); + Thread thread = new Thread(myThread); + comThreadPool.execute(thread); + } + // 等待执行完成 + countDownLatch.await(); + // 释放资源 + countDownLatch = null; + // 检查是否需要继续创建新的线程(未达到数据总数量且WEB_FLAG为false) + if (k + batchSize < dataComMap.size() && !Constant.WEB_FLAG) { + k += batchSize; + } else { break; } - // 获取data_com口 - String dataCom = dataComMap.keySet().toArray(new String[0])[j]; - SerialPortThread myThread = new SerialPortThread(); - myThread.setName(threadName, dataCom.toLowerCase().replace("com", ""), countDownLatch); - Thread thread = new Thread(myThread); - comThreadPool.execute(thread); } - // 等待执行完成 - countDownLatch.await(); - // 释放资源 - countDownLatch = null; } } } diff --git a/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle2.java b/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle2.java index c42c7e8..2eda6df 100644 --- a/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle2.java +++ b/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle2.java @@ -98,9 +98,16 @@ public class SerialPortSingle2 { //截取去掉FE String deviceType = deviceCodeParamEntity.getDeviceType(); String deviceAddr = deviceCodeParamEntity.getDeviceAddr(); - String dataStr = receiveData; - if ("水表".equals(deviceType) || "电表".equals(deviceType)) { - dataStr = receiveData.replace("FE", ""); + String dataStr = ""; +// if ("水表".equals(deviceType) || "电表".equals(deviceType)) { +// dataStr = receiveData.replace("FE", ""); +// } + if (receiveData.length() > 8 && ("水表".equals(deviceType) || "电表".equals(deviceType))) { + String str1 = receiveData.substring(0, 8); + String str2 = receiveData.substring(8); + dataStr = str1.replace("FE", "") + str2; + } else { + dataStr = receiveData; } String registerAddr = deviceCodeParamEntity.getRegisterAddr(); String brand = deviceCodeParamEntity.getBrand(); diff --git a/user-service/src/main/resources/application-prod.yml b/user-service/src/main/resources/application-prod.yml index 16512cb..a3d410d 100644 --- a/user-service/src/main/resources/application-prod.yml +++ b/user-service/src/main/resources/application-prod.yml @@ -19,10 +19,10 @@ spring: # username: test # password: minghan123456@ #华厦云服务器 - # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CHWS;allowMultiQueries=true - # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - # username: chws - # password: minghan123456@ +# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CHWS;allowMultiQueries=true +# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver +# username: chws +# password: minghan123456@ #创新服务器 # url: jdbc:sqlserver://119.29.33.133:2008;DatabaseName=chws_chx;allowMultiQueries=true # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver @@ -63,8 +63,8 @@ spring: fail-fast: false # 是否启用配置中心 enabled: ${SPRING_CLOUD_CONFIG_ENABLED:false} - # 配置中心地址 - uri: ${SPRING_CLOUD_CONFIG_URI:http://localhost:8763} +# # 配置中心地址 +# uri: ${SPRING_CLOUD_CONFIG_URI:http://localhost:8763} # redis: # database: 0 # host: 127.0.0.1 diff --git a/user-service/src/main/resources/application-test.yml b/user-service/src/main/resources/application-test.yml index 6ea6edf..697691c 100644 --- a/user-service/src/main/resources/application-test.yml +++ b/user-service/src/main/resources/application-test.yml @@ -61,8 +61,8 @@ spring: fail-fast: false # 是否启用配置中心 enabled: ${SPRING_CLOUD_CONFIG_ENABLED:false} - # 配置中心地址 - uri: ${SPRING_CLOUD_CONFIG_URI:http://localhost:8763} +# # 配置中心地址 +# uri: ${SPRING_CLOUD_CONFIG_URI:http://localhost:8763} # redis: # database: 0 # host: 127.0.0.1 diff --git a/user-service/src/main/resources/application.yml b/user-service/src/main/resources/application.yml index 9f96606..3d7808a 100644 --- a/user-service/src/main/resources/application.yml +++ b/user-service/src/main/resources/application.yml @@ -1,3 +1,3 @@ spring: profiles: - active: prod + active: dev