소스 검색

指令记录修改

李进 2 년 전
부모
커밋
74ca371ff7

+ 5 - 0
device-api-service/src/main/java/com/xy/entity/MqttCommand.java

@@ -96,4 +96,9 @@ public class MqttCommand {
      */
     private String error;
 
+    /**
+     * 执行结果
+     */
+    private String result;
+
 }

+ 5 - 29
device-api-service/src/main/java/com/xy/service/MqttServiceImpl.java

@@ -37,7 +37,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import static com.xy.utils.PlusBeans.*;
 
@@ -53,8 +52,6 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
 
     private final DeviceInfoServiceImpl deviceInfoService;
 
-    private String keyStr = "mqtt:cmd:result:%d";
-
     private boolean snInit;
 
     public long getSn() {
@@ -144,27 +141,12 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
         if (!Emptys.check(mqttCommand)) {
             return R.fail("数据不存在");
         }
-        //写入mysql
+        JSONObject result = ackMqttDto.getResult();
         mqttCommand.setStatus(Integer.valueOf(ackMqttDto.getStatusEnum().getKey()))
+                .setResult(result != null ? result.toString() : null)
                 .setBackClientTime(DataTime.toString(ackMqttDto.getBackClientTime()))
                 .setBackServerTime(DataTime.getSring());
         updateById(mqttCommand);
-        //写入redis
-        String result = ackMqttDto.getResult().toString();
-        if (Emptys.check(ackMqttDto.getResult())) {
-            String key = String.format(keyStr, ackMqttDto.getSn());
-            String backClientTime = DataTime.toString(ackMqttDto.getBackClientTime());
-            Map<String, String> map = redisService.getMap(key);
-            if (Emptys.check(map)) {
-                String time = map.get("time");
-                if (DataTime.stringContrast(time, backClientTime) >= 0) {
-                    return R.ok();
-                }
-            }
-            JMap<String, String> jmap = new JHashMap<String, String>().set("time", backClientTime).set("result", result);
-            redisService.setMap(key, jmap);
-            redisService.timeout(key, 300);
-        }
         return R.ok();
     }
 
@@ -176,16 +158,10 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
 
     @PostMapping("snByCmdAndResult")
     @ApiOperation("sn查询指令和结果数据")
-    public R<MqttDto.Vo3> snByCmdAndResult(@RequestBody MqttDto.SnByCmdAndResult snByCmdAndResult) {
+    public R<MqttDto.Vo2> snByCmdAndResult(@RequestBody MqttDto.SnByCmdAndResult snByCmdAndResult) {
         MqttCommand mqttCommand = getById(snByCmdAndResult.getSn());
-        String key = String.format(keyStr, snByCmdAndResult.getSn());
-        Map<String, String> map = redisService.getMap(key);
-        MqttDto.Vo3 vo3 = copy(MqttDto.Vo3.class, mqttCommand);
-        if (Emptys.check(map)) {
-            String result = map.get("result");
-            vo3.setResult(JSONUtil.parseObj(result));
-        }
-        return R.ok(vo3);
+        MqttDto.Vo2 vo2 = copy(MqttDto.Vo2.class, mqttCommand);
+        return R.ok(vo2);
     }
 
     @PostMapping("page")

+ 13 - 17
device-api/src/main/java/com/xy/dto/MqttDto.java

@@ -1,6 +1,5 @@
 package com.xy.dto;
 
-import cn.hutool.json.JSONObject;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xy.utils.PageBean;
 import io.swagger.annotations.ApiModelProperty;
@@ -119,18 +118,21 @@ public class MqttDto {
     public static class Vo2 {
 
         @ApiModelProperty("id")
-        private String id;
+        private Long sn;
+
+        @ApiModelProperty("业务sn")
+        private Long wkSn;
 
         @ApiModelProperty("是否调试")
         private Boolean debug;
 
-        @ApiModelProperty("指令大类")
-        private String type1;
+        @ApiModelProperty("业务类型")
+        private String cmdType;
 
-        @ApiModelProperty("指令小类")
-        private String type2;
+        @ApiModelProperty("行为类型")
+        private String actionType;
 
-        @ApiModelProperty("指令状态 1=已发送 2=发送失败 3=已执行 4=执行失败,5=执行超时 6=已接收 7=已拒绝")
+        @ApiModelProperty("指令状态 1=已发送 2=发送失败 3=已执行 4=执行失败,5=执行超时 6=已完成 7=已拒绝")
         private Integer status;
 
         @ApiModelProperty("指令完整值")
@@ -145,8 +147,8 @@ public class MqttDto {
         @ApiModelProperty("服务端指令上报时间")
         private String backServerTime;
 
-        @ApiModelProperty("指令过期时间")
-        private String timeout;
+        @ApiModelProperty("指令有效期")
+        private Integer timeout;
 
         @ApiModelProperty("接收指令的topic")
         private String topic;
@@ -165,14 +167,8 @@ public class MqttDto {
 
         @ApiModelProperty("错误日志")
         private String error;
-    }
-
-    @Data
-    @Accessors(chain = true)
-    public static class Vo3 extends Vo2 {
-
-        @ApiModelProperty("指令执行结果")
-        private JSONObject result;
 
+        @ApiModelProperty("执行结果")
+        private String result;
     }
 }