From 114137f4a22238e0ea679c4a1a8e59014ef5772f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <13281114856@qq.com>
Date: Tue, 7 Mar 2023 17:28:52 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97=E8=AE=B0?=
 =?UTF-8?q?=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/mortals/xhx/common/key/Constant.java  |  4 +
 .../module/device/service/DeviceService.java  |  4 +-
 .../service/impl/DeviceServiceImpl.java       | 80 ++++++++++---------
 3 files changed, 50 insertions(+), 38 deletions(-)

diff --git a/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java b/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java
index 7b20e2ec..0fdb8194 100644
--- a/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java
+++ b/device-manager/src/main/java/com/mortals/xhx/common/key/Constant.java
@@ -125,6 +125,10 @@ public final class Constant {
      */
     public static final String MESSAGETYPE_NOTIFY_RESTART_APP = "restartapp";
 
+    public static final String MESSAGETYPE_WAIT = "wait";
+
+    public static final String MESSAGETYPE_WAITQUEUE = "waitqueue";
+
     /**
      * 娑堟伅绫诲瀷(upgread)
      */
diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java
index 376bada9..a39c4f41 100644
--- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java
+++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceService.java
@@ -1,4 +1,6 @@
 package com.mortals.xhx.module.device.service;
+
+import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.service.ICRUDCacheService;
 import com.mortals.xhx.busiz.rsp.ApiResp;
@@ -56,7 +58,7 @@ public interface DeviceService extends ICRUDCacheService<DeviceEntity,Long>{
 
 
 
-    void sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update);
+    Rest<String> sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update);
 
 
     void putCache(String key,DeviceEntity deviceEntity);
diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java
index 22df532d..3139b4c1 100644
--- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java
+++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java
@@ -331,18 +331,22 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
     }
 
     @Override
-    public void sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update) {
+    public Rest<String> sendThirdParty(DeviceEntity entity, ProductEntity productEntity, PlatformEntity platformEntity, DeviceMethodEnum update) {
         DeviceReq deviceReq = new DeviceReq();
         BeanUtils.copyProperties(entity, deviceReq, BeanUtil.getNullPropertyNames(entity));
         deviceReq.setDeviceStatus(update.getValue());
         deviceReq.setProductCode(productEntity.getProductCode());
-        deviceReq.setDeviceInBuilding(entity.getDeviceInBuilding()==null?0:entity.getDeviceInBuilding());
-        deviceReq.setDeviceInFloor(entity.getDeviceInFloor()==null?0:entity.getDeviceInFloor());
+        deviceReq.setDeviceInBuilding(entity.getDeviceInBuilding() == null ? 0 : entity.getDeviceInBuilding());
+        deviceReq.setDeviceInFloor(entity.getDeviceInFloor() == null ? 0 : entity.getDeviceInFloor());
         //http://192.168.0.98:8090/inter/device/deviceIn
         String phpInUrl = GlobalSysInfo.getParamValue(PARAM_SERVER_PHP_IN_HTTP_URL, "http://172.15.28.116:8090");
         ApiResp<String> resp = messageService.sendThirdParty(UrlBuilder.of(phpInUrl).addPath(thirdPartyPath).build(), deviceReq);
         log.info("sendThirtyis resp ==>{}", JSON.toJSONString(resp));
 
+        if (resp.getCode() == YesNoEnum.YES.getValue()) {
+            return Rest.ok("鎴愬姛锛�");
+        }
+        return Rest.fail(resp.getMsg());
     }
 
     @Override
@@ -377,7 +381,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
             deviceStatEntity.setCreateTime(new Date());
 
             deviceStatEntity.setYear(calendar.get(Calendar.YEAR));
-            deviceStatEntity.setMonth(calendar.get(Calendar.MONTH)+1);
+            deviceStatEntity.setMonth(calendar.get(Calendar.MONTH) + 1);
             deviceStatEntity.setDay(calendar.get(Calendar.DAY_OF_MONTH));
         }
 
@@ -391,7 +395,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
             yesterdayDeviceStat = new DeviceStatEntity();
             yesterdayDeviceStat.initAttrValue();
             yesterdayDeviceStat.setSiteId(siteId);
