From 30334be4b684d639231e7cd721ca99f3fdb0f5ed Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周一, 12 5月 2025 17:10:46 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo

---
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs |  114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 114 insertions(+), 0 deletions(-)

diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs
new file mode 100644
index 0000000..f2586a5
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs
@@ -0,0 +1,114 @@
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
+using CMS.Plugin.HIAWms.Domain.WmsTask;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Uow;
+
+namespace CMS.Plugin.HIAWms.Application.Implements
+{
+    /// <summary>
+    /// LMES鎿嶄綔鏈嶅姟
+    /// </summary>
+    public class LMesOperateAppService : CMSPluginAppService, ILMesOperateAppService
+    {
+        private readonly IWmsTaskRepository _wmsTaskRepository;
+        private readonly IWmsMaterialRepository _wmsMaterialRepository;
+        private readonly IWmsInOutStockOrderAppService _wmsInOutStockOrderAppService;
+        private readonly IWmsOutStockAppService _wmsOutStockOrderAppService;
+        private readonly IServiceProvider _serviceProvider;
+
+        public LMesOperateAppService(IWmsTaskRepository wmsTaskRepository,
+            IWmsMaterialRepository wmsMaterialRepository,
+            IWmsInOutStockOrderAppService wmsInOutStockOrderAppService,
+            IWmsOutStockAppService wmsOutStockOrderAppService
+,
+            IServiceProvider serviceProvider)
+        {
+            _wmsTaskRepository = wmsTaskRepository;
+            _wmsMaterialRepository = wmsMaterialRepository;
+            _wmsInOutStockOrderAppService = wmsInOutStockOrderAppService;
+            _wmsOutStockOrderAppService = wmsOutStockOrderAppService;
+            _serviceProvider = serviceProvider;
+        }
+
+        /// <summary>
+        /// lmes鍙枡.
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        public async Task<List<CallMaterialOutput>> LMesCallMaterialAsync(List<LMesCallMaterialInput> input)
+        {
+            if (input == null || input.Count == 0)
+            {
+                throw new UserFriendlyException("鍙枡鍙傛暟閿欒");
+            }
+
+            //using var scope = _serviceProvider.CreateScope();
+            //var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
+            //using var uow = unitOfWorkManager.Begin(requiresNew: true);
+
+            var result = new List<CallMaterialOutput>();
+            foreach (var item in input)
+            {
+                if (string.IsNullOrEmpty(item.MaterialMode))
+                {
+                    throw new UserFriendlyException("鍙枡鍨嬪彿涓嶈兘涓虹┖");
+                }
+
+                var task = await _wmsTaskRepository.QueryWmsTaskByDataIdentifierAasync(item.DataIdentifier);
+                if (task != null)
+                {
+                    throw new UserFriendlyException($"鍘熸枡鏍囪瘑{item.DataIdentifier}宸茬敓鎴愪换鍔�,浠诲姟鍙穥task.TaskNo}锛屾棤闇�閲嶅鎿嶄綔");
+                }
+
+                // 鐢熸垚鍑哄簱鍗�
+                var materiaL = await _wmsMaterialRepository.FindByModelAsync(item.MaterialMode);
+                if (materiaL == null)
+                {
+                    throw new UserFriendlyException("璇ュ瀷鍙风墿鏂欎俊鎭笉瀛樺湪");
+                }
+
+                var createOrderInput = new WmsInOutStockOrderCreateDto
+                {
+                    OrderType = Domain.Shared.Enums.OrderTypeEnum.PRODUCTCALL,
+                    MaterialNo = materiaL.MaterialNo,
+                    MaterialName = materiaL.MaterialName,
+                    MaterialModel = item.MaterialMode,
+                    MaterialNumber = 1,
+                    MaterialBatch = item.MaterialMode
+                };
+                var createResult = await _wmsInOutStockOrderAppService.CreateAsync(createOrderInput);
+
+                // 鍙枡
+                var callInput = new List<CallMaterialInput>
+                {
+                    new CallMaterialInput
+                    {
+                        OrderNo = createResult.OrderNo,
+                        MaterialModel = item.MaterialMode,
+                        MaterialNumber = 1,
+                        MaterialNo = materiaL.MaterialNo,
+                        MaterialName = materiaL.MaterialName,
+                        DataIdentifier = item.DataIdentifier,
+                    },
+                };
+                var callresult = await _wmsOutStockOrderAppService.CallMaterialAsync(callInput);
+                result.AddRange(callresult);
+            }
+
+            //await uow.SaveChangesAsync();
+
+            return result;
+        }
+    }
+}

--
Gitblit v1.9.3