From 28bea7128b8c24a6a664e880f1425e1fa24b9b5f Mon Sep 17 00:00:00 2001
From: pulg <plg@Haninfo>
Date: 星期四, 05 六月 2025 17:19:49 +0800
Subject: [PATCH] 11

---
 HH.WCS.ZCQTJ/Bll/StateTaskBLL.cs |  182 +++++++++++++++++++++++++++------------------
 1 files changed, 110 insertions(+), 72 deletions(-)

diff --git a/HH.WCS.ZCQTJ/Bll/StateTaskBLL.cs b/HH.WCS.ZCQTJ/Bll/StateTaskBLL.cs
index 3693c00..97b0afd 100644
--- a/HH.WCS.ZCQTJ/Bll/StateTaskBLL.cs
+++ b/HH.WCS.ZCQTJ/Bll/StateTaskBLL.cs
@@ -1,6 +1,7 @@
 锘縰sing HH.WCS.Hexafluo;
 using HH.WCS.Hexafluo.device;
 using HH.WCS.Hexafluo.dispatch;
+using HH.WCS.Hexafluo.process;
 using HH.WCS.Hexafluo.util;
 using HH.WCS.Hexafluo.wms;
 using HH.WCS.SJML.Comm;
@@ -556,9 +557,9 @@
                             }
                             else
                             {
-                                Texp.And(e => e.S_AREA_CODE == executeStatePara.transportTask.S_START_LAREA);
+                                //  Texp.And(e => e.S_AREA_CODE == executeStatePara.transportTask.S_START_LAREA);
+                                Texp.And(e => e.S_AREA_CODE == executeStatePara.transportTask.S_END_LAREA);
                             }
-
                             Texp.And(e => e.D_DATE == DateTime.Now.ToString("yyyy-MM-dd"));
                             var taskview = newDb.Queryable<DayAreaTaskEntitys>().Where(Texp.ToExpression())?.First();
                             if (taskview == null)//鍒涘缓
@@ -1209,36 +1210,7 @@
             }
             var chi = new SqlHelper<object>().GetInstance();
             var newDb = chi.CopyNew();
