From 251be431ad12399fe4ebce599c353d05dcec7888 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 29 十月 2026 12:28:34 +0800
Subject: [PATCH] feat(mes): 支持追溯二维码解析功能
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java | 50 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 44 insertions(+), 6 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..804e94a 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
@@ -3,9 +3,12 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletPageReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletUnboundPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.pallet.MesProPalletDO;
import cn.iocoder.yudao.module.mes.enums.pro.MesProPalletStatusEnum;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -47,13 +50,35 @@
return selectList(MesProPalletDO::getBatchId, batchId);
}
- /** 鏌ヨ鏈粦瀹氱敓浜ф壒娆$殑涓存椂鎵樼洏锛堟棤姝e紡鎵樼洏鐮佷笖鏈綔搴燂級锛屼緵鎵规鏂板/琛ュ綍缁戝畾鎵樼洏涓嬫媺浣跨敤 */
- default List<MesProPalletDO> selectUnboundList() {
+ /**
+ * 鍒嗛〉鏌ヨ鏈粦瀹氱敓浜ф壒娆$殑涓存椂鎵樼洏锛堟棤姝e紡鎵樼洏鐮佷笖鏈綔搴燂級锛屼緵鎵规鏂板/琛ュ綍缁戝畾鎵樼洏涓嬫媺浣跨敤銆�
+ * <p>
+ * 鍏抽敭瀛楀悓鏃跺尮閰嶄复鏃舵墭鐩樼爜涓庡叧鑱斿搧绉嶇殑缂栫爜銆佸悕绉帮紝渚夸簬涓嬫媺杈撳叆妗嗙洿鎺ユ寜鍝佺妫�绱€��
+ */
+ default PageResult<MesProPalletDO> selectUnboundPage(MesProPalletUnboundPageReqVO reqVO) {
+ IPage<MesProPalletDO> result = selectUnboundPage(MyBatisUtils.buildPage(reqVO),
+ reqVO.getKeyword(), MesProPalletStatusEnum.IN_USE.getStatus());
+ return new PageResult<>(result.getRecords(), result.getTotal());
+ }
+
+ IPage<MesProPalletDO> selectUnboundPage(IPage<MesProPalletDO> page,
+ @Param("keyword") String keyword,
+ @Param("status") Integer status);
+
+ /**
+ * 鏌ヨ琚嬬爜缁戝畾鎵樼洏鏃跺彲閫夌殑鐩爣鎵樼洏锛氭湭浣滃簾鐨勪复鏃舵墭鐩樹笌姝e紡鎵樼洏銆�
+ * <p>
+ * 浼犲叆鍝佺鏃朵粎杩斿洖璇ュ搧绉嶇殑鎵樼洏锛屼互鍙婂皻鏈‘瀹氬搧绉嶇殑棰勭敓鎴愪复鏃舵墭鐩橈紙item_id 涓虹┖锛岀粦瀹氳鐮佹椂鍥炲~鍝佺锛夈��
+ *
+ * @param itemId 琚嬬爜鍝佺缂栧彿锛屽彲涓虹┖
+ * @return 鎵樼洏鍒楄〃
+ */
+ default List<MesProPalletDO> selectBindableList(Long itemId) {
return selectList(new LambdaQueryWrapperX<MesProPalletDO>()
- .isNull(MesProPalletDO::getBatchId)
- .isNull(MesProPalletDO::getCode)
- .eq(MesProPalletDO::getStatus, MesProPalletStatusEnum.IN_USE.getStatus())
- .orderByAsc(MesProPalletDO::getId));
+ .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) {
@@ -80,6 +105,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