ZnddTwoThread.java 4.34 KB
package com.bsth.data.zndd;

import com.bsth.data.LineConfigData;
import com.bsth.data.gpsdata_v2.GpsRealData;
import com.bsth.data.schedule.DayOfSchedule;
import com.bsth.entity.zndd.znddStatus;
import com.bsth.repository.StationRouteRepository;
import com.bsth.repository.zndd.ZnddStatusRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 调度预案 发车间隔、误点、大间隔、满载、大客流
 */
@Component
public class ZnddTwoThread extends Thread{

    Logger logger = LoggerFactory.getLogger(this.getClass());
    /*@Autowired
    StationPeopleLoggerRepository stationPeopleLoggerRepository;*/
    @Autowired
    DayOfSchedule dayOfSchedule;
    @Autowired
    LineConfigData lineConfs;
    @Autowired
    GpsRealData gpsRealData;
    @Autowired
    StationRouteRepository stationRouteRepository;
    @Autowired
    AutomaticSch automaticSch;

    @Autowired
    ZnddStatusRepository znddStatusRepository;

    static Map<String,List> ZNDDTYPEMAP = new HashMap<>(); //已经推送过的检测




    private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm");
    private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd");
    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    @Override
    public void run() {
        try {
            List<znddStatus> znddStatusList = (List<znddStatus>) znddStatusRepository.findAll();

           for (znddStatus zs : znddStatusList) {
                if (zs.getOpenStatus() != null && zs.getOpenStatus().equals("0")) {
                    //预案5个
                    if (zs.getType().equals("fcjg")) {
                        new Thread() {
                            @Override
                            public void run() {
                                automaticSch.dfTz(0);
                                logger.info("发车间隔执行完毕");
                            }
                        }.start();//启动线程
                    }
                    if (zs.getType().equals("wd")) {
                        new Thread() {
                            @Override
                            public void run() {
                                automaticSch.wd();
                                logger.info("误点执行完毕");
                            }
                        }.start();//启动线程
                    }
                    if (zs.getType().equals("djg")) {
                        new Thread() {
                            @Override
                            public void run() {
                                automaticSch.dfTz(1);
                                logger.info("行车大间隔执行完毕");
                            }
                        }.start();//启动线程

                    }
                    if (zs.getType().equals("mz")) {
                        new Thread() {
                            @Override
                            public void run() {
                                automaticSch.mz();
                                logger.info("满载执行完毕");
                            }
                        }.start();//启动线程

                    }
                    if (zs.getType().equals("desctwo")) {
                        new Thread() {
                            @Override
                            public void run() {
                                automaticSch.TowdescSch(0);
                                logger.info("末二班车执行完毕");
                            }
                        }.start();//启动线程
                    }
                    if (zs.getType().equals("fcsjxzd")) {
                        new Thread() {
                            @Override
                            public void run() {
                                automaticSch.TowdescSch(1);
                                logger.info("到达时间大于发车时间执行完毕");
                            }
                        }.start();//启动线程
                    }
                }
            }


        } catch (Exception e) {
            logger.info("智能调度线程——————", e);
        }
    }


}