package com.ld.igds.pressure; import com.ld.igds.common.CoreCommonService; import com.ld.igds.common.CoreDeviceService; import com.ld.igds.common.CoreSerService; import com.ld.igds.constant.BizType; import com.ld.igds.io.N2RemoteManager; import com.ld.igds.io.RemotePressureService; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.request.BaseRequest; import com.ld.igds.io.response.BaseResponse; import com.ld.igds.models.Device; import com.ld.igds.models.DeviceSer; import com.ld.igds.order.ExeOrderService; import com.ld.igds.order.data.ExeRequest; import com.ld.igds.util.ContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; /** * 气压管理 * * @author: andy.jia * @description: * @version: * @data:2020年2月17日 */ @Slf4j @Component public class PressureManager { @Autowired private N2RemoteManager remoteManager; @Autowired private ExeOrderService exeOrderService; @Autowired private CoreSerService coreSerService; /** * 根据基础请求参数执行气压检测 * * @param request */ public void checkByRequest(BaseRequest request) { if (null == request.getBizType()) { request.setBizType(BizType.N2.getCode()); } if (null == request.getProtocol()) { log.error("---------自动检测压力,没有获取到协议信息-----{}", request.toString()); return; } RemotePressureService remoteService = remoteManager.getRemotePressureService(request.getProtocol()); if (null == remoteService) { log.error("---------自动检测压力,当前协议下没有接口实现-----{}--{}", request.getSerName(), request.getProtocol()); return; } ExeRequest exeRequest = new ExeRequest(request); exeRequest.setRepeatTag(true); exeOrderService.checkExecute(exeRequest); BaseResponse response = remoteService.checkPressure(request); if (OrderRespEnum.ORDER_SUCCESS.getCode().equals(response.getCode())) { exeOrderService.addCache(exeRequest); } } public void checkAll() { String defaultCompanyId = ContextUtil.getDefaultCompanyId(); //获取分机信息 List listSer = coreSerService.getCacheSerList(defaultCompanyId); if (null == listSer) return; BaseRequest baseRequest; for (DeviceSer ser: listSer ) { baseRequest = new BaseRequest(); baseRequest.setCompanyId(ser.getCompanyId()); baseRequest.setSerName(ser.getName()); baseRequest.setSerId(ser.getId()); baseRequest.setIp(ser.getIp()); baseRequest.setPort(ser.getPort()); baseRequest.setProtocol(ser.getProtocol()); checkByRequest(baseRequest); } } }