SubmitToTrafficManage.java 2.43 KB
package com.bsth.data.schedule.thread;

import com.bsth.service.TrafficManageService;
import com.bsth.service.traffic.YgcBasicDataService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 运营数据提交到运管处
 * Created by panzhao on 2016/11/9.
 */
@Component
public class SubmitToTrafficManage extends Thread{

    Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    TrafficManageService trafficManageService;

    @Autowired
    YgcBasicDataService ygcBasicDataService;

    @Override
    public void run() {
        logger.info("开始提交数据到运管处...");
        boolean isContinue = true;
        // 上传路单,如果接口异常,会自动重传
        while (isContinue){
            try {
                //路单
                trafficManageService.setLD();
                isContinue = false;
            } catch (Exception e) {
                logger.error("提交路单到运管处失败", e);
                try {
                    // 如果出现异常,程序暂停60分钟后再重新执行
                    Thread.sleep(60 * 60 * 1000);
                } catch (Exception ex) { }
            }
        }

        // 路单上传成功后,再上传其他数据
        if(!isContinue){
            try {
                //车辆里程、油耗
                trafficManageService.setLCYH();
            } catch (Exception e) {
                logger.error("提交车辆里程、油耗到运管处失败", e);
            }
            try {
                //线路调度日报
                trafficManageService.setDDRB();
            } catch (Exception e) {
                logger.error("提交线路调度日报到运管处失败", e);
            }
            try {
                //线路计划班次表
                trafficManageService.setJHBC();
            } catch (Exception e) {
                logger.error("提交线路计划班次表到运管处失败", e);
            }
            try {
                // 运管处基础数据更新
                ygcBasicDataService.updateYgcBasicData();
            } catch (Exception e) {
                logger.error("运管处基础数据更新失败", e);
            }
        }
        logger.info("提交数据到运管处结束!");
    }
}