From 02a1ae81eba7b48223052fb833859f0a65dd7d21 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 19 十月 2026 17:31:08 +0800
Subject: [PATCH] feat(mes): 实现袋码大批量生成异步任务功能
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java
index 045b669..280a9cc 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java
@@ -56,6 +56,22 @@
.orderByAsc(MesProPalletDO::getId));
}
+ /**
+ * 鏌ヨ琚嬬爜缁戝畾鎵樼洏鏃跺彲閫夌殑鐩爣鎵樼洏锛氭湭浣滃簾鐨勪复鏃舵墭鐩樹笌姝e紡鎵樼洏銆�
+ * <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())
@@ -80,6 +96,19 @@
@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,
--
Gitblit v1.9.3