From e55c8b0a92eb9715edd90c31dfd4de51a47b588b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 04 十一月 2022 17:40:08 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java                  |   14 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java                |    8 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java                      |   10 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java               |    8 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java                        |   54 ++++--
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java |    6 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LedSFileController.java                 |    6 
 dao/src/main/resources/mapper/LightMapper.xml                                                      |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java                    |   11 
 ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Base64Util.java                              |   49 ++++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java                     |    8 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java                   |   44 ++--
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedSFileService.java                       |   13 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java                    |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/XiXunController.java                    |   12 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java                 |   12 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java           |    8 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java                |    7 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java                           |   14 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java             |    8 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java                     |    6 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java                |   61 ++++---
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java                 |   21 +-
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/util/SupplementUtils.java         |   12 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java          |   15 -
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java                  |   12 +
 26 files changed, 266 insertions(+), 157 deletions(-)

diff --git a/dao/src/main/resources/mapper/LightMapper.xml b/dao/src/main/resources/mapper/LightMapper.xml
index 7091338..9aa1194 100644
--- a/dao/src/main/resources/mapper/LightMapper.xml
+++ b/dao/src/main/resources/mapper/LightMapper.xml
@@ -75,7 +75,7 @@
                 )
             </if>
             <if test="deviceCode != null and deviceCode!= ''">
-                AND t2.device_code = #{deviceCode}
+                AND t1.device_code = #{deviceCode}
             </if>
         </where>
     </select>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java
index bb3e406..c991ffc 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java
@@ -43,16 +43,16 @@
         return ResponseUtil.success(ipVolumeFileService.addFile(fileParam));
     }
 
