From 0128fce75a5e7cc9afc4bd89ce1966eb2231b69f Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期二, 31 三月 2026 10:55:33 +0800
Subject: [PATCH] 编写海康跨楼层接口

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile1.pubxml |   17 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs                              |  115 +++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/AGVCartInfoService.cs                  |  160 ++++++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs                                |   18 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs                          |   39 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs                                         |    1 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IAGVCartInfoService.cs                |   24 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs                       |   80 +++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs                          |  478 +++++++++++-----------
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs                        |   20 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_AGVCartInfo.cs                |   31 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs                       |   27 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs                                        |   31 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/AGVCartInfoController.cs   |   29 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/HIKROBOTQuery.cs                       |   38 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs                                   |    4 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                          |   31 +
 17 files changed, 881 insertions(+), 262 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/AGVCartInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/AGVCartInfoService.cs"
new file mode 100644
index 0000000..6c71744
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/AGVCartInfoService.cs"
@@ -0,0 +1,160 @@
+锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection.Emit;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO;
+using WIDESEAWCS_DTO.AGV.HIKROBOT;
+using WIDESEAWCS_IBasicInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_BasicInfoService
+{
+    public class AGVCartInfoService : ServiceBase<Dt_AGVCartInfo, IRepository<Dt_AGVCartInfo>>, IAGVCartInfoService
+    {
+
+        IApiInfoService _repository;
+        ITrackloginfoService _trackloginfoService;
+
+        public AGVCartInfoService(IRepository<Dt_AGVCartInfo> BaseDal, IApiInfoService repository, ITrackloginfoService ITrackloginfo) : base(BaseDal)
+        {
+            _repository = repository;
+            _trackloginfoService = ITrackloginfo;
+        }
+
+        public IRepository<Dt_AGVCartInfo> Repository => BaseDal;
+
+
+        /// <summary>
+        /// 鏌ユ捣搴峰皬杞﹀湪閭d釜妤煎眰
+        /// </summary>
+        /// <param name="agvcode"></param>
+        /// <returns></returns>
+        public WebResponseContent CheckTheCar()
+        {
+            WebResponseContent content = new WebResponseContent();
+            List<HIKROBOTQueryData> dataList = new List<HIKROBOTQueryData>();
+            HIKROBOTReturn hIKROBOTReturn = null;
+
+            var apiInfo = _repository.Repository.QueryFirst(it => it.ApiCode == nameof(HIKROBOTQuery));
+            if (apiInfo == null)
+            {
+                throw new Exception("鏈壘鍒版捣搴峰皬杞︿俊鎭帴鍙i厤缃俊鎭紒璇锋鏌ユ帴鍙i厤缃紒");
+            }
+
+            try
+            {
+                var agvInfo = Repository.QueryData();
+                if (agvInfo == null || !agvInfo.Any())
+                {
+                    content.Error("鏈煡璇㈠埌AGV灏忚溅淇℃伅");
+                    return content;
+                }
+
+                List<string> failedAgvCodes = new List<string>();
+                List<string> successMessages = new List<string>();
+
+                foreach (var item in agvInfo)
+                {
+                     var headers = new Dictionary<string, string>
+                    {
+                        { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + item.AGVCode }
+                    };
+
+                    HIKROBOTQuery hIKROBOTQuery = new HIKROBOTQuery()
+                    {
+                        singleRobotCode = item.AGVCode
+                    };
+
+                    string requestData = hIKROBOTQuery.Serialize();
+
+                    try
+                    {
+                        string response = HttpHelper.Post(apiInfo.ApiAddress, requestData, headers: headers);
+                        hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>();
+
+                        // 鍒ゆ柇鎺ュ彛杩斿洖鏄惁鎴愬姛
+                        if (hIKROBOTReturn != null && hIKROBOTReturn.code == "SUCCESS" && hIKROBOTReturn.message == "鎴愬姛")
+                        {
+                            // 灏� data 鍙嶅簭鍒楀寲涓哄叿浣撶殑 HIKROBOTQueryData 绫诲瀷
+                            var queryData = Newtonsoft.Json.JsonConvert.DeserializeObject<HIKROBOTQueryData>(
+                                Newtonsoft.Json.JsonConvert.SerializeObject(hIKROBOTReturn.data)
+                            );
+
+                            dataList.Add(new HIKROBOTQueryData
+                            {
+                                singleRobotCode = item.AGVCode,
+                                mapCode = queryData?.mapCode ?? string.Empty
+                            });
+
+                            successMessages.Add($"AGV灏忚溅-{item.AGVCode}鎵�鍦ㄦゼ灞倇queryData?.mapCode}鏌ヨ鎴愬姛");
+                        }
+                        else
+                        {
+                            // 璁板綍澶辫触鐨勫皬杞�
+                            failedAgvCodes.Add(item.AGVCode);
+                            string errorMsg = hIKROBOTReturn?.message ?? "鑾峰彇灏忚溅淇℃伅澶辫触";
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        // 鎹曡幏鍗曚釜灏忚溅鏌ヨ鐨勫紓甯�
+                        failedAgvCodes.Add(item.AGVCode);
+                        string errorMsg = $"鏌ヨAGV灏忚溅{item.AGVCode}鏃跺彂鐢熷紓甯革細{ex.Message}";
+
+                        _trackloginfoService.AddTrackLog(
+                            requestData,
+                            new WebResponseContent { Status = false, Message = errorMsg },
+                            $"鏌ョ湅娴峰悍AGV灏忚溅淇℃伅-寮傚父-{item.AGVCode}",
+                            "",
+                            errorMsg
+                        );
+                    }
+                }
+
+                // 鏍规嵁鏌ヨ缁撴灉璁剧疆杩斿洖鐘舵��
+                if (dataList.Any())
+                {
+                    if (failedAgvCodes.Any())
+                    {
+                        // 閮ㄥ垎鎴愬姛锛岄儴鍒嗗け璐�
+                        string message = $"閮ㄥ垎灏忚溅鏌ヨ鎴愬姛锛屽け璐ョ殑灏忚溅锛歿string.Join(",", failedAgvCodes)}";
+                        content.OK(message, dataList);
+                        // 濡傛灉闇�瑕佹爣璁颁负閮ㄥ垎鎴愬姛锛屽彲浠ュ湪杩欓噷璁剧疆棰濆鐨勬爣蹇�
+                        //content.Status = true; // 淇濇寔 true锛屼絾閫氳繃 Message 鍛婄煡閮ㄥ垎澶辫触
+                    }
+                    else
+                    {
+                        // 鍏ㄩ儴鎴愬姛
+                        content.OK("鎵�鏈堿GV灏忚溅淇℃伅鏌ヨ鎴愬姛", dataList);
+                    }
+                }
+                else
+                {
+                    // 鍏ㄩ儴澶辫触
+                    string errorMsg = failedAgvCodes.Any()
+                        ? $"鎵�鏈堿GV灏忚溅鏌ヨ澶辫触锛屽け璐ュ垪琛細{string.Join(",", failedAgvCodes)}"
+                        : "鏈煡璇㈠埌浠讳綍AGV灏忚溅淇℃伅";
+                    content.Error(errorMsg);
+                }
+
+                return content;
+            }
+            catch (Exception ex)
+            {
+                content.Error($"鎵归噺鏌ヨAGV灏忚溅淇℃伅澶辫触锛歿ex.Message}");
+                return content;
+            }
+        }
+
+
+       
+    }
+}
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 868d94c..e30139c 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"
@@ -121,6 +121,33 @@
         ///// </summary>
         //[Description("AGV鍙�/鏀捐揣涓�")]
         //AGV_ToPuting,
+
+
+        /// <summary>
+        /// 鍛煎彨娴峰悍鎼繍涓�  19
+        /// </summary>
+        [Description("绛夊緟娴峰悍AGV鎼繍鍒颁綅")]
+        WaitingHkAGVMovePosition,
+
+
+        /// <summary>
+        /// 鍛煎彨娴峰悍鎼繍涓� 
+        /// </summary>
+        [Description("鍛煎彨娴峰悍AGV鎼繍")]
+        CallingHKtransportation,
+
+        /// <summary>
+        /// 娴峰悍AGV鎼繍涓� 
+        /// </summary>
+        [Description("娴峰悍AGV鎼繍涓�")]
+        HktransportIng,
+
+        /// <summary>
+        /// 娴峰悍AGV鎼繍瀹屾垚 22
+        /// </summary>
+        [Description("娴峰悍AGV鎼繍瀹屾垚")]
+        HkTransportCompleted,
+
         #endregion
 
         #region 鍥涘悜杞﹀叾浠栦换鍔$姸鎬�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/HIKROBOTQuery.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/HIKROBOTQuery.cs"
new file mode 100644
index 0000000..eadf542
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/HIKROBOTQuery.cs"
@@ -0,0 +1,38 @@
+锘縰sing Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO
+{
+    /// <summary>
+    /// 娴峰悍灏忚溅淇℃伅
+    /// </summary>
+    public class HIKROBOTQuery
+    {
+        /// <summary>
+        /// 灏忚溅缂栧彿
+        /// </summary>
+        public string singleRobotCode { get; set; }
+    }
+
+
+    public class HIKROBOTQueryData
+    {
+        /// <summary>
+        /// 閫氳繃杩斿洖鐨�"mapCode"鏉ュ尯鍒嗘ゼ灞� AA鏄�1妤硷紝BB鏄�2妤硷紝CC鏄�3妤硷紝DD鏄�4妤硷紝EE鏄�5妤硷紝FF鏄�6妤�
+        /// </summary>
+        public string mapCode { get; set; }
+
+
+        /// <summary>
+        /// 灏忚溅缂栧彿
+        /// </summary>
+        public string singleRobotCode { get; set; }
+    }
+
+
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IAGVCartInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IAGVCartInfoService.cs"
new file mode 100644
index 0000000..3041606
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IAGVCartInfoService.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IBasicInfoService
+{
+    public interface IAGVCartInfoService : IService<Dt_AGVCartInfo>
+    {
+        public IRepository<Dt_AGVCartInfo> Repository { get; }
+
+
+        /// <summary>
+        /// 妫�鏌ユ捣搴峰皬杞�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent CheckTheCar();
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_AGVCartInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_AGVCartInfo.cs"
new file mode 100644
index 0000000..05c5b34
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_AGVCartInfo.cs"
@@ -0,0 +1,31 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_AGVCartInfo), "娴峰悍AGV灏忚溅淇℃伅")]
+    public class Dt_AGVCartInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 灏忚溅缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绔欏彴缂栧彿")]
+        public string AGVCode { get; set; }
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/AGVCartInfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/AGVCartInfoController.cs"
new file mode 100644
index 0000000..1703ffe
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/AGVCartInfoController.cs"
@@ -0,0 +1,29 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_IBasicInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.BasicInfo
+{
+    /// <summary>
+    ///娴峰悍灏忚溅淇℃伅
+    /// </summary>
+    [Route("api/AGVCartInfo")]
+    [ApiController]
+    public class AGVCartInfoController : ApiBaseController<IAGVCartInfoService, Dt_AGVCartInfo>
+    {
+        public AGVCartInfoController(IAGVCartInfoService service) : base(service)
+        {
+
+        }
+
+        [HttpPost,Route("CheckTheCar"), AllowAnonymous]
+        public WebResponseContent CheckTheCar()
+        {
+            return Service.CheckTheCar();
+        }
+
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile1.pubxml" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile1.pubxml"
new file mode 100644
index 0000000..4cf8e5b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile1.pubxml"
@@ -0,0 +1,17 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<!--
+https://go.microsoft.com/fwlink/?LinkID=208121.
+-->
+<Project>
+  <PropertyGroup>
+    <DeleteExistingFiles>false</DeleteExistingFiles>
+    <ExcludeApp_Data>false</ExcludeApp_Data>
+    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
+    <PublishProvider>FileSystem</PublishProvider>
+    <PublishUrl>C:\Users\Administrator\Desktop\涔変箤鎯犳櫘\鍚庣鍙戝竷鏂囦欢</PublishUrl>
+    <WebPublishMethod>FileSystem</WebPublishMethod>
+    <_TargetId>Folder</_TargetId>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
index f61e389..6aec781 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
@@ -308,10 +308,26 @@
                         }
                         break;
                     case TaskTypeEnum.Q3RK:
-                        break;
                     case TaskTypeEnum.Q3CK:
-                        break;
                     case TaskTypeEnum.Move:
+                        {
+                            TargetRouteDto target = new TargetRouteDto()
+                            {
+                                code = task.CurrentAddress,
+                                operation = "DELIVERY",//鍙栬揣
+                                seq = 0,
+                                type = "SITE",
+                            };
+                            TargetRouteDto targetRoute = new TargetRouteDto()
+                            {
+                                code = task.NextAddress,
+                                operation = "DELIVERY",//閫佽揣
+                                seq = 1,
+                                type = "SITE",
+                            };
+                            hIKROBOTTaskSubmit.targetRoute.Add(target);
+                            hIKROBOTTaskSubmit.targetRoute.Add(targetRoute);
+                        }
                         break;
                     case TaskTypeEnum.CPMoveInventory:
                         break;
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 2f36005..3bf1406 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"
@@ -13,6 +13,7 @@
 using WIDESEAWCS_DTO;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_QuartzJob;
 
 namespace WIDESEAWCS_TaskInfoService
 {
@@ -201,18 +202,91 @@
         }
         #endregion
 
-        #region 5 璺ㄦゼ灞傝繍杈撲换鍔″垱寤�
+        #region 5 璺ㄦゼ灞傝繍杈撲换鍔″垱寤� 锛堥兘鏄偣鍒扮偣锛�
         public WebResponseContent CarryTask(TaskDTO taskDTO, int taskType)
         {
+            WebResponseContent content = new WebResponseContent();
             try
             {
+                Dt_HKLocationInfo? hKLocationInfo = null;
+                Dt_StationInfo? stationInfo = null;
+                Dt_Task dt_Task = null;
+                //鍏ュ簱 鍒颁竴妤间笁涓珯鍙扮殑浣嶇疆
+                if (taskType == (int)TaskTypeEnum.Q3RK)
+                {
+                    //璇诲彇鍏夌數淇″彿
+                    var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice;
+                    if (device == null) throw new Exception("鏈壘鍒�1妤艰川妫�闂ㄨ澶囦俊鎭�");
+                    if (!device.IsConnected) throw new Exception("PLC1妤艰川妫�闂ㄨ澶囪繛鎺ュけ璐�");
+                    bool value = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, taskDTO.toLocationCode);
+                    if (value)
+                    {
+                        content.Error($"{taskDTO.toLocationCode}绔欏彴鏈夎揣锛屾棤娉曞叆搴�");
+                    }
+                    dt_Task = new Dt_Task()
+                    {
+                        TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                        WMSTaskNum = taskDTO.taskCode,
+                        Grade = taskDTO.taskPriority,
+                        PalletCode = taskDTO.containerCode,
+                        Roadway = hKLocationInfo.RoadwayNo,
+                        TaskState = (int)TaskStatusEnum.New,
+                        TaskType = taskType,
+                        SourceAddress = taskDTO.fromLocationCode,
+                        CurrentAddress = taskDTO.fromLocationCode,
+                        NextAddress = taskDTO.toLocationCode,
+                        TargetAddress = taskDTO.toLocationCode,
+                        Creater = "WMS",
+                    };
 
-                return WebResponseContent.Instance.OK();
+                }
+                //鍑哄簱
+                if (taskType == (int)TaskTypeEnum.Q3CK)
+                {
+                     stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.toLocationCode) ?? throw new Exception($"鏈壘鍒拌捣鐐瑰簱浣嶃�恵taskDTO.toLocationCode}銆戯紒");
+                    if (stationInfo.StationName != LocationStatusEnum.InStock.ToString()) throw new Exception($"璧风偣搴撲綅銆恵taskDTO.toLocationCode}銆戝綋鍓嶅簱浣嶇姸鎬佷笉鍙嚭搴擄紒");
+                    if (stationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"璧风偣搴撲綅銆恵taskDTO.toLocationCode}銆戠粦瀹氭枡绠卞彿銆恵stationInfo.PalletCode}銆戜笌浠诲姟鏂欑鍙枫�恵taskDTO.containerCode}銆戜笉鍖归厤锛�");
+                        dt_Task = new Dt_Task()
+                    {
+                        TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                        WMSTaskNum = taskDTO.taskCode,
+                        //WMSId = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                        Grade = taskDTO.taskPriority,
+                        PalletCode = taskDTO.containerCode,
+                        Roadway = hKLocationInfo.RoadwayNo,
+                        TaskState = (int)TaskStatusEnum.New,
+                        TaskType = taskType,
+                        SourceAddress = taskDTO.fromLocationCode,
+                        CurrentAddress = taskDTO.fromLocationCode,
+                        NextAddress = taskDTO.toLocationCode,
+                        TargetAddress = taskDTO.toLocationCode,
+                        Creater = "WMS",
+                    };
+                }
+                try
+                {
+                    Db.Ado.BeginTran();
+                    BaseDal.AddData(dt_Task);
+                    _hKLocationInfoService.Repository.UpdateData(hKLocationInfo);
+                    _stationInfo.Repository.UpdateData(stationInfo);
+                    Db.Ado.CommitTran();
+                }
+                catch (Exception ex)
+                {
+                    Db.Ado.RollbackTran();
+                    throw new Exception(ex.Message);
+                }
+                return content.OK(data: new
+                {
+                    taskCode = taskDTO.taskCode,
+                    Message = "鎴愬姛锛�"
+                });
             }
             catch (Exception ex)
             {
-                throw new Exception(ex.Message);
+                content.Error(ex.Message);
             }
+            return content;
         }
         #endregion
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
index b035582..6241af5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
@@ -78,13 +78,20 @@
                     switch (hIKROBOT.extra.values.method)
                     {
                         case "start":
-                            task.TaskState = (int)TaskStatusEnum.Takeing;
-                            TaskFeedback(task, 1);
+                            if (task.TaskState==(int)TaskStatusEnum.CallingHKtransportation&& task.TaskType == (int)TaskTypeEnum.Move)
+                            {
+                                task.TaskState = (int)TaskStatusEnum.HktransportIng;
+                            }
+                            else
+                            {
+                                task.TaskState = (int)TaskStatusEnum.Takeing;
+                                TaskFeedback(task, 1);
+                            }
                             break;
                         case "outbin"://绂诲紑璧风偣
                             {
                                 ///鍒ゆ柇浠诲姟鏄惁璺熻澶囨湁鍏�
-                                TaskFromCompleted(task, deviceTypeEnum);
+                                TaskFromCompleted(task, deviceTypeEnum); //浠诲姟鐘朵綋鏀逛负3鍙栬揣瀹屾垚锛屾洿鏂拌捣鐐硅揣浣嶇姸鎬侊紝骞跺弽棣圵MS璧风偣瀹屾垚
                             }
                             break;
                         case "finish"://绂诲紑鎻愬崌鏈�
@@ -145,6 +152,19 @@
                                             task.ExceptionMessage = "鎻愬崌鏈轰俊鎭澶囪繛鎺ュけ璐�";
                                     }
                                 }
