Pārlūkot izejas kodu

mqtt指令发布

李进 2 gadi atpakaļ
vecāks
revīzija
30a0fd642d

+ 16 - 13
device-api-service/src/main/java/com/xy/service/DeviceQualityServiceImpl.java

@@ -185,13 +185,11 @@ public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, D
                 throw new CommRuntimeException(save.getDeviceId() + "设备不存在");
             }
             deviceQuality.setDeviceType(deviceInfo.getDeviceType())
-                    .setCreateTime(now)
-                    .setTradeStateBeginTime(now)
-                    .setLockerStateBeginTime(now)
-                    .setTempratureStateBeginTime(now)
-                    .setImitateTestStateBeginTime(now)
-                    .setSystemStateBeginTime(now)
-                    .setSettingStateBeginTime(now);
+                    .setCreateTime(now);
+            List<DeviceQualityDto.Save.Templet> templets = save.getTemplets();
+            if (Emptys.check(templets)) {
+                templets.forEach(templet -> Reflect.PropertyReflect.setPropertyValue(deviceQuality, templet.getCode() + "StateBeginTime", now));
+            }
             List<DeviceQuality> list = deviceQualitieJMap.get(deviceQuality.getDeviceId());
             if (Emptys.check(list)) {
                 JList<Integer> qualityIds = new JArrayList<>(list).getProperty(DeviceQuality::getQualityId);
@@ -213,13 +211,18 @@ public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, D
         deviceQualityValueService.save(deviceQualityValueDtoVos);
         //发送mqtt指令
         List<CommandMqtt> commandMqtts = new ArrayList<>(deviceQualitySaves.size());
-        for (DeviceQualityDto.Save deviceQualitySave : deviceQualitySaves) {
-            CommandMqtt commandMqtt = new CommandMqtt()
-                    .setDeviceId(deviceQualitySave.getDeviceId())
-                    .setTemplet(deviceQualitySave.getTemplet());
-            commandMqtts.add(commandMqtt);
+        deviceQualitySaves.forEach(save -> {
+            List<DeviceQualityDto.Save.Templet> templets = save.getTemplets();
+            if (Emptys.check(templets)) {
+                templets.forEach(templet -> {
+                    CommandMqtt commandMqtt = copy(CommandMqtt.class, templet).setDeviceId(save.getDeviceId());
+                    commandMqtts.add(commandMqtt);
+                });
+            }
+        });
+        if (Emptys.check(commandMqtts)) {
+            mqttService.senCommand(commandMqtts);
         }
-        mqttService.senCommand(commandMqtts);
         return R.ok();
     }
 

+ 12 - 5
device-api/src/main/java/com/xy/dto/DeviceQualityDto.java

@@ -91,12 +91,19 @@ public class DeviceQualityDto {
         @ApiModelProperty(value = "设备ID", required = true)
         private Long deviceId;
 
-        @NotBlank(message = "code不能为空")
-        @ApiModelProperty(value = "模板编码", required = true)
-        private String code;
+        @ApiModelProperty(value = "模板集合")
+        private List<Templet> templets;
 
-        @ApiModelProperty(value = "模板", required = true)
-        private JSONObject templet;
+        @Data
+        @Accessors(chain = true)
+        public static class Templet {
+
+            @ApiModelProperty(value = "模板编码")
+            private String code;
+
+            @ApiModelProperty(value = "模板值")
+            private JSONObject templet;
+        }
     }
 
     @Data