-    @PostMapping("/delete/{fileId}")
-    public ResponseVO<Object> deleteFile(@PathVariable Long fileId) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> deleteFile(@RequestBody List<Long> fileIds) {
         if (!permissionConfig.check(MenuEnum.IP_BROADCAST_FILE_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        List<BroadcastV2TaskFile> list = v2TaskFileService.list(Wrappers.lambdaQuery(BroadcastV2TaskFile.class).eq(BroadcastV2TaskFile::getFileId, fileId));
+        List<BroadcastV2TaskFile> list = v2TaskFileService.list(Wrappers.lambdaQuery(BroadcastV2TaskFile.class).in(BroadcastV2TaskFile::getFileId, fileIds));
         if (list.size() != 0) {
             throw new BusinessException("姝ゆ枃浠舵鍦ㄨ鍏朵粬浠诲姟鍗犵敤");
         }
-        return ResponseUtil.success(ipVolumeFileService.deleteFile(fileId));
+        return ResponseUtil.success(ipVolumeFileService.deleteFile(fileIds));
     }
 
     @GetMapping("/list")
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java
index ebf4b1f..f156b2d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java
@@ -1,19 +1,16 @@
 package com.sandu.ximon.admin.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.pagehelper.PageHelper;
 import com.sandu.common.domain.ResponseVO;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.util.ResponseUtil;
 import com.sandu.ximon.admin.param.IpVolumeMissionParam;
 import com.sandu.ximon.admin.security.PermissionConfig;
-import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.service.IpVolumeMissionService;
-import com.sandu.ximon.dao.domain.IpVolumeMission;
 import com.sandu.ximon.dao.enums.MenuEnum;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @Author liuhaonan
@@ -77,13 +74,13 @@
 
     }
 
-    @PostMapping("/delete/{taskId}")
-    public ResponseVO<Object> deleteMission(@PathVariable Integer taskId) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> deleteMission(@RequestBody List<Integer> taskIds) {
         if (!permissionConfig.check(MenuEnum.IP_BROADCAST_TASK_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
         //  0锛氭垚鍔�   1锛氫换鍔′笉澶勪簬绌洪棽鐘舵�� 2:鏈嶅姟鍣ㄥ垹闄ゅけ璐�
-        Integer result = ipVolumeMissionService.deleteMission(taskId);
+        Integer result = ipVolumeMissionService.deleteMission(taskIds);
         if (result == 0) {
             return ResponseUtil.success("鍒犻櫎鎴愬姛");
         } else if (result == 1) {
@@ -106,7 +103,7 @@
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
 
-        return ResponseUtil.successPage(ipVolumeMissionService.missionList(baseConditionVO, keyword,order,seq));
+        return ResponseUtil.successPage(ipVolumeMissionService.missionList(baseConditionVO, keyword, order, seq));
     }
 
     //鑾峰彇浠诲姟璇︽儏
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java
index acd8656..060437d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java
@@ -11,6 +11,8 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * LED鑺傜洰澶勭悊
  */
@@ -46,12 +48,12 @@
     }
 
 
-    @PostMapping("/delete/{pid}")
-    public ResponseVO<Object> deleteLEDProgram(@PathVariable Long pid) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> deleteLEDProgram(@RequestBody List<Long> pids) {
         if (!permissionConfig.check(MenuEnum.LED_N_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        return ResponseUtil.success(ledProgramService.deleteProgram(pid));
+        return ResponseUtil.success(ledProgramService.deleteProgram(pids));
     }
 
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java
index 03e6259..9eb35d5 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java
@@ -14,6 +14,8 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * @Author liuhaonan
  * @Date 2021/12/21 11:35
@@ -36,12 +38,12 @@
         return ResponseUtil.success(ledProgramFileService.addProgramFile(param));
     }
 
-    @PostMapping("/delete/{fileId}")
-    public ResponseVO<Object> deleteLEDProgram(@PathVariable Long fileId) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> deleteLEDProgram(@RequestBody List<Long> fileIds) {
         if (!permissionConfig.check(MenuEnum.LED_FILE_N_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        return ResponseUtil.success(ledProgramFileService.deleteFile(fileId));
+        return ResponseUtil.success(ledProgramFileService.deleteFile(fileIds));
     }
 
     @GetMapping("/list")
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LedSFileController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LedSFileController.java
index 5864c4d..15a807e 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LedSFileController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LedSFileController.java
@@ -46,12 +46,12 @@
 //        return ResponseUtil.success(aliOssFileService.uploadFile(file));
     }
 
-    @PostMapping("/delete/{fileId}")
-    public ResponseVO<Object> deleteLEDProgram(@PathVariable Long fileId) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> deleteLEDProgram(@RequestBody List<Long> fileIds) {
         if (!permissionConfig.check(MenuEnum.LED_FILE_S_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        return ResponseUtil.success(ledProgramFileService.deleteFile(fileId));
+        return ResponseUtil.success(ledProgramFileService.deleteFile(fileIds));
     }
 
     @GetMapping("/list")
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java
index f4a8413..f55087d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java
@@ -4,14 +4,9 @@
 import com.github.pagehelper.util.StringUtil;
 import com.sandu.common.domain.ResponseVO;
 import com.sandu.common.execption.BusinessException;
-import com.sandu.common.security.annotation.AnonymousAccess;
 import com.sandu.common.util.ResponseUtil;
 import com.sandu.common.util.SpringContextHolder;
 import com.sandu.ximon.admin.manager.iot.frame.A1Frame;
-import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
-import com.sandu.ximon.admin.manager.iot.frame.FrameBuilder;
-import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame;
-import com.sandu.ximon.admin.manager.iot.frame.inner.request.A1TernaryCodeReqInnerFrame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.request.MainBoardDataTransparentReqInnerFrame;
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonRequest;
@@ -21,19 +16,20 @@
 import com.sandu.ximon.admin.param.MQTTTestPrarm;
 import com.sandu.ximon.admin.security.PermissionConfig;
 import com.sandu.ximon.admin.service.PoleService;
+import com.sandu.ximon.admin.utils.Base64Util;
 import com.sandu.ximon.dao.domain.Pole;
 import com.sandu.ximon.dao.enums.MenuEnum;
 import lombok.AllArgsConstructor;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+import java.util.LinkedHashMap;
+import java.util.Map;
 
 /**
  * MQTT娴嬭瘯
@@ -75,7 +71,10 @@
 
         InvokeParam param = new InvokeParam();
         param.setOperate("1001");
-        param.setFrame(mqttTestPrarm.getFrameStr());
+        //瀛楃涓瞞qttTestPrarm.getFrameStr()杞琤ase64
+        String frame = Base64Util.toBase64Frame(mqttTestPrarm.getFrameStr());;
+        System.out.println("frame: "+frame);
+        param.setFrame(frame);
         CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(pole.getDeviceCode(), param);
         if (commonFrame == null || !commonFrame.isValidate()) {
             throw new BusinessException("鍝嶅簲鏁版嵁鏍¢獙澶辫触锛岃閲嶆柊璇锋眰鏁版嵁锛�");
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
index 2d672a3..e057fee 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
@@ -14,6 +14,8 @@
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 鎽勫儚澶�
  */
@@ -43,9 +45,9 @@
         //杩斿洖鏌ヨ鐨勬憚鍍忓ご淇℃伅鍒楄〃
         CommonPage commonPage;
         if (monitorParam == null) {
-            commonPage = monitorService.listMonitorByKeyword(baseConditionVO,order,seq, new MonitorParam());
+            commonPage = monitorService.listMonitorByKeyword(baseConditionVO, order, seq, new MonitorParam());
         } else {
-            commonPage = monitorService.listMonitorByKeyword(baseConditionVO,order,seq, monitorParam);
+            commonPage = monitorService.listMonitorByKeyword(baseConditionVO, order, seq, monitorParam);
         }
 
         return ResponseUtil.success(commonPage);
@@ -55,15 +57,15 @@
     /**
      * 鍒犻櫎鏁版嵁搴撲腑钀ょ煶浜戞憚鍍忓ご
      *
-     * @param id
+     * @param
      * @return
      */
-    @PostMapping("/delete/{id}")
-    public ResponseVO<Object> deleteMonitor(@PathVariable Long id) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> deleteMonitor(@RequestBody List<Long> ids) {
         if (!permissionConfig.check(MenuEnum.MONITOR_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        boolean result = monitorService.deleteMonitor(id);
+        boolean result = monitorService.deleteMonitor(ids);
         if (result) {
             return ResponseUtil.success(null);
         } else {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
index eee4acf..b7a59ec 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -62,12 +62,12 @@
         return ResponseUtil.success(poleService.updatePole(poleId, param));
     }
 
-    @PostMapping("/delete/{poleId}")
-    public ResponseVO<Object> deletePole(@PathVariable Long poleId) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> deletePole(@RequestBody List<Long> poleIds) {
         if (!permissionConfig.check(MenuEnum.POLE_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        return ResponseUtil.success(poleService.deletePole(poleId));
+        return ResponseUtil.success(poleService.deletePole(poleIds));
     }
 
     @PostMapping("/listDetail")
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java
index a88ed9d..530f8d7 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java
@@ -13,6 +13,8 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 鍒嗙粍鍒楄〃鍔熻兘
  *
@@ -42,12 +44,12 @@
         return ResponseUtil.success(poleGroupService.updateGroup(groupId, param));
     }
 
-    @PostMapping("/delete/{groupId}")
-    public ResponseVO<Object> delGroup(@PathVariable Long groupId) {
+    @PostMapping("/delete")
+    public ResponseVO<Object> delGroup(@RequestBody List<Long> groupIds) {
         if (!permissionConfig.check(MenuEnum.GROUP_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        return ResponseUtil.success(poleGroupService.deleteGroup(groupId));
+        return ResponseUtil.success(poleGroupService.deleteGroup(groupIds));
     }
 
     @GetMapping("/list")
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/XiXunController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/XiXunController.java
index 41398fd..d6e85e1 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/XiXunController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/XiXunController.java
@@ -96,15 +96,15 @@
     /**
      * 鍒犻櫎鑺傜洰
      *
-     * @param pid
+     * @param
      * @return
      */
-    @PostMapping("/deleteProgram/{pid}")
-    public ResponseVO<Object> deleteProgram(@PathVariable Long pid) {
+    @PostMapping("/deleteProgram")
+    public ResponseVO<Object> deleteProgram(@RequestBody List<Long> pids) {
         if (!permissionConfig.check(MenuEnum.XIXUN_PROGRAM_DELETE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
-        return ResponseUtil.success(xiXunPlayerService.deleteProgram(pid));
+        return ResponseUtil.success(xiXunPlayerService.deleteProgram(pids));
     }
 
     /**
@@ -468,12 +468,12 @@
      * @return
      */
     @PostMapping("/deletePushSchedule")
-    public ResponseVO<Object> deletePushSchedule( @RequestBody Long[] lightemitIds) {
+    public ResponseVO<Object> deletePushSchedule(@RequestBody Long[] lightemitIds) {
         if (!permissionConfig.check(MenuEnum.XIXUN_PLAN_PUSH_SCHEDULE.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
 
-        return ResponseUtil.success(scheduleService.deleteSchedulePush( lightemitIds));
+        return ResponseUtil.success(scheduleService.deleteSchedulePush(lightemitIds));
     }
 
     /**
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
index 9982a80..e433eac 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
@@ -1,8 +1,6 @@
 package com.sandu.ximon.admin.manager.iot.amqp.processor;
 
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.sandu.common.util.SpringContextHolder;
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightErrorCodeReportInnerFrame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame;
@@ -12,7 +10,6 @@
 import com.sandu.ximon.admin.service.LightReportDataService;
 import com.sandu.ximon.admin.service.LightReportErrorService;
 import com.sandu.ximon.admin.service.LightService;
-import com.sandu.ximon.dao.domain.LightReportError;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -42,6 +39,9 @@
             log.info("蹇冭烦鐩稿簲");
             A5LightHeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5LightHeartbeatReportInnerFrame().transformFrame(frame.getPayload());
 
+            if ("363832544e5008ff1741ffff".equals(deviceName)) {
+                System.out.println("蹇冭烦鍖�: " + JSON.toJSONString(heartbeatReportInnerFrame));
+            }
             if (heartbeatReportInnerFrame.isValidate()) {
                 SpringContextHolder.getBean(LightReportDataService.class).saveReportData(deviceName, heartbeatReportInnerFrame.getHeartBeatDataPackage());
                 //蹇冭烦鍖呬笂鎶ヤ笉淇濆瓨纭欢璁惧淇℃伅
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/util/SupplementUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/util/SupplementUtils.java
index 3bfec93..def9143 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/util/SupplementUtils.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/util/SupplementUtils.java
@@ -68,6 +68,18 @@
         return d;
     }
 
+    public static final String bytesToHexString(byte[] bArray) {
+        StringBuffer sb = new StringBuffer(bArray.length);
+        String sTemp;
+        for (int i = 0; i < bArray.length; i++) {
+            sTemp = Integer.toHexString(0xFF & bArray[i]);
+            if (sTemp.length() < 2)
+                sb.append(0);
+            sb.append(sTemp.toLowerCase());
+        }
+        return sb.toString();
+    }
+
     /**
      * 瀛楃涓茶浆鎹负16杩涘埗瀛楃涓�
      *
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
index 84d3989..bcf3a7d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
@@ -61,31 +61,33 @@
         return save(file);
     }
 
-    public boolean deleteFile(Long fileId) {
-        IpVolumeFile byId = getById(fileId);
-        String bucketName;
-        if (SecurityUtils.getClientId() == null) {
-            bucketName = MinIoConstant.ADMIN_BROADCAST_FILE.getBucketName();
-        } else {
-            bucketName = MinIoConstant.BROADCAST_FILE.getBucketName() + SecurityUtils.getUserId();
-        }
-        if (byId == null) {
-            throw new BusinessException("鎵句笉鍒板搴旀枃浠�");
-        }
-        boolean b = minIoUtil.deleteFile(bucketName, byId.getFileName());
+    public boolean deleteFile(List<Long> fileIds) {
+        fileIds.forEach(fileId -> {
+            IpVolumeFile byId = getById(fileId);
+            String bucketName;
+            if (SecurityUtils.getClientId() == null) {
+                bucketName = MinIoConstant.ADMIN_BROADCAST_FILE.getBucketName();
+            } else {
+                bucketName = MinIoConstant.BROADCAST_FILE.getBucketName() + SecurityUtils.getUserId();
+            }
+            if (byId == null) {
+                throw new BusinessException("鎵句笉鍒板搴旀枃浠�");
+            }
+            boolean b = minIoUtil.deleteFile(bucketName, byId.getFileName());
 //        if (!b) {
 //            throw new BusinessException("鏈嶅姟鍣ㄥ垹闄ゅけ璐�");
 //        }
-        /**
-         * 闊虫煴鏂囦欢鍒犻櫎 鏃ュ織璁板綍寮�濮�
-         */
-        String content = "鍒犻櫎鏂囦欢id:" + fileId + "闊虫煴鏂囦欢鍚嶇О锛�" + byId.getFileName() + "锛屾枃浠跺ぇ灏忥細" + byId.getOriginSize() + "锛屾枃浠惰矾寰勶細" + byId.getFileUrl();
-        StoreOperationRecordsUtils.storeOperationData(null, null, "闊虫煴鏂囦欢鍒犻櫎", content);
-        /**
-         * 闊虫煴鏂囦欢鍒犻櫎 鏃ュ織璁板綍缁撴潫
-         */
+            /**
+             * 闊虫煴鏂囦欢鍒犻櫎 鏃ュ織璁板綍寮�濮�
+             */
+            String content = "鍒犻櫎鏂囦欢id:" + fileId + "闊虫煴鏂囦欢鍚嶇О锛�" + byId.getFileName() + "锛屾枃浠跺ぇ灏忥細" + byId.getOriginSize() + "锛屾枃浠惰矾寰勶細" + byId.getFileUrl();
+            StoreOperationRecordsUtils.storeOperationData(null, null, "闊虫煴鏂囦欢鍒犻櫎", content);
+            /**
+             * 闊虫煴鏂囦欢鍒犻櫎 鏃ュ織璁板綍缁撴潫
+             */
 
-        return removeById(fileId);
+        });
+        return removeByIds(fileIds);
     }
 
     public List<IpVolumeFile> ipVolumeFileList(BaseConditionVO baseConditionVO, String keyword, Integer order, Integer seq) {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
index 8df1b28..63bc00f 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
@@ -321,35 +321,48 @@
     /**
      * 鍒犻櫎浠诲姟
      *
-     * @param taskId
+     * @param taskIds
      * @return0锛氭垚鍔� 1锛氫换鍔′笉澶勪簬绌洪棽鐘舵�� 2:鏈嶅姟鍣ㄥ垹闄ゅけ璐�
      */
-    public Integer deleteMission(Integer taskId) {
-        Integer del = TaskAPIUtils.delTask(taskId);
-        if (del == 0) {
-            IpVolumeMission byId = getById(taskId);
-            if (byId == null) {
-                return -1;
-            }
-            removeById(taskId);
-            broadcastV2TaskFileService.deleteByTaskId(taskId);
-            broadcastV2TaskTerminalService.deleteByTaskId(taskId);
+    public Integer deleteMission(List<Integer> taskIds) {
+        //鍒犻櫎澶辫触鐨勯泦鍚�
+        List<Integer> delIds = new ArrayList<Integer>();
+        if (!taskIds.isEmpty()) {
+            taskIds.forEach(taskId -> {
+                Integer del = TaskAPIUtils.delTask(taskId);
+                if (del == 0) {
+                    IpVolumeMission byId = getById(taskId);
+                    if (byId == null) {
+                        return;
+                    }
+                    removeById(taskId);
+                    broadcastV2TaskFileService.deleteByTaskId(taskId);
+                    broadcastV2TaskTerminalService.deleteByTaskId(taskId);
 //            broadcastV2TaskTerminalService.removeById(taskId);
+                } else {
+                    delIds.add(taskId);
+                }
+
+                /**
+                 * IP闊虫煴浠诲姟鍒犻櫎 鏃ュ織璁板綍寮�濮�
+                 */
+                String content = "{鍒犻櫎鐨勪换鍔D锛�" + taskId
+                        + "锛屼换鍔″垹闄ょ粨鏋滐細" + del
+                        + " }";
+                StoreOperationRecordsUtils.storeOperationData(null, null, "IP闊虫煴浠诲姟鍒犻櫎", content);
+                /**
+                 * IP闊虫煴浠诲姟鍒犻櫎 鏃ュ織璁板綍缁撴潫
+                 */
+            });
+        } else {
+            throw new BusinessException("浠诲姟id涓嶈兘涓虹┖");
         }
 
-        /**
-         * IP闊虫煴浠诲姟鍒犻櫎 鏃ュ織璁板綍寮�濮�
-         */
-        String content = "{鍒犻櫎鐨勪换鍔D锛�" + taskId
-                + "锛屼换鍔″垹闄ょ粨鏋滐細" + del
-                + " }";
-        StoreOperationRecordsUtils.storeOperationData(null, null, "IP闊虫煴浠诲姟鍒犻櫎", content);
-        /**
-         * IP闊虫煴浠诲姟鍒犻櫎 鏃ュ織璁板綍缁撴潫
-         */
-
-
-        return del;
+        if (delIds.isEmpty()) {
+            return 0;
+        } else {
+            throw new BusinessException("閮ㄥ垎鍒犻櫎澶辫触,澶辫触鐨勯泦鍚堜负:" + delIds);
+        }
     }
 
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java
index 8cf18cb..e108534 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java
@@ -14,6 +14,8 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 @AllArgsConstructor
 public class LEDProgramFileService extends BaseServiceImpl<LEDProgramFileMapper, LEDProgramFile> {
@@ -43,20 +45,20 @@
         return save(file);
     }
 
-    public boolean deleteFile(Long id) {
-        LEDProgramFile byId = getById(id);
-        if (byId == null) {
+    public boolean deleteFile(List<Long> fileIds) {
+        List<LEDProgramFile> ledProgramFiles = listByIds(fileIds);
+        if (ledProgramFiles.isEmpty()) {
             throw new BusinessException("鏈壘鍒拌鑺傜洰");
         }
         /**
          * 璇虹摝鏂囦欢鍒犻櫎 鏃ュ織璁板綍寮�濮�
          */
-        String content = "鏂囦欢id:" + id + "鏂囦欢鍐呭:" + JSON.toJSONString(byId);
+        String content = "鏂囦欢id:" + fileIds + "鏂囦欢鍐呭:" + JSON.toJSONString(ledProgramFiles);
         StoreOperationRecordsUtils.storeOperationData(null, null, "璇虹摝鏂囦欢鍒犻櫎", content);
         /**
          * 璇虹摝鏂囦欢鍒犻櫎 鏃ュ織璁板綍缁撴潫
          */
-        return removeById(id);
+        return removeByIds(fileIds);
     }
 
     public LambdaQueryWrapper<LEDProgramFile> listFile() {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java
index 5250602..346f302 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java
@@ -62,13 +62,13 @@
     }
 
 
-    public boolean deleteProgram(Long id) {
-        LEDProgram byId = getById(id);
-        if (byId == null) {
+    public boolean deleteProgram(List<Long> pids) {
+        List<LEDProgram> ledPrograms = listByIds(pids);
+        if (ledPrograms.isEmpty()) {
             throw new BusinessException("鏈壘鍒拌鑺傜洰");
         }
 
-        return removeById(id);
+        return removeByIds(pids);
 
     }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedSFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedSFileService.java
index a97bcfa..b16fbe5 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedSFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedSFileService.java
@@ -64,21 +64,24 @@
         return save(sFile);
     }
 
-    public boolean deleteFile(Long id) {
-        LedSFile byId = getById(id);
-        if (byId == null) {
+    public boolean deleteFile(List<Long> fileIds) {
+        if (fileIds.isEmpty()) {
+            throw new BusinessException("鏂囦欢id涓嶈兘涓虹┖");
+        }
+        List<LedSFile> ledSFiles = listByIds(fileIds);
+        if (ledSFiles.isEmpty()) {
             throw new BusinessException("鏈壘鍒拌鑺傜洰");
         }
 
         /**
          * 鐔欐睕鏂囦欢鍒犻櫎 鏃ュ織璁板綍寮�濮�
          */
-        String content = "鏂囦欢鍐呭id:" + id + "鏂囦欢鍐呭:" + JSON.toJSONString(byId);
+        String content = "鏂囦欢鍐呭id:" + fileIds + "鏂囦欢鍐呭:" + JSON.toJSONString(ledSFiles);
         StoreOperationRecordsUtils.storeOperationData(null, null, "鐔欐睕鏂囦欢鍒犻櫎", content);
         /**
          * 鐔欐睕鏂囦欢鍒犻櫎 鏃ュ織璁板綍缁撴潫
          */
-        return removeById(id);
+        return removeByIds(fileIds);
     }
 
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
index 3ff5338..3090329 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
@@ -18,6 +18,7 @@
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.utils.RedisUtils;
 import com.sandu.ximon.dao.bo.LightReportDataBo;
+import com.sandu.ximon.dao.domain.Light;
 import com.sandu.ximon.dao.domain.LightReportData;
 import com.sandu.ximon.dao.domain.Pole;
 import com.sandu.ximon.dao.domain.PoleBinding;
@@ -241,6 +242,12 @@
         if (macCode.isEmpty()) {
             throw new BusinessException("mac涓嶈兘涓虹┖");
         }
+
+        Light light = SpringContextHolder.getBean(LightService.class)
+                .getOne(Wrappers.lambdaQuery(Light.class).eq(Light::getDeviceCode, macCode));
+        if (light == null) {
+            throw new BusinessException("绯荤粺涓笉瀛樺湪璇ュ崟鐏�");
+        }
         PageHelper.startPage(conditionVO.getPageNo(), conditionVO.getPageSize());
         List<LightReportData> list = list(Wrappers.lambdaQuery(LightReportData.class).eq(LightReportData::getDeviceCode, macCode));
         list.forEach(
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
index 2169fc5..4188b54 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -175,30 +175,40 @@
     /**
      * 鍒犻櫎鎽勫儚澶�
      *
-     * @param Id
+     * @param
      * @return
      */
-    public boolean deleteMonitor(Long Id) {
-        Monitor monitor = getById(Id);
-        if (monitor == null) {
-            throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+    public boolean deleteMonitor(List<Long> ids) {
+        List<Long> idList = new ArrayList<Long>();
+        List<Monitor> monitors = listByIds(ids);
+        if (!monitors.isEmpty()) {
+            monitors.forEach(
+                    monitor -> {
+                        if (monitor == null) {
+                            throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+                        }
+                        PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
+                        if (one != null) {
+                            //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
+                            poleBindingService.unBindPole(null, monitor.getDeviceSerial());
+                        }
+                        /**
+                         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曞紑濮�
+                         */
+                        String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
+                        List<String> listCode = new ArrayList<>();
+                        listCode.add(monitor.getDeviceSerial());
+                        StoreOperationRecordsUtils.storeOperationData(listCode, null, "鍒犻櫎鎽勫儚澶�", content);
+                        /**
+                         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曠粨鏉�
+                         */
+                        idList.add(monitor.getId());
+                    }
+            );
         }
-        PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
-        if (one != null) {
-            //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
-            poleBindingService.unBindPole(null, monitor.getDeviceSerial());
-        }
-        /**
-         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曞紑濮�
-         */
-        String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
-        List<String> listCode = new ArrayList<>();
-        listCode.add(monitor.getDeviceSerial());
-        StoreOperationRecordsUtils.storeOperationData(listCode, null, "鍒犻櫎鎽勫儚澶�", content);
-        /**
-         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曠粨鏉�
-         */
-        return removeById(Id);
+        //鍏ㄩ儴鍒犻櫎鎴愬姛
+        return removeByIds(idList);
+
     }
 
     /**
@@ -216,7 +226,7 @@
         YSY_AccessTokenDto accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
 
         //浜屾鑾峰彇
-        if(accessTokenDto == null){
+        if (accessTokenDto == null) {
             log.error("鑾峰彇鎽勫儚澶磘oken澶辫触,鏍煎紡鏈夎!");
             s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
             accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
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 75b370e..cc4a26d 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
@@ -12,6 +12,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 +33,7 @@
      * @param param
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public boolean bindPole(Long poleId, PoleBindingParam param) {
         Integer deviceType = param.getDeviceType();
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java
index 073ae92..1cc7691 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java
@@ -47,16 +47,16 @@
         return updateById(update);
     }
 
-    public boolean deleteGroup(Long groupId) {
-        PoleGroup poleGroup = getById(groupId);
-        if (poleGroup == null) {
+    public boolean deleteGroup(List<Long> groupIds) {
+        List<PoleGroup> poleGroups = listByIds(groupIds);
+        if (poleGroups.isEmpty()) {
             throw new BusinessException("鏈壘鍒拌鍒嗙粍");
         }
         /**
          * 鍒櫎
          */
-        poleGroupRelationService.remove(Wrappers.lambdaQuery(PoleGroupRelation.class).eq(PoleGroupRelation::getPoleGroupId, groupId));
-        return removeById(groupId);
+        poleGroupRelationService.remove(Wrappers.lambdaQuery(PoleGroupRelation.class).in(PoleGroupRelation::getPoleGroupId, groupIds));
+        return removeByIds(groupIds);
     }
 
     public List<PoleGroup> groupList(BaseConditionVO baseConditionVO, String keyword, Integer order, Integer seq) {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
index 922431b..83a33ec 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
@@ -26,6 +26,7 @@
 import org.springframework.context.ApplicationContext;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.PostConstruct;
 import java.io.File;
@@ -266,6 +267,7 @@
     }
 
 
+    @Transactional(rollbackFor = Exception.class)
     public void savePoleLightemit(PoleLightemitEntity poleLightemit) {
         boolean save = this.save(poleLightemit);
         // 缁戝畾鐏潌
@@ -273,9 +275,13 @@
         if (save && poleLightemit.getStreetlightId() != null) {
             PoleBindingParam poleBindingParam = new PoleBindingParam();
             poleBindingParam.setDeviceCode(poleLightemit.getLightemitControlCode());
-            poleBindingParam.setDeviceType(1);
+            poleBindingParam.setDeviceType(10);
             poleBindingParam.setDeviceName(poleLightemit.getLightemitName());
-            poleBindingService.bindPole(poleLightemit.getStreetlightId(), poleBindingParam);
+
+            if (SpringContextHolder.getBean(PoleService.class).getById(poleLightemit.getStreetlightId()) == null) {
+                throw new BusinessException("鐏潌涓嶅瓨鍦�");
+            }
+            boolean b = poleBindingService.bindPole(poleLightemit.getStreetlightId(), poleBindingParam);
         }
 
         /**
@@ -335,7 +341,7 @@
     public boolean deletePoleLightemit(List<Long> ledIds) {
 
         List<PoleLightemitEntity> poleLightemitEntities = listByIds(ledIds);
-        if (poleLightemitEntities != null && poleLightemitEntities.size() != 0) {
+        if (poleLightemitEntities != null && poleLightemitEntities.size() == 0) {
             throw new BusinessException("璁惧涓嶅瓨鍦�");
         }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
index e112f59..7d542dc 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -129,26 +129,26 @@
     /**
      * 鍒犻櫎鐏潌
      */
-    public boolean deletePole(Long poleId) {
-        Pole pole = getById(poleId);
-        if (pole == null) {
+    public boolean deletePole(List<Long> poleIds) {
+        List<Pole> poles = listByIds(poleIds);
+        if (poles.isEmpty()) {
             throw new BusinessException("鏈壘鍒拌鐏潌");
         }
         // 鍒犻櫎鐏潌缁戝畾鍏崇郴
-        poleBindingService.remove(Wrappers.<PoleBinding>lambdaQuery().eq(PoleBinding::getPoleId, poleId));
+        poleBindingService.remove(Wrappers.<PoleBinding>lambdaQuery().in(PoleBinding::getPoleId, poleIds));
         SpringContextHolder.getBean(LightTaskPoleRelationService.class)
-                .remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).eq(LightTaskPoleRelation::getPoleId, poleId));
+                .remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, poleIds));
 
         /**
          * 鍒犻櫎鐏潌鏃ュ織璁板綍寮�濮�
          */
-        String content = "{鐏潌Code锛�" + pole.getDeviceCode() + "锛� 鐏潌鍚嶇О锛�" + pole.getPoleName() + " }";
+        String content = "{鐏潌id锛�" + poles + " }";
 
         StoreOperationRecordsUtils.storeOperationData(null, null, "鍒犻櫎鐏潌", content);
         /**
          * 鍒犻櫎鐏潌鏃ュ織璁板綍缁撴潫
          */
-        return removeById(poleId);
+        return removeByIds(poleIds);
     }
 
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
index 102a414..7838f84 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
@@ -175,22 +175,21 @@
         return updateResult;
     }
 
-    public boolean deleteProgram(Long pid) {
-        PoleXixunPlayerEntity byId = getById(pid);
-        if (byId == null) {
+    public boolean deleteProgram(List<Long> pids) {
+        List<PoleXixunPlayerEntity> poleXixunPlayerEntities = listByIds(pids);
+        if (poleXixunPlayerEntities.isEmpty()) {
             throw new BusinessException("鏈壘鍒拌鑺傜洰");
         }
         /**
          * 鐔欐睕鑺傜洰鍒犻櫎鏃ュ織璁板綍寮�濮�
          */
-        String content = "{鍒犻櫎鐨勮妭鐩甶d锛�" + byId.getProgramId()
-                + "锛� 鍒犻櫎鐨勮妭鐩悕绉帮細" + byId.getProgramName()
+        String content = "{鍒犻櫎鐨勮妭鐩甶d锛�" + pids
                 + " }";
         StoreOperationRecordsUtils.storeOperationData(null, null, "鐔欐睕鑺傜洰鍒犻櫎", content);
         /**
          * 鐔欐睕鑺傜洰鍒犻櫎鏃ュ織璁板綍缁撴潫
          */
-        return removeById(pid);
+        return removeByIds(pids);
     }
 
     public Object getByPid(Long pid) {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Base64Util.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Base64Util.java
new file mode 100644
index 0000000..38c133f
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Base64Util.java
@@ -0,0 +1,49 @@
+package com.sandu.ximon.admin.utils;
+
+import com.sandu.ximon.admin.manager.iot.rrpc.util.SupplementUtils;
+import org.apache.commons.codec.binary.Base64;
+
+public class Base64Util {
+
+    /**
+     * 灏嗕簩杩涘埗鏁版嵁缂栫爜涓築ASE64瀛楃涓�
+     * @param binaryData
+     * @return
+     */
+    public static String encode(byte[] binaryData) {
+        try {
+            return new String(Base64.encodeBase64(binaryData));
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    /**
+     * 灏咮ASE64瀛楃涓叉仮澶嶄负浜岃繘鍒舵暟鎹�
+     * @param base64String
+     * @return
+     */
+    public static byte[] decode(String base64String) {
+        try {
+            return Base64.decodeBase64(base64String.getBytes());
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+//    public static void main(String[] args) {
+//        byte[] bytes = "/qUBAAv+AQAD//8yjUBF9xgeI0U=".getBytes();
+//        byte[] bytes1 = Base64.decodeBase64(bytes);
+//        System.out.println(SupplementUtils.bytesToHexString(bytes1));
+//    }
+
+
+    public static String toBase64Frame (String hexStr) {
+//        BigInteger bigInteger = new BigInteger(hexStr, 16);   //  姝ゆ柟寮忎細浜х敓澶撮儴澶氬嚭绌虹殑涓�瀛楄妭
+//        byte[] bytes = bigInteger.toByteArray();
+//        System.out.println("origin:"+hexStr);
+        byte[] bytes = SupplementUtils.hexStringToBytes(hexStr);
+        String base64 = encode(bytes);
+        return base64;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3