From f147cfa91feec613eb304c78fecafdf43286034a Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-5BIMHQ3>
Date: 星期六, 30 三月 2024 11:12:24 +0800
Subject: [PATCH] Merge branch 'wxw'

---
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs |  120 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 100 insertions(+), 20 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 115195f..9922b6d 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -153,31 +153,58 @@
             try
             {
                 string skuType = string.Empty;
+                int IsPack = 0; //0锛氫笉绠� 1锛氳创 2锛氫笉璐�
+                /**
+                 * 鎴愬搧璐� 		0
+                 * 閲囪喘鍙创鍙笉璐�	1
+                 * 涓棿鍝佷笉璐�	2
+                 * 閫�璐ц创		3
+                 * 浣欐枡閫�鍥炲彲璐村彲涓嶈创	4
+                 * 鍏跺畠鍙创鍙笉璐�	5
+                 * 浠e偍涓嶈创		6
+                 * 瀵勫瓨涓嶈创		7
+                 */
                 switch (model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
                 {
                     case "0"://鎴愬搧鍏ュ簱
-                    case "3"://閫�璐у叆搴�
-                    case "5"://鍏跺畠鍏ュ簱
-                    case "6"://浠e偍鍏ュ簱
                         skuType = "(2)";
+                        IsPack = 1; //璐�
                         break;
                     case "1"://閲囪喘鍏ュ簱
-                    case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴�
                         skuType = "(0,1,3)";
                         break;
                     case "2"://涓棿鍝佸叆搴�
                         skuType = "(4)";
+                        IsPack = 2; //涓嶈创
+                        break;
+                    case "3"://閫�璐у叆搴�
+                        skuType = "(2)";
+                        IsPack = 1; //璐�
+                        break;
+                    case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴�
+                        skuType = "(0,1,3)";
+                        break;
+                    case "5"://鍏跺畠鍏ュ簱
+                        skuType = "(0,1,3)";
+                        break;
+                    case "6"://浠e偍鍏ュ簱
+                        skuType = "(2)";
+                        IsPack = 2; //涓嶈创
                         break;
                     case "7"://瀵勫瓨鍏ュ簱
-                        skuType = "(0,1,2,3,4)";
+                        //skuType = "(3)";
+                        IsPack = 2; //涓嶈创
                         break;
                     default: //鍏跺畠
-                        skuType = "(0,1,2,3,4)";
+                        //skuType = "(0,1,2,3,4)";
                         break;
                 }
 
                 Expression<Func<SysMaterials, bool>> item = Expressionable.Create<SysMaterials>()
-                    .AndIF(true, it => skuType.Contains(it.Type))
+                    .AndIF(model.Type != "7", it => skuType.Contains(it.Type))
+                    .AndIF(model.Type == "7", it => it.SkuNo == "100088")
+                    .AndIF(IsPack == 1, it => it.PackagNo != "")
+                    .AndIF(IsPack == 2, it => it.PackagNo == "")
                     .AndIF(true, it => it.IsDel == "0")
                     .And(it => it.SkuNo != "100099")
                     .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo),
@@ -192,6 +219,8 @@
                     .Includes(x => x.UnitInfo)
                     .Includes(x => x.PackagInfo)
                     .ToList();
+
+
 
                 return data.Select(m => new MaterialsDto()
                 {
@@ -230,7 +259,7 @@
             string sqlString = string.Empty;
             string sqlDetailStr = string.Empty;
             //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
-            var TypeLot = "1, 2, 5, 6, 7";
+            var TypeLot = "1, 2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
 
             try
             {
@@ -247,6 +276,15 @@
                     if (string.IsNullOrEmpty(model.Type))
                     {
                         throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!");
+                    }
+                }
+                //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+                // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+                if (model.Type == "1" || model.Type == "4")
+                {
+                    if (!string.IsNullOrWhiteSpace(model.LotNo))
+                    {
+                        throw new Exception("閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫!");
                     }
                 }
 
@@ -342,6 +380,18 @@
             string sqlDetailStr = string.Empty;
             try
             {
+                //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+                // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+                int isType = 0;
+                if (model.Type == "1" || model.Type == "4")
+                {
+                    isType = 1;
+                    if (!string.IsNullOrWhiteSpace(model.LotNo))
+                    {
+                        strMessage = "-1:閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫;";
+                        return strMessage;
+                    }
+                }
                 if (model.Origin != "褰曞叆")
                 {
                     strMessage = "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲缂栬緫;";
@@ -396,7 +446,7 @@
                         strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
                         continue;
                     }
-                    if (string.IsNullOrEmpty(detailModel.LotNo))
+                    if (string.IsNullOrEmpty(detailModel.LotNo) && isType != 1)
                     {
                         strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
                         continue;
@@ -512,9 +562,10 @@
                 sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
                 sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
 
-                //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹�
+                //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
                 // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
-                if (model.Type == "1")
+                int notdel = 0;
+                if (model.Type == "1" || model.Type == "4")
                 {
                     //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩
                     var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null);
@@ -529,10 +580,11 @@
                     sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
                     sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
                     sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                    notdel = 1;
                 }
                 Db.Ado.BeginTran();
                 int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                if (rowCount < 3)
+                if (rowCount < 2 + notdel)
                 {
                     Db.RollbackTran();
                     return "-1:鍒犻櫎澶辫触锛�";
@@ -620,6 +672,11 @@
                 //{
                 //    throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚");
                 //}
+                var palletBind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.Status != "2").ToList();
+                if (palletBind != null && palletBind.Count > 0)
+                {
+                    throw new Exception("瀛樺湪鏈叆搴撳畬鎴愭墭鐩樹俊鎭紝涓嶅厑璁稿叧鍗�");
+                }
 
                 var sqlString = "";
 
@@ -716,16 +773,35 @@
                     }
 
                     var info = boxInfo.First(m => m.BindNo == item.Id);
-                    if (!msgS.Contains(info.SkuNo))
+                    //鑾峰彇鎵樼洏缁戝畾瀵瑰簲鍗曟嵁
+                    var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(a => a.IsDel == "0" && a.Id == item.ASNDetailNo);
+                    if (info != null)
                     {
-                        msgS += info.SkuNo + ";";
+                        if (!msgS.Contains(info.SkuNo))
+                        {
+                            msgS += info.SkuNo + ";";
+                        }
+
+                        if (!msgL.Contains(info.LotNo))
+                        {
+                            msgL += info.LotNo + ";";
+
+                        }
+                    }
+                    else
+                    {
+                        if (!msgS.Contains(noticeDetail.SkuNo))
+                        {
+                            msgS += noticeDetail.SkuNo + ";";
+                        }
+
+                        if (!msgL.Contains(noticeDetail.LotNo))
+                        {
+                            msgL += noticeDetail.LotNo + ";";
+
+                        }
                     }
 
-                    if (!msgL.Contains(info.LotNo))
-                    {
-                        msgL += info.LotNo + ";";
-
-                    }
                 }
                 var time = DateTime.Now;
                 var log = new BllAuditLog()
@@ -833,7 +909,7 @@
                 {
                     ASNNo = asnNo,
                     Type = model.AsnType,
-                    Origin = model.Origin,
+                    Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin,
                     CustomerNo = model.Customer,
                     CustomerName = CustomerModel.CustomerName,
                     OrderCode = model.OrderCode,
@@ -917,6 +993,10 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
                 }
+                if (notice.Status != "3")
+                {
+                    throw new Exception("澶嶆牳澶辫触锛屽崟鎹潪鍏抽棴鐘舵��");
+                }
                 var detail = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == notice.ASNNo && m.IsDel == "0").ToList();
                 if (detail.Count == 0)
                 {

--
Gitblit v1.8.0