-           // yesterdayDeviceStat.setYear(DateUtil.year(DateUtil.yesterday()));
+            // yesterdayDeviceStat.setYear(DateUtil.year(DateUtil.yesterday()));
             yesterdayDeviceStat.setYear(calendar.get(Calendar.YEAR));
         }
         try {
@@ -433,7 +437,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
             deviceStatEntity.setDeviceOnlineCount(deviceOnlineCount.intValue());
             //鍦ㄧ嚎鐜�=鍦ㄧ嚎璁惧/鎵€鏈夋縺娲昏澶�
             if (deviceActiveCount > 0) {
-                deviceStatEntity.setDeviceOnlineRatio(new BigDecimal(deviceOnlineCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN));
+                deviceStatEntity.setDeviceOnlineRatio(new BigDecimal(deviceOnlineCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN));
             }
 
             //绂荤嚎鏁伴噺
@@ -444,7 +448,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
                     .count();
             deviceStatEntity.setDeviceOfflineCount(deviceOfflineCount.intValue());
             if (deviceActiveCount > 0) {
-                deviceStatEntity.setDeviceOfflineRatio(new BigDecimal(deviceOfflineCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN));
+                deviceStatEntity.setDeviceOfflineRatio(new BigDecimal(deviceOfflineCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN));
             }
             //鍋滅敤鏁伴噺
             Long deviceStopCount = deviceList.parallelStream()
@@ -453,13 +457,13 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
                     .count();
             deviceStatEntity.setDeviceStopCount(deviceStopCount.intValue());
             if (deviceActiveCount > 0) {
-                deviceStatEntity.setDeviceStopRatio(new BigDecimal(deviceStopCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN));
+                deviceStatEntity.setDeviceStopRatio(new BigDecimal(deviceStopCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN));
             }
 
 
             deviceStatEntity.setDeviceUnActiveCount(deviceUnActiveCount.intValue());
             if (deviceActiveCount > 0) {
-                deviceStatEntity.setDeviceUnActiveRatio(new BigDecimal(deviceUnActiveCount).divide(new BigDecimal(deviceActiveCount),2, ROUND_HALF_DOWN));
+                deviceStatEntity.setDeviceUnActiveRatio(new BigDecimal(deviceUnActiveCount).divide(new BigDecimal(deviceActiveCount), 2, ROUND_HALF_DOWN));
             }
 
             //浠婃棩鍛婅鏁伴噺
@@ -573,38 +577,40 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
 
     @Override
     protected void removeBefore(Long[] ids, Context context) throws AppException {
-        Arrays.asList(ids).stream().forEach(id -> {
+
+        Long[] removeIds = Arrays.asList(ids).stream().map(id -> {
             DeviceEntity deviceEntity = this.get(id, context);
             if (!ObjectUtils.isEmpty(deviceEntity)) {
-                TbQueueCallback callback = new TbQueueCallback() {
-                    @Override
-                    public void onSuccess(TbQueueMsgMetadata metadata) {
-                        log.info("闃熷垪鍒犻櫎鎴愬姛");
-                    }
-
-                    @Override
-                    public void onFailure(Throwable t) {
-                        log.error("闃熷垪鍒犻櫎澶辫触", t);
-
-                    }
-                };
-
-                messageProducer.queueDelete(Constant.UPLOAD_TOPIC + deviceEntity.getDeviceCode());
-                messageProducer.queueDelete(Constant.DOWN_TOPIC + deviceEntity.getDeviceCode());
-
-                //messageService.delQueue(Constant.UPLOAD_TOPIC + deviceEntity.getDeviceCode(), callback);
-                //messageService.delQueue(Constant.DOWN_TOPIC + deviceEntity.getDeviceCode(), callback);
-
                 PlatformEntity platformEntity = platformService.get(deviceEntity.getPlatformId());
                 ProductEntity productEntity = productService.get(deviceEntity.getProductId());
                 if (!ObjectUtils.isEmpty(platformEntity) && !ObjectUtils.isEmpty(productEntity)) {
-                    sendThirdParty(deviceEntity, productEntity, platformEntity, DeviceMethodEnum.DEL);
+                    Rest<String> thirtyRest = sendThirdParty(deviceEntity, productEntity, platformEntity, DeviceMethodEnum.DEL);
+                    if (YesNoEnum.YES.getValue() == thirtyRest.getCode()) {
+
+                        TbQueueCallback callback = new TbQueueCallback() {
+                            @Override
+                            public void onSuccess(TbQueueMsgMetadata metadata) {
+                                log.info("闃熷垪鍒犻櫎鎴愬姛");
+                            }
+
+                            @Override
+                            public void onFailure(Throwable t) {
+                                log.error("闃熷垪鍒犻櫎澶辫触", t);
+
+                            }
+                        };
+                        messageProducer.queueDelete(Constant.UPLOAD_TOPIC + deviceEntity.getDeviceCode());
+                        messageProducer.queueDelete(Constant.DOWN_TOPIC + deviceEntity.getDeviceCode());
+
+                        //鍒犻櫎鎵╁睍extKey
+                        this.removeCache(deviceEntity.getDeviceCode());
+                        return id;
+                    }
                 }
-                //鍒犻櫎鎵╁睍extKey
-                this.removeCache(deviceEntity.getDeviceCode());
             }
-        });
-        super.removeBefore(ids, context);
+            return null;
+        }).toArray(Long[]::new);
+        super.removeBefore(removeIds, context);
     }
 
     @Override
@@ -756,15 +762,15 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
 
         System.out.println(add.toString());
 
-        int deviceOnlineCount=157;
+        int deviceOnlineCount = 157;
 
-        int deviceActiveCount=637;
+        int deviceActiveCount = 637;
 
         BigDecimal bigDecimalend = new BigDecimal(deviceOnlineCount);
         BigDecimal bigDecimal2 = new BigDecimal(deviceActiveCount);
 
 
-        BigDecimal bigDecimal1 = bigDecimalend.divide(bigDecimal2,2, ROUND_HALF_DOWN);
+        BigDecimal bigDecimal1 = bigDecimalend.divide(bigDecimal2, 2, ROUND_HALF_DOWN);
 
         System.out.println(bigDecimal1.toString());
 
-- 
2.24.3