package com.ld.igds.n2.manager; import com.ld.igds.constant.Constant; import com.ld.igds.io.N2RemoteManager; import com.ld.igds.io.RemoteN2MacService; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.request.N2MacRequest; import com.ld.igds.io.response.BaseResponse; import com.ld.igds.log.service.LogOperationService; import com.ld.igds.models.N2MacConf; import com.ld.igds.n2.service.HMacConfService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; /** * 制氮机设备操作管理 * * @author: andy.jia * @description: * @version: * @data:2020年4月26日 */ @Component public class N2MacManager { @Resource private N2RemoteManager n2RemoteManager; @Resource private LogOperationService logService; @Resource private HMacConfService macConfService; public BaseResponse runMac(N2MacRequest request) { N2MacConf conf = macConfService.getDataBySn(request.getSn()); if (null == conf) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "没有获取到制氮机信息,无法执行"); } if (Constant.YN_N.equals(conf.getConStatus())) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "制氮机通讯模块不在线,无法执行远程操作,请联系管理员"); } request.setCompanyId(conf.getCompanyId()); request.setDeptId(conf.getDeptId()); request.setIp(conf.getIp()); request.setPort(conf.getPort()); request.setSn(conf.getSn()); request.setProtocol(conf.getProtocol()); request.setRunStatus(Constant.YN_Y); RemoteN2MacService remoteN2Service = n2RemoteManager.getRemoteN2MacService(request.getProtocol()); if (null == remoteN2Service) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "制氮机所属通讯分机协议系统未实现,请联系管理员"); } request.setRunStatus(Constant.YN_Y); logService.addLogByN2Mac(request.getCompanyId(), "开启制氮机-" + request.getName()); return remoteN2Service.remoteRun(request); } public BaseResponse stopMac(N2MacRequest request) { N2MacConf conf = macConfService.getDataBySn(request.getSn()); if (null == conf) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "没有获取到制氮机信息,无法执行"); } if (Constant.YN_N.equals(conf.getConStatus())) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "制氮机通讯模块不在线,无法执行远程操作,请联系管理员"); } request.setCompanyId(conf.getCompanyId()); request.setDeptId(conf.getDeptId()); request.setIp(conf.getIp()); request.setPort(conf.getPort()); request.setSn(conf.getSn()); request.setProtocol(conf.getProtocol()); request.setRunStatus(Constant.YN_N); RemoteN2MacService remoteN2Service = n2RemoteManager.getRemoteN2MacService(request.getProtocol()); if (null == remoteN2Service) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "制氮机所属通讯分机协议系统未实现,请联系管理员"); } logService.addLogByN2Mac(request.getCompanyId(), "关闭制氮机-" + request.getName()); return remoteN2Service.remoteStop(request); } public BaseResponse queryStatusMac(N2MacRequest request) { N2MacConf conf = macConfService.getDataBySn(request.getSn()); if (null == conf) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "没有获取到制氮机信息,无法执行"); } if (Constant.YN_N.equals(conf.getConStatus())) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "制氮机通讯模块不在线,无法执行远程操作,请联系管理员"); } request.setCompanyId(conf.getCompanyId()); request.setDeptId(conf.getDeptId()); request.setIp(conf.getIp()); request.setPort(conf.getPort()); request.setSn(conf.getSn()); request.setProtocol(conf.getProtocol()); RemoteN2MacService remoteN2Service = n2RemoteManager.getRemoteN2MacService(request.getProtocol()); if (null == remoteN2Service) { return new BaseResponse( OrderRespEnum.ORDER_ERROR.getCode(), "制氮机所属通讯分机协议系统未实现,请联系管理员"); } logService.addLogByN2Mac(request.getCompanyId(), "状态查询-" + request.getName()); return remoteN2Service.remoteStatus(request); } public List listN2Mac(String companyId, String deptId) { return macConfService.getConfData(companyId, deptId); } public N2MacConf getDataBySn(String sn) { return macConfService.getDataBySn(sn); } }