From 91adcbb1b813198d0a81ca03257bf94d43d4ef60 Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期五, 22 十一月 2024 13:42:16 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs | 199 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 150 insertions(+), 49 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs" index fa6b4e8..02e4916 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs" @@ -17,6 +17,7 @@ using static WIDESEA_ITaskInfoService.ITaskService; using MailKit.Search; using WIDESEA_Common.Log; +using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; namespace WIDESEA_TaskInfoService { @@ -654,7 +655,6 @@ public WebResponseContent ManualOutbound(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); - try { List<Dt_StockInfo> dtstockt = new List<Dt_StockInfo>(); @@ -666,72 +666,81 @@ Dt_StockInfo stockt = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == saveModel.DelKeys[i].ToString()); if (stockt.StockStatus == (int)StockStatusEmun.宸插叆搴�) { - Dt_StockInfoDetail stocktdetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockt.Id); - stockt.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾; - if (stockt.MaterialType != (int)InventoryMaterialType.绌烘墭) + if(stockt.MaterialType != (int)InventoryMaterialType.鍘熸潗鏂�) { - stocktdetail.Status = (int)StockStatusEmun.鍑哄簱閿佸畾; - } - Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockt.LocationCode); - if (locationinfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt()) - { - locationinfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); - } - else if (locationinfo.LocationStatus == LocationStatusEnum.Pallet.ObjToInt()) - { - locationinfo.LocationStatus = LocationStatusEnum.PalletLock.ObjToInt(); - } - string LocationName = "R01-002-044-001-01"; - if (stockt.MaterialType == (int)InventoryMaterialType.鍘熸潗鏂�) - { + Dt_StockInfoDetail stocktdetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockt.Id); + stockt.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾; + if (stockt.MaterialType != (int)InventoryMaterialType.绌烘墭) + { + stocktdetail.Status = (int)StockStatusEmun.鍑哄簱閿佸畾; + } + Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockt.LocationCode); if (locationinfo.RoadwayNo == "1") { - LocationName = "R01-002-041-011-01"; + if (locationinfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt()) + { + locationinfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); + } + else if (locationinfo.LocationStatus == LocationStatusEnum.Pallet.ObjToInt()) + { + locationinfo.LocationStatus = LocationStatusEnum.PalletLock.ObjToInt(); + } + string LocationName = "R01-002-044-001-01"; + if (stockt.MaterialType == (int)InventoryMaterialType.绌烘墭) + { + LocationName = "R01-002-043-001-01"; + } + Dt_LocationInfo newTargetAddress; + newTargetAddress = _basicService.LocationInfoService.GetLocationplatform(LocationName); + Dt_Task dt_Task = new() + { + PalletCode = stockt.PalletCode, + TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), + Roadway = newTargetAddress.RoadwayNo, + TaskType = TaskTypeEnum.Outbound.ObjToInt(), + TaskStatus = InTaskStatusEnum.InNew.ObjToInt(), + SourceAddress = locationinfo.LocationCode, + TargetAddress = newTargetAddress.LocationCode, + CurrentAddress = locationinfo.LocationCode, + NextAddress = newTargetAddress.LocationCode, + Grade = 1, + Creater = "WMS", + Depth = locationinfo.Depth, + CreateDate = DateTime.Now, + }; + dtstockt.Add(stockt); + locations.Add(locationinfo); + taskdt.Add(dt_Task); + if (stockt.MaterialType != (int)InventoryMaterialType.绌烘墭) + { + dtstocktdetail.Add(stocktdetail); + } } else { - LocationName = "R02-002-027-011-01"; + return content = WebResponseContent.Instance.Error($"鍑哄簱澶辫触锛屽彧鍙嚭搴�1宸烽亾鐨勬墭鐩樺拰鎴愬搧"); } } - Dt_LocationInfo newTargetAddress; - newTargetAddress = _basicService.LocationInfoService.GetLocationplatform(LocationName); - Dt_Task dt_Task = new() + else { - PalletCode = stockt.PalletCode, - TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), - Roadway = newTargetAddress.RoadwayNo, - TaskType = TaskTypeEnum.Outbound.ObjToInt(), - TaskStatus = InTaskStatusEnum.InNew.ObjToInt(), - SourceAddress = locationinfo.LocationCode, - TargetAddress = newTargetAddress.LocationCode, - CurrentAddress = locationinfo.LocationCode, - NextAddress = newTargetAddress.LocationCode, - Grade = 1, - Creater = "WMS", - Depth = locationinfo.Depth, - CreateDate = DateTime.Now, - }; - dtstockt.Add(stockt); - locations.Add(locationinfo); - taskdt.Add(dt_Task); - if (stockt.MaterialType != (int)InventoryMaterialType.绌烘墭) - { - dtstocktdetail.Add(stocktdetail); + return content = WebResponseContent.Instance.Error($"鍑哄簱澶辫触锛岃涓嶈閫夋嫨鍘熸潗鏂欏嚭搴�"); } } else { - return content = WebResponseContent.Instance.Error($"鍑哄簱澶辫触锛岃搴撳瓨淇℃伅涓嶅彲杩涜鍑哄簱"); + return content = WebResponseContent.Instance.Error($"鍑哄簱澶辫触锛岃閫夋嫨宸插叆搴撶殑搴撳瓨淇℃伅杩涜鍑哄簱"); } } var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, taskdt, "涓嬪彂浠诲姟鍏ュ簱"); _unitOfWorkManage.BeginTran(); - _stockService.StockInfoService.Repository.UpdateData(dtstockt); - _stockService.StockInfoDetailService.Repository.UpdateData(dtstocktdetail); - _basicService.LocationInfoService.Repository.UpdateData(locations); - BaseDal.AddData(taskdt); - + if (dtstockt.Count > 0) + { + _stockService.StockInfoService.Repository.UpdateData(dtstockt); + _stockService.StockInfoDetailService.Repository.UpdateData(dtstocktdetail); + _basicService.LocationInfoService.Repository.UpdateData(locations); + BaseDal.AddData(taskdt); + } _unitOfWorkManage.CommitTran(); content = WebResponseContent.Instance.OK(); return content; @@ -744,6 +753,98 @@ } } + + public WebResponseContent ManualOutbound2(SaveModel saveModel) + { + WebResponseContent content = new WebResponseContent(); + try + { + List<Dt_StockInfo> dtstockt = new List<Dt_StockInfo>(); + List<Dt_LocationInfo> locations = new List<Dt_LocationInfo>(); + List<Dt_Task> taskdt = new List<Dt_Task>(); + List<Dt_StockInfoDetail> dtstocktdetail = new List<Dt_StockInfoDetail>(); + + + List<Dt_StockInfo> stocktData= _stockService.StockInfoService.Repository.QueryData(x=>x.StockStatus== (int)StockStatusEmun.宸插叆搴� && x.MaterialType == (int)InventoryMaterialType.鍘熸潗鏂�); + List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x =>x.LocationStatus == LocationStatusEnum.InStock.ObjToInt()); + List<Dt_StockInfoDetail> StockInfoDetailData = _stockService.StockInfoDetailService.Repository.QueryData(x => x.Status == (int)StockStatusEmun.宸插叆搴�); + + + string json = saveModel.DelKeys[0].ToString(); + List<string> palletCodes = JsonConvert.DeserializeObject<List<string>>(json); + + foreach (var palletCode in palletCodes) + { + Dt_StockInfo stockt = stocktData.FirstOrDefault(x => x.PalletCode == palletCode); + if (stockt !=null) + { + if (stockt.StockStatus == (int)StockStatusEmun.宸插叆搴�) + { + Dt_StockInfoDetail stocktdetail = StockInfoDetailData.FirstOrDefault(x => x.StockId == stockt.Id); + if(stocktdetail != null) + { + Dt_LocationInfo locationinfo = locationinfoData.FirstOrDefault(x => x.LocationCode == stockt.LocationCode); + if(locationinfo != null) + { + stockt.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾; + if (locationinfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt()) + { + locationinfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); + } + Dt_Task dt_Task = new() + { + PalletCode = stockt.PalletCode, + TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), + Roadway = locationinfo.RoadwayNo, + TaskType = TaskTypeEnum.Outbound.ObjToInt(), + TaskStatus = InTaskStatusEnum.InNew.ObjToInt(), + SourceAddress = locationinfo.LocationCode, + TargetAddress = locationinfo.RoadwayNo == "2" ? "R02-002-027-011-01" : "R01-002-041-011-01", + CurrentAddress = locationinfo.LocationCode, + NextAddress = locationinfo.RoadwayNo == "2" ? "R02-002-027-011-01" : "R01-002-041-011-01", + Grade = 1, + Creater = "WMS", + Depth = locationinfo.Depth, + CreateDate = DateTime.Now, + PLCTo = int.Parse(saveModel.DelKeys[1].ToString()), + + }; + dtstockt.Add(stockt); + locations.Add(locationinfo); + taskdt.Add(dt_Task); + dtstocktdetail.Add(stocktdetail); + } + } + } + } + } + var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, taskdt, "涓嬪彂浠诲姟鍏ュ簱"); + _unitOfWorkManage.BeginTran(); + if(dtstockt.Count > 0) + { + _stockService.StockInfoService.Repository.UpdateData(dtstockt); + _stockService.StockInfoDetailService.Repository.UpdateData(dtstocktdetail); + _basicService.LocationInfoService.Repository.UpdateData(locations); + BaseDal.AddData(taskdt); + } + _unitOfWorkManage.CommitTran(); + content = WebResponseContent.Instance.OK($"鍑哄簱鎴愬姛锛屽嚭搴撴�绘暟锛歿palletCodes.Count}锛屾垚鍔熸暟閲忥細{dtstockt.Count}"); + return content; + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + return content = WebResponseContent.Instance.Error($"鍑哄簱澶辫触锛屾姤閿欎俊鎭細{ex.Message}"); + throw; + } + } + + public class PalletCodeList + { + public string PalletCode { get; set; } + } + + public (Dt_Task?, Dt_LocationInfo?) AddRelocationTask(Dt_LocationInfo location, Dt_StockInfo stockInfo, Dt_Task task) { Dt_LocationInfo? locationInfos = _basicService.LocationInfoService.AssignLocation(location.RoadwayNo); -- Gitblit v1.9.3