From 79db8fda0f71b65dfe1e1c72f307b29efc565126 Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期一, 04 八月 2025 17:31:22 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs |   95 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 91 insertions(+), 4 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs
index e543e7e..6d12d3e 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs
@@ -20,7 +20,9 @@
         {
             var res = false;
             var db = new SqlHelper<WCSTask>().GetInstance();
+
             task.S_B_STATE = status;
+
             db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand();
             return res;
         }
@@ -68,6 +70,26 @@
             string[] statue = new string[] { "瀹屾垚", "鍙栨秷", "閿欒" };
             var task = db.Queryable<WCSTask>().Where(a => a.S_START_LOC.Trim() == loc && !statue.Contains(a.S_B_STATE.Trim())).First();
             return task;
+        }
+
+        /// <summary>
+        /// 鏍规嵁缁堢偣搴撳尯鏌ユ壘鏈畬鎴愮殑浠诲姟鏁伴噺
+        /// </summary>
+        /// <param name="loc"></param>
+        /// <returns></returns>
+        internal static int GetTaskByEndArea(string area, string locType = null)
+        {
+            var db = new SqlHelper<WCSTask>().GetInstance();
+            string[] statue = new string[] { "瀹屾垚", "鍙栨秷", "閿欒" };
+            if (string.IsNullOrEmpty(locType))
+            {
+                return db.Queryable<WCSTask>().Where(a => a.S_END_AREA.Trim() == area && !statue.Contains(a.S_B_STATE.Trim())).Count();
+            }
+            else 
+            {
+                return db.Queryable<WCSTask>().Where(a => a.S_END_AREA.Trim() == area && !statue.Contains(a.S_B_STATE.Trim())&&a.S_END_LOC.Contains(locType)).Count();
+            }
+            
         }
         /// <summary>
         /// 鏍规嵁鎵樼洏缂栫爜鑾峰彇瀹屾垚鐨勪换鍔�@@ -169,9 +191,12 @@
             }
             return res;
         }
+        public static object _add;
         internal static bool AddActionRecord(string no, int state, string forkliftNo, string extData)
         {
+
             var db = new SqlHelper<TaskAction>().GetInstance();
+
             var action = new TaskAction()
             {
                 N_ACTION_CODE = state,
@@ -181,13 +206,15 @@
                 S_DATA = extData
             };
             return db.Insertable(action).ExecuteCommand() > 0;
+
+
         }
         internal static bool CheckActionRecordExist(string no, int code)
         {
             var db = new SqlHelper<TaskAction>().GetInstance();
             return db.Queryable<TaskAction>().Count(a => a.S_TASK_CODE == no && a.N_ACTION_CODE == code) > 0;
         }
-        internal static void Begin(WCSTask task)
+        internal static void Begin(WCSTask task, string agvno)
         {
             var db = new SqlHelper<WCSTask>().GetInstance();
             if (task != null)
@@ -197,8 +224,24 @@
                     task.N_B_STATE = 2;
                     task.S_B_STATE = WCSTask.GetStateStr(task.N_B_STATE);
                     task.T_START_TIME = DateTime.Now;
-                    db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME }).ExecuteCommand();
+                    task.S_WORKSHOP_NO = agvno;
+                    db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.S_WORKSHOP_NO }).ExecuteCommand();
                 }
+
+            }
+        }
+
+        internal static void UpdateAgvNo(WCSTask task, string agvno)
+        {
+            var db = new SqlHelper<WCSTask>().GetInstance();
+            if (task != null)
+            {
+
+
+                task.T_START_TIME = DateTime.Now;
+                task.S_WORKSHOP_NO = agvno;
+                db.Updateable(task).UpdateColumns(it => new { it.T_START_TIME, it.S_WORKSHOP_NO }).ExecuteCommand();
+
 
             }
         }
@@ -226,13 +269,57 @@
         }
         internal static bool CreateTask(WCSTask TN_Task)
         {
+
+            var db = new SqlHelper<WCSTask>().GetInstance();
             try
             {
-                var db = new SqlHelper<WCSTask>().GetInstance();
-                return db.Insertable(TN_Task).ExecuteCommand() > 0;
+                bool res = false;
+                LogHelper.Info($"浠诲姟锛歿TN_Task.S_CODE}寮�鍒涘缓");
+                db.BeginTran();
+                res = db.Insertable(TN_Task).ExecuteCommand() > 0;
+                if (res)
+                {
+                    var Startmodel = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == TN_Task.S_START_LOC).First();
+                    var Endmodel = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == TN_Task.S_END_LOC).First();
+                    if (Startmodel != null && Startmodel.S_LOCK_STATE.Trim() == "鏃�)
+                    {
+                        Startmodel.N_LOCK_STATE = 2;
+                        Startmodel.S_LOCK_STATE = Location.GetLockStateStr(2);
+                        res = db.Updateable(Startmodel).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0;
+                    }
+                    //else
+                    //{
+                    //    LogHelper.Info($"浠诲姟:{TN_Task.S_CODE}鐢熸垚澶辫触,璧风偣璐т綅涓嶅彲鐢�);
+                    //    db.RollbackTran();
+                    //    return false;
+                    //}
+                    if (Endmodel != null && Endmodel.S_LOCK_STATE.Trim() == "鏃�)
+                    {
+                        Endmodel.N_LOCK_STATE = 1;
+                        Endmodel.S_LOCK_STATE = Location.GetLockStateStr(1);
+                        res = db.Updateable(Endmodel).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0;
+                    }
+                    if (res)
+                    {
+                        LogHelper.Info($"閿佸畾璐т綅鎴愬姛");
+                        db.CommitTran();
+                    }
+                    else
+                    {
+                        LogHelper.Info($"閿佸畾璐т綅澶辫触");
+                        db.RollbackTran();
+                    }
+                }
+                else
+                {
+                    LogHelper.Info($"浠诲姟:{TN_Task.S_CODE}鐢熸垚澶辫触");
+                    db.RollbackTran();
+                }
+                return res;
             }
             catch (Exception ex)
             {
+                db.RollbackTran();
                 Console.WriteLine(ex.Message);
                 throw;
             }

--
Gitblit v1.9.1