From 35bc44ab49de4d4f667f6661a79f94e04751f0da Mon Sep 17 00:00:00 2001 From: 刘磊 <1161824510@qq.com> Date: 星期二, 10 十二月 2024 21:01:42 +0800 Subject: [PATCH] 1 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 36 ++++++++++++++++++++++++------------ 1 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs index 19379e7..35417c1 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs @@ -102,6 +102,7 @@ // 鏇存柊搴撳瓨鐘舵�佸拰浠诲姟鐘舵�� (var loc, var tas) = UpdateStockAndTaskStatus(stock, task); + var taskHty = task.Adapt<Dt_Task_Hty>(); // 浜嬪姟澶勭悊 await _unitOfWorkManage.UseTranAsync(async () => @@ -114,6 +115,7 @@ await UpdateLocationAsync(loc); //if (task.Roadway.Contains("FR") || task.Roadway.Contains("GW") || task.TaskType == (int)TaskOutboundTypeEnum.OutTray) //濡傛灉鏄垎瀹规垨楂樻俯鍑哄簱 灏嗕换鍔″垹闄� await DeleteTaskAsync(task.TaskId); + await AddTaskHtyAsync(taskHty); }); return content.OK("浠诲姟瀹屾垚鎴愬姛", task.Remark); @@ -236,6 +238,15 @@ } } + private async Task AddTaskHtyAsync(Dt_Task_Hty taskHty) + { + var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; + if (!isTaskAdd) + { + throw new Exception("鍘嗗彶浠诲姟淇℃伅娣诲姞澶辫触"); + } + } + #endregion 鍑哄簱浠诲姟瀹屾垚 #region 绉诲簱浠诲姟瀹屾垚 @@ -251,12 +262,12 @@ try { // 鏇存柊璐т綅鍜屽簱瀛樹俊鎭� - (DtStockInfo updateStock, DtLocationInfo locationInf) = UpdateStockLocation(stock, task.NextAddress); + (DtStockInfo updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateStockLocation(stock, task); var taskHty = CreateHistoricalTask(task); - LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "绉诲簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庡簱瀛樻暟鎹細{JsonConvert.SerializeObject(updateStock)}锛屽師鍏堣揣浣嶆暟鎹細{locationInf}"); + LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "绉诲簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庡簱瀛樻暟鎹細{JsonConvert.SerializeObject(updateStock)}锛屽師鍏堣揣浣嶆暟鎹細{locationInForm}"); // 鎵ц鏁版嵁搴撲簨鍔� - bool isResult = await ExecuteTransaction(updateStock, taskHty, locationInf, task.TaskId); + bool isResult = await ExecuteTransaction(updateStock, taskHty, locationInForm, locationInfoTo, task.TaskId); if (isResult) content.OK("绉诲簱浠诲姟瀹屾垚鎴愬姛"); else @@ -511,6 +522,8 @@ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍑哄簱浠诲姟", ""); return await CompleteStackTaskAsync(task, stock); + case (int)TaskRelocationTypeEnum.Relocation: + return await CompleteTransferTaskAsync(task, stock); default: return content.Error("浠诲姟绫诲瀷涓嶅瓨鍦�"); } @@ -1438,20 +1451,19 @@ /// <param name="stock">搴撳瓨瀵硅薄</param> /// <param name="toLocation">鐩爣浣嶇疆</param> // 鏇存柊搴撳瓨鍜屼綅缃俊鎭� - private (DtStockInfo, DtLocationInfo) UpdateStockLocation(DtStockInfo stock, string toLocation) + private (DtStockInfo, DtLocationInfo, DtLocationInfo) UpdateStockLocation(DtStockInfo stock, Dt_Task task) { - // 鑾峰彇搴撳瓨淇℃伅 - var locationInfo = _locationRepository.QueryFirst(x => x.LocationCode == stock.LocationCode); - // 灏嗗簱瀛樼姸鎬佽缃负鍦ㄥ簱 - locationInfo.LocationStatus = LocationEnum.InStock.ObjToInt(); + //淇敼鏉ユ簮搴撲綅鍜� 鐩爣搴撲綅鐘舵�� + var fromLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway); + fromLocation.LocationStatus = LocationEnum.Free.ObjToInt(); + var toLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway); + toLocation.LocationStatus = LocationEnum.InStock.ObjToInt(); // 灏嗗簱瀛樹綅缃缃负鐩爣浣嶇疆 - stock.LocationCode = toLocation; - // 灏嗗簱瀛樼姸鎬佽缃负鍦ㄥ簱 - stock.LocationInfo.LocationStatus = LocationEnum.InStock.ObjToInt(); + stock.LocationCode = task.TargetAddress; // 杩斿洖鏇存柊鍚庣殑搴撳瓨鍜屼綅缃俊鎭� - return (stock, locationInfo); + return (stock, fromLocation, toLocation); } /// <summary> -- Gitblit v1.9.3