李进 2 rokov pred
rodič
commit
16586e598a

+ 22 - 17
device-api-service/src/main/java/com/xy/service/DeviceQualityServiceImpl.java

@@ -134,7 +134,7 @@ public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, D
     }
 
     @PostMapping("rest")
-    @ApiOperation("重置项质检")
+    @ApiOperation("重置项质检")
     public R rest(@RequestBody DeviceQualityDto.Rest rest) {
         SysDictRedis sysDictRedis1 = SysDictUtils.get(DeviceEnum.DEVICE_QUALITY_STATUS.getKey(), DeviceSonEnum.DEVICE_QUALITY_STATUS_QUALIFIED.getKey());
         SysDictRedis sysDictRedis2 = SysDictUtils.get(DeviceEnum.DEVICE_FACTORY_STATUS.getKey(), DeviceSonEnum.DEVICE_FACTORY_STATUS_CAN_SHIPPED.getKey());
@@ -142,22 +142,27 @@ public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, D
         if (sysDictRedis1.getValue().equals(deviceQuality.getQualityState()) || sysDictRedis2.getValue().equals(deviceQuality.getFactoryState())) {
             return R.fail("设备已合格或已出厂");
         }
-        //修改质检
-        UpdateWrapper<DeviceQuality> updateWrapper = new UpdateWrapper<DeviceQuality>()
-                .set(rest.getCode() + "_state_begin_time", LocalDateTime.now())
-                .set(rest.getCode() + "_state_end_time", null)
-                .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQuality::getQualityId)), rest.getQualityId());
-        update(updateWrapper);
-        //修改质检属性
-        DeviceQualityValueDto.Update update = new DeviceQualityValueDto.Update()
-                .setCode(rest.getCode());
-        update.setQualityId(rest.getQualityId());
-        deviceQualityValueService.update(update);
-        //发送mqtt指令
-        CommandMqtt commandMqtt = new CommandMqtt()
-                .setDeviceId(deviceQuality.getDeviceId())
-                .setTemplet(rest.getTemplet());
-        mqttService.senCommand(Arrays.asList(commandMqtt));
+        List<CommandMqtt> commandMqtts = new ArrayList<>();
+        List<DeviceQualityDto.Save.Templet> templets = rest.getTemplets();
+        for (DeviceQualityDto.Save.Templet templet : templets) {
+            //修改质检
+            UpdateWrapper<DeviceQuality> updateWrapper = new UpdateWrapper<DeviceQuality>()
+                    .set(templet.getCode() + "_state_begin_time", LocalDateTime.now())
+                    .set(templet.getCode() + "_state_end_time", null)
+                    .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQuality::getQualityId)), rest.getQualityId());
+            update(updateWrapper);
+            //修改质检属性
+            DeviceQualityValueDto.Update update = new DeviceQualityValueDto.Update()
+                    .setCode(templet.getCode());
+            update.setQualityId(rest.getQualityId());
+            deviceQualityValueService.update(update);
+            //发送mqtt指令
+            CommandMqtt commandMqtt = new CommandMqtt()
+                    .setDeviceId(deviceQuality.getDeviceId())
+                    .setTemplet(templet.getTemplet());
+            commandMqtts.add(commandMqtt);
+        }
+        mqttService.senCommand(commandMqtts);
         return R.ok();
     }
 

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

@@ -8,6 +8,7 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -75,12 +76,20 @@ public class DeviceQualityDto {
         @ApiModelProperty(value = "唯一标识", required = true)
         private Integer qualityId;
 
-        @NotBlank(message = "code不能为空")
-        @ApiModelProperty(value = "模板编码", required = true)
-        private String code;
+        @NotEmpty(message = "templets不能为空")
+        @ApiModelProperty(value = "模板集合", required = true)
+        private List<Save.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;
+        }
 
     }