From dd637406e18a7afbf08d323c6ece913fe545b7ad Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 28 十月 2026 18:11:32 +0800
Subject: [PATCH] feat(mes): 增加盘号追溯功能和销售退货单优化

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
index 5208739..05ece24 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
@@ -285,6 +285,10 @@
             }
             ErpSaleOrderSaveReqVO.Item itemVO = new ErpSaleOrderSaveReqVO.Item();
             itemVO.setProductId(item.getId());
+            if (row.getReelNo() != null && row.getReelNo().length() > 128) {
+                throw new IllegalArgumentException("浜у搧[" + row.getProductCode() + "]鐨勭洏鍙蜂笉鑳借秴杩�128涓瓧绗�");
+            }
+            itemVO.setReelNo(row.getReelNo());
             itemVO.setProductUnitId(item.getUnitMeasureId());
             // 鍗曚环锛氭湭濉啓鏃跺彇鐗╂枡鐨勯攢鍞环锛堜笌椤甸潰閫変骇鍝佸悗鐨勯粯璁ゅ�间竴鑷达級
             itemVO.setProductPrice(row.getProductPrice() != null ? row.getProductPrice()
@@ -401,6 +405,16 @@
         }
 
         // 4. 鍒涘缓 BPM 娴佺▼瀹炰緥锛堝鎵瑰湪鍗忓悓鍔炲叕瀹屾垚锛�
+        // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
+        if (processInstanceApi.isGlobalAutoApprove()) {
+            saleOrderMapper.updateById(new ErpSaleOrderDO()
+                    .setId(id)
+                    .setStatus(ErpAuditStatus.APPROVING.getStatus())
+                    .setProcessInstanceId(""));
+            updateSaleOrderAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus());
+            return;
+        }
+
         String processInstanceId = processInstanceApi.createProcessInstance(userId,
                 new BpmProcessInstanceCreateReqDTO()
                         .setProcessDefinitionKey(processDefinitionKey)
@@ -558,6 +572,7 @@
         createReqDTO.setSaleOrderId(saleOrder.getId());
         createReqDTO.setSaleOrderNo(saleOrder.getNo());
         createReqDTO.setSaleOrderItemId(item.getId());
+        createReqDTO.setReelNo(item.getReelNo());
         createReqDTO.setMdmItemId(item.getProductId());
         createReqDTO.setProductName(productName);
         createReqDTO.setQuantity(item.getCount());
@@ -733,8 +748,7 @@
 
     @Override
     public PageResult<ErpSaleOrderDO> getSaleOrderPage(ErpSaleOrderPageReqVO pageReqVO) {
-        List<Long> permittedCustomerIds = customerApi.getPermittedCustomerIds();
-        return saleOrderMapper.selectPage(pageReqVO, permittedCustomerIds);
+        return saleOrderMapper.selectPage(pageReqVO);
     }
 
     // ==================== 璁㈠崟椤� ====================

--
Gitblit v1.9.3