liu
10 小时以前 6c0fd2cb801554f7999d14e45a94ef0f0d0dfb8d
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/bagcode/MesProBagCodeMapper.java
@@ -108,6 +108,58 @@
                .orderByAsc(MesProBagCodeDO::getBagNo));
    }
    /**
     * 统计生成组下可印刷的袋码数量(供导出分流判断,避免为了拿数量而全量加载)
     */
    default Long selectPrintableCountByUuid(String uuid) {
        return selectCount(new LambdaQueryWrapperX<MesProBagCodeDO>()
                .eq(MesProBagCodeDO::getUuid, uuid)
                .ne(MesProBagCodeDO::getStatus, MesProBagCodeStatusEnum.CANCELED.getStatus()));
    }
    /**
     * 统计批次下可印刷的袋码数量(供导出分流判断)
     */
    default Long selectPrintableCountByBatchId(Long batchId) {
        return selectCount(new LambdaQueryWrapperX<MesProBagCodeDO>()
                .eq(MesProBagCodeDO::getBatchId, batchId)
                .ne(MesProBagCodeDO::getStatus, MesProBagCodeStatusEnum.CANCELED.getStatus()));
    }
    /**
     * 分页查询生成组下可印刷的袋码(后台导出任务用,逐页取以控制内存)
     * <p>
     * 排序与全量查询保持一致(按袋序号升序),保证 ZIP 内的标签顺序不变。
     */
    default List<MesProBagCodeDO> selectPrintablePageByUuid(String uuid, int pageNo, int pageSize) {
        return selectPageByWrapper(new LambdaQueryWrapperX<MesProBagCodeDO>()
                .eq(MesProBagCodeDO::getUuid, uuid)
                .ne(MesProBagCodeDO::getStatus, MesProBagCodeStatusEnum.CANCELED.getStatus())
                .orderByAsc(MesProBagCodeDO::getBagNo), pageNo, pageSize);
    }
    /**
     * 分页查询批次下可印刷的袋码(后台导出任务用)
     */
    default List<MesProBagCodeDO> selectPrintablePageByBatchId(Long batchId, int pageNo, int pageSize) {
        return selectPageByWrapper(new LambdaQueryWrapperX<MesProBagCodeDO>()
                .eq(MesProBagCodeDO::getBatchId, batchId)
                .ne(MesProBagCodeDO::getStatus, MesProBagCodeStatusEnum.CANCELED.getStatus())
                .orderByAsc(MesProBagCodeDO::getBagNo), pageNo, pageSize);
    }
    /**
     * 按条件分页查询,不执行 count 查询(调用方通常已知总数)
     */
    private List<MesProBagCodeDO> selectPageByWrapper(
            com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MesProBagCodeDO> wrapper,
            int pageNo, int pageSize) {
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<MesProBagCodeDO> page =
                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNo, pageSize);
        page.setSearchCount(false);
        return selectPage(page, wrapper).getRecords();
    }
    default Long selectCountByBatchId(Long batchId) {
        return selectCount(MesProBagCodeDO::getBatchId, batchId);
    }