From 743c2748dd4e3c2c2a84c7ae930a9cf287453a84 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周一, 12 5月 2025 17:10:40 +0800
Subject: [PATCH] 出入库

---
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs |   29 ++++++++++++++++++++++++++---
 1 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
index 0bb41f5..acc587b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
@@ -1,4 +1,6 @@
-锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto;
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks;
 using CMS.Plugin.HIAWms.Application.Contracts.Services;
 using CMS.Plugin.HIAWms.Domain.Shared.Enums;
 using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder;
@@ -37,7 +39,7 @@
             _serviceProvider = serviceProvider;
         }
 
-        public async Task CallMaterialAsync(List<CallMaterialInput> input)
+        public async Task<List<CallMaterialOutput>>CallMaterialAsync(List<CallMaterialInput> input)
         {
             using var scope = _serviceProvider.CreateScope();
             var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
@@ -48,6 +50,7 @@
             {
                 throw new UserFriendlyException("涓�娆″彨鏂欏彧鑳介拡瀵瑰悓涓�鍨嬪彿鐨勭墿鏂欙紒");
             }
+            var callOutput = new List<CallMaterialOutput>();
             foreach (var inputItem in input)
             {
                 var order = await _wmsInOutStockOrderRepository.FindByNameAsync(inputItem.OrderNo);
@@ -55,16 +58,25 @@
                 {
                     throw new UserFriendlyException("鍑哄簱鍗曟嵁涓嶅瓨鍦�");
                 }
+                if(order.OrderType == OrderTypeEnum.SelfMadeParts || order.OrderType == OrderTypeEnum.PERSONIN)
+                {
+                    throw new UserFriendlyException("鍏ュ簱鍗曚笉鍏佽鍙枡");
+                }
                 if (inputItem.MaterialNumber <= 0)
                 {
                     throw new UserFriendlyException("鍙枡鏁伴噺蹇呴』澶т簬0");
                 }
-                if (order.MaterialNumber < inputItem.MaterialNumber)
+                if(order.OrderStatus == OrderStatusEnum.Finish)
+                {
+                    throw new UserFriendlyException("宸插畬鎴愬崟鎹笉鍏佽鍙枡");
+                }
+                if (order.MaterialNumber < inputItem.MaterialNumber+order.DistributeNumber)
                 {
                     throw new UserFriendlyException("鍙枡鏁伴噺涓嶈兘澶т簬鍗曟嵁鏁伴噺");
                 }
                 order.OrderStatus = OrderStatusEnum.Executing;
                 order.DistributeNumber = inputItem.MaterialNumber;
+                order.OperateTime = DateTime.Now;
 
                 await _wmsInOutStockOrderRepository.UpdateAsync(order);
 
@@ -93,13 +105,22 @@
                             TaskLevel = order.Priority,
                             Aisle = 1,
                             DodeviceId = 0,
+                            Dodevicetype = DodevicetypeEnum.Srm,
                             TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart,
                             IsNextTask = (int)YesNoEnum.Y,
                             IsRead = true,
+                            PlcTaskId = new Random(Guid.NewGuid().GetHashCode()).Next(101, 99999),
                             SourceOrderNo = inputItem.OrderNo,
                             MutableParam1 = inputItem.MaterialModel,
+                            MutableParam2 = inputItem.DataIdentifier
                         };
                         taskList.Add(task);
+
+                        var output = ObjectMapper.Map<WmsMaterialStockDto, CallMaterialOutput>(stock);
+                        output.TaskNo = task.TaskNo;
+                        output.PlcTaskId = task.PlcTaskId;
+                        output.SourceOrderNo = task.SourceOrderNo;
+                        callOutput.Add(output);
                     }
                 }
                 await _wmsTaskRepository.InsertManyAsync(taskList);
@@ -107,6 +128,8 @@
 
             await uow.SaveChangesAsync();
             await uow.CompleteAsync();
+
+            return callOutput;
         }
     }
 }

--
Gitblit v1.9.3