| | |
| | | // 定时任务获取待备货订单明细->获取堆垛机对应的源库位,获取备货区库位->生成移库任务11-> |
| | | // 执行移库任务12->入库完成4->更新工作档定时任务中更新订单备货状态和订单明细备货状态5->转储历史 |
| | | @Scheduled(cron = "0/10 * * * * ?") |
| | | public synchronized void autoStockUp() { |
| | | public void autoStockUp() { |
| | | // 查询自动备货配置 |
| | | Config config = configMapper.selectConfigByCode("auto_stock_up"); |
| | | if (config == null || config.getStatus() == 0) { |
| | |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | public void ckrwPushGwcs() { |
| | | // 查询状态为13的工作档 |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().in("io_type", 101,103,107,110,3,12).eq("wrk_sts", 13)); |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().in("io_type", 101,103,107,110,3,12,109).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() { |
| | | public void autoMoveLoc() { |
| | | // 查询跨巷道移库配置 |
| | | Config config = configMapper.selectConfigByCode("auto_move_loc"); |
| | | if (config == null || config.getStatus() == 0) { |
| | |
| | | } |
| | | |
| | | // 空闲理货 |
| | | @Scheduled(cron = "0/5 * * * * ? ") |
| | | // 配置开启->查询可用桁架->获取到能理货的两个木箱->生成两个木箱的理货任务和组盘点的入库任务 |
| | | // wcs出库到堆垛机出库口->推送给gwms去桁架命令->到达理货桁架请求zms拆垛规则->返回拆垛规则gwcs执行拆垛->拆垛完成请求zwms->返回去叠盘/回库/组盘点入库命令->gwcs到达入库口请求入库->堆垛机执行入库 |
| | | // 11->12->13->2->42->52->2->3->4->5 // 回库 |
| | | // ->15 // 去叠盘 |
| | | // ->1->2->3->4->5 // 组盘点入库 |
| | | @Scheduled(cron = "0/10 * * * * ? ") |
| | | 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怎么保证两个都拆完了才请求组盘完成 |
| | | |
| | | // 标记哪一套桁架能用 |
| | | int flag = 0; |
| | | |
| | | // 分别查询两套桁架是否存在任务 |
| | | Integer count = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("source_sta_no", 3046).or().in("sta_no", 3045, 3044)); |
| | | if (count == 0) { |
| | | flag = 1; |
| | | } else { |
| | | count = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().in("source_sta_no", 3042).or().in("sta_no", 3041, 3040)); |
| | | if (count == 0) { |
| | | flag = 2; |
| | | } |
| | | } |
| | | |
| | | // 没有找到可用桁架,桁架都都存在任务 |
| | | if (flag == 0) { |
| | | return; |
| | | } |
| | | |
| | | // 指定桁架生成理货任务 |
| | | ghjtHandler.autoTallyGoods(flag); |
| | | } |
| | | |
| | | } |