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