GpsArrivalDataBuffer.java 1.47 KB
package com.bsth.vehicle.gpsdata.buffer;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import com.bsth.vehicle.common.CommonMapped;
import com.bsth.vehicle.gpsdata.entity.ArrivalInfo;
import com.google.common.collect.LinkedListMultimap;

/**
 * 
 * @ClassName: GpsArrivalDataBuffer 
 * @Description: TODO(GPS到离站数据缓存) 
 * @author PanZhao
 * @date 2016年6月27日 下午1:08:35 
 *
 */
public class GpsArrivalDataBuffer {

	/**
	 * 车辆  时间戳排序的进出站链表
	 */
	public static LinkedListMultimap<String, ArrivalInfo> allMap;
	
	/**
	 * 时间戳标记,从数据库增量查询时起始时间
	 */
	public static Long markTime;
	
	
	static{
		allMap = LinkedListMultimap.create();
	}
	
	/**
	 * 
	 * @Title: putAll 
	 * @Description: TODO(将增量数据添加到缓存) 
	 * @param @param list    设定文件 
	 * @return void    返回类型 
	 * @throws
	 */
	public static void putAll(List<ArrivalInfo> list){
		//按时间戳排序
		Collections.sort(list, new Comparator<ArrivalInfo>() {
			@Override
			public int compare(ArrivalInfo o1, ArrivalInfo o2) {
				return (int) (o1.getTs() - o2.getTs());
			}
		});
		
		int len = list.size();
		ArrivalInfo arrival;
		String nbbm;
		for(int i = 0; i < len; i ++){
			arrival = list.get(i);
			nbbm = CommonMapped.vehicDeviceBiMap.get(arrival.getDeviceId());
			
			if(null != nbbm)
				allMap.put(nbbm, arrival);
		}
	}
}