From 3c193a58c27e245e1a3eaa76d6018342aac2de1b Mon Sep 17 00:00:00 2001
From: 杨张扬 <634643841@qq.com>
Date: 星期四, 03 七月 2025 17:35:37 +0800
Subject: [PATCH] 双钱-取消任务7和8用一样的逻辑

---
 wms/WCSHelper.cs |   82 ++++++++++++++++++--
 core/WCSCore.cs  |  103 ++++++++-----------------
 2 files changed, 106 insertions(+), 79 deletions(-)

diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index 8403b7c..364926e 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -56,8 +56,8 @@
                 }
                 else
                 {
-                    var TN_Task = WCSHelper.GetTask(model.task_no);//鏍规嵁褰撳墠model缂栧彿鏌ヨ浠诲姟
-                    if (TN_Task != null)
+                    var tN_Task = WCSHelper.GetTask(model.task_no);//鏍规嵁褰撳墠model缂栧彿鏌ヨ浠诲姟
+                    if (tN_Task != null)
                     {
                         if (model.state <= 8)
                         {
@@ -65,43 +65,43 @@
                             switch (model.state)
                             {
                                 case 1:
-                                    WCSHelper.Begin(TN_Task, model.forklift_no);//宸叉帹閫佺殑浠诲姟鐨勭姸鎬佹敼鎴愭墽琛�+                                    WCSHelper.Begin(tN_Task, model.forklift_no);//宸叉帹閫佺殑浠诲姟鐨勭姸鎬佹敼鎴愭墽琛�                                     Task task4 = Task.Run(() =>
                                     {
                                         OpenScanCode(model.task_no, model.forklift_no);//寮�惎鎵爜
                                     });
                                     break;
                                 case 3:
-                                    WCSHelper.UpdateStatus(TN_Task, "寮�鍙栬揣");//浠诲姟鐘舵�鏀规垚寮�鍙栬揣
+                                    WCSHelper.UpdateStatus(tN_Task, "寮�鍙栬揣");//浠诲姟鐘舵�鏀规垚寮�鍙栬揣
                                     break;
                                 case 4:
-                                    WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚
-                                    TaskProcess.OperateStatus(TN_Task, 4);//璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣
+                                    WCSHelper.UpdateStatus(tN_Task, "鍙栬揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚
+                                    TaskProcess.OperateStatus(tN_Task, 4);//璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣
                                     
                                     Task task3 = Task.Run(() =>
                                     {
-                                        EmptyInStackArea(TN_Task);
+                                        EmptyInStackArea(tN_Task);
                                     });
 
                                     Task task1 = Task.Run(() =>
                                     {
-                                        returnS7Ok(TN_Task);
+                                        returnS7Ok(tN_Task);
                                     });
 
                                     break;
                                 case 5:
-                                    WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣");//浠诲姟鐘舵�鏀规垚寮�鍗歌揣
+                                    WCSHelper.UpdateStatus(tN_Task, "寮�鍗歌揣");//浠诲姟鐘舵�鏀规垚寮�鍗歌揣
 
                                     break;
                                 case 6:
-                                    WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍗歌揣瀹屾垚
-                                    TaskProcess.OperateStatus(TN_Task, 6);//缁堢偣瀹瑰櫒璐т綅缁戝畾,瑙i攣缁堢偣
+                                    WCSHelper.UpdateStatus(tN_Task, "鍗歌揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍗歌揣瀹屾垚
+                                    TaskProcess.OperateStatus(tN_Task, 6);//缁堢偣瀹瑰櫒璐т綅缁戝畾,瑙i攣缁堢偣
 
                                     Task task2 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_TYPE == "绌烘墭鍑哄簱鍏ョ嚎")
+                                        if (tN_Task.S_TYPE == "绌烘墭鍑哄簱鍏ョ嚎")
                                         {
-                                            var ip = Settings.ProductionLines.FirstOrDefault(a => a.PointIn == TN_Task.S_END_LOC).ProductionLine_IP;
+                                            var ip = Settings.ProductionLines.FirstOrDefault(a => a.PointIn == tN_Task.S_END_LOC).ProductionLine_IP;
                                             if (!Settings.S7TestMoni)
                                             {
                                                 S7Helper.WriteBytes(ip, 10, 2, new byte[] { 0, 11, 1 });
@@ -111,110 +111,73 @@
 
                                     Task task29 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_TYPE == "浣欐枡涓嬬嚎鍏ュ簱")
+                                        if (tN_Task.S_TYPE == "浣欐枡涓嬬嚎鍏ュ簱")
                                         {
-                                            SpecHelper.UpdateSurplusDetail(TN_Task.S_CODE);
+                                            SpecHelper.UpdateSurplusDetail(tN_Task.S_CODE);
                                         }
                                     });
 
                                     Task task30 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_TYPE.Contains("鍥炵倝"))
+                                        if (tN_Task.S_TYPE.Contains("鍥炵倝"))
                                         {
-                                            SpecHelper.UpdateRemeltDetail(TN_Task.S_CODE);
+                                            SpecHelper.UpdateRemeltDetail(tN_Task.S_CODE);
                                         }
                                     });
 
                                     Task task31 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_TYPE == "婊℃墭鍑哄簱涓婄嚎")
