Przeglądaj źródła

优化轮训激活状态

suntianwu 3 lat temu
rodzic
commit
5920dfd878

+ 2 - 2
src/main/java/com/care/installation/controller/RoomController.java

@@ -203,13 +203,13 @@ public class RoomController {
     }
 
     /**
-     * 查询配置房间信息的结果
+     * 查询配置房间信息的结果,前端轮训
      * @return
      */
     @GetMapping("getCommitRoomInfoResult")
     @ApiOperation(tags = {"设备安装"},value = "查询配置房间信息的结果,0:处理中,1:成功,2:失败,3:超时")
     public Result<String> getConfigureRoomInfoResult(@RequestParam("devCode") String devCode) {
-        return Result.success("请求成功",this.roomService.getConfigureRoomInfoResult(devCode));
+        return Result.success("请求成功",this.roomService.getConfigureRoomInfoResult(devCode,true));
     }
 
 }

+ 32 - 24
src/main/java/com/care/installation/service/RoomService.java

@@ -45,6 +45,8 @@ public class RoomService {
     @Resource
     private MqttConnectorInstallPoolService mqttConnectorInstallPoolService;
     @Resource
+    private MqttConnectorPoolService mqttConnectorPoolService;
+    @Resource
     private RedisUtil redisUtil;
 
     public  Map<String,Boolean> getConfStatusInfo(String devCode) {
@@ -311,7 +313,7 @@ public class RoomService {
         Long timeout = Long.parseLong(CommonConfUtil.getConf("mqtt.dev.jihuo.timeout"));
        try {
            Thread.sleep(timeout * 1000 + 100);
-           getConfigureRoomInfoResult(devCode);
+           getConfigureRoomInfoResult(devCode,false);
        } catch (Exception e){
            e.printStackTrace();
        }
@@ -320,7 +322,7 @@ public class RoomService {
      * 查询配置房间信息的Mqtt返回结果
      * @return
      */
-    public String getConfigureRoomInfoResult(String devCode) {
+    public String getConfigureRoomInfoResult(String devCode,boolean isRepeat) {
         QueryWrapper<CareDevice> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(CareDevice::getDevCode,devCode);
         CareDevice careDevice = careDeviceService.getOne(queryWrapper);
@@ -397,34 +399,40 @@ public class RoomService {
         }
 
          if (careRoomResult == 2 || careRoomSensorResult == 2 || careRoomGateResult == 2 || careRoomRegionResult == 2) { //失败
-//            //设备离线
-//            careDevice.setStatus(DeviceStatusEnum.OFFLINE.getValue());
-//            mqttConnectorPoolService.removeOne(careDevice);
-//            //未激活
-//            careDevice.setActiveStatus(DeviceActiveStatusEnum.NOACTIVE.getValue());
-//            careDeviceService.updateById(careDevice);
-
-            //去除publish的客户端监听
-             mqttConnectorInstallPoolService.removeInstallOne(careDevice);
+             if(!isRepeat){
+                 //设备离线
+                 careDevice.setStatus(DeviceStatusEnum.OFFLINE.getValue());
+                 mqttConnectorPoolService.removeOne(careDevice);
+                 //未激活
+                 careDevice.setActiveStatus(DeviceActiveStatusEnum.NOACTIVE.getValue());
+                 careDeviceService.updateById(careDevice);
+
+                 //去除publish的客户端监听
+                 mqttConnectorInstallPoolService.removeInstallOne(careDevice);
+             }
+
             return InstallDevStatusEnum.FAIL.getValue();
         }  else if (careRoomResult == 3 || careRoomSensorResult == 3 || careRoomGateResult == 3 || careRoomRegionResult == 3){ //超时
-             //去除publish的客户端监听
-             mqttConnectorInstallPoolService.removeInstallOne(careDevice);
+             if(!isRepeat) {
+                 //去除publish的客户端监听
+                 mqttConnectorInstallPoolService.removeInstallOne(careDevice);
+             }
              return InstallDevStatusEnum.TIMEOUT.getValue();
          }  else if (careRoomResult == 0 || careRoomSensorResult == 0 || careRoomGateResult == 0 || careRoomRegionResult == 0){ //处理中
              return InstallDevStatusEnum.DOING.getValue();
         }  else { //成功
-            //激活
-            careDevice.setActiveStatus(DeviceActiveStatusEnum.ACTIVE.getValue());
-            //启动通道
-             mqttConnectorInstallPoolService.addInsallOne(careDevice);
-            //上线
-            careDevice.setStatus(DeviceStatusEnum.ONLINE.getValue());
-            careDeviceService.updateById(careDevice);
-
-            //去除publish的客户端监听
-             mqttConnectorInstallPoolService.removeInstallOne(careDevice);
-
+             if(!isRepeat) {
+                 //激活
+                 careDevice.setActiveStatus(DeviceActiveStatusEnum.ACTIVE.getValue());
+                 //启动通道
+                 mqttConnectorPoolService.addOne(careDevice);
+                 //上线
+                 careDevice.setStatus(DeviceStatusEnum.ONLINE.getValue());
+                 careDeviceService.updateById(careDevice);
+
+                 //去除publish的客户端监听
+                 mqttConnectorInstallPoolService.removeInstallOne(careDevice);
+             }
             return InstallDevStatusEnum.SUCCESS.getValue();
 
         }