From 5cff51cedf8320fd944e7748a09166f4c061b58b Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 17 九月 2025 09:04:56 +0800
Subject: [PATCH] 库存统计增加所属仓库和所属区域查询条件

---
 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs |  128 ++++++++++++++++++++++++++++++++----------
 1 files changed, 97 insertions(+), 31 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index f6d72cd..6296674 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -514,7 +514,7 @@
                         CreateTime = a.CreateTime,
                         UpdateTime = a.UpdateTime
 
-                    }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total);
+                    }).OrderByDescending(a => a.ASNNo).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total);
                 count = total;
                 return data;
             }
@@ -534,8 +534,17 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅锛岃鏍稿疄");
                 }
+                var skuInfo = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == asnDetail.SkuNo);
+                if (skuInfo == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌鐗╂枡淇℃伅锛岃鏍稿疄");
+                }
+                if (string.IsNullOrEmpty(skuInfo.PackagNo))
+                {
+                    throw new Exception("鏈煡璇㈠埌鐗╂枡鐨勫寘瑁呬俊鎭紝璇锋牳瀹�");
+                }
 
-                var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnDetail.PackagNo);
+                var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo);
                 if (packInfo == null)
                 {
                     throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏涓殑鐗╂枡鍖呰淇℃伅");
@@ -597,17 +606,31 @@
                 {
                     throw new Exception("鍗曟嵁鏁伴噺涓嶈兘灏忎簬绛変簬0");
                 }
-                if (string.IsNullOrWhiteSpace(asnList.LotNo))
+                //if (string.IsNullOrWhiteSpace(asnList.LotNo))
+                //{
+                //    throw new Exception("鍗曟嵁鎵规鍙蜂笉鑳戒负绌�");
+                //}
+                if (string.IsNullOrWhiteSpace(asnList.BoxCodeStr))
                 {
-                    throw new Exception("鍗曟嵁鎵规鍙蜂笉鑳戒负绌�");
+                    throw new Exception("鍗曟嵁绠辩爜甯稿�间笉鑳戒负绌�");
                 }
                 var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0");
                 if (asn == null)
                 {
                     throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
                 }
-
-                var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnList.PackagNo);
+                //鍖呰缂栫爜
+                var packagNo = asnList.PackagNo;
+                if (string.IsNullOrEmpty(packagNo))
+                {
+                    var skuInfo = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == asnList.SkuNo);
+                    if (skuInfo == null)
+                    {
+                        throw new Exception("鏈煡璇㈠埌鐗╂枡淇℃伅");
+                    }
+                    packagNo = skuInfo.PackagNo;
+                }
+                var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == packagNo);
                 if (pack == null)
                 {
                     throw new Exception("鏈煡璇㈠埌褰撳墠鍗曟嵁涓墿鏂欑殑鍖呰淇℃伅");
@@ -657,7 +680,7 @@
                 {
                     if (pack.L2Name != "鎵�")
                     {
-                        packLevel = 2;
+                        packLevel = 1;//JC34椤圭洰鍙湁涓�绾ф爣绛�
                         bNum = Convert.ToInt32(pack.L2Num);
                     }
                 }
@@ -710,22 +733,29 @@
                     #endregion
 
                     int labelNum = 1; //鐢熶骇鏉$爜鏁伴噺
-                    if (zNum > 0)
-                    {
-                        labelNum = int.Parse(Math.Ceiling(qty / zNum).ToString());//鏍囩鏁伴噺
-                    }
-                    else
-                    {
-                        throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏄竴绾у寘瑁咃紝鏈煡璇㈠埌涓�绾у寘瑁呬俊鎭�");
-                    }
+                    //if (zNum > 0)
+                    //{
+                        labelNum = int.Parse(Math.Ceiling(qty / bNum).ToString());//鏍囩鏁伴噺
+                    //}
+                    //else
+                    //{
+                    //    throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏄竴绾у寘瑁咃紝鏈煡璇㈠埌涓�绾у寘瑁呬俊鎭�");
+                    //}
 
                     #region 鑾峰彇/鐢熸垚鎵规鍙�
 
                     string maxLotNoStr = ""; //鎵规鍙�
                     string maxBoxCode = ""; //绠辩爜鍙�
-                    
-                    maxLotNoStr = asnList.LotNo;
-                    maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo);
+
+                    maxLotNoStr = asnList.BoxCodeStr;//asnList.LotNo;
+                    if (string.IsNullOrEmpty(asnList.LotNo))
+                    {
+                        maxBoxCode = label.Where(m => m.ASNDetailNo == asnList.Id).Max(a => a.BoxNo);
+                    }
+                    else
+                    {
+                        maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo);
+                    }
                     #endregion
 
                     for (int i = 1; i <= labelNum; i++)
@@ -734,30 +764,30 @@
                         if (i == labelNum)
                         {
                             // 鏈�鍚庝竴涓潯鐮�
-                            var s = zNum * (i - 1);
-                            if (zNum > qty - s)
+                            var s = bNum * (i - 1);
+                            if (bNum > qty - s)
                             {
                                 boxQty = qty - s;// 鏁伴噺
                             }
                             else
                             {
-                                boxQty = zNum;// 鏁伴噺
+                                boxQty = bNum;// 鏁伴噺
                             }
                         }
                         else
                         {
-                            boxQty = zNum;         // 鏁伴噺
+                            boxQty = bNum;         // 鏁伴噺
                         }
 
                         //鑾峰彇绠辩爜
                         if (string.IsNullOrWhiteSpace(maxBoxCode))
                         {
-                            var str = "B" + maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按  2302010001000001
+                            var str = "B" + maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按  B 230201 0001  000001
                             maxBoxCode = str;
                         }
                         else
                         {
-                            maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0');
+                            maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length-6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0');
                         }
 
                         // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
