From dda268997ca8f8a364f7c19b45d7a43a50a98efe Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 25 十月 2022 18:00:11 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java
index 1da682a..44e8bb1 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java
@@ -5,15 +5,24 @@
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.common.util.SpringContextHolder;
+import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereOperationReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.request.AtmosphereSetHeartBeatTimeReqInnerFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
 import com.sandu.ximon.admin.manager.iot.rrpc.enums.AtmoFunctionCode;
+import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.utils.RedisUtils;
 import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
+import com.sandu.ximon.admin.utils.StringUtil;
 import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo;
 import com.sandu.ximon.dao.domain.AirEquipmentNongGeng;
 import com.sandu.ximon.dao.mapper.AirEquipmentNongGengMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -66,6 +75,7 @@
             airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, SecurityUtils.getUserId());
         }
 
+
         return airEquipmentBos;
     }
 
@@ -115,6 +125,9 @@
      */
     public AirEquipmentNongGeng getAirEquipment(String mac) {
         AirEquipmentNongGeng one = getOne(Wrappers.lambdaQuery(AirEquipmentNongGeng.class).eq(AirEquipmentNongGeng::getMac, mac));
+        if (one == null) {
+            throw new BusinessException("澶ф皵璁惧涓嶅瓨鍦紒");
+        }
         if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG_STATE.getCode() + mac) != null) {
             one.setState(1);
         } else {
@@ -122,4 +135,66 @@
         }
         return one;
     }
+
+    /**
+     * 璁剧疆澶ф皵璁惧蹇冭烦鍖呴棿闅旀椂闂�
+     *
+     * @param mac
+     * @param time
+     */
+    public String setHeartBeatTime(String mac, Integer time) {
+        if (StringUtil.strIsNullOrEmpty(mac)) {
+            throw new BusinessException("鐏潌mac鍙傛暟閿欒锛�");
+        }
+        if (time == null) {
+            throw new BusinessException("蹇冭烦鍖呴棿闅旀椂闂翠笉鑳戒负绌猴紒");
+        }
+
+        if (time < 30) {
+            throw new BusinessException("蹇冭烦鍖呴棿闅旀椂闂翠笉鑳藉皯浜�30s锛�");
+        }
+        AirEquipmentNongGeng airEquipmentNongGeng = SpringContextHolder.getBean(AirEquipmentNongGengService.class).
+                getOne(Wrappers.lambdaQuery(AirEquipmentNongGeng.class).eq(AirEquipmentNongGeng::getMac, mac).last("limit 1"));
+        if (airEquipmentNongGeng == null) {
+            throw new BusinessException("澶ф皵璁惧涓嶅瓨鍦紒");
+        }
+
+        AtmosphereSetHeartBeatTimeReqInnerFrame atmosphereSetHeartBeatTimeReqInnerFrame = new AtmosphereSetHeartBeatTimeReqInnerFrame(time);
+        A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode(), atmosphereSetHeartBeatTimeReqInnerFrame);
+        System.out.println(a5Frame + "          --------a5Frame");
+        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(mac, a5Frame);
+        System.out.println(commonFrame + "         -----------commonFrame");
+
+        A5AtmosphereOperationReportInnerFrame a5AtmosphereOperationReportInnerFrame
+                = new A5AtmosphereOperationReportInnerFrame().transformFrame(commonFrame.getPayload());
+        if (a5AtmosphereOperationReportInnerFrame != null && a5AtmosphereOperationReportInnerFrame.isValidate()) {
+            return a5AtmosphereOperationReportInnerFrame.getState();
+        } else {
+            throw new BusinessException("鏁版嵁鏍¢獙寮傚父锛�");
+        }
+    }
+
+
+    /**
+     * 璁剧疆绫诲瀷
+     *
+     * @param param
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public boolean setAirEquipmentType(AirEquipmentNongGeng param) {
+        if (param.getType() == null || param.getId() == null || param.getType().isEmpty()) {
+            throw new BusinessException("璁惧id鎴栫被鍨嬩笉鑳戒负绌�");
+        }
+        if (!"0".equals(param.getType()) && !"1".equals(param.getType()) && !"2".equals(param.getType())) {
+            throw new BusinessException("璁惧绫诲瀷涓嶆纭�");
+        }
+        AirEquipmentNongGeng byId = getById(param.getId());
+        if (byId == null) {
+            throw new BusinessException("璁惧id閿欒鎴栬澶囦笉瀛樺湪!");
+        }
+        byId.setType(param.getType());
+
+        return updateById(byId);
+    }
 }

--
Gitblit v1.9.3