+                                        if (tN_Task.S_TYPE == "婊℃墭鍑哄簱涓婄嚎")
                                         {
-                                            SpecHelper.UpdateComponentDetail(TN_Task.S_CODE);
+                                            SpecHelper.UpdateComponentDetail(tN_Task.S_CODE);
                                         }
                                     });
 
 
                                     Task task12 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_TYPE == "PDA婊℃墭涓嬬嚎鍏ュ簱" || TN_Task.S_TYPE == "PLC婊℃墭涓嬬嚎鍏ュ簱")
+                                        if (tN_Task.S_TYPE == "PDA婊℃墭涓嬬嚎鍏ュ簱" || tN_Task.S_TYPE == "PLC婊℃墭涓嬬嚎鍏ュ簱")
                                         {
-                                            SpecHelper.UpdateComponentDetail(TN_Task.S_CODE);
+                                            SpecHelper.UpdateComponentDetail(tN_Task.S_CODE);
                                         }
                                     });
 
                                     Task task19 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_END_AREA == Settings.Areas[1])
+                                        if (tN_Task.S_END_AREA == Settings.Areas[1])
                                         {
-                                            SpecHelper.UpdateInventoryM_RuKu(TN_Task.S_CNTR_CODE);
+                                            SpecHelper.UpdateInventoryM_RuKu(tN_Task.S_CNTR_CODE);
                                         }
                                         else
                                         {
-                                            LogHelper.Info($"鏇存柊WMS搴撳瓨鏄庣粏鐨勫叆搴撴椂闂磋烦杩囷紝TN_Task.S_END_AREA锛�{TN_Task.S_END_AREA }涓嶇瓑浜�Settings.Areas[1]锛歿Settings.Areas[1]}");
+                                            LogHelper.Info($"鏇存柊WMS搴撳瓨鏄庣粏鐨勫叆搴撴椂闂磋烦杩囷紝TN_Task.S_END_AREA锛�{tN_Task.S_END_AREA }涓嶇瓑浜�Settings.Areas[1]锛歿Settings.Areas[1]}");
                                         }
                                     });
 
                                     break;
                                 case 2:
