Ver Fonte

设备版本升级

李进 há 2 anos atrás
pai
commit
3cc5dda07d

+ 9 - 5
device-api-service/src/main/java/com/xy/entity/DeviceVersionUp.java

@@ -1,13 +1,14 @@
 package com.xy.entity;
 
-import java.time.LocalDateTime;
-import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
 /**
  * <p>
  * 设备版本升级记录表
@@ -19,7 +20,7 @@ import lombok.experimental.Accessors;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="DeviceVersionUp对象", description="设备版本升级记录表")
+@ApiModel(value = "DeviceVersionUp对象", description = "设备版本升级记录表")
 public class DeviceVersionUp implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -42,8 +43,11 @@ public class DeviceVersionUp implements Serializable {
     @ApiModelProperty(value = "指令值")
     private String cmdValue;
 
-    @ApiModelProperty(value = "升级结果值")
-    private String resultValue;
+    @ApiModelProperty(value = "升级进度百分比")
+    private Integer progress;
+
+    @ApiModelProperty(value = "升级说明")
+    private String msg;
 
     @ApiModelProperty(value = "创建时间")
     private LocalDateTime createTime;

+ 10 - 6
device-api-service/src/main/java/com/xy/service/DeviceVersionUpServiceImpl.java

@@ -7,10 +7,7 @@ import com.github.yitter.idgen.YitIdHelper;
 import com.xy.dto.DeviceVersionUpDto;
 import com.xy.entity.DeviceVersionUp;
 import com.xy.mapper.DeviceVersionUpMapper;
-import com.xy.utils.Beans;
-import com.xy.utils.MybatisPlusQuery;
-import com.xy.utils.PageBean;
-import com.xy.utils.R;
+import com.xy.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -53,7 +50,9 @@ public class DeviceVersionUpServiceImpl extends ServiceImpl<DeviceVersionUpMappe
     @ApiOperation("添加/修改")
     @PostMapping("saveOrUpdate")
     public R saveOrUpdate(@RequestBody @Validated DeviceVersionUpDto.SaveOrUpdate saveOrUpdate) {
-        LambdaQueryWrapper<DeviceVersionUp> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(saveOrUpdate, DeviceVersionUp.class).build();
+        LambdaQueryWrapper<DeviceVersionUp> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceVersionUp>()
+                .eq(DeviceVersionUp::getDeviceId, saveOrUpdate.getDeviceId())
+                .eq(DeviceVersionUp::getDeviceVersion, saveOrUpdate.getDeviceVersion());
         DeviceVersionUp deviceVersionUp = getOne(lambdaQueryWrapper);
         LocalDateTime now = LocalDateTime.now();
         if (deviceVersionUp == null) {
@@ -62,7 +61,12 @@ public class DeviceVersionUpServiceImpl extends ServiceImpl<DeviceVersionUpMappe
                     .setCreateTime(now)
                     .setUpdateTime(now);
         } else {
-            deviceVersionUp = Beans.copy(DeviceVersionUp.class, saveOrUpdate).setUpdateTime(now);
+            saveOrUpdate.setId(deviceVersionUp.getId());
+            deviceVersionUp = Beans.copy(DeviceVersionUp.class, saveOrUpdate)
+                    .setUpdateTime(now);
+            if (Emptys.check(saveOrUpdate.getAccumSendNum())) {
+                deviceVersionUp.setSendNum(deviceVersionUp.getSendNum() + saveOrUpdate.getAccumSendNum());
+            }
         }
         saveOrUpdate(deviceVersionUp);
         return R.ok();

+ 22 - 1
device-api-service/src/main/java/com/xy/service/factory/cmd/impl/TaskCmdServiceImpl.java

@@ -2,13 +2,16 @@ package com.xy.service.factory.cmd.impl;
 
 import cn.hutool.json.JSONObject;
 import com.xy.annotate.Factory;
+import com.xy.device.EnumDeviceVersionUpStatus;
 import com.xy.device.EnumMqttCmdTempletTask;
 import com.xy.dto.ActivityInfoDto;
+import com.xy.dto.DeviceVersionUpDto;
 import com.xy.dto.MqttDto;
 import com.xy.service.ActivityInfoService;
 import com.xy.service.DeviceVersionUpServiceImpl;
 import com.xy.service.factory.cmd.CmdService;
 import com.xy.utils.R;
+import com.xy.utils.SysDictUtils;
 import lombok.AllArgsConstructor;
 
 import java.util.List;
@@ -35,7 +38,14 @@ public class TaskCmdServiceImpl implements CmdService {
             }
             //版本升级
             if (type.equals(EnumMqttCmdTempletTask.APPUPDATE.getCode())) {
-
+                Integer value = SysDictUtils.getValue(EnumDeviceVersionUpStatus.Code.CODE.getCode(), EnumDeviceVersionUpStatus.N_1.getCode(), Integer.class);
+                DeviceVersionUpDto.SaveOrUpdate saveOrUpdate = new DeviceVersionUpDto.SaveOrUpdate()
+                        .setDeviceId(mqttDto.getDeviceId())
+                        .setDeviceVersion(data.getStr("version"))
+                        .setAccumSendNum(1);
+                saveOrUpdate.setCmdValue(mqttDto.getPater().getData().toString());
+                saveOrUpdate.setStatus(value);
+                deviceVersionUpService.saveOrUpdate(saveOrUpdate);
             }
         }
         return R.ok();
@@ -43,6 +53,17 @@ public class TaskCmdServiceImpl implements CmdService {
 
     @Override
     public R resultBack(MqttDto.ResultBack resultBack) {
+        DeviceVersionUpDto.DeviceVersionUpResultBack deviceVersionUpResultBack = resultBack.getDeviceVersionUpResultBack();
+        //版本升级
+        if (deviceVersionUpResultBack != null) {
+            DeviceVersionUpDto.SaveOrUpdate saveOrUpdate = new DeviceVersionUpDto.SaveOrUpdate()
+                    .setDeviceId(deviceVersionUpResultBack.getDeviceId())
+                    .setDeviceVersion(deviceVersionUpResultBack.getDeviceVersion());
+            saveOrUpdate.setStatus(deviceVersionUpResultBack.getStatus());
+            saveOrUpdate.setProgress(deviceVersionUpResultBack.getProgress());
+            saveOrUpdate.setMsg(deviceVersionUpResultBack.getMsg());
+            deviceVersionUpService.saveOrUpdate(saveOrUpdate);
+        }
         return R.ok();
     }
 }

+ 34 - 2
device-api/src/main/java/com/xy/dto/DeviceVersionUpDto.java

@@ -40,6 +40,35 @@ public class DeviceVersionUpDto {
         @NotBlank(message = "deviceVersion不能为空")
         @ApiModelProperty(value = "版本号")
         private String deviceVersion;
+
+
+        @ApiModelProperty(value = "修改 累加发送次数")
+        private Integer accumSendNum;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceVersionUpResultBack {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty(value = "设备ID", required = true)
+        private Long deviceId;
+
+        @NotBlank(message = "deviceVersion不能为空")
+        @ApiModelProperty(value = "版本号")
+        private String deviceVersion;
+
+        @NotNull(message = "progress不能为空")
+        @ApiModelProperty(value = "进度百分比")
+        private Integer progress;
+
+        @NotNull(message = "status不能为空")
+        @ApiModelProperty(value = "状态")
+        private Integer status;
+
+        @NotBlank(message = "msg不能为空")
+        @ApiModelProperty(value = "说明")
+        private String msg;
     }
 
     @Data
@@ -64,8 +93,11 @@ public class DeviceVersionUpDto {
         @ApiModelProperty(value = "指令值")
         private String cmdValue;
 
-        @ApiModelProperty(value = "升级结果值")
-        private String resultValue;
+        @ApiModelProperty(value = "升级进度百分比")
+        private Integer progress;
+
+        @ApiModelProperty(value = "升级说明")
+        private String msg;
 
         @ApiModelProperty(value = "创建时间")
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 3 - 0
device-api/src/main/java/com/xy/dto/MqttDto.java

@@ -47,6 +47,9 @@ public class MqttDto {
 
         @ApiModelProperty(value = "温度设置通知对象")
         private DeviceTempSetDto.DeviceTempResultBack deviceTempResultBack;
+
+        @ApiModelProperty(value = "设备版本升级通知对象")
+        private DeviceVersionUpDto.DeviceVersionUpResultBack deviceVersionUpResultBack;
     }
 
     @Data