FirstScheduleCheckThread.java 2.72 KB
//package com.bsth.data.directive;
//
//import java.util.List;
//import java.util.Set;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import com.bsth.data.match.Arrival2Schedule;
//import com.bsth.data.match.ExpectArrivalEnd;
//import com.bsth.data.schedule.DayOfSchedule;
//import com.bsth.entity.realcontrol.ScheduleRealInfo;
//import com.bsth.service.directive.DirectiveService;
//
///**
// *
// * @ClassName: FirstScheduleCheckThread
// * @Description: TODO(首班出场检测)
// * @author PanZhao
// * @date 2016年8月27日 上午1:25:21
// *
// */
//@Component
//public class FirstScheduleCheckThread extends Thread{
//
//	@Autowired
//	DayOfSchedule dayOfSchedule;
//
//	@Autowired
//	DirectiveService directiveService;
//
//	Logger logger = LoggerFactory.getLogger(this.getClass());
//
//	//提前半小时下发指令
//	private final static long THREE_MINUTES = 1000 * 60 * 30L;
//
//	@Override
//	public void run() {
//		try{
//			Set<String> cars = dayOfSchedule.allCar();
//
//			long t = System.currentTimeMillis();
//			List<ScheduleRealInfo> schList;
//			ScheduleRealInfo first;
//			for(String car : cars){
//
//				schList = dayOfSchedule.findByNbbm(car);
//
//				if(null == schList || schList.size() == 0)
//					continue;
//
//				first = schList.get(0);
//
//				if(null != first.getBcType()
//						&& first.getBcType().equals("out")){
//
//					//没有计划里程的出场班次,出场既是首发站,发送下一班次的营运指令
//					if(first.getJhlc() == null && first.getXlDir().equals(schList.get(1).getXlDir()))
//						first = schList.get(1);
//
//					//为首班补发指令
//					if(first.getDirectiveState() == -1
//							&& Math.abs(first.getDfsjT() - t) < THREE_MINUTES){
//
//						directiveService.send60Dispatch(first, dayOfSchedule.doneSum(first.getClZbh()), "定补@系统");
//						//期望完成出场班次时间
//						long endTime;
//
//						if(first.getZdsj() != null)
//							endTime=first.getZdsjT() - 60000;
//						else
//							endTime=schList.get(1).getDfsjT() - 60000;
//
//						ExpectArrivalEnd ead = new ExpectArrivalEnd()
//									,ead2 = new ExpectArrivalEnd();
//						ead.setNbbm(car);
//						ead.setEndStation(first.getQdzCode());
//						ead.setEndTime(endTime);
//
//						ead2.setNbbm(car);
//						ead2.setEndStation(first.getZdzCode());
//						ead2.setEndTime(endTime);
//
//						Arrival2Schedule.addExpect(car, ead);
//						Arrival2Schedule.addExpect(car, ead2);
//					}
//				}
//			}
//		}catch(Exception e){
//			logger.error("", e);
//		}
//	}
//}