From b6a82cb656a6cd045d772274ae927c8ca2c22b06 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 27 二月 2026 14:26:03 +0800
Subject: [PATCH] 优化四向车入库任务

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs          |   59 ++++++-----
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs           |    2 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IStationMangerService.cs |    6 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs                   |   20 +++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs            |    6 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs                |  136 +++++++++++++++++++++++++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/StationMangerService.cs   |    4 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskMethods.cs          |   24 ++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs          |    5 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs                      |    5 
 10 files changed, 232 insertions(+), 35 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/StationMangerService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/StationMangerService.cs"
index cf89f02..23d4b39 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/StationMangerService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/StationMangerService.cs"
@@ -24,5 +24,9 @@
         {
             return BaseDal.QueryFirst(x => x.StationCode == fromLocationCode && x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
         }
+        public Dt_StationManger GetOutStationInfo(string stationCode)
+        {
+            return BaseDal.QueryFirst(x => x.StationCode == stationCode && x.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt());
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
index 6cffc29..3870a69 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
@@ -41,32 +41,8 @@
         /// </summary>
         [Description("瀹屾垚")]
         Finish,
-        /// <summary>
-        /// 澶栧舰妫�娴嬩腑
-        /// </summary>
-        [Description("澶栧舰妫�娴嬩腑")]
-        CheckShapeing,
-        /// <summary>
-        /// 澶栧舰妫�娴嬫垚鍔�
-        /// </summary>
-        [Description("澶栧舰妫�娴嬫垚鍔�")]
-        CheckShapeingOk,
-        /// <summary>
-        /// 澶栧舰妫�娴嬪け璐�
-        /// </summary>
-        [Description("澶栧舰妫�娴嬪け璐�")]
-        CheckShapeingNG,
-        /// <summary>
-        /// 鎵樼洏鍙风‘璁や腑
-        /// </summary>
-        [Description("鎵樼洏鍙风‘璁や腑")]
-        CheckPalletCodeing,
-
-        /// <summary>
-        /// AGV寰呯户缁墽琛�
-        /// </summary>
-        [Description("AGV寰呯户缁墽琛�")]
-        AGV_WaitToExecute,
+        
+        
 
 
         #region 鍑箰澹獳GV鍏朵粬浠诲姟鐘舵��
@@ -120,11 +96,40 @@
         #endregion
 
         #region 娴峰悍AGV鍏朵粬浠诲姟鐘舵��
+        /// <summary>
+        /// 鎵樼洏鍙风‘璁や腑
+        /// </summary>
+        [Description("鎵樼洏鍙风‘璁や腑")]
+        CheckPalletCodeing,
 
+        /// <summary>
+        /// AGV寰呯户缁墽琛�
+        /// </summary>
+        [Description("AGV寰呯户缁墽琛�")]
+        AGV_WaitToExecute,
         #endregion
 
         #region 鍥涘悜杞﹀叾浠栦换鍔$姸鎬�
-
+        /// <summary>
+        /// 澶栧舰妫�娴嬩腑
+        /// </summary>
+        [Description("澶栧舰妫�娴嬩腑")]
+        CheckShapeing,
+        /// <summary>
+        /// 澶栧舰妫�娴嬫垚鍔�
+        /// </summary>
+        [Description("澶栧舰妫�娴嬫垚鍔�")]
+        CheckShapeingOk,
+        /// <summary>
+        /// 澶栧舰妫�娴嬪け璐�
+        /// </summary>
+        [Description("澶栧舰妫�娴嬪け璐�")]
+        CheckShapeingNG,
+        /// <summary>
+        /// 寰呯Щ搴撳悗鎵ц
+        /// </summary>
+        [Description("寰呯Щ搴撳悗鎵ц")]
+        RGV_WaitMoveToExecute,
         #endregion
     }
     public enum TaskInStatusEnum
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
index 2bd0913..77692b4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -49,6 +49,12 @@
         /// </summary>
         [Description("瑁佸壀鍑哄簱")]
         CJOutbound,
+
+        /// <summary>
+        /// 鎴愬搧绉诲簱
+        /// </summary>
+        [Description("鎴愬搧绉诲簱")]
+        CPMoveInventory,
     }
 
     public enum TaskInboundTypeEnum
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IStationMangerService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IStationMangerService.cs"
index c1d0dc1..e279a5c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IStationMangerService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IStationMangerService.cs"
@@ -18,5 +18,11 @@
         /// <param name="fromLocationCode"></param>
         /// <returns></returns>
         Dt_StationManger GetInStationInfo(string fromLocationCode);
