| | |
| | | package com.zy.core; |
| | | |
| | | import com.zy.asrs.service.impl.MainServiceImpl; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.core.plugin.MainProcessPluginApi; |
| | | import com.zy.core.properties.SystemProperties; |
| | | import lombok.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | 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; |
| | | @Value("${mainProcessPlugin}") |
| | | private String mainProcessPlugin; |
| | | private MainProcessPluginApi mainProcessPluginApi; |
| | | // 所属线程 |
| | | private Thread thread; |
| | | |
| | |
| | | thread = new Thread(() -> { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | | |
| | | // 间隔 |
| | | Thread.sleep(1000); |
| | | if (mainProcessPluginApi == null) { |
| | | String className = mainProcessPlugin.contains(".") ? mainProcessPlugin : "com.zy.core.plugin." + mainProcessPlugin; |
| | | Class<? extends MainProcessPluginApi> clazz = Class.forName(className).asSubclass(MainProcessPluginApi.class); |
| | | mainProcessPluginApi = SpringUtils.getBean(clazz); |
| | | } |
| | | |
| | | // 系统运行状态判断 |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | | } |
| | | |
| | | // 演示 |
| | | mainService.crnDemoOfLocMove1(); |
| | | |
| | | // 入库 ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档 |
| | | mainService.generateStoreWrkFile(); // 组托 |
| | | mainService.generateStoreWrkFile0(); // WMS入库 |
| | | // 拣料、并板、盘点再入库 |
| | | mainService.stnToCrnStnPick(); |
| | | // 出库 ===>> 堆垛机出库站到出库站 |
| | | mainService.crnStnToOutStn(); |
| | | // 入出库 ===>> 堆垛机入出库作业下发 |
| | | mainService.crnIoExecute(); |
| | | // 堆垛机针对于小车迁移工作的完成 |
| | | mainService.carMoveFinished(); |
| | | // 入库 ===>> 执行对工作档的完成操作 |
| | | mainService.storeFinished(); |
| | | // 堆垛机异常信息记录 |
| | | mainService.recCrnErr(); |
| | | // 入库 ===>> 空栈板初始化入库,叉车入库站放货 |
| | | mainService.storeEmptyPlt(); |
| | | // 出库 ===>> 工作档信息写入led显示器 |
| | | mainService.ledExecute(); |
| | | // 其他 ===>> LED显示器复位,显示默认信息 |
| | | mainService.ledReset(); |
| | | |
| | | mainProcessPluginApi.run(); |
| | | // 间隔 |
| | | Thread.sleep(200); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |