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 |   99 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 82 insertions(+), 17 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index ace488b..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("鏈煡璇㈠埌褰撳墠鍗曟嵁涓墿鏂欑殑鍖呰淇℃伅");
@@ -723,9 +746,16 @@
 
                     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++)
@@ -760,7 +790,6 @@
                             maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length-6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0');
                         }
 
-                        DateTime? storeTime2 = null;
                         // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
                         var labelModel = new BllBoxInfo()
                         {
@@ -772,7 +801,7 @@
                             Status = "0",
                             SkuNo = asnList.SkuNo,
                             SkuName = asnList.SkuName,
-                            LotNo = maxLotNoStr,
+                            LotNo = asnList.LotNo,//maxLotNoStr,
                             Standard = asnList.Standard,
                             PackageStandard = packStr,
                             SupplierLot = supplierLot,
@@ -780,14 +809,26 @@
                             BitBoxMark = bNum > boxQty ? "1" : "0",
                             InspectStatus = "0",
 
-                            ProductionTime = DateTime.Parse(productionTime),
-                            StoreTime = string.IsNullOrWhiteSpace(storeTime) ? storeTime2 : 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);
@@ -932,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);
@@ -1027,6 +1080,7 @@
 
                             model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                             model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                            model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                             model.Qty = dataList.Sum(m => m.Qty);// 鏁伴噺
 
@@ -1082,6 +1136,7 @@
 
                                 model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                                 model.Qty = data1.Sum(m => m.Qty);// 鏁伴噺
 
@@ -1134,6 +1189,7 @@
 
                             model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                             model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                            model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                             model.Qty = data.Qty;// 鏁伴噺
 
@@ -1186,6 +1242,7 @@
 
                                 model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
 
                                 model.Qty = data.Qty;// 鏁伴噺
 
@@ -1252,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;                 // 绠卞彿     
 
@@ -1271,6 +1329,7 @@
 
                                     model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                     model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                    model.ProductionTime = data.ProductionTime;//鐢熶骇鏃ユ湡
                                     model.Qty = data.Qty;// 鏁伴噺
                                     model.BoxNo = data.BoxNo3;                 // 鏀彿     
 
@@ -1318,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;                 // 鏀彿     
 
@@ -1340,6 +1400,7 @@
 
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model1.ProductionTime = item.ProductionTime;//鐢熶骇鏃ユ湡
                                         model1.Qty = item.Qty;// 鏁伴噺
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 
@@ -1386,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;                 // 鏀彿     
 
@@ -1410,6 +1472,7 @@
 
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model.ProductionTime = item.ProductionTime;//鐢熶骇鏃ユ湡
                                         model1.Qty = item.Qty;     // 鏁伴噺
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 
@@ -1478,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;                 // 鏀彿     
 
@@ -1506,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