-                                    WCSHelper.End(TN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫
+                                    WCSHelper.End(tN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫
 
                                     break;
                                 case 7:
                                     Task task10 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_END_AREA == Settings.Areas[1])//缁堢偣鏄弧鎵樼紦瀛樺簱鍖�-                                        {
-                                            TaskProcess.OperateStatus(TN_Task, 7);//寮傚父澶勭悊
-                                        }
-                                        else if(TN_Task.S_START_AREA == Settings.Areas[1])//璧风偣鏄弧鎵樼紦瀛樺簱鍖�-                                        {
-                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//鏈彇璐у畬鎴�-                                            {
-                                                WCSHelper.Fail(TN_Task);//浠诲姟鐘舵�鏀规垚閿欒
-                                            }
-                                            else
-                                            {
-                                                WCSHelper.End(TN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫
-                                                LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList());// 缁戝畾缁堢偣瀹瑰櫒璐т綅
-                                            }
-                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
-                                            LocationHelper.UnLockLoc(TN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
-                                        }
-                                        else
-                                        {
-                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//鏈彇璐у畬鎴�-                                            {
-                                                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)
-                                                {
-                                                    db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand();
-                                                }
-                                                else
-                                                {
-                                                    db.Deleteable<TN_InventoryM>().Where(it => it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand();
-                                                }
-                                            }
-                                            else
-                                            {
-                                                WCSHelper.End(TN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫
-                                                LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList());
-                                               
-                                            }
-                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
-                                            LocationHelper.UnLockLoc(TN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
-                                        }
+                                        WCSHelper.CancleTaskInfo(tN_Task);
                                     });
                                     break;
 
                                 case 8:
 
-                                    var res = NDCApi.CancelOrder(TN_Task.S_CODE);
+                                    var res = NDCApi.CancelOrder(tN_Task.S_CODE);
                                     if (res != null && (res.err_code == 50002 || res.err_code == 0))
                                     {
                                         LogHelper.Info($"寮傚父鍜屽彇娑堟搷浣�璇锋眰缁撴灉鎴愬姛{res}");
+
+                                        Task task8 = Task.Run(() =>
+                                        {
+                                            WCSHelper.CancleTaskInfo(tN_Task);
+                                        });
+
                                     }
                                     else
                                     {
diff --git a/wms/WCSHelper.cs b/wms/WCSHelper.cs
index f435aa9..8ce42cb 100644
--- a/wms/WCSHelper.cs
+++ b/wms/WCSHelper.cs
@@ -1,4 +1,6 @@
-锘縰sing HH.WCS.Mobox3.DoubleCoin.util;
+锘縰sing HH.WCS.Mobox3.DoubleCoin.models;
+using HH.WCS.Mobox3.DoubleCoin.process;
+using HH.WCS.Mobox3.DoubleCoin.util;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
@@ -13,12 +15,12 @@
             var date = DateTime.Now.ToString("yyMMdd");
             return $"TN{date}{id.ToString().PadLeft(4, '0')}";
         }
-        internal static bool UpdateStatus(TN_Task task, string status) 
+        internal static bool UpdateStatus(TN_Task task, string status)
         {
             var res = false;
             var db = new SqlHelper<TN_Task>().GetInstance();
             task.S_B_STATE = status;
-            res = db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand()>0;
+            res = db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand() > 0;
             return res;
         }
         internal static bool UpdateStatus(TN_Task task) {
@@ -36,7 +38,7 @@
             db.Updateable(task).UpdateColumns(it => new { it.S_EQ_TASK_CODE, it.T_MODIFY }).ExecuteCommand();
             return res;
         }
-       
+
         internal static TN_Task GetTask(string no) {
             var db = new SqlHelper<TN_Task>().GetInstance();
             var task = db.Queryable<TN_Task>().Where(a => a.S_CODE == no).First();
@@ -56,7 +58,7 @@
         /// <param name="cntrInfo">瀹瑰櫒缂栫爜</param>
         /// <param name="spec">鐗╂枡瑙勬牸</param>
         /// <returns></returns>
-        internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo,string spec = "") 
+        internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo, string spec = "")
         {
             var fromLoc = LocationHelper.GetLocation(from);
             var endLoc = LocationHelper.GetLocation(to);
@@ -95,7 +97,7 @@
 
         }
 
-        internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo, out string taskNo, string spec = "" )
+        internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo, out string taskNo, string spec = "")
         {
             var fromLoc = LocationHelper.GetLocation(from);
             var endLoc = LocationHelper.GetLocation(to);
@@ -180,12 +182,12 @@
             return db.Queryable<TN_Task_Action>().Count(a => a.S_TASK_CODE == no && a.N_ACTION_CODE == code) > 0;
         }
 
