|
@@ -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();
|
|
|
+ }
|
|
|
+
|
|
|
}
|