From cbf4a8f42cd0d7e4ff994ee7f9b9e9c33b9c39c8 Mon Sep 17 00:00:00 2001 From: Demo <Demo@DESKTOP-CPA90BF> Date: 星期三, 13 三月 2024 19:32:29 +0800 Subject: [PATCH] PDA取样出库拣货 --- Wms/Wms/Controllers/PdaSoController.cs | 31 ++++ Wms/Model/ModelVm/PdaVm/PdaSoVm.cs | 6 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 173 +++++++++++++++++------- Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs | 15 ++ Pda/View/SoSetting/SampleOut.html | 162 ++++++++++++---------- 5 files changed, 257 insertions(+), 130 deletions(-) diff --git a/Pda/View/SoSetting/SampleOut.html b/Pda/View/SoSetting/SampleOut.html index e54a94e..b223c7e 100644 --- a/Pda/View/SoSetting/SampleOut.html +++ b/Pda/View/SoSetting/SampleOut.html @@ -549,8 +549,9 @@ var form = layui.form; /* 鏍囩鍒囨崲浠g爜 */ - var xianshiyemian = 0; + /* 鏍囩鍒囨崲浠g爜 */ + var sampleType = ""; //0 搴撳唴鍙栨牱锛� 1 搴撳墠鍙栨牱 $('#kuneilabel').hide(); $('#kuqianlabel').hide(); @@ -655,6 +656,17 @@ $('#kuneilabel').show(); $('#kuneiQty').show(); $('#kuqianlabel').hide(); + updateBillList(); + if ($('#bar').val() == "") { + clear1(); + return; + } else { + updateSkuLotNoList(); + updateQtyList(); + getBar(); + GetBoxInfo(); + } + sampleType = 0; } if (res.data == "1") {//搴撳墠鍙栨牱 $('#kuqianlabel').show(); @@ -662,17 +674,10 @@ $('#kuneiQty').hide(); updateAsnBillList(); + GetBoxInfo(); + sampleType = 1; } - // updateBillList(); - // if ($('#bar').val() == "") { - // clear1(); - // return; - // } else { - // updateSkuLotNoList(); - // updateQtyList(); - // getBar(); - // GetBoxInfo(); - // } + }else { //涓嶆垚鍔� layer.msg(res.msg, { icon: 2, @@ -941,73 +946,78 @@ //鍗曟嫞璐э紙纭鎸夐挳锛� form.on('submit(formPickScatter)', function (data) { - if ($('#bar').val() == "") { - layer.msg("璇烽�夋嫨鍑哄簱鍗�", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); return; - } - if ($('#bar').val() == "") { - layer.msg("璇烽�夋嫨鐗╂枡-鎵规", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); return; - } - if ($('#palletNo').val() == "") { - layer.msg("璇疯緭鍏ユ墭鐩樼爜", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); return; - } - if(isContinue=="0"){ - if ($('#boxNo').val() == "") { - layer.msg("璇疯緭鍏ョ鐮�", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); return; - } - if ($('#boxQty').val() == "") { - layer.msg("绠卞唴鏁伴噺涓虹┖锛屼笉鑳芥嫞璐�", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - if(($('#boxNo3').val() != "" && ($('#pickQty1').val() != "" || $('#pickQty1').val() != 0))){ - layer.msg("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏ワ紒", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - if($('#pickQty1').val() != "" && $('#pickQty1').val()>parseInt($('#pickQty').val())){ - layer.msg("鎷h揣鏁伴噺涓嶈兘澶т簬寰呮嫞鏁伴噺锛�", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - } - // let boxQty = parseInt($('#boxQty').val()) - // let qty = parseInt($('#qty').val()) - // if (qty <= 0 || qty > boxQty) { - // layer.msg("鎷h揣鏁伴噺闇�澶т簬0锛屽苟涓斾笉鑳借秴杩囧緟鎷g鍐呮暟閲�", { - // icon: 2, - // time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - // }); - // return; - // } + if (sampleType == "0") { + if ($('#bar').val() == "") { + layer.msg("璇烽�夋嫨鍑哄簱鍗�", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); return; + } + if ($('#bar').val() == "") { + layer.msg("璇烽�夋嫨鐗╂枡-鎵规", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); return; + } + if ($('#palletNo').val() == "") { + layer.msg("璇疯緭鍏ユ墭鐩樼爜", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); return; + } + if(isContinue=="0"){ + if ($('#boxNo').val() == "") { + layer.msg("璇疯緭鍏ョ鐮�", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); return; + } + if ($('#boxQty').val() == "") { + layer.msg("绠卞唴鏁伴噺涓虹┖锛屼笉鑳芥嫞璐�", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if(($('#boxNo3').val() != "" && ($('#pickQty1').val() != "" || $('#pickQty1').val() != 0))){ + layer.msg("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏ワ紒", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if($('#pickQty1').val() != "" && $('#pickQty1').val()>parseInt($('#pickQty').val())){ + layer.msg("鎷h揣鏁伴噺涓嶈兘澶т簬寰呮嫞鏁伴噺锛�", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + } + + + } + else if (sampleType == "1") { + + } + else { + layer.msg("绫诲瀷閿欒锛岃鍒锋柊椤甸潰閲嶈瘯", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + + if (canPickBox == false) { - if (canPickBox == false) { + layer.msg("璇锋眰鏈畬鎴愶紝涓嶈閲嶅璇锋眰", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } - layer.msg("璇锋眰鏈畬鎴愶紝涓嶈閲嶅璇锋眰", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - - reqPickScatter() + reqPickScatter() return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� }); diff --git a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs index c422d89..7d8997a 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs @@ -58,6 +58,12 @@ /// </summary> public string Type { get; set; } + + /// <summary> + /// 鍏ュ簱搴撳崟鍙� 搴撳墠鍙栨牱鍑哄簱浣跨敤 + /// </summary> + public string AsnNo { get; set; } + } /// <summary> diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 211d77a..785537c 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -1388,39 +1388,17 @@ } - //鍑哄簱鍗� - var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo); - BllExportNoticeDetail noticeDetail2; - if (notice != null && notice.Status != "6") - { - - } - else - { - //鍒涘缓鍑哄簱鍗曞強鏄庣粏 - - } - - //鍑哄簱鍗曟槑缁� - var noticeDetail = Db.Queryable<BllExportNoticeDetail>() - .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); - if (noticeDetail == null) - { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); - } - //鍑哄簱鍒嗛厤淇℃伅 - var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo); - if (allot2 == null) - { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); - } - - //搴撳瓨鏄庣粏 - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId); + var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNNo == asnNo && m.PalletNo == palletNo); if (stockDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); + throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑搴撳瓨鏄庣粏淇℃伅锛�"); + } + + var sku = Db.Queryable<SysMaterials>().First(m=>m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo); + if (sku == null) + { + throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏涓婄殑鐗╂枡淇℃伅"); } //搴撳瓨鎬昏〃 var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); @@ -1429,11 +1407,111 @@ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } + //鍑哄簱鍗� + var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo); + //鍒涘缓鍑哄簱鍗� + if (notice == null || (notice != null && notice.Status != "6")) + { + var billNo = ""; + var bl = true; + do + { + //鑾峰彇鑷鍗曟嵁鍙� + billNo = new Common().GetMaxNo("SO"); + var no = billNo; + bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no); + } while (bl); + + + var addNotice = new BllExportNotice() + { + SONo = billNo, + Type = "3", + Status = "4", + Origin = "WMS", + + IsWave = "0", + WaveNo = "", + IsDespatch = "0", + CompleteTime = DateTime.Now, + CreateUser = 0, + }; + + var n = Db.Insertable(addNotice).ExecuteCommand(); + notice = addNotice; + } + + //鍒涘缓鍑哄簱鍗曟槑缁� + var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.SONo == notice.SONo && m.SkuNo == stockDetail.SkuNo && m.LotNo.Contains(stockDetail.LotNo)); + if (noticeDetail == null) + { + var addNoticeDetail = new BllExportNoticeDetail() + { + SONo = notice.SONo, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + LotNo = stockDetail.LotNo, + LotText = "", + Qty = 0, + AllotQty = 0, + FactQty = 0, + CompleteQty = 0, + PackagNo = sku.PackagNo, + Price = sku.Price, + //Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * pickQty, + IsBale = "", + IsBelt = "", + SupplierLot = stock.SupplierLot, + IsWave = "0", + WaveNo = "", + IsIssueLotNo = "0", + Status = "3", + CreateUser = 0, + }; + var m = Db.Insertable(addNoticeDetail).ExecuteCommand(); + noticeDetail = addNoticeDetail; + } + //鍑哄簱鍒嗛厤淇℃伅 + var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo); + if (allot2 == null) + { + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var addAllot = new BllExportAllot + { + SONo = notice.SONo, + WaveNo = "", + SODetailNo = noticeDetail.Id, + StockId = stockDetail.Id, + LotNo = stockDetail.LotNo, + LotText = stockDetail.LotText, + SupplierLot = stockDetail.SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + PalletNo = palletNo, + IsBale = "0" , //鏄惁瑁瑰寘 + IsBelt = "0" , //鏄惁鎵撳甫 + + Qty = 0, + CompleteQty = 0, + + Status = "5", + LogisticsId = notice.LogisticsId, + IsAdvance = "0", + OutMode = "",//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + + var fp = Db.Insertable(addAllot).ExecuteCommand(); + allot2 = addAllot; + } + + #endregion - - - //鍒ゆ柇鏄暎鏀嫞璐ц繕鏄暟閲忔嫞璐� var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� @@ -1547,6 +1625,8 @@ } pickQty += item.Qty; } + + //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅 if (biaoShi == "1") { @@ -1561,31 +1641,14 @@ Db.Insertable(comList).ExecuteCommand(); //淇敼鍑哄簱鍒嗛厤淇℃伅 - allot.CompleteQty += pickQty; - allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; - if (allot.Status == "5") - { - //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴� - } + allot2.Qty += pickQty; + allot2.CompleteQty += pickQty; Db.Updateable(allot).ExecuteCommand(); //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� stockDetail.Qty -= pickQty; - stockDetail.LockQty -= pickQty; - if (stockDetail.Qty == stockDetail.LockQty) - { - stockDetail.Status = "2"; - } - else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0) - { - stockDetail.Status = "1"; - } - else - { - stockDetail.Status = "0"; - } - + if (stockDetail.Qty <= 0) { Db.Deleteable(stockDetail).ExecuteCommand(); @@ -1595,7 +1658,6 @@ Db.Updateable(stockDetail).ExecuteCommand(); } stock.Qty -= pickQty; - stock.LockQty -= pickQty; if (stock.Qty <= 0) { Db.Deleteable(stock).ExecuteCommand(); @@ -1617,6 +1679,9 @@ Db.Updateable(pallet).ExecuteCommand(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� + noticeDetail.Qty += pickQty; + noticeDetail.AllotQty += pickQty; + noticeDetail.FactQty += pickQty; noticeDetail.CompleteQty += pickQty; Db.Updateable(noticeDetail).ExecuteCommand(); diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs index 0b1509b..a1481b1 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs @@ -129,5 +129,20 @@ /// <returns>鍗曟嵁闆嗗悎</returns> List<string> GetAsnNoByPallet(string palletNo); + /// <summary> + /// 鍙栨牱鍑哄簱鎷h揣(鏍囩) + /// </summary> + /// <param name="soType">鎷h揣绫诲瀷 0搴撳唴鍙栨牱锛屾湁鍑哄簱鍗曞強鍒嗛厤淇℃伅锛� 1搴撳墠鍙栨牱锛屽弽鍚戞坊鍔犲嚭搴撳崟鍙婂垎閰嶄俊鎭�</param> + /// <param name="soNo">鍑哄簱鍗�</param> + /// <param name="soDetailId">鍑哄簱鍗曟槑缁�</param> + /// <param name="palletNo">鎵樼洏鍙�</param> + /// <param name="boxNo">澶栫鐮�</param> + /// <param name="boxNo3">鍐呯鐮�</param> + /// <param name="pickQty1">鎷h揣鏁伴噺</param> + /// <param name="asnNo">鍏ュ簱鍗�</param> + /// <param name="userId">鎿嶄綔浜篒D</param> + void SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, + string boxNo3, string pickQty1, string asnNo, int userId); + } } diff --git a/Wms/Wms/Controllers/PdaSoController.cs b/Wms/Wms/Controllers/PdaSoController.cs index bc959a6..b357110 100644 --- a/Wms/Wms/Controllers/PdaSoController.cs +++ b/Wms/Wms/Controllers/PdaSoController.cs @@ -393,7 +393,38 @@ } } + /// <summary> + /// 鍙栨牱鍑哄簱鎷h揣(鏍囩) + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public IActionResult SampleSoSetPick(PdaSoVm model) + { + try + { + var claimsIdentity = this.User.Identity as ClaimsIdentity; + if (claimsIdentity == null) + { + throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); + } + string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; + if (string.IsNullOrWhiteSpace(UserId)) + { + throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); + } + int uid = Convert.ToInt32(UserId); + _pdaSoSvc.SampleSoSetPick(model.Type,model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, model.AsnNo, uid); + + return Ok(new { data = "", code = 0, msg = "(鏍囩)鍙栨牱鍑哄簱鎷h揣" }); + } + catch (Exception e) + { + return Ok(new { data = "", code = 1, msg = "(鏍囩)鍙栨牱鍑哄簱鎷h揣閿欒锛�" + e.Message }); + } + + } } -- Gitblit v1.8.0