From dc35357c44c3acbef871b312dbf9506157b92c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91=E7=9D=80=E9=9D=A2=E5=AF=B9=E6=98=8E?= =?UTF-8?q?=E5=A4=A9?= <752558143@qq.com> Date: Wed, 17 Jul 2024 17:50:39 +0800 Subject: [PATCH] =?UTF-8?q?mqtt=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/mqtt/PcnMqttCallback.java | 14 +++++++------- .../serviceimpl/base/MesEquipmentLogService.java | 22 ++++++++++++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/mqtt/PcnMqttCallback.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/mqtt/PcnMqttCallback.java index e8144a8..1edcaaa 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/mqtt/PcnMqttCallback.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/mqtt/PcnMqttCallback.java @@ -95,19 +95,19 @@ public class PcnMqttCallback implements MqttCallbackExtended { public void messageArrived(String topic, MqttMessage mqttMessage) { log.info("== pcnMqttCallback ==> messageArrived 接收消息主题: {},接收消息内容: {}", topic, new String(mqttMessage.getPayload())); try{ - String resStr = new String(mqttMessage.getPayload()); + String resStr = new String(mqttMessage.getPayload(), "UTF-8").trim(); /** * 根据订阅的主题分别处理业务。可以通过if-else或者策略模式来分别处理不同的主题消息。 */ //topic1主题 - if (topic.equals("ABC")) { - EquipLogMqttMsg equipLogMqttMsg = JSONObject.parseObject(resStr, EquipLogMqttMsg.class); - + List equipLogMqttMsgList = JSONObject.parseArray(resStr, EquipLogMqttMsg.class); + for (EquipLogMqttMsg equipLogMqttMsg : equipLogMqttMsgList) { equipmentLogService.updateValue(equipLogMqttMsg); - //业务处理 - //doSomething1(maps); - log.info("== pcnMqttCallback ==> messageArrived 接收消息主题: {},业务处理消息内容完成", topic); } + //业务处理 + //doSomething1(maps); + log.info("== pcnMqttCallback ==> messageArrived 接收消息主题: {},业务处理消息内容完成", topic); + } catch (Exception e) { e.printStackTrace(); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java index de0af0c..e00fce8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java @@ -1,9 +1,10 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEquipmentLogService; -import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog.MesEquipmentLogExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ActorMessage; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog.MesEquipmentLogExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.mqtt.EquipLogMqttMsg; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -31,6 +32,7 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -156,7 +158,7 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { @Override public void updateValue(EquipLogMqttMsg equipLogMqttMsg) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); - DdlPreparedPack.getStringEqualPack(equipLogMqttMsg.getTagAddress(), "tagAddress", ddlPackBean); + DdlPreparedPack.getStringEqualPack(equipLogMqttMsg.getKey(), "tagName", ddlPackBean); DdlPreparedPack.getNumEqualPack(Integer.valueOf(equipLogMqttMsg.getPTCode()), "equipId", ddlPackBean); MesEquipmentVariable mesEquipmentVariable = equipmentVariableRepository.getByProperty(ddlPackBean); @@ -164,15 +166,23 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { LOGGER.info("tagAddress 不存在【{}】", equipLogMqttMsg.getTagAddress()); } MesEquipmentLog equipmentLog = mesEquipmentLogExtService.queryMesEquipmentLog(mesEquipmentVariable.getOrganizeCode(), Integer.valueOf(equipLogMqttMsg.getPTCode()), mesEquipmentVariable.getId()); - ConvertBean.serviceModelUpdate(equipmentLog, "mqtt"); + /*ConvertBean.serviceModelUpdate(equipmentLog, "mqtt"); equipmentLog.setEquipVariableValue(equipLogMqttMsg.getValue()); equipmentLog.setEquipVariableStatus(MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getEquipVariableStatus()); - mesEquipmentLogRepository.update(equipmentLog); + mesEquipmentLogRepository.update(equipmentLog);*/ + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesEquipmentVariable.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipId(), MesPcnExtConstWords.EQUIP_ID, packBean); + DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipVariableId(), MesPcnExtConstWords.EQUIP_VARIABLE_ID, packBean); + mesEquipmentLogRepository.updateByProperties(new String[]{MesPcnExtConstWords.EQUIP_VARIABLE_STATUS,"equipVariableValue"}, new Object[]{MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue(),equipLogMqttMsg.getValue() }, packBean); + LOGGER.info("messageArrived -> value修改成功"); + MesEquipmentLogDetail mesEquipmentLogDetail = new MesEquipmentLogDetail(); BeanUtils.copyProperties(equipmentLog, mesEquipmentLogDetail); - mesEquipmentLogDetail.setId(null); - mesEquipmentLogDetailRepository.save(mesEquipmentLogDetail); + ConvertBean.serviceModelInitialize(mesEquipmentLogDetail, "mqtt"); + mesEquipmentLogDetailRepository.saveAll(Arrays.asList(mesEquipmentLogDetail)); + LOGGER.info("messageArrived -> detail插入成功"); } }