From 5321419f5fddb4e877fe90ccd90ebdc1a115af64 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期五, 18 七月 2025 17:29:26 +0800
Subject: [PATCH] 出库修改

---
 process/TaskProcess.cs |  150 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 115 insertions(+), 35 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index 83a4897..c2088d3 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -210,10 +210,20 @@
             }
             if (state == 6)//鍗歌揣瀹屾垚
             {
+                //鎺ラ┏浣嶄笉缁戝畾
+                var safety = Settings.safetyLocations.Where(a => a.Area.Contains(mst.S_END_AREA)).FirstOrDefault();
+                if (safety != null) {
+                    if (safety.type==1)
+                    {
+                        return;
+                    }
+                }
                 //閫�簱浠诲姟涓嶇粦瀹�-                if (!LocationHelper.GetErroArea(mst.S_END_AREA)) {
-                    CacheBitUpdate(mst, false);
-                }  
+                if (LocationHelper.GetErroArea(mst.S_END_AREA)) {
+                    return;
+                }
+
+                CacheBitUpdate(mst, false);
             }
             if (state == 7)
             {
@@ -543,14 +553,33 @@
                             return false;
                         }
 
-                        if (wcsTask.S_B_STATE == "鏈墽琛�)
+                        if (wcsTask.S_B_STATE == "鏈墽琛� || wcsTask.S_B_STATE == "宸叉帹閫�)
                         {
                             LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屽搴旂殑Wcs鍑哄簱浠诲姟鏈墽琛岋紝鏆備笉鎺ㄩ�", "NDC");
                             return false;
                         }
+
+                        //鎺ラ┏浣嶄袱涓猘gv浠诲姟锛宎浠诲姟鍙栬揣瀹屾垚 鎺ㄩ�b浠诲姟
+                        var agvTask = LocationHelper.GetConnectionTask(wmsWork.CONNECTION,"agv");
+
+                        LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屽綋鍓嶆帴椹充綅{wmsWork.CONNECTION}锛岀涓�釜agv浠诲姟淇℃伅"+JsonConvert.SerializeObject(agvTask), "NDC");
+                        //if (agvTask==null)
+                        //{
+                        //    LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屽綋鍓嶆帴椹充綅{wmsWork.CONNECTION}锛宎gv浠诲姟娌℃壘鍒帮紝鏆備笉鎺ㄩ�", "NDC");
+                        //    return false;
+                        //}
+
+                        if (agvTask != null)
+                        {
+                            if (agvTask.S_B_STATE != "鍙栬揣瀹屾垚")
+                            {
+                                LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屽綋鍓嶆帴椹充綅{wmsWork.CONNECTION}锛宎gv浠诲姟{agvTask.S_CODE},鐘舵�{agvTask.S_B_STATE}锛屾殏涓嶆帹閫�, "NDC");
+                                return false;
+                            }
+                        }
                     }
-                    //鎺ラ┏浣嶄袱涓猘gv浠诲姟锛宎浠诲姟鍙栬揣瀹屾垚 鎺ㄩ�b浠诲姟
-                   
+
+
                 }
 
 
@@ -637,6 +666,15 @@
             }
             return result;
         }
