liu
12 小时以前 514f372270b181f82e4deff98f8d0f38ace63183
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/bagcode/MesProBagCodeService.java
@@ -100,6 +100,12 @@
     */
    MesProBagCodeDO getBagCodeByCode(String code);
    /** 内部查询识别业务码及历史追溯码,不用于公众追溯入口。 */
    MesProBagCodeDO getBagCodeByScanCode(String code);
    /** 补生成历史袋码业务码;已有码保持不变,返回新生成数量。 */
    int generateBusinessCodes(List<Long> ids);
    /**
     * 查询袋码替换记录
     */
@@ -140,6 +146,63 @@
    List<MesProBagCodeDO> getBagCodeListByBatchId(Long batchId);
    /**
     * 获得某批次下可印刷的袋码列表(排除已作废袋码,按袋序号升序),用于批量导出二维码标签
     * <p>
     * 已作废的袋码(破损替换后作废)不得再印刷:其标签若贴到产品上,消费者扫码会被提示
     * 「该追溯码已作废,谨防假冒」,导致真品被误判为假货。
     *
     * @param batchId 批次编号
     * @return 可印刷的袋码列表
     */
    List<MesProBagCodeDO> getPrintableBagCodeListByBatchId(Long batchId);
    /**
     * 获得某生成组下可印刷的袋码列表(排除已作废袋码),用于批量导出二维码标签
     *
     * @param uuid 生成组 UUID
     * @return 可印刷的袋码列表
     */
    List<MesProBagCodeDO> getPrintableBagCodeListByUuid(String uuid);
    /**
     * 统计某生成组下可印刷的袋码数量
     * <p>
     * 导出前据此判断走同步下载还是后台任务,避免为了拿到数量而把全部袋码加载进内存。
     *
     * @param uuid 生成组 UUID
     * @return 可印刷的袋码数量
     */
    Long getPrintableBagCodeCountByUuid(String uuid);
    /**
     * 统计某批次下可印刷的袋码数量
     *
     * @param batchId 批次编号
     * @return 可印刷的袋码数量
     */
    Long getPrintableBagCodeCountByBatchId(Long batchId);
    /**
     * 分页获得某生成组下可印刷的袋码(后台大批量导出用,逐页取以控制内存)
     *
     * @param uuid     生成组 UUID
     * @param pageNo   页码,从 1 开始
     * @param pageSize 每页数量
     * @return 可印刷的袋码列表(按袋序号升序)
     */
    List<MesProBagCodeDO> getPrintableBagCodePageByUuid(String uuid, int pageNo, int pageSize);
    /**
     * 分页获得某批次下可印刷的袋码(后台大批量导出用)
     *
     * @param batchId  批次编号
     * @param pageNo   页码,从 1 开始
     * @param pageSize 每页数量
     * @return 可印刷的袋码列表(按袋序号升序)
     */
    List<MesProBagCodeDO> getPrintableBagCodePageByBatchId(Long batchId, int pageNo, int pageSize);
    /**
     * 标记袋码为已出库(记录销售出库单编号和出库时间)
     *
     * @param id      袋码编号