From 9b5404709cb492a3db6cb967809229155438f885 Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期二, 01 七月 2025 15:49:11 +0800
Subject: [PATCH] 1

---
 HH.WCS.QingXiNongfu/wms/TaskHelper.cs |   92 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 74 insertions(+), 18 deletions(-)

diff --git a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs
index af8b239..fb28716 100644
--- a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs
+++ b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs
@@ -1,4 +1,4 @@
-锘縰sing HH.WCS.QingXigongchang.process;
+锘縰sing HH.WCS.QingXigongchang.dispatch;
 using HH.WCS.QingXigongchang.util;
 using Newtonsoft.Json;
 using SqlSugar;
@@ -82,18 +82,23 @@
             var db = new SqlHelper<WMSTask>().GetInstance();
             return db.Queryable<WMSTask>().Where(a => a.S_TYPE.Trim() == taskType).ToList();
         }
-        internal static bool CreateTask(string no, string from, string to, string taskType, int pri, string cntrInfo, int cntrCount = 1, int startLayer = 1, int endLayer = 1, string note = "", bool lockLoc = false)
+        internal static bool CreateTask(string no, string from, string to, string taskType, int pri, string cntrInfo, int cntrCount = 1, int startLayer = 1, int endLayer = 1, string note = "", bool lockLoc = false, string TwoEndLoc = "")
         {
             var fromLoc = LocationHelper.GetLoc(from);
             var endLoc = LocationHelper.GetLoc(to);
+            var chi = new SqlHelper<object>().GetInstance();
+            var newDb = chi.CopyNew();
+            //NDCHelper.ChangeParam(taskNo, agvsite, 2);
+            //NDCHelper.ChangeParam(taskNo, 2, 6);
+
             if (fromLoc.S_AREA_CODE == "YWLRGDD")
             {
                 //鏌ヨ浠诲姟琛� 瑕佹眰鏄彧鑳界敓鎴愪袱涓换鍔�璧风偣搴撳尯涓篩WLRGDD  hh_plg  2025骞�鏈�鏃�
-                List<string> TaskState = new List<string>() { "瀹屾垚", "鍙栨秷" };
-                var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_START_LAREA == "YWLRGDD" && !TaskState.Contains(x.S_B_STATE));
-                if (TaskListNum.Count() >= 2)
+
+                var TaskListNum = newDb.Queryable<Location>().Where(l => l.S_AREA_CODE == "YWLRGDD" && l.S_LOCK_STATE == "鍑哄簱閿�).ToList();
+                if (TaskListNum.Count() >= 3)
                 {
-                    LogHelper.Info($"CreateTransport-  CreateTask Error" + $"璧风偣搴撳尯涓篩WLRGDD 鍒欐渶澶氬彧鑳界敓鎴愪袱涓换鍔�);
+                    LogHelper.Info($"CreateTransport-  CreateTask Error" + $"璧风偣搴撳尯涓篩WLRGDD 鍒欐渶澶氬彧鑳界敓鎴愪笁涓换鍔�);
                     return false;
                 }
             }
@@ -123,6 +128,12 @@
                         return false;
                     }
                 }
+                if (!taskType.Contains("鎴愬搧婊℃-鍏ュ簱"))
+                    if (endLoc.N_CURRENT_NUM >= endLayer || fromLoc.N_CURRENT_NUM < startLayer)
+                    {
+                        LogHelper.Info($"CreateTransport-  CreateTask Error" + $"璧风偣鏁伴噺{fromLoc.N_CURRENT_NUM}<{startLayer}鎴栬�{endLoc.N_CURRENT_NUM}>={endLayer} ");
+                        return false;
+                    }
             }
             WMSTask wmsTask = new WMSTask()
             {
@@ -136,6 +147,7 @@
                 S_SRC_NO = no,
                 N_PRIORITY = pri,
                 S_NOTE = note,
+                S_TWO_END_LOC = TwoEndLoc,
                 S_WORK_MODE = "agv",
                 S_B_STATE = "鏈墽琛�,
                 S_CNTRS = cntrInfo,
@@ -145,6 +157,8 @@
             };
 
             LogHelper.Info($"CreateTransport-  CreateTask" + $"{JsonConvert.SerializeObject(wmsTask)}");
+            LogHelper.Info($"CreateTransport-  CreateTask {wmsTask.S_TASK_NO} 璧风偣:{JsonConvert.SerializeObject(from)}");
+            LogHelper.Info($"CreateTransport-  CreateTask {wmsTask.S_TASK_NO} 缁堢偣:{JsonConvert.SerializeObject(to)}");
             return CreateTask(wmsTask, lockLoc);
         }
         internal static string GetDeptName(string taskType)
