From 7243e0b4bd9a267a633d2e481e17646509b6868d Mon Sep 17 00:00:00 2001 From: YYC <1833023622@qq.com> Date: 星期四, 07 九月 2023 19:36:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteEsServiceImpl.java | 65 +++++++++++++++++++++++++++++++- 1 files changed, 63 insertions(+), 2 deletions(-) diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteEsServiceImpl.java b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteEsServiceImpl.java index beee3fe..2c72b32 100644 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteEsServiceImpl.java +++ b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteEsServiceImpl.java @@ -1,10 +1,24 @@ package com.ld.igds.protocol.modbus.command; +import com.ld.igds.common.CoreSerService; +import com.ld.igds.constant.BizType; import com.ld.igds.io.RemoteEsService; +import com.ld.igds.io.constant.OrderRespEnum; +import com.ld.igds.io.constant.ProtocolEnum; import com.ld.igds.io.request.BaseRequest; import com.ld.igds.io.response.BaseResponse; +import com.ld.igds.io.response.GasResponse; +import com.ld.igds.modbus.service.HModbusService; +import com.ld.igds.models.DeviceModbus; +import com.ld.igds.models.DeviceSer; +import com.ld.igds.protocol.modbus.ModbusUtil2; +import com.ld.igds.protocol.modbus.ServerUtil; +import com.ld.igds.protocol.modbus.data.ModbusTcp; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import java.util.List; /** * 褰撳墠鍗忚閽堝鏍囧噯Modbus-TCP鍗忚 @@ -19,13 +33,60 @@ public static final String BEAN_ID = "modbus.remoteEsService"; + @Resource + private HModbusService modbusService; + @Resource + private AnalysisService analysisService; + @Resource + private CoreSerService coreSerService; + @Override public String getProtocol() { - return null; + return ProtocolEnum.TCP_MODBUS.getCode(); } @Override public BaseResponse checkEs(BaseRequest request) { - return null; + + String passCode = request.getDepotId(); + + try { + //鑾峰彇闇�瑕佹墽琛岀殑璁惧閰嶇疆 + List<DeviceModbus> list = modbusService.getDataByBizType(BizType.ES.getCode(), request.getSerId()); + + if(null == list || list.isEmpty()){ + return new GasResponse(OrderRespEnum.ORDER_ERROR.getCode(), "鏈幏鍙栧埌Modbus鑳借�楅厤缃俊鎭�"); + } + ModbusTcp modbusTcp; + DeviceSer deviceSer; + for (DeviceModbus deviceModbus : list) { + modbusTcp = new ModbusTcp(deviceModbus); + modbusTcp.setIp(request.getIp()); + modbusTcp.setPort(request.getPort()); + + //鑻odbus璁惧閰嶇疆鍒嗘満锛屽垯浣跨敤鎵�閰嶇疆鍒嗘満鐨処P銆佺鍙� + if(StringUtils.isNotEmpty(deviceModbus.getSerId())){ + deviceSer = coreSerService.getCacheSer(request.getCompanyId(), deviceModbus.getSerId()); + modbusTcp.setIp(deviceSer.getIp()); + modbusTcp.setPort(deviceSer.getPort()); + } + + modbusTcp.setBizCode(passCode); + modbusTcp.setSerId(request.getSerId()); + modbusTcp.setCompanyId(request.getCompanyId()); + + modbusTcp.setAddrExe(ServerUtil.getAddrExe(deviceModbus.getOpen())); + + log.debug("--------鍚姩鑳借�楁煡璇�---{}-{}", modbusTcp.getSerId(), modbusTcp.getBizCode()); + Number check = ModbusUtil2.readHoldingRegister(modbusTcp.getIp(), modbusTcp.getPort(), modbusTcp.getAddrExe()); + + //瑙f瀽鑳借�楁暟鎹� + analysisService.analysisEs(request, check); + } + } catch (Exception e) { + return new GasResponse(OrderRespEnum.ORDER_ERROR.getCode(), "鍚庡彴鎵ц寮傚父锛�" + e.getLocalizedMessage()); + } + + return new GasResponse(OrderRespEnum.ORDER_SUCCESS); } } -- Gitblit v1.9.3