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; import java.util.Date; @Component public class HeartProcessor implements ResponseProcessor { @Resource private TEquipmentService equipmentService; @Resource private TEquipmentDescService equipmentDescService; @Resource private TAlarmRecordService alarmRecordService; @Override public void process(MessageLog messageLog) { Integer statusCode = messageLog.getStatusCode(); if (statusCode == 200) { Integer direction = messageLog.getDirection(); String clientId = messageLog.getClientId(); String responseContent = messageLog.getResponseContent(); // 转换为对象 HeartParam heartParam = JSON.parseObject(responseContent, HeartParam.class); // 查询设备 LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId, clientId); TEquipment equipment = equipmentService.getOne(query); // 更新数据 if (equipment != null) { equipment.setModifyDate(new Date()); 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 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()); equipment.setNetWorkingMode(heartParam.getNetWorkingMode()); equipment.setVolume(heartParam.getVolume()); equipmentService.updateById(equipment); // 更新数据 TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId()); if (equipmentDesc != null) { 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); } } } } @Override public String getSupportedOperationType() { return OperationType.HEART.getCode(); } }