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 getGpsLocation(String companyId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } //查询固定资产设备(绑定有GPS且状态正常) List assetList = coreGpsService.getAsset(companyId); if (assetList == null) { log.debug("没有查到相关固定资产设备信息"); return null; } //获取缓存中设备位置信息 Map 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; } }