From 688036eb8892637e1538ef220ea6ccb7e110167b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 02 十一月 2026 10:59:16 +0800
Subject: [PATCH] 工作站设置:只选仓库时自动落到仓库默认库区/库位

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java
index 734cf83..2399548 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java
@@ -16,6 +16,7 @@
 import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
 import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
+import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseDefaultService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
 import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService;
@@ -60,6 +61,8 @@
     @Resource
     private MesWmWarehouseAreaService areaService;
     @Resource
+    private MesWmWarehouseDefaultService warehouseDefaultService;
+    @Resource
     private MesWmBarcodeService barcodeService;
     @Resource
     private MesProProcessService processService;
@@ -98,8 +101,10 @@
         validateWorkstationNameUnique(id, reqVO.getName());
         // 鏍¢獙杞﹂棿瀛樺湪
         validateWorkshopExists(reqVO.getWorkshopId());
-        // 鏍¢獙宸ュ簭瀛樺湪
-        processService.validateProcessExistsAndEnable(reqVO.getProcessId());
+        // 鏍¢獙宸ュ簭瀛樺湪锛堝伐搴忎负鍙�夐」锛屾湭閰嶇疆宸ュ簭鏃跺伐浣滅珯浠嶅彲姝e父浣跨敤锛�
+        if (reqVO.getProcessId() != null) {
+            processService.validateProcessExistsAndEnable(reqVO.getProcessId());
+        }
         // 澶勭悊浠撳簱灞傜骇锛堟湭鎸囧畾浠撳簱鏃惰嚜鍔ㄨ缃櫄鎷熺嚎杈瑰簱锛�
         handleWarehouseHierarchy(reqVO);
     }
@@ -149,8 +154,9 @@
      * 浠撳簱灞傜骇缁撴瀯锛氫粨搴� -> 搴撳尯 -> 搴撲綅
      * 澶勭悊瑙勫垯锛�
      * 1. 濡傛灉浠撳簱/搴撳尯/搴撲綅閮芥湭濉啓锛屽垯鑷姩璁剧疆铏氭嫙绾胯竟搴�
-     * 2. 濡傛灉濉啓浜嗗簱鍖猴紝蹇呴』濉啓浠撳簱锛屼笖搴撳尯蹇呴』灞炰簬璇ヤ粨搴�
-     * 3. 濡傛灉濉啓浜嗗簱浣嶏紝蹇呴』濉啓搴撳尯锛屼笖搴撲綅蹇呴』灞炰簬璇ュ簱鍖�
+     * 2. 濡傛灉鍙~鍐欎簡浠撳簱锛屾湭鎸囧畾搴撳尯/搴撲綅锛屽垯鑷姩钀藉埌璇ヤ粨搴撶殑榛樿搴撳尯/榛樿搴撲綅
+     * 3. 濡傛灉濉啓浜嗗簱鍖猴紝蹇呴』濉啓浠撳簱锛屼笖搴撳尯蹇呴』灞炰簬璇ヤ粨搴�
+     * 4. 濡傛灉濉啓浜嗗簱浣嶏紝蹇呴』濉啓搴撳尯锛屼笖搴撲綅蹇呴』灞炰簬璇ュ簱鍖�
      *
      * @param reqVO 宸ヤ綔绔欎繚瀛樿姹傚璞�
      */
@@ -177,6 +183,14 @@
             warehouseService.validateWarehouseExists(warehouseId);
         }
 
+        // 2.1 鍙�変簡浠撳簱銆佹湭鎸囧畾搴撳尯/搴撲綅鏃讹紝钀藉埌浠撳簱榛樿搴撳尯/榛樿搴撲綅锛堝鎴锋湭鍚敤搴撳尯/搴撲綅绠$悊锛�
+        if (locationId == null && areaId == null) {
+            MesWmWarehouseAreaDO defaultArea = warehouseDefaultService.getOrCreateDefaultArea(warehouseId);
+            reqVO.setLocationId(defaultArea.getLocationId());
+            reqVO.setAreaId(defaultArea.getId());
+            return;
+        }
+
         // 3. 鏍¢獙搴撳尯锛氬鏋滃~鍐欎簡搴撳尯锛屽繀椤诲~鍐欎粨搴擄紝涓斿簱鍖哄繀椤诲睘浜庤浠撳簱
         MesWmWarehouseLocationDO location;
         if (locationId != null) {

--
Gitblit v1.9.3