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'] 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> /// 入库口有货 /// </summary> public bool InStockHasGood { get; set; } /// <summary> /// 出库口有货 /// </summary> public bool OutStockHasGood { get; set; } } /// <summary> /// 下发完成的任务入参. /// </summary> public class ExcecuteTaskInput { /// <summary> /// 任务号 /// </summary> public string TaskNo { get; set;} } } 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); } } 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); } 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,6 +714,12 @@ /// <exception cref="UserFriendlyException"></exception> public async Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input) { if (string.IsNullOrEmpty(input.TaskNo)) { throw new UserFriendlyException("任务号不能为空"); } var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); if (task == null) { @@ -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); 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); } } 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> 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); } } }