From 65ecd34acf0a3d33e6c1e10c93e351716d749e2f Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 06 三月 2024 14:51:29 +0800
Subject: [PATCH] 修改出库单编辑页面

---
 Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs |  103 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 83 insertions(+), 20 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
index 770214d..3593c83 100644
--- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
@@ -862,22 +862,48 @@
                     }
                 }
                 var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo))
-                    .GroupBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
+                    .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
 
-                SysRoadwayUseLog useLog = Db.Ado.SqlQuerySingle<SysRoadwayUseLog>("select Top(1) * from SysRoadwayUseLog where IsDel=0 order by CreateTime desc"); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰�
+                SysRoadwayUseLog useLog = Db.Queryable<SysRoadwayUseLog>().Where(m=>m.IsDel =="0" && roadList.Contains(m.RoadwayNo)).OrderByDescending(l => l.Id).First(); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰�
 
-                var bindNum = Db.Queryable<BllPalletBind>()
-                    .Where(m => m.IsDel == "0" && m.Status == "0" && !string.IsNullOrWhiteSpace(m.RoadwayNo))
-                    .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
+                #region 纭畾宸烽亾鎺掑簭
+
+                List<string> roadList2 = new List<string>();
+                List<string> roadSmall = new List<string>();
+                List<string> roadLarge = new List<string>();
+                if (useLog != null)
+                {
+                    roadList2.Add(useLog.RoadwayNo);
+                    foreach (var r in roadList)
+                    {
+                        if (r == useLog.RoadwayNo)
+                        {
+                            continue;
+                        }
+                        //濡傛灉缁撴灉涓�0锛屽垯璇存槑涓や釜瀛楃涓茬浉绛夛紱
+                        //濡傛灉缁撴灉灏忎簬0锛屽垯璇存槑绗竴涓瓧绗︿覆灏忎簬绗簩涓瓧绗︿覆锛�
+                        //濡傛灉缁撴灉澶т簬0锛屽垯璇存槑绗竴涓瓧绗︿覆澶т簬绗簩涓瓧绗︿覆銆�
+                        var bol = String.CompareOrdinal(r, useLog.RoadwayNo);
+                        if (bol < 0)
+                        {
+                            roadSmall.Add(r);
+                        }
+                        if (bol > 0)
+                        {
+                            roadLarge.Add(r);
+                        }
+                    }
+                    roadList2.AddRange(roadLarge);
+                    roadList2.AddRange(roadSmall);
+                }
+
+                roadList = roadList2;
+                #endregion
+
 
                 var roadNo = "";
                 if (laneAllot == 0)//璺冲贩閬撳钩鍧囧垎閰�
                 {
-                    //濡傛灉鍚岀骇宸烽亾鏈夊鏉″垯鏌ヤ笂娆′綅缃棩蹇�
-                    if (roadList.Count > 1)
-                    {
-                        useLog = Db.Queryable<SysRoadwayUseLog>().OrderByDescending(l => l.Id).First();
-                    }
                     //鍙栧悇宸烽亾鎵�鏈夋帓绗竴涓悎閫備綅
                     foreach (var l in roadList)
                     {
@@ -888,7 +914,11 @@
                         }
 
                         var locateCount = Db.Queryable<SysStorageLocat>()
-                            .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo)).Count();
+                            .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l).Count();
+
+                        var bindNum = Db.Queryable<BllPalletBind>()
+                            .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo== l)
+                            .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
                         if (locateCount - bindNum > 0)
                         {
                             roadNo = l;
@@ -905,19 +935,39 @@
                     {
                         if (useLog != null)
                         {
-                            roadNo = useLog.RoadwayNo;
+                            var locateCount = Db.Queryable<SysStorageLocat>()
+                                .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == useLog.RoadwayNo).Count();
+
+                            var bindNum = Db.Queryable<BllPalletBind>()
+                                .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo == useLog.RoadwayNo)
+                                .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
+                            if (locateCount - bindNum > 0)
+                            {
+                                roadNo = useLog.RoadwayNo;
+                            } 
                         }
                     }
                 }
                 else//鎸夌収宸烽亾浼樺厛绾у垎閰�
                 {
                     foreach (var item in roadList)
-                    {
-                        roadNo = item;
+                    { 
+                        var locateCount = Db.Queryable<SysStorageLocat>()
+                            .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == item).Count();
+
+                        var bindNum = Db.Queryable<BllPalletBind>()
+                            .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo == item)
+                            .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
+
+                        if (locateCount - bindNum > 0)
+                        {
+                            roadNo = item;
+                        }
+                        //褰撳墠宸锋湁浣嶇疆鍒欓��鍑�
                         if (roadNo != null)
                         {
                             break;
-                        }
+                        } 
                     }
                 }
 
@@ -975,7 +1025,7 @@
                 }
                 #endregion
 
-                return null;
+                return comDto;
             }
             catch (Exception e)
             {
@@ -1449,12 +1499,19 @@
                             #endregion
 
                             break;
-                        case "0":
+                        case "0":                            
                             var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.ASNDetailNo);
                             if (noticeDetail == null)
                             {
                                 throw new Exception("鏈煡璇㈠埌鎵樼洏缁戝畾鐨勫叆搴撳崟鏄庣粏淇℃伅");
                             }
+                            var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == noticeDetail.ASNNo);
+                            if (notice == null)
+                            {
+                                throw new Exception("鏈煡璇㈠埌鎵樼洏缁戝畾鐨勫叆搴撳崟淇℃伅");
+                            }
+                            string ownerNo = notice.CustomerNo;//璐т富缂栫爜
+                            string ownerName = notice.CustomerName;//璐т富鍚嶇О
 
                             var sku1 = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == noticeDetail.SkuNo);
                             string isinspect = "0";
@@ -1471,7 +1528,7 @@
                             {
                                 LotNo = item.LotNo,
                                 LotText = noticeDetail.LotText,
-                                SupplierLot = noticeDetail.SupplierLot,
+                                SupplierLot = noticeDetail.SupplierLot,                                
                                 SkuNo = noticeDetail.SkuNo,
                                 SkuName = noticeDetail.SkuName,
                                 Standard = noticeDetail.Standard,
@@ -1499,6 +1556,10 @@
                                 PackagNo = noticeDetail.PackagNo,
                                 IsBale = item.IsBale,
                                 IsBelt = item.IsBelt,
+                                Demo = item.Demo,
+
+                                OwnerNo = ownerNo,
+                                OwnerName = ownerName,
 
                                 IsDel = "0",
                                 CreateUser = 0,
@@ -1588,6 +1649,9 @@
                                     LockQty = 0,
                                     FrozenQty = 0,
 
+                                    OwnerNo = ownerNo,
+                                    OwnerName = ownerName,
+
                                     IsDel = "0",
                                     CreateUser = userId,
                                     CreateTime = comTime
@@ -1609,8 +1673,7 @@
                             var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>()
                                 .Count(m => m.IsDel == "0" && m.ASNNo == noticeDetail.ASNNo && m.Status != "2");
                             if (asnDetailNum == 0)
-                            {
-                                var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == noticeDetail.ASNNo);
+                            {                                
                                 notice.Status = "2";
                                 notice.CompleteTime = comTime;
                                 Db.Updateable(notice).ExecuteCommand();

--
Gitblit v1.8.0