From 1403ec7e5c62962fd5d20123defedae97a4abb75 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期五, 02 二月 2024 09:12:49 +0800 Subject: [PATCH] 1 --- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 303 ++++++++++++++++++++++++++------------------------ 1 files changed, 158 insertions(+), 145 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 5d15df5..fddc652 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -132,7 +132,7 @@ public List<BoxInfoDto> GetBoxInfos(BoxInfoVm model) { try - { + { string sqlString = string.Empty; if (model.IsHuiKu == 0) { @@ -517,7 +517,7 @@ #region 鏄惁鍥炴祦鍏ュ簱 int iscount = 0; //搴撳瓨鏄庣粏淇℃伅 - var stockDetail = Db.Queryable<DataStockDetail>().Where(a => a.IsDel == "0" && a.PalletNo == model.PalletNo).ToList(); + var stockDetail = Db.Queryable<DataStockDetail>().Where(a => a.IsDel == "0" && a.PalletNo == model.PalletNo).ToList(); //楠岃瘉搴撳瓨鏄惁鎷ユ湁璇ユ墭淇℃伅 if (stockDetail != null && stockDetail.Count > 0) { @@ -635,7 +635,7 @@ strMsg = "-1:绠辩爜淇℃伅涓嶅瓨鍦紝璇锋牳鏌�!"; return strMsg; } - else + else { // 鏀瑰彉绠辨敮鍏崇郴琛ㄧ姸鎬侊細宸插叆搴� sqlString = $"Update BllBoxInfo set Status = '2' where PalletNo = '{model.PalletNo}' and ASNNo = '{model.ASNNo}' and Status = '1'"; @@ -644,7 +644,7 @@ pallQty = boxinfo2.Sum(w => w.Qty); //鍏ュ簱鍗曟槑缁嗗畬鎴愭暟閲忓鍔� noticeItem.CompleteQty += pallQty; - } + } //鍒ゆ柇鍏ュ簱鏁伴噺澧炲姞鍚庢槸鍚﹀ぇ浜庣瓑浜庡崟鎹暟閲� if (noticeItem.CompleteQty >= noticeItem.Qty) { @@ -703,7 +703,7 @@ sqlString = "select sum(qty) from BllBoxInfo where isdel = 0 and "; sqlString += $"BindNo = '{palletbindInfo.Id}'"; int inspectQty = Db.Ado.GetInt(sqlString); - + // 娣诲姞搴撳瓨鏄庣粏琛� detailModel = new DataStockDetail() { @@ -1109,7 +1109,7 @@ try { //鍏ュ簱涓� - var aSNNoList= Db.Ado.SqlQuery<string>($"SELECT DISTINCT ASNNo from BllPalletBind where IsDel=0 and Status=0 and PalletNo='{palletNo}' ").ToList(); + var aSNNoList = Db.Ado.SqlQuery<string>($"SELECT DISTINCT ASNNo from BllPalletBind where IsDel=0 and Status=0 and PalletNo='{palletNo}' ").ToList(); if (aSNNoList.Count <= 0) { //搴撳鎵樼洏鎴栧钩搴撴墭鐩� @@ -1166,7 +1166,7 @@ //鎷兼墭鍏ュ簱 public void CompleteInStockLing(PdaLingAsnVm model, int userId) { - try + try { if (string.IsNullOrWhiteSpace(model.AsnNo)) { @@ -1203,10 +1203,10 @@ foreach (var item in boxinfo) { if (!string.IsNullOrEmpty(item.PalletNo)) - { + { throw new Exception("-1:璇ョ鐮佸凡缁戝畾鍏朵粬鎵樼洏锛岃鍏堣В缁戞墭鐩�!"); } - bNum += item.Qty; + bNum += item.Qty; } if (bNum == boxinfo[0].FullQty) { @@ -1267,7 +1267,7 @@ //淇敼鍏ュ簱鍗曟�诲崟淇℃伅 arrival.Status = "2"; arrival.CompleteTime = serverTime; - arrival.UpdateUser =userId; + arrival.UpdateUser = userId; arrival.UpdateTime = serverTime; Db.Updateable(arrival).ExecuteCommand(); } @@ -1373,7 +1373,7 @@ #region 搴撳瓨鏄庣粏琛� var boxinfoItem = boxinfo.First(); - var detailModel = Db.Queryable<DataStockDetail>() .First(it => it.PalletNo == model.PalletNo && it.LotNo == arrivalnotice.LotNo + var detailModel = Db.Queryable<DataStockDetail>().First(it => it.PalletNo == model.PalletNo && it.LotNo == arrivalnotice.LotNo && it.SkuNo == arrivalnotice.SkuNo && it.Standard == arrivalnotice.Standard && it.IsDel == "0"); var stId = 0; if (detailModel == null || detailModel.Id == 0) @@ -1512,10 +1512,10 @@ sqlString += $"group by BoxNo,SkuNo,SkuName,LotNo; "; } else - { + { sqlString = "select BoxNo, SkuNo,SkuName, LotNo, SUM(Qty) as Qty from BLLLabelBoxNo where IsDel = '0' "; sqlString += $"and BoxNo = '{model.BoxNo}' and IsUse='0' "; - sqlString += $"group by BoxNo,SkuNo,SkuName,LotNo; "; + sqlString += $"group by BoxNo,SkuNo,SkuName,LotNo; "; } var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); if (models == null) @@ -1548,19 +1548,24 @@ { throw new Exception("-1:鎵樼洏鍙蜂笉鍙负绌�!"); } - if (string.IsNullOrEmpty(model.BoxNo)) + //鍒ゆ柇鐗╂枡鏁伴噺鏄惁涓�0 涓�0鍒ゆ柇绠辩爜淇℃伅 涓嶄负0缁х画 + if (model.SkuQty == 0) { - throw new Exception("-1:绠辩爜淇℃伅涓嶅彲涓虹┖!"); - } - - if (model.IsContinue == "1") - { - if (string.IsNullOrWhiteSpace(model.TailBoxNo)) + if (string.IsNullOrEmpty(model.BoxNo)) { - throw new Exception("-1:寮�鍚繛缁粍鎵樻椂锛屽熬绠辩爜淇℃伅涓嶅彲涓虹┖!"); + throw new Exception("-1:绠辩爜淇℃伅涓嶅彲涓虹┖!"); } + if (model.IsContinue == "1") + { + if (string.IsNullOrWhiteSpace(model.TailBoxNo)) + { + throw new Exception("-1:寮�鍚繛缁粍鎵樻椂锛屽熬绠辩爜淇℃伅涓嶅彲涓虹┖!"); + } + + } } + #endregion // 楠岃瘉鍏ュ簱鍗曟�昏〃 var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == model.AsnNo); @@ -1571,11 +1576,11 @@ //鍏ュ簱鍗曠被鍨嬶紝0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� if (notice.Type == "0" || notice.Type == "3" || notice.Type == "5" || notice.Type == "6") { - BindPalletForBox(model,userId,origin); + BindPalletForBox(model, userId, origin); } else { - BindPalletForLabelBox(model,userId); + BindPalletForLabelBox(model, userId); } } catch (Exception ex) @@ -1774,7 +1779,7 @@ // 鏇存敼鍏ュ簱鍗曟槑缁嗗凡缁勬暟閲� var sqlString = string.Empty; - sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{factQty}' where id = '{model.AsnDetailId}';"; + sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{bind.Qty}' where id = '{model.AsnDetailId}';"; Db.Ado.ExecuteCommand(sqlString); // 鏇存敼鍏ュ簱鍗曞強鍏ュ簱鏄庣粏鐘舵�� @@ -1821,27 +1826,31 @@ { throw new Exception("-1:鎵樼洏鍙蜂笉鍙负绌�!"); } - if (string.IsNullOrEmpty(model.BoxNo)) + if (model.SkuQty == 0) { - throw new Exception("-1:绠辩爜淇℃伅涓嶅彲涓虹┖!"); - } - - if (model.IsContinue == "1") - { - if (string.IsNullOrWhiteSpace(model.TailBoxNo)) + if (string.IsNullOrEmpty(model.BoxNo)) { - throw new Exception("-1:寮�鍚繛缁粍鎵樻椂锛屽熬绠辩爜淇℃伅涓嶅彲涓虹┖!"); + throw new Exception("-1:绠辩爜淇℃伅涓嶅彲涓虹┖!"); } - } - if (model.IsContinue == "0" && model.IsContinue2 == "1") - { - if (string.IsNullOrWhiteSpace(model.TailBoxNo01)) + if (model.IsContinue == "1") { - throw new Exception("-1:寮�鍚繛缁粍鎵樻椂锛屼簩绾х爜灏剧爜淇℃伅涓嶅彲涓虹┖!"); - } + if (string.IsNullOrWhiteSpace(model.TailBoxNo)) + { + throw new Exception("-1:寮�鍚繛缁粍鎵樻椂锛屽熬绠辩爜淇℃伅涓嶅彲涓虹┖!"); + } + } + if (model.IsContinue == "0" && model.IsContinue2 == "1") + { + if (string.IsNullOrWhiteSpace(model.TailBoxNo01)) + { + throw new Exception("-1:寮�鍚繛缁粍鎵樻椂锛屼簩绾х爜灏剧爜淇℃伅涓嶅彲涓虹┖!"); + } + + } } + #endregion Db.BeginTran(); @@ -1923,7 +1932,7 @@ PalletNo = model.PalletNo, PalletNo2 = "", PalletNo3 = "", - Qty = 0, + Qty = model.SkuQty, FullQty = pNum, Status = "0", Type = "0", @@ -1949,119 +1958,123 @@ } #region 绠辩爜淇℃伅 - - var msgStr = $"绠卞彿涓簕model.BoxNo}"; var boxInfoList = new List<BllLabelBoxNo>(); - //棣栫 - var boxInfo = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.IsUse == "0" && m.Level == "1").ToList(); - if (boxInfo.Count == 0) - { - throw new Exception("-1:绠辩爜淇℃伅涓嶅瓨鍦�!"); - } - //鏄惁杩炵画缁勬墭 - if (model.IsContinue == "1") - { - boxInfoList.AddRange(boxInfo); - //灏剧 - var boxInfo2 = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.IsUse == "0" && m.Level == "1").ToList(); - if (boxInfo2.Count == 0) - { - throw new Exception("-1:灏剧鐮佷俊鎭笉瀛樺湪!"); - } - boxInfoList.AddRange(boxInfo2); - var sql = $"select * from BllLabelBoxNo where IsDel = '0' and IsUse = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}' and Level='1'; "; - var list = Db.Ado.SqlQuery<BllLabelBoxNo>(sql); - boxInfoList.AddRange(list); - - //鎵惧埌鐩稿叧鐨勪簩绾х爜 - foreach (var item in boxInfoList) - { - sql = $"select * from BllLabelBoxNo where IsDel = '0' and IsUse = '0' and ParentBoxNo='{item.BoxNo}' and Level = '2' "; - list = Db.Ado.SqlQuery<BllLabelBoxNo>(sql); - boxInfoList.AddRange(list); - } - msgStr += $"灏剧鍙蜂负{model.TailBoxNo}"; - } - else - { - var boxInfoList2 = new List<BllLabelBoxNo>();//鎵�鏈変簩绾х爜 - decimal boxQty = 0.00m;//绠卞唴浜岀骇鐮佹暟閲� - if (!string.IsNullOrEmpty(model.BoxNo01)) - { - //浜岀骇鐮侀鐮� - var box01Info = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo01 && m.IsUse == "0" && m.Level == "2" && (string.IsNullOrEmpty(m.ParentBoxNo) || m.ParentBoxNo == model.BoxNo)).ToList(); - if (box01Info.Count == 0) - { - throw new Exception("-1:浜岀骇鐮侀鐮佷俊鎭笉瀛樺湪!"); - } - boxInfoList2.AddRange(box01Info); - if (model.IsContinue2 == "1") - { - //浜岀骇鐮佸熬鐮� - var box01Info2 = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo01 && m.IsUse == "0" && m.Level == "2" && (string.IsNullOrEmpty(m.ParentBoxNo) || m.ParentBoxNo == model.BoxNo)).ToList(); - if (box01Info2.Count == 0) - { - throw new Exception("-1:浜岀骇鐮佸熬鐮佷俊鎭笉瀛樺湪!"); - } - boxInfoList2.AddRange(box01Info2); - //涓棿鐮� - var sql = $"select * from BllLabelBoxNo where IsDel = '0' and IsUse = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}' and Level='2' and (ParentBoxNo='' || ParentBoxNo='{model.BoxNo}'); "; - var list = Db.Ado.SqlQuery<BllLabelBoxNo>(sql); - boxInfoList2.AddRange(list); - } - foreach (var item in boxInfoList2) - { - item.ParentBoxNo = model.BoxNo; - boxQty += item.Qty; - } - boxInfoList.AddRange(boxInfoList2); - foreach (var item in boxInfo) - { - item.Qty = boxQty; - } - } - boxInfoList.AddRange(boxInfo); - } - #endregion - #endregion - // 鏇存敼绠辨敮鍏崇郴琛� + var msgStr = $"绠卞彿涓簕model.BoxNo}"; decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲� - var boxGroup = boxInfoList.GroupBy(m => m.BoxNo).ToList(); - foreach (var g in boxGroup) + if (model.SkuQty == 0) { - decimal boxFullQty = 0.00m;//绠卞唴鎬绘暟閲� - foreach (var box in g) + //棣栫 + var boxInfo = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.IsUse == "0" && m.Level == "1").ToList(); + if (boxInfo.Count == 0) { - if (box.IsUse != "0") - { - continue; - } - //绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎 - if (box.SkuNo != detail.SkuNo || box.LotNo != detail.LotNo) - { - throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!"); - } - - box.ASNNo = model.AsnNo; - box.ASNDetailNo = model.AsnDetailId; - box.IsUse = "1"; - box.CompleteTime = DateTime.Now; - box.UpdateTime = DateTime.Now; - box.UpdateUser = userId; - - if (box.ParentBoxNo == "" && box.Level == "1") - { - factQty += box.Qty; - boxFullQty += box.Qty; - } + throw new Exception("-1:绠辩爜淇℃伅涓嶅瓨鍦�!"); } - if (boxFullQty > bNum) + //鏄惁杩炵画缁勬墭 + if (model.IsContinue == "1") { - throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒"); + boxInfoList.AddRange(boxInfo); + //灏剧 + var boxInfo2 = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.IsUse == "0" && m.Level == "1").ToList(); + if (boxInfo2.Count == 0) + { + throw new Exception("-1:灏剧鐮佷俊鎭笉瀛樺湪!"); + } + boxInfoList.AddRange(boxInfo2); + var sql = $"select * from BllLabelBoxNo where IsDel = '0' and IsUse = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}' and Level='1'; "; + var list = Db.Ado.SqlQuery<BllLabelBoxNo>(sql); + boxInfoList.AddRange(list); + + //鎵惧埌鐩稿叧鐨勪簩绾х爜 + foreach (var item in boxInfoList) + { + sql = $"select * from BllLabelBoxNo where IsDel = '0' and IsUse = '0' and ParentBoxNo='{item.BoxNo}' and Level = '2' "; + list = Db.Ado.SqlQuery<BllLabelBoxNo>(sql); + boxInfoList.AddRange(list); + } + msgStr += $"灏剧鍙蜂负{model.TailBoxNo}"; } + else + { + var boxInfoList2 = new List<BllLabelBoxNo>();//鎵�鏈変簩绾х爜 + decimal boxQty = 0.00m;//绠卞唴浜岀骇鐮佹暟閲� + if (!string.IsNullOrEmpty(model.BoxNo01)) + { + //浜岀骇鐮侀鐮� + var box01Info = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo01 && m.IsUse == "0" && m.Level == "2" && (string.IsNullOrEmpty(m.ParentBoxNo) || m.ParentBoxNo == model.BoxNo)).ToList(); + if (box01Info.Count == 0) + { + throw new Exception("-1:浜岀骇鐮侀鐮佷俊鎭笉瀛樺湪!"); + } + boxInfoList2.AddRange(box01Info); + if (model.IsContinue2 == "1") + { + //浜岀骇鐮佸熬鐮� + var box01Info2 = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo01 && m.IsUse == "0" && m.Level == "2" && (string.IsNullOrEmpty(m.ParentBoxNo) || m.ParentBoxNo == model.BoxNo)).ToList(); + if (box01Info2.Count == 0) + { + throw new Exception("-1:浜岀骇鐮佸熬鐮佷俊鎭笉瀛樺湪!"); + } + boxInfoList2.AddRange(box01Info2); + //涓棿鐮� + var sql = $"select * from BllLabelBoxNo where IsDel = '0' and IsUse = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}' and Level='2' and (ParentBoxNo='' || ParentBoxNo='{model.BoxNo}'); "; + var list = Db.Ado.SqlQuery<BllLabelBoxNo>(sql); + boxInfoList2.AddRange(list); + } + foreach (var item in boxInfoList2) + { + item.ParentBoxNo = model.BoxNo; + boxQty += item.Qty; + } + boxInfoList.AddRange(boxInfoList2); + foreach (var item in boxInfo) + { + item.Qty = boxQty; + } + } + boxInfoList.AddRange(boxInfo); + } + + + + #endregion + #endregion + // 鏇存敼绠辨敮鍏崇郴琛� + var boxGroup = boxInfoList.GroupBy(m => m.BoxNo).ToList(); + foreach (var g in boxGroup) + { + decimal boxFullQty = 0.00m;//绠卞唴鎬绘暟閲� + foreach (var box in g) + { + if (box.IsUse != "0") + { + continue; + } + //绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎 + if (box.SkuNo != detail.SkuNo || box.LotNo != detail.LotNo) + { + throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!"); + } + + box.ASNNo = model.AsnNo; + box.ASNDetailNo = model.AsnDetailId; + box.IsUse = "1"; + box.CompleteTime = DateTime.Now; + box.UpdateTime = DateTime.Now; + box.UpdateUser = userId; + + if (box.ParentBoxNo == "" && box.Level == "1") + { + factQty += box.Qty; + boxFullQty += box.Qty; + } + } + if (boxFullQty > bNum) + { + throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒"); + } + } + Db.Updateable(boxInfoList).ExecuteCommand(); } - Db.Updateable(boxInfoList).ExecuteCommand(); - // 鏇存柊鎵樼洏缁戝畾琛� bind.Qty += factQty; if (bind.FullQty < bind.Qty) @@ -2077,7 +2090,7 @@ // 鏇存敼鍏ュ簱鍗曟槑缁嗗凡缁勬暟閲� var sqlString = string.Empty; - sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{factQty}' where id = '{model.AsnDetailId}';"; + sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{bind.Qty}' where id = '{model.AsnDetailId}';"; Db.Ado.ExecuteCommand(sqlString); // 鏇存敼鍏ュ簱鍗曞強鍏ュ簱鏄庣粏鐘舵�� -- Gitblit v1.8.0