+                                else if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || task.TaskType == TaskTypeEnum.Q3CK.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
+                                {
+                                    if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
+                                    {
+                                        //濡傛灉鏄叚妤煎埌涓�妤煎氨鍐欎竴涓俊鍙风粰1妤紁lc鍛婅瘔浠栨垜鏉ュ叆搴撲簡
+
+                                    }
+                                    else
+                                    {
+                                        //杩欎釜灏卞啓涓�涓浣嶇姸鎬侊紝鍛婅瘔瀹冩垜鍑哄簱浜�
+
+                                    }
+                                }
                             }
                             break;
                         case "into"://鐢宠杩涘叆鎻愬崌鏈�
@@ -161,8 +181,17 @@
                             break;
                         case "end"://浠诲姟瀹屾垚閫氱煡
                             {
-                                ///鍒ゆ柇浠诲姟鏄惁璺熻澶囨湁鍏�
-                                TaskCompleted(task, deviceTypeEnum);
+                                if (task.TaskType==(int)TaskTypeEnum.Move &&task.TaskState==(int)TaskStatusEnum.HkTransportCompleted)
+                                {
+                                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+                                    TaskFeedback(task, 2);
+                                    BaseDal.DeleteAndMoveIntoHty(task,OperateTypeEnum.鑷姩瀹屾垚);
+                                }
+                                else
+                                {
+                                    ///鍒ゆ柇浠诲姟鏄惁璺熻澶囨湁鍏�
+                                    TaskCompleted(task, deviceTypeEnum);
+                                }
                             }
                             break;
                         default:
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index f7b5dbf..e51a226 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -318,9 +318,14 @@
                         robotTaskCode = dt_Task.WMSTaskNum,
                         cancelType = "CANCEL"//鍘熻蒋鍙栨秷锛孌ROP浜哄伐浠嬪叆锛堝師纭彇娑堬級
                     };
