Selaa lähdekoodia

refactor(environment-hj212-service): 重构水质监测数据处理逻辑

- 移除 PsMonitorSzService 中的 void 方法,改为返回 List<PsMonitorSz>
- 重构 PsMonitorSzServiceImpl 中的 pushMonitorData 方法,优化数据处理逻辑
- 删除 MonitorDatasynch 中的冗余方法 setPsMonitorSz
- 调整 MonitorDatasynch 中的数据处理逻辑,移除不必要的步骤
林仔 1 vuosi sitten
vanhempi
commit
9c89ab7d04

+ 3 - 1
environment-hj212-service/src/main/java/com/zksy/environmentHJ212/service/PsMonitorSzService.java

@@ -4,6 +4,8 @@ package com.zksy.environmentHJ212.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.environmentHJ212.domain.po.PsMonitorSz;
 
+import java.util.List;
+
 /**
  * <p>
  * 表A.0.26 水质检测数据,属性表,关联监测点 服务类
@@ -13,5 +15,5 @@ import com.zksy.environmentHJ212.domain.po.PsMonitorSz;
  * @since 2021-06-08
  */
 public interface PsMonitorSzService extends IService<PsMonitorSz> {
-    void pushMonitorData(String oldDataStr,String[] dataArr,String ipPort);
+    List<PsMonitorSz> pushMonitorData(String oldDataStr, String[] dataArr, String ipPort);
 }

+ 74 - 9
environment-hj212-service/src/main/java/com/zksy/environmentHJ212/service/impl/PsMonitorSzServiceImpl.java

@@ -5,16 +5,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.environmentHJ212.domain.po.PsMonitorSz;
 import com.zksy.environmentHJ212.mapper.PsMonitorSzMapper;
 import com.zksy.environmentHJ212.service.PsMonitorSzService;
+import com.zksy.environmentHJ212.utils.DateTimeUtil;
 import com.zksy.environmentHJ212.utils.MonitorDatasynch;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * <p>
