自动化立体仓库 - WMS系统
#
zwl
昨天 7aba2103c4b3ea72e8e0fd79dc88be0e251c1c33
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -63,7 +63,7 @@
     * <p>
     * 当前批量下发的归并维度是:
     * 1. WCS接口路径(入库/出库/移库不能混发);
     * 2. work_mast.user_no(相同 userNo 的任务必须放到同一批次一起上报)。
     * 2. work_mast.user_no + batch_seq(相同订单同批次的任务必须放到同一批次一起上报)。
     *
     * @author Ryan
     * @date 2026/1/10 14:42
@@ -73,6 +73,7 @@
        // 仅处理待下发/已生成下发号的工作档。
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(1L, 11L))
                .orderBy("user_no", true)
                .orderBy("batch_seq", true)
                .orderBy("plt_type", true));
        if (wrkMasts.isEmpty()) {
            return;
@@ -90,16 +91,18 @@
            String wcsLocNo = Cools.isEmpty(wrkMast.getLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getLocNo());
            WorkTaskParams params = new WorkTaskParams();
            // 101: 出库。此处 batch 字段承载 userNo,后续 service 层会据此把相同 userNo 的任务并到一批。
            // 101: 出库。有序任务才向 WCS 传 batch/batchSeq;seq=0 表示无序,不传这两个字段。
            if(wrkMast.getIoType()==101) {
                params.setType("out")
                        .setTaskNo(wrkMast.getWrkNo()+"")
                        .setLocNo(wcsSourceLocNo)
                        .setStaNo(String.valueOf(wrkMast.getStaNo()))
                        .setTaskPri(wrkMast.getIoPri().intValue())
                        .setBatch(wrkMast.getUserNo())
                        .setBatchSeq(wrkMast.getPltType())
                        .setBarcode(wrkMast.getBarcode());
                if (wrkMast.getPltType() != null && wrkMast.getPltType() > 0) {
                    params.setBatch(wrkMast.getUserNo())
                            .setBatchSeq(wrkMast.getPltType());
                }
            // 2: 入库。入库接口使用 sourceStaNo + 目标库位。
            } else if (wrkMast.getIoType() == 2 && !Cools.isEmpty(wrkMast.getSourceStaNo())) {
                params.setType("in")