package com.ld.igds.m.manager;
|
|
|
import com.ld.igds.oa.dto.AssetData;
|
import com.ld.igds.oa.dto.GpsLocationData;
|
import com.ld.igds.oa.service.CoreGpsService;
|
import com.ld.igds.util.ContextUtil;
|
import com.ld.igds.util.GpsToBdUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 资产定位
|
*/
|
@Slf4j
|
@Component
|
public class OAManager {
|
@Autowired
|
private CoreGpsService coreGpsService;
|
|
/**
|
* 获取
|
*
|
* @param companyId
|
* @return
|
*/
|
public List<AssetData> getGpsLocation(String companyId) {
|
if (StringUtils.isEmpty(companyId)) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
//查询固定资产设备(绑定有GPS且状态正常)
|
List<AssetData> assetList = coreGpsService.getAsset(companyId);
|
|
if (assetList == null) {
|
log.debug("没有查到相关固定资产设备信息");
|
return null;
|
}
|
|
//获取缓存中设备位置信息
|
Map<String, GpsLocationData> mapLocations = coreGpsService.cacheListLocationData(companyId);
|
|
if(mapLocations==null){
|
log.debug("没有查到设备位置信息");
|
return null;
|
}
|
|
//遍历资产设备,设置经纬度位置信息
|
GpsLocationData gpsLocationData = null;
|
for (AssetData assetData : assetList) {
|
gpsLocationData = mapLocations.get(assetData.getGpsPhone());
|
if(gpsLocationData == null) {
|
continue;
|
}
|
if(StringUtils.isNotEmpty(gpsLocationData.getLongitude())){
|
assetData.setLongitude(gpsLocationData.getLongitude());
|
}
|
if(StringUtils.isNotEmpty(gpsLocationData.getLatitude())){
|
assetData.setLatitude(gpsLocationData.getLatitude());
|
}
|
assetData.setUpdateTime(gpsLocationData.getUpdateTime());
|
}
|
|
//转GPS坐标到百度
|
for (AssetData assetData : assetList) {
|
String[] baiDu = GpsToBdUtil.getBaiDu(assetData.getLatitude(), assetData.getLongitude());
|
assetData.setLatitude(baiDu[0]);
|
assetData.setLongitude(baiDu[1]);
|
}
|
|
return assetList;
|
}
|
}
|