package com.ld.igds.protocol.zldz.command; import com.ld.igds.io.RemoteCommonService; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.request.*; import com.ld.igds.io.response.BaseResponse; import com.ld.igds.io.response.GrainResponse; import com.ld.igds.protocol.zldz.command.builder.*; import com.ld.igds.protocol.zldz.command.message.Message; import com.ld.igds.protocol.zldz.task.CommandReSendService; import com.ld.igds.protocol.zldz.task.CommandTask; import com.ld.igds.protocol.zldz.util.ServerUtils; import com.ld.io.api.InvokeResult; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 当前协议实现,粮情模块命令接口 * * @author jiazx */ @Slf4j @Component(RemoteCommonImpl.BEAN_ID) public class RemoteCommonImpl extends BaseRemoteImpl implements RemoteCommonService { public static final String BEAN_ID = "zldz.remoteCommonService"; @Autowired private CommandReSendService commandReSendService; @Override public BaseResponse heartBeat(BaseRequest request) { return new GrainResponse(OrderRespEnum.ORDER_ERROR.getCode(), "协议不支持"); } @Override public BaseResponse pullDevice(BaseRequest request) { return new GrainResponse(OrderRespEnum.ORDER_ERROR.getCode(), "协议不支持"); } @Override public BaseResponse pullDepot(BaseRequest request) { return new GrainResponse(OrderRespEnum.ORDER_ERROR.getCode(), "协议不支持"); } @Override public BaseResponse pullAccess(AccessRequest request) { return new GrainResponse(OrderRespEnum.ORDER_ERROR.getCode(), "协议不支持"); } @Override public BaseResponse pullDepotStatus(DepotStatusRequest request) { return new GrainResponse(OrderRespEnum.ORDER_ERROR.getCode(), "协议不支持"); } @Override public BaseResponse checkTh(CheckThRequest request) { try { Message message = CommandBuilder1128.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "-温湿度命令信息=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "发送温湿度命令成功"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "发送温湿度命令失败:" + result.getMessage()); } } catch (Exception e) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "温湿度命令失败:" + e.getMessage()); } } @Override public BaseResponse writeConf(GrainSerConfRequest request) { try { // Step1 生成命令 Message message = CommandBuilder1116_1.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "-写入配置命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { CommandTask commandData = new CommandTask(); commandData.setCompanyId(request.getCompanyId()); commandData.setIp(request.getIp()); commandData.setPort(request.getPort()); commandData.setByteCommand(message.getByteMsg()); commandData.setCommand(message.getStrMsg()); commandData.setResultType(ServerUtils.MSG_TYPE_8816); commandReSendService.reSendTask(commandData); return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "写入配置命令发送成功"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "写入配置命令发送异常:" + result.getMessage()); } } catch (Exception e) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "写入配置命令发送异常:" + e.getMessage()); } } @Override public BaseResponse readConf(GrainSerConfRequest request) { try { // Step1 生成命令 Message message = CommandBuilder1116_0.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "-读取配置命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { CommandTask commandData = new CommandTask(); commandData.setCompanyId(request.getCompanyId()); commandData.setIp(request.getIp()); commandData.setPort(request.getPort()); commandData.setByteCommand(message.getByteMsg()); commandData.setCommand(message.getStrMsg()); commandData.setResultType(ServerUtils.MSG_TYPE_8816); commandReSendService.reSendTask(commandData); return new GrainResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "读取配置命令发送成功"); } else { return new GrainResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "读取配置命令发送异常:" + result.getMessage()); } } catch (Exception e) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "读取配置命令发送异常:" + e.getMessage()); } } @Override public BaseResponse initCable(BaseRequest request) { try { // Step1 生成粮情信息 Message message = CommandBuilder1122.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "-初始化电缆命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { CommandTask commandData = new CommandTask(); commandData.setCompanyId(request.getCompanyId()); commandData.setIp(request.getIp()); commandData.setPort(request.getPort()); commandData.setByteCommand(message.getByteMsg()); commandData.setCommand(message.getStrMsg()); commandData.setResultType(ServerUtils.MSG_TYPE_8822); commandReSendService.reSendTask(commandData); return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "初始化电缆发送成功"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "初始化电缆命令发送失败:" + result.getMessage()); } } catch (Exception e) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "初始化电缆命令执行失败:" + e.getMessage()); } } @Override public BaseResponse updateGrainSerCable(GrainSerConfRequest request) { if (null == request.getEditTag()) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "当前操作没有制定修改标识,无法执行!"); } //根据修改标识处理不同的逻辑 -- 2点号修改 3列号修改,4根号修改,5同步电缆,6根号替换 if (2 == request.getEditTag()) { return updateGrainSerCable2(request); } if (3 == request.getEditTag()) { return updateGrainSerCable3(request); } if (4 == request.getEditTag()) { return updateGrainSerCable4(request); } if (5 == request.getEditTag()) { return updateGrainSerCable5(request); } if (6 == request.getEditTag()) { return updateGrainSerCable6(request); } return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "没有匹配到当前需要操作的标识,标识=" + request.getEditTag()); } /** * 根号替换 * * @param request * @return */ private BaseResponse updateGrainSerCable6(GrainSerConfRequest request) { if (null == request.getValue1() || null == request.getValue2()) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "替换操作中,没有获取到新旧参数配置!"); } // Step1 Message message = CommandBuilder1126.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "电缆-根号替换命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "电缆-根号替换发送成功!"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "电缆-根号替换发送失败:" + result.getMessage()); } } /** * @param request * @return */ private BaseResponse updateGrainSerCable5(GrainSerConfRequest request) { if (null == request.getValue1() || null == request.getValue2()) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "同步电缆失败,同步电缆参数不完整"); } // Step1 Message message = CommandBuilder1126.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "同步电缆-命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "电缆-根号替换发送成功!"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "电缆-根号替换发送失败:" + result.getMessage()); } } private BaseResponse updateGrainSerCable4(GrainSerConfRequest request) { if (null == request.getValue1() || null == request.getValue2()) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "替换操作中,没有获取到新旧参数配置!"); } //输入值需要-1 request.setValue1(request.getValue1() - 1); request.setValue2(request.getValue2() - 1); // Step1 Message message = CommandBuilder1126.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "-电缆-根号修改命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "电缆-根号修改命令发送成功!"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "电缆-根号修改命令发送失败:" + result.getMessage()); } } private BaseResponse updateGrainSerCable3(GrainSerConfRequest request) { if (null == request.getEditCol()) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "替换操作中,没有获取列参数!"); } // Step1 Message message = CommandBuilder1126.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "电缆-列号修改命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "电缆-列号修改命令发送成功!"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "电缆-列号修改命令发送失败:" + result.getMessage()); } } private BaseResponse updateGrainSerCable2(GrainSerConfRequest request) { if (null == request.getValue1() || null == request.getValue2()) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "替换操作中,没有获取到新旧参数配置!"); } //输入值需要-1 request.setValue1(request.getValue1() - 1); request.setValue2(request.getValue2() == null ? 0 : request.getValue2()); // Step1 生成命令 Message message = CommandBuilder1126.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "电缆-点号修改命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "电缆-点号修改命令发送成功!"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "电缆-点号修改命令发送失败:" + result.getMessage()); } } /** * 获取通道电缆 * * @param request * @return */ @Override public BaseResponse checkGrainSerCable(GrainSerConfRequest request) { // Step1 生成粮情信息 Message message = CommandBuilder1125.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "获取通道电缆命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "获取通道电缆命令发送成功!"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "获取通道电缆命令发送失败:" + result.getMessage()); } } @Override public BaseResponse destroyCon(BaseRequest request) { InvokeResult result = destory(request.getIp(), request.getPort()); if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "断开连接执行成功"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "断开连接失败:" + result.getMessage()); } } @Override public BaseResponse updateSysDepotConf(BaseRequest request) { return new BaseResponse(OrderRespEnum.NO_FUNCTION); } @Override public BaseResponse sumGrainSerCable(GrainSerConfRequest request) { // Step1 Message message = CommandBuilder1123.getInstance().buildMessage(request); log.info("平台------>>>分机:" + request.getSerName() + "电缆汇总命令=" + message.toString()); // 发送命令 InvokeResult result = send(request.getIp(), request.getPort(), message.getByteMsg()); // 封装返回信息 if (InvokeResult.SUCCESS == result) { return new BaseResponse(OrderRespEnum.ORDER_SUCCESS.getCode(), "分机=" + request.getSerName() + "电缆汇总命令发送成功!"); } else { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "分机=" + request.getSerName() + "电缆汇总命令发送失败:" + result.getMessage()); } } }