From 75e3bca44b111c167b9389e4e51b2ce577a9f9e0 Mon Sep 17 00:00:00 2001 From: 647556386 <647556386@qq.com> Date: 星期日, 10 八月 2025 10:35:50 +0800 Subject: [PATCH] 优化更新 --- WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 109 +++++++++++++++++++++++++----------------------------- 1 files changed, 50 insertions(+), 59 deletions(-) diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs index 3310331..f264e11 100644 --- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs +++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs @@ -462,7 +462,8 @@ { // 鏇存柊鍏ュ簱鍗曟槑缁嗙姸鎬� UpdateInboundOrderDetails(stockInfo, inboundOrder, ref inboundOrderDetail); - + ///鏇存柊搴撳瓨鐘舵�� + stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(); // 鏇存柊搴撳瓨鏄庣粏鐘舵�� stockInfo.Details.ForEach(x => x.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()); @@ -840,17 +841,15 @@ int lastStatus = locationInfo.LocationStatus; locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); - - Dt_OutboundOrderDetail outboundOrderDetails = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrderDetail>() .Where(x => x.BatchNo == stockInfo.Details.FirstOrDefault().BatchNo) .First(); if (outboundOrderDetails == null) return WebResponseContent.Instance.Error("鏈壘鍒板嚭搴撳崟淇℃伅"); Dt_OutboundOrder inboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>() - .Where(x => x.Id == outboundOrderDetails.OrderId) - .Includes(x => x.Details) - .First(); + .Where(x => x.Id == outboundOrderDetails.OrderId) + .Includes(x => x.Details) + .First(); if (inboundOrder == null) return WebResponseContent.Instance.Error("鏈壘鍒板嚭搴撳崟淇℃伅"); // 2. 澶勭悊鍑哄簱璁㈠崟璇︽儏 @@ -859,7 +858,7 @@ UpdateOutboundOrderDetails(stockInfo, inboundOrder, ref outboundOrderDetails); // 3. 鎵ц鏍稿績鍑哄簱閫昏緫 - return ExecuteOutboundLogic(task, stockInfo, locationInfo, outboundOrderDetails); + return ExecuteOutboundLogic(task, stockInfo, locationInfo, outboundOrderDetails, inboundOrder); } catch (Exception ex) { @@ -917,18 +916,18 @@ //} private WebResponseContent ExecuteOutboundLogic(Dt_Task task, Dt_StockInfo stockInfo, - Dt_LocationInfo locationInfo, Dt_OutboundOrderDetail outboundOrderDetails) + Dt_LocationInfo locationInfo, Dt_OutboundOrderDetail outboundOrderDetails,Dt_OutboundOrder inboundOrder) { try { _unitOfWorkManage.BeginTran(); - - + ///鏇存柊鍑哄簱鍗� + _outboundService.OutboundOrderService.Repository.UpdateData(inboundOrder); // 鏇存柊鍑哄簱璁㈠崟璇︽儏 _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails); // 鏇存柊搴撳瓨鐘舵�� - UpdateStockStatus(stockInfo, locationInfo); + DeleteAndMoveIntoHtStockStatus(stockInfo); // 鏇存柊璐т綅鐘舵�� UpdateLocationStatus(locationInfo); @@ -971,8 +970,7 @@ throw; } } - private void UpdateOutboundOrderDetails(Dt_StockInfo stockInfo, Dt_OutboundOrder inboundOrder, - ref Dt_OutboundOrderDetail inboundOrderDetail) + private void UpdateOutboundOrderDetails(Dt_StockInfo stockInfo, Dt_OutboundOrder inboundOrder,ref Dt_OutboundOrderDetail inboundOrderDetail) { int overCount = inboundOrder.Details.Count(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()); inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.BatchNo == stockInfo.Details.FirstOrDefault()?.BatchNo); @@ -1000,16 +998,10 @@ } } - private void UpdateStockStatus(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo) + private void DeleteAndMoveIntoHtStockStatus(Dt_StockInfo stockInfo) { - stockInfo.LocationCode = ""; - stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt(); - stockInfo.Details.ForEach(x => - { - x.Status = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt(); - }); - _stockRepository.StockInfoRepository.UpdateData(stockInfo); - _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details); + _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); + _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); } private void UpdateLocationStatus(Dt_LocationInfo locationInfo) @@ -1021,6 +1013,7 @@ private void CompleteTask(Dt_Task task) { + task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt(); BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); } @@ -1129,48 +1122,46 @@ private void SendNormalOutboundToWMS(Dt_Task task, Dt_OutboundOrder outboundOrder, Dt_StockInfoDetail stockInfoDetail, Dt_OutboundOrderDetail outDetail) - { - - - //List<Dt_StockInfo> StockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == task.WarehouseId).Includes(x => x.Details).Where(x => x.Details.Any(v => v.BatchNo == outDetail.BatchNo)).ToList(); - List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.OrderNo == outboundOrder.OrderNo); - - - if (outStockLockInfos.Count == 0) throw new Exception("鏈壘鍒板簱瀛樹俊鎭�"); - - // 鏋勫缓鍥炰紶鏁版嵁锛屽皢鎵�鏈夊尮閰嶇殑搴撳瓨鏄庣粏鍔犲叆 DetailList - var passBack = new HouseoutboundPassBack { - ApiType = "InventoryAllocateController", - Method = "AsrsFinishedStockCount", - Parameters = new List<HouseoutboundPassBack.datas> - { - new HouseoutboundPassBack.datas - { - Value = new List<HouseoutboundPassBack.datas.data1> - { - new HouseoutboundPassBack.datas.data1 + + //List<Dt_StockInfo> StockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == task.WarehouseId).Includes(x => x.Details).Where(x => x.Details.Any(v => v.BatchNo == outDetail.BatchNo)).ToList(); + List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.OrderNo == outboundOrder.OrderNo); + + if (outStockLockInfos.Count == 0) throw new Exception("鏈壘鍒板簱瀛樹俊鎭�"); + + // 鏋勫缓鍥炰紶鏁版嵁锛屽皢鎵�鏈夊尮閰嶇殑搴撳瓨鏄庣粏鍔犲叆 DetailList + var passBack = new HouseoutboundPassBack { - No = outboundOrder.OrderNo, - OutWareHouse = task.Roadway, - TransactionCode = outboundOrder.TransactionCode, - InoutType = outboundOrder.OrderType, - OrderType = outboundOrder.InoutType, - DetailList = outStockLockInfos.Select(d => new HouseoutboundPassBack.datas.data1.Inbound - { - LinId = d.LinId?? "", - LPN_No = d.PalletCode, - MaterielCode = d.MaterielCode?? "", - OrderQuantity = d.OrderQuantity, - BatchNo = d.BatchNo, - FinishQty = d.OrderQuantity, - LocationName = d.LocationCode - }) - .ToList() + ApiType = "InventoryAllocateController", + Method = "AsrsFinishedStockCount", + Parameters = new List<HouseoutboundPassBack.datas> + { + new HouseoutboundPassBack.datas + { + Value = new List<HouseoutboundPassBack.datas.data1> + { + new HouseoutboundPassBack.datas.data1 + { + No = outboundOrder.OrderNo, + OutWareHouse = task.Roadway, + TransactionCode = outboundOrder.TransactionCode, + InoutType = outboundOrder.OrderType, + OrderType = outboundOrder.InoutType, + DetailList = outStockLockInfos.Select(d => new HouseoutboundPassBack.datas.data1.Inbound + { + LinId = d.LinId?? "", + LPN_No = d.PalletCode, + MaterielCode = d.MaterielCode?? "", + OrderQuantity = d.OrderQuantity, + BatchNo = d.BatchNo, + FinishQty = d.OrderQuantity, + LocationName = d.LocationCode + }) + .ToList() + } } } - } } }; -- Gitblit v1.9.3