Explorar el Código

mqtt指令发布

李进 hace 2 años
padre
commit
535e27a0b9

+ 2 - 3
device-api-service/src/main/java/com/xy/job/DeviceDataJob.java

@@ -4,13 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xy.entity.DeviceData;
-import com.xy.entity.DeviceRecords;
 import com.xy.entity.SysDictRedis;
 import com.xy.mapper.DeviceDataMapper;
 import com.xy.utils.DataTime;
 import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -38,7 +37,7 @@ public class DeviceDataJob {
     @XxlJob("delDeviceData")
     public ReturnT<String> delDeviceData() {
         //数据保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "device_data_day");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "device_data_day");
         Integer jobParam = JobUtils.getPrams().gtInt();
         Integer saveDay = jobParam != null ? jobParam
                 : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())

+ 2 - 2
device-api-service/src/main/java/com/xy/job/DeviceErrorsRecordJob.java

@@ -9,7 +9,7 @@ import com.xy.mapper.DeviceErrorsRecordMapper;
 import com.xy.utils.DataTime;
 import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -37,7 +37,7 @@ public class DeviceErrorsRecordJob {
     @XxlJob("DeviceErrorsRecord")
     public ReturnT<String> delDeviceErrorsRecord() {
         //数据保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "device_errors_record_day");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "device_errors_record_day");
         Integer jobParam = JobUtils.getPrams().gtInt();
         Integer saveDay = jobParam != null ? jobParam
                 : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())

+ 2 - 2
device-api-service/src/main/java/com/xy/job/DeviceNetRecordJob.java

@@ -9,7 +9,7 @@ import com.xy.mapper.DeviceNetRecordMapper;
 import com.xy.utils.DataTime;
 import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -37,7 +37,7 @@ public class DeviceNetRecordJob {
     @XxlJob("delDeviceNetRecord")
     public ReturnT<String> delDeviceNetRecord() {
         //数据保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "device_net_record_day");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "device_net_record_day");
         Integer jobParam = JobUtils.getPrams().gtInt();
         Integer saveDay = jobParam != null ? jobParam
                 : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())

+ 2 - 2
device-api-service/src/main/java/com/xy/job/DeviceRecordsJob.java

@@ -9,7 +9,7 @@ import com.xy.mapper.DeviceRecordsMapper;
 import com.xy.utils.DataTime;
 import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -37,7 +37,7 @@ public class DeviceRecordsJob {
     @XxlJob("delDeviceRecords")
     public ReturnT<String> delDeviceRecords() {
         //数据保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "device_records_day");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "device_records_day");
         Integer jobParam = JobUtils.getPrams().gtInt();
         Integer saveDay = jobParam != null ? jobParam
                 : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())

+ 2 - 2
device-api-service/src/main/java/com/xy/job/DeviceTempRecordsJob.java

@@ -9,7 +9,7 @@ import com.xy.mapper.DeviceTempRecordsMapper;
 import com.xy.utils.DataTime;
 import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -37,7 +37,7 @@ public class DeviceTempRecordsJob {
     @XxlJob("delDeviceTempRecords")
     public ReturnT<String> delDeviceTempRecords() {
         //数据保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "device_temp_records_day");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "device_temp_records_day");
         Integer jobParam = JobUtils.getPrams().gtInt();
         Integer saveDay = jobParam != null ? jobParam
                 : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())

+ 3 - 3
device-api-service/src/main/java/com/xy/job/MqttCommandJob.java

@@ -11,7 +11,7 @@ import com.xy.mapper.MqttCommandMapper;
 import com.xy.utils.DataTime;
 import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import com.xy.utils.enums.MqttCommandStatusEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -38,7 +38,7 @@ public class MqttCommandJob {
     @XxlJob("commandClean")
     public ReturnT<String> commandClean() {
         //指令保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "mqtt_command_day");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "mqtt_command_day");
         Integer jobParam = JobUtils.getPrams().gtInt();
         Integer saveDay = jobParam != null ? jobParam
                 : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())
@@ -58,7 +58,7 @@ public class MqttCommandJob {
     @XxlJob("commandDataCloud")
     public ReturnT<String> commandDataCloud() {
         //过期时间小于当前时间的阈值,单位s
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "mqtt_command_cloud");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "mqtt_command_cloud");
         Integer jobParam = JobUtils.getPrams().gtInt();
         Integer threshold = jobParam != null ? jobParam
                 : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())

+ 2 - 2
device-api-service/src/main/java/com/xy/service/DeviceDataServiceImpl.java

@@ -13,7 +13,7 @@ import com.xy.entity.DeviceData;
 import com.xy.entity.SysDictRedis;
 import com.xy.mapper.DeviceDataMapper;
 import com.xy.utils.*;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -75,7 +75,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
         LocalDateTime now = LocalDateTime.now();
         String stringTime = DataTime.toString(now, "yyyyMMdd");
         //获取字典
-        Map<String, SysDictRedis> map = SysDictUtils.get(DeviceEnum.DEVICE_DATA_TYPE.getKey());
+        Map<String, SysDictRedis> map = SysDictUtils.get(DictEnum.DEVICE_DATA_TYPE.getKey());
         //查询已存在数据
         List<DeviceData> list = list(new LambdaQueryWrapper<DeviceData>()
                 .eq(DeviceData::getDeviceId, saveOrAccum.getDeviceId())

+ 2 - 2
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -16,7 +16,7 @@ import com.xy.error.CommRuntimeException;
 import com.xy.mapper.DeviceInfoMapper;
 import com.xy.mapper.entity.DeviceInfoQueryPage;
 import com.xy.utils.*;
-import com.xy.utils.enums.DeviceEnum;
+import com.xy.utils.enums.DictEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -87,7 +87,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     @ApiOperation("设备访问历史添加")
     public R history(DeviceInfoDto.Obj obj) {
         //获取字典
-        SysDictRedis sysDictRedis = SysDictUtils.get(DeviceEnum.DATA_CLEAR_SIZE.getKey(), "device_history_twig");
+        SysDictRedis sysDictRedis = SysDictUtils.get(DictEnum.DATA_CLEAR_SIZE.getKey(), "device_history_twig");
         Integer value = Integer.valueOf(sysDictRedis.getValue());
         //获取redis
         String key = keyPrefix + AuthorizeUtils.getLoginId(Long.class);

+ 48 - 9
device-api-service/src/main/java/com/xy/service/DeviceQualityServiceImpl.java

@@ -1,5 +1,7 @@
 package com.xy.service;
 
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,8 +20,9 @@ import com.xy.error.CommRuntimeException;
 import com.xy.mapper.DeviceInfoMapper;
 import com.xy.mapper.DeviceQualityMapper;
 import com.xy.utils.*;
-import com.xy.utils.enums.DeviceEnum;
-import com.xy.utils.enums.DeviceSonEnum;
+import com.xy.utils.enums.DictEnum;
+import com.xy.utils.enums.DictSonEnum;
+import com.xy.utils.enums.QualityEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -136,30 +139,34 @@ public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, D
     @PostMapping("rest")
     @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());
+        SysDictRedis sysDictRedis1 = SysDictUtils.get(DictEnum.DEVICE_QUALITY_STATUS.getKey(), DictSonEnum.DEVICE_QUALITY_STATUS_QUALIFIED.getKey());
+        SysDictRedis sysDictRedis2 = SysDictUtils.get(DictEnum.DEVICE_FACTORY_STATUS.getKey(), DictSonEnum.DEVICE_FACTORY_STATUS_CAN_SHIPPED.getKey());
         DeviceQuality deviceQuality = getById(rest.getQualityId());
         if (sysDictRedis1.getValue().equals(deviceQuality.getQualityState()) || sysDictRedis2.getValue().equals(deviceQuality.getFactoryState())) {
             return R.fail("设备已合格或已出厂");
         }
         List<CommandMqtt> commandMqtts = new ArrayList<>();
         List<DeviceQualityDto.Save.Templet> templets = rest.getTemplets();
+        LocalDateTime now = LocalDateTime.now();
         for (DeviceQualityDto.Save.Templet templet : templets) {
+            JSONObject obj = JSONUtil.parseObj(templet.getTemplet().getJSONArray(LambdaUtils.getProperty(DeviceQualityDto.QualityResultBack::getData)).get(0));
+            String type = obj.getStr(LambdaUtils.getProperty(DeviceQualityDto.QualityResultBack::getType));
             //修改质检
             UpdateWrapper<DeviceQuality> updateWrapper = new UpdateWrapper<DeviceQuality>()
-                    .set(templet.getCode() + "_state_begin_time", LocalDateTime.now())
-                    .set(templet.getCode() + "_state_end_time", null)
+                    .set(QualityEnum.getQualityEnum(type).getBeginTime(), now)
+                    .set(QualityEnum.getQualityEnum(type).getEndTime(), null)
+                    .set(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQuality::getUpdateTime)), now)
                     .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQuality::getQualityId)), rest.getQualityId());
             update(updateWrapper);
             //修改质检属性
             DeviceQualityValueDto.Update update = new DeviceQualityValueDto.Update()
-                    .setCode(templet.getCode());
+                    .setCode(type);
             update.setQualityId(rest.getQualityId());
             deviceQualityValueService.update(update);
             //发送mqtt指令
             CommandMqtt commandMqtt = new CommandMqtt()
                     .setDeviceId(deviceQuality.getDeviceId())
-                    .setTemplet(templet.getTemplet());
+                    .setTemplet(obj);
             commandMqtts.add(commandMqtt);
         }
         mqttService.senCommand(commandMqtts);
@@ -193,7 +200,11 @@ public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, D
                     .setCreateTime(now);
             List<DeviceQualityDto.Save.Templet> templets = save.getTemplets();
             if (Emptys.check(templets)) {
-                templets.forEach(templet -> Reflect.PropertyReflect.setPropertyValue(deviceQuality, templet.getCode() + "StateBeginTime", now));
+                templets.forEach(templet -> {
+                    JSONObject obj = JSONUtil.parseObj(templet.getTemplet().getJSONArray(LambdaUtils.getProperty(DeviceQualityDto.QualityResultBack::getData)).get(0));
+                    String type = obj.getStr(LambdaUtils.getProperty(DeviceQualityDto.QualityResultBack::getType));
+                    Reflect.PropertyReflect.setPropertyValue(deviceQuality, StringTools.toCamelCase(QualityEnum.getQualityEnum(type).getBeginTime()), now);
+                });
             }
             List<DeviceQuality> list = deviceQualitieJMap.get(deviceQuality.getDeviceId());
             if (Emptys.check(list)) {
@@ -246,4 +257,32 @@ public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, D
         QRCodeUtils.create(deviceId, 400, 400, "back1.png", deviceId).download(deviceId);
     }
 
+    @ApiOperation("质检结果通知")
+    @PostMapping("qualityResultBack")
+    public R qualityResultBack(@RequestBody DeviceQualityDto.QualityResultBack qualityResultBack) {
+        Long deviceId = qualityResultBack.getDeviceId();
+        String type = qualityResultBack.getType();
+        JSONObject data = qualityResultBack.getData();
+        LambdaQueryWrapper<DeviceQuality> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceQuality>()
+                .eq(DeviceQuality::getDeviceId, deviceId)
+                .eq(DeviceQuality::getShowStatus, true);
+        DeviceQuality deviceQuality = getOne(lambdaQueryWrapper);
+        if (deviceQuality == null) {
+            return R.fail("设备不存在");
+        }
+        //修改质检
+        UpdateWrapper<DeviceQuality> updateWrapper = new UpdateWrapper<DeviceQuality>()
+                .set(QualityEnum.getQualityEnum(type).getEndTime(), LocalDateTime.now())
+                .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQuality::getDeviceId)), deviceId)
+                .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQuality::getShowStatus)), true);
+        update(updateWrapper);
+        //修改质检值
+        DeviceQualityValueDto.Update update = new DeviceQualityValueDto.Update()
+                .setCode(type)
+                .setValue(data);
+        update.setQualityId(deviceQuality.getQualityId());
+        deviceQualityValueService.update(update);
+        return R.ok();
+    }
+
 }

