From 5c5a26ca4f99953d06e75010eed5b0b59dff3b3f Mon Sep 17 00:00:00 2001
From: song zhou <1759742460@qq.com>
Date: 周日, 18 5月 2025 19:44:26 +0800
Subject: [PATCH] wcs交互

---
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs |   38 +++++++++++++++++++++++++-------------
 1 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
index f8d424b..c9d9df0 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
@@ -186,16 +186,35 @@
         {
             throw new UserFriendlyException("鐗╂枡淇℃伅涓嶅瓨鍦�");
         }
-        var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
+        var palceInfo = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo);
+
         //if (container == null)
         //{
         //    throw new UserFriendlyException("鎵樼洏淇℃伅涓嶅瓨鍦�");
         //}
+        input.ContainerNo = string.IsNullOrEmpty(input.ContainerNo) ? "TP_" + DateTime.Now.ToString("yyMMddHHmmssfff") : input.ContainerNo;
 
         var wmsmaterialstock = ObjectMapper.Map<WmsMaterialStockCreateDto, WmsMaterialStock>(input);
         input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None);
         wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N");
+        wmsmaterialstock.MaterialNo = material.MaterialNo;
         wmsmaterialstock.MaterialName = material.MaterialName;
+
+        var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo });
+        if (wmsmaterialstockList.Count > 0)
+        {
+            if (wmsmaterialstock.StorageTypeNo == PlaceTypeEnum.YUANLIAOKUWEI)
+            {
+                wmsmaterialstock.ContainerNo = wmsmaterialstockList[0].ContainerNo;
+                input.ContainerNo = wmsmaterialstockList[0].ContainerNo;
+            }
+            if (wmsmaterialstockList[0].MaterialNo != material.MaterialNo)
+            {
+                throw new UserFriendlyException("褰撳墠搴撲綅宸插瓨鏀惧埆鐨勭墿鏂�");
+            }
+        }
+
+        var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
 
         wmsmaterialstock.ContainerStatus = ContainerStatusEnum.KUWEI;
         wmsmaterialstock.ContainerType = container == null ? ContainerTypeEnum.XUNI : container.ContainerType;
@@ -224,14 +243,7 @@
 
             await _wmsplaceRepository.UpdateAsync(place);
         }
-        var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo });
-        if (wmsmaterialstockList.Count > 0)
-        {
-            if (wmsmaterialstockList[0].MaterialNo != input.MaterialNo)
-            {
-                throw new UserFriendlyException("褰撳墠搴撲綅宸插瓨鏀惧埆鐨勭墿鏂�");
-            }
-        }
+        
 
         var maxSort = await _wmsmaterialstockRepository.GetMaxSortAsync();
         var sort = input.Sort ?? maxSort;
@@ -256,7 +268,7 @@
             // 娣诲姞搴撳瓨璁板綍
             var record = new WmsInOutStockRecord
             {
-                TaskNo = input.TaskNo,
+                TaskNo = string.IsNullOrEmpty(input.OrderNo) ? "Task_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo,
                 OrderNo = input.OrderNo,
                 StockType = StockTypeEnum.InBound,
                 ContainerNo = stock.ContainerNo,
@@ -279,7 +291,7 @@
         {
             container = new WmsContainer
             {
-                ContainerNo = input.ContainerNo,
+                ContainerNo = wmsmaterialstock.ContainerNo,
                 ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI,
                 ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI,
             };
@@ -693,8 +705,8 @@
     protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialStockCreateOrUpdateDtoBase input)
     {
         Check.NotNull(input, nameof(input));
-        Check.NotNullOrWhiteSpace(input.MaterialNo, "缂栧彿", WmsMaterialStockConsts.MaxCodeLength);
-        Check.NotNullOrWhiteSpace(input.MaterialName, "鍚嶇О", WmsMaterialStockConsts.MaxNameLength);
+        //Check.NotNullOrWhiteSpace(input.MaterialNo, "缂栧彿", WmsMaterialStockConsts.MaxCodeLength);
+        //Check.NotNullOrWhiteSpace(input.MaterialName, "鍚嶇О", WmsMaterialStockConsts.MaxNameLength);
         Check.Length(input.Remark, "澶囨敞", WmsMaterialStockConsts.MaxRemarkLength);
         return Task.CompletedTask;
     }

--
Gitblit v1.9.3