+
+        internal static LocationRecordsResult LocationRecords(LocationRecordsParme model) {
+            var result = new LocationRecordsResult();
+            var db = new SqlHelper<object>().GetInstance();
+            
+            return result;
+        }
+
+        
 
         internal static Result MesUdeItem(MesUdeItemParme model)
         {
@@ -956,34 +994,29 @@
             {
                 var task = TaskHelper.GetTaskByWorkNo(model.task_no, "agv");
 
-                var wcsTask = TaskHelper.GetTaskByWorkNo(model.task_no,"wcs");
+                var wcsTask = TaskHelper.GetTaskByWorkNo(model.task_no, "wcs");
 
-                if (task != null && wcsTask != null)
+                if (task != null)
                 {
+                    LogHelper.Info($"cancelTask1鍙栨秷agv浠诲姟{task.S_CODE}锛�, "鍙栨秷");
                     if (task.S_B_STATE.Trim() == "鏈墽琛�)
                     {
                         //鏈墽琛岀洿鎺ヤ慨鏀圭姸鎬佷负鍙栨秷
-                        LogHelper.Info("cancelTask1鍙栨秷agv浠诲姟锛�, "鍙栨秷");
+                        TaskHelper.opMesTask(task, 3);
                         TaskHelper.Fail(task);
                         TaskProcess.CacheBitCancelUpdate(task);
+                        
                         if (task.S_TYPE.Contains("鍏ュ簱") || task.S_TYPE.Contains("鍥炲簱"))
                         {
                             ContainerHelper.delCntr(task.S_CNTR_CODE);
                             ContainerHelper.delCntrItem(task.S_CNTR_CODE);
+
                         }
-                        else {
-                           WcsTask.WcsCancellTask(wcsTask);
-                        }
-                        
-                       
-                        TaskHelper.Fail(wcsTask);
-                        TaskProcess.OperateStatus(wcsTask, 7);
                         result.errCode = 0;
                         result.errMsg = "鍙栨秷鎴愬姛";
                         result.success = true;
-                        return result;
                     }
-                    else if (task.S_B_STATE.Trim() != "鍙栨秷"  && task.S_B_STATE.Trim() != "澶辫触")
+                    else if (task.S_B_STATE.Trim() != "鍙栨秷" && task.S_B_STATE.Trim() != "澶辫触" && task.S_B_STATE.Trim() != "瀹屾垚")
                     {
                         var db = new SqlHelper<object>().GetInstance();
                         var qhflag = db.Queryable<WmsTaskAction>().Where(a => a.S_TASK_CODE == task.S_CODE && a.S_ACTION == "4").First();
@@ -997,22 +1030,20 @@
                             result.success = false;
                             return result;
                         }
-
-                        //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv
-                        TaskHelper.Fail(task);
-                        
-                        NDCApi.CancelOrder(task.S_CODE.Trim());
-                        TaskProcess.CacheBitCancelUpdate(task);
                         if (task.S_TYPE.Contains("鍏ュ簱") || task.S_TYPE.Contains("鍥炲簱"))
                         {
                             ContainerHelper.delCntr(task.S_CNTR_CODE);
                             ContainerHelper.delCntrItem(task.S_CNTR_CODE);
+                            ContainerHelper.delCntrLoc(task.S_CNTR_CODE);
                         }
-                        else {
-                            WcsTask.WcsCancellTask(wcsTask);
-                        }
-                        TaskHelper.Fail(wcsTask);
-                        TaskProcess.OperateStatus(wcsTask, 7);
+
+                        TaskHelper.opMesTask(task, 3);
+                        //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv
+                        TaskHelper.Fail(task);
+
+                        NDCApi.CancelOrder(task.S_CODE.Trim());
+                        TaskProcess.CacheBitCancelUpdate(task);
+
                         result.errCode = 0;
                         result.errMsg = "鍙栨秷鎴愬姛";
                         result.success = true;
@@ -1030,11 +1061,40 @@
                     result.errMsg = $"{model.task_no}浠诲姟涓嶅瓨鍦�;
                     result.success = false;
                 }
+
+                if (wcsTask != null)
+                {
+                    LogHelper.Info($"cancelTask1鍙栨秷Wcs浠诲姟{wcsTask.S_CODE}", "鍙栨秷");
+                    if (wcsTask.S_B_STATE.Trim() == "鏈墽琛�)
+                    {
+                        //鏈墽琛岀洿鎺ヤ慨鏀圭姸鎬佷负鍙栨秷
+                        if (wcsTask.S_TYPE.Contains("鍏ュ簱") || wcsTask.S_TYPE.Contains("鍥炲簱"))
+                        {
+                            ContainerHelper.delCntr(wcsTask.S_CNTR_CODE);
+                            ContainerHelper.delCntrItem(wcsTask.S_CNTR_CODE);
+                        }
+                        TaskHelper.Fail(wcsTask);
+                        TaskProcess.OperateStatus(wcsTask, 7);
+                        result.errCode = 0;
+                        result.errMsg = "鍙栨秷鎴愬姛";
+                        result.success = true;
+                        return result;
+                    }
+                    else 
+                    {
+                            LogHelper.Info($"璇ヤ换鍔wcsTask.S_CODE}宸茬粡鎺ㄩ�", "鍙栨秷");
+                            result.errCode = 1;
+                            result.errMsg = "浠诲姟宸茬粡鎺ㄩ�锛屼笉鍏佽鍙栨秷";
+                            result.success = false;
+                            return result;
+                       
+                    }
+                }
             }
             catch (Exception ex)
             {
 
-                LogHelper.Info("cancelTask1鍙栨秷浠诲姟寮傚父锛�+ex.Message, "鍙栨秷");
+                LogHelper.Info("cancelTask1鍙栨秷浠诲姟寮傚父锛� + ex.Message, "鍙栨秷");
                 result.errCode = 1;
                 result.errMsg = "鍙栨秷浠诲姟寮傚父";
                 return result;
@@ -1690,15 +1750,35 @@
                 var TOOLSTYPE = "";
                 if (!string.IsNullOrEmpty(model.TOOLS_TPYE))
                 {
-                    TOOLSTYPE = model.TOOLS_TPYE;
-                    
+                    TOOLSTYPE = model.TOOLS_TPYE;  
                 }
 
-                workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE, TOOLSTYPE);
-               
+                //鍏ュ簱鎸夌収宸ヨ鍜屾祦绋嬬紪鍙�+                if (model.Task_type == 1) {
+                    workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE, TOOLSTYPE);
+                }
+                else if (model.Task_type == 2)
+                {
+                    //鍑哄簱鎸夌収缁堢偣搴撳尯鍜屾祦绋嬬紪鍙�+
+                    var end = LocationHelper.GetLoc(model.Location_To);
+                    LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂");
+
+
+                    if (end == null)
+                    {
+                        LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To},娌℃壘鍒�, "Mes浠诲姟涓嬪彂");
+                        throw new Exception($"缁堢偣:{model.Location_To},娌℃壘鍒�);
+                    }
+
+                    workFlow = TaskHelper.selectWorkFlowByEndArea(model.BUSI_TYPE, end.S_AREA_CODE);
+                    TOOLSTYPE = workFlow.TOOLSTYPE;
+                }
+
                 LogHelper.Info($"浣滀笟{model.task_no}锛屽伐瑁呯被鍨媨TOOLSTYPE}", "Mes浠诲姟涓嬪彂");
 
-               
+
+
                 if (workFlow == null) {
                     LogHelper.Info($"ZCSendTask浠诲姟涓嬪彂澶辫触锛孊USI_TYpe:{model.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�, "Mes浠诲姟涓嬪彂");
                     throw new Exception($"BUSI_TYpe:{model.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�);

--
Gitblit v1.9.1