| package com.zy.core; | 
|   | 
| import com.zy.asrs.service.impl.MainServiceImpl; | 
| import com.zy.core.properties.SystemProperties; | 
| import lombok.Data; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Component; | 
|   | 
| import javax.annotation.PreDestroy; | 
|   | 
| /** | 
|  * WCS主流程 | 
|  * Created by vincent on 2020/8/6 | 
|  */ | 
| @Data | 
| @Slf4j | 
| @Component | 
| public class MainProcess { | 
|   | 
|     @Autowired | 
|     private MainServiceImpl mainService; | 
|     // 所属线程 | 
|     private Thread thread; | 
|     // 频率 | 
|     private int i = 0; | 
|   | 
|     /** | 
|      * =====>>  开始工作 | 
|      */ | 
|     public void start(){ | 
|         thread = new Thread(() -> { | 
|             while (!Thread.currentThread().isInterrupted()) { | 
|                 try { | 
|   | 
|                     // 间隔 | 
|                     Thread.sleep(300); | 
|   | 
|                     // 系统运行状态判断 | 
|                     if (!SystemProperties.WCS_RUNNING_STATUS.get()) { | 
|                         continue; | 
|                     } | 
|   | 
|                     // 演示 | 
|                     mainService.demo(); | 
|   | 
|                     // 入库  ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档 | 
|                     mainService.generateStoreWrkFile(); // 组托 | 
| //                    mainService.generateStoreWrkFile0(); // WMS入库 | 
|   | 
|                     // 间隔 | 
|                     Thread.sleep(500); | 
|   | 
|                     //初始化实时地图 | 
|                     mainService.initRealtimeBasMap(); | 
|                     //从redis中重启任务 | 
|                     mainService.restartTaskFromRedis(); | 
|                     // 入库  ===>>  四向穿梭车入库作业下发 | 
|                     mainService.shuttleIoInExecute(); | 
|                     // 出库  ===>>  四向穿梭车出库作业下发 | 
|                     mainService.shuttleIoOutExecute(); | 
|                     //四向穿梭车任务完成 | 
|                     mainService.shuttleFinished(); | 
|                     //提升机任务 | 
|                     mainService.liftIoExecute(); | 
|                     //提升机任务完成 | 
|                     mainService.liftFinished(); | 
|                     // 异常信息记录 | 
|                     mainService.recErr(); | 
|                     // 入库  ===>> 空栈板初始化入库,叉车入库站放货 | 
|                     mainService.storeEmptyPlt(); | 
|                     // 出库  ===>> 工作档信息写入led显示器 | 
|                     mainService.ledExecute(); | 
|                     // 其他  ===>> LED显示器复位,显示默认信息 | 
|                     mainService.ledReset(); | 
|                     // 穿梭车 ===>> 小车电量检测充电 | 
|                     mainService.loopShuttleCharge(); | 
|                     mainService.executeShuttleCharge(); | 
|   | 
| //                    //出入库模式 | 
| //                    i++; | 
| //                    if (i > 1) { | 
| //                        mainService.outAndIn(); | 
| //                        i = 0; | 
| //                    } | 
|   | 
|                     // 间隔 | 
|                     Thread.sleep(200); | 
|                 } catch (Exception e) { | 
|                     e.printStackTrace(); | 
|                 } | 
|             } | 
|         }); | 
|         thread.start(); | 
|     } | 
|   | 
|     @PreDestroy | 
|     public void shutDown(){ | 
|         if (thread != null) thread.interrupt(); | 
|     } | 
|   | 
| } |