From 260d6082a7e53e0f040365a763da9bcf952118bd Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期三, 04 九月 2024 16:51:46 +0800
Subject: [PATCH] 修改平库出库页面单据加载托盘位置功能

---
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs |   55 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 12 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 93c6c16..a5376b2 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -73,6 +73,7 @@
                     CompleteTime = tb1.CompleteTime,
                     CreateTime = tb1.CreateTime,
                     CreateUserName = tb3.RealName,
+                    UserName=tb1.UserName,
                     UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
                     UpdateUserName = tb4.RealName
 
@@ -92,9 +93,9 @@
                 .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo)
                 .LeftJoin<SysUserInfor>((tb1, tb2,tb3) => tb1.CreateUser == tb3.Id)
                 .LeftJoin<SysUserInfor>((tb1,tb2,tb3,tb4) => tb1.UpdateUser == tb4.Id)
-                .LeftJoin<SysMaterials>((tb1, tb2, tb3, tb4,tb5) => tb1.SkuNo == tb5.SkuNo)
-                .LeftJoin<SysUnit>((tb1, tb2, tb3, tb4, tb5,tb6) => tb5.UnitNo == tb6.UnitNo)
-                .LeftJoin<SysPackag>((tb1, tb2, tb3, tb4, tb5, tb6,tb7) => tb1.PackagNo == tb7.PackagNo)
+                .LeftJoin<SysMaterials>((tb1, tb2, tb3, tb4,tb5) => tb1.SkuNo == tb5.SkuNo && tb5.IsDel == "0")
+                .LeftJoin<SysUnit>((tb1, tb2, tb3, tb4, tb5,tb6) => tb5.UnitNo == tb6.UnitNo && tb6.IsDel == "0")
+                .LeftJoin<SysPackag>((tb1, tb2, tb3, tb4, tb5, tb6,tb7) => tb1.PackagNo == tb7.PackagNo && tb7.IsDel == "0")
                 .Select((tb1, tb2, tb3, tb4, tb5,tb6, tb7) => new ArrivalNoticeDetailDto()
                  {
                      Id = tb1.Id,
@@ -118,6 +119,8 @@
                      Status = tb1.Status,
                      AsnType = tb2.Type,
                      AsnStatus = tb2.Status,
+                     Lot1 = tb1.Lot1,
+                     Lot2 = tb1.Lot2,
                      UDF1 = tb1.UDF1,
                      UDF2 = tb1.UDF2,
                      UDF3 = tb1.UDF3,
@@ -492,6 +495,7 @@
                     string toDayTime = dateTime.ToString("yyyymmdd");
                     List<BllArrivalNoticeDetail> addDetails = new List<BllArrivalNoticeDetail>();
                     List<BllArrivalNoticeDetail> editDetails = new List<BllArrivalNoticeDetail>();
+                    var maxLotNo = "";
                     foreach (ArrivalNoticeDetailVm detailModel in detailModels)
                     {
                         if (string.IsNullOrEmpty(detailModel.SkuNo))
@@ -518,8 +522,21 @@
                             }
                         }
 
+                        if (TypeLot.Contains(model.Type)) 
+                        {
+                            if (string.IsNullOrWhiteSpace(detailModel.Lot1)) 
+                            {
+                                throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
+                            }
+                            if (string.IsNullOrWhiteSpace(detailModel.Lot2))
+                            {
+                                throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
+                            }
+                        }
+
                         // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
-                        var com =  dbDetailModels.Where(m => m.SkuNo == detailModel.SkuNo && m.LotNo == detailModel.LotNo && m.Id != detailModel.Id && m.IsDel == "0").Count();
+                        var com =  dbDetailModels.Where(m => m.SkuNo == detailModel.SkuNo 
+                        && m.LotNo == detailModel.LotNo && m.Id != detailModel.Id && m.IsDel == "0").Count();
                         if (com > 0)
                         {
                             strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
@@ -534,7 +551,10 @@
                         if (detailModel.Id == 0 || detailModel.Id == null || string.IsNullOrWhiteSpace(detailModel.LotNo))
                         {
                             var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList();
-                            var maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m=>m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m=>m.LotNo);
+                            if (string.IsNullOrWhiteSpace(maxLotNo))
+                            {
+                                maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo);
+                            }
                             if (string.IsNullOrWhiteSpace(maxLotNo))
                             {
                                 maxLotNo = toDayTime.Substring(2, 6) + "0001";
@@ -583,6 +603,8 @@
                                 IsBelt = detailModel.IsBelt,
                                 SupplierLot = detailModel.SupplierLot,
                                 Status = "0",
+                                Lot1 = detailModel.Lot1,
+                                Lot2 = detailModel.Lot2,
                                 UDF1 = detailModel.UDF1,
                                 UDF2 = detailModel.UDF2,
                                 UDF3 = detailModel.UDF3,
@@ -603,6 +625,8 @@
                                              && it.SupplierLot == detailModel.SupplierLot
                                              && it.IsBale == detailModel.IsBale
                                              && it.IsBelt == detailModel.IsBelt
+                                             && it.Lot1 == detailModel.Lot1                                 // 鐢熶骇鏃ユ湡
+                                             && it.Lot2 == detailModel.Lot2                                 // 杩囨湡鏃ユ湡
                                              && it.UDF1 == detailModel.UDF1
                                              && it.UDF2 == detailModel.UDF2
                                              && it.UDF3 == detailModel.UDF3
@@ -620,7 +644,7 @@
                                 {
                                     if (dbDetail.LotNo != detailModel.LotNo)
                                     {
-                                        strMessage = "-1:褰撳墠鍗曟嵁绫诲瀷涓嶅彲鏇存敼鎵规锛屽彧鍙紪杈戞暟閲�;";
+                                        strMessage = "-1:褰撳墠鍗曟嵁绫诲瀷涓嶅彲鏇存敼鎵规;";
                                         continue;
                                     }
                                 }
@@ -635,6 +659,8 @@
                             dbDetail.LotText = detailModel.LotText;
                             dbDetail.SupplierLot = detailModel.SupplierLot;
                             dbDetail.IsBale = detailModel.IsBale;
+                            dbDetail.Lot1 = detailModel.Lot1;
+                            dbDetail.Lot2 = detailModel.Lot2;
                             dbDetail.UDF1 = detailModel.UDF1;
                             dbDetail.UDF2 = detailModel.UDF2;
                             dbDetail.UDF3 = detailModel.UDF3;
@@ -788,7 +814,7 @@
                     asnModel.UpdateUser = model.CreateUser;
                 }
 
-                asnDetail.IsDel = "0";
+                asnDetail.IsDel = "1";
                 asnDetail.UpdateTime = editDateTime;
                 asnDetail.UpdateUser = model.CreateUser;
 
@@ -869,12 +895,16 @@
                 #region 閲囪喘璁″垝锛岃嫢鏄噰璐鍗曟牴鎹噰璐鍒掑崟鑷姩鐢熸垚鍏ュ簱鍗曚俊鎭�
                 if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode))
                 {
+                    // 鑾峰彇閲囪喘鎬诲崟淇℃伅
+                    var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
                     //鍏ュ簱鍗曟槑缁�
-                    var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
+                    var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>()
+                        .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
                     foreach (var item in noticeDetailList)
                     {
                         //閲囪喘鍗曟槑缁�
-                        var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0");
+                        var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>()
+                            .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0");
                         planDetail.CompleteQty += item.CompleteQty;
                         if (planDetail.CompleteQty >= planDetail.Qty)
                         {
@@ -887,8 +917,7 @@
                         }
                         Db.Updateable(planDetail).ExecuteCommand();
                     }
-                    //閲囪喘鎬诲崟淇℃伅
-                    var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
+                    // 缁存姢閲囪喘鎬诲崟淇℃伅
                     var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2");
                     if (planDetailNum == 0)
                     {
@@ -905,7 +934,8 @@
                         }
                     }
                     //閲囪喘鍗曟槑缁�
-                    var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>().Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
+                    var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>()
+                        .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
                     foreach (var item in planDetailList)
                     {
                         //鍒ゆ柇鏈夋棤姝e湪鎵ц鐨�
@@ -1184,6 +1214,7 @@
                     CustomerNo = model.Customer,
                     CustomerName = CustomerModel.CustomerName,
                     OrderCode = model.OrderCode,
+                    UserName = model.Username
                 };
 
                 // 鍏ュ簱鏄庣粏琛ㄤ俊鎭�

--
Gitblit v1.8.0