Bladeren bron

host代码优化

jingyuanchao 1 jaar geleden
bovenliggende
commit
9c79fbfe74
19 gewijzigde bestanden met toevoegingen van 134 en 207 verwijderingen
  1. 3 5
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/alarm/service/impl/IotAlarmRuleServiceImpl.java
  2. 2 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/dayilcheck/service/IotDailyCheckDataService.java
  3. 21 18
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/dayilcheck/service/impl/IotDailyCheckDataServiceImpl.java
  4. 3 4
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceInfoServiceImpl.java
  5. 2 2
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceStatusServiceImpl.java
  6. 11 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/north/controller/HostController.java
  7. 9 11
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/protection/service/impl/IotAlarmHostServiceImpl.java
  8. 0 3
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/IotDvrHardDiskDetectionService.java
  9. 1 15
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/IotDvrHardDiskDetectionServiceImpl.java
  10. 2 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/VideoDiagnosisRecordServiceImpl.java
  11. 7 17
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/VideoIntegrityCheckServiceImpl.java
  12. 30 2
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/dto/WebsocketResult.java
  13. 1 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/handler/SocWebSocketHandler.java
  14. 2 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/service/RouterService.java
  15. 1 2
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/service/impl/WebsocketServiceImpl.java
  16. 0 94
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/utils/IotServerUtils.java
  17. 32 25
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotDayWorkOperationServiceImpl.java
  18. 5 3
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotDayWorkServiceImpl.java
  19. 2 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotWorkRuleServiceImpl.java

+ 3 - 5
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/alarm/service/impl/IotAlarmRuleServiceImpl.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Sets;
-import com.xunmei.common.core.constant.HttpStatus;
 import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmRule;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
@@ -21,7 +20,6 @@ import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.enums.TopicTypeEnums;
 import com.xunmei.host.websocket.service.RouterService;
 import com.xunmei.host.websocket.service.WebsocketService;
-import com.xunmei.host.websocket.utils.IotServerUtils;
 import com.xunmei.system.api.util.LogUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -56,7 +54,7 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
     }
 
     @Override
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         final JSONObject jsb = receiveAndUpdateAlarmRule(req);
         return WebsocketResult.reply(req,jsb);
     }
@@ -74,7 +72,7 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
         jsb.put("ruleExpresses", ruleExpresses);
 
         final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(), ProductEnums.DETECTION_HOST.getProductName().get(0), ProductEnums.DETECTION_HOST.getProductName().get(1));
-        final WebsocketResult result = IotServerUtils.invokeHostServer(topic, new com.alibaba.fastjson.JSONObject(), WebSocketConstants.ALARM_RULE, jsb);
+        final WebsocketResult result = WebsocketResult.invokeHostServer(topic, new com.alibaba.fastjson.JSONObject(), WebSocketConstants.ALARM_RULE, jsb);
         websocketService.sendMsgByTokens(result, Sets.newHashSet(iotAlarmRule.getIotCode()));
     }
 
@@ -123,7 +121,7 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
             }
         } catch (Exception e) {
             LogUtils.ALARM_RULE_LOG.error("保存告警规则失败", e);
-            return WebsocketResult.getResPayload(HttpStatus.ERROR, e.getMessage());
+            return WebsocketResult.getErrorPayload(e.getMessage());
         }
         return WebsocketResult.getSuccessPayload();
     }

+ 2 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/dayilcheck/service/IotDailyCheckDataService.java

@@ -1,5 +1,6 @@
 package com.xunmei.host.dayilcheck.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.iot.domain.IotDailyCheckData;
 import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
@@ -14,6 +15,6 @@ import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
  */
 public interface IotDailyCheckDataService extends IService<IotDailyCheckData> {
 
-    void dealData(String id, String excelData, String resultData, IotServerInfo serverInfo);
+    JSONObject dealData(String id, String excelData, String resultData, IotServerInfo serverInfo);
 
 }

+ 21 - 18
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/dayilcheck/service/impl/IotDailyCheckDataServiceImpl.java

@@ -18,6 +18,7 @@ import com.xunmei.host.dayilcheck.service.IotDailyCheckDataService;
 import com.xunmei.host.server.service.IotServerInfoService;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
+import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.service.RouterService;
 import com.xunmei.system.api.util.LogUtils;