+                    var headers = new Dictionary<string, string>
+                    {
+                        { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + wMSCancelTask.TaskCode }
+                    };
+
                     Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(CancelHIKROBOTTask));
                     if (apiInfo == null) throw new Exception("鏈壘鍒板洓鍚戣溅AGV浠诲姟涓嬪彂鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
-                    string response = HttpHelper.Post(apiInfo.ApiAddress, cancelHIKROBOTTask.Serialize());
+                    string response = HttpHelper.Post(apiInfo.ApiAddress, cancelHIKROBOTTask.Serialize(),headers:headers);
                     HIKROBOTReturn hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>();
                     content.OK(data: hIKROBOTReturn);
                     if (hIKROBOTReturn.code == "SUCCESS" && hIKROBOTReturn.message == "鎴愬姛")
@@ -1114,7 +1119,9 @@
                         {
                             LoctionCode = item.LocationCode,
                             LocationStatus = item.LocationStatus,
-                            EnableStatus = item.EnableStatus
+                            EnableStatus = item.EnableStatus,
+                            PalletCode = item.PalletCode
+
                         });
                     }
                     content.OK(data: list);
@@ -1132,7 +1139,8 @@
                         {
                             LoctionCode = item.LocationCode,
                             LocationStatus = item.LocationStatus,
-                            EnableStatus = item.EnableStatus
+                            EnableStatus = item.EnableStatus,
+                              PalletCode = item.PalletCode
                         });
                     }
                     content.OK(data: list);