@@ -771,7 +801,7 @@
                             Status = "0",
                             SkuNo = asnList.SkuNo,
                             SkuName = asnList.SkuName,
-                            LotNo = maxLotNoStr,
+                            LotNo = asnList.LotNo,//maxLotNoStr,
                             Standard = asnList.Standard,
                             PackageStandard = packStr,
                             SupplierLot = supplierLot,
@@ -779,14 +809,26 @@
                             BitBoxMark = bNum > boxQty ? "1" : "0",
                             InspectStatus = "0",
 
-                            ProductionTime = DateTime.Parse(productionTime),
-                            StoreTime = DateTime.Parse(storeTime),
-                            ExpirationTime = DateTime.Parse(expirationTime),
+                            ProductionTime = null,
+                            StoreTime = null,
+                            ExpirationTime = null,
 
                             Origin = "WMS鐢熸垚",
                             CreateUser = userId,
                             CreateTime = DateTime.Now,
                         };
+                        if (!string.IsNullOrEmpty(productionTime))
+                        {
+                            labelModel.ProductionTime = DateTime.Parse(productionTime);
+                        }
+                        if (!string.IsNullOrEmpty(storeTime))
+                        {
+                            labelModel.StoreTime = DateTime.Parse(storeTime);
+                        }
+                        if (!string.IsNullOrEmpty(expirationTime))
+                        {
+                            labelModel.ExpirationTime = DateTime.Parse(expirationTime);
+                        }
 
                         Db.Insertable(labelModel).ExecuteCommand();
                         modelList.Add(labelModel);
@@ -931,14 +973,26 @@
                                 BitBoxMark = bNum > boxQty ? "1" : "0",
                                 InspectStatus = "0",
 
-                                ProductionTime = DateTime.Parse(productionTime),
-                                StoreTime = DateTime.Parse(storeTime),
-                                ExpirationTime = DateTime.Parse(expirationTime),
+                                ProductionTime = null,
+                                StoreTime = null,
+                                ExpirationTime = null,
 
                                 Origin = "WMS鐢熸垚",
                                 CreateUser = userId,
                                 CreateTime = DateTime.Now,
                             };
+                            if (!string.IsNullOrEmpty(productionTime))
+                            {
+                                labelModel.ProductionTime = DateTime.Parse(productionTime);
+                            }
+                            if (!string.IsNullOrEmpty(storeTime))
+                            {
+                                labelModel.StoreTime = DateTime.Parse(storeTime);
+                            }
+                            if (!string.IsNullOrEmpty(expirationTime))
+                            {
+                                labelModel.ExpirationTime = DateTime.Parse(expirationTime);
+                            }
 
                             Db.Insertable(labelModel).ExecuteCommand();
                             modelList.Add(labelModel);
@@ -1026,6 +1080,7 @@
 
                             model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                             model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                            model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                             model.Qty = dataList.Sum(m => m.Qty);// 鏁伴噺
 
@@ -1081,6 +1136,7 @@
 
                                 model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                                 model.Qty = data1.Sum(m => m.Qty);// 鏁伴噺
 
@@ -1133,6 +1189,7 @@
 
                             model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                             model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                            model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                             model.Qty = data.Qty;// 鏁伴噺
 
@@ -1185,6 +1242,7 @@
 
                                 model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                                 model.Qty = data.Qty;// 鏁伴噺
 
@@ -1251,6 +1309,7 @@
 
                                     model1.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                     model1.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                    model1.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
                                     model1.Qty = dataList.Sum(m => m.Qty);// 鏁伴噺
                                     model1.BoxNo = data.BoxNo;                 // 绠卞彿     
 
@@ -1270,6 +1329,7 @@
 
                                     model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                     model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                    model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
                                     model.Qty = data.Qty;// 鏁伴噺
                                     model.BoxNo = data.BoxNo3;                 // 鏀彿     
 
@@ -1317,6 +1377,7 @@
 
                                     model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                     model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                    model.ProductionTime = boxData.ProductionTime;//鐢熶骇鏃ユ湡
                                     model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
                                     model.BoxNo = boxData.BoxNo;                 // 鏀彿     
 
@@ -1339,6 +1400,7 @@
 
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model1.ProductionTime = item.ProductionTime;//鐢熶骇鏃ユ湡
                                         model1.Qty = item.Qty;// 鏁伴噺
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 
@@ -1385,6 +1447,7 @@
 
                                 model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.ProductionTime = boxData.ProductionTime;//鐢熶骇鏃ユ湡
                                 model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
                                 model.BoxNo = boxData.BoxNo;                 // 鏀彿     
 
@@ -1409,6 +1472,7 @@
 
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model.ProductionTime = item.ProductionTime;//鐢熶骇鏃ユ湡
                                         model1.Qty = item.Qty;     // 鏁伴噺
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 
@@ -1477,6 +1541,7 @@
 
                                 model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.ProductionTime = boxData.ProductionTime;//鐢熶骇鏃ユ湡
                                 model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
                                 model.BoxNo = boxData.BoxNo;                 // 鏀彿     
 
@@ -1505,6 +1570,7 @@
 
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model.ProductionTime = item.ProductionTime;//鐢熶骇鏃ユ湡
                                         model1.Qty = item.Qty;// 鏁伴噺
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 

--
Gitblit v1.8.0