From 157abc191c34e57c1b958ae74fc3de6518ca8a30 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期五, 28 二月 2025 11:06:36 +0800
Subject: [PATCH] 修改客户需求

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |  150 +++++++++++++++++++++++++++++++++----------------
 1 files changed, 100 insertions(+), 50 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 71613e4..68367c9 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -1758,7 +1758,7 @@
                             if (isChai == "0")
                             {
                                 var boxInfo = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.PalletNo == item.PalletNo && w.BitBoxMark == "1").ToList();
-                                if (boxInfo != null)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
+                                if (boxInfo.Count>0)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
                                 {
                                     isChai = "1";
                                     unstackingMode2 = "1";//闇�瑕佹媶绠遍渶璧癙DA鎷嗗灈
@@ -2249,10 +2249,10 @@
                 //鍑哄簱浠诲姟鍙锋洿鏀癸紝濡傛灉鐢盤LC鍑哄簱锛屽垯PLC鍥炰紶浠诲姟鍙蜂负锛氫换鍔″彿+瀹為檯鍑哄簱鍙�
                 var TtaskNo = taskNo;
                 var outLine = "";
-                if (userId == 0)
+                if (taskNo.Length == 18)
                 {
-                    TtaskNo = taskNo.Substring(0, taskNo.Length - 4);
-                    outLine = taskNo.Substring(taskNo.Length - 4, 3);
+                    TtaskNo = taskNo.Substring(0, taskNo.Length - 3);
+                    outLine = taskNo.Substring(taskNo.Length - 3, 3);
                 }
                 //褰撳墠浠诲姟淇℃伅
                 var task = Db.Queryable<LogTask>().First(m => m.TaskNo == TtaskNo && m.IsDel == "0");
@@ -2395,52 +2395,58 @@
                         //娣诲姞鎿嶄綔鏃ュ織璁板綍
                         var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", TtaskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{TtaskNo}鐨勪换鍔�", userId);
                     }
-                    if (outLine != "")
+                    if (outLine != "" && outLine != "009" && outLine != "013" && outLine != "018" && outLine != "022")
                     {
                         #region 鍒嗛厤鍑哄簱鐩殑浣�
-                        string positionStart = outLine, positionEnd = "" ,type ="D00";
+                        string positionStart = outLine, positionEnd = "", type = "D00";
                         var type1 = Db.Queryable<BllExportNotice>().Where(m => m.SONo == allot.First().SONo && m.IsDel == "0" && m.Status == "3").First();
                         if (type1 == null)
                         {
                             var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B13").ToList();
-                            type = "D02" ; //绌烘墭鐩樺灈鍑哄簱
-                             if (outLine == "443")//瑗夸晶鍑哄簱
+                            type = "D02"; //绌烘墭鐩樺灈鍑哄簱
+                            if (outLine == "443")//瑗夸晶鍑哄簱
                             {
-                                positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01" && m.LocatNo.Substring(3, 2) == "02" && m.LocatNo.Substring(3, 2) == "03" &&
-                                m.Status == "0" && m.Flag == "0").LocatNo;
+                                positionEnd = locateno.First(m => m.Row == 1 && m.Status == "0" && m.Flag == "0").LocatNo;
                             }
                             else if (outLine == "440")  //涓滀晶鍑哄簱
                             {
-                                positionEnd = locateno.First(m => m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" && m.LocatNo.Substring(4, 2) == "06" &&
-                                m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
+                                positionEnd = locateno.First(m => m.Row == 2 && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
+                            }
+                            else  //1妤肩┖鎵樼洏鍑哄簱涓嶈皟鐢ˋGV
+                            {
+                                Db.CommitTran();
+                                return;
                             }
 
                         }
-                        if (type1.Type == "1" && (type1.Type == "5" || (positionStart == "440" && positionStart == "440")))  //3妤奸鏂欏嚭搴� /3L涓棿鍝佸嚭搴�
-                        {
-                            var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B11").ToList();
-                            if (outLine == "443")//瑗夸晶鍑哄簱
+                        else 
+                        { 
+                            if (type1.Type == "1" || (type1.Type == "5" && (positionStart == "440" || positionStart == "443")))  //3妤奸鏂欏嚭搴� /3L涓棿鍝佸嚭搴�
                             {
-                                positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01"&& m.LocatNo.Substring(4, 2) == "02" && m.Status == "0" && m.Flag == "0").LocatNo; //瑗夸晶鎴块棿搴撲綅
-                            }
-                            else  if(outLine == "440")  //涓滀晶鍑哄簱
-                            {
-                                positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "03" && m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" &&
-                                m.LocatNo.Substring(4, 2) == "06" && m.LocatNo.Substring(3, 2) == "07" && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
-                            }
-                        }
-                        else if (type1.Type == "2" && type1.Type == "3") //鎶芥鍑哄簱 /鍙栨牱鍑哄簱
-                        {
-                            positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B04" && m.Status == "0" && m.Flag == "0").LocatNo;
-                        }
-                        else if (type1.Type == "4")//涓嶅悎鏍煎搧鍑哄簱
-                        {
+                                var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B11").ToList();
+                                if (outLine == "443")//瑗夸晶鍑哄簱
+                                {
 
-                            positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B03" && m.Status == "0" && m.Flag == "0").LocatNo;
-                        }
-                        else //鍏朵粬鍗曟嵁绫诲瀷閮藉瓨鏀惧彂璐х紦瀛樺尯
-                        {
-                            positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo;
+                                    positionEnd = locateno.OrderBy(m => m.LocatNo).First(m => m.Row == 1 && m.Status == "0" && m.Flag == "0").LocatNo; //瑗夸晶鎴块棿搴撲綅鍜屽闈㈡埧闂�
+                                }
+                                else if (outLine == "440")  //涓滀晶鍑哄簱
+                                {
+                                    positionEnd = locateno.OrderBy(m => m.LocatNo).First(m => m.Row == 2  && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
+                                }
+                            }
+                            else if (type1.Type == "2" || type1.Type == "3") //鎶芥鍑哄簱 /鍙栨牱鍑哄簱
+                            {
+                                positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m=>m.LocatNo).First(m => m.AreaNo == "B04" && m.Status == "0" && m.Flag == "0").LocatNo;
+                            }
+                            else if (type1.Type == "4")//涓嶅悎鏍煎搧鍑哄簱
+                            {
+
+                                positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m => m.LocatNo).First(m => m.AreaNo == "B03" && m.Status == "0" && m.Flag == "0").LocatNo;
+                            }
+                            else //鍏朵粬鍗曟嵁绫诲瀷閮藉瓨鏀惧彂璐х紦瀛樺尯
+                            {
+                                positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m => m.LocatNo).First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo;
+                            }
                         }
                         #endregion
 
