package com.ld.igds.oa.view;
|
|
import com.ld.igds.io.MRemoteManager;
|
import com.ld.igds.io.RemoteGpsMacService;
|
import com.ld.igds.io.constant.OrderRespEnum;
|
import com.ld.igds.io.request.GpsMacRequest;
|
import com.ld.igds.io.response.ProtocolResponse;
|
import com.ld.igds.models.OAAsset;
|
import com.ld.igds.oa.dto.GpsData;
|
import com.ld.igds.oa.service.CoreGpsService;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
/**
|
*查询资产设备位置
|
*
|
* @author:
|
* @description:
|
* @version:
|
* @data:
|
*
|
*/
|
@Component
|
public class GpsConfManager {
|
|
@Autowired
|
private MRemoteManager remoteManager;
|
|
@Autowired
|
private CoreGpsService coreGpsService;
|
|
|
public String queryLocation(OAAsset data) {
|
if (StringUtils.isEmpty(data.getGpsPhone())) {
|
return "执行失败:该设备尚未绑定GPS定位设备,无法查询位置信息";
|
}
|
|
GpsData gps = coreGpsService.getGpsByPhone(data.getGpsPhone());
|
|
//根据绑定的GPS设备查询协议
|
RemoteGpsMacService remoteGpsService = remoteManager.getRemoteGpsMacService(gps.getProtocol());
|
if (null == remoteGpsService) {
|
return "执行失败:系统没有检测到当前定位设备的协议实现!";
|
}
|
|
GpsMacRequest param = new GpsMacRequest();
|
param.setCompanyId(data.getCompanyId());
|
param.setIp(gps.getIp());
|
param.setPort(gps.getPort());
|
param.setPhone(gps.getPhone());
|
|
ProtocolResponse<GpsData> result = remoteGpsService.queryLocation(param);
|
|
if (!OrderRespEnum.ORDER_SUCCESS.getCode().equals(result.getCode())) {
|
return "执行失败:" + result.getMsg();
|
}
|
return "命令执行成功,请到资产定位中查看设备位置!";
|
}
|
}
|