From b8c024874d21dd9b27a00b324e6c14ad29fb666b Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 09 四月 2026 21:21:47 +0800
Subject: [PATCH] 优化job接口

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs            |  124 --------------------
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs             |    2 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs |   20 +-
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs         |  162 +++++++++++++++++++++++++++
 4 files changed, 178 insertions(+), 130 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
index d6d47e9..e925bf3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
@@ -234,7 +234,7 @@
             }
             else
             {
-                WriteError(nameof(TestJob), "鍙傛暟閿欒,鏈紶閫掕澶囧弬鏁版垨璁惧绫诲瀷閿欒");
+                WriteError(nameof(TSJJob), "鍙傛暟閿欒,鏈紶閫掕澶囧弬鏁版垨璁惧绫诲瀷閿欒");
             }
 
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
index d1d3cfd..1d53210 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs"
@@ -32,10 +32,8 @@
             try
             {
                 Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
-                int i = 0;
                 foreach (var task in tasks)
                 {
-                    i++;
                     fOURBOTnewMovePodTask = new()
                     {
                         priority = task.Grade,
@@ -65,11 +63,16 @@
                         task.RGVTaskId = fOURBO.taskID;
                         task.ExceptionMessage = "";
                         task.TaskState = (int)TaskStatusEnum.Execut;
-                        task.Dispatchertime=DateTime.Now;
+                        task.Dispatchertime = DateTime.Now;
                     }
                     catch (Exception ex)
                     {
                         task.ExceptionMessage = ex.Message;
+                        content.Error(ex.Message);
+                    }
+                    finally
+                    {
+                        _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "涓嬪彂鍥涘悜杞︽柊寤哄叆搴撲换鍔�", "", "");
                     }
                 }
                 var uptasks = tasks.Where(task => string.IsNullOrEmpty(task.ExceptionMessage)).ToList();
@@ -79,6 +82,7 @@
                 {
                     foreach (var item in errortasks)
                     {
+                        Thread.Sleep(500);
                         _taskService.ErrorTaskFeedback(item, true);
                     }
                 }
@@ -87,10 +91,6 @@
             catch (Exception ex)
             {
                 content.Error(ex.Message);
-            }
-            finally
-            {
-                _trackloginfoService.AddTrackLog(fOURBOTnewMovePodTask, content, "涓嬪彂鍥涘悜杞︽柊寤哄叆搴撲换鍔�", "", "");
             }
         }
 
@@ -183,7 +183,9 @@
                 };
                 requestData = request;  // 淇濆瓨璇锋眰鏁版嵁鐢ㄤ簬鏃ュ織
                 //content.candidatePodIDs = tasks.Select(x => x.PalletCode).ToList();
-                string response = HttpHelper.Post(apiInfo.ApiAddress, request.Serialize());
+                string response = HttpHelper.Post("http://127.0.0.1:4523/m2/6165241-5857331-default/440906899?apifoxApiId=440906899", request.Serialize());
+
+                //string response = HttpHelper.Post(apiInfo.ApiAddress, request.Serialize());
                 FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
                 content.OK(data: fOURBOTReturn);
                 if (fOURBOTReturn.returnCode == 0)
