| | |
| | | package com.zy.asrs.task; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.mapper.OrderDetlMapper; |
| | | import com.zy.asrs.mapper.OrderMapper; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import com.zy.asrs.task.handler.GhjtHandler; |
| | |
| | | @Resource |
| | | private ConfigMapper configMapper; |
| | | |
| | | @Resource |
| | | private OrderDetlMapper orderDetlMapper; |
| | | |
| | | // 自动备货(根据出库单,把要出的货提前放到靠近出库口位置) |
| | | // 定时任务获取待备货订单明细->获取堆垛机对应的源库位,获取备货区库位->生成移库任务11-> |
| | | // 执行移库任务12->入库完成4->更新工作档定时任务中更新订单备货状态和订单明细备货状态5->转储历史 |
| | |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | public void ckrwPushGwcs() { |
| | | // 查询状态为13的工作档 |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().in("io_type", 101,103,107,110,3).eq("wrk_sts", 13)); |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().in("io_type", 101,103,107,110,3,12).eq("wrk_sts", 13)); |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | try { |
| | | ghjtHandler.startCkrwPushGwcs(wrkMast); |
| | |
| | | } |
| | | } |
| | | |
| | | // 自动跨巷道移库 |
| | | // 配置开启->获取单据明细->获取源库位目标库位->生成移库任务->取消任务回滚单据-> |
| | | // wcs出库到堆垛机出库口->gwms给gwcs推送目标站1->gwcs到达堆垛机入库口请求入库->堆垛机执行入库->入库完成->更新单据状态 |
| | | // 11->12->13->1->2->3->4->5 |
| | | @Scheduled(cron = "0/10 * * * * ?") |
| | | public synchronized void autoMoveLoc() { |
| | | // 查询跨巷道移库配置 |
| | | Config config = configMapper.selectConfigByCode("auto_move_loc"); |
| | | if (config == null || config.getStatus() == 0) { |
| | | return; |
| | | } |
| | | // 查询待移库的单据明细 |
| | | List<OrderDetl> orderDetlList = orderDetlMapper.selectMoveLocDetl(); |
| | | if (orderDetlList.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | ghjtHandler.autoMoveLoc(orderDetlList); |
| | | } |
| | | |
| | | // 空闲理货 |
| | | @Scheduled(cron = "0/5 * * * * ? ") |
| | | public void autoTallyGoods() { |