@@ -1153,7 +1161,22 @@
                 }
                 else if (getLocationInfo.WarehouseId == 4)
                 {
-
+                    List<Dt_HKLocationInfo> rGVLocationInfos = new List<Dt_HKLocationInfo>();
+                    if (!string.IsNullOrEmpty(getLocationInfo.AreaCode))
+                        rGVLocationInfos = _hKLocationInfoService.Repository.QueryData(x => x.WarehouseId == getLocationInfo.AreaCode.ObjToInt());
+                    else
+                        rGVLocationInfos = _hKLocationInfoService.Repository.QueryData();
+                    foreach (var item in rGVLocationInfos)
+                    {
+                        list.Add(new
+                        {
+                            LoctionCode = item.LocationCode,
+                            LocationStatus = item.LocationStatus,
+                            EnableStatus = item.EnableStatus,
+                              PalletCode = item.PalletCode
+                        });
+                    }
+                    content.OK(data: list);
                 }
                 else if (getLocationInfo.WarehouseId == 5)
                 {
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 b0b4028..d5f3a6b 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"
@@ -162,6 +162,7 @@
                             task.ExceptionMessage = "";
                             Uptasks.Add(task);
                         }
+                      
 
                     }
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
index 7063598..0dbd942 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
@@ -4,6 +4,8 @@
 using System.Reflection.Metadata;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO;
@@ -24,7 +26,7 @@
         {
             foreach (var item in tasks)
             {
-                var content =_taskService.SendHIKROBOTTask(item);
+                var content = _taskService.SendHIKROBOTTask(item);
             }
         }
         #endregion
@@ -36,6 +38,117 @@
             {
                 var content = _taskService.SendHIKROBOTTask(item);
             }
