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