@@ -2475,7 +2481,8 @@
                         agvTask.CtnrTyp = "1";            //瀹瑰櫒绫诲瀷锛屽�间负1
                         if (type == "D02")
                         {
-                            agvTask.CtnrNum = "10";     //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
+                            var palnoNum = Db.Queryable<BllPalletBind>().OrderByDescending(w=>w.Id).First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo);
+                            agvTask.CtnrNum = palnoNum.Qty.ToString();     //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
                         }
 
                         agvTaskList.Add(agvTask);
@@ -2495,6 +2502,41 @@
                             LogFile.SaveLogToFile($"AGV浠诲姟鍙嶉鎵ц閫氱煡锛�( {jsonData} ),", logStr);
                         }
 
+                        #endregion
+
+                        #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+
+                        var taskNonew = new Common().GetMaxNo("TK");
+                        var exTask = new LogTask    //灏忚溅绉诲簱浠诲姟
+                        {
+                            TaskNo = TtaskNo,
+                            Sender = "WMS",
+                            Receiver = "AGV",
+                            IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+                            StartLocat = positionStart,//璧峰浣嶇疆
+                            EndLocat = positionEnd,//鐩爣浣嶇疆
+                            PalletNo = task.PalletNo,//鎵樼洏鐮�
+                            IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                            IsCancel = 1,//鏄惁鍙彇娑�
+                            IsFinish = 1,//鏄惁鍙畬鎴�
+                            Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                            Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                            OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+                            CreateTime = DateTime.Now, //鍒涘缓鏃堕棿
+                            CreateUser = userId, //鍒涘缓浜�
+                            Msg = "灏忚溅浠�" + positionStart  + "鍒�" + positionEnd + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+                                                                                                             //FinishDate = serverTime, //瀹屾垚鏃堕棿
+                        };
+                        Db.Insertable(exTask).ExecuteCommand();
+
+                        #endregion
+
+                        #region 鍌ㄤ綅鐘舵�佸彉鏇�
+                        //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+                        var locat = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == positionEnd);
+                        locat.Status = "4"; //4 绉诲叆涓�
+                        Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
                         #endregion
                     }
                     Db.CommitTran();
@@ -2882,7 +2924,15 @@
 
                     // 鍑哄簱鎬昏〃  鐘舵�佹敼涓洪儴鍒嗗垎閰�
                     var noticeModel = Db.Queryable<BllExportNotice>().First(m => m.SONo == noticeDetailModel.SONo && m.IsDel == "0");