+
+        }
+        #endregion
+
+        #region 涓嬪彂娴峰悍1-6妤肩殑AGV浠诲姟
+        public void SendAGVTask(List<Dt_Task> tasks)
+        {
+            foreach (var item in tasks)
+            {
+                if (item.TaskState == (int)TaskTypeEnum.Q3CK)
+                {
+                    // 璋冪敤鎺ュ彛鑾峰彇灏忚溅淇℃伅
+                    var result = _agvcartInfoService.CheckTheCar();
+
+                    // 鍒ゆ柇鏄惁鏈� AA 鎴� FF
+                    bool hasAAOrFF = false;
+
+                    if (item.TaskState == (int)TaskTypeEnum.Q3CK)
+                    {
+                        if (result != null && result.Status)
+                        {
+                            var dataList = result.Data as List<HIKROBOTQueryData>;
+                            if (dataList != null && dataList.Any())
+                            {
+                                // 妫�鏌ヨ繑鍥炵殑 mapCode 鍒楄〃涓槸鍚︽湁 AA 
+                                hasAAOrFF = dataList.Any(d => d.mapCode == "AA");
+                                if (hasAAOrFF)
+                                {
+                                    var content = _taskService.SendHIKROBOTTask(item);
+                                    item.TaskState = (int)TaskStatusEnum.Execut;
+                                }
+                                else//杩欓噷鎴戝氨瑕佸懠鍙┖杞︽潵
+                                {
+                                    //娣诲姞绌鸿溅杩愯緭浠诲姟
+                                    AddAGVCartInfo(item);
+                                    item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
+                                }
+                            }
+                           
+                        }
+                    }
+                    else
+                    {
+                        if (result != null && result.Status)
+                        {
+                            if (hasAAOrFF)
+                            {
+                                var content = _taskService.SendHIKROBOTTask(item);
+                                item.TaskState = (int)TaskStatusEnum.Execut;
+                            }
+                            else//杩欓噷鎴戝氨瑕佸懠鍙┖杞︽潵
+                            {
+                                //娣诲姞绌鸿溅杩愯緭浠诲姟
+                                AddAGVCartInfo(item);
+                                item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
+                            }
+                        }
+                    }
+                }
+            }
+            _taskService.UpdateData(tasks);
+        }
+        #endregion
+
+
+        #region 澶勭悊娴峰悍agv鎼繍浠诲姟
+        public WebResponseContent AddAGVCartInfo(Dt_Task task)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                task.TaskNum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                task.WMSTaskNum = null;
+                task.TaskType = (int)TaskTypeEnum.Move;//鎹㈠眰浠诲姟
+                task.TaskState = (int)TaskStatusEnum.CallingHKtransportation;
+                var result = _taskService.SendHIKROBOTTask(task);
+                _taskService.AddData(task);
+            }
+            catch (Exception ex)
+            {
+                content.Error($"鍒涘缓澶辫触锛歿ex.Message}");
+            }
+            return content;
+        }
+        #endregion
+
+        #region 澶勭悊agv寰呯┖杞︽惉杩愪换鍔�
+        public void SendHKWaitTask()
+        {
+            try
+            {
+                List<Dt_Task> reslut = _taskService.Repository.QueryData(x => x.TaskType == (int)TaskTypeEnum.Move);
+                if (reslut.Count<0)
+                {
+                    foreach (var item in reslut)
+                    {
+                        var content = _taskService.SendHIKROBOTTask(item);
+                    }   
+                    reslut.ForEach(x =>
+                    {
+                        x.TaskState =(int)TaskStatusEnum.Execut;
+                    });
+
+                }
+                _taskService.UpdateData(reslut);
+               
+            }
+            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/ScheduledTaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs"
index 13df29c..d7769dc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs"
@@ -37,255 +37,255 @@
 
         public Task Execute(IJobExecutionContext context)
         {
-            try
-            {
-                #region 涓夋ゼ鑷姩浠诲姟
-                List<string> StationCodes = new() { "0348840CC0315690", "0349350CC0315686" };
-                var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode));
-                #region 鍏ユ彁鍗囨満浠诲姟
-                var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0);
-                if (station != null)
-                {
-                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                    Dt_Task dt_Task = new Dt_Task()
-                    {
+            //try
+            //{
+            //    #region 涓夋ゼ鑷姩浠诲姟
+            //    List<string> StationCodes = new() { "0348840CC0315690", "0349350CC0315686" };
+            //    var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode));
+            //    #region 鍏ユ彁鍗囨満浠诲姟
+            //    var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0);
+            //    if (station != null)
+            //    {
+            //        var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+            //        Dt_Task dt_Task = new Dt_Task()
+            //        {
 
-                        TaskNum = tasknum,
-                        WMSTaskNum = "GP" + tasknum,
-                        Grade = 60,
-                        PalletCode = station.PalletCode,
-                        Roadway = "",
-                        TaskState = (int)TaskStatusEnum.New,
-                        TaskType = TaskTypeEnum.RK3F.ObjToInt(),
-                        SourceAddress = station.StationCode,
-                        CurrentAddress = station.StationCode,
-                        NextAddress = "TSJR3F",
-                        TargetAddress = "TSJR3F",
-                        Creater = "WCS",
-                    };
-                    var content = _taskService.SendHIKROBOTTask(dt_Task);
-                    if (content.Status)
-                    {
-                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
-                        dt_Task.Dispatchertime = DateTime.Now;
-                        station.StationStatus = (int)LocationStatusEnum.OutLock;
-                        _taskService.AddData(dt_Task);
-                        _StationInfoService.UpdateData(station);
-                    }
-                }
-                #endregion
+            //            TaskNum = tasknum,
+            //            WMSTaskNum = "GP" + tasknum,
+            //            Grade = 60,
+            //            PalletCode = station.PalletCode,
+            //            Roadway = "",
+            //            TaskState = (int)TaskStatusEnum.New,
+            //            TaskType = TaskTypeEnum.RK3F.ObjToInt(),
+            //            SourceAddress = station.StationCode,
+            //            CurrentAddress = station.StationCode,
+            //            NextAddress = "TSJR3F",
+            //            TargetAddress = "TSJR3F",
+            //            Creater = "WCS",
+            //        };
+            //        var content = _taskService.SendHIKROBOTTask(dt_Task);
+            //        if (content.Status)
+            //        {
+            //            dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+            //            dt_Task.Dispatchertime = DateTime.Now;
+            //            station.StationStatus = (int)LocationStatusEnum.OutLock;
+            //            _taskService.AddData(dt_Task);
+            //            _StationInfoService.UpdateData(station);
+            //        }
+            //    }
+            //    #endregion
 
