From b1c572949997a5d82d9b609163ff280a1c49627d Mon Sep 17 00:00:00 2001
From: vince <757871790@qq.com>
Date: 星期五, 26 四月 2024 14:09:45 +0800
Subject: [PATCH] 粮情协议优化

---
 src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java |   98 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 70 insertions(+), 28 deletions(-)

diff --git a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
index bda41b6..067e3d9 100644
--- a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
+++ b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
@@ -5,14 +5,12 @@
 import com.bstek.dorado.annotation.Expose;
 import com.fzzy.api.Constant;
 import com.fzzy.api.data.ApiCommonDevice;
+import com.fzzy.api.data.DepotType;
+import com.fzzy.api.data.GatewayDeviceType;
 import com.fzzy.api.utils.ContextUtil;
-import com.fzzy.async.fzzy40.Fzzy40CommonService;
 import com.fzzy.gateway.GatewayUtils;
-import com.fzzy.gateway.api.GatewayRemoteManager;
 import com.fzzy.gateway.entity.GatewayDevice;
 import com.fzzy.gateway.service.repository.GatewayDeviceRep;
-import com.fzzy.mqtt.MqttProviderConfig;
-import com.fzzy.mqtt.MqttPublishService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.Sort;
@@ -20,6 +18,7 @@
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -45,36 +44,19 @@
 
         List<GatewayDevice> result = new ArrayList<>();
 
-        ApiCommonDevice apiCommonDevice;
+        ApiCommonDevice commonDevice;
         for (GatewayDevice device : list) {
-
-            apiCommonDevice = Constant.getCommonDeviceCache(device.getDeviceSn());
-            if (null != apiCommonDevice) {
-                device.setIp(apiCommonDevice.getIp());
-                device.setPort(apiCommonDevice.getPort());
-                device.setStatus(apiCommonDevice.getStatus());
-                device.setOnlineTime(apiCommonDevice.getOnlineTime());
+            commonDevice = Constant.getCommonDeviceCache(device.getDeviceSn());
+            if (null != commonDevice) {
+                device.setIp(commonDevice.getIp());
+                device.setPort(commonDevice.getPort());
+                device.setStatus(commonDevice.getStatus());
+                device.setOnlineTime(commonDevice.getOnlineTime());
             }
             result.add(device);
         }
         return result;
     }
-
-//    /**
-//     * gatewayDeviceService#getQuery
-//     *
-//     * @return
-//     */
-//    @DataProvider
-//    public GateWayTestParam getQuery() {
-//        GateWayTestParam param = new GateWayTestParam();
-//        param.setDayTime(new Date());
-//        param.setCarNumber("宸滱12345");
-//        param.setEnd(new Date());
-//        param.setStart(new Date());
-//        param.setWeight(25000.00);
-//        return param;
-//    }
 
     /**
      * gatewayDeviceService#updateSave
@@ -86,12 +68,26 @@
         GatewayDevice data2 = new GatewayDevice();
         BeanUtils.copyProperties(data, data2);
 
+
+        if (null == data2.getStatus()) {
+            data.setStatus(Constant.YN_Y);
+
+            if (GatewayDeviceType.TYPE_07.equals(data2.getType())) {
+                data.setStatus(Constant.YN_N);
+            }
+
+        }
+
         if (null == data2.getDeviceSn()) {
             if (null != data2.getIp()) {
                 data.setDeviceSn(data2.getIp());
             } else {
                 data.setDeviceSn(data2.getDeviceId());
             }
+        }
+
+        if (null == data2.getDepotType()) {
+            data2.setDepotType(DepotType.TYPE_01.getCode());
         }
 
         if (null == data2.getId()) {
@@ -102,6 +98,15 @@
         }
         flushCache();
     }
+
+    public void updateData(GatewayDevice device) {
+        device.setStatus(Constant.YN_Y);
+
+        gatewayDeviceRep.save(device);
+
+        flushCacheOne(device);
+    }
+
 
     /**
      * gatewayDeviceService#delData
@@ -128,10 +133,47 @@
         }
     }
 
+    private void flushCacheOne(GatewayDevice device) {
+        GatewayUtils.add2Cache(device);
+    }
+
 
     @Expose
     public String test() {
         log.info("-----------test-------------------");
         return "SUCCESS";
     }
+
+    /**
+     * 鏍规嵁瀹為檯閫氳鍒嗘満璁剧疆锛屽綋鍓嶅垎鏈哄湪绾�
+     *
+     * @param commonDevice 瀹為檯閫氳璁惧
+     */
+    public void onlineByCommonDevice(ApiCommonDevice commonDevice) {
+        List<GatewayDevice> list = GatewayUtils.getCacheByDeviceSn2(commonDevice.getSn());
+        if (null == list || list.isEmpty()) return;
+
+        for (GatewayDevice device : list) {
+            device.setIp(commonDevice.getIp());
+            device.setPort(commonDevice.getPort());
+            device.setOnlineTime(new Date());
+            device.setStatus(Constant.YN_Y);
+            device.setDeviceSn(commonDevice.getSn());
+            GatewayUtils.add2Cache(device);
+        }
+    }
+
+    public void OfflineByCommonDevice(ApiCommonDevice commonDevice) {
+        List<GatewayDevice> list = GatewayUtils.getCacheByDeviceSn2(commonDevice.getSn());
+        if (null == list || list.isEmpty()) return;
+
+        for (GatewayDevice device : list) {
+            device.setIp(commonDevice.getIp());
+            device.setPort(commonDevice.getPort());
+            device.setStatus(Constant.YN_N);
+            GatewayUtils.add2Cache(device);
+        }
+    }
+
+
 }

--
Gitblit v1.9.3