-        internal static void Begin(TN_Task task, string forklift_no) 
+        internal static void Begin(TN_Task task, string forklift_no)
         {
             var db = new SqlHelper<TN_Task>().GetInstance();
-            if (task != null) 
+            if (task != null)
             {
-                if (task.N_B_STATE == 1) 
+                if (task.N_B_STATE == 1)
                 {
                     task.N_B_STATE = 2;
                     task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE);
@@ -233,6 +235,68 @@
             var db = new SqlHelper<object>().GetInstance();
             return db.Queryable<TN_Task>().Where(a => a.N_B_STATE == 0 && (a.S_B_STATE == "绛夊緟" || a.S_B_STATE == "寰呮帹閫�)).ToList();
         }
+
+
+        public static void CancleTaskInfo(TN_Task tN_Task)
+        {
+            var HJ = Settings.Areas[1];
+            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);//寮傚父澶勭悊
+            }
+            else if (tN_Task.S_START_AREA == HJ || tN_Task.S_TYPE.Contains("婊℃墭鍑哄簱涓婄嚎"))//璧风偣鏄弧鎵樼紦瀛樺簱鍖�+            {
+                LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 璧风偣鏄弧鎵樼紦瀛樺簱鍖� {tN_Task.S_START_AREA}");
+
+                if (!WCSHelper.CheckActionRecordExist(tN_Task.S_CODE, 4))//鏈彇璐у畬鎴�+                {
+                    WCSHelper.Fail(tN_Task);//浠诲姟鐘舵�鏀规垚閿欒
+
+                    LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鏈彇璐у畬鎴愶紝浠诲姟鐘舵�鏀规垚閿欒");
+                }
+                else
+                {
+                    WCSHelper.End(tN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫
+                    LocationHelper.BindingLoc(tN_Task.S_END_LOC, tN_Task.S_CNTR_CODE.Split(',').ToList());// 缁戝畾缁堢偣瀹瑰櫒璐т綅
+
+                    LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鍙栬揣瀹屾垚锛屼换鍔$姸鎬佹敼鎴愮粨鏉燂紝缁戝畾缁堢偣瀹瑰櫒璐т綅");
+                }
+                LocationHelper.UnLockLoc(tN_Task.S_END_LOC);
+                LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
+            }
+            else
+            {
+                LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 璧风偣缁堢偣閮戒笉鏄弧鎵樼紦瀛樺簱鍖� {tN_Task.S_START_AREA}  {tN_Task.S_END_AREA}");
+
+                if (!WCSHelper.CheckActionRecordExist(tN_Task.S_CODE, 4))//鏈彇璐у畬鎴�+                {
+                    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)
+                    {
+                        db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == tN_Task.S_CNTR_CODE).ExecuteCommand();
+                    }
+                    else
+                    {
+                        db.Deleteable<TN_InventoryM>().Where(it => it.RFID == tN_Task.S_CNTR_CODE).ExecuteCommand();
+                    }
+                    LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鏈彇璐у畬鎴愶紝浠诲姟鐘舵�鏀规垚閿欒锛屽垹闄ゆ敼瀹瑰櫒鍙风殑鎵�湁搴撳瓨{tN_Task.S_CNTR_CODE}");
+                }
+                else
+                {
+                    WCSHelper.End(tN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫
+                    LocationHelper.BindingLoc(tN_Task.S_END_LOC, tN_Task.S_CNTR_CODE.Split(',').ToList());
+
+                    LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鏈彇璐у畬鎴愶紝浠诲姟鐘舵�鏀规垚缁撴潫锛岀粦瀹氱粓鐐瑰鍣ㄨ揣浣�);
+                }
+                LocationHelper.UnLockLoc(tN_Task.S_END_LOC);
+                LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣
+            }
+        }
     }
 
     public class CreateTasks

--
Gitblit v1.9.1