Browse Source

fix:"优化MQ心跳上传消息处理"

soobin 2 months ago
parent
commit
05977b1f13

+ 107 - 18
src/main/java/com/szwl/handle/response/HeartProcessor.java

@@ -2,14 +2,18 @@ package com.szwl.handle.response;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.szwl.constant.OperationType;
 import com.szwl.model.entity.MessageLog;
+import com.szwl.model.entity.TAlarmRecord;
 import com.szwl.model.entity.TEquipment;
 import com.szwl.model.entity.TEquipmentDesc;
 import com.szwl.model.jsonParm.HeartParam;
+import com.szwl.service.TAlarmRecordService;
 import com.szwl.service.TEquipmentDescService;
 import com.szwl.service.TEquipmentService;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -24,6 +28,9 @@ public class HeartProcessor implements ResponseProcessor {
     @Resource
     private TEquipmentDescService equipmentDescService;
 
+    @Resource
+    private TAlarmRecordService alarmRecordService;
+
     @Override
     public void process(MessageLog messageLog) {
         Integer statusCode = messageLog.getStatusCode();
@@ -42,14 +49,52 @@ public class HeartProcessor implements ResponseProcessor {
             // 更新数据
             if (equipment != null) {
                 equipment.setModifyDate(new Date());
-                equipment.setCabinetHd(heartParam.getCabinetHd());
-                equipment.setCabinetTm(heartParam.getCabinetTm());
-                equipment.setEqeStatus(heartParam.getEqeStatus());
-                equipment.setFurnaceSp(heartParam.getFurnaceSp());
-                equipment.setFurnaceTm(heartParam.getFurnaceTm());
-                equipment.setGtClientId(heartParam.getGtClientId());
-                equipment.setIsSleep(heartParam.isSleep());
+                if (StringUtils.isNotEmpty(heartParam.getCabinetTm())) {
+                    equipment.setCabinetTm(heartParam.getCabinetTm());
+                }
+                if (StringUtils.isNotEmpty(heartParam.getCabinetHd())) {
+                    equipment.setCabinetHd(heartParam.getCabinetHd());
+                }
+                if (StringUtils.isNotEmpty(heartParam.getFurnaceSp())) {
+                    equipment.setFurnaceSp(heartParam.getFurnaceSp());
+                }
+                if (StringUtils.isNotEmpty(heartParam.getFurnaceTm())) {
+                    equipment.setFurnaceTm(heartParam.getFurnaceTm());
+                }
                 equipment.setLastUpdateTime(heartParam.getLastUpdateTime());
+                if (heartParam.getEqeStatus() != null) {
+                    equipment.setEqeStatus(heartParam.getEqeStatus());
+                }
+                equipment.setIsSleep(heartParam.isSleep());
+                if (StringUtils.isNotEmpty(heartParam.getFurnaceTm())) {
+                    int fur = Integer.parseInt(heartParam.getFurnaceTm());
+                    if (equipment.getEqeStatus() == 0 && fur > 150) {
+                        equipment.setEqeStatus(1);
+                    }
+                    if (equipment.getEqeStatus() == null) {
+                        equipment.setEqeStatus(1);
+                    }
+                }
+                if (StringUtils.isNotEmpty(heartParam.getVolume())) {
+                    equipment.setVolume(heartParam.getVolume());
+                }
+                // 是否报警
+                if (heartParam.getIsAlarm() != null) {
+                    if (heartParam.getIsAlarm() == 1) {
+                        equipment.setIsAlarm(true);
+                    } else if (heartParam.getIsAlarm() == 0) {
+                        // 更改报警状态,并消除以往的报警记录
+                        LambdaUpdateWrapper<TAlarmRecord> wrapper = Wrappers.lambdaUpdate();
+                        wrapper.eq(TAlarmRecord::getClientId, clientId);
+                        wrapper.eq(TAlarmRecord::getIsEliminate, 0);
+                        wrapper.le(TAlarmRecord::getCreateDate, new Date());
+                        wrapper.set(TAlarmRecord::getIsEliminate, 1);
+                        alarmRecordService.update(wrapper);
+                        equipment.setIsAlarm(false);
+                    }
+                }
+
+                equipment.setGtClientId(heartParam.getGtClientId());
                 equipment.setLatitude(heartParam.getLatitude());
                 equipment.setLongitude(heartParam.getLongitude());
                 equipment.setManagerId(heartParam.getManagerId());
@@ -59,17 +104,61 @@ public class HeartProcessor implements ResponseProcessor {
                 // 更新数据
                 TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
                 if (equipmentDesc != null) {
-                    equipmentDesc.setBlueSugar(heartParam.getBlueSugar());
-                    equipmentDesc.setCandyGeneratorTm(heartParam.getCandyGeneratorTm());
-                    equipmentDesc.setNumberOne(heartParam.getNumberOne());
-                    equipmentDesc.setOutsideHd(heartParam.getOutsideHd());
-                    equipmentDesc.setOutsideTm(heartParam.getOutsideTm());
-                    equipmentDesc.setRedSugar(heartParam.getRedSugar());
-                    equipmentDesc.setStick(heartParam.getStick());
-                    equipmentDesc.setWater(heartParam.getWater());
-                    equipmentDesc.setWasteWater(heartParam.getWasteWater());
-                    equipmentDesc.setWhiteSugar(heartParam.getWhiteSugar());
-                    equipmentDesc.setYellowSugar(heartParam.getYellowSugar());
+                    if (StringUtils.isNotEmpty(heartParam.getBlueSugar())) {
+                        equipmentDesc.setBlueSugar(heartParam.getBlueSugar());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getRedSugar())) {
+                        equipmentDesc.setRedSugar(heartParam.getRedSugar());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getYellowSugar())) {
+                        equipmentDesc.setYellowSugar(heartParam.getYellowSugar());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getWhiteSugar())) {
+                        equipmentDesc.setWhiteSugar(heartParam.getWhiteSugar());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getWater())) {
+                        equipmentDesc.setWater(heartParam.getWater());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getWasteWater())) {
+                        equipmentDesc.setWasteWater(heartParam.getWasteWater());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getStick())) {
+                        equipmentDesc.setStick(heartParam.getStick());
+                    }
+                    // 如果是爆米花机
+                    String machineType = equipment.getMachineType();
+                    if (StringUtils.isNotEmpty(machineType) && "1".equals(machineType)) {
+                        // 爆米花机搅拌温度
+                        if (StringUtils.isNotEmpty(heartParam.getCabinetTm())) {
+                            equipmentDesc.setStirTm(heartParam.getCabinetTm());
+                        }
+                        // 爆米花机玉米发生器温度
+                        if (StringUtils.isNotEmpty(heartParam.getCabinetHd())) {
+                            equipmentDesc.setCornGeneratorTm(heartParam.getCabinetHd());
+                        }
+                        // 爆米花机杯子剩余量
+                        if (StringUtils.isNotEmpty(heartParam.getFurnaceTm())) {
+                            equipmentDesc.setCupQuantity(Long.parseLong(heartParam.getFurnaceTm()));
+                        }
+                    }
+                    // 如果是雪糕机
+                    if (StringUtils.isNotEmpty(machineType) && "2".equals(machineType)) {
+                        if (heartParam.getWorkingMode() != null) {
+                            equipmentDesc.setWorkingMode(heartParam.getWorkingMode());
+                        }
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getNumberOne())) {
+                        equipmentDesc.setNumberOne(heartParam.getNumberOne());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getCandyGeneratorTm())) {
+                        equipmentDesc.setCandyGeneratorTm(heartParam.getCandyGeneratorTm());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getOutsideHd())) {
+                        equipmentDesc.setOutsideHd(heartParam.getOutsideHd());
+                    }
+                    if (StringUtils.isNotEmpty(heartParam.getOutsideTm())) {
+                        equipmentDesc.setOutsideTm(heartParam.getOutsideTm());
+                    }
                     equipmentDescService.updateById(equipmentDesc);
                 }
             }

+ 7 - 0
src/main/java/com/szwl/model/jsonParm/HeartParam.java

@@ -2,6 +2,7 @@ package com.szwl.model.jsonParm;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
@@ -39,6 +40,9 @@ public class HeartParam {
     @JsonProperty("is_sleep")
     private boolean isSleep;
 
+    @ApiModelProperty("isAlarm")
+    private Integer isAlarm;
+
     @JsonProperty("lastUpdateTime")
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date lastUpdateTime;
@@ -84,4 +88,7 @@ public class HeartParam {
 
     @JsonProperty("yellowSugar")
     private String yellowSugar;
+
+    @JsonProperty("workingMode")
+    private Integer workingMode;
 }