From d0c1502a17c8d945e16b498792bd8e50ea9fea9f Mon Sep 17 00:00:00 2001
From: jinxin <1013386558@qq.com>
Date: 星期二, 03 六月 2025 14:11:04 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs |  181 ++++++++++++++++++++++++++++++++------------
 1 files changed, 131 insertions(+), 50 deletions(-)

diff --git a/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs b/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs
index 4836fee..7522ccb 100644
--- a/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs
@@ -207,6 +207,30 @@
             return result;
         }
 
+        internal static SimpleResult ErrorOperation(MoboxOperationBase model)
+        {
+            var result = new SimpleResult();
+            var db = new SqlHelper<object>().GetInstance();
+            var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == model.OperationNo).First();
+            if (wmsTask != null) 
+            {
+                LogHelper.Info($"娓呴櫎閿欒浣滀笟 瑙g粦鎵樼洏 鎵樼洏{wmsTask.S_CNTR_CODE}");
+                db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand();
+                db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand();
+                var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == wmsTask.S_START_LOC).First();
+                if (locInfo != null) 
+                {
+                    LogHelper.Info($"娓呴櫎閿欒浣滀笟 閲嶇疆璐т綅鐘舵� 璐т綅{locInfo.S_CODE}");
+                    locInfo.N_CURRENT_NUM = 0;
+                    locInfo.N_LOCK_STATE = 0;
+                    locInfo.S_LOCK_STATE = "鏃�;
+                    db.Updateable(locInfo).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
+                }
+            }
+
+            return result;
+        }
+
         internal static TaskStateresutl GetTaskState(GetTaskStateModel model)
         {
             var db = new SqlHelper<object>().GetInstance();
@@ -785,9 +809,13 @@
                             //if (task.S_B_STATE != "鍙栨秷" && task.S_B_STATE != "瀹屾垚" && task.S_B_STATE != "鍏抽棴" && task.S_B_STATE != "寮哄埗瀹屾垚")
                             //{
                             TaskProcess.OperateStatus(task, 6);
-                            if (task.S_TYPE.Contains("鍏ュ簱"))
+                            if (task.S_OP_NAME =="鍏ュ簱")
                             {
                                 WMSHelper.AddChange(task);
+                            }
+                            if (task.S_OP_NAME == "鍑哄簱")
+                            {
+                                WMSHelper.DeleteChange(task);
                             }
                             if (task.S_TYPE == "鍒嗘嫞鍥�)
                             {
@@ -849,28 +877,28 @@
                 }
 
             }
-            else
-            {
-                LogHelper.Info($"{locinfo.N_ROADWAY} 宸烽亾鎵句笉鍒板彲鍏ヨ揣浣�闅忔満鍒嗛厤璐т綅");
-                endbit = WMSHelper.GetLiKuLocationIn(locinfo.S_AREA_CODE, 0, locinfo.S_TYPE);
-                if (endbit != null)
-                {
-                    LogHelper.Info($"鏌ユ壘鍒版敼閬撹揣浣嶄负{endbit.S_CODE}");
-                    //淇敼浠诲姟鏁版嵁 缁堢偣 澶囨敞:鏀逛綅
-                    LocationHelper.LockLoc(endbit.S_CODE, 1);
-                    wmstask.S_END_LOC = endbit.S_CODE;
-                    db.Updateable(wmstask).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand();
-                    task.S_END_LOC = endbit.S_CODE;
-                    task.S_NOTE = "鏀逛綅";
-                    db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_NOTE }).ExecuteCommand();
-
-                    var agvBit = db.Queryable<PeiZhi>().Where(it => it.BitCode == endbit.S_CODE).First();
-                    if (agvBit != null)
-                    {
-                        result.new_locate_no = agvBit.PlcLocation;
-                    }
-                }
-            }
+            //else
+            //{
+            //    LogHelper.Info($"{locinfo.N_ROADWAY} 宸烽亾鎵句笉鍒板彲鍏ヨ揣浣�闅忔満鍒嗛厤璐т綅");
+            //    endbit = WMSHelper.GetLiKuLocationIn(locinfo.S_AREA_CODE, 0, locinfo.S_TYPE);
+            //    if (endbit != null)
+            //    {
+            //        LogHelper.Info($"鏌ユ壘鍒版敼閬撹揣浣嶄负{endbit.S_CODE}");
+            //        //淇敼浠诲姟鏁版嵁 缁堢偣 澶囨敞:鏀逛綅
+            //        LocationHelper.LockLoc(endbit.S_CODE, 1);
+            //        wmstask.S_END_LOC = endbit.S_CODE;
+            //        db.Updateable(wmstask).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand();
+            //        task.S_END_LOC = endbit.S_CODE;
+            //        task.S_NOTE = "鏀逛綅";
+            //        db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_NOTE }).ExecuteCommand();
+            //
+            //        var agvBit = db.Queryable<PeiZhi>().Where(it => it.BitCode == endbit.S_CODE).First();
+            //        if (agvBit != null)
+            //        {
+            //            result.new_locate_no = agvBit.PlcLocation;
+            //        }
+            //    }
+            //}
         }
         internal static SimpleResult OutboundOrderExecute(OutboundOrderCheck model)
         {
@@ -1631,46 +1659,98 @@
         {
             WeiLiResult result = new WeiLiResult();
             var db = new SqlHelper<object>().GetInstance();
-            var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).ToList();
-            if (tasks.Count >= 1)
-            {
-                //娴佺▼浠诲姟鏁伴噺鎵ц瓒呰繃涓�潯 浠诲姟涓嶅厑璁稿彇娑�-                result.code = 500;
-                result.msg = "娴佺▼浠诲姟鎵ц涓�涓嶅厑璁稿彇娑�;
-                return result;
-            }
+            //var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).ToList();
+            //if (tasks.Count >= 1)
+            //{
+            //    //娴佺▼浠诲姟鏁伴噺鎵ц瓒呰繃涓�潯 浠诲姟涓嶅厑璁稿彇娑�+            //    result.code = 500;
+            //    result.msg = "娴佺▼浠诲姟鎵ц涓�涓嶅厑璁稿彇娑�;
+            //    return result;
+            //}
+            //var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).OrderByDescending(a => a.T_CREATE).First();
+            //if (task != null)
+            //{
+            //    if (WCSHelper.CheckActionRecordExist(task.S_CODE, 4))
+            //    {
+            //        result.code = 500;
+            //        result.msg = "浠诲姟宸插彇璐у畬鎴�涓嶅厑璁稿彇娑�;
+            //        return result;
+            //    }
+            //    if (task.N_B_STATE == 0)
+            //    {
+            //        //绛夊緟鐩存帴淇敼鐘舵�涓哄彇娑�+            //        WCSHelper.UpdateStatus(model.orderNo, 5);
+            //        //result.msg = "浠诲姟绛夊緟锛岀洿鎺ュ彇娑�;
+            //    }
+            //    else if (task.N_B_STATE != 3 && task.N_B_STATE != 4)
+            //    {
+            //        if (task.S_TYPE == "鏉ゥ")
+            //        {
+            //            //閫氱煡绔嬪簱鍙栨秷浠诲姟
+            //        }
+            //        else
+            //        {
+            //            //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv
+            //            NDCHelper.Cancel(task.S_CODE.Trim());
+            //            //result.msg = "浠诲姟鍙栨秷宸茬粡鍙戦�缁欏皬杞�;
+            //        }
+            //    }
+            //    else
+            //    {
+            //        result.code = 500;
+            //        result.msg = "浠诲姟宸茬粨鏉�;
+            //    }
+            //}
+            //else
+            //{
+            //    result.code = 500;
+            //    result.msg = "浠诲姟涓嶅瓨鍦�;
+            //}
+
             var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).OrderByDescending(a => a.T_CREATE).First();
             if (task != null)
             {
-                if (WCSHelper.CheckActionRecordExist(task.S_CODE, 4))
+                var wmsTask = WMSHelper.GetWmsTask(task.S_OP_CODE);
+                if (wmsTask != null)
                 {
-                    result.code = 500;
-                    result.msg = "浠诲姟宸插彇璐у畬鎴�涓嶅厑璁稿彇娑�;
-                    return result;
-                }
-                if (task.N_B_STATE == 0)
-                {
-                    //绛夊緟鐩存帴淇敼鐘舵�涓哄彇娑�-                    WCSHelper.UpdateStatus(model.orderNo, 5);
-                    //result.msg = "浠诲姟绛夊緟锛岀洿鎺ュ彇娑�;
-                }
-                else if (task.N_B_STATE != 3 && task.N_B_STATE != 4)
-                {
-                    if (task.S_TYPE == "鏉ゥ")
+                    if (task.N_B_STATE == 0)
                     {
-                        //閫氱煡绔嬪簱鍙栨秷浠诲姟
+                        //绛夊緟鐩存帴淇敼鐘舵�涓哄彇娑�+                        WCSHelper.UpdateStatus(task.S_CODE, 4);
+                        wmsTask.N_B_STATE = 6;
+                        WMSHelper.UpdateTaskState(wmsTask);
+                        LocationHelper.UnLockLoc(task.S_START_LOC);
+                        LocationHelper.UnLockLoc(task.S_END_LOC);
+                        LocationHelper.UnLockLoc(wmsTask.S_END_LOC);
+
+                        result.msg = "浠诲姟绛夊緟锛岀洿鎺ュ彇娑�;
+                    }
+                    else if (task.N_B_STATE != 3 && task.N_B_STATE != 4)
+                    {
+                        if (task.S_SCHEDULE_TYPE == "NDC")
+                        {
+                            //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv
+                            NDCApi.CancelOrder(task.S_CODE.Trim());
+                        }
+                        else
+                        {
+                            TaskProcess.Cancel(task);
+                            TaskProcess.OperateStatus(task, 7);
+                            WCSHelper.Fail(task);
+                            WMSHelper.Fail(task);
+                        }
+
+                        result.msg = "浠诲姟鍙栨秷宸茬粡鍙戦�缁欏皬杞�;
                     }
                     else
                     {
-                        //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv
-                        NDCHelper.Cancel(task.S_CODE.Trim());
-                        //result.msg = "浠诲姟鍙栨秷宸茬粡鍙戦�缁欏皬杞�;
+                        result.msg = "浠诲姟宸茬粨鏉�;
                     }
                 }
                 else
                 {
                     result.code = 500;
-                    result.msg = "浠诲姟宸茬粨鏉�;
+                    result.msg = "浠诲姟鎵�鐨勪綔涓氫笉瀛樺湪";
                 }
             }
             else
@@ -1678,6 +1758,7 @@
                 result.code = 500;
                 result.msg = "浠诲姟涓嶅瓨鍦�;
             }
+
             return result;
         }
 

--
Gitblit v1.9.1