+        /// <summary>
+        /// 鑾峰彇鍑哄簱绔欏彴
+        /// </summary>
+        /// <param name="fromLocationCode"></param>
+        /// <returns></returns>
+        Dt_StationManger GetOutStationInfo(string fromLocationCode);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
index b02b728..0c0c3f3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
@@ -123,7 +123,7 @@
         [ImporterHeader(Name = "寮傚父淇℃伅")]
         [ExporterHeader(DisplayName = "寮傚父淇℃伅")]
         [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "寮傚父淇℃伅")]
-        public string? ExceptionMessage { get; set; }
+        public string ExceptionMessage { get; set; }
 
         /// <summary>
         /// 浼樺厛绾�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs"
index 5253d68..b799926 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs"
@@ -67,10 +67,9 @@
         {
             try
             {
-                Dt_KLSLocationInfo? kLSLocationInfo = _kLSLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.fromLocationCode);
-                if (kLSLocationInfo == null) throw new Exception($"鏈壘鍒拌捣鐐瑰簱浣嶃�恵taskDTO.fromLocationCode}銆戯紒");
+                Dt_KLSLocationInfo? kLSLocationInfo = _kLSLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.fromLocationCode) ?? throw new Exception($"鏈壘鍒拌捣鐐瑰簱浣嶃�恵taskDTO.fromLocationCode}銆戯紒");
                 if (kLSLocationInfo.LocationStatus != LocationStatusEnum.InStock.ObjToInt()) throw new Exception($"璧风偣搴撲綅銆恵taskDTO.fromLocationCode}銆戝綋鍓嶅簱浣嶇姸鎬佷笉鍙嚭搴擄紒");
-                Dt_Task dt_Task = new Dt_Task()
+                Dt_Task dt_Task = new()
                 {
                     TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
                     WMSTaskNum = taskDTO.taskCode,
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskMethods.cs"
index f7f99f9..6fcb806 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RGVTaskMethods.cs"
@@ -72,8 +72,30 @@
         {
             try
             {
+                //Dt_Task dt_Task = BaseDal.QueryFirst(x => x.PalletCode == taskDTO.containerCode);
+                //if (dt_Task != null) throw new Exception($"鎵樼洏鍙枫�恵taskDTO.containerCode}銆戝凡瀛樺湪浠诲姟");
+                Dt_RGVLocationInfo rGVLocationInfo = _rGVLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.fromLocationCode) ?? throw new Exception($"鏈壘鍒拌捣鐐瑰簱浣嶃�恵taskDTO.fromLocationCode}銆戯紒");
+                if (rGVLocationInfo.LocationStatus != LocationStatusEnum.InStock.ObjToInt()) throw new Exception($"璧风偣搴撲綅銆恵taskDTO.fromLocationCode}銆戝綋鍓嶅簱浣嶇姸鎬佷笉鍙嚭搴擄紒");
+                Dt_Task dt_Task = new()
+                {
+                    TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                    WMSTaskNum = taskDTO.taskCode,
+                    //WMSId = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                    Grade = taskDTO.taskPriority,
+                    PalletCode = taskDTO.containerCode,
+                    Roadway = rGVLocationInfo.RoadwayNo,
+                    TaskState = TaskStatusEnum.New.ObjToInt(),
+                    TaskType = taskType,
+                    SourceAddress = taskDTO.fromLocationCode,
+                    CurrentAddress = taskDTO.fromLocationCode,
+                    NextAddress = taskDTO.toLocationCode,
+                    TargetAddress = taskDTO.toLocationCode,
+                    Creater = "WMS",
+                };
+                rGVLocationInfo.LocationStatus = LocationStatusEnum.OutLock.ObjToInt();
                 Db.Ado.BeginTran();
-
+                BaseDal.AddData(dt_Task);
+                _rGVLocationInfoService.Repository.UpdateData(rGVLocationInfo);
                 Db.Ado.CommitTran();
                 return WebResponseContent.Instance.OK();
             }
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 f057da7..81a498f 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"
@@ -50,8 +50,33 @@
                 var outtasks = tasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPOutbound).ToList();
                 foreach (var item in outtasks)
                 {
-                    ///鍒ゆ柇鏄惁闇�瑕佺Щ搴�
+                    ///鍒ゆ柇鏄惁闇�瑕佺Щ搴�,鍑哄簱绔欏彴鏄惁绌洪棽
+                    if (IsNoMoveTask(item) && StationIsFree(item.TargetAddress))
+                    {
+                        #region 涓嬪彂鍑哄簱浠诲姟
+                        fOURBOTnewMovePodTask.priority = item.Grade;
+                        fOURBOTnewMovePodTask.podID = item.PalletCode;
+                        fOURBOTnewMovePodTask.destination = item.NextAddress;
+                        fOURBOTnewMovePodTask.desExt = new
+                        {
+                            unload = 1//鏄惁鏀句笅瀹瑰櫒,0鍚�1鏄�
+                        };
+                        fOURBOTnewMovePodTask.desType = 2;
+                        string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
+                        FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
+                        if (fOURBOTReturn.returnCode == 0)
+                        {
+                            item.RGVTaskId = fOURBOTReturn.data.taskID;
+                            item.TaskState = (int)TaskStatusEnum.Execut;
+                        }
+                        #endregion
+                    }
+                    else
+                    {
+                        item.TaskState = (int)TaskStatusEnum.RGV_WaitMoveToExecute;
+                    }
                 }