@@ -608,7 +610,7 @@
             {
                 foreach (var item in tasks)
                 {
-                    var takes = _taskService.Repository.QueryFirst(x => x.Roadway == item.Roadway && x.TaskType == (int)TaskTypeEnum.CPMoveInventory);
+                    var takes = _taskService.Repository.QueryFirst(x => x.Roadway == item.Roadway && x.TaskType == (int)TaskTypeEnum.CPMoveInventory && (x.TaskState == (int)TaskStatusEnum.RGV_NewMoveTask || x.TaskState == (int)TaskStatusEnum.RGV_MoveTaskSend));
                     if (takes == null)
                     {
                         item.TaskState = (int)TaskStatusEnum.RGV_WaitSend;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs"
new file mode 100644
index 0000000..8a46ed1
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestExtend.cs"
@@ -0,0 +1,162 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.LocationEnum;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_QuartzJob;
+
+namespace WIDESEAWCS_Tasks
+{
+    public partial class TestJob
+    {
+        /// <summary>
+        /// 鍥涘悜杞﹁川妫�浠诲姟
+        /// </summary>
+        /// <param name="device"></param>
+        public void SXCTasks(OtherDevice device)
+        {
+            #region 鍥涘悜杞︿换鍔�
+            List<Dt_Task> Uptasks = new List<Dt_Task>();
+            var taskList = _taskService.Repository.QueryData(x => x.TaskType == TaskTypeEnum.CPInbound.ObjToInt() && x.TaskState == TaskStatusEnum.CheckShapeing.ObjToInt());
+            //浠诲姟鐨勭洰鏍囧湴鍧�瀵逛簬绔欏彴鍙凤紱
+            foreach (var task in taskList)
+            {
+                if (device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspection, task.SourceAddress))
+                {
+                    device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, false, task.SourceAddress);
+                    //鍐嶈鍙栬川妫�缁撴灉
+                    var qualityResult = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspectionInProgress, task.SourceAddress);
+                    //宸﹁秴瀹借鍛�
+                    var R_LeftOverWidthWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_LeftOverWidthWarning, task.SourceAddress);
+                    //鍙宠秴瀹借鍛�
+                    var R_RightWideWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_RightWideWarning, task.SourceAddress);
+                    //瓒呴珮璀﹀憡
+                    var R_ExtremeWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_ExtremeWarning, task.SourceAddress);
+                    if (qualityResult)
+                    {
+                        //濡傛灉璐ㄦ閫氳繃浜嗭紝灏辨妸浠诲姟鐘舵�佹敼涓鸿川妫�瀹屾垚
+                        task.TaskState = TaskStatusEnum.CheckShapeingOk.ObjToInt();
+                        task.ExceptionMessage = "";
+                        Uptasks.Add(task);
+                    }
+                    else
+                    {
+                        task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
+                        task.ExceptionMessage = "澶栨澶辫触";
+                        if (R_LeftOverWidthWarning) task.ExceptionMessage += ",宸﹁秴瀹�";
+                        if (R_RightWideWarning) task.ExceptionMessage += ",鍙宠秴瀹�";
+                        if (R_ExtremeWarning) task.ExceptionMessage += ",瓒呴珮";
+                        Uptasks.Add(task);
+                        //鍐欏叆澶嶄綅淇″彿
+                        //device.SetValue(QualityInspectionCommandEnum.FaultReset, true, task.SourceAddress);
+                    }
+                    //鍐欏叆鍋滄璐ㄦ淇″彿
+                    device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, true, task.SourceAddress);
+                    Thread.Sleep(500);
+                    device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
+                }
+                //else
+                //{
+                //    //鍐欏叆鍋滄璐ㄦ淇″彿
+                //    device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
+                //    device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress);
+                //}
+                else
+                {
+                    task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
+                    task.ExceptionMessage = "鏈娴嬪埌璐ㄦ瀹屾垚淇″彿";
+                    Uptasks.Add(task);
+                }
+            }
+            if (Uptasks.Count > 0)
+            {
+                _taskService.UpdateData(Uptasks);
+            }
+            #endregion
+        }
+
+
+
+        /// <summary>
+        /// 娴峰悍AGV1-6妤间换鍔�
+        /// </summary>
+        /// <param name="device"></param>
+        public void KHTasks(OtherDevice device)
+        {
+            List<Dt_Task> Uptasks = new List<Dt_Task>();
+            var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt() && (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6鍜�6-1妤间换鍔�
+            foreach (var item in AGVtaskList)
+            {
+                var address = item.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? item.TargetAddress : item.SourceAddress;
+                var stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == address);
+                if (stationManger == null)
+                {
+                    item.ExceptionMessage = $"鏈壘鍒般�恵address}銆戠珯鍙颁俊鎭�";
+                    Uptasks.Add(item);
+                    continue;
+                }
+                var StockAvailableSymbol = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, address);
+                if (item.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
+                {
+                    if (StockAvailableSymbol)
+                    {
+                        item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫湁璐э紒";
+                        Uptasks.Add(item);
+                        continue;
+                    }
+                    if (stationManger.IsOccupied == (int)LocationStatusEnum.Lock)
+                    {
+                        item.ExceptionMessage = $"绔欏彴鏈夎揣锛�";
+                        Uptasks.Add(item);
+                        continue;
+                    }
+                }
+                else
+                {
+                    if (!StockAvailableSymbol)
+                    {
+                        item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫棤璐э紒";
+                        Uptasks.Add(item);
+                        continue;
+                    }
+                    if (stationManger.IsOccupied == (int)LocationStatusEnum.Free)
+                    {
+                        item.ExceptionMessage = $"绔欏彴鏃犺揣锛�";
+                        Uptasks.Add(item);
+                        continue;
+                    }
+                }
+                //into杩涘叆涓�妤间綅缃殑鏃跺�欙紝鍐欏叆杩涘叆淇″彿
+                device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, address);
+                if (!device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.Blocking, address))
+                {
+                    item.ExceptionMessage = $"{address}绔欏彴鍏夋爡涓嶄负true锛�1锛�!";
+                    Uptasks.Add(item);
+                    continue;
+                }
+                var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum);
+                if (result.Status == false)
+                {
+                    if (item.ExceptionMessage != result.Message)
+                    {
+                        item.ExceptionMessage = result.Message;
+                        Uptasks.Add(item);
+                    }
+                    continue;
+                }
+                item.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
+                item.ExceptionMessage = "";
+                Uptasks.Add(item);
+            }
+            if (Uptasks.Count > 0)
+            {
+                _taskService.UpdateData(Uptasks);
+            }
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs"
index 77922a3..54859c8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs"
@@ -28,7 +28,7 @@
 namespace WIDESEAWCS_Tasks
 {
     [DisallowConcurrentExecution]
-    public class TestJob : JobBase, IJob
+    public partial class TestJob : JobBase, IJob
     {
         private readonly ITaskService _taskService;
         private readonly IStationMangerService _stationMangerService;
@@ -51,127 +51,11 @@
                 // _taskService.Repository 浠撳偍灞傦紝杩涜鏁版嵁搴撹闂�-
                 try
                 {
-                    #region 鍥涘悜杞︿换鍔�
-                    List<Dt_Task> Uptasks = new List<Dt_Task>();
-                    var taskList = _taskService.Repository.QueryData(x => x.TaskType == TaskTypeEnum.CPInbound.ObjToInt() && x.TaskState == TaskStatusEnum.CheckShapeing.ObjToInt());
-                    //浠诲姟鐨勭洰鏍囧湴鍧�瀵逛簬绔欏彴鍙凤紱
-                    foreach (var task in taskList)
-                    {
-                        if (device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspection, task.SourceAddress))
-                        {
-                            device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, false, task.SourceAddress);
-                            //鍐嶈鍙栬川妫�缁撴灉
-                            var qualityResult = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspectionInProgress, task.SourceAddress);
-                            //宸﹁秴瀹借鍛�
-                            var R_LeftOverWidthWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_LeftOverWidthWarning, task.SourceAddress);
-                            //鍙宠秴瀹借鍛�
-                            var R_RightWideWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_RightWideWarning, task.SourceAddress);
-                            //瓒呴珮璀﹀憡
-                            var R_ExtremeWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_ExtremeWarning, task.SourceAddress);
-                            if (qualityResult)
-                            {
-                                //濡傛灉璐ㄦ閫氳繃浜嗭紝灏辨妸浠诲姟鐘舵�佹敼涓鸿川妫�瀹屾垚
-                                task.TaskState = TaskStatusEnum.CheckShapeingOk.ObjToInt();
-                                task.ExceptionMessage = "";
-                                Uptasks.Add(task);
-                            }
-                            else
-                            {
-                                task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
-                                task.ExceptionMessage = "澶栨澶辫触";
-                                if (R_LeftOverWidthWarning) task.ExceptionMessage += ",宸﹁秴瀹�";
-                                if (R_RightWideWarning) task.ExceptionMessage += ",鍙宠秴瀹�";
-                                if (R_ExtremeWarning) task.ExceptionMessage += ",瓒呴珮";
-                                Uptasks.Add(task);
-                                //鍐欏叆澶嶄綅淇″彿
-                                //device.SetValue(QualityInspectionCommandEnum.FaultReset, true, task.SourceAddress);
-                            }
-                            //鍐欏叆鍋滄璐ㄦ淇″彿
-                            device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, true, task.SourceAddress);
-                            Thread.Sleep(500);
-                            device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
-                        }
-                        //else
-                        //{
-                        //    //鍐欏叆鍋滄璐ㄦ淇″彿
-                        //    device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
-                        //    device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress);
-                        //}
-                        else
-                        {
-                            task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
-                            task.ExceptionMessage = "鏈娴嬪埌璐ㄦ瀹屾垚淇″彿";
-                            Uptasks.Add(task);
-                        }
-                    }
-                    #endregion
+                    SXCTasks(device);
 