@@ -225,16 +239,60 @@
         }
         internal static void End(WMSTask task)
         {
-            var db = new SqlHelper<WMSTask>().GetInstance();
+            var db = new SqlHelper<object>().GetInstance();
+
+            if (task.S_END_LAREA == "YWLYLTKQ" || task.S_END_LAREA == "YWLTKKTQ")
+            {
+                //鏌ヨ鍑哄簱閿乊WLWJJB
+                var ls = LocationHelper.GetList<Location>(x => x.S_AREA_CODE == "YWLWJJB" && x.S_LOCK_STATE == "鍑哄簱閿�);
+                if (ls.Any())
+                {
+                    var tas = db.Queryable<WMSTask>().Where(a => a.S_START_LOC == ls.First().S_LOC_CODE).ToList().FirstOrDefault();
+                    if (tas.S_B_STATE == "宸叉帹閫�)
+                    {
+                        NDC.ChangeParamPri(tas.S_TASK_NO, 70);
+                    }
+                }
+            }
+            ////plg 2025骞�鏈�3鏃�10:42:24
+            //if (task.S_END_LAREA == "YWLWJJB" && task.S_START_LAREA != "YWLRGDD" && !string.IsNullOrEmpty(task.S_TWO_END_LOC))
+            //{
+            //    var model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == task.S_TWO_END_LOC).First();
+            //    if (model != null)
+            //    {
+            //        //鍏堣В閿佺粓鐐�鍦ㄩ攣瀹�+            //        db.Ado.BeginTran();
+            //        try
+            //        {
+            //            model.S_LOCK_STATE = "鏃�;
+            //            var res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
+            //            LogHelper.Info(task.S_TWO_END_LOC + "LockLoc:閿佺粨鏋� + res);
+            //            db.Ado.CommitTran();
+            //        }
+            //        catch (Exception ex)
+            //        {
+            //            db.Ado.RollbackTran();
+            //            LogHelper.Info("CreateTask 澶辫触 " + ex.Message);
+            //        }
+
+            //        LogHelper.Info(task.S_TWO_END_LOC + "浜屾浠诲姟 寮�銆�");
+            //        var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_TWO_END_LOC, "鍘熺墿鏂欐惉杩�绾哥", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY);
+            //        //if (b)
+            //        //{
+            //        //    if (task != null)
+            //        //    {
+            //        //        task.S_B_STATE = "瀹屾垚";
+            //        //        task.T_END_TIME = DateTime.Now;
+            //        //        db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand();
+            //        //    }
+            //        //}
+            //    }
+            //}
             if (task != null)
             {
                 task.S_B_STATE = "瀹屾垚";
                 task.T_END_TIME = DateTime.Now;
                 db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand();
-            }
-            if (task.S_END_LAREA == "YWLWJJB")
-            {
-                var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_NOTE, "鍘熺墿鏂欐惉杩�绾哥", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY);
             }
         }
         internal static void Fail(WMSTask task)
@@ -283,12 +341,10 @@
                     LogHelper.Info(wmsTask.S_START_LOC + "LockLoc:閿佺粨鏋� + res);
 
                     model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == wmsTask.S_END_LOC).First();
-                    if (wmsTask.S_START_LAREA != "YWLWJJB")
-                    {
-                        model.S_LOCK_STATE = "鍏ュ簱閿�;
-                        res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
-                        LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:閿佺粨鏋� + res);
-                    }
+                    model.S_LOCK_STATE = "鍏ュ簱閿�;
+                    res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
+                    LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:閿佺粨鏋� + res);
+
                 }
                 db.Insertable(wmsTask).ExecuteCommand();
                 db.Ado.CommitTran();
@@ -313,7 +369,7 @@
         {
             var db = new SqlHelper<object>().GetInstance();
             //LogHelper.Info(DateTime.Now.ToLongTimeString() + "=====" + ShuiGaiTask.ToString());
-            return db.Queryable<WMSTask>().OrderBy(" N_PRIORITY DESC ").Where(a => a.S_B_STATE.Trim() == state).Take(10).ToList();
+            return db.Queryable<WMSTask>().OrderBy(" N_PRIORITY DESC ").Where(a => a.S_B_STATE.Trim() == state).ToList();
 
         }
 

--
Gitblit v1.9.1