package com.ld.igds.n2.manager;
|
|
import com.ld.igds.common.CoreCommonService;
|
import com.ld.igds.common.CoreSerService;
|
import com.ld.igds.constant.BizType;
|
import com.ld.igds.constant.Constant;
|
import com.ld.igds.io.RemoteCommonService;
|
import com.ld.igds.io.RemoteManager;
|
import com.ld.igds.io.constant.OrderRespEnum;
|
import com.ld.igds.io.request.AccessRequest;
|
import com.ld.igds.io.request.BaseRequest;
|
import com.ld.igds.io.request.DepotStatusRequest;
|
import com.ld.igds.io.response.BaseResponse;
|
import com.ld.igds.models.DepotConf;
|
import com.ld.igds.models.DeviceSer;
|
import com.ld.igds.order.ExeOrderService;
|
import com.ld.igds.order.data.ExeRequest;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
public class BasicSystemManager {
|
|
@Autowired
|
private RemoteManager remoteManager;
|
@Autowired
|
private CoreSerService coreSerService;
|
@Autowired
|
private ExeOrderService exeOrderService;
|
@Autowired
|
private CoreCommonService coreCommonService;
|
|
/**
|
* 远程获取设备信息
|
*
|
* @param companyId
|
* @param serId
|
* @return
|
*/
|
public String pullDevice(String companyId, String serId) {
|
DeviceSer ser = coreSerService.getCacheSer(companyId, serId);
|
|
if (null == ser) {
|
return "执行失败,系统中没有获取到当前分机信息。";
|
}
|
if (Constant.YN_N.equals(ser.getStatus())) {
|
return "执行失败,当前分机已经掉线,不支持当前操作。";
|
}
|
|
BaseRequest request = new BaseRequest();
|
request.setIp(ser.getIp());
|
request.setSerName(ser.getName());
|
request.setPort(ser.getPort());
|
request.setCompanyId(ser.getCompanyId());
|
request.setBizType(BizType.SYS.getCode());
|
request.setSerId(ser.getId());
|
|
|
RemoteCommonService remoteCommonService = remoteManager.getRemoteCommonService(ser.getProtocol());
|
|
if (null == remoteCommonService) {
|
return "执行失败,系统没有没有匹配到当前分机的实现协议,无法执行。";
|
}
|
|
ExeRequest exeRequest = new ExeRequest(request);
|
exeRequest.setAddLogTag(true);
|
exeRequest.setRepeatTag(true);
|
exeRequest.setMsg("执行远程同步设备信息");
|
|
BaseResponse response = remoteCommonService.pullDevice(request);
|
if (OrderRespEnum.ORDER_SUCCESS.getCode().equals(response.getCode())) {
|
exeOrderService.checkExecute(exeRequest);
|
return null;
|
}
|
return "执行失败,原因:" + response.getMsg();
|
}
|
|
/**
|
* 平台获取控制柜仓房信息
|
*
|
* @param companyId
|
* @param serId
|
* @return
|
*/
|
public String pullDepot(String companyId, String serId) {
|
|
DeviceSer ser = coreSerService.getCacheSer(companyId, serId);
|
|
if (null == ser) {
|
return "执行失败,系统中没有获取到当前分机信息。";
|
}
|
if (Constant.YN_N.equals(ser.getStatus())) {
|
return "执行失败,当前分机已经掉线,不支持当前操作。";
|
}
|
|
BaseRequest request = new BaseRequest();
|
request.setIp(ser.getIp());
|
request.setSerName(ser.getName());
|
request.setPort(ser.getPort());
|
request.setCompanyId(ser.getCompanyId());
|
request.setBizType(BizType.SYS.getCode());
|
request.setSerId(ser.getId());
|
|
|
RemoteCommonService remoteCommonService = remoteManager.getRemoteCommonService(ser.getProtocol());
|
|
if (null == remoteCommonService) {
|
return "执行失败,系统没有没有匹配到当前分机的实现协议,无法执行。";
|
}
|
|
ExeRequest exeRequest = new ExeRequest(request);
|
exeRequest.setAddLogTag(true);
|
exeRequest.setRepeatTag(true);
|
exeRequest.setMsg("执行远程同步仓库信息");
|
|
BaseResponse response = remoteCommonService.pullDepot(request);
|
if (OrderRespEnum.ORDER_SUCCESS.getCode().equals(response.getCode())) {
|
exeOrderService.checkExecute(exeRequest);
|
return null;
|
}
|
return "执行失败,原因:" + response.getMsg();
|
}
|
|
|
public String pullAccess(String companyId, String serId, String accessCode) {
|
DeviceSer ser = coreSerService.getCacheSer(companyId, serId);
|
|
if (null == ser) {
|
return "执行失败,系统中没有获取到当前分机信息。";
|
}
|
if (Constant.YN_N.equals(ser.getStatus())) {
|
return "执行失败,当前分机已经掉线,不支持当前操作。";
|
}
|
|
AccessRequest request = new AccessRequest();
|
request.setIp(ser.getIp());
|
request.setSerName(ser.getName());
|
request.setPort(ser.getPort());
|
request.setCompanyId(ser.getCompanyId());
|
request.setBizType(BizType.SYS.getCode());
|
request.setSerId(ser.getId());
|
request.setAccessCode(accessCode);
|
|
|
RemoteCommonService remoteCommonService = remoteManager.getRemoteCommonService(ser.getProtocol());
|
|
if (null == remoteCommonService) {
|
return "执行失败,系统没有没有匹配到当前分机的实现协议,无法执行。";
|
}
|
|
ExeRequest exeRequest = new ExeRequest(request);
|
exeRequest.setAddLogTag(true);
|
exeRequest.setRepeatTag(true);
|
exeRequest.setMsg("执行远程控制柜授权操作");
|
|
BaseResponse response = remoteCommonService.pullAccess(request);
|
if (OrderRespEnum.ORDER_SUCCESS.getCode().equals(response.getCode())) {
|
exeOrderService.checkExecute(exeRequest);
|
return null;
|
}
|
return "执行失败,原因:" + response.getMsg();
|
}
|
|
/**
|
* 更新 仓库状态,同时推送仓库状态
|
* @return
|
*/
|
public String updateDepotStatus(String companyId,String depotId,String status) {
|
|
coreCommonService.updateDepotStatus(companyId,depotId,status);
|
|
//执行推送
|
DepotConf depotConf = coreCommonService.getCacheDepotConf(companyId,depotId);
|
if(null == depotConf) return "状态更新成功,未同步远程控制柜!";
|
|
DeviceSer ser = coreSerService.getCacheSer(depotConf.getCompanyId(), depotConf.getGrainSer());
|
|
if (null == ser) {
|
return "状态更新成功,未同步远程控制柜!";
|
}
|
if (Constant.YN_N.equals(ser.getStatus())) {
|
return "状态更新成功,风机不在线,未同步远程控制柜!";
|
}
|
|
DepotStatusRequest request = new DepotStatusRequest();
|
request.setIp(ser.getIp());
|
request.setSerName(ser.getName());
|
request.setPort(ser.getPort());
|
request.setCompanyId(ser.getCompanyId());
|
request.setBizType(BizType.SYS.getCode());
|
request.setSerId(ser.getId());
|
request.setStatus(status);
|
request.setDepotId(depotConf.getDepotId());
|
request.setDepotName(depotConf.getDepotName());
|
|
|
RemoteCommonService remoteCommonService = remoteManager.getRemoteCommonService(ser.getProtocol());
|
|
if (null == remoteCommonService) {
|
return "状态更新成功,未同步远程控制柜!";
|
}
|
|
ExeRequest exeRequest = new ExeRequest(request);
|
exeRequest.setAddLogTag(true);
|
exeRequest.setRepeatTag(true);
|
exeRequest.setMsg("修改仓库状态,系统自动更新远程仓库状态");
|
|
BaseResponse response = remoteCommonService.pullDepotStatus(request);
|
|
if (OrderRespEnum.ORDER_SUCCESS.getCode().equals(response.getCode())) {
|
exeOrderService.checkExecute(exeRequest);
|
return null;
|
}
|
|
return "状态更新成功,远程推送控制柜失败:"+response.getMsg();
|
}
|
}
|