From 3f9d7eb876f6d60d92e7f8a71240097b6ac50eb6 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期五, 23 五月 2025 18:16:42 +0800 Subject: [PATCH] 修改测试问题 --- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 524 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 430 insertions(+), 94 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index c5960a5..ad302b4 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -22,6 +22,9 @@ using System.Xml.Schema; using ZXing.OneD; using System.Threading.Tasks; +using System.Security.Policy; +using Newtonsoft.Json; +using Utility.Tools; namespace WMS.BLL.BllPdaServer { @@ -1720,7 +1723,7 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model) + public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model,string url) { try { @@ -1728,27 +1731,307 @@ { throw new Exception("璇锋壂鎻忓绠辨潯鐮�!"); } - string sqlString = $@"SELECT - ASNNo, - BoxNo, - SkuNo, - SkuName, - LotNo, - BitBoxMark, - SUM(Qty) as Qty - FROM BllBoxInfo - WHERE IsDel = '0' - AND Status='0' - AND BoxNo = '{model.BoxNo}' - GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; - var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); - - if (models.Count == 0) + if (string.IsNullOrWhiteSpace(model.ASNNo)) { - throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); + throw new Exception("璇烽�夋嫨鍏ュ簱鍗曞彿!"); } + var noticeList = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.ASNNo == model.ASNNo).ToList(); + if (noticeList.Count != 1) + { + throw new Exception("鍏ュ簱鍗曞彿閲嶅!"); + } + var notice = noticeList.First(); + if (notice.Type == "0") //鎴愬搧鍏ュ簱 + { + string sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); - return models; + if (models.Count != 0) + { + return models; + } + else + { + var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).ToList(); + + if (boxInfo.Count == 0) + { + models = GetFMBindBoxInfos(model.BoxNo, url); + return models; + } + else + { + if (boxInfo.Count(m => m.Status != "0") > 0) + { + throw new Exception("绠辩爜淇℃伅鐘舵�佷笉鏄瓑寰呮墽琛�"); + } + return models; + } + + + + } + } + else if (notice.Type == "1" || notice.Type == "4") //閲囪喘鍏ュ簱 + { + string sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + + if (models.Count != 0) + { + return models; + } + else + { + throw new Exception("娌℃湁鏌ヨ鍒扮鐮佷俊鎭�"); + } + } + else if (notice.Type == "3") //閫�璐у叆搴� + { + string sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + + if (models.Count != 0) + { + return models; + } + else + { + sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo2 = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + if (models.Count != 0) + { + return models; + } + else + { + sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo3 = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + if (models.Count != 0) + { + return models; + } + } + } + + #region 鑾峰彇鏈�鍚庝竴娆″嚭搴撴嫞璐т腑鐨勭鐮佷俊鎭� + + var comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList(); + if (comBox.Count == 0) + { + comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo2 == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList(); + if (comBox.Count == 0) + { + comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo3 == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList(); + } + } + var i = 0;//寰幆娆℃暟 + DateTime time = DateTime.Now; + var allotId = 0; + foreach (var item in comBox) + { + var comBoxList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == item).OrderByDescending(m => m.CreateTime).First(); + if (i == 0) + { + time = comBoxList.CreateTime; + allotId = comBoxList.ExportAllotId; + } + else if (comBoxList.CreateTime > time) + { + time = comBoxList.CreateTime; + allotId = comBoxList.ExportAllotId; + } + i++; + } + if (allotId != 0) + { + var addComBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allotId).ToList(); + var addComList = addComBox.GroupBy(m => m.BoxNo).ToList(); + var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == addComBox.First().SkuNo); + var pNum = 0; + var bNum = 0; + new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum); + var boxList = new List<BllBoxInfo>(); + foreach (var com in addComList) + { + //绠卞唴鎬绘暟鍜� + var qtySum = addComBox.Where(m => m.BoxNo == com.Key).Sum(m => m.CompleteQty); + var bitBox = "1"; + if (qtySum == bNum) + { + bitBox = "0"; + } + foreach (var item in com) + { + if (item.BoxNo != model.BoxNo) + { + if (item.BoxNo2 != model.BoxNo) + { + if (item.BoxNo3 != model.BoxNo) + { + continue; + } + } + } + var boxInfo = new BllBoxInfo() + { + BoxNo = item.BoxNo, + BoxNo2 = item.BoxNo2, + BoxNo3 = item.BoxNo3, + SkuNo = item.SkuNo, + SkuName = item.SkuName, + LotNo = item.LotNo, + LotText = item.LotText, + Qty = (decimal)item.CompleteQty, + FullQty = bNum, + //ProductionTime = , + //ExpirationTime = , + InspectMark = "0", + InspectStatus = "0", + BitBoxMark = bitBox, + Origin = "WMS", + Status = "0", + CreateUser = 0 + }; + boxList.Add(boxInfo); + } + + } + Db.Insertable(boxList).ExecuteCommand(); + + string sqlString2 = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2); + + if (models2.Count != 0) + { + return models2; + } + else + { + sqlString2 = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo2 = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2); + if (models2.Count != 0) + { + return models2; + } + else + { + sqlString2 = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo3 = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2); + if (models2.Count != 0) + { + return models2; + } + } + } + + + } + + throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); + #endregion + + } + else + { + throw new Exception("鍗曟嵁绫诲瀷閿欒"); + } } catch (Exception ex) { @@ -1761,21 +2044,83 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public List<BoxInfoDto> GetFMBindBoxInfos(string boxno) + public List<BoxInfoDto> GetFMBindBoxInfos(string boxno,string url) { try { #region 绠辩爜璇锋眰鎺ュ彛锛屾寮忕郴缁熸斁寮� - /*var jsonData = JsonConvert.SerializeObject(boxno); + var data = new + { + BoxCode = boxno + }; + var jsonData = JsonConvert.SerializeObject(data); var response = HttpHelper.DoPost(url, jsonData, "绠辩爜淇℃伅璇锋眰", "FM"); - var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 - if (obj.Success != 0) + var obj = JsonConvert.DeserializeObject<FumaGetBoxModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.Success != "0") { throw new Exception("璇锋眰澶辫触" + obj.Message); - }*/ + } #endregion + var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == obj.Product.SkuNo); + var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 + var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 + if (sku == null) + { + throw new Exception($"鏈煡璇㈠埌鐗╂枡{obj.Product.SkuNo}淇℃伅"); + } + new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum); + if (pNum == 0 || bNum == 0) + { + throw new Exception($"{sku.SkuNo}鐗╁搧鍖呰鏈壘鍒帮紒"); + } + + var boxList = new List<BllBoxInfo>(); + var comTime = DateTime.Now; + //娣诲姞绠辩爜淇℃伅 + foreach (var box in obj.Product.BoxInfoList) + { + foreach (var box2 in box.BoxInfo2List) + { + foreach (var box3 in box2.BoxInfo3List) + { + var boxInfo = new BllBoxInfo() + { + BoxNo = box.BoxNo, + BoxNo2 = box2.BoxNo2, + BoxNo3 = box3.BoxNo3, + Qty = box3.Qty, + BitBoxMark = box.BitBoxMark, + + ASNNo = "", + //ASNDetailNo = noticeDetail.Id, + OrderCode = "",//notice.OrderCode + //BindNo = bindId, + //PalletNo = model.PallNo, + FullQty = bNum, + Status = "2", + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + LotNo = obj.Product.LotNo, + LotText = obj.Product.LotText, + ProductionTime = DateTime.Parse(obj.Product.ProductionTime), + ExpirationTime = DateTime.Parse(obj.Product.ExpirationTime), + //CompleteTime = "", + InspectMark = "0", + InspectStatus = "0", + Origin = "璧嬬爜", + CreateTime = comTime, + CreateUser = 0 + }; + boxList.Add(boxInfo); + } + + } + } + Db.Fastest<BllBoxInfo>().BulkCopy(boxList); + + string sqlString = $@"SELECT ASNNo, BoxNo, @@ -2313,35 +2658,35 @@ }; var id = Db.Insertable(modelpb).ExecuteReturnIdentity(); - var modelbb = new BllBoxInfo - { - ASNNo = "", - ASNDetailNo = null, - BindNo = id, - PalletNo = model.PalletNo, - PalletNo2 = model.PalletNo2, - PalletNo3 = model.PalletNo3, - Status = "2", - CompleteTime = DateTime.Now, - Qty = (int)model.Qty, - FullQty = pNum, - SkuNo = sku.SkuNo, - SkuName = sku.PackagNo, - LotNo = "", - LotText = "", - SupplierLot = "", - InspectStatus = sku.IsInspect, - Origin = "PDA", - BoxNo = "", - BoxNo2 = "", - BoxNo3 = "", - InspectMark = "", - BitBoxMark = "0", + //var modelbb = new BllBoxInfo + //{ + // ASNNo = "", + // ASNDetailNo = null, + // BindNo = id, + // PalletNo = model.PalletNo, + // PalletNo2 = model.PalletNo2, + // PalletNo3 = model.PalletNo3, + // Status = "2", + // CompleteTime = DateTime.Now, + // Qty = (int)model.Qty, + // FullQty = pNum, + // SkuNo = sku.SkuNo, + // SkuName = sku.SkuName, + // LotNo = "", + // LotText = "", + // SupplierLot = "", + // InspectStatus = sku.IsInspect, + // Origin = "PDA", + // BoxNo = "", + // BoxNo2 = "", + // BoxNo3 = "", + // InspectMark = "", + // BitBoxMark = "0", - CreateUser = (int)model.CreateUser, - CreateTime = datetime - }; - Db.Insertable(modelbb).ExecuteCommand(); + // CreateUser = (int)model.CreateUser, + // CreateTime = datetime + //}; + //Db.Insertable(modelbb).ExecuteCommand(); //娣诲姞搴撳瓨 @@ -2389,35 +2734,35 @@ #region 搴撳瓨绠辩爜鏄庣粏 - var box2 = new DataBoxInfo() - { - StockDetailId = sdId1, - BindNo = modelpb.Id, - BoxNo = modelbb.BoxNo, - BoxNo2 = modelbb.BoxNo2, - BoxNo3 = modelbb.BoxNo3, - PalletNo = modelbb.PalletNo, - PalletNo2 = modelbb.PalletNo2, - PalletNo3 = modelbb.PalletNo3, - Qty = modelbb.Qty, - FullQty = modelbb.FullQty, - Status = "2", - LotNo = modelbb.LotNo, - LotText = modelbb.LotText, - SkuNo = modelbb.SkuNo, - SkuName = modelbb.SkuName, - Standard = sku.Standard, - ProductionTime = modelbb.ProductionTime, - SupplierLot = modelbb.SupplierLot, - InspectStatus = sku.IsInspect, - InspectMark = modelbb.InspectMark, - BitBoxMark = modelbb.BitBoxMark, - ExpirationTime = modelbb.ExpirationTime, + //var box2 = new DataBoxInfo() + //{ + // StockDetailId = sdId1, + // BindNo = modelpb.Id, + // BoxNo = modelbb.BoxNo, + // BoxNo2 = modelbb.BoxNo2, + // BoxNo3 = modelbb.BoxNo3, + // PalletNo = modelbb.PalletNo, + // PalletNo2 = modelbb.PalletNo2, + // PalletNo3 = modelbb.PalletNo3, + // Qty = modelbb.Qty, + // FullQty = modelbb.FullQty, + // Status = "2", + // LotNo = modelbb.LotNo, + // LotText = modelbb.LotText, + // SkuNo = modelbb.SkuNo, + // SkuName = modelbb.SkuName, + // Standard = sku.Standard, + // ProductionTime = modelbb.ProductionTime, + // SupplierLot = modelbb.SupplierLot, + // InspectStatus = sku.IsInspect, + // InspectMark = modelbb.InspectMark, + // BitBoxMark = modelbb.BitBoxMark, + // ExpirationTime = modelbb.ExpirationTime, - CreateUser = 0, - CreateTime = datetime - }; - Db.Insertable(box2).ExecuteCommand(); + // CreateUser = 0, + // CreateTime = datetime + //}; + //Db.Insertable(box2).ExecuteCommand(); #endregion #region 搴撳瓨 @@ -5606,16 +5951,7 @@ //淇敼搴撳瓨鏄庣粏淇℃伅 Db.Updateable(item).ExecuteCommand(); } - //鑾峰彇鎷h揣淇℃伅 - var alotr = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.PalletNo == model.PalletNo && a.Status == "4"); - if (alotr != null) - { - alotr.Status = "5"; //5 宸插畬鎴� - alotr.UpdateUser = model.CreateUser; //淇敼浜� - alotr.UpdateTime = serverTime; //淇敼鏃堕棿 - //淇敼鎷h揣淇℃伅 - Db.Updateable(alotr).ExecuteCommand(); - } + #region 浠诲姟鍙婄粍鎵樹俊鎭� //鍒涘缓浠诲姟淇℃伅 var taskNo = new Common().GetMaxNo("TK"); @@ -5660,15 +5996,15 @@ var upShelf = new BllPalletUpShelf() { TaskNo = exTask.TaskNo, - TraceNo = bindInfo.ASNNo, - PalletNo = bindInfo.PalletNo, + TraceNo = bindInfo== null? "": bindInfo.ASNNo, + PalletNo = model.PalletNo, SkuNo = palletupinfo.SkuNo, SkuName = palletupinfo.SkuName, LotNo = palletupinfo.LotNo, Status = "2", LocatNo = model.LocatNo, - WareHouseNo = bindInfo.WareHouseNo, - RoadwayNo = bindInfo.RoadwayNo, + WareHouseNo = storageLocat.WareHouseNo, + RoadwayNo = storageLocat.RoadwayNo, AreaNo = storageLocat.AreaNo, CreateUser = 0, -- Gitblit v1.8.0