From ec63fb17c5ba3e5b2a5a4106c25b4e249a2f980f Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 22 十一月 2022 18:44:51 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java |   52 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java
index 884840e..8e63a65 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java
@@ -5,6 +5,7 @@
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.service.impl.BaseServiceImpl;
 import com.sandu.common.util.SpringContextHolder;
+import com.sandu.ximon.admin.newnova.led.NewNovaLedService;
 import com.sandu.ximon.admin.param.PoleBindingParam;
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.dao.domain.*;
@@ -12,6 +13,7 @@
 import com.sandu.ximon.dao.mapper.PoleBindingMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -32,6 +34,7 @@
      * @param param
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public boolean bindPole(Long poleId, PoleBindingParam param) {
         Integer deviceType = param.getDeviceType();
 
@@ -59,7 +62,12 @@
                     throw new BusinessException("鐏潌mac涓虹┖,鏃犳硶缁戝畾澶ф皵璁惧");
                 }
 
-                size = SpringContextHolder.getBean(AirEquipmentService.class).list(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, param.getDeviceCode())).size();
+                int size1 = SpringContextHolder.getBean(AirEquipmentService.class).list(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, param.getDeviceCode())).size();
+                int size2 = SpringContextHolder.getBean(AirEquipmentNongGengService.class).list(Wrappers.lambdaQuery(AirEquipmentNongGeng.class).eq(AirEquipmentNongGeng::getMac, param.getDeviceCode())).size();
+                //涓�閿眰鍔╀袱绫荤‖浠�
+                if (size1 > 0 || size2 > 0) {
+                    size = 1;
+                }
                 break;
             case PoleBindingEnums.WATER:
                 size = SpringContextHolder.getBean(WaterQualityEquipmentService.class).list(Wrappers.lambdaQuery(WaterQualityEquipment.class).eq(WaterQualityEquipment::getWaterQualityEquipmentCode, param.getDeviceCode())).size();
@@ -77,10 +85,10 @@
                 size = SpringContextHolder.getBean(LightPoleHeelingEquipmentService.class).list(Wrappers.lambdaQuery(LightPoleHeelingEquipment.class).eq(LightPoleHeelingEquipment::getMac, param.getDeviceCode())).size();
                 break;
             case PoleBindingEnums.FOR_HELP:
-                int size1 = SpringContextHolder.getBean(InterphoneHostService.class).list(Wrappers.lambdaQuery(InterphoneHost.class).eq(InterphoneHost::getHostMac, param.getDeviceCode())).size();
-                int size2 = SpringContextHolder.getBean(InterphoneSubService.class).list(Wrappers.lambdaQuery(InterphoneSub.class).eq(InterphoneSub::getSubMac, param.getDeviceCode())).size();
+                int size3 = SpringContextHolder.getBean(InterphoneHostService.class).list(Wrappers.lambdaQuery(InterphoneHost.class).eq(InterphoneHost::getHostMac, param.getDeviceCode())).size();
+                int size4 = SpringContextHolder.getBean(InterphoneSubService.class).list(Wrappers.lambdaQuery(InterphoneSub.class).eq(InterphoneSub::getSubMac, param.getDeviceCode())).size();
                 //涓�閿眰鍔╀袱绫荤‖浠�
-                if (size1 > 0 || size2 > 0) {
+                if (size3 > 0 || size4 > 0) {
                     size = 1;
                 }
                 break;
@@ -90,6 +98,9 @@
             case PoleBindingEnums.ATMOSPHERIC_NONG_GENG:
                 size = SpringContextHolder.getBean(AirEquipmentNongGengService.class).list(Wrappers.lambdaQuery(AirEquipmentNongGeng.class).eq(AirEquipmentNongGeng::getMac, param.getDeviceCode())).size();
                 break;
+            case PoleBindingEnums.NEW_NOVA:
+                size = SpringContextHolder.getBean(NewNovaLedService.class).list(Wrappers.lambdaQuery(NewNovaLed.class).eq(NewNovaLed::getSn, param.getDeviceCode())).size();
+                break;
             default:
                 break;
         }
@@ -98,7 +109,7 @@
         }
 
 
-        LambdaQueryWrapper<PoleBinding> eq = Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId);
+        LambdaQueryWrapper<PoleBinding> eq = Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceType, param.getDeviceType()).eq(PoleBinding::getPoleId, poleId);
         List<PoleBinding> list = list(eq);
         if (list.size() != 0) {
             for (PoleBinding poleBinding : list) {
@@ -109,7 +120,8 @@
             }
         }
 
-        PoleBinding one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, param.getDeviceCode()));
+        PoleBinding one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, param.getDeviceCode())
+                .eq(PoleBinding::getDeviceType, param.getDeviceType()));
         if (one == null) {
             //鍏呯數妗╀繚瀛樼粦瀹氬叧绯婚渶瑕佸厛鍒ゆ柇鏄笉鏄纭殑鐏潌
             if (deviceType == 2) {
@@ -158,6 +170,7 @@
             one.setDeviceName(param.getDeviceName());
             one.setDeviceCode(param.getDeviceCode());
             return updateById(one);
+
         }
     }
 
@@ -176,6 +189,31 @@
             one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode));
         } else {
             one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode).eq(PoleBinding::getPoleId, poleId));
+        }
+        if (one != null) {
+            return removeById(one.getId());
+        } else {
+            throw new BusinessException("璁惧涓嶅瓨鍦ㄧ粦瀹氭儏鍐垫垨鐏潌ID涓嶆纭�");
+        }
+    }
+
+
+    /**
+     * 鐏潌瑙g粦璁惧锛屽垹闄よ澶囧墠闇�瑕佽В缁�
+     *
+     * @param deviceCode
+     */
+    public boolean unBindPole(Long poleId, String deviceCode, Integer deviceType) {
+        if (deviceCode == null) {
+            throw new BusinessException("璁惧缂栧彿涓嶈兘涓虹┖");
+        }
+        PoleBinding one;
+        //鐩存帴鍒犻櫎璁惧涓嶉渶瑕佺伅鏉咺D
+        if (poleId == null) {
+            one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode).eq(PoleBinding::getDeviceType, deviceType));
+        } else {
+            one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode)
+                    .eq(PoleBinding::getDeviceType, deviceType).eq(PoleBinding::getPoleId, poleId));
         }
         if (one != null) {
             return removeById(one.getId());
@@ -211,7 +249,7 @@
     }
 
     public PoleBinding getPoleIdByMac(String deviceCode) {
-        return getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode));
+        return getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode).eq(PoleBinding::getDeviceType, 0));
     }
 
 

--
Gitblit v1.9.3