@@ -58,30 +59,31 @@ public class IotDailyCheckDataServiceImpl extends ServiceImpl<IotDailyCheckDataM
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq req) {
-        Object data = req.getData();
-        final String iotCode = req.getServerInfo().getIotCode();
-        JSONObject obj = JSON.parseObject(data.toString());
-        String type = obj.getString("id");
-        String excelData = obj.getString("excelData");
-        String resultData = obj.getString("resultData");
-        IotServerInfo serverInfo = iotServerInfoService.selectByToken(iotCode);
-
-        if (ObjectUtil.isEmpty(serverInfo)) {
-            LogUtils.SOCKET_DAILY_HEALTH.error("未查询到token为 {} 的服务器信息", iotCode);
-            return null;
+    public WebsocketResult execute(WebsocketExecuteReq req) {
+        JSONObject jsonObject = new JSONObject();
+        try {
+            Object data = req.getData();
+            JSONObject obj = JSON.parseObject(data.toString());
+            String type = obj.getString("id");
+            String excelData = obj.getString("excelData");
+            String resultData = obj.getString("resultData");
+            IotServerInfo serverInfo = req.getServerInfo();
+            jsonObject = dealData(type, excelData, resultData, serverInfo);
+        } catch (Exception e) {
+            LogUtils.SOCKET_DAILY_HEALTH.error("[网点客户端自检结果上报],处理失败", e);
+            return WebsocketResult.replyError(req,String.format("处理失败:%s",e));
         }
-        dealData(type, excelData, resultData, serverInfo);
 
-        return null;
+        return WebsocketResult.reply(req, jsonObject);
     }
 
 
     @Override
-    public void dealData(String id, String excelData, String resultData, IotServerInfo serverInfo) {
+    public JSONObject dealData(String id, String excelData, String resultData, IotServerInfo serverInfo) {
         if (ObjectUtil.hasEmpty(id, excelData)) {
-            LogUtils.SOCKET_DAILY_HEALTH.error("[网点客户端自检结果上报],存在参数为空,ID:{},excelData:{}", id, excelData);
-            return;
+            String str = "[网点客户端自检结果上报],存在参数为空,ID:%s,excelData:%s";
+            LogUtils.SOCKET_DAILY_HEALTH.error(String.format(str, id, excelData));
+            return WebsocketResult.getErrorPayload(String.format(str, id, excelData));
         }
 
         IotDailyCheckData dailyCheckData = baseMapper.selectById(Long.parseLong(id));
@@ -108,6 +110,7 @@ public class IotDailyCheckDataServiceImpl extends ServiceImpl<IotDailyCheckDataM
         }
 
         this.saveOrUpdate(dailyCheckData);
-        LogUtils.SOCKET_DAILY_HEALTH.error("[网点客户端自检结果上报],入库成功,ID:{},excelData:{},resultData:{}", id, excelData,resultData);
+        LogUtils.SOCKET_DAILY_HEALTH.error("[网点客户端自检结果上报],入库成功,ID:{},excelData:{},resultData:{}", id, excelData, resultData);
+        return WebsocketResult.getSuccessPayload();
     }
 }

+ 3 - 4
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -41,7 +41,6 @@ import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.enums.TopicTypeEnums;
 import com.xunmei.host.websocket.service.RouterService;
 import com.xunmei.host.websocket.service.WebsocketService;
-import com.xunmei.host.websocket.utils.IotServerUtils;
 import com.xunmei.system.api.domain.iot.IotDeviceInfo;
 import com.xunmei.system.api.domain.iot.IotDeviceInfoExtend;
 import com.xunmei.system.api.util.LogUtils;
@@ -347,7 +346,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         LogUtils.SOCKET_BASE_DEVICE_INFO.info("收到消息:{}", JacksonUtils.toJSONString(req));
         Object data = req.getData();
         JSONArray dataArray = (JSONArray) data;
@@ -833,7 +832,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(), WebSocketConstants.DETECTION_HOST, WebSocketConstants.DETECTION_HOST_DEVICE);
         final JSONObject object = new JSONObject();
         object.put("dataType", eto.getDataType());
-        final WebsocketResult result = IotServerUtils.invokeHostServer(topic, new JSONObject(), WebSocketConstants.DO_WORK, object);
+        final WebsocketResult result = WebsocketResult.invokeHostServer(topic, new JSONObject(), WebSocketConstants.DO_WORK, object);
         websocketService.sendMsgByTokens(result, Sets.newHashSet(iotCode));
 
     }
@@ -861,7 +860,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
             return;
         }
         final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(), WebSocketConstants.DETECTION_HOST, WebSocketConstants.DETECTION_HOST_DEVICE);
-        final WebsocketResult result = IotServerUtils.invokeHostServer(topic, new JSONObject(), WebSocketConstants.CHANGE_DEVICE, eto);
+        final WebsocketResult result = WebsocketResult.invokeHostServer(topic, new JSONObject(), WebSocketConstants.CHANGE_DEVICE, eto);
         websocketService.sendMsgByTokens(result, Sets.newHashSet(iotCode));
     }
 }

+ 2 - 2
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceStatusServiceImpl.java

@@ -167,7 +167,7 @@ public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMappe
     }
 
     @Override
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         final String event = req.getEvent();
         switch (event) {
             case WebSocketConstants.SUB_DEVICES_STATUS:
@@ -179,7 +179,7 @@ public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMappe
         }
     }
 
