From fad1333a599e562c8fa7ee350852fee72b9a6a28 Mon Sep 17 00:00:00 2001
From: 杨张扬 <634643841@qq.com>
Date: 星期三, 02 七月 2025 17:33:25 +0800
Subject: [PATCH] 出库任务取消在4之前不删除库存

---
 core/WCSCore.cs |   67 +++++++++++++++++++--------------
 1 files changed, 38 insertions(+), 29 deletions(-)

diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index f1d10c1..8403b7c 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -1,5 +1,6 @@
 锘縰sing HH.WCS.Mobox3.DoubleCoin.device;
 using HH.WCS.Mobox3.DoubleCoin.dispatch;
+using HH.WCS.Mobox3.DoubleCoin.models;
 using HH.WCS.Mobox3.DoubleCoin.process;
 using HH.WCS.Mobox3.DoubleCoin.util;
 using HH.WCS.Mobox3.DoubleCoin.wms;
@@ -161,58 +162,66 @@
                                 case 7:
                                     Task task10 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_TYPE == "婊℃墭涓嬬嚎鍏ュ簱")
+                                        if (TN_Task.S_END_AREA == Settings.Areas[1])//缁堢偣鏄弧鎵樼紦瀛樺簱鍖�                                         {
                                             TaskProcess.OperateStatus(TN_Task, 7);//寮傚父澶勭悊
                                         }
-                                        else if(TN_Task.S_TYPE == "婊℃墭鍑哄簱涓婄嚎")
+                                        else if(TN_Task.S_START_AREA == Settings.Areas[1])//璧风偣鏄弧鎵樼紦瀛樺簱鍖�                                         {
-                                            WCSHelper.Fail(TN_Task);//浠诲姟鐘舵�鏀规垚閿欒
-                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
-                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
+                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//鏈彇璐у畬鎴�                                             {
-                                                LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
-                                            }
-                                        }
-                                    });
-
-                                    break;
-                                case 8:
-                                    
-                                    Task task11 = Task.Run(() =>
-                                    {
-                                        if (TN_Task.S_TYPE == "婊℃墭涓嬬嚎鍏ュ簱")
-                                        {
-                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
-                                            if (res != null && (res.err_code ==50002 || res.err_code == 0))
-                                            {
-                                                TaskProcess.OperateStatus(TN_Task, 7);//寮傚父澶勭悊
+                                                WCSHelper.Fail(TN_Task);//浠诲姟鐘舵�鏀规垚閿欒
                                             }
                                             else
                                             {
-                                                LogHelper.Info($"寮傚父鍜屽彇娑堟搷浣�璇锋眰缁撴灉澶辫触{res}");
+                                                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
                                         {
-                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
-                                            if (res != null && (res.err_code == 50002 || res.err_code == 0))
+                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//鏈彇璐у畬鎴�                                             {
                                                 WCSHelper.Fail(TN_Task);//浠诲姟鐘舵�鏀规垚閿欒
-                                                LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
-                                                if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
+
+                                                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)
                                                 {
-                                                    LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
+                                                    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
                                             {
-                                                LogHelper.Info($"寮傚父鍜屽彇娑堟搷浣�璇锋眰缁撴灉澶辫触{res}");
+                                                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攣璧风偣缁堢偣
                                         }
                                     });
                                     break;
+
+                                case 8:
+
+                                    var res = NDCApi.CancelOrder(TN_Task.S_CODE);
+                                    if (res != null && (res.err_code == 50002 || res.err_code == 0))
+                                    {
+                                        LogHelper.Info($"寮傚父鍜屽彇娑堟搷浣�璇锋眰缁撴灉鎴愬姛{res}");
+                                    }
+                                    else
+                                    {
+                                        LogHelper.Info($"寮傚父鍜屽彇娑堟搷浣�璇锋眰缁撴灉澶辫触{res}");
+                                    }
+
+                                    break;
                             }
                             WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
                             //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus锛屾坊鍔犱换鍔″姩浣滃叧绯昏〃

--
Gitblit v1.9.1