-                    var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt() && (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6鍜�6-1妤间换鍔�
-                    foreach (var item in AGVtaskList)
-                    {
-                        var address = item.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? item.TargetAddress : item.SourceAddress;
-                        var stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == address);
-                        if (stationManger == null)
-                        {
-                            item.ExceptionMessage = $"鏈壘鍒般�恵address}銆戠珯鍙颁俊鎭�";
-                            Uptasks.Add(item);
-                            continue;
-                        }
-                        var StockAvailableSymbol = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, address);
-                        if (item.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
-                        {
-                            if (StockAvailableSymbol)
-                            {
-                                item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫湁璐э紒";
-                                Uptasks.Add(item);
-                                continue;
-                            }
-                            if (stationManger.IsOccupied == (int)LocationStatusEnum.Lock)
-                            {
-                                item.ExceptionMessage = $"绔欏彴鏈夎揣锛�";
-                                Uptasks.Add(item);
-                                continue;
-                            }
-                        }
-                        else
-                        {
-                            if (!StockAvailableSymbol)
-                            {
-                                item.ExceptionMessage = $"{address}绔欏彴鍏夌數妫�娴嬫棤璐э紒";
-                                Uptasks.Add(item);
-                                continue;
-                            }
-                            if (stationManger.IsOccupied == (int)LocationStatusEnum.Free)
-                            {
-                                item.ExceptionMessage = $"绔欏彴鏃犺揣锛�";
-                                Uptasks.Add(item);
-                                continue;
-                            }
-                        }
-                        //into杩涘叆涓�妤间綅缃殑鏃跺�欙紝鍐欏叆杩涘叆淇″彿
-                        device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, address);
-                        if (!device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.Blocking, address))
-                        {
-                            item.ExceptionMessage = $"{address}绔欏彴鍏夋爡涓嶄负true锛�1锛�!";
-                            Uptasks.Add(item);
-                            continue;
-                        }
-                        var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum);
-                        if (result.Status == false)
-                        {
-                            if (item.ExceptionMessage != result.Message)
-                            {
-                                item.ExceptionMessage = result.Message;
-                                Uptasks.Add(item);
-                            }
-                            continue;
-                        }
-                        item.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
-                        item.ExceptionMessage = "";
-                        Uptasks.Add(item);
-                    }
+                    KHTasks(device);
 
-                    _taskService.UpdateData(Uptasks);
+
                     //WriteInfo(device.DeviceName, "infoLog");
 
                     //WriteDebug(device.DeviceName, "debugLog");

--
Gitblit v1.9.3