From b32cf3fbbd4f981d9a218dc3601962395c2a0d70 Mon Sep 17 00:00:00 2001
From: 杨张扬 <634643841@qq.com>
Date: 星期三, 18 六月 2025 17:23:41 +0800
Subject: [PATCH] 双钱-取消任务修改库存信息,点对点也要对应库存

---
 wms/LocationHelper.cs  |    5 ++
 api/ApiHelper.cs       |    4 +-
 process/TaskProcess.cs |   15 +++++--
 core/WCSCore.cs        |   72 +++++++++++++-----------------------
 4 files changed, 43 insertions(+), 53 deletions(-)

diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs
index d4f7731..230651b 100644
--- a/api/ApiHelper.cs
+++ b/api/ApiHelper.cs
@@ -1924,7 +1924,7 @@
                         var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == startLocCnt.S_CNTR_CODE);
                         Task task27 = Task.Run(() =>
                         {
-                            if (endLoc.S_AREA_CODE == Settings.Areas[2] && cginfo != null) //鎻掑叆WMS搴撳瓨鏄庣粏
+                            if (endLoc.S_AREA_CODE == Settings.Areas[1] && cginfo != null) //鎻掑叆WMS搴撳瓨鏄庣粏
                             {
                                 var target = new TN_InventoryM()
                                 {
@@ -1942,7 +1942,7 @@
                         });
                         Task task26 = Task.Run(() =>
                         {
-                            if (startLoc.S_AREA_CODE == Settings.Areas[2] && cginfo != null)
+                            if (startLoc.S_AREA_CODE == Settings.Areas[1] && cginfo != null)
                             {
                                 SpecHelper.DeleteInventoryM(cginfo.S_ID);
                             }
diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index fccab2e..0de22fe 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -162,73 +162,53 @@
                                 case 7:
                                     Task task10 = Task.Run(() =>
                                     {
-                                        if (TN_Task.S_TYPE == "婊℃墭涓嬬嚎鍏ュ簱" || TN_Task.S_TYPE == "PDA婊℃墭涓嬬嚎鍏ュ簱")
+                                        if (TN_Task.S_TYPE.Contains("婊℃墭涓嬬嚎鍏ュ簱") || TN_Task.S_TYPE.Contains("PDA婊℃墭涓嬬嚎鍏ュ簱") || TN_Task.S_END_AREA == Settings.Areas[1])
                                         {
                                             TaskProcess.OperateStatus(TN_Task, 7);//寮傚父澶勭悊
                                         }
                                         else
                                         {
-                                            WCSHelper.Fail(TN_Task);//浠诲姟鐘舵�鏀规垚閿欒
-                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
-                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
-                                            {
-                                                LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
-                                            }
-                                            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)
-                                            {
-                                                SpecHelper.DeleteInventoryM(cginfo.S_ID);
-                                            }
-                                        }
-
-                                        
-                                    });
-
-                                    break;
-                                case 8:
-                                    
-                                    Task task11 = Task.Run(() =>
-                                    {
-                                        if (TN_Task.S_TYPE == "婊℃墭涓嬬嚎鍏ュ簱" || TN_Task.S_TYPE == "PDA婊℃墭涓嬬嚎鍏ュ簱")
-                                        {
-                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
-                                            if (res != null && (res.err_code ==50002 || res.err_code == 0))
-                                            {
-                                                TaskProcess.OperateStatus(TN_Task, 7);//寮傚父澶勭悊
-                                            }
-                                            else
-                                            {
-                                                LogHelper.Info($"寮傚父鍜屽彇娑堟搷浣�璇锋眰缁撴灉澶辫触{res}");
-                                            }
-                                        }
-                                        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))
-                                                {
-                                                    LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
-                                                }
 
                                                 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)
                                                 {
-                                                    SpecHelper.DeleteInventoryM(cginfo.S_ID);
+                                                    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锛屾坊鍔犱换鍔″姩浣滃叧绯昏〃
diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index 235ffe3..cc6ae42 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -12,6 +12,7 @@
 using static HH.WCS.Mobox3.DoubleCoin.api.ApiModel;
 using Org.BouncyCastle.Crypto;
 using HH.WCS.Mobox3.DoubleCoin.device;
+using HH.WCS.Mobox3.DoubleCoin.models;
 
 namespace HH.WCS.Mobox3.DoubleCoin.process {
     internal class TaskProcess {
@@ -51,18 +52,22 @@
                 WCSHelper.End(mst);//浠诲姟鐘舵�鏀规垚缁撴潫
             }
             else {
-                //璧风偣瑙i攣
-                LocationHelper.ErrorLocCntReset(new ErrorLocCntResetInfo() { locID = mst.S_START_LOC,reqCode =1});
                 WCSHelper.Fail(mst);//浠诲姟鐘舵�鏀规垚閿欒
-
                 var db = new SqlHelper<object>().GetInstance();
                 var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == mst.S_CNTR_CODE);
                 if (cginfo!= null)
                 {
-                    SpecHelper.DeleteInventoryM(cginfo.S_ID);
+                    db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == mst.S_CNTR_CODE).ExecuteCommand();
                 }
+                else
+                {
+                    db.Deleteable<TN_InventoryM>().Where(it => it.RFID == mst.S_CNTR_CODE).ExecuteCommand();
+                }
+
+                LocationHelper.ErrorLocCntReset(new ErrorLocCntResetInfo() { locID = mst.S_START_LOC, reqCode = 1 });
             }
-            LocationHelper.UnLockLoc(mst.S_END_LOC);
+            LocationHelper.UnLockLoc(mst.S_START_LOC);//瑙i攣璧风偣
+            LocationHelper.UnLockLoc(mst.S_END_LOC);//瑙i攣缁堢偣
         }
 
         
diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs
index 6cd1348..926ea92 100644
--- a/wms/LocationHelper.cs
+++ b/wms/LocationHelper.cs
@@ -307,6 +307,11 @@
                     bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item });
                 }
 
+                if (bindLocCntList.Count == 0)
+                {
+                    LogHelper.Info($"宸茬粦瀹氾紝娌℃湁瑕佺粦瀹氱殑鏂板鍣紝{logs}");
+                    return $"宸茬粦瀹氾紝娌℃湁瑕佺粦瀹氱殑鏂板鍣紝{logs}";
+                }
 
                 var log = JsonConvert.SerializeObject(bindLocCntList);
 

--
Gitblit v1.9.1