From f7273277023f3497ac071bf98f556a569cb4dd25 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 17 九月 2026 16:24:10 +0800
Subject: [PATCH] feat(mes): 重构袋码生成与物料分类功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/bagcode/MesProBagCodeService.java |   45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 44 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/bagcode/MesProBagCodeService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/bagcode/MesProBagCodeService.java
index 5608218..546f9d6 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/bagcode/MesProBagCodeService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/bagcode/MesProBagCodeService.java
@@ -1,9 +1,14 @@
 package cn.iocoder.yudao.module.mes.service.pro.bagcode;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeBindBatchReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeBindReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeGenerateReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeGenerateRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodePageReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeRawGenerateReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeReplaceReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeReplaceRespVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeDO;
 import jakarta.validation.Valid;
 
@@ -25,7 +30,23 @@
      * @param generateReqVO 鐢熸垚淇℃伅
      * @return 鐢熸垚缁� UUID锛堟爣璁板悓涓�娆$敓鎴愮殑鏁版嵁鍖咃級
      */
-    String generateBagCodes(@Valid MesProBagCodeGenerateReqVO generateReqVO);
+    MesProBagCodeGenerateRespVO generateBagCodes(@Valid MesProBagCodeGenerateReqVO generateReqVO);
+
+    /**
+     * 鐢熸垚鍘熷琚嬬爜锛氫粎閫夊搧绉�+琚嬬爜鏁伴噺锛屼笉鏍¢獙璁¢噺鍗曚綅绫诲瀷銆佷笉鐢熸垚鎵樼洏锛�
+     * 琚嬬爜甯﹀搧绉嶅啑浣欙紝鍚庣画鍙甯稿綍鍏ユ壒娆�/缁戝畾鎵樼洏
+     *
+     * @param rawGenerateReqVO 鐢熸垚淇℃伅
+     * @return 鐢熸垚缁� UUID 涓庢暟閲忥紙type/perPallet/palletIds 涓虹┖锛�
+     */
+    MesProBagCodeGenerateRespVO generateRawBagCodes(@Valid MesProBagCodeRawGenerateReqVO rawGenerateReqVO);
+
+    void bindBatch(@Valid MesProBagCodeBindBatchReqVO bindReqVO);
+
+    /**
+     * 浣滃簾鐮存崯琚嬬爜骞跺湪鍘熸壒娆$敓鎴愮瓑閲忔浛鎹㈣鐮�
+     */
+    MesProBagCodeReplaceRespVO replaceBagCodes(@Valid MesProBagCodeReplaceReqVO replaceReqVO);
 
     /**
      * 鍒犻櫎鐢熸垚缁勶紙浠�"宸茬敓鎴�"鐘舵�佷笖鏈粦瀹氭墭鐩樼殑琚嬬爜鍏佽鍒犻櫎锛�
@@ -80,6 +101,13 @@
     MesProBagCodeDO getBagCodeByCode(String code);
 
     /**
+     * 鏌ヨ琚嬬爜鏇挎崲璁板綍
+     */
+    cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeReplaceDO getReplacementByOldBagCodeId(Long oldBagCodeId);
+
+    cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeReplaceDO getReplacementByNewBagCodeId(Long newBagCodeId);
+
+    /**
      * 鑾峰緱琚嬬爜鍒嗛〉
      *
      * @param pageReqVO 鍒嗛〉鏌ヨ
@@ -111,4 +139,19 @@
      */
     List<MesProBagCodeDO> getBagCodeListByBatchId(Long batchId);
 
+    /**
+     * 鏍囪琚嬬爜涓哄凡鍑哄簱锛堣褰曢攢鍞嚭搴撳崟缂栧彿鍜屽嚭搴撴椂闂达級
+     *
+     * @param id      琚嬬爜缂栧彿
+     * @param salesId 閿�鍞嚭搴撳崟缂栧彿
+     */
+    void markOutbound(Long id, Long salesId);
+
+    /**
+     * 娓呴櫎琚嬬爜鐨勫嚭搴撴爣璁帮紙鍙栨秷鍑哄簱鍗曟椂浣跨敤锛�
+     *
+     * @param id 琚嬬爜缂栧彿
+     */
+    void clearOutbound(Long id);
+
 }

--
Gitblit v1.9.3