-                    noticeModel.Status = "1";
+                    if (noticeDetailModel.AllotQty<=0)
+                    {
+                        noticeModel.Status = "0";
+                    }
+                    else
+                    {
+                        noticeModel.Status = "1";
+                    }
+                   
                     Db.Updateable(noticeModel).ExecuteCommand();
 
                     // 搴撳瓨鏄庣粏琛� 鐘舵�佷慨鏀逛负寮傚父閿佸畾 閿佸畾鏁伴噺淇敼涓烘墭鐩樹笂鏁伴噺
@@ -2896,7 +2946,7 @@
 
                     // 搴撳瓨鎬昏〃 閿佸畾鏁伴噺=褰撳墠閿佸畾鏁伴噺 +  (搴撳瓨鏄庣粏鎵樼洏涓婃暟閲�-搴撳瓨鏄庣粏鎵樼洏涓婂凡閿佸畾鐨勬暟閲�)
                     var stockModel = Db.Queryable<DataStock>().First(m => m.LotNo == stockDetailModel.LotNo && m.SkuNo == stockDetailModel.SkuNo && m.IsDel == "0");
-                    stockModel.LockQty = stockModel.LockQty + (int)(stockDetailModel.Qty - lockQty);
+                    stockModel.LockQty = stockModel.LockQty + (decimal)(stockDetailModel.Qty - lockQty);
                     Db.Updateable(stockModel).ExecuteCommand();
 
                     // 鎷h揣鏄庣粏琛� 鍒犻櫎
@@ -3581,7 +3631,7 @@
                     foreach (var item in detailList)
                     {
                         totalQty += item.Qty;
-                        totalAllotQty += Convert.ToInt32(item.AllotQty);
+                        totalAllotQty += Convert.ToDecimal(item.AllotQty);
                     }
 
                     if (totalAllotQty >= totalQty)
@@ -3655,7 +3705,7 @@
                         }
                     }
                     var boxInfo = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.PalletNo == item.PalletNo && w.BitBoxMark == "1").ToList();
-                    if (boxInfo != null)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
+                    if (boxInfo.Count>0)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
                     {
                         result = "1";//闇�瑕佹媶绠�
                         break;
@@ -3748,14 +3798,14 @@
             try
             {
                 // 鍒ゆ柇褰撳墠浠诲姟鐘舵��  Status 1:姝e湪鎵ц 3:寮傚父缁撴潫
-                var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
+                var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" );
                 if (taskModel == null)
                 {
                     throw new Exception("姝や换鍔′笉瀛樺湪鎴栦换鍔$姸鎬佸凡鍙樻洿!");
                 }
                 // 楠岃瘉鎵樼洏鍒嗛厤淇℃伅
-                var palletBindModel = Db.Queryable<BllExportAllot>().First(m => m.PalletNo == model.PalletNo && m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
-                if (palletBindModel != null)
+                var palletBindModel = Db.Queryable<BllExportAllot>().First(m => m.PalletNo == model.PalletNo && m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "2");
+                if (palletBindModel == null)
                 {
                     throw new Exception("鏈壘鍒板綋鍓嶆墭鐩樺垎閰嶄换鍔′俊鎭�!");
                 }
@@ -3804,10 +3854,10 @@
         }
 
         /// <summary>
-        /// 鑾峰彇鎷嗗灈鍒嗘嫞涓绘壂绠辩爜鍑哄簱
+        /// 鎷嗗灈鍒嗘嫞涓绘壂绠辩爜鍑哄簱
         /// </summary>
-        /// <param name="model">鎷嗗灈鎵樼洏鍙峰拰WCS浠诲姟鍙�</param>
-        /// <returns>鎷嗗灈鎵樼洏淇℃伅</returns>
+        /// <param name="model">绠卞彿</param>
+        /// <returns>鍑哄簱鍒嗘嫞鍙�</returns>
         public string BoxInfoExportWcs(string boxno)
         {
             try
@@ -3882,7 +3932,7 @@
                     throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
                 }
                 decimal pickQty = 0;//鎷h揣鐨勬暟閲�
-
+                Db.BeginTran();
                 var comList = new List<BllCompleteDetail>();
                 foreach (var item in boxInfos)
                 {
@@ -3989,12 +4039,12 @@
                 }
                 //淇敼鍑哄簱鍗曚俊鎭�
                 Db.Updateable(notice).ExecuteCommand();
-                
-                return "";
+                Db.CommitTran();
+                return allot.LoadingAddre;
             }
             catch (Exception e)
             {
-
+                Db.RollbackTran();
                 throw new Exception(e.Message);
             }
         }

--
Gitblit v1.8.0