From 61ece19b5b178d1b23bed16c733b01af1185f838 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期日, 20 七月 2025 23:11:43 +0800
Subject: [PATCH] 0720

---
 dispatch/WcsTask.cs |  109 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 76 insertions(+), 33 deletions(-)

diff --git a/dispatch/WcsTask.cs b/dispatch/WcsTask.cs
index ef7dba2..7ee98e1 100644
--- a/dispatch/WcsTask.cs
+++ b/dispatch/WcsTask.cs
@@ -16,6 +16,7 @@
 using System.Web.Services.Description;
 using Top.Api;
 using static HH.WCS.ZhongCeJinTan.api.ApiModel;
+using static HH.WCS.ZhongCeJinTan.util.Settings;
 using static HH.WCS.ZhongCeJinTan.wms.WcsModel;
 
 namespace HH.WCS.ZhongCeJinTan.dispatch
@@ -1207,8 +1208,72 @@
             }
 
         }
+        
+        /// <summary>
+        /// 鍙栬揣鏃犺揣
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public static WcsWarningReurn ZcOutChangeBit(changeBitParme model)
+        {
+            var result = new WcsWarningReurn();
+            var newDb = new SqlHelper<object>().GetInstance();
 
+            try
+            {
+                if (string.IsNullOrEmpty(model.taskNo))
+                {
+                    throw new Exception("浠诲姟鍙蜂负绌�);
+                }
 
+                var task = TaskHelper.GetTask(model.taskNo);
+                if (task == null)
+                {
+                    throw new Exception($"鏈煡璇㈠埌浠诲姟鍙穥model.taskNo}鐨勪换鍔�);
+                }
+
+                if (task.S_TYPE.Contains("鍑哄簱"))
+                {
+                    //鍙栬揣鏃犺揣
+                    LogHelper.Info($"浠诲姟鍙穥task.S_CODE},鍙栬揣鏃犺揣,鍙栨秷浠诲姟", "鍙栬揣鏃犺揣");
+                    if (WcsCancellTask(task))
+                    {
+                        LogHelper.Info($"浠诲姟鍙穥task.S_CODE},鍙栨秷浠诲姟鎴愬姛锛岃捣鐐箋task.S_START_LOC}璁句负寮傚父", "鍙栬揣鏃犺揣");
+                        TaskHelper.Fail(task);
+                        TaskProcess.OperateStatus(task, 7);
+                        LocationHelper.updateLocLock(task.S_START_LOC, 3, "鍏朵粬閿�);
+                        var agvTask = TaskHelper.GetTaskByWorkNo(task.S_OP_CODE, "agv");
+                        if (agvTask != null)
+                        {
+                            if (agvTask.S_B_STATE != "鏈墽琛�)
+                            {
+                                NDCApi.CancelOrder(agvTask.S_CODE.Trim());
+                            }
+                            TaskHelper.Fail(agvTask);
+                            TaskProcess.CacheBitCancelUpdate(agvTask);
+                        }
+                    }
+
+                }
+                else
+                {
+                    throw new Exception($"浠诲姟鍙穥model.taskNo},浠诲姟绫诲瀷{task.S_TYPE}");
+                }
+                result.msg = "Wcs鍙栬揣鏃犺揣澶勭悊鎴愬姛";
+                result.code = "0";
+                result.requestPk = model.requestPk;
+                return result;
+            }
+            catch (Exception ex)
+            {
+                newDb.RollbackTran();
+                result.msg = "Wcs鍙栬揣鏃犺揣寮傚父";
+                result.code = "1";
+                result.requestPk = model.requestPk;
+                LogHelper.Info("Wcs鍙栬揣鏃犺揣寮傚父" + ex.Message, "鍙栬揣鏃犺揣");
+                return result;
+            }
+        }
 
         /// <summary>
         /// 鏀捐揣鏈夎揣
@@ -1233,47 +1298,24 @@
                             throw new Exception($"鏈煡璇㈠埌浠诲姟鍙穥model.taskNo}鐨勪换鍔�);
                         }
 
-                    if (task.S_TYPE.Contains("鍑哄簱"))
-                    {
-                        //鍙栬揣鏃犺揣
-                        LogHelper.Info($"浠诲姟鍙穥task.S_CODE},鍙栬揣鏃犺揣,鍙栨秷浠诲姟", "鏀捐揣鏈夎揣");
-                        if (WcsCancellTask(task))
-                        {
-                            LogHelper.Info($"浠诲姟鍙穥task.S_CODE},鍙栨秷浠诲姟鎴愬姛锛岃捣鐐箋task.S_START_LOC}璁句负寮傚父", "鏀捐揣鏈夎揣");
-                            TaskHelper.Fail(task);
-                            TaskProcess.OperateStatus(task, 7);
-                            LocationHelper.updateLocLock(task.S_START_LOC, 4, "寮傚父閿�);
-                            var agvTask = TaskHelper.GetTaskByWorkNo(task.S_OP_CODE, "agv");
-                            if (agvTask != null)
-                            {
-                                if (agvTask.S_B_STATE!="鏈墽琛�)
-                                {
-                                    NDCApi.CancelOrder(agvTask.S_CODE.Trim());
-                                }
-                                TaskHelper.Fail(agvTask);
-                                TaskProcess.CacheBitCancelUpdate(agvTask);
-                            }
-                        }
-
-                    }
-                    else {
+                    if (!task.S_TYPE.Contains("鍑哄簱")) {
                         //鍗歌揣鏈夎揣
-                        if (task.S_B_STATE.Contains("瀹屾垚") || task.S_B_STATE.Contains("鍙栨秷") || task.S_B_STATE.Contains("澶辫触"))
+                        if (task.S_B_STATE == "瀹屾垚" || task.S_B_STATE.Contains("鍙栨秷") || task.S_B_STATE.Contains("澶辫触"))
                         {
                             throw new Exception($"浠诲姟鍙穥model.taskNo}锛屼换鍔$姸鎬侊細{task.S_B_STATE}锛屼笉鑳芥敼閬�);
                         }
 
                         var endLoc = LocationHelper.GetLocOne(task.S_END_LOC);
 
-                        var end = newDb.Queryable<Location>().Where(a => a.S_AREA_CODE == endLoc.S_AREA_CODE && a.N_ROW == endLoc.N_ROW && a.N_COL > endLoc.N_COL && a.S_LOCK_STATE == "鏃� && a.N_CURRENT_NUM == 0 && a.C_ENABLE == "Y").OrderBy(b => b.N_COL).First();
+                        var end = newDb.Queryable<Location>().Where(a => a.S_AREA_CODE == endLoc.S_AREA_CODE && a.N_ROADWAY == endLoc.N_ROADWAY && a.N_COL != endLoc.N_COL && a.S_LOCK_STATE == "鏃� && a.N_CURRENT_NUM == 0 && a.C_ENABLE == "Y").OrderBy(b => b.N_ROW).OrderBy(b => b.N_COL).OrderBy(b => b.N_LAYER).First();
 
                         LogHelper.Info($"Wcs鏀捐揣鏈夎揣瀵绘壘鏂扮粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "鏀捐揣鏈夎揣");
 
                         if (end != null)
                         {
                             newDb.BeginTran();
-                            endLoc.N_LOCK_STATE = 4;
-                            endLoc.S_LOCK_STATE = "寮傚父閿�;
+                            endLoc.N_LOCK_STATE = 3;
+                            endLoc.S_LOCK_STATE = "鍏朵粬閿�;
                             newDb.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand();
                             task.S_END_LOC = end.S_CODE;
                             newDb.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand();
@@ -1282,17 +1324,19 @@
                             result.msg = end.S_CODE;
                             result.code = "0";
                             result.requestPk = model.requestPk;
+                            return result;
                         }
                         else
                         {
                             throw new Exception($"鏈煡璇㈠埌搴撳尯{endLoc.S_AREA_CODE}鏈夌鍚堢殑璐т綅");
                         }
+                    }else
+                        {
+                        throw new Exception($"浠诲姟鍙穥model.taskNo},浠诲姟绫诲瀷{task.S_TYPE}");
+
                     }
 
-                        result.msg = "Wcs鏀捐揣鏈夎揣/鍙栬揣鏃犺揣澶勭悊鎴愬姛";
-                        result.code = "0";
-                        result.requestPk = model.requestPk;
-                        return result;
+                   
                     }
                     catch (Exception ex)
                     {
@@ -1303,7 +1347,6 @@
                         LogHelper.Info("Wcs鏀捐揣鏈夎揣寮傚父" + ex.Message, "鏀捐揣鏈夎揣");
                     return result;
                     }
-                    return result;
              }
 
 

--
Gitblit v1.9.1