| | |
| | | .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); |
| | | } |
| | |
| | | .orderByAsc(MesProBagCodeDO::getId)); |
| | | } |
| | | |
| | | default List<MesProBagCodeDO> selectUnboundPalletlessList() { |
| | | return selectList(new LambdaQueryWrapperX<MesProBagCodeDO>() |
| | | .isNull(MesProBagCodeDO::getBatchId) |
| | | .isNull(MesProBagCodeDO::getPalletId) |
| | | .in(MesProBagCodeDO::getStatus, MesProBagCodeStatusEnum.GENERATED.getStatus(), |
| | | MesProBagCodeStatusEnum.PRINTED.getStatus()) |
| | | .isNotNull(MesProBagCodeDO::getItemId) |
| | | .orderByAsc(MesProBagCodeDO::getId)); |
| | | } |
| | | |
| | | /** 批次内有效袋码的品种编号集合(忽略历史空品种袋码),用于录入批次时的品种一致性校验 */ |
| | | @Select("SELECT DISTINCT item_id FROM mes_pro_bag_code " + |
| | | "WHERE deleted = 0 AND status <> 30 AND batch_id = #{batchId} AND item_id IS NOT NULL") |