| | |
| | | .orderByAsc(MesProPalletDO::getId)); |
| | | } |
| | | |
| | | /** |
| | | * 查询袋码绑定托盘时可选的目标托盘:未作废的临时托盘与正式托盘。 |
| | | * <p> |
| | | * 传入品种时仅返回该品种的托盘,以及尚未确定品种的预生成临时托盘(item_id 为空,绑定袋码时回填品种)。 |
| | | * |
| | | * @param itemId 袋码品种编号,可为空 |
| | | * @return 托盘列表 |
| | | */ |
| | | default List<MesProPalletDO> selectBindableList(Long itemId) { |
| | | return selectList(new LambdaQueryWrapperX<MesProPalletDO>() |
| | | .ne(MesProPalletDO::getStatus, MesProPalletStatusEnum.CANCELED.getStatus()) |
| | | .and(itemId != null, q -> q.eq(MesProPalletDO::getItemId, itemId) |
| | | .or().isNull(MesProPalletDO::getItemId)) |
| | | .orderByDesc(MesProPalletDO::getId)); |
| | | } |
| | | |
| | | default PageResult<MesProPalletDO> selectPage(MesProPalletPageReqVO reqVO) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<MesProPalletDO>() |
| | | .likeIfPresent(MesProPalletDO::getBusinessCode, reqVO.getBusinessCode()) |
| | |
| | | @Select("SELECT IFNULL(MAX(pallet_no), 0) FROM mes_pro_pallet WHERE batch_id = #{batchId}") |
| | | Integer selectMaxPalletNo(@Param("batchId") Long batchId); |
| | | |
| | | /** |
| | | * 物理删除某个生成组下尚未绑定批次的临时托盘(仅用于生成失败/取消后的半成品清理) |
| | | * <p> |
| | | * 已绑定批次的托盘可能已被后续业务使用,即使带有生成组标记也不能删。 |
| | | * |
| | | * @param generateUuid 生成组 UUID |
| | | * @param limit 单次最多删除行数 |
| | | * @return 实际删除行数 |
| | | */ |
| | | @org.apache.ibatis.annotations.Delete("DELETE FROM mes_pro_pallet WHERE generate_uuid = #{generateUuid} " |
| | | + "AND batch_id IS NULL AND code IS NULL LIMIT #{limit}") |
| | | int deletePhysicallyByGenerateUuidChunk(@Param("generateUuid") String generateUuid, @Param("limit") int limit); |
| | | |
| | | @org.apache.ibatis.annotations.Update("UPDATE mes_pro_pallet SET sales_id = #{salesId}, outbound_time = #{outboundTime}, update_time = NOW() " |
| | | + "WHERE id = #{id} AND deleted = 0") |
| | | void markOutbound(@Param("id") Long id, @Param("salesId") Long salesId, |