-            List<string> AreaLo = new List<string>() { "TCXB", "TTXB", "NCXB", "DSXB", "TMXB", "TQXB", "TQJT" };
-            WMSTask PritTask = null;
-            //鏌ヨ鏄惁鏄浉鍏冲簱鍖�-            if (executeStatePara.transportTask.S_TYPE == "鍑哄簱" && AreaLo.Contains(executeStatePara.transportTask.S_END_LAREA))
-            {
-                LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + executeStatePara.transportTask.S_TASK_NO + " 缁堢偣搴撳尯鏄惁绛変簬DSXB 鏈换鍔�" + executeStatePara.transportTask.S_END_LAREA);
-                //鏌ヨ閰嶅埗琛�-                var transportTask = newDb.Queryable<ConfigJsonEntitys>().Where(e => e.Autoindex == executeStatePara.transportTask.S_END_LAREA + "-閫佹弧鍙栫┖")?.First();
-                if (transportTask != null)
-                {
-                    var ListString = JsonConvert.DeserializeObject<List<ConfigValueList>>(transportTask.TypeJson);
-                    if (ListString != null && ListString.Count > 0)
-                    {
-                        var Strin = ListString.Find(e => e.LocationCode1 == executeStatePara.transportTask.S_END_LOC);
-                        LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + executeStatePara.transportTask.S_TASK_NO + "鏄惁鍖归厤鍒颁簡闃熷弸鐨勮揣浣嶄俊鎭� + JsonConvert.SerializeObject(Strin));
-                        if (Strin != null)
-                        {
-                            //鏌ヨ鏃佽竟鐨勮揣浣嶆槸鍚︽湁宸叉帹閫佷絾鏄病鎵ц鐨勪换鍔�-                            var SfgLo = newDb.Queryable<WMSTask>().Where(e => e.S_START_LOC == Strin.LocationCode2 && e.S_NOTE.Equals("agv浠诲姟") && (e.S_B_STATE == "宸叉帹閫� || e.S_B_STATE == "鎵ц涓�))?.First();
-                            LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + executeStatePara.transportTask.S_TASK_NO + "鍖归厤鍒扮殑璐т綅 鏄惁瀛樺湪 鏄痑gv浠诲姟 骞朵笖浠诲姟涓婂凡鎺ㄩ�" + JsonConvert.SerializeObject(SfgLo));
-                            if (SfgLo != null)//鏈夎繖涓换鍔�-                            {
-                                var Agvstr = NDCHelper.ChangeParamPri(SfgLo.S_TASK_NO, 60);
-                                LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + SfgLo.S_TASK_NO + "浼樺厛绾т负锛� + 60 + "   鏄惁鎴愬姛 :" + Agvstr);
-                                PritTask = SfgLo;
-                            }
-                        }
-                    }
-                }
-            }
+
             try
             {
                 LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟鐘舵� 浜嬪姟寮�:" + executeStatePara.transportTask.S_TASK_NO);
@@ -1249,12 +1221,7 @@
                 {
                     throw new Exception("鏇存柊浠诲姟鐘舵�澶辫触");
                 }
-                if (PritTask != null)
-                {
-                    // var ddd = executeStatePara.transportTaskSrc.Select(e => e.S_ID).ToList();
-                    var ggj = newDb.Updateable<WMSTask>().SetColumns(it => new WMSTask() { N_PRIORITY = 40 }).Where(e => e.S_ID == PritTask.S_ID).ExecuteCommand();
-                    LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + PritTask.S_TASK_NO + "浼樺厛绾т负锛� + 40 + "   鏄惁鎴愬姛 鏀箇ms浠诲姟 褰卞搷琛屾暟:" + ggj);
-                }
+
                 newDb.CommitTran();
                 LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟鐘舵� 浜嬪姟缁撴潫:" + executeStatePara.transportTask.S_TASK_NO);
                 return OperateResult.Succeed();
@@ -2201,24 +2168,24 @@
             var newDb = chi.CopyNew();
             Location location2 = null;
             List<ConfigValueList> ListValues = new List<ConfigValueList>();
-            if (executeStatePara.startIsCurrentTask.S_NOTE == "鏅鸿兘绌烘《婊℃墭")
-            {
-                //鏌ヨ閰嶇疆琛ㄤ俊鎭�-                var transport = newDb.Queryable<ConfigJsonEntitys>().Where(e => e.Autoindex == "鏅鸿兘绌烘《缂撳瓨")?.First();
-                if (transport != null)
-                {
-                    ListValues = JsonConvert.DeserializeObject<List<ConfigValueList>>(transport.TypeJson);
-                    if (ListValues.Count() > 0)
-                    {
-                        //鏌ヨ鍑哄搴旂殑绌烘墭缂撳瓨浣�-                        var ggf = ListValues.Find(e => e.LocationCode1 == executeStatePara.transportTask.S_START_LOC);
-                        if (ggf != null)
-                        {
-                            location2 = newDb.Queryable<Location>().Where(e => e.S_LOC_CODE == ggf.LocationCode2)?.First();
-                        }
-                    }
-                }
-            }
+            //if (executeStatePara.startIsCurrentTask.S_NOTE == "鏅鸿兘绌烘《婊℃墭")
+            //{
+            //    //鏌ヨ閰嶇疆琛ㄤ俊鎭�+            //    var transport = newDb.Queryable<ConfigJsonEntitys>().Where(e => e.Autoindex == "鏅鸿兘绌烘《缂撳瓨")?.First();
+            //    if (transport != null)
+            //    {
+            //        ListValues = JsonConvert.DeserializeObject<List<ConfigValueList>>(transport.TypeJson);
+            //        if (ListValues.Count() > 0)
+            //        {
+            //            //鏌ヨ鍑哄搴旂殑绌烘墭缂撳瓨浣�+            //            var ggf = ListValues.Find(e => e.LocationCode1 == executeStatePara.transportTask.S_START_LOC);
+            //            if (ggf != null)
+            //            {
+            //                location2 = newDb.Queryable<Location>().Where(e => e.S_LOC_CODE == ggf.LocationCode2)?.First();
+            //            }
+            //        }
+            //    }
+            //}
             try
             {
                 LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟鐘舵� 浜嬪姟寮�:" + executeStatePara.transportTask.S_TASK_NO);
@@ -2258,22 +2225,22 @@
                     //}
                     //LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟缁堢偣璐т綅" + executeStatePara.transportTask.S_START_LOC + "鐨勭姸鎬侀攣涓烘棤锛�);
                 }
-                if (executeStatePara.transportTask.S_TYPE.Equals("鍏ュ簱") && executeStatePara.startIsCurrentTask.S_NOTE == "鏅鸿兘绌烘《婊℃墭")
-                {
-                    if (location2 != null && (location2.N_CURRENT_NUM - 1 >= 0))
-                    {
-                        I = newDb.Updateable<Location>().SetColumns(it => new Location()
-                        {
-                            T_MODIFY = DateTime.Now,
-                            N_CURRENT_NUM = it.N_CURRENT_NUM - 1,
-                            T_EMPTY_TIME = DateTime.Now
-                        }).Where(x => x.S_LOC_CODE == location2.S_LOC_CODE).ExecuteCommand();
-                        if (I == 0)
-                        {
-                            throw new Exception("鏇存柊缁堢偣褰撳墠瀹归噺-1澶辫触");
-                        }
-                    }
-                }
+                //if (executeStatePara.transportTask.S_TYPE.Equals("鍏ュ簱") && executeStatePara.startIsCurrentTask.S_NOTE == "鏅鸿兘绌烘《婊℃墭")
+                //{
+                //    if (location2 != null && (location2.N_CURRENT_NUM - 1 >= 0))
+                //    {
+                //        I = newDb.Updateable<Location>().SetColumns(it => new Location()
+                //        {
+                //            T_MODIFY = DateTime.Now,
+                //            N_CURRENT_NUM = it.N_CURRENT_NUM - 1,
+                //            T_EMPTY_TIME = DateTime.Now
+                //        }).Where(x => x.S_LOC_CODE == location2.S_LOC_CODE).ExecuteCommand();
+                //        if (I == 0)
+                //        {
+                //            throw new Exception("鏇存柊缁堢偣褰撳墠瀹归噺-1澶辫触");
+                //        }
+                //    }
+                //}
                 if (executeStatePara.transportTask.S_TYPE.Equals("鍑哄簱"))
                 {
                     //鍒犻櫎鎵樼洏浜у搧鍏宠仈
@@ -2337,6 +2304,70 @@
             }
             var chi = new SqlHelper<object>().GetInstance();
             var newDb = chi.CopyNew();
+
+            List<string> AreaLo = new List<string>() { "TCXB", "TTXB", "NCXB", "DSXB", "TMXB", "TQXB", "TQJT" };
+            WMSTask PritTask = null;
+            //鏌ヨ鏄惁鏄浉鍏冲簱鍖�+            if (executeStatePara.transportTask.S_TYPE == "鍑哄簱" && AreaLo.Contains(executeStatePara.transportTask.S_END_LAREA))
+            {
+                LogHelper.TaskDetail(logPara, $"鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細{executeStatePara.transportTask.S_TASK_NO} 缁堢偣搴撳尯鏄惁鍖呭惈{JsonConvert.SerializeObject(AreaLo)} 鏈换鍔�" + executeStatePara.transportTask.S_END_LAREA);
+                //鏌ヨ閰嶇疆鏂囦欢
+                var transportTask = STAttribute.GetValueTwo(executeStatePara.transportTask.S_END_LAREA + "-閫佹弧鍙栫┖");
+                if (transportTask != null)
+                {
+                    var ListString = JsonConvert.DeserializeObject<List<ConfigValueListTwo>>(transportTask);
+                    if (ListString != null && ListString.Count > 0)
+                    {
+                        var Strin = ListString.Find(e => e.LocationCode1 == executeStatePara.transportTask.S_END_LOC);
+                        LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + executeStatePara.transportTask.S_TASK_NO + "鏄惁鍖归厤鍒颁簡闃熷弸鐨勮揣浣嶄俊鎭� + JsonConvert.SerializeObject(Strin));
+                        if (Strin != null)
+                        {
+                            //鏌ヨ鏃佽竟鐨勮揣浣嶆槸鍚︽湁宸叉帹閫佷絾鏄病鎵ц鐨勪换鍔�+                            //  List<string> TaskState2 = new List<string> { "鏈墽琛�, "宸叉帹閫�, "鎵ц涓� };
+                            var SfgLo = newDb.Queryable<WMSTask>().Where(e => Strin.LocationCode2.Contains(e.S_START_LOC) && e.S_NOTE.Equals("agv浠诲姟") && (e.S_B_STATE == "鏈墽琛� || e.S_B_STATE == "宸叉帹閫� || e.S_B_STATE == "鎵ц涓�)).ToList();
+                            LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + executeStatePara.transportTask.S_TASK_NO + "鍖归厤鍒扮殑璐т綅 鏄惁瀛樺湪 鏄痑gv浠诲姟 骞朵笖浠诲姟鐘舵�涓�鏈墽琛�宸叉帹閫�鎵ц涓�鐨勪换鍔℃湁:" + JsonConvert.SerializeObject(SfgLo));
+                            if (SfgLo.Count() > 0)//鏈夎繖涓换鍔�+                            {
+                                //鐪嬭繖涓换鍔℃槸鍚︽槸鏈夊浜庨厤缃┖鎵樼涓�綅鐨勮揣浣�+                                var OneLoc = Strin.LocationCode2.FirstOrDefault();
+                                LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾� 閰嶇疆涓涓�釜璐т綅涓猴細" + OneLoc);
+                                var OneTask = SfgLo.Find(e => e.S_START_LOC == OneLoc);
+                                if (OneTask != null)
+                                {
+                                    if (OneTask.S_B_STATE == "鏈墽琛�)//鎺ㄩ�浠诲姟
+                                    {
+                                        OneTask.N_PRIORITY = 60;
+                                        TaskProcess.SendTask(OneTask);
+                                    }
+                                    else
+                                    {
+                                        var Agvstr = NDCHelper.ChangeParamPri(OneTask.S_TASK_NO, 60);
+                                        LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + OneTask.S_TASK_NO + "浼樺厛绾т负锛� + 60 + "   鏄惁鎴愬姛 :" + Agvstr);
+                                    }
+                                    PritTask = OneTask;
+                                }
+                                else
+                                {
+                                    SfgLo = SfgLo.OrderBy(e => e.T_CREATE).ToList();
+                                    var OneTaskR = SfgLo.FirstOrDefault();
+                                    if (OneTaskR.S_B_STATE == "鏈墽琛�)//鎺ㄩ�浠诲姟
+                                    {
+                                        OneTaskR.N_PRIORITY = 60;
+                                        TaskProcess.SendTask(OneTaskR);
+                                    }
+                                    else
+                                    {
+                                        var Agvstr = NDCHelper.ChangeParamPri(OneTaskR.S_TASK_NO, 60);
+                                        LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + OneTaskR.S_TASK_NO + "浼樺厛绾т负锛� + 60 + "   鏄惁鎴愬姛 :" + Agvstr);
+                                    }
+                                    PritTask = OneTaskR;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
             try
             {
                 LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟鐘舵� 浜嬪姟寮�:" + executeStatePara.transportTask.S_TASK_NO);
@@ -2388,6 +2419,13 @@
                         }
                     }
                 }
+
+                if (PritTask != null)
+                {
+                    // var ddd = executeStatePara.transportTaskSrc.Select(e => e.S_ID).ToList();
+                    var ggj = newDb.Updateable<WMSTask>().SetColumns(it => new WMSTask() { N_PRIORITY = 60 }).Where(e => e.S_ID == PritTask.S_ID).ExecuteCommand();
+                    LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟浼樺厛绾�浠诲姟鍙凤細" + PritTask.S_TASK_NO + "浼樺厛绾т负锛� + 60 + "   鏄惁鎴愬姛 鏀箇ms浠诲姟 褰卞搷琛屾暟:" + ggj);
+                }
                 newDb.CommitTran();
                 LogHelper.TaskDetail(logPara, "鏇存柊浠诲姟鐘舵� 浜嬪姟缁撴潫:" + executeStatePara.transportTask.S_TASK_NO);
                 return OperateResult.Succeed();

--
Gitblit v1.9.1