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/WmsTaskAppService.cs | 94 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 89 insertions(+), 5 deletions(-) diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs index d09721c..595662e 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs @@ -20,6 +20,8 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; using Volo.Abp.Uow; using Microsoft.Extensions.DependencyInjection; +using NPOI.SS.Formula.Functions; +using System.Collections.Generic; namespace CMS.Plugin.HIAWms.Application.Implements; @@ -524,8 +526,12 @@ /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public async Task FinishTaskAsync(WmsTaskStatusDto input) + public async Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input) { + if (string.IsNullOrEmpty(input.TaskNo)) + { + throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�"); + } using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using var uow = unitOfWorkManager.Begin(requiresNew: true); @@ -638,6 +644,8 @@ await uow.SaveChangesAsync(); await uow.CompleteAsync(); + + return ObjectMapper.Map<WmsTask, WmsTaskDto>(task); } /// <summary> @@ -648,7 +656,10 @@ /// <exception cref="UserFriendlyException"></exception> public async Task CancelTaskAysnc(WmsTaskStatusDto input) { - + if (string.IsNullOrEmpty(input.TaskNo)) + { + throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�"); + } using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using var uow = unitOfWorkManager.Begin(requiresNew: true); @@ -703,7 +714,13 @@ /// <exception cref="UserFriendlyException"></exception> public async Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input) { - var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); + + if (string.IsNullOrEmpty(input.TaskNo)) + { + throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�"); + } + + var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); if (task == null) { throw new UserFriendlyException("浠诲姟淇℃伅涓嶅瓨鍦�"); @@ -720,13 +737,13 @@ throw new UserFriendlyException("鐩爣搴撲綅淇℃伅涓嶅瓨鍦�"); } - if(toPlaceInfo.IsDisabled) + if (toPlaceInfo.IsDisabled) { throw new UserFriendlyException("鐩爣搴撲綅宸茶绂佺敤"); } var toplaceStock = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.ToPlace }); - if (toplaceStock != null && toplaceStock.Count>0) + if (toplaceStock != null && toplaceStock.Count > 0) { var model = toplaceStock.FirstOrDefault(); if (model.MaterialModel != input.MutableParam1) @@ -738,4 +755,71 @@ await wmsTaskRepository.UpdateAsync(task); } + + /// <summary> + /// 鑾峰彇闇�瑕佹墽琛岀殑浠诲姟 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input) + { + var queryInput = new GetWmsTaskInput + { + TaskStatus = WmsTaskStatus.WEIZHIXING, + }; + var whereConditions = DynamicGetQueryParams(queryInput); + + var NoStartTaskList = await wmsTaskRepository.GetTaskListAsync(whereConditions); + + + if (NoStartTaskList.Count <= 0) return null; + + var executeTaskList = NoStartTaskList.WhereIf(input.TaskType > 0, x => x.TaskType == input.TaskType).OrderBy(x => x.TaskType).ThenBy(x => x.TaskLevel).ToList(); + + var executeTask = executeTaskList.FirstOrDefault(); + if (input.OutStockHasGood) + { + executeTask = NoStartTaskList.OrderByDescending(x => x.TaskType == TaskTypeEnum.RUKU).ThenBy(x => x.TaskLevel).FirstOrDefault(); + } + + if (executeTask == null) + { + return ObjectMapper.Map<WmsTask, WmsTaskDto>(NoStartTaskList.FirstOrDefault()); + } + + if (executeTask.TaskType == TaskTypeEnum.CHUKU && input.OutStockHasGood) + { + return null; + } + + if(executeTask.TaskType == TaskTypeEnum.RUKU && !input.InStockHasGood) + { + return null; + } + + return ObjectMapper.Map<WmsTask, WmsTaskDto>(executeTask); + } + + + /// <summary> + /// 鏇存柊浠诲姟涓烘墽琛屼腑 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input) + { + if (string.IsNullOrEmpty(input.TaskNo)) + { + throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�"); + } + var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); + if(task == null) + { + return new WmsTaskDto(); + } + task.TaskStatus = WmsTaskStatus.ZHIXINGZHONG; + task.TaskDodeviceStatus = TaskDodeviceStatus.SrmProgress; + await wmsTaskRepository.UpdateAsync(task); + return ObjectMapper.Map<WmsTask, WmsTaskDto>(task); + } } -- Gitblit v1.9.3