package com.zy.asrs.wcs.core; import com.zy.asrs.wcs.core.properties.SystemProperties; import com.zy.asrs.wcs.core.service.impl.MainServiceImpl; 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.generateInboundWrk(); // 组托 // 间隔 Thread.sleep(500); // //初始化实时地图 // mainService.initRealtimeBasMap(); // // 拣料、并板、盘点再入库 //// mainService.stnToCrnStnPick(); // // 出库 =====>> // mainService.generateOutboundWrkMast(); // // 解析入库工作档 // mainService.analyzeInBoundWrk(); // // 异常信息记录 // mainService.recErr(); // // 入库 ===>> 空栈板初始化入库,叉车入库站放货 // mainService.storeEmptyPlt(); // // 出库 ===>> 工作档信息写入led显示器 // mainService.ledExecute(); // // 其他 ===>> LED显示器复位,显示默认信息 // mainService.ledReset(); // // 穿梭车 ===>> 小车电量检测充电 // mainService.loopShuttleCharge(); // // 穿梭车 ===>> 小车电量满电后回待机位 // mainService.loopShuttleToStandbyCauseCharge(); // // 扫描已经在出库口的货物 => 呼叫agv至放货站点 // mainService.scanOutCallAgv(); } catch (Exception e) { e.printStackTrace(); } } }); thread.start(); } @PreDestroy public void shutDown(){ if (thread != null) thread.interrupt(); } }