+                _taskService.UpdateData(outtasks);
                 #endregion
             }
             catch (Exception ex)
@@ -60,6 +85,8 @@
             }
         }
         #endregion
+
+        #region 涓嬪彂澶栧舰妫�娴嬫垚鍔熶换鍔�
         /// <summary>
         /// 涓嬪彂澶栧舰妫�娴嬫垚鍔熶换鍔�
         /// </summary>
@@ -71,6 +98,7 @@
             {
                 Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
                 List<Dt_RGVLocationInfo> rGVLocationInfos = new List<Dt_RGVLocationInfo>();
+                List<Dt_StationManger> stationMangers = new List<Dt_StationManger>();
                 foreach (var item in tasks)
                 {
                     #region 鑾峰彇璐т綅
@@ -100,12 +128,18 @@
                             item.TaskState = (int)TaskStatusEnum.Puting;
                             rGVLocationInfo.LocationStatus = LocationStatusEnum.InLock.ObjToInt();
                             rGVLocationInfos.Add(rGVLocationInfo);
+                            #region 閲婃斁鍏ュ簱绔欏彴
+                            Dt_StationManger stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress);
+                            stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt();
+                            stationMangers.Add(stationManger);
+                            #endregion
                         }
                     }
                 }
                 _taskService.Db.Ado.BeginTran();
                 _taskService.UpdateData(tasks);
                 _rGVLocationInfoService.UpdateData(rGVLocationInfos);
+                _stationMangerService.UpdateData(stationMangers);
                 _taskService.Db.Ado.CommitTran();
             }
             catch (Exception ex)
@@ -113,5 +147,105 @@
                 WriteError(nameof(TaskJob), ex.Message, ex);
             }
         }