@@ -27,11 +27,76 @@ import java.util.UUID;
 @Slf4j
 @Service
 public class PsMonitorSzServiceImpl extends ServiceImpl<PsMonitorSzMapper, PsMonitorSz> implements PsMonitorSzService {
-    @Autowired
-    private PsMonitorSzService service;
     @Override
-    public void pushMonitorData(String oldDataStr, String[] dataArr, String ipPort) {
-        List<PsMonitorSz>  psMonitorSzList =MonitorDatasynch.setPsMonitorSz(oldDataStr, dataArr,ipPort);
-        service.saveBatch(psMonitorSzList);
+    public List<PsMonitorSz> pushMonitorData(String oldDataStr, String[] dataArr, String ipPort) {
+            ArrayList<String> arrayList = new ArrayList<>();
+            List<PsMonitorSz> psMonitorSzList = new ArrayList<>();
+            for (String param : dataArr) {
+                System.out.println("param = " + param);
+                String String = "&&";
+                boolean contains = param.contains(String);
+                if (contains) {
+                    param = param.replace(String, ",");
+
+                }
+                if (param.contains(",")) {
+                    arrayList.add(param);
+                }
+
+            }
+            ArrayList<String> objects = new ArrayList<>();
+            for (String entity : arrayList) {
+                String substring = null;
+                if (entity.contains("-")) {
+                    substring = entity.substring(0, entity.indexOf("-"));
+                }
+                if (StringUtils.isBlank(substring)) {
+                    continue;
+                }
+                if (entity.startsWith(substring)) {
+                    objects.add(substring);
+                    String[] split = entity.split(",");
+
+                    PsMonitorSz psMonitorSz = new PsMonitorSz();
+                    psMonitorSz.setRemark(oldDataStr);
+                    for (String parameters : split) {
+
+                        String[] split1 = parameters.split("=");
+                        psMonitorSz.setCode(substring);
+                        if (parameters.startsWith(substring + "-Rtd=")) {
+                            psMonitorSz.setRealTime(new BigDecimal(split1[1]));
+                        }
+                        if (parameters.startsWith(substring + "-Flag=")) {
+                            psMonitorSz.setFlag(split1[1]);
+                        }
+                        psMonitorSz.setRecordTime(LocalDateTime.now());
+                        psMonitorSz.setId(UUID.randomUUID().toString().replace("-", ""));
+                        for (String comParams : dataArr) {
+                            if (comParams.contains("&&") && !comParams.contains(",")) {
+                                String replace = comParams.replace("&&", ",");
+                                String[] split2 = replace.split(",");
+                                if (split2.length>1) {
+                                    String dateString = split2[1];
+                                    if (dateString.startsWith("DataTime=")) {
+                                        psMonitorSz.setSampleTime(DateTimeUtil.parseDateTime(dateString.split("=")[1]));
+                                    }
+                                }
+                            }
+                            String[] comsplit1 = comParams.split("=");
+                            String paraname = comsplit1[0];
+                            String value = comsplit1[1];
+                            if (paraname.equals("MN")) {
+                                psMonitorSz.setMn(value);
+                            }
+                            if (paraname.equals("Flag")) {
+                                psMonitorSz.setFlag(value);
+                            }
+                        }
+                    }
+                    psMonitorSz.setIpport(ipPort);
+                    psMonitorSzList.add(psMonitorSz);
+                }
+            }
+            return psMonitorSzList;
     }
 }

+ 2 - 74
environment-hj212-service/src/main/java/com/zksy/environmentHJ212/utils/MonitorDatasynch.java

@@ -83,7 +83,8 @@ public class MonitorDatasynch {
                         String host = ((InetSocketAddress)channelHandlerContext.channel().remoteAddress()).getAddress().getHostAddress();
                         int port = ((InetSocketAddress)channelHandlerContext.channel().remoteAddress()).getPort();
                         String ipPort = host+":"+port;
-                        psMonitorSzService.pushMonitorData(oldDataStr,dataArr,ipPort);
+                        List<PsMonitorSz> psMonitorSzList = psMonitorSzService.pushMonitorData(oldDataStr,dataArr,ipPort);
+                        psMonitorSzService.saveBatch(psMonitorSzList);
                     } else if ("2051".equals(cn.substring(3)) || "2061".equals(cn.substring(3))){
                         //分钟,小时数据
                         minuteDataInfoService.saveMonitordata(oldDataStr,dataArr);
@@ -103,79 +104,6 @@ public class MonitorDatasynch {
         }
         return response;
     }
-
-    public static List<PsMonitorSz> setPsMonitorSz(String oldDataStr,String[] dataArr,String ipPort) {
-        ArrayList<String> arrayList = new ArrayList<>();
-        List<PsMonitorSz> psMonitorSzList = new ArrayList<>();
-        for (String param : dataArr) {
-            System.out.println("param = " + param);
-            String String = "&&";
-            boolean contains = param.contains(String);
-            if (contains) {
-                param = param.replace(String, ",");
-
-            }
-            if (param.contains(",")) {
-                arrayList.add(param);
-            }
-
-        }
-        ArrayList<String> objects = new ArrayList<>();
-        for (String entity : arrayList) {
-            String substring = null;
-            if (entity.contains("-")) {
-                substring = entity.substring(0, entity.indexOf("-"));
-            }
-            if (StringUtils.isBlank(substring)) {
-                continue;
-            }
-            if (entity.startsWith(substring)) {
-                objects.add(substring);
-                String[] split = entity.split(",");
-
-                PsMonitorSz psMonitorSz = new PsMonitorSz();
-                psMonitorSz.setRemark(oldDataStr);
-                for (String parameters : split) {
-
-                    String[] split1 = parameters.split("=");
-                    psMonitorSz.setCode(substring);
-                    if (parameters.startsWith(substring + "-Rtd=")) {
-                        psMonitorSz.setRealTime(new BigDecimal(split1[1]));
-                    }
-                    if (parameters.startsWith(substring + "-Flag=")) {
-                        psMonitorSz.setFlag(split1[1]);
-                    }
-                    psMonitorSz.setRecordTime(LocalDateTime.now());
-                    psMonitorSz.setId(UUID.randomUUID().toString().replace("-", ""));
-                    for (String comParams : dataArr) {
-                        if (comParams.contains("&&") && !comParams.contains(",")) {
-                            String replace = comParams.replace("&&", ",");
-                            String[] split2 = replace.split(",");
-                            if (split2.length>1) {
-                                String dateString = split2[1];
-                                if (dateString.startsWith("DataTime=")) {
-                                    psMonitorSz.setSampleTime(DateTimeUtil.parseDateTime(dateString.split("=")[1]));
-                                }
-                            }
-                        }
-                        String[] comsplit1 = comParams.split("=");
-                        String paraname = comsplit1[0];
-                        String value = comsplit1[1];
-                        if (paraname.equals("MN")) {
-                            psMonitorSz.setMn(value);
-                        }
-                        if (paraname.equals("Flag")) {
-                            psMonitorSz.setFlag(value);
-                        }
-                    }
-                }
-                psMonitorSz.setIpport(ipPort);
-                psMonitorSzList.add(psMonitorSz);
-            }
-        }
-        return psMonitorSzList;
-    }
-
     public static List<MinuteDataInfo> minuteDataInfoData(String oldDataStr,String[] dataArr) {
         ArrayList<String> arrayList = new ArrayList<>();
         List<MinuteDataInfo> minuteDataInfolist = new ArrayList<>();