From 810fe2bcf1888eacd926f3caa604f033483d20c9 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期三, 30 十月 2024 14:57:33 +0800 Subject: [PATCH] 优化WMS基础管理模块、任务管理添加任务历史信息 --- 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 100 insertions(+), 0 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" index e0ba81d..1c40c2f 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" @@ -28,6 +28,8 @@ using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; +using System.Transactions; +using WIDESEA_Common.TaskEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -47,6 +49,7 @@ using WIDESEA_ITaskInfoService; using WIDESEA_Model.Models; using WIDESEA_TaskInfoRepository; +using WIDESEAWCS_DTO.WCSInfo; namespace WIDESEA_TaskInfoService { @@ -229,5 +232,102 @@ return WebResponseContent.Instance.OK(); } + /// <summary> + /// 鍚屾浠诲姟鐘舵�� + /// </summary> + /// <param name="task"></param> + /// <returns></returns> + /// <exception cref="NotImplementedException"></exception> + public WebResponseContent UpdateTaskStatus(WMSTaskDTO WMStask) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == WMStask.TaskNum && x.TaskType == WMStask.TaskType); + if (task == null) return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�"); + if (task.TaskType == (int)TaskTypeEnum.Inbound) + { + int nextStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskInStatusEnum>(); + if (WMStask.TaskState != nextStatus) return WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佹湁璇�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskStatus}銆�"); + task.TaskStatus = nextStatus; + switch (nextStatus) + { + case (int)TaskInStatusEnum.SC_InFinish: + content = UpdateTaskStatusInFinish(task); + break; + default: + break; + } + } + else if (task.TaskType == (int)TaskTypeEnum.Outbound) + { + int nextStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskOutStatusEnum>(); + if (WMStask.TaskState != nextStatus) return WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佹湁璇�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskStatus}銆�"); + task.TaskStatus = nextStatus; + switch (nextStatus) + { + case (int)TaskOutStatusEnum.SC_OutFinish: + break; + default: + break; + } + } + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } + /// <summary> + /// 鏇存柊浠诲姟鐘舵�佸畬鎴� + /// </summary> + /// <param name="WMStask"></param> + /// <returns></returns> + public WebResponseContent UpdateTaskStatusInFinish(Dt_Task task) + { + WebResponseContent content = new WebResponseContent().OK(); + try + { + Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); + Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); + var result = CheckCompleted(stockInfo, locationInfo); + if (!result.Item1) throw new Exception(result.Item2); + if (stockInfo.StockStatus != StockStatusEmun.鍏ュ簱涓�.ObjToInt()) throw new Exception($"鎵樼洏[{task.PalletCode}],璇ョ粍鐩樼姸鎬佷笉鍙叆搴�"); + stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(); + locationInfo.CurrentQty++; + locationInfo.LocationStatus = locationInfo.MaxQty - locationInfo.CurrentQty == 0 ? LocationStatusEnum.Fullload.ObjToInt() : LocationStatusEnum.InStock.ObjToInt(); + using (TransactionScope scope = new TransactionScope()) + { + BaseDal.UpdateData(task); + _basicService.LocationInfoService.Repository.UpdateData(locationInfo); + _stockService.StockInfoService.Repository.UpdateData(stockInfo); + scope.Complete(); + } + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } + /// <summary> + /// 鏇存柊浠诲姟鐘舵�佹墽琛� + /// </summary> + /// <param name="WMStask"></param> + /// <returns></returns> + public WebResponseContent UpdateTaskStatusExecuting(Dt_Task task) + { + WebResponseContent content = new WebResponseContent().OK(); + try + { + + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } } } -- Gitblit v1.9.3