-                #region 鍑烘彁鍗囨満浠诲姟
-                var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
-                if (device != null && device.IsConnected)
-                {
-                    if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJC3F") == 1)
-                    {
-                        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/);
-                        if (dt_Task == null)
-                        {
-                            station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0);
-                            if (station != null)
-                            {
-                                var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                                dt_Task = new Dt_Task()
-                                {
-                                    TaskNum = tasknum,
-                                    WMSTaskNum = "GP" + tasknum,
-                                    Grade = 60,
-                                    PalletCode = "LXM" + tasknum,
-                                    Roadway = "",
-                                    TaskState = (int)TaskStatusEnum.New,
-                                    TaskType = TaskTypeEnum.CK3F.ObjToInt(),
-                                    SourceAddress = "TSJC3F",
-                                    CurrentAddress = "TSJC3F",
-                                    NextAddress = station.StationCode,
-                                    TargetAddress = station.StationCode,
-                                    Creater = "WCS",
-                                };
-                                var content = _taskService.SendHIKROBOTTask(dt_Task);
-                                if (content.Status)
-                                {
-                                    dt_Task.TaskState = (int)TaskStatusEnum.Execut;
-                                    dt_Task.Dispatchertime = DateTime.Now;
-                                    station.StationStatus = (int)LocationStatusEnum.InLock;
-                                    _taskService.AddData(dt_Task);
-                                    _StationInfoService.UpdateData(station);
-                                }
-                            }
-                        }
-                    }
-                }
-                #endregion
+            //    #region 鍑烘彁鍗囨満浠诲姟
+            //    var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
+            //    if (device != null && device.IsConnected)
+            //    {
+            //        if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJC3F") == 1)
+            //        {
+            //            Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/);
+            //            if (dt_Task == null)
+            //            {
+            //                station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0);
+            //                if (station != null)
+            //                {
+            //                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+            //                    dt_Task = new Dt_Task()
+            //                    {
+            //                        TaskNum = tasknum,
+            //                        WMSTaskNum = "GP" + tasknum,
+            //                        Grade = 60,
+            //                        PalletCode = "LXM" + tasknum,
+            //                        Roadway = "",
+            //                        TaskState = (int)TaskStatusEnum.New,
+            //                        TaskType = TaskTypeEnum.CK3F.ObjToInt(),
+            //                        SourceAddress = "TSJC3F",
+            //                        CurrentAddress = "TSJC3F",
+            //                        NextAddress = station.StationCode,
+            //                        TargetAddress = station.StationCode,
+            //                        Creater = "WCS",
+            //                    };
+            //                    var content = _taskService.SendHIKROBOTTask(dt_Task);
+            //                    if (content.Status)
+            //                    {
+            //                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+            //                        dt_Task.Dispatchertime = DateTime.Now;
+            //                        station.StationStatus = (int)LocationStatusEnum.InLock;
+            //                        _taskService.AddData(dt_Task);
+            //                        _StationInfoService.UpdateData(station);
+            //                    }
+            //                }
+            //            }
+            //        }
+            //    }
+            //    #endregion
 
-                #endregion
+            //    #endregion
 
-                #region 4F
-                List<string> stationCodes = new() { "0319882DD0313240", "0319882DD0313750"};
-                var Stations = _StationInfoService.Repository.QueryData(x => stationCodes.Contains(x.StationCode));
-                #region 鍏ユ彁鍗囨満浠诲姟
-                var Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0);
-                if (Station != null)
-                {
-                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                    Dt_Task dt_Task = new Dt_Task()
-                    {
-                        TaskNum = tasknum,
-                        WMSTaskNum = "GP" + tasknum,
-                        Grade = 60,
-                        PalletCode = Station.PalletCode,
-                        Roadway = "",
-                        TaskState = (int)TaskStatusEnum.New,
-                        TaskType = TaskTypeEnum.F04.ObjToInt(),
-                        SourceAddress = Station.StationCode,
-                        CurrentAddress = Station.StationCode,
-                        NextAddress = "TSJR4F",
-                        TargetAddress = "TSJR4F",
-                        Creater = "WCS",
-                    };
-                    var content = _taskService.SendHIKROBOTTask(dt_Task);
-                    if (content.Status)
-                    {
-                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
-                        dt_Task.Dispatchertime = DateTime.Now;
-                        Station.StationStatus = (int)LocationStatusEnum.OutLock;
-                        _taskService.AddData(dt_Task);
-                        _StationInfoService.UpdateData(Station);
-                    }
-                }
-                #endregion
+            //    #region 4F
+            //    List<string> stationCodes = new() { "0319882DD0313240", "0319882DD0313750"};
+            //    var Stations = _StationInfoService.Repository.QueryData(x => stationCodes.Contains(x.StationCode));
+            //    #region 鍏ユ彁鍗囨満浠诲姟
+            //    var Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0);
+            //    if (Station != null)
+            //    {
+            //        var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+            //        Dt_Task dt_Task = new Dt_Task()
+            //        {
+            //            TaskNum = tasknum,
+            //            WMSTaskNum = "GP" + tasknum,
+            //            Grade = 60,
+            //            PalletCode = Station.PalletCode,
+            //            Roadway = "",
+            //            TaskState = (int)TaskStatusEnum.New,
+                        //TaskType = TaskTypeEnum.F04.ObjToInt(),
+            //            SourceAddress = Station.StationCode,
+            //            CurrentAddress = Station.StationCode,
+            //            NextAddress = "TSJR4F",
+            //            TargetAddress = "TSJR4F",
+            //            Creater = "WCS",
+            //        };
+            //        var content = _taskService.SendHIKROBOTTask(dt_Task);
+            //        if (content.Status)
+            //        {
+            //            dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+            //            dt_Task.Dispatchertime = DateTime.Now;
+            //            Station.StationStatus = (int)LocationStatusEnum.OutLock;
+            //            _taskService.AddData(dt_Task);
+            //            _StationInfoService.UpdateData(Station);
+            //        }
+            //    }
+            //    #endregion
 
-                #region 鍑烘彁鍗囨満浠诲姟
-                device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
-                if (device != null && device.IsConnected)
-                {
-                    var reslur = device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F");
-                    if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1)
-                    {
-                        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/);
-                        if (dt_Task == null)
-                        {
-                            Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0);
-                            if (Station != null)
-                            {
-                                var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                                dt_Task = new Dt_Task()
-                                {
-                                    TaskNum = tasknum,
-                                    WMSTaskNum = "GP" + tasknum,
-                                    Grade = 60,
-                                    PalletCode = "LXM" + tasknum,
-                                    Roadway = "",
-                                    TaskState = (int)TaskStatusEnum.New,
-                                    TaskType = TaskTypeEnum.F03.ObjToInt(),
-                                    SourceAddress = "TSJC4F",
-                                    CurrentAddress = "TSJC4F",
-                                    NextAddress = Station.StationCode,
-                                    TargetAddress = Station.StationCode,
-                                    Creater = "WCS",
-                                };
-                                var content = _taskService.SendHIKROBOTTask(dt_Task);
-                                if (content.Status)
-                                {
-                                    dt_Task.TaskState = (int)TaskStatusEnum.Execut;
-                                    dt_Task.Dispatchertime = DateTime.Now;
-                                    Station.StationStatus = (int)LocationStatusEnum.InLock;
-                                    _taskService.AddData(dt_Task);
-                                    _StationInfoService.UpdateData(Station);
-                                }
-                            }
-                        }
-                    }
-                }
-                #endregion
+            //    #region 鍑烘彁鍗囨満浠诲姟
+            //    device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
+            //    if (device != null && device.IsConnected)
+            //    {
+            //        var reslur = device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F");
+            //        if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1)
+            //        {
+            //            Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/);
+            //            if (dt_Task == null)
+            //            {
+            //                Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0);
+            //                if (Station != null)
+            //                {
+            //                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+            //                    dt_Task = new Dt_Task()
+            //                    {
+            //                        TaskNum = tasknum,
+            //                        WMSTaskNum = "GP" + tasknum,
+            //                        Grade = 60,
+            //                        PalletCode = "LXM" + tasknum,
+            //                        Roadway = "",
+            //                        TaskState = (int)TaskStatusEnum.New,
+            //                        TaskType = TaskTypeEnum.F03.ObjToInt(),
+            //                        SourceAddress = "TSJC4F",
+            //                        CurrentAddress = "TSJC4F",
+            //                        NextAddress = Station.StationCode,
+            //                        TargetAddress = Station.StationCode,
+            //                        Creater = "WCS",
+            //                    };
+            //                    var content = _taskService.SendHIKROBOTTask(dt_Task);
+            //                    if (content.Status)
+            //                    {
+            //                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+            //                        dt_Task.Dispatchertime = DateTime.Now;
+            //                        Station.StationStatus = (int)LocationStatusEnum.InLock;
+            //                        _taskService.AddData(dt_Task);
+            //                        _StationInfoService.UpdateData(Station);
+            //                    }
+            //                }
+            //            }
+            //        }
+            //    }
+            //    #endregion
 
