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/CMS.Plugin.HIAWms.csproj | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs | 73 +++++++++++++++++++++-- HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs | 25 ++++++++ HIAWms/hiawms_web/components.d.ts | 3 + HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs | 5 + HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs | 17 ++++- HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs | 9 ++ 7 files changed, 121 insertions(+), 13 deletions(-) diff --git a/HIAWms/hiawms_web/components.d.ts b/HIAWms/hiawms_web/components.d.ts index 135cdd6..988c7da 100644 --- a/HIAWms/hiawms_web/components.d.ts +++ b/HIAWms/hiawms_web/components.d.ts @@ -21,6 +21,8 @@ Dialog: typeof import('./src/components/Dialog/index.vue')['default'] ElButton: typeof import('element-plus/es')['ElButton'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCollapse: typeof import('element-plus/es')['ElCollapse'] + ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDialog: typeof import('element-plus/es')['ElDialog'] @@ -42,6 +44,7 @@ ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] ElSelect: typeof import('element-plus/es')['ElSelect'] + ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs index 15b99a7..dbb143e 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs @@ -12,6 +12,31 @@ /// </summary> public class QueryTaskTypeInput { + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> public TaskTypeEnum TaskType { get; set; } + + /// <summary> + /// 鍏ュ簱鍙f湁璐� + /// </summary> + public bool InStockHasGood { get; set; } + + /// <summary> + /// 鍑哄簱鍙f湁璐� + /// </summary> + public bool OutStockHasGood { get; set; } + + } + + /// <summary> + /// 涓嬪彂瀹屾垚鐨勪换鍔″叆鍙�. + /// </summary> + public class ExcecuteTaskInput + { + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string TaskNo { get; set;} } } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs index 36eb5c1..91a608e 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs @@ -29,6 +29,7 @@ { get { + if (TaskType == 0) return ""; return GetEnumDescriptionUtil.GetEnumDescription(TaskType); } } @@ -49,6 +50,7 @@ { get { + if (TaskStatus == 0) return ""; return GetEnumDescriptionUtil.GetEnumDescription(TaskStatus); } } @@ -95,6 +97,7 @@ { get { + if (Dodevicetype == 0) return ""; return GetEnumDescriptionUtil.GetEnumDescription(Dodevicetype); } } @@ -111,6 +114,7 @@ { get { + if (TaskDodeviceStatus == 0) return ""; return GetEnumDescriptionUtil.GetEnumDescription(TaskDodeviceStatus); } } @@ -132,6 +136,7 @@ { get { + if (SonTaskType == 0 || !SonTaskType.HasValue) return ""; return GetEnumDescriptionUtil.GetEnumDescription(SonTaskType); } } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs index 7f6670c..b86ef51 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs @@ -49,7 +49,7 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> - Task FinishTaskAsync(WmsTaskStatusDto input); + Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input); /// <summary> /// 鍙栨秷浠诲姟 @@ -71,4 +71,11 @@ /// <param name="input"></param> /// <returns></returns> Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input); + + /// <summary> + /// 鏇存柊浠诲姟涓烘墽琛屼腑 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input); } 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 7ede721..595662e 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs @@ -526,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); @@ -640,6 +644,8 @@ await uow.SaveChangesAsync(); await uow.CompleteAsync(); + + return ObjectMapper.Map<WmsTask, WmsTaskDto>(task); } /// <summary> @@ -650,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); @@ -705,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("浠诲姟淇℃伅涓嶅瓨鍦�"); @@ -722,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) @@ -755,14 +770,56 @@ var whereConditions = DynamicGetQueryParams(queryInput); var NoStartTaskList = await wmsTaskRepository.GetTaskListAsync(whereConditions); - if(NoStartTaskList.Count<=0) return null; - var executeTask = NoStartTaskList.FirstOrDefault(x=>x.TaskType == input.TaskType); - if(executeTask == null) + + 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); + } } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj b/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj index 69a13a5..5879009 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj +++ b/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj @@ -11,7 +11,7 @@ </PropertyGroup> <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))"> - <CMSRootPath>D:\syc\CMS Editor</CMSRootPath> + <CMSRootPath>E:\syc_cms\CMS Editor</CMSRootPath> <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms</OutputPath> </PropertyGroup> diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs index e67e967..38201ac 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs @@ -192,9 +192,9 @@ /// <returns></returns> [HttpPost] [Route("FinishTask")] - public async Task FinishTaskAsync(WmsTaskStatusDto input) + public async Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input) { - await _wmsTaskAppService.FinishTaskAsync(input); + return await _wmsTaskAppService.FinishTaskAsync(input); } /// <summary> @@ -227,10 +227,21 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost] - [Route("ToExecuteTask")] + [Route("GetExecuteTask")] public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input) { return await _wmsTaskAppService.GetToExecuteTaskAsync(input); } + /// <summary> + /// 鏇存柊浠诲姟涓烘墽琛屼腑 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [Route("ToExecuteTask")] + public async Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input) + { + return await _wmsTaskAppService.StartExecuteTaskAsync(input); + } } } -- Gitblit v1.9.3