自动化立体仓库 - WMS系统
pang.jiabao
2024-09-05 15d33ed37d1c8b12659716ee806d3f6ace4317a4
src/main/java/com/zy/asrs/task/GhjtScheduler.java
@@ -6,7 +6,10 @@
import com.zy.asrs.mapper.OrderMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.task.handler.GhjtHandler;
import com.zy.system.entity.Config;
import com.zy.system.mapper.ConfigMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -30,11 +33,30 @@
    @Resource
    private OrderMapper orderMapper;
    @Resource
    private ConfigMapper configMapper;
    // 备货(根据出库单,把要出的货提前放到靠近出库口位置)
//    @Scheduled(cron = "0/4 * * * * ? ")
    public void stockUp() {
        // 查询待出库订单
        List<Order> orderList = orderMapper.selectList(new EntityWrapper<Order>().eq("settle", 1));
//        ghjtHandler.stockUp();
        List<Order> orders = orderMapper.selectComplete();
        for (Order order : orders) {
            try {
//                ghjtHandler.OutBoundCompleteReport(order);
            } catch (Exception e) {
                log.error("出库订单完成则上报MES失败,异常信息:" + e);
            }
        }
    }
    // 下发出库任务给GWCS(从出库码头到出库口)
//    @Scheduled(cron = "0/2 * * * * ? ")
    @Scheduled(cron = "0/2 * * * * ? ")
    public void ckrwPushGwcs() {
        // 查询状态为13的工作档
        List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().eq("io_type", 101).eq("wrk_sts", 13));
        List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().in("io_type", 101,103,107,110,3).eq("wrk_sts", 13));
        for (WrkMast wrkMast : wrkMasts) {
            try {
                ghjtHandler.startCkrwPushGwcs(wrkMast);
@@ -44,17 +66,22 @@
        }
    }
    // 出库订单完成则上报MES
//    @Scheduled(cron = "0/4 * * * * ? ")
    public void OutBoundCompleteReport() {
        // 查询出库订单状态为4.已完成
        List<Order> orders = orderMapper.selectComplete();
        for (Order order : orders) {
            try {
                ghjtHandler.OutBoundCompleteReport(order);
            } catch (Exception e) {
                log.error("出库订单完成则上报MES失败,异常信息:" + e);
            }
    // 空闲理货
    @Scheduled(cron = "0/5 * * * * ? ")
    public void autoTallyGoods() {
        // 系统配置界面启用
        Config config = configMapper.selectConfigByCode("auto_tally_goods");
        if (config == null || config.getStatus() == 0) {
            return;
        }
        // 四个换盘点,两个组盘点
        // 先查任务目标站为 3045/3044和3041/3040的换盘组 如果有为空的组则可以出,有一个或两个都不能出
        // todo 需新增两个入库路径 3046/3042
        // 寻找两个能组盘的库位,库位状态为F,满足组盘条件
        // 出库怎么出,才能把组好的盘一次出出去
        // gwcs怎么保证两个都拆完了才请求组盘完成
    }
}