-                #endregion
+            //    #endregion
 
-                #region 鍥涙ゼ鑷姩浠诲姟
-                //List<string> LocationCodes = new() { "RGD0303A04041", "RG0302A05041", "RG0304A05041", "RG0205A05031" };
-                List<string> LocationCodes = new() { "RGD0302A05041", "RGD0304A05041", "R3CG0106A04031", "RGD0307A05012" };
-                var hKLocationInfos = _HKLocationInfoService.Repository.QueryData(x => LocationCodes.Contains(x.LocationCode));
-                #region 鍏ユ彁鍗囨満浠诲姟
-                var hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.InStock);
-                if (hKLocation != null)
-                {
-                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                    Dt_Task dt_Task = new Dt_Task()
-                    {
-                        TaskNum = tasknum,
-                        WMSTaskNum = "GP" + tasknum,
-                        Grade = 60,
-                        PalletCode = hKLocation.PalletCode,
-                        Roadway = "",
-                        TaskState = (int)TaskStatusEnum.New,
-                        TaskType = TaskTypeEnum.CHUKU1.ObjToInt(),
-                        SourceAddress = hKLocation.LocationCode,
-                        CurrentAddress = hKLocation.LocationCode,
-                        NextAddress = "TSJR4F",
-                        TargetAddress = "TSJR4F",
-                        Creater = "WCS",
-                    };
-                    var content = _taskService.SendHIKROBOTTask(dt_Task);
-                    if (content.Status)
-                    {
-                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
-                        dt_Task.Dispatchertime = DateTime.Now;
-                        hKLocation.LocationStatus = (int)LocationStatusEnum.OutLock;
-                        _taskService.AddData(dt_Task);
-                        _HKLocationInfoService.UpdateData(hKLocation);
-                    }
-                }
-                #endregion
+            //    #region 鍥涙ゼ鑷姩浠诲姟
+            //    //List<string> LocationCodes = new() { "RGD0303A04041", "RG0302A05041", "RG0304A05041", "RG0205A05031" };
+            //    List<string> LocationCodes = new() { "RGD0302A05041", "RGD0304A05041", "R3CG0106A04031", "RGD0307A05012" };
+            //    var hKLocationInfos = _HKLocationInfoService.Repository.QueryData(x => LocationCodes.Contains(x.LocationCode));
+            //    #region 鍏ユ彁鍗囨満浠诲姟
+            //    var hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.InStock);
+            //    if (hKLocation != null)
+            //    {
+            //        var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+            //        Dt_Task dt_Task = new Dt_Task()
+            //        {
+            //            TaskNum = tasknum,
+            //            WMSTaskNum = "GP" + tasknum,
+            //            Grade = 60,
+            //            PalletCode = hKLocation.PalletCode,
+            //            Roadway = "",
+            //            TaskState = (int)TaskStatusEnum.New,
+                        //TaskType = TaskTypeEnum.CHUKU1.ObjToInt(),
+            //            SourceAddress = hKLocation.LocationCode,
+            //            CurrentAddress = hKLocation.LocationCode,
+            //            NextAddress = "TSJR4F",
+            //            TargetAddress = "TSJR4F",
+            //            Creater = "WCS",
+            //        };
+            //        var content = _taskService.SendHIKROBOTTask(dt_Task);
+            //        if (content.Status)
+            //        {
+            //            dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+            //            dt_Task.Dispatchertime = DateTime.Now;
+            //            hKLocation.LocationStatus = (int)LocationStatusEnum.OutLock;
+            //            _taskService.AddData(dt_Task);
+            //            _HKLocationInfoService.UpdateData(hKLocation);
+            //        }
+            //    }
+            //    #endregion
 