+        #endregion
+
+        #region 涓嬪彂澶栧舰妫�娴嬪け璐ヤ换鍔�
+        public void SendCheckShapeingNGTask(List<Dt_Task> tasks)
+        {
+            FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
+            try
+            {
+                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
+                foreach (var item in tasks)
+                {
+                    Dt_StationManger stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress);
+                    item.CurrentAddress = item.NextAddress;
+                    item.NextAddress = stationManger.RGVStationCode;
+                    fOURBOTnewMovePodTask.priority = item.Grade;
+                    fOURBOTnewMovePodTask.podID = item.PalletCode;
+                    fOURBOTnewMovePodTask.destination = item.NextAddress;
+                    fOURBOTnewMovePodTask.desExt = new
+                    {
+                        unload = 1//鏄惁鏀句笅瀹瑰櫒,0鍚�1鏄�
+                    };
+                    fOURBOTnewMovePodTask.desType = 2;
+                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
+                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
+                    if (fOURBOTReturn.returnCode == 0)
+                    {
+                        item.RGVTaskId = fOURBOTReturn.data.taskID;
+                        item.TaskState = (int)TaskStatusEnum.Puting;
+                    }
+                }
+                _taskService.UpdateData(tasks);
+            }
+            catch (Exception ex)
+            {
+                WriteError(nameof(TaskJob), ex.Message, ex);
+            }
+        }
+        #endregion
+
+        #region 鍒ゆ柇鏄惁闇�瑕佺Щ搴�
+        public static bool IsNoMoveTask(Dt_Task task)
+        {
+            var isNoMove = true;
+            try
+            {
+
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+            return isNoMove;
+        }
+        #endregion
+
+        #region 鍒ゆ柇鍑哄簱鍙f槸鍚︾┖闂�
+        public bool StationIsFree(string StationCode)
+        {
+            Dt_StationManger stationManger = _stationMangerService.GetOutStationInfo(StationCode);
+            return stationManger.IsOccupied == LocationStatusEnum.Free.ObjToInt();
+        }
+        #endregion
+
+        #region 绉诲簱鍚庝笅鍙戝嚭搴撲换鍔�
+        public void SendMoveToExecuteTask(List<Dt_Task> tasks)
+        {
+            try
+            {
+                FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new();
+                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("鏈壘鍒板洓鍚戣溅浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
+                foreach (var item in tasks)
+                {
+                    if (_taskService.Repository.QueryData(x => x.Roadway == item.Roadway && x.TaskType == (int)TaskTypeEnum.CPMoveInventory).Any()) continue;
+                    if (!StationIsFree(item.TargetAddress)) continue;
+                    #region 涓嬪彂鍑哄簱浠诲姟
+                    fOURBOTnewMovePodTask.priority = item.Grade;
+                    fOURBOTnewMovePodTask.podID = item.PalletCode;
+                    fOURBOTnewMovePodTask.destination = item.NextAddress;
+                    fOURBOTnewMovePodTask.desExt = new
+                    {
+                        unload = 0//鏄惁鏀句笅瀹瑰櫒,0鍚�1鏄�
+                    };
+                    fOURBOTnewMovePodTask.desType = 2;
+                    string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize());
+                    FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
+                    if (fOURBOTReturn.returnCode == 0)
+                    {
+                        item.RGVTaskId = fOURBOTReturn.data.taskID;
+                        item.TaskState = (int)TaskStatusEnum.Execut;
+                    }
+                    #endregion
+                }
+                _taskService.UpdateData(tasks);
+            }
+            catch (Exception ex)
+            {
+                WriteError(nameof(TaskJob), ex.Message, ex);
+            }
+        }
+        #endregion
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
index 6b4a81c..6241caf 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs"
@@ -56,8 +56,26 @@
         {
             try
             {
+                #region 涓嬪彂澶栧舰妫�娴嬮�氳繃鐨勫洓鍚戣溅浠诲姟
                 var Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk).ToList();
-                SendCheckShapeingOkTask(Tasks);
+                if (Tasks.Count > 0) SendCheckShapeingOkTask(Tasks);
+                #endregion
+
+                #region 涓嬪彂澶栧舰妫�娴嬪け璐ョ殑鍥涘悜杞︿换鍔�
+                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingNG).ToList();
+                if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks);
+                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk && x.ExceptionMessage.Contains("鏈壘鍒扮粓鐐瑰簱鍖�")).ToList();
+                if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks);
+                #endregion
+
+                #region 涓嬪彂寰呯Щ搴撳悗鍥涘悜杞﹀嚭搴撲换鍔�
+                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.RGV_WaitMoveToExecute).ToList();
+                if (Tasks.Count > 0) SendMoveToExecuteTask(Tasks);
+                #endregion
+
+                #region 涓嬪彂鎵樼洏纭鐨勬捣搴稟GV浠诲姟
+
+                #endregion
             }
             catch (Exception ex)
             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs"
index 21b41a2..956f8d2 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs"
@@ -29,11 +29,14 @@
         private readonly ITaskService _taskService;
         private readonly IApiInfoService _apiInfoService;
         private readonly IRGVLocationInfoService _rGVLocationInfoService;
-        public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService)
+        private readonly IStationMangerService _stationMangerService;
+
+        public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService, IStationMangerService stationMangerService)
         {
             _taskService = taskService;//娉ㄥ叆
             _apiInfoService = apiInfoService;
             _rGVLocationInfoService = rGVLocationInfoService;
+            _stationMangerService = stationMangerService;
         }
 
         public Task Execute(IJobExecutionContext context)

--
Gitblit v1.9.3