+ 3 - 2
device-api-service/src/main/java/com/xy/service/DeviceQualityValueServiceImpl.java

@@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.DeviceQualityValueDto;
-import com.xy.entity.DeviceQuality;
 import com.xy.entity.DeviceQualityValue;
 import com.xy.mapper.DeviceQualityValueMapper;
 import com.xy.utils.*;
+import com.xy.utils.enums.QualityEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -60,7 +60,8 @@ public class DeviceQualityValueServiceImpl extends ServiceImpl<DeviceQualityValu
     public R update(@RequestBody DeviceQualityValueDto.Update update) {
         if (Emptys.check(update.getCode())) {
             UpdateWrapper<DeviceQualityValue> updateWrapper = new UpdateWrapper<DeviceQualityValue>()
-                    .set(update.getCode() + "_state_value", null)
+                    .set(QualityEnum.getQualityEnum(update.getCode()).getValue(), update.getValue() == null ? null : update.getValue().toString())
+                    .set(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQualityValue::getUpdateTime)), LocalDateTime.now())
                     .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceQualityValue::getQualityId)), update.getQualityId());
             update(updateWrapper);
         } else {

+ 7 - 11
device-api-service/src/main/java/com/xy/service/MqttServiceImpl.java

@@ -7,9 +7,6 @@ import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.github.yitter.idgen.YitIdHelper;
 import com.xy.annotate.Timer;
-import com.xy.collections.map.JConcurrentHashMap;
-import com.xy.collections.map.JMap;
-import com.xy.config.ThreadPoolConfig;
 import com.xy.dto.BackMqttDto;
 import com.xy.dto.CommandMqtt;
 import com.xy.dto.MqttDto;
@@ -30,6 +27,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -47,9 +45,8 @@ public class MqttServiceImpl implements MqttService {
 
     private Map<String, Boolean> sendMqtt(List<MqttDto> mqttDtos) {
         String time = DataTime.getSring();
-        JMap<String, Boolean> map = new JConcurrentHashMap<>(mqttDtos.size());
-        ThreadPoolUtils.Execute execute = ThreadPoolUtils.excPoll(ThreadPoolConfig.SEND_MQTT_POLL, mqttDtos.size());
-        mqttDtos.forEach(mqttDto -> execute.execute(() -> {
+        Map<String, Boolean> map = new HashMap<>(mqttDtos.size());
+        mqttDtos.forEach(mqttDto -> {
             //给予默认值
             PaterDto pater = mqttDto.getPater()
                     .setSn(String.valueOf(YitIdHelper.nextId()))
@@ -80,8 +77,7 @@ public class MqttServiceImpl implements MqttService {
                 saveMqttCommand(mqttDto, value, MqttCommandStatusEnum.COMMAND_SEND_FAIL, e.getMessage());
                 map.put(wkSn, false);
             }
-        }));
-        execute.end();
+        });
         return map;
     }
 
@@ -90,7 +86,7 @@ public class MqttServiceImpl implements MqttService {
     @ApiOperation("发送指令")
     public R<Map<String, Boolean>> senCommand(List<CommandMqtt> commandMqtts) {
         List<MqttDto> mqttDtos = new ArrayList<>();
-        for (CommandMqtt commandMqtt : commandMqtts) {
+        commandMqtts.forEach(commandMqtt -> {
             JSONObject templetObj = commandMqtt.getTemplet();
             String debug = templetObj.getStr(LambdaUtils.getProperty(MqttDto::getDebug));
             String level = templetObj.getStr(LambdaUtils.getProperty(MqttDto::getLevel));
@@ -115,13 +111,13 @@ public class MqttServiceImpl implements MqttService {
                     .setTimeout(Emptys.check(timeout) && !timeout.equals("$timeout$") ? Integer.valueOf(timeout) : Emptys.check(timeout) && timeout.equals("$timeout$") ? 60 : 60)
                     .setPater(paterDto);
             mqttDtos.add(mqttDto);
-        }
+        });
         Map<String, Boolean> map = sendMqtt(mqttDtos);
         return R.ok(map);
     }
 
     @Override
-    @ApiOperation("指令结果回执")
+    @ApiOperation("指令结果通知")
     public R commandBack(BackMqttDto backMqttDto) {
         MqttCommand mqttCommand = mqttCommandMapper.selectById(backMqttDto.getSn());
         if (!Emptys.check(mqttCommand)) {

+ 4 - 7
device-api-service/src/main/java/com/xy/utils/enums/DeviceEnum.java → device-api-service/src/main/java/com/xy/utils/enums/DictEnum.java

@@ -1,12 +1,14 @@
 package com.xy.utils.enums;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * 设备父枚举
+ * 字典枚举
  */
 @Getter
-public enum DeviceEnum {
+@AllArgsConstructor
+public enum DictEnum {
     DEVICE_DATA_TYPE("device_data_type", "设备统计数据-统计类型"),
 
     DATA_CLEAR_SIZE("data_clear_size", "数据保留数配置"),
@@ -22,9 +24,4 @@ public enum DeviceEnum {
     private String key;
 
     private String msg;
-
-    DeviceEnum(String key, String msg) {
-        this.key = key;
-        this.msg = msg;
-    }
 }

+ 4 - 6
device-api-service/src/main/java/com/xy/utils/enums/DeviceSonEnum.java → device-api-service/src/main/java/com/xy/utils/enums/DictSonEnum.java

@@ -1,12 +1,14 @@
 package com.xy.utils.enums;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * 设备子枚举
+ * 字典子枚举
  */
 @Getter
-public enum DeviceSonEnum {
+@AllArgsConstructor
+public enum DictSonEnum {
 
     DEVICE_QUALITY_STATUS_QUALIFIED("qualified", "设备质检-合格状态-合格"),
 
@@ -24,8 +26,4 @@ public enum DeviceSonEnum {
 
     private String msg;
 
-    DeviceSonEnum(String key, String msg) {
-        this.key = key;
-        this.msg = msg;
-    }
 }

+ 79 - 0
device-api-service/src/main/java/com/xy/utils/enums/QualityEnum.java

@@ -0,0 +1,79 @@
+package com.xy.utils.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 质检类型对应表列枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum QualityEnum {
+
+    /**
+     * 软件硬系统检查
+     */
+    CHECK_SYSTEM("check_system", "system_state", "system_state_begin_time", "system_state_end_time", "system_state_value"),
+
+    /**
+     * 交易测试检查
+     */
+    CHECK_TRADE("check_trade", "trade_state", "trade_state_begin_time", "trade_state_end_time", "trade_state_value"),
+
+    /**
+     * 门锁检查
+     */
+    CHECK_LOCKER("check_locker", "locker_state", "locker_state_begin_time", "locker_state_end_time", "locker_state_value"),
+
+    /**
+     * 温度检查
+     */
+    CHECK_TEMPRATURE("check_temprature", "temprature_state", "temprature_state_begin_time", "temprature_state_end_time", "temprature_state_value"),
+
+    /**
+     * 模拟批量测试
+     */
+    CHECK_IMITATE_TEST("check_imitate_test", "imitate_test_state", "imitate_test_state_begin_time", "imitate_test_state_end_time", "imitate_test_state_value"),
+
+    /**
+     * 参数设置检查
+     */
+    CHECK_SETTING("check_setting", "setting_state", "setting_state_begin_time", "setting_state_end_time", "setting_state_value"),
+
+    ;
+
+    /**
+     * 质检类型
+     */
+    private String type;
+
+    /**
+     * 质检状态列名
+     */
+    private String state;
+
+    /**
+     * 质检状态开始时间列名
+     */
+    private String beginTime;
+
+    /**
+     * 质检状态结束时间列名
+     */
+    private String endTime;
+
+    /**
+     * 质检结果参数值列名
+     */
+    private String value;
+
+    public static QualityEnum getQualityEnum(String type) {
+        QualityEnum[] values = QualityEnum.values();
+        for (QualityEnum qualityEnum : values) {
+            if (qualityEnum.type.equals(type)) {
+                return qualityEnum;
+            }
+        }
+        return null;
+    }
+}

+ 16 - 0
device-api/src/main/java/com/xy/dto/DeviceQualityDto.java

@@ -132,6 +132,22 @@ public class DeviceQualityDto {
         private DeviceQualityValueDto.Vo deviceQualityValue;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class QualityResultBack {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty("设备id")
+        private Long deviceId;
+
+        @NotBlank(message = "type不能为空")
+        @ApiModelProperty("质检类型")
+        private String type;
+
+        @ApiModelProperty("通知数据")
+        private JSONObject data;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Vo {

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

@@ -1,5 +1,6 @@
 package com.xy.dto;
 
+import cn.hutool.json.JSONObject;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -24,6 +25,8 @@ public class DeviceQualityValueDto {
         @ApiModelProperty("模板编码")
         private String code;
 
+        @ApiModelProperty("值")
+        private JSONObject value;
     }
 
     @Data

+ 1 - 1
device-api/src/main/java/com/xy/service/MqttService.java

@@ -27,7 +27,7 @@ public interface MqttService {
     R<Map<String, Boolean>> senCommand(@RequestBody List<CommandMqtt> commandMqtts);
 
     /**
-     * 指令结果回执
+     * 指令结果通知
      *
      * @param backMqttDto
      * @return