-                #region 鍑烘彁鍗囨満浠诲姟
-                //if (device != null && device.IsConnected)
-                //{
-                //    if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1)
-                //    {
-                //        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F");
-                //        if (dt_Task == null)
-                //        {
-                //            hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free);
-                //            if (hKLocation != null)
-                //            {
-                //                var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
-                //                dt_Task = new Dt_Task()
-                //                {
-                //                    TaskNum = tasknum,
-                //                    WMSTaskNum = "GP" + tasknum,
-                //                    Grade = 60,
-                //                    PalletCode = "LXM" + tasknum,
-                //                    Roadway = "",
-                //                    TaskState = (int)TaskStatusEnum.New,
-                //                    TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(),
-                //                    SourceAddress = "TSJC4F",
-                //                    CurrentAddress = "TSJC4F",
-                //                    NextAddress = hKLocation.LocationCode,
-                //                    TargetAddress = hKLocation.LocationCode,
-                //                    Creater = "WCS",
-                //                };
-                //                var content = _taskService.SendHIKROBOTTask(dt_Task);
-                //                if (content.Status)
-                //                {
-                //                    dt_Task.TaskState = (int)TaskStatusEnum.Execut;
-                //                    dt_Task.Dispatchertime = DateTime.Now;
-                //                    hKLocation.LocationStatus = (int)LocationStatusEnum.InLock;
-                //                    _taskService.AddData(dt_Task);
-                //                    _HKLocationInfoService.UpdateData(hKLocation);
-                //                }
-                //            }
-                //        }
+            //    #region 鍑烘彁鍗囨満浠诲姟
+            //    //if (device != null && device.IsConnected)
+            //    //{
+            //    //    if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1)
+            //    //    {
+            //    //        Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F");
+            //    //        if (dt_Task == null)
+            //    //        {
+            //    //            hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free);
+            //    //            if (hKLocation != null)
+            //    //            {
+            //    //                var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+            //    //                dt_Task = new Dt_Task()
+            //    //                {
+            //    //                    TaskNum = tasknum,
+            //    //                    WMSTaskNum = "GP" + tasknum,
+            //    //                    Grade = 60,
+            //    //                    PalletCode = "LXM" + tasknum,
+            //    //                    Roadway = "",
+            //    //                    TaskState = (int)TaskStatusEnum.New,
+            //    //                    TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(),
+            //    //                    SourceAddress = "TSJC4F",
+            //    //                    CurrentAddress = "TSJC4F",
+            //    //                    NextAddress = hKLocation.LocationCode,
+            //    //                    TargetAddress = hKLocation.LocationCode,
+            //    //                    Creater = "WCS",
+            //    //                };
+            //    //                var content = _taskService.SendHIKROBOTTask(dt_Task);
+            //    //                if (content.Status)
+            //    //                {
+            //    //                    dt_Task.TaskState = (int)TaskStatusEnum.Execut;
+            //    //                    dt_Task.Dispatchertime = DateTime.Now;
+            //    //                    hKLocation.LocationStatus = (int)LocationStatusEnum.InLock;
+            //    //                    _taskService.AddData(dt_Task);
+            //    //                    _HKLocationInfoService.UpdateData(hKLocation);
+            //    //                }
+            //    //            }
+            //    //        }
 
-                //    }
-                //}
-                #endregion
+            //    //    }
+            //    //}
+            //    #endregion
 
-                #endregion
-            }
-            catch (Exception ex)
-            {
-                Console.Out.WriteLine(nameof(TaskJob) + ":" + ex.Message);
-            }
+            //    #endregion
+            //}
+            //catch (Exception ex)
+            //{
+            //    Console.Out.WriteLine(nameof(TaskJob) + ":" + ex.Message);
+            //}
             return Task.CompletedTask;
         }
     }
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 6528366..b6c133b 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"
@@ -1,4 +1,5 @@
-锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -41,6 +42,13 @@
                     //Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.F01 || x.TaskType == (int)TaskTypeEnum.RK3F || x.TaskType == (int)TaskTypeEnum.CK3F || x.TaskType == (int)TaskTypeEnum.Q1TSJ4 || x.TaskType == (int)TaskTypeEnum.STU0003 || x.TaskType == (int)TaskTypeEnum.F02 || x.TaskType == (int)TaskTypeEnum.CHUKU1 || x.TaskType == (int)TaskTypeEnum.Q3RK || x.TaskType == (int)TaskTypeEnum.Q3CK).OrderByDescending(x => x.Grade).ToList();
                     //if (Tasks.Count > 0) HIKROBOTTask(Tasks);
                     //#endregion
+
+                    #region 涓嬪彂娴峰悍1鍒�6妤肩殑AGV浠诲姟/涓嬪彂娴峰悍6鍒�1妤肩殑AGV浠诲姟
+                    Tasks = newTasks.Where(x => (x.TaskType == (int)TaskTypeEnum.Q3CK) || x.TaskType == (int)TaskTypeEnum.Q3RK).OrderByDescending(x => x.Grade).ToList();
+                    if (Tasks.Count > 0) SendAGVTask(Tasks);
+
+
+                    #endregion
                 }
             }
             catch (Exception ex)
@@ -102,6 +110,14 @@
                     //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList();
                     //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
                     #endregion
+
+
+                    #region 澶勭悊agv寰呯┖杞︽惉杩愪换鍔�
+                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.WaitingHkAGVMovePosition).OrderByDescending(x => x.Grade).ToList();
+                    if (Tasks.Count > 0) SendHKWaitTask();
+                    #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 62f4f3c..a402251 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"
@@ -34,8 +34,9 @@
         private readonly IStationMangerService _stationMangerService;
         private readonly ITrackloginfoService _trackloginfoService;
         private readonly IUnitOfWorkManage _unitOfWorkManage;
+        private readonly IAGVCartInfoService _agvcartInfoService;
 
-        public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService, IStationMangerService stationMangerService, ITrackloginfoService trackloginfoService, IUnitOfWorkManage unitOfWorkManage)
+        public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService, IStationMangerService stationMangerService, ITrackloginfoService trackloginfoService, IUnitOfWorkManage unitOfWorkManage, IAGVCartInfoService agvcartInfoService)
         {
             _taskService = taskService;//娉ㄥ叆
             _apiInfoService = apiInfoService;
@@ -43,6 +44,7 @@
             _stationMangerService = stationMangerService;
             _trackloginfoService = trackloginfoService;
             _unitOfWorkManage = unitOfWorkManage;
+            _agvcartInfoService = agvcartInfoService;
         }
 
         public Task Execute(IJobExecutionContext context)
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 1debf07..fdf3f1f 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"
@@ -52,6 +52,7 @@
                 {
                     List<Dt_Task> Uptasks = new List<Dt_Task>();
                     var taskList = _taskService.Repository.QueryData(x => x.TaskType == TaskTypeEnum.CPInbound.ObjToInt() && x.TaskState == TaskStatusEnum.CheckShapeing.ObjToInt());
+                    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 task in taskList)
                     {
@@ -89,12 +90,30 @@
                                 //device.SetValue(QualityInspectionCommandEnum.FaultReset, true, task.SourceAddress);
                             }
                         }
-                        else
-                        {
-                            //鍐欏叆鍋滄璐ㄦ淇″彿
-                            device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
-                            device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress);
-                        }
+                        //else
+                        //{
+                        //    //鍐欏叆鍋滄璐ㄦ淇″彿
+                        //    device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress);
+                        //    device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress);
+                        //}
+                    }
+                    foreach (var item in AGVtaskList)
+                    {
+                        
+                            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);
+                        
                     }
                     _taskService.UpdateData(Uptasks);
                     WriteInfo(device.DeviceName, "infoLog");

--
Gitblit v1.9.3