-    private Object dealDeviceAlarm(WebsocketExecuteReq req) {
+    private WebsocketResult dealDeviceAlarm(WebsocketExecuteReq req) {
         final String iotCode = req.getServerInfo().getIotCode();
         final SysOrg sysOrg = serverInfoService.selectOrgByToken(iotCode);
         if (ObjectUtil.isNull(sysOrg)) {

+ 11 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/north/controller/HostController.java

@@ -10,6 +10,7 @@ import com.xunmei.host.protection.service.IIotAlarmHostService;
 import com.xunmei.host.video.service.IVideoIntegrityCheckService;
 import com.xunmei.host.video.service.IotDvrHardDiskDetectionService;
 import com.xunmei.host.websocket.service.WebsocketService;
+import com.xunmei.system.api.Eto.SubSystemControlEto;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
@@ -50,7 +51,16 @@ public class HostController {
         websocketService.getDevices();
         return AjaxResult.success();
     }
-
+    @ApiOperation("布撤防控制")
+    @PostMapping({"/subSystemControl"})
+    public AjaxResult subSystemControl(@RequestBody SubSystemControlEto eto) {
+        try {
+            alarmHostService.subSystemControl(eto.getId(), eto.getIsAlarm());
+            return AjaxResult.success();
+        } catch (Exception r) {
+            return AjaxResult.error("布撤防控制指令下发失败!");
+        }
+    }
     /*@ApiOperation("主动获取指定通道的录像完整性数据")
     @GetMapping({"/getRecordInfo"})
     public AjaxResult videoIntegrityCheck(@RequestBody VideoIntegrityGetReq req) {

+ 9 - 11
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/protection/service/impl/IotAlarmHostServiceImpl.java

@@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.common.collect.Lists;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
-import com.xunmei.common.core.constant.HttpStatus;
 import com.xunmei.common.core.domain.iot.domain.*;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
@@ -35,7 +34,6 @@ import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.DeviceCacheEnum;
 import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.service.RouterService;
-import com.xunmei.host.websocket.utils.IotServerUtils;
 import com.xunmei.host.websocket.utils.WebSocketUtils;
 import com.xunmei.system.api.domain.iot.IotDeviceInfo;
 import com.xunmei.system.api.domain.iot.IotDeviceStatus;
@@ -131,7 +129,7 @@ public class IotAlarmHostServiceImpl implements IIotAlarmHostService, RouterServ
             return WebsocketResult.getSuccessPayload();
         } catch (Exception e) {
             LogUtils.STATUS_INFO_DEFENCEAREA.error("处理报警主机布撤防状态改变事件出错", e);
-            return WebsocketResult.getResPayload(HttpStatus.ERROR, e.getMessage());
+            return WebsocketResult.getErrorPayload(e.getMessage());
         }
     }
 
@@ -199,12 +197,12 @@ public class IotAlarmHostServiceImpl implements IIotAlarmHostService, RouterServ
                     String str = "【报警主机传感器状态事件,未找到对应传感器】【token:%s】【设备名称:%s】【子系统id:%s】【传感器index:%s】";
                     String logMsg = String.format(str, req.getServerInfo().getIotCode(), req.getDeviceName(), subSystemId, inputIndex);
                     LogUtils.STATUS_INFO_STATUS_SENSOR.info(logMsg);
-                    return WebsocketResult.getResPayload(HttpStatus.ERROR, logMsg);
+                    return WebsocketResult.getErrorPayload(logMsg);
                 }
             }
         } catch (Exception e) {
             LogUtils.STATUS_INFO_STATUS_SENSOR.error("处理报警主机传感器状态事件出错", e);
-            return WebsocketResult.getResPayload(HttpStatus.ERROR, e.getMessage());
+            return WebsocketResult.getErrorPayload(e.getMessage());
         }
         return WebsocketResult.getSuccessPayload();
     }
@@ -229,7 +227,7 @@ public class IotAlarmHostServiceImpl implements IIotAlarmHostService, RouterServ
                     headers.put("productName", deviceInfo.getDeviceProduct());
                     headers.put("deviceName", deviceInfo.getDeviceCode());
                     LogUtils.DEVICE_CONTROL_LOG.info("报警主机布撤防控制topic:{},控制参数:{}", topic, args.toJSONString());
-                    WebsocketResult websocketResult = IotServerUtils.invokeHostServer(topic, headers, WebSocketConstants.SUB_SYSTEM_CONTROL, args);
+                    WebsocketResult websocketResult = WebsocketResult.invokeHostServer(topic, headers, WebSocketConstants.SUB_SYSTEM_CONTROL, args);
                     LogUtils.WEBSOCKET_MSG.info("布撤防控制指令:{}", JacksonUtils.toJSONString(websocketResult));
                     boolean invoked = WebSocketUtils.sendMessage(subsystem.getIotToken(), JacksonUtils.toJSONString(websocketResult));
                     if (!invoked) {
@@ -250,7 +248,7 @@ public class IotAlarmHostServiceImpl implements IIotAlarmHostService, RouterServ
 
     @Override
     public void breakerControlByOrgId(Long orgId, String command) {
-        try {
+       /* try {
             QueryWrapper<IotDeviceInfo> wrapper = new QueryWrapper<>();
             wrapper.lambda()
                     .eq(IotDeviceInfo::getDeleted, 0)
@@ -282,12 +280,12 @@ public class IotAlarmHostServiceImpl implements IIotAlarmHostService, RouterServ
             e.printStackTrace();
             LogUtils.DEVICE_CONTROL_LOG.error("通断电控制", e);
             throw new RuntimeException(e);
-        }
+        }*/
     }
 
     @Override
     public void breakerControlByDeviceId(Serializable id, String command) {
-        try {
+      /*  try {
             IotDeviceInfo deviceInfo = iIotDeviceInfoService.getById(id);
             if (deviceInfo != null) {
                 String topic = "/things/" + deviceInfo.getDeviceProduct() + "/" + deviceInfo.getDeviceCode() + "/service/invoke";
@@ -311,7 +309,7 @@ public class IotAlarmHostServiceImpl implements IIotAlarmHostService, RouterServ
             e.printStackTrace();
             LogUtils.DEVICE_CONTROL_LOG.error("通断电控制", e);
             throw new RuntimeException(e);
-        }
+        }*/
     }
 
     private void saveProtectionLog(IotAlarmSubsystem protection) {
@@ -339,7 +337,7 @@ public class IotAlarmHostServiceImpl implements IIotAlarmHostService, RouterServ
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         final String event = req.getEvent();
         JSONObject jsb;
         switch (event) {

+ 0 - 3
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/IotDvrHardDiskDetectionService.java

@@ -2,7 +2,6 @@ package com.xunmei.host.video.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.xunmei.common.core.domain.host.remote.DiskInfoGetReq;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.dto.protection.VideoRecorderHardDiskDetectionEditDto;
@@ -28,6 +27,4 @@ public interface IotDvrHardDiskDetectionService extends IService<IotDvrHardDiskD
 
     void saveDataInfo(Map<String, Object> objectMap, VideoRecorderHardDiskDetectionEditDto videoRecorderHardDiskDetectionEditDto);
 
-    void getDiskInfos(DiskInfoGetReq req);
-
 }

+ 1 - 15
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/IotDvrHardDiskDetectionServiceImpl.java

@@ -6,14 +6,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.host.remote.DiskInfoGetReq;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetectionLog;
 import com.xunmei.common.core.enums.iot.DeviceTypeEnum;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
-import com.xunmei.common.core.utils.JacksonUtils;
 import com.xunmei.host.alarm.service.IotAlarmDataService;
 import com.xunmei.host.host.service.IIotDeviceService;
 import com.xunmei.host.iot.service.IIotDeviceInfoService;
@@ -28,10 +26,7 @@ import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
 import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
-import com.xunmei.host.websocket.enums.TopicTypeEnums;
 import com.xunmei.host.websocket.service.RouterService;
-import com.xunmei.host.websocket.utils.IotServerUtils;
-import com.xunmei.host.websocket.utils.WebSocketUtils;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.iot.IotDeviceInfo;
@@ -88,7 +83,7 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         try {
             JSONObject data = (JSONObject) req.getData();
             VideoRecorderHardDiskDetectionReq recorderHardDiskDetectionReq = data.toJavaObject(VideoRecorderHardDiskDetectionReq.class);
@@ -243,15 +238,6 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
     }
 
     @Override
-    public void getDiskInfos(DiskInfoGetReq req) {
-        final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(), req.getProductName(), req.getDeviceName());
-        final JSONObject object = new JSONObject();
-        object.put("dvsCode", req.getDvsCode());
-        final WebsocketResult result = IotServerUtils.invokeHostServer(topic, new JSONObject(), WebSocketConstants.GET_DISK_INFOS, object);
-        WebSocketUtils.sendMessage(req.getIotCode(),JacksonUtils.toJSONString(result));
-    }
-
-    @Override
     @Transactional(rollbackFor = Exception.class)
     public void saveDataInfo(Map<String, Object> objectMap, VideoRecorderHardDiskDetectionEditDto videoRecorderHardDiskDetectionEditDto) {
         IotDvrHardDiskDetection videoRecorderHardDiskDetection = (IotDvrHardDiskDetection) objectMap.get("videoRecorderHardDiskDetection");

+ 2 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/VideoDiagnosisRecordServiceImpl.java

@@ -23,6 +23,7 @@ import com.xunmei.host.video.service.IVideoDiagnosisLogService;
 import com.xunmei.host.video.service.IVideoDiagnosisRecordService;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
+import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.redis.RedisKey;
 import com.xunmei.host.websocket.service.RouterService;
@@ -83,7 +84,7 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq obj) {
+    public WebsocketResult execute(WebsocketExecuteReq obj) {
         try {
             JSONObject data = (JSONObject) obj.getData();
             VideoDiagnosisReq req = data.toJavaObject(VideoDiagnosisReq.class);

+ 7 - 17
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/VideoIntegrityCheckServiceImpl.java

@@ -31,10 +31,7 @@ import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
 import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
-import com.xunmei.host.websocket.enums.TopicTypeEnums;
 import com.xunmei.host.websocket.service.RouterService;
-import com.xunmei.host.websocket.utils.IotServerUtils;
-import com.xunmei.host.websocket.utils.WebSocketUtils;
 import com.xunmei.system.api.RemoteConfigService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysConfig;
@@ -97,7 +94,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
     }
 
     @Override
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         final String iotCode = req.getServerInfo().getIotCode();
         LogUtils.SOCKET_BASE_DEVICE_INFO.info("收到消息:{}", JacksonUtils.toJSONString(req));
         if (WebSocketConstants.GET_RECORD_INFOS_SERVICES.equals(req.getEvent())) {
@@ -112,13 +109,10 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
                 checkDto.setOrganizationGuid(sysOrg.getCode());
                 //执行业务
                 final ReceiveErrorDto dto = this.saveData(checkDto, req.getId());
-                //构建返回数据
-                String topic = req.getTopic() + "/reply";
-                final JSONObject errorDto = IotServerUtils.dealReceiveErrorDto(dto);
-                return IotServerUtils.invokeUpLinkServer(topic, req.getProductName(), req.getDeviceName(), req.getEvent(), errorDto, req.getId());
+                final JSONObject errorDto = WebsocketResult.dealReceiveErrorDto(dto);
+                return WebsocketResult.reply(req, errorDto);
             }
         } else {
-            //if (WebSocketConstants.RECORD_INFOS.equals(req.getEvent())){
             JSONObject data = (JSONObject) req.getData();
             VideoIntegrityCheckReq checkReq = data.toJavaObject(VideoIntegrityCheckReq.class);
             VideoIntegrityCheckDto checkDto = transform(checkReq);
@@ -129,11 +123,8 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
             checkDto.setOrganizationGuid(sysOrg.getCode());
             //执行业务
             final ReceiveErrorDto dto = this.saveData(checkDto, req.getId());
-            //构建返回数据
-            String topic = req.getTopic() + "/reply";
-            final JSONObject errorDto = IotServerUtils.dealReceiveErrorDto(dto);
-            return IotServerUtils.invokeUpLinkServer(topic, req.getProductName(), req.getDeviceName(), req.getEvent(), errorDto, req.getId());
-            // }
+            final JSONObject errorDto = WebsocketResult.dealReceiveErrorDto(dto);
+            return WebsocketResult.reply(req, errorDto);
         }
 
         return null;
@@ -141,13 +132,13 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
 
     @Override
     public void getRecordInfo(VideoIntegrityGetReq req) {
-        final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(), req.getProductName(), req.getDeviceName());
+      /*  final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(), req.getProductName(), req.getDeviceName());
         final JSONObject object = new JSONObject();
         object.put("dvsCode", req.getDvsCode());
         object.put("index", req.getIndex());
         object.put("recordDate", req.getRecordDate());
         final WebsocketResult result = IotServerUtils.invokeHostServer(topic, new JSONObject(), WebSocketConstants.GET_RECORD_INFOS_SERVICES, object);
-        WebSocketUtils.sendMessage(req.getIotCode(), JacksonUtils.toJSONString(result));
+        WebSocketUtils.sendMessage(req.getIotCode(), JacksonUtils.toJSONString(result));*/
     }
 
     @Override
@@ -283,7 +274,6 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
     }
 
 
-
     private static Integer calculateLoseMinute(String loseTime) {
         if (ObjectUtil.isEmpty(loseTime)) {
             return 0;

+ 30 - 2
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/dto/WebsocketResult.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.HttpStatus;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
+import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import io.netty.util.internal.StringUtil;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,6 +13,8 @@ import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.UUID;
 
 /**
  * @author gaoxiong
@@ -88,11 +91,36 @@ public class WebsocketResult implements Serializable {
         return payload;
     }
 
-    public static JSONObject getResPayload(int statusCode, String statusDescription) {
+    public static JSONObject getErrorPayload( String statusDescription) {
         JSONObject payload = new JSONObject();
-        payload.put(WebSocketConstants.STATUS_CODE, statusCode);
+        payload.put(WebSocketConstants.STATUS_CODE, HttpStatus.ERROR);
         payload.put(WebSocketConstants.STATUS_DESCRIPTION, statusDescription);
         return payload;
     }
+
+    public static WebsocketResult invokeHostServer(String topic, JSONObject headers, String service, Object args){
+        WebsocketResult websocketResult = new WebsocketResult();
+        websocketResult.setId(UUID.randomUUID().toString());
+        websocketResult.setTimestamp(DateUtil.format(new Date(), Constants.UTC_FORMAT));
+        websocketResult.setTopic(topic);
+        websocketResult.setHeaders(headers);
+        HashMap<String, Object> hashMap = new HashMap<>();
+        hashMap.put(WebSocketConstants.SERVICE, service);
+        hashMap.put(WebSocketConstants.ARGS, args);
+        websocketResult.setPayload(hashMap);
+        return websocketResult;
+    }
+
+    public static JSONObject dealReceiveErrorDto(ReceiveErrorDto dto) {
+        final JSONObject object = new JSONObject();
+        if (dto.getSuccess()){
+            object.put(WebSocketConstants.STATUS_CODE, HttpStatus.SUCCESS);
+            object.put(WebSocketConstants.STATUS_DESCRIPTION, dto.getErrorMsg());
+        }else {
+            object.put(WebSocketConstants.STATUS_CODE, HttpStatus.ERROR);
+            object.put(WebSocketConstants.STATUS_DESCRIPTION, dto.getErrorMsg());
+        }
+        return object;
+    }
 }
 

+ 1 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/handler/SocWebSocketHandler.java

@@ -200,7 +200,7 @@ public class SocWebSocketHandler extends AbstractWebSocketHandler {
                         WebSocketUtils.sendMessage(session, WebsocketResult.replyError(executeReq, ErrorMsgConstants.ERROR_TOPIC));
                         return;
                     }
-                    result = (WebsocketResult) routeService.execute(executeReq);
+                    result = routeService.execute(executeReq);
                     break;
                 default:
                     WebSocketUtils.sendMessage(session, WebsocketResult.replyError(executeReq, ErrorMsgConstants.ERROR_TOPIC));

+ 2 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/service/RouterService.java

@@ -2,6 +2,7 @@ package com.xunmei.host.websocket.service;
 
 
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
+import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
 
 public interface RouterService {
@@ -10,6 +11,6 @@ public interface RouterService {
 
     String routerKey();
 
-    Object execute(WebsocketExecuteReq req);
+    WebsocketResult execute(WebsocketExecuteReq req);
 
 }

+ 1 - 2
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/service/impl/WebsocketServiceImpl.java

@@ -8,7 +8,6 @@ import com.xunmei.host.websocket.enums.TopicTypeEnums;
 import com.xunmei.host.websocket.holder.WebSocketSessionHolder;
 import com.xunmei.host.websocket.redis.WebsocketPublisher;
 import com.xunmei.host.websocket.service.WebsocketService;
-import com.xunmei.host.websocket.utils.IotServerUtils;
 import com.xunmei.system.api.domain.websocket.RedisWebsocketMsg;
 import org.redisson.api.RKeys;
 import org.redisson.api.RedissonClient;
@@ -30,7 +29,7 @@ public class WebsocketServiceImpl implements WebsocketService {
     @Override
     public void getDevices() {
         final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(),WebSocketConstants.DETECTION_HOST, WebSocketConstants.DETECTION_HOST_DEVICE);
-        final WebsocketResult result = IotServerUtils.invokeHostServer(topic, new JSONObject(), WebSocketConstants.GET_DEVICES_SERVICES, new JSONObject());
+        final WebsocketResult result = WebsocketResult.invokeHostServer(topic, new JSONObject(), WebSocketConstants.GET_DEVICES_SERVICES, new JSONObject());
         sendMgsToAll(result);
     }
 

+ 0 - 94
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/websocket/utils/IotServerUtils.java

@@ -1,94 +0,0 @@
-package com.xunmei.host.websocket.utils;
-
-import cn.hutool.core.date.DateUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.xunmei.common.core.constant.Constants;
-import com.xunmei.common.core.constant.HttpStatus;
-import com.xunmei.host.websocket.constant.WebSocketConstants;
-import com.xunmei.host.websocket.dto.WebsocketResult;
-import com.xunmei.host.websocket.enums.TopicTypeEnums;
-import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.UUID;
-
-@Slf4j
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class IotServerUtils {
-
-    public static WebsocketResult invokeHostServer(String topic, JSONObject headers, String service, Object args){
-        WebsocketResult websocketResult = new WebsocketResult();
-        websocketResult.setId(UUID.randomUUID().toString());
-        websocketResult.setTimestamp(DateUtil.format(new Date(), Constants.UTC_FORMAT));
-        websocketResult.setTopic(topic);
-        websocketResult.setHeaders(headers);
-        HashMap<String, Object> hashMap = new HashMap<>();
-        hashMap.put(WebSocketConstants.SERVICE, service);
-        hashMap.put(WebSocketConstants.ARGS, args);
-        websocketResult.setPayload(hashMap);
-        return websocketResult;
-    }
-
-
-    /**
-     * 接受主机上报事件后,构建返回的消息
-     * @param topic
-     * @param produceName
-     * @param deviceName
-     * @param invokeMethod
-     * @param object
-     * @param replyId
-     * @return
-     */
-    public static WebsocketResult invokeUpLinkServer(String topic,String produceName,String deviceName,String invokeMethod,JSONObject object,String replyId){
-        WebsocketResult iotWebsocketResult = new WebsocketResult();
-        //Iot消息透穿至主机 固定Topic
-        iotWebsocketResult.setTopic(TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_REPLY.getUrl(), WebSocketConstants.IOT_SERVER,WebSocketConstants.IOT_SERVER_DEVICE));
-        iotWebsocketResult.setId(replyId);
-        iotWebsocketResult.setTimestamp(DateUtil.format(new Date(), Constants.UTC_FORMAT));
-        //iot消息头
-        JSONObject iotHeaderObj = new JSONObject();
-        iotHeaderObj.put(WebSocketConstants.PRODUCT_NAME,WebSocketConstants.IOT_SERVER);
-        iotHeaderObj.put(WebSocketConstants.DEVICE_NAME, WebSocketConstants.IOT_SERVER_DEVICE);
-        iotHeaderObj.put(WebSocketConstants.REPLY_ID, replyId);
-        iotWebsocketResult.setHeaders(iotHeaderObj);
-        //iot消息体,完整的消息包含在payload中
-        JSONObject iotPayloadObj = new JSONObject();
-        iotWebsocketResult.setPayload(iotPayloadObj);
-        iotPayloadObj.put(WebSocketConstants.SERVICE, WebSocketConstants.UP_LINK_SERVICE_PASS_THROUGH);
-        //以下是主机消息内容
-        WebsocketResult hostData = new WebsocketResult();
-        iotPayloadObj.put(WebSocketConstants.ARGS,hostData );
-        hostData.setId(replyId);
-        hostData.setTimestamp(DateUtil.format(new Date(), Constants.UTC_FORMAT));
-        hostData.setTopic(topic);
-        JSONObject hostHeaderObj = new JSONObject();
-        hostHeaderObj.put(WebSocketConstants.PRODUCT_NAME,produceName);
-        hostHeaderObj.put(WebSocketConstants.DEVICE_NAME, deviceName);
-        hostHeaderObj.put(WebSocketConstants.REPLY_ID, replyId);
-        hostData.setHeaders(hostHeaderObj);
-
-        JSONObject hostPayloadObj = new JSONObject();
-        hostPayloadObj.put(WebSocketConstants.EVENT, invokeMethod);
-        hostPayloadObj.put(WebSocketConstants.ARGS, object);
-
-        hostData.setPayload(hostPayloadObj);
-        return iotWebsocketResult;
-    }
-
-    public static JSONObject dealReceiveErrorDto(ReceiveErrorDto dto) {
-        final JSONObject object = new JSONObject();
-        if (dto.getSuccess()){
-            object.put(WebSocketConstants.STATUS_CODE, HttpStatus.SUCCESS);
-            object.put(WebSocketConstants.STATUS_DESCRIPTION, dto.getErrorMsg());
-        }else {
-            object.put(WebSocketConstants.STATUS_CODE, HttpStatus.ERROR);
-            object.put(WebSocketConstants.STATUS_DESCRIPTION, dto.getErrorMsg());
-        }
-        return object;
-    }
-}

+ 32 - 25
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotDayWorkOperationServiceImpl.java

@@ -11,12 +11,14 @@ import com.xunmei.common.core.domain.work.dto.WorkOperationReq;
 import com.xunmei.common.core.utils.RsaHelper;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
+import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.service.RouterService;
 import com.xunmei.host.work.mapper.IotDayWorkOperationMapper;
 import com.xunmei.host.work.service.IotDayWorkOperationService;
 import com.xunmei.system.api.util.LogUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeansException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -51,32 +53,37 @@ public class IotDayWorkOperationServiceImpl extends ServiceImpl<IotDayWorkOperat
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq req) {
-        Object data = req.getData();
-        LogUtils.SOCKET_WORK_OPERATION_DATA.info("接收到一键上下班操作数据:{}", data);
-        final IotServerInfo serverInfo = req.getServerInfo();
-        WorkOperationReq dayWorkOperation = JSON.parseObject(data.toString(), WorkOperationReq.class);
-        IotDayWorkOperation operation = findByHostDataIdAndIotCode(dayWorkOperation.getWorkId(), dayWorkOperation.getId(), serverInfo.getIotCode());
-        if (operation != null) {
-            BeanUtils.copyProperties(dayWorkOperation, operation,"id");
-            operation.setForceEndTime(dayWorkOperation.getDataEndTime());
-            operation.setOrgId(serverInfo.getOrgId());
-            operation.setOperationType(dayWorkOperation.getOperationType());
-            operation.setOrgName(serverInfo.getOrgName());
-            updateById(operation);
-        } else {
-            operation = new IotDayWorkOperation();
-            BeanUtils.copyProperties(dayWorkOperation, operation);
-            operation.setForceEndTime(dayWorkOperation.getDataEndTime());
-            operation.setHostDataId(dayWorkOperation.getWorkId());
-            operation.setHostDataOperationId(dayWorkOperation.getId());
-            operation.setIotCode(serverInfo.getIotCode());
-            operation.setId(IdWorker.getId());
-            operation.setOrgId(serverInfo.getOrgId());
-            operation.setOrgName(serverInfo.getOrgName());
-            save(operation);
+    public WebsocketResult execute(WebsocketExecuteReq req) {
+        try {
+            Object data = req.getData();
+            LogUtils.SOCKET_WORK_OPERATION_DATA.info("接收到一键上下班操作数据:{}", data);
+            final IotServerInfo serverInfo = req.getServerInfo();
+            WorkOperationReq dayWorkOperation = JSON.parseObject(data.toString(), WorkOperationReq.class);
+            IotDayWorkOperation operation = findByHostDataIdAndIotCode(dayWorkOperation.getWorkId(), dayWorkOperation.getId(), serverInfo.getIotCode());
+            if (operation != null) {
+                BeanUtils.copyProperties(dayWorkOperation, operation,"id");
+                operation.setForceEndTime(dayWorkOperation.getDataEndTime());
+                operation.setOrgId(serverInfo.getOrgId());
+                operation.setOperationType(dayWorkOperation.getOperationType());
+                operation.setOrgName(serverInfo.getOrgName());
+                updateById(operation);
+            } else {
+                operation = new IotDayWorkOperation();
+                BeanUtils.copyProperties(dayWorkOperation, operation);
+                operation.setForceEndTime(dayWorkOperation.getDataEndTime());
+                operation.setHostDataId(dayWorkOperation.getWorkId());
+                operation.setHostDataOperationId(dayWorkOperation.getId());
+                operation.setIotCode(serverInfo.getIotCode());
+                operation.setId(IdWorker.getId());
+                operation.setOrgId(serverInfo.getOrgId());
+                operation.setOrgName(serverInfo.getOrgName());
+                save(operation);
+            }
+        } catch (BeansException e) {
+            LogUtils.SOCKET_WORK_OPERATION_DATA.error("一键上下班操作数据,处理失败", e);
+            return WebsocketResult.replyError(req,String.format("一键上下班操作数据处理失败:%s",e));
         }
-        return null;
+        return WebsocketResult.replySuccess(req);
     }
     public static void main(String[] args) throws Exception {
         final String encodeStr = RsaHelper.encodeStr("123456");

+ 5 - 3
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotDayWorkServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
+import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
 import com.xunmei.common.core.domain.work.domain.IotDayWork;
 import com.xunmei.common.core.domain.work.dto.DayWorKReq;
@@ -12,6 +13,7 @@ import com.xunmei.common.core.utils.RsaHelper;
 import com.xunmei.host.server.service.IotServerInfoService;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
+import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.service.RouterService;
 import com.xunmei.host.work.mapper.IotDayWorkMapper;
@@ -55,7 +57,7 @@ public class IotDayWorkServiceImpl extends ServiceImpl<IotDayWorkMapper, IotDayW
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         final String event = req.getEvent();
         switch (event) {
             case WebSocketConstants.WORK:
@@ -65,9 +67,9 @@ public class IotDayWorkServiceImpl extends ServiceImpl<IotDayWorkMapper, IotDayW
                 dealPassWordChange(req);
                 break;
             default:
-                break;
+                return WebsocketResult.replyError(req, ErrorMsgConstants.ERROR_ROUTE);
         }
-        return null;
+        return WebsocketResult.replySuccess(req);
     }
 
     private void dealIotDayWorkData(WebsocketExecuteReq req) {

+ 2 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotWorkRuleServiceImpl.java

@@ -19,6 +19,7 @@ import com.xunmei.host.protection.service.IotAlarmSubsystemService;
 import com.xunmei.host.server.service.IotServerInfoService;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
+import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.service.RouterService;
 import com.xunmei.host.work.mapper.IotWorkRuleMapper;
@@ -75,7 +76,7 @@ public class IotWorkRuleServiceImpl extends ServiceImpl<IotWorkRuleMapper, IotWo
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object execute(WebsocketExecuteReq req) {
+    public WebsocketResult execute(WebsocketExecuteReq req) {
         LogUtils.SOCKET_WORK_RULE_DATA.info("收到消息:{}", JacksonUtils.toJSONString(req));
         if (WebSocketConstants.WORK_RULE.equals(req.getEvent())) {
             saveBatchWorkRule(req);