From 7b3b60e8e01a1cf2fb97af695639b18210a160c0 Mon Sep 17 00:00:00 2001
From: 杨张扬 <634643841@qq.com>
Date: 星期日, 20 七月 2025 14:39:16 +0800
Subject: [PATCH] 去线边的,取消任务收到4后直接删除物料容器

---
 wms/WCSHelper.cs |   43 +++++++++++++++++++++++++++++--------------
 1 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/wms/WCSHelper.cs b/wms/WCSHelper.cs
index 8ce42cb..3b63722 100644
--- a/wms/WCSHelper.cs
+++ b/wms/WCSHelper.cs
@@ -187,15 +187,11 @@
             var db = new SqlHelper<TN_Task>().GetInstance();
             if (task != null)
             {
-                if (task.N_B_STATE == 1)
-                {
-                    task.N_B_STATE = 2;
-                    task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE);
-                    task.T_START_TIME = System.DateTime.Now;
-                    task.S_EQ_NO = forklift_no;
-                    db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME, it.S_EQ_NO }).ExecuteCommand();
-                }
-
+                task.N_B_STATE = 2;
+                task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE);
+                task.T_START_TIME = System.DateTime.Now;
+                task.S_EQ_NO = forklift_no;
+                db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME, it.S_EQ_NO }).ExecuteCommand();
             }
         }
         internal static void End(TN_Task task) {
@@ -240,11 +236,12 @@
         public static void CancleTaskInfo(TN_Task tN_Task)
         {
             var HJ = Settings.Areas[1];
+            var db = new SqlHelper<object>().GetInstance();
             if (tN_Task.S_END_AREA == HJ || tN_Task.S_TYPE.Contains("婊℃墭涓嬬嚎鍏ュ簱"))//缁堢偣鏄弧鎵樼紦瀛樺簱鍖�             {
                 LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 缁堢偣鏄弧鎵樼紦瀛樺簱鍖� {tN_Task.S_END_AREA}");
 
-                TaskProcess.OperateStatus(tN_Task, 7);//寮傚父澶勭悊
+                TaskProcess.CacheBitCancelUpdate(tN_Task);//寮傚父澶勭悊
             }
             else if (tN_Task.S_START_AREA == HJ || tN_Task.S_TYPE.Contains("婊℃墭鍑哄簱涓婄嚎"))//璧风偣鏄弧鎵樼紦瀛樺簱鍖�             {
@@ -259,12 +256,27 @@
                 else
                 {
                     WCSHelper.End(tN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫
-                    LocationHelper.BindingLoc(tN_Task.S_END_LOC, tN_Task.S_CNTR_CODE.Split(',').ToList());// 缁戝畾缁堢偣瀹瑰櫒璐т綅
+
+                    if (tN_Task.S_END_AREA != Settings.Areas[2])//涓嶅幓绾胯竟鐨勭粦瀹氱粓鐐�+                    {
+                        LocationHelper.BindingLoc(tN_Task.S_END_LOC, tN_Task.S_CNTR_CODE.Split(',').ToList());// 缁戝畾缁堢偣瀹瑰櫒璐т綅
+                    }
+                    else//鍘荤嚎杈圭殑鍏ㄩ儴鍒犻櫎
+                    {
+                        db.Deleteable<TN_CG_Detail>().Where(it => it.S_CNTR_CODE == tN_Task.S_CNTR_CODE).ExecuteCommand();
+                        db.Deleteable<TN_InventoryM>().Where(it => it.RFID == tN_Task.S_CNTR_CODE).ExecuteCommand();
+                        db.Deleteable<TN_Loc_Container>().Where(it => it.S_CNTR_CODE == tN_Task.S_CNTR_CODE).ExecuteCommand();
+                        db.Deleteable<TN_Container>().Where(it => it.S_CODE == tN_Task.S_CNTR_CODE).ExecuteCommand();
+                    }
 
                     LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鍙栬揣瀹屾垚锛屼换鍔$姸鎬佹敼鎴愮粨鏉燂紝缁戝畾缁堢偣瀹瑰櫒璐т綅");
                 }
                 LocationHelper.UnLockLoc(tN_Task.S_END_LOC);
-                LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
+                if (!WCSHelper.CheckActionRecordExist(tN_Task.S_CODE, 4))
+                {
+                    LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
+                }
+               
             }
             else
             {
@@ -274,7 +286,7 @@
                 {
                     WCSHelper.Fail(tN_Task);//浠诲姟鐘舵�鏀规垚閿欒
 
-                    var db = new SqlHelper<object>().GetInstance();
+
                     var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == tN_Task.S_CNTR_CODE);
                     if (cginfo != null)
                     {
@@ -294,7 +306,10 @@
                     LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鏈彇璐у畬鎴愶紝浠诲姟鐘舵�鏀规垚缁撴潫锛岀粦瀹氱粓鐐瑰鍣ㄨ揣浣�);
                 }
                 LocationHelper.UnLockLoc(tN_Task.S_END_LOC);
-                LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
+                if (!WCSHelper.CheckActionRecordExist(tN_Task.S_CODE, 4))
+                {
+                    LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
+                }
             }
         }
     }

--
Gitblit v1.9.1