From 441b6f8d257a01b2998253ef0515a201777d7e68 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 04 七月 2025 14:06:49 +0800
Subject: [PATCH] 修改入库、移库、出库逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8217153-c75b-4b3f-a8c2-cd54835606ff.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f27e7358-a337-44d8-8d18-bca47d5723ed.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs          |   86 +++++--
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bbb10841-85aa-418a-a91c-a3229de6a4b9.vsidx |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                                            |   11 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs                         |  187 +++++++---------
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ff6f6cdf-00f0-40e5-8759-0ada18529bb0.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f782a76a-5636-414d-a87a-39e5a61406ef.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs                       |    8 
 /dev/null                                                                                                    |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs                                   |   39 ++-
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0c2ae6db-773d-4b1d-ba5d-0680c7c92288.vsidx |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs                             |    6 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs                               |    4 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile.pubxml.user            |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user            |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                         |   24 +
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs             |  242 ++++++++++++++++-----
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2                                           |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs                            |   13 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs                                     |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs                       |    2 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0637e846-7baa-4b58-b0a0-0a586d9c58e4.vsidx |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo                                                    |    0 
 24 files changed, 386 insertions(+), 242 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/42e3722a-46ec-44ec-82fc-0bf3fa30c915.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/42e3722a-46ec-44ec-82fc-0bf3fa30c915.vsidx"
deleted file mode 100644
index e42a8a9..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/42e3722a-46ec-44ec-82fc-0bf3fa30c915.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ddb81e50-aab2-46f5-81bb-c5c3fca804ce.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8217153-c75b-4b3f-a8c2-cd54835606ff.vsidx"
similarity index 68%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ddb81e50-aab2-46f5-81bb-c5c3fca804ce.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8217153-c75b-4b3f-a8c2-cd54835606ff.vsidx"
index 976cf16..1ed89ba 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ddb81e50-aab2-46f5-81bb-c5c3fca804ce.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8217153-c75b-4b3f-a8c2-cd54835606ff.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/77bf8ba3-70ed-4aa9-82c4-1fd9c3618af6.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bbb10841-85aa-418a-a91c-a3229de6a4b9.vsidx"
similarity index 84%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/77bf8ba3-70ed-4aa9-82c4-1fd9c3618af6.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bbb10841-85aa-418a-a91c-a3229de6a4b9.vsidx"
index d14d29d..4ad355b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/77bf8ba3-70ed-4aa9-82c4-1fd9c3618af6.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bbb10841-85aa-418a-a91c-a3229de6a4b9.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cda85d9c-be73-4192-81be-494735162144.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f27e7358-a337-44d8-8d18-bca47d5723ed.vsidx"
similarity index 79%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cda85d9c-be73-4192-81be-494735162144.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f27e7358-a337-44d8-8d18-bca47d5723ed.vsidx"
index cf65f37..c6d4fb3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cda85d9c-be73-4192-81be-494735162144.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f27e7358-a337-44d8-8d18-bca47d5723ed.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2fc23e4a-c23f-4436-8d17-2525c73bf14d.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f782a76a-5636-414d-a87a-39e5a61406ef.vsidx"
similarity index 75%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2fc23e4a-c23f-4436-8d17-2525c73bf14d.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f782a76a-5636-414d-a87a-39e5a61406ef.vsidx"
index b3c2fd9..aad129c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2fc23e4a-c23f-4436-8d17-2525c73bf14d.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f782a76a-5636-414d-a87a-39e5a61406ef.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ff6f6cdf-00f0-40e5-8759-0ada18529bb0.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ff6f6cdf-00f0-40e5-8759-0ada18529bb0.vsidx"
new file mode 100644
index 0000000..e1b4d16
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ff6f6cdf-00f0-40e5-8759-0ada18529bb0.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user"
index d14afa4..f45581f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user"
@@ -6,7 +6,7 @@
 <Project>
   <PropertyGroup>
     <_PublishTargetUrl>E:\IISText\鑺滄箹涓変竴\WCS</_PublishTargetUrl>
-    <History>True|2025-06-26T04:37:56.3484297Z;True|2025-06-23T11:05:39.8485399+08:00;True|2025-06-23T10:17:43.5808008+08:00;True|2025-06-23T09:54:40.9326213+08:00;True|2025-06-23T09:37:35.0797885+08:00;True|2025-06-20T10:31:11.5116619+08:00;True|2025-06-19T17:43:29.0660951+08:00;True|2025-06-19T15:33:15.5169520+08:00;True|2025-06-17T15:08:30.3988621+08:00;True|2025-06-17T11:49:45.7757057+08:00;False|2025-06-17T11:46:12.2872897+08:00;True|2025-06-17T11:14:34.8780060+08:00;True|2025-06-17T10:58:01.4890300+08:00;True|2025-05-20T11:49:19.9344988+08:00;True|2025-05-19T16:43:32.2157734+08:00;True|2025-05-19T16:12:01.9378787+08:00;True|2025-05-15T16:58:47.2930537+08:00;True|2025-05-15T13:17:15.3596644+08:00;True|2025-05-15T13:11:17.2616075+08:00;True|2025-05-15T12:57:49.7942020+08:00;True|2025-05-15T12:38:37.7925022+08:00;True|2025-05-15T12:28:15.6975809+08:00;True|2025-05-15T11:44:00.9991686+08:00;True|2025-05-15T10:37:45.5900920+08:00;True|2025-05-14T11:31:54.9438366+08:00;True|2025-05-14T09:59:15.2570833+08:00;True|2025-05-14T09:57:55.8054307+08:00;True|2025-05-14T09:39:18.3194886+08:00;True|2025-05-13T17:13:53.4476748+08:00;True|2025-05-13T15:21:11.2441407+08:00;True|2025-05-13T10:39:40.0223843+08:00;True|2025-05-09T11:16:41.1746344+08:00;True|2025-04-27T19:58:33.9706872+08:00;True|2025-04-27T14:52:52.9853720+08:00;True|2025-04-21T17:54:03.6534614+08:00;True|2025-04-19T10:28:25.0898569+08:00;True|2025-04-17T14:04:50.3243452+08:00;True|2025-03-27T16:23:43.2657011+08:00;True|2025-03-25T12:01:47.0052741+08:00;True|2025-02-14T17:36:18.5767695+08:00;True|2025-02-14T14:39:49.5856199+08:00;</History>
+    <History>True|2025-07-04T01:01:52.1304268Z;True|2025-06-30T18:01:52.8637969+08:00;True|2025-06-30T17:01:56.3064177+08:00;True|2025-06-30T16:38:12.1057130+08:00;True|2025-06-28T14:30:49.7946659+08:00;True|2025-06-28T10:55:58.8222554+08:00;True|2025-06-28T08:47:43.7229176+08:00;True|2025-06-26T12:37:56.3484297+08:00;True|2025-06-23T11:05:39.8485399+08:00;True|2025-06-23T10:17:43.5808008+08:00;True|2025-06-23T09:54:40.9326213+08:00;True|2025-06-23T09:37:35.0797885+08:00;True|2025-06-20T10:31:11.5116619+08:00;True|2025-06-19T17:43:29.0660951+08:00;True|2025-06-19T15:33:15.5169520+08:00;True|2025-06-17T15:08:30.3988621+08:00;True|2025-06-17T11:49:45.7757057+08:00;False|2025-06-17T11:46:12.2872897+08:00;True|2025-06-17T11:14:34.8780060+08:00;True|2025-06-17T10:58:01.4890300+08:00;True|2025-05-20T11:49:19.9344988+08:00;True|2025-05-19T16:43:32.2157734+08:00;True|2025-05-19T16:12:01.9378787+08:00;True|2025-05-15T16:58:47.2930537+08:00;True|2025-05-15T13:17:15.3596644+08:00;True|2025-05-15T13:11:17.2616075+08:00;True|2025-05-15T12:57:49.7942020+08:00;True|2025-05-15T12:38:37.7925022+08:00;True|2025-05-15T12:28:15.6975809+08:00;True|2025-05-15T11:44:00.9991686+08:00;True|2025-05-15T10:37:45.5900920+08:00;True|2025-05-14T11:31:54.9438366+08:00;True|2025-05-14T09:59:15.2570833+08:00;True|2025-05-14T09:57:55.8054307+08:00;True|2025-05-14T09:39:18.3194886+08:00;True|2025-05-13T17:13:53.4476748+08:00;True|2025-05-13T15:21:11.2441407+08:00;True|2025-05-13T10:39:40.0223843+08:00;True|2025-05-09T11:16:41.1746344+08:00;True|2025-04-27T19:58:33.9706872+08:00;True|2025-04-27T14:52:52.9853720+08:00;True|2025-04-21T17:54:03.6534614+08:00;True|2025-04-19T10:28:25.0898569+08:00;True|2025-04-17T14:04:50.3243452+08:00;True|2025-03-27T16:23:43.2657011+08:00;True|2025-03-25T12:01:47.0052741+08:00;True|2025-02-14T17:36:18.5767695+08:00;True|2025-02-14T14:39:49.5856199+08:00;</History>
     <LastFailureDetails />
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs"
index 59b47ef..57528e2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_ShuttleCar.cs"
@@ -134,19 +134,19 @@
             if (tasktype == 0)
             {
                 if (string.IsNullOrEmpty(currentAddress))
-                    _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
+                    _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState <= (int)TaskOutStatusEnum.Car_OutFinish, TaskOrderBy);
                 else
-                    _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
+                    _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState <= (int)TaskOutStatusEnum.Car_OutFinish), TaskOrderBy);
             }
             else
             {
                 if (TaskInboundTypes.Contains(tasktype))
                 {
-                    _Task = BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy) ?? BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy);
+                    _Task = BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState <= (int)TaskOutStatusEnum.Car_OutFinish, TaskOrderBy) ?? BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy);
                 }
                 else if (TaskOutboundTypes.Contains(tasktype))
                 {
-                    _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy) ?? BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
+                    _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy) ?? BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState <= (int)TaskOutStatusEnum.Car_OutFinish, TaskOrderBy);
                 }
             }
             if (_Task != null) tasktype = _Task.TaskType;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs"
index 7ba71e1..4e6adcb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs"
@@ -98,7 +98,7 @@
                     if (task.TargetIsPickPlace)
                     {
                         task.TaskState = (int)TaskRelocationStatusEnum.RelocationFinish;
-                        WMStask.TaskState = task.TaskState;
+                        //WMStask.TaskState = task.TaskState;
                         AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete);
                     }
                     else
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 884c120..740ecd1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -119,6 +119,10 @@
                             task.NextAddress = routers.FirstOrDefault().ChildPosi;
                         }
                     }
+                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+                    {
+                        task.TaskState = item.SourceIsPickPlace ? TaskRelocationStatusEnum.CarSource_Finish.ObjToInt() : TaskRelocationStatusEnum.RelocationNew.ObjToInt();
+                    }
                     tasks.Add(task);
                 }
                 BaseDal.AddData(tasks);
@@ -318,14 +322,14 @@
             {
                 Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                 if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
-                {
-                    task.TaskState = (int)TaskOutStatusEnum.OutPending;
-                }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
-                {
-                    task.TaskState = (int)TaskInStatusEnum.InPending;
-                }
+                //if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                //{
+                //    task.TaskState = (int)TaskOutStatusEnum.OutPending;
+                //}
+                //else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                //{
+                //    task.TaskState = (int)TaskInStatusEnum.InPending;
+                //}
                 task.ExceptionMessage = message;
                 task.ModifyDate = DateTime.Now;
                 BaseDal.UpdateData(task);
@@ -619,9 +623,9 @@
         /// <param name="TaskState"></param>
         /// <param name="TaskType"></param>
         /// <returns></returns>
-        public Dt_Task GetTaskState(int TaskState, int TaskType)
+        public Dt_Task? GetTaskState(int TaskState, int TaskType)
         {
-            Dt_Task task = null;
+            Dt_Task? task = null;
             if (TaskState > 0 && TaskType > 0)
                 task = BaseDal.QueryFirst(x => x.TaskState == TaskState && x.TaskType == TaskType);
             else if (TaskState > 0)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs"
index aff3ceb..f0d1a2c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs"
@@ -14,29 +14,47 @@
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO.WMSInfo;
 using WIDESEAWCS_Tasks.ShuttleCarJob;
+using System.Reflection.Metadata;
 
 namespace WIDESEAWCS_Tasks
 {
     partial class CommonShuttleCarJob
     {
+        private readonly object _lockObject = new object();
         #region 鍫嗗灈鏈虹Щ杞﹀畬鎴�
         /// <summary>
-        /// 鑾峰彇鍫嗗灈鏈虹Щ杞�/绉诲簱鍏呯數浠诲姟
+        /// 鑾峰彇鍫嗗灈鏈哄畬鎴愮┛姊溅寰呮墽琛屼换鍔�
         /// </summary>
         public void GetSC_CarFinish()
         {
-            Dt_Task dt_Task = GetTask(TaskCarStatusEnum.SC_CarFinish.ObjToInt(), TaskOtherTypeEnum.RelocationCar.ObjToInt());//绉昏溅浠诲姟
+            #region 绉昏溅浠诲姟
+            Dt_Task dt_Task = GetTask(TaskCarStatusEnum.SC_CarFinish.ObjToInt(), TaskOtherTypeEnum.RelocationCar.ObjToInt());
             if (dt_Task != null)
             {
                 UpdateShuttleCar(dt_Task.ShuttleCarCode, dt_Task.CurrentAddress);
+                dt_Task.TaskState = TaskCarStatusEnum.RelocationCarFinish.ObjToInt();
                 _taskService.AddTask_Hty(dt_Task, TaskOperateTypeEnum.AutoComplete);
             }
-            dt_Task = GetTask(CarChargingTaskEnum.CarChargingSC_CarFinish.ObjToInt(), TaskOtherTypeEnum.RelocationCarCharging.ObjToInt());//绉昏溅鍏呯數浠诲姟
+            #endregion
+
+            #region 绉昏溅鍏呯數浠诲姟
+            dt_Task = GetTask(CarChargingTaskEnum.CarChargingSC_CarFinish.ObjToInt(), TaskOtherTypeEnum.RelocationCarCharging.ObjToInt());
             if (dt_Task != null)
             {
                 UpdateShuttleCar(dt_Task.ShuttleCarCode, dt_Task.CurrentAddress);
                 SendTask(dt_Task);//涓嬪彂鍏呯數浠诲姟
             }
+            #endregion
+
+            #region 绉诲簱浠诲姟
+            dt_Task = GetTask(TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt(), TaskRelocationTypeEnum.Relocation.ObjToInt());
+            if (dt_Task != null) SendTask(dt_Task);
+            #endregion
+
+            #region 鍏ュ簱浠诲姟
+            dt_Task = _taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish);
+            if (dt_Task != null) SendTask(dt_Task);
+            #endregion
         }
         #endregion
         /// <summary>
@@ -47,21 +65,110 @@
         public void UpdateShuttleCar(string ShuttleCarCode, string Address)
         {
             var ShuttleCar = QueryCode(ShuttleCarCode);
-            string[] targetCodes = Address.Split("-");
-            var Row = Convert.ToInt16(targetCodes[0]);
-            if (Row == 3)
-            {
-                ShuttleCar.ShuttleCarPosition = Address;
-                ShuttleCar.ShuttleCarPosition1 = Address;
-            }
-            else
-            {
-                //var a = Row == 1 ? 2.ToString("000") : 1.ToString("000");
-                ShuttleCar.ShuttleCarPosition = Address;
-                ShuttleCar.ShuttleCarPosition1 = Address;// a + "-" + targetCodes[1] + "-" + targetCodes[2];
-            }
+            ShuttleCar.ShuttleCarPosition = Address;
+            ShuttleCar.ShuttleCarPosition1 = Address;
             _shuttleCarService.UpdateData(ShuttleCar);
         }
+
+        public void GetShuttleCarTask(ShuttleCar shuttleCar, ShuttleCarTaskCommandR command)
+        {
+            #region 鏂板缓绉昏溅鍏呯數浠诲姟
+            Dt_Task CarCharging_Task = GetTask((int)CarChargingTaskEnum.CarChargingNew, (int)TaskOtherTypeEnum.RelocationCarCharging);
+            if (CarCharging_Task != null)
+            {
+                Dt_Task? _Task = _taskRepository.QueryFirst(x => x.ShuttleCarCode == CarCharging_Task.ShuttleCarCode && x.TaskType != TaskOtherTypeEnum.RelocationCarCharging.ObjToInt());
+                if (_Task == null) SendTask(CarCharging_Task);
+                else if (_taskService.TaskOutboundTypes.Contains(_Task.TaskType) && _Task.TaskState >= TaskOutStatusEnum.SC_OutFinish.ObjToInt())
+                    SendTask(CarCharging_Task);
+            }
+            #endregion
+
+            #region 鏂板缓绉昏溅浠诲姟璧风偣涓虹┖
+            Dt_Task? RelocationCar_Task = null;
+            lock (_lockObject)
+            {
+                RelocationCar_Task = GetTask((int)TaskCarStatusEnum.CarNew, (int)TaskOtherTypeEnum.RelocationCar);
+                if (RelocationCar_Task != null)
+                {
+                    if (string.IsNullOrEmpty(RelocationCar_Task.SourceAddress))
+                    {
+                        (bool, Dt_ShuttleCar) result = GetSourceTask(shuttleCar, command);
+                        if (result.Item1)
+                            UpdateSource(ref RelocationCar_Task, result.Item2);
+                        else
+                            GetShuttleCar(ref RelocationCar_Task, shuttleCar);//鑾峰彇鍙﹀涓�涓┛姊溅淇℃伅
+                    }
+                }
+                Thread.Sleep(1000);
+            }
+            #endregion
+
+            #region 鍫嗗灈鏈虹Щ搴撳畬鎴愬墠浠诲姟/鍫嗗灈鏈哄嚭搴撳畬鎴愬墠浠诲姟
+            //鍒ゆ柇鏄惁瀛樺湪婊¤冻鍫嗗灈鏈哄叆搴撶殑浠诲姟
+            if (_taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && !string.IsNullOrEmpty(x.NextAddress), _taskService.TaskOrderBy) == null)
+            {
+                Dt_Task dt_Task = _taskRepository.QueryFirst(x => _taskService.TaskRelocationTypes.Contains(x.TaskType) && x.TaskState < (int)TaskRelocationStatusEnum.SC_RelocationFinish, _taskService.TaskOrderBy) ??
+                _taskRepository.QueryFirst(x => _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.TaskState < (int)TaskOutStatusEnum.SC_OutFinish, _taskService.TaskOrderBy);
+                if (dt_Task != null)
+                {
+                    if (dt_Task.TaskState == (int)TaskRelocationStatusEnum.RelocationNew || dt_Task.TaskState == (int)TaskOutStatusEnum.OutNew)
+                    {
+                        var ShuttleCar = _shuttleCarService.QueryShuttleCar(dt_Task.SourceAddress);//鍒ゆ柇璧风偣鏄惁鏈夌┛姊溅
+                        if (ShuttleCar == null)
+                        {
+                            if (RelocationCar_Task != null && string.IsNullOrEmpty(RelocationCar_Task.TargetAddress))
+                            {
+                                RelocationCar_Task.TargetAddress = dt_Task.SourceAddress;
+                                RelocationCar_Task.NextAddress = dt_Task.SourceAddress;
+                                _taskService.UpdateData(RelocationCar_Task);
+                                _taskExecuteDetailService.AddTaskExecuteDetail(RelocationCar_Task.TaskNum, "鏇存柊绉昏溅浠诲姟鐩爣鍦板潃");
+                            }
+                            else
+                                _taskService.AddRelocationCarTask("", dt_Task.SourceAddress);
+                        }
+                        else
+                        {
+                            dt_Task.ShuttleCarCode = ShuttleCar.ShuttleCarCode;
+                            SendTask(dt_Task);
+                        }
+                    }
+                }
+            }
+            #endregion
+
+            #region 鏂板缓绉昏溅浠诲姟缁堢偣涓虹┖
+            if (RelocationCar_Task != null)
+            {
+                if (string.IsNullOrEmpty(RelocationCar_Task.TargetAddress))
+                {
+                    #region 鍚慦MS鐢宠
+                    var ShuttleCar = _shuttleCarService.QueryNoCode(RelocationCar_Task.ShuttleCarCode);
+                    WebResponseContent content = new WebResponseContent();
+                    var ResultData = HttpHelper.PostAsync(WMSInterfaceAddress.GetPosition + $"?position={RelocationCar_Task.SourceAddress}&&position1={ShuttleCar.ShuttleCarPosition}", "", headers: new Dictionary<string, string>());
+                    if (ResultData.Result != null)
+                    {
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result);
+                        if (content != null && content.Status)
+                        {
+                            RelocationCar_Task.TargetAddress = content.Message;
+                            RelocationCar_Task.NextAddress = RelocationCar_Task.TargetAddress;
+                            _taskService.UpdateData(RelocationCar_Task);
+                            _taskExecuteDetailService.AddTaskExecuteDetail(RelocationCar_Task.TaskNum, "鏇存柊绉昏溅浠诲姟鐩爣鍦板潃");
+                        }
+                    }
+                    #endregion
+                }
+                if (!string.IsNullOrEmpty(RelocationCar_Task.SourceAddress) && !string.IsNullOrEmpty(RelocationCar_Task.TargetAddress) && !string.IsNullOrEmpty(RelocationCar_Task.ShuttleCarCode))
+                {
+                    Dt_Task? _Task = _taskRepository.QueryFirst(x => x.ShuttleCarCode == RelocationCar_Task.ShuttleCarCode && x.TaskType != TaskOtherTypeEnum.RelocationCar.ObjToInt());
+                    if (_Task == null) SendTask(RelocationCar_Task);
+                    else if (_taskService.TaskOutboundTypes.Contains(_Task.TaskType) && _Task.TaskState >= TaskOutStatusEnum.SC_OutFinish.ObjToInt())
+                        SendTask(RelocationCar_Task);
+                }
+            }
+            #endregion
+        }
+
         private static readonly SemaphoreSlim _CarTaskObject = new SemaphoreSlim(1, 1);
         #region 鑾峰彇绉昏溅浠诲姟
         /// <summary>
@@ -138,22 +245,23 @@
                 #endregion
 
                 #region 绌挎杞︿换鍔�
+
+                var task = _taskService.ShuttleCarRelocationTask(shuttleCar.DeviceCode);//鑾峰彇绌挎杞︾Щ搴撲换鍔�
+                if (task != null)
+                {
+                    if (!task.SourceIsPickPlace && task.ShuttleCarCode == shuttleCar.DeviceCode)
+                    {
+                        SendTask(task);
+                    }
+                }
                 else
                 {
-                    var task = _taskService.ShuttleCarRelocationTask(shuttleCar.DeviceCode);//鑾峰彇绌挎杞︾Щ搴撲换鍔�
+                    task = _taskService.QueryShuttleCarTask(shuttleCar.DeviceCode);
                     if (task != null)
                     {
-                        if (!task.SourceIsPickPlace && task.ShuttleCarCode == shuttleCar.DeviceCode)
+                        if (_taskService.TaskOutboundTypes.Contains(task.TaskType))
                         {
-                            SendTask(task);
-                        }
-                    }
-                    else
-                    {
-                        task = _taskService.QueryShuttleCarTask(shuttleCar.DeviceCode);
-                        if (task != null)
-                        {
-                            if (_taskService.TaskOutboundTypes.Contains(task.TaskType) && !task.SourceIsPickPlace)
+                            if (!task.SourceIsPickPlace && task.TaskState == (int)TaskOutStatusEnum.OutNew)
                             {
                                 var ShuttleCar = _shuttleCarService.QueryShuttleCar(task.SourceAddress);//鍑哄簱浠诲姟鍒ゆ柇璧风偣鏄惁鏈夌┛姊溅
                                 if (ShuttleCar == null) _taskService.AddRelocationCarTask("", task.SourceAddress);
@@ -163,11 +271,12 @@
                                     SendTask(task);
                                 }
                             }
-                            else
-                                SendTask(task);
                         }
+                        else
+                            SendTask(task);
                     }
                 }
+
                 #endregion
             }
             catch (Exception)
@@ -197,6 +306,7 @@
             _taskExecuteDetailService.AddTaskExecuteDetail(dt_Task.TaskNum, "鏇存柊绉昏溅浠诲姟璧峰鍦板潃");
         }
         #endregion
+
         /// <summary>
         /// 鍒ゆ柇褰撳墠绌挎杞︽槸鍚﹀彲浠ユ墽琛岀Щ搴�
         /// </summary>
@@ -209,40 +319,50 @@
             bool ok = false;
             if (command.Status == (short)ShuttleCarStatus.Standby && command.TaskTypeComplete == (short)ShuttleCarTaskComplete.Standby && command.Err_Status == (short)ShuttleCarErr.Normal)
             {
-                #region 鍒ゆ柇褰撳墠绌挎杞︽槸鍚﹀瓨鍦ㄤ换鍔�
-                Dt_Task? _Task = _taskRepository.QueryFirst(x => x.SourceAddress == _ShuttleCar.ShuttleCarPosition);
+                if (_taskRepository.QueryFirst(x => x.SourceAddress == _ShuttleCar.ShuttleCarPosition && _taskService.TaskRelocationTypes.Contains(x.TaskType) && x.TaskState == TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt()) != null)
+                    return (ok, _ShuttleCar);
+                Dt_Task? _Task = _taskRepository.QueryFirst(x => x.ShuttleCarCode == _ShuttleCar.ShuttleCarCode);
                 if (_Task != null)
-                {
-                    if (_Task.TaskState == TaskOutStatusEnum.OutNew.ObjToInt() ||
-                        _Task.TaskState == TaskRelocationStatusEnum.RelocationNew.ObjToInt() ||
-                        _Task.TaskState == TaskCarStatusEnum.CarNew.ObjToInt() ||
-                        _Task.TaskState == CarChargingTaskEnum.CarChargingNew.ObjToInt())
-                    {
-                        _Task.ShuttleCarCode = shuttleCar.DeviceCode;
-                        SendTask(_Task);
-                        return (ok, _ShuttleCar);
-                    }
-                }
-                _Task = _taskRepository.QueryFirst(x => x.TargetAddress == _ShuttleCar.ShuttleCarPosition);
-                if (_Task != null)
-                {
-                    if (_Task.TaskState == TaskInStatusEnum.SC_InFinish.ObjToInt() ||
-                        _Task.TaskState == TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt() ||
-                        _Task.TaskState == CarChargingTaskEnum.CarChargingSC_CarFinish.ObjToInt())
-                    {
-                        _Task.ShuttleCarCode = shuttleCar.DeviceCode;
-                        SendTask(_Task);
-                        return (ok, _ShuttleCar);
-                    }
-                }
-                _Task = _taskRepository.QueryData(x => x.ShuttleCarCode == _ShuttleCar.ShuttleCarCode && _taskService.TaskOutboundTypes.Contains(x.TaskType)).OrderByDescending(x => x.CreateDate).FirstOrDefault();
-                if (_Task != null)
-                {
-                    if (_Task.TaskState >= TaskOutStatusEnum.SC_OutFinish.ObjToInt())
-                        _Task = null;
-                }
-                #endregion
+                    ok = _taskService.TaskOutboundTypes.Contains(_Task.TaskType) && _Task.TaskState >= TaskOutStatusEnum.SC_OutFinish.ObjToInt();
                 ok = _Task == null;
+                #region 鍒ゆ柇褰撳墠绌挎杞︽槸鍚﹀瓨鍦ㄤ换鍔�
+                //Dt_Task? _Task = _taskRepository.QueryFirst(x => x.SourceAddress == _ShuttleCar.ShuttleCarPosition);
+                //if (_Task != null)
+                //{
+                //    if (_Task.TaskState <= TaskOutStatusEnum.Car_OutFinish.ObjToInt() ||
+                //        _Task.TaskState <= TaskRelocationStatusEnum.CarSource_Finish.ObjToInt() ||
+                //        _Task.TaskState <= TaskCarStatusEnum.ShuttleCar_Finish.ObjToInt() ||
+                //        _Task.TaskState <= CarChargingTaskEnum.CarCharging_Finish.ObjToInt())
+                //    {
+                //        //_Task.ShuttleCarCode = shuttleCar.DeviceCode;
+                //        //SendTask(_Task);
+                //        return (ok, _ShuttleCar);
+                //    }
+                //}
+                //_Task = _taskRepository.QueryFirst(x => x.TargetAddress == _ShuttleCar.ShuttleCarPosition);
+                //if (_Task != null)
+                //{
+                //    if (_Task.TaskState >= TaskInStatusEnum.Line_InFinish.ObjToInt() ||
+                //        _Task.TaskState >= TaskRelocationStatusEnum.CarSource_Finish.ObjToInt() ||
+                //        _Task.TaskState >= CarChargingTaskEnum.CarCharging_Finish.ObjToInt())
+                //    {
+                //        //_Task.ShuttleCarCode = shuttleCar.DeviceCode;
+                //        //SendTask(_Task);
+                //        return (ok, _ShuttleCar);
+                //    }
+                //}
+                //_Task = _taskRepository.QueryData(x => x.SourceAddress == _ShuttleCar.ShuttleCarPosition &&
+                //x.TaskState < TaskRelocationStatusEnum.CarSource_Finish.ObjToInt() &&
+                //x.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt()).OrderByDescending(x => x.CreateDate).FirstOrDefault();
+                //if (_Task != null) return (ok, _ShuttleCar);
+                //_Task = _taskRepository.QueryData(x => x.ShuttleCarCode == _ShuttleCar.ShuttleCarCode && _taskService.TaskOutboundTypes.Contains(x.TaskType)).OrderByDescending(x => x.CreateDate).FirstOrDefault();
+                //if (_Task != null)
+                //{
+                //    if (_Task.TaskState >= TaskOutStatusEnum.SC_OutFinish.ObjToInt())
+                //        _Task = null;
+                //}
+                //ok = _Task == null;
+                #endregion
             }
             if (!ok)
             {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs"
index 8169f2e..18cbfe1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs"
@@ -85,9 +85,7 @@
                         }
                         #endregion
 
-                        #region 鑾峰彇鍫嗗灈鏈虹Щ杞�/绉诲簱瀹屾垚浠诲姟
-                        GetSC_CarFinish();
-                        #endregion
+                        GetSC_CarFinish();//鍫嗗灈鏈哄畬鎴愮Щ杞�/绉昏溅鍏呯數/绉诲簱/鍏ュ簱浠诲姟
 
                         #region 鍒涘缓绉昏溅鍏呯數浠诲姟
                         if (command.Err_Status == (short)ShuttleCarErr.LowBattery || command.ElectricQuantity <= (short)ShuttleCarErr.LowBattery)
@@ -105,7 +103,7 @@
                                         ShuttleCarTaskCommandR command1 = ReadCustomer<ShuttleCarTaskCommandR>(shuttleCar1, shuttleCar1.DeviceCode);//璇诲彇绌挎杞︿俊鎭�
                                         if (command1 != null && command1.JoinStatus == 1)
                                         {
-                                            if (command1.Status == (short)ShuttleCarStatus.Charging && command1.ElectricQuantity /*> command.ElectricQuantity*/ >= 50)
+                                            if (command1.Status == (short)ShuttleCarStatus.Charging && command1.ElectricQuantity >= 50)
                                             {
                                                 shuttleCar1.SetValue(ShuttleCarDBName.TaskType, (short)ShuttleCarStatus.QuitCharging);
                                             }
@@ -114,13 +112,26 @@
                                 }
                                 else
                                 {
-                                    string CarChargingStation = AppSettings.Configuration[nameof(CarChargingStation)];//鍏呯數浣�
-                                                                                                                      //鍒ゆ柇鍏呯數浣嶆槸鍚︽湁杞�
+                                    string CarChargingStation = AppSettings.Configuration[nameof(CarChargingStation)];//鍒ゆ柇鍏呯數浣嶆槸鍚︽湁杞�
                                     var ShuttleCar1 = _shuttleCarService.QueryShuttleCar(CarChargingStation);
                                     if (ShuttleCar1 != null && ShuttleCar1.ShuttleCarCode != shuttleCar.DeviceCode)
                                     {
+                                        #region 鍒ゆ柇鏄惁瀛樺湪鏂板缓绉昏溅浠诲姟
                                         if (_taskRepository.QueryFirst(x => x.ShuttleCarCode == ShuttleCar1.ShuttleCarCode) == null)
-                                            _taskService.AddRelocationCarTask(ShuttleCar1.ShuttleCarPosition, "", ShuttleCar1.ShuttleCarCode);
+                                        {
+                                            var dt_Task = GetTask((int)TaskCarStatusEnum.CarNew, (int)TaskOtherTypeEnum.RelocationCar);
+                                            if (dt_Task != null && string.IsNullOrEmpty(dt_Task.SourceAddress))
+                                            {
+                                                dt_Task.SourceAddress = ShuttleCar1.ShuttleCarPosition;
+                                                dt_Task.CurrentAddress = dt_Task.SourceAddress;
+                                                dt_Task.ShuttleCarCode = ShuttleCar1.ShuttleCarCode;
+                                                _taskService.UpdateData(dt_Task);
+                                                _taskExecuteDetailService.AddTaskExecuteDetail(dt_Task.TaskNum, "鏇存柊绉昏溅浠诲姟璧峰鍦板潃");
+                                            }
+                                            else
+                                                _taskService.AddRelocationCarTask(ShuttleCar1.ShuttleCarPosition, "", ShuttleCar1.ShuttleCarCode);
+                                        }
+                                        #endregion
                                     }
                                     else
                                     {
@@ -134,18 +145,12 @@
 
                         #region 鑾峰彇绉昏溅/鍑哄叆搴撲换鍔�
                         if (command != null &&
-                            (command.Status == (short)ShuttleCarStatus.Standby ||
-                            command.Status == (short)ShuttleCarStatus.Charging) &&
+                            (command.Status == (short)ShuttleCarStatus.Standby || command.Status == (short)ShuttleCarStatus.Charging) &&
                             command.TaskTypeComplete == (short)ShuttleCarTaskComplete.Standby &&
-                            (command.Err_Status == (short)ShuttleCarErr.Normal ||
-                            command.Err_Status == (short)ShuttleCarErr.LowBattery)
-                            )
+                            (command.Err_Status == (short)ShuttleCarErr.Normal || command.Err_Status == (short)ShuttleCarErr.LowBattery))
                         {
-                            var dt_Task = GetTask(TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt(), TaskRelocationTypeEnum.Relocation.ObjToInt());//绉诲簱浠诲姟
-                            if (dt_Task != null && shuttleCar.DeviceCode == dt_Task.ShuttleCarCode)
-                                SendTask(dt_Task);
-                            else
-                                Get_CarTask(shuttleCar, command);
+                            //Get_CarTask(shuttleCar, command);
+                            GetShuttleCarTask(shuttleCar, command);
                         }
                         #endregion
                     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index 2535656..1066bcb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -81,102 +81,24 @@
                         WriteDebug($"{commonStackerCrane.DeviceName}浠诲姟瀹屾垚", $"{remark},浠诲姟鍙枫�恵commonStackerCrane.CurrentTaskNum}銆�");
                         NormalCompleted(commonStackerCrane);
                     }
-                    //DeviceProtocolDetailDTO? deviceProtocolDetail = commonStackerCrane.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.ProtocalDetailValue == commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CompleteStatus).ToString() && x.DeviceProParamName == nameof(StackerCraneTaskCommandR.CompleteStatus));
-                    //if (deviceProtocolDetail != null)
-                    //{
-                    //    MethodInfo? method = GetType().GetMethod(deviceProtocolDetail.ProtocolDetailType);
-                    //    if (method != null) method.Invoke(this, new object[] { commonStackerCrane });
-                    //}
                     #endregion
+
                     #region 浠诲姟閫昏緫澶勭悊
                     if (common.Onlinestate == (short)Onlinestate.online)
                     {
                         #region 鏌ヨ浠诲姟,閫昏緫澶勭悊
                         if (common.RunStatus == (short)RunStatus.Standby)
                         {
-                            var Task = _taskService.GetTaskState((int)TaskCarStatusEnum.ShuttleCar_Finish, (int)TaskOtherTypeEnum.RelocationCar);//鑾峰彇绉昏溅浠诲姟
-                            var Task1 = _taskService.GetTaskState((int)CarChargingTaskEnum.CarCharging_Finish, (int)TaskOtherTypeEnum.RelocationCarCharging);//鑾峰彇绉昏溅鍏呯數浠诲姟
-                            if (Task != null)
-                            {
-                                SendTask(commonStackerCrane, Task);
-                            }
-                            else if (Task1 != null)
-                            {
-                                SendTask(commonStackerCrane, Task1);
-                            }
+                            #region 绌挎杞︾Щ杞�/鍏呯數浠诲姟
+                            var Task = _taskService.GetTaskState((int)CarChargingTaskEnum.CarCharging_Finish, (int)TaskOtherTypeEnum.RelocationCarCharging) ??
+                                _taskService.GetTaskState((int)TaskCarStatusEnum.ShuttleCar_Finish, (int)TaskOtherTypeEnum.RelocationCar);
+                            if (Task != null) SendTask(commonStackerCrane, Task);
+                            #endregion
                             else
                             {
-                                Dt_Task? task = GetTask(commonStackerCrane);//鑾峰彇鍫嗗灈鏈轰换鍔�
-                                if (task != null)
-                                {
-                                    if (task.TaskType == (int)TaskRelocationTypeEnum.Relocation)//绉诲簱浠诲姟鍒ゆ柇缁堢偣鏄惁鏈夌┛姊溅
-                                    {
-                                        if (task.SourceIsPickPlace && task.TaskState == (int)TaskRelocationStatusEnum.RelocationNew)
-                                        {
-                                            var ShuttleCar = GetShuttleCarInfo(task.TargetAddress);//绉诲簱浠诲姟鍒ゆ柇缁堢偣鏄惁鏈夌┛姊溅
-                                            if (ShuttleCar == null)
-                                            {
-                                                _taskService.AddRelocationCarTask("", task.TargetAddress);
-                                            }
-                                            else
-                                                SendTask(commonStackerCrane, task);//涓嬪彂鍫嗗灈鏈轰换鍔�
-                                        }
-                                        else if (!task.SourceIsPickPlace && task.TaskState == (int)TaskRelocationStatusEnum.RelocationNew && task.ShuttleCarCode == null)
-                                        {
-                                            var ShuttleCar = GetShuttleCarInfo(task.SourceAddress);//绉诲簱浠诲姟鍒ゆ柇璧风偣鏄惁鏈夌┛姊溅
-                                            if (ShuttleCar != null)
-                                            {
-                                                task.ShuttleCarCode = ShuttleCar.ShuttleCarCode;
-                                                _taskService.UpdateData(task);
-                                            }
-                                            else _taskService.AddRelocationCarTask("", task.SourceAddress);
-                                        }
-                                        else if (/*!task.TargetIsPickPlace &&*/ task.TaskState == (int)TaskRelocationStatusEnum.CarSource_Finish)
-                                        {
-                                            var ShuttleCar = GetShuttleCarInfo(task.TargetAddress);//绉诲簱浠诲姟鍒ゆ柇缁堢偣鏄惁鏈夌┛姊溅
-                                            if (task.TargetIsPickPlace && ShuttleCar != null)//绉昏蛋
-                                            {
-                                                _taskService.AddRelocationCarTask(task.TargetAddress, "", ShuttleCar.ShuttleCarCode);
-                                            }
-                                            else if (!task.TargetIsPickPlace && ShuttleCar == null)
-                                            {
-                                                _taskService.AddRelocationCarTask("", task.TargetAddress);
-                                                #region 鏌ヨ
-                                                task = _taskService.QueryCarOutFinish();
-                                                if (task != null) SendTask(commonStackerCrane, task);//涓嬪彂鍫嗗灈鏈轰换鍔�
-                                                #endregion
-                                            }
-                                            else
-                                            {
-                                                task.ShuttleCarCode = ShuttleCar?.ShuttleCarCode;
-                                                _taskService.UpdateData(task);
-                                                SendTask(commonStackerCrane, task);//涓嬪彂鍫嗗灈鏈轰换鍔�
-                                            }
-                                        }
-                                    }
-                                    else if (_taskService.TaskInboundTypes.Contains(task.TaskType))
-                                    {
-                                        var ShuttleCar = GetShuttleCarInfo(task.TargetAddress);//鍏ュ簱浠诲姟鍒ゆ柇缁堢偣鏄惁鏈夌┛姊溅
-                                        if (task.TargetIsPickPlace && ShuttleCar != null)//绉昏蛋
-                                        {
-                                            _taskService.AddRelocationCarTask(task.TargetAddress, "", ShuttleCar.ShuttleCarCode);
-                                        }
-                                        else if (!task.TargetIsPickPlace && ShuttleCar == null)
-                                        {
-                                            _taskService.AddRelocationCarTask("", task.TargetAddress);
-                                        }
-                                        else
-                                        {
-                                            task.ShuttleCarCode = ShuttleCar?.ShuttleCarCode;
-                                            _taskService.UpdateData(task);
-                                            SendTask(commonStackerCrane, task);//涓嬪彂鍫嗗灈鏈轰换鍔�
-                                        }
-                                    }
-                                    else
-                                        SendTask(commonStackerCrane, task);//涓嬪彂鍫嗗灈鏈轰换鍔�
-                                }
+                                Task = GetStackerCraneTask();
+                                if (Task != null) SendTask(commonStackerCrane, Task);
                             }
-
                         }
                         #endregion
                     }
@@ -189,6 +111,7 @@
             }
             return Task.CompletedTask;
         }
+
         #region 浠诲姟涓嬪彂缁欏爢鍨涙満
         private void SendTask(SpeStackerCrane commonStackerCrane, Dt_Task task)
         {
@@ -212,26 +135,9 @@
         }
         #endregion
 
+        #region 浠诲姟瀹屾垚
         /// <summary>
-        /// 浠诲姟瀹屾垚浜嬩欢璁㈤槄鐨勬柟娉�
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e)
-        {
-            CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane;
-            if (commonStackerCrane != null)
-            {
-                if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
-                {
-                    Console.Out.WriteLine("TaskCompleted" + e.TaskNum);
-                    _taskService.StackCraneTaskCompleted(e.TaskNum);
-                    commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
-                }
-            }
-        }
-        /// <summary>
-        /// 浠诲姟姝e父瀹屾垚
+        /// 浠诲姟瀹屾垚
         /// </summary>
         /// <param name="commonStackerCrane"></param>
         public void NormalCompleted(SpeStackerCrane commonStackerCrane)
@@ -241,6 +147,69 @@
                 var content = _taskService.StackCraneTaskCompleted(commonStackerCrane.CurrentTaskNum);
                 commonStackerCrane.SetValue(StackerCraneDBName.ConfirmComplete, content.Status);
             }
+        }
+        #endregion
+
+        private Dt_Task? GetStackerCraneTask()
+        {
+            Dt_Task? task = null;
+            task = _taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && !string.IsNullOrEmpty(x.NextAddress), _taskService.TaskOrderBy);//鍏ュ簱浠诲姟
+            if (task != null) task = GetTaskOk(task);
+
+            if (task == null)
+            {
+                task = _taskRepository.QueryFirst(x => _taskService.TaskRelocationTypes.Contains(x.TaskType) &&
+            x.TaskState == (int)TaskRelocationStatusEnum.CarSource_Finish, _taskService.TaskOrderBy) ??//绉诲簱浠诲姟
+            _taskRepository.QueryFirst(x => _taskService.TaskOutboundTypes.Contains(x.TaskType) &&
+            x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish, _taskService.TaskOrderBy);//鍑哄簱浠诲姟
+                if (task != null) task = GetTaskOk(task);
+            }
+            return task;
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇浠诲姟鏄惁婊¤冻鍫嗗灈鏈烘墽琛�
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public Dt_Task? GetTaskOk(Dt_Task? task)
+        {
+            #region 鍏ュ簱/绉诲簱浠诲姟
+            if (_taskService.TaskInboundTypes.Contains(task.TaskType) || _taskService.TaskRelocationTypes.Contains(task.TaskType))
+            {
+                var ShuttleCar = GetShuttleCarInfo(task.TargetAddress);//鍏ュ簱浠诲姟鍒ゆ柇缁堢偣鏄惁鏈夌┛姊溅
+                if (task.TargetIsPickPlace && ShuttleCar != null)//绉昏蛋
+                {
+                    _taskService.AddRelocationCarTask(task.TargetAddress, "", ShuttleCar.ShuttleCarCode);
+                    task = null;
+                }
+                else if (!task.TargetIsPickPlace && ShuttleCar == null)
+                {
+                    _taskService.AddRelocationCarTask("", task.TargetAddress);
+                    task = null;
+                }
+                else
+                {
+                    if (ShuttleCar != null)
+                    {
+                        if (_taskRepository.QueryFirst(x => x.TaskType != task.TaskType && x.ShuttleCarCode == ShuttleCar.ShuttleCarCode) != null)
+                            task = null;
+                        else
+                        {
+                            task.ShuttleCarCode = ShuttleCar.ShuttleCarCode;
+                            _taskService.UpdateData(task);
+                        }
+                    }
+                }
+            }
+            #endregion
+
+            #region 鍑哄簱浠诲姟
+            else
+                task = OutTaskStationIsOccupied(task);
+            #endregion
+
+            return task;
         }
         /// <summary>
         /// 鑾峰彇浠诲姟
@@ -263,8 +232,8 @@
             #region 鍑哄叆搴撲换鍔�
             else
             {
-                task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
-                if (task != null) return task;
+                //task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
+                //if (task != null) return task;
                 if (commonStackerCrane.LastTaskType == null)
                 {
                     task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
@@ -273,7 +242,7 @@
                 {
                     if (commonStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                     {
-                        task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode) ?? _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
+                        task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
                         if (task == null)
                         {
                             task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
@@ -281,7 +250,7 @@
                     }
                     else
                     {
-                        task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode) ?? _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+                        task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode) /*?? _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode)*/;
                         if (task == null)
                         {
                             task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs"
index 9ef6f79..dfef3d8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs"
@@ -64,44 +64,83 @@
                     }
                     else
                     {
-                        Dt_ShuttleCar? shuttleCar1 = _shuttleCarService.QueryCode(task.ShuttleCarCode);
-                        if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt() && task.Remark == "")
+                        if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
                         {
-                            shuttleCar1 = _shuttleCarService.QueryNoCode(task.ShuttleCarCode);
-                            task.Remark = shuttleCar1.ShuttleCarCode;
-                            _taskService.UpdateData(task);
+                            var shuttleCar2 = _shuttleCarService.QueryNoCode(task.ShuttleCarCode);
+                            ShuttleCar shuttleCarA = Storage.Devices.FirstOrDefault(x => x.DeviceCode == shuttleCar2.ShuttleCarCode) as ShuttleCar;
+                            ShuttleCar shuttleCarB = Storage.Devices.FirstOrDefault(x => x.DeviceCode == task.ShuttleCarCode) as ShuttleCar;
+
+                            #region 鍙栬揣
+                            if (ASRSRqtGetGoods)
+                            {
+                                shuttleCarA.SetValue(ShuttleCarDBName.ASRSRqtGetGoods, ASRSRqtGetGoods, shuttleCarA.DeviceCode);
+
+                                var AGVAlwASRSGetGoods = shuttleCarA.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSGetGoods, shuttleCarA.DeviceCode);//鍏佽鍙栬揣
+                                if (AGVAlwASRSGetGoods)
+                                    commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, AGVAlwASRSGetGoods);
+
+                                WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鍙栬揣", $"銆恵shuttleCarA.DeviceName}銆憑(AGVAlwASRSGetGoods ? "鍏佽" : "涓嶅厑璁�")}鍙栬揣,浠诲姟鍙枫�恵task.TaskNum}銆�");
+                            }
+                            #endregion
+
+                            #region 鍙栬揣瀹屾垚
+                            if (ASRSGetGoodsDone)
+                            {
+                                shuttleCarA.SetValue(ShuttleCarDBName.ASRSGetGoodsDone, ASRSGetGoodsDone, shuttleCarA.DeviceCode);
+                                WriteDebug($"{commonStackerCrane.DeviceName}鍙栬揣瀹屾垚", $"銆恵shuttleCarA.DeviceName}銆�,浠诲姟鍙枫�恵task.TaskNum}銆�");
+                            }
+                            #endregion
+
+                            #region 鏀捐揣
+                            if (ASRSRqtPutGoods)
+                            {
+                                shuttleCarB.SetValue(ShuttleCarDBName.ASRSRqtPutGoods, ASRSRqtPutGoods, shuttleCarB.DeviceCode);
+
+                                var AGVAlwASRSPuttGoods = shuttleCarB.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSPuttGoods, shuttleCarB.DeviceCode);//鍏佽鏀捐揣
+                                if (AGVAlwASRSPuttGoods)
+                                    commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPuttGoods, AGVAlwASRSPuttGoods);
+
+                                WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鏀捐揣", $"銆恵shuttleCarB.DeviceName}銆憑(AGVAlwASRSPuttGoods ? "鍏佽" : "涓嶅厑璁�")}鏀捐揣,浠诲姟鍙枫�恵task.TaskNum}銆�");
+                            }
+                            #endregion
+
+                            #region 鏀捐揣瀹屾垚
+                            if (ASRSPutAGoodsDone)
+                            {
+                                shuttleCarB.SetValue(ShuttleCarDBName.ASRSPutAGoodsDone, ASRSPutAGoodsDone, shuttleCarB.DeviceCode);
+                                WriteDebug($"{commonStackerCrane.DeviceName}鏀捐揣瀹屾垚", $"銆恵shuttleCarA.DeviceName}銆�,浠诲姟鍙枫�恵task.TaskNum}銆�");
+                            }
+                            #endregion
+
                         }
-                        if (shuttleCar1 != null)
+                        else
                         {
-                            ShuttleCar shuttleCar = Storage.Devices.FirstOrDefault(x => x.DeviceName == shuttleCar1.ShuttleCarName) as ShuttleCar;
+                            ShuttleCar shuttleCar = Storage.Devices.FirstOrDefault(x => x.DeviceCode == task.ShuttleCarCode) as ShuttleCar;
                             if (shuttleCar != null)
                             {
                                 shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetAGV, ASRSRqtGetAGV, shuttleCar.DeviceCode);
-                                if (ASRSRqtGetAGV)
-                                    WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鍙栬溅", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
 
                                 shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetGoods, ASRSRqtGetGoods, shuttleCar.DeviceCode);
-                                if (ASRSRqtGetGoods)
-                                    WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鍙栬揣", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
 
                                 shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtPutGoods, ASRSRqtPutGoods, shuttleCar.DeviceCode);
-                                if (ASRSRqtPutGoods)
-                                    WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鏀捐揣", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
 
                                 var AGVAlwASRSGetAGV = shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSGetAGV, shuttleCar.DeviceCode);//鍏佽鍙栬溅
                                 commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetAGV, AGVAlwASRSGetAGV);
-                                if (AGVAlwASRSGetAGV)
-                                    WriteDebug($"{shuttleCar.DeviceName}鍏佽鍙栬溅", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
+
+                                if (ASRSRqtGetAGV)
+                                    WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鍙栬溅", $"銆恵shuttleCar.DeviceName}銆憑(AGVAlwASRSGetAGV ? "鍏佽" : "涓嶅厑璁�")}鍙栬溅,浠诲姟鍙枫�恵task.TaskNum}銆�");
 
                                 var AGVAlwASRSGetGoods = shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSGetGoods, shuttleCar.DeviceCode);//鍏佽鍙栬揣
                                 commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, AGVAlwASRSGetGoods);
-                                if (AGVAlwASRSGetGoods)
-                                    WriteDebug($"{shuttleCar.DeviceName}鍏佽鍙栬揣", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
+
+                                if (ASRSRqtGetGoods)
+                                    WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鍙栬揣", $"銆恵shuttleCar.DeviceName}銆憑(AGVAlwASRSGetGoods ? "鍏佽" : "涓嶅厑璁�")}鍙栬揣,浠诲姟鍙枫�恵task.TaskNum}銆�");
 
                                 var AGVAlwASRSPuttGoods = shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSPuttGoods, shuttleCar.DeviceCode);//鍏佽鏀捐揣
                                 commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPuttGoods, AGVAlwASRSPuttGoods);
-                                if (AGVAlwASRSPuttGoods)
-                                    WriteDebug($"{shuttleCar.DeviceName}鍏佽鏀捐揣", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
+
+                                if (ASRSRqtPutGoods)
+                                    WriteDebug($"{commonStackerCrane.DeviceName}璇锋眰鏀捐揣", $"銆恵shuttleCar.DeviceName}銆憑(AGVAlwASRSPuttGoods ? "鍏佽" : "涓嶅厑璁�")}鏀捐揣,浠诲姟鍙枫�恵task.TaskNum}銆�");
 
                                 commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPutAGV, ASRSRqtPutAGV);
                                 if (ASRSRqtPutAGV)
@@ -109,14 +148,15 @@
 
                                 shuttleCar.SetValue(ShuttleCarDBName.ASRSGetAGVDone, ASRSGetAGVDone, shuttleCar.DeviceCode);
                                 if (ASRSGetAGVDone)
-                                    WriteDebug($"{commonStackerCrane.DeviceName}鍙栬溅瀹屾垚", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
+                                    WriteDebug($"{commonStackerCrane.DeviceName}鍙栬溅瀹屾垚", $"銆恵shuttleCar.DeviceName}銆�,浠诲姟鍙枫�恵task.TaskNum}銆�");
+
                                 shuttleCar.SetValue(ShuttleCarDBName.ASRSGetGoodsDone, ASRSGetGoodsDone, shuttleCar.DeviceCode);
                                 if (ASRSGetGoodsDone)
-                                    WriteDebug($"{commonStackerCrane.DeviceName}鍙栬揣瀹屾垚", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
+                                    WriteDebug($"{commonStackerCrane.DeviceName}鍙栬揣瀹屾垚", $"銆恵shuttleCar.DeviceName}銆�,浠诲姟鍙枫�恵task.TaskNum}銆�");
+
                                 shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGoodsDone, ASRSPutAGoodsDone, shuttleCar.DeviceCode);
                                 if (ASRSPutAGoodsDone)
-                                    WriteDebug($"{commonStackerCrane.DeviceName}鏀捐揣瀹屾垚", $"浠诲姟鍙枫�恵task.TaskNum}銆�");
-                                //shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGVDone, ASRSPutAGVDone, shuttleCar.DeviceCode);
+                                    WriteDebug($"{commonStackerCrane.DeviceName}鏀捐揣瀹屾垚", $"銆恵shuttleCar.DeviceName}銆�,浠诲姟鍙枫�恵task.TaskNum}銆�");
                             }
                         }
                     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0637e846-7baa-4b58-b0a0-0a586d9c58e4.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0637e846-7baa-4b58-b0a0-0a586d9c58e4.vsidx"
new file mode 100644
index 0000000..589477c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0637e846-7baa-4b58-b0a0-0a586d9c58e4.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3d0171a1-3fb1-4ed9-bfb5-11bb3a28ab1a.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0c2ae6db-773d-4b1d-ba5d-0680c7c92288.vsidx"
similarity index 74%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3d0171a1-3fb1-4ed9-bfb5-11bb3a28ab1a.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0c2ae6db-773d-4b1d-ba5d-0680c7c92288.vsidx"
index 1b517b7..b31cad0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3d0171a1-3fb1-4ed9-bfb5-11bb3a28ab1a.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0c2ae6db-773d-4b1d-ba5d-0680c7c92288.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4e3898f5-9ffc-4579-ad98-8cc5a550febc.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4e3898f5-9ffc-4579-ad98-8cc5a550febc.vsidx"
deleted file mode 100644
index a452a05..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4e3898f5-9ffc-4579-ad98-8cc5a550febc.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
index c36b6cf..e24a286 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
index baecaa8..f32a61a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
index d7deb8d..c6f33fb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
@@ -76,12 +76,12 @@
         /// 鑾峰彇鍙Щ搴撹揣浣�
         /// </summary>
         /// <returns></returns>
-        public Dt_LocationInfo AssignLocation()
+        public Dt_LocationInfo AssignLocation(List<string> LocationCodes)
         {
             Dt_LocationInfo? locationInfo = null;
             string CarChargingStation = AppSettings.Configuration[nameof(CarChargingStation)];//鑾峰彇绌挎杞﹀厖鐢典綅缃�
             var ChargingStations = CarChargingStation.Split(",");
-            locationInfo = BaseDal.QueryFirst(x => !ChargingStations.Contains(x.LocationCode) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.Row == 2, _emptyAssignOrderBy);
+            locationInfo = BaseDal.QueryFirst(x => !ChargingStations.Contains(x.LocationCode) && !LocationCodes.Contains(x.LocationCode) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.Row == 2, _emptyAssignOrderBy);
 
             if (locationInfo == null)
                 locationInfo = BaseDal.QueryFirst(x => !ChargingStations.Contains(x.LocationCode) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && x.Row == 1), _emptyAssignOrderBy);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
index d96dc06..385c0a8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
@@ -47,7 +47,7 @@
         /// 鑾峰彇鍙Щ搴撹揣浣�
         /// </summary>
         /// <returns></returns>
-        Dt_LocationInfo? AssignLocation();
+        Dt_LocationInfo? AssignLocation(List<string> LocationCodes);
         /// <summary>
         /// 鏍规嵁璐т綅缂栧彿鑾峰彇璐т綅淇℃伅
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
index 085798e..3b78bf9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
@@ -254,17 +254,17 @@
                 task.TargetAddress = task.NextAddress;
                 string[] targetCodes = task.NextAddress.Split("-");
                 var Row = Convert.ToInt16(targetCodes[0]);
-                task.TargetIsPickPlace = /*Row > 1 ?*/ locationInfo.MaxQty - locationInfo.CurrentQty == 1;
+                task.TargetIsPickPlace = locationInfo.MaxQty - locationInfo.CurrentQty == 1;
                 task.SourceIsPickPlace = false;
                 stockInfo.LocationCode = locationInfo.LocationCode;
                 stockInfo.StockStatus = StockStatusEmun.鍏ュ簱涓�.ObjToInt();
                 stockInfoDetail.Status = StockStatusEmun.鍏ュ簱涓�.ObjToInt();
                 locationInfo.CurrentQty++;
+                if (locationInfo.MaxQty < locationInfo.CurrentQty) locationInfo.CurrentQty = locationInfo.MaxQty;
+                stockInfo.SerialNumber = locationInfo.CurrentQty;
                 orderDetail.OverInQuantity++;
                 if (orderDetail.OverInQuantity > orderDetail.ReceiptQuantity)
                     orderDetail.OverInQuantity = orderDetail.ReceiptQuantity;
-                if (locationInfo.MaxQty < locationInfo.CurrentQty) locationInfo.CurrentQty = locationInfo.MaxQty;
-                /*if (locationInfo.MaxQty == 12)*/
                 locationInfo.EnableStatus = EnableStatusEnum.OnlyOut.ObjToInt();
                 locationInfo.LocationStatus = LocationStatusEnum.Inbounding.ObjToInt();
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs"
index a940808..8142e14 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs"
@@ -180,14 +180,17 @@
             }
             if (stockInfos1.Count > 0)
             {
-                Dt_LocationInfo? locationInfo2 = _basicService.LocationInfoService.AssignLocation();
-                if (locationInfo2 == null) throw new Exception("鏃犲彲绉诲簱璐т綅");
-                locationInfo2.LocationStatus = LocationStatusEnum.Relocationing.ObjToInt();
-                locationInfos.Add(locationInfo2);
+                List<string> strings = new List<string>();
                 foreach (var item in stockInfos1.GroupBy(x => x.LocationCode))
                 {
+                    Dt_LocationInfo? locationInfo2 = _basicService.LocationInfoService.AssignLocation(strings);
+                    if (locationInfo2 == null) throw new Exception("鏃犲彲绉诲簱璐т綅");
+                    locationInfo2.LocationStatus = LocationStatusEnum.Relocationing.ObjToInt();
+                    strings.Add(locationInfo2.LocationCode);
+                    locationInfos.Add(locationInfo2);
                     foreach (var item1 in item.OrderByDescending(x => x.SerialNumber))
                     {
+                        locationInfo2.CurrentQty++;
                         Dt_Task task = new()
                         {
                             CurrentAddress = item1.LocationCode,
@@ -204,8 +207,8 @@
                             TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum))
                         };
                         dt_Tasks.Add(task);
+                        item1.SerialNumber = locationInfo2.CurrentQty;
                         item1.StockStatus = StockStatusEmun.绉诲簱涓�.ObjToInt();
-                        //locationInfo2.CurrentQty++;
                     }
                 }
             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index bc247f5..0a47352 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -453,7 +453,10 @@
                             overCount = outboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
                             if (outboundOrderDetail.OverOutQuantity == outboundOrderDetail.OrderQuantity)
                             {
+                                var outboundOrderdetail = outboundOrder.Details.First(x => x.Id == outboundOrderDetail.Id);
                                 outboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
+                                outboundOrderdetail.OverOutQuantity = outboundOrderDetail.OverOutQuantity;
+                                outboundOrderdetail.OrderDetailStatus = outboundOrderDetail.OrderDetailStatus;
                                 overCount++;
                             }
                         }
@@ -496,9 +499,9 @@
                 Dt_LocationInfo Targetlocation = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);//鐩爣璐т綅
                 Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);//鎵樼洏搴撳瓨
                 Sourcelocation.CurrentQty--;
-                Targetlocation.CurrentQty++;
+                //Targetlocation.CurrentQty++;
                 stockInfo.LocationCode = Targetlocation.LocationCode;
-                stockInfo.SerialNumber = Targetlocation.CurrentQty;
+                //stockInfo.SerialNumber = Targetlocation.CurrentQty;
                 stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
                 if (Sourcelocation.CurrentQty == 0) Sourcelocation.LocationStatus = LocationStatusEnum.Free.ObjToInt();
                 Dt_Task _Task = BaseDal.QueryFirst(x => x.TaskNum != task.TaskNum && x.TaskType == task.TaskType && x.SourceAddress == Sourcelocation.LocationCode && x.TargetAddress == Targetlocation.LocationCode);
@@ -549,7 +552,7 @@
                 List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.Repository.LocationCodesGetStockInfos(new List<string> { stockInfo.LocationCode }).Where(x => x.StockStatus == StockStatusEmun.宸插叆搴�.ObjToInt()).ToList();
                 if (task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
                 {
-                    stockInfo.SerialNumber = stockInfos.Count + 1;
+                    //stockInfo.SerialNumber = stockInfos.Count + 1;
                     stockInfo.InDate = DateTime.Now;
                     stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
                     stockInfoDetail.Status = StockStatusEmun.宸插叆搴�.ObjToInt();
@@ -598,7 +601,7 @@
                 }
 
                 #endregion
-                stockInfo.SerialNumber = stockInfos.Count + 1;
+                //stockInfo.SerialNumber = stockInfos.Count + 1;
                 stockInfo.InDate = DateTime.Now;
                 stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
                 stockInfoDetail.Status = StockStatusEmun.宸插叆搴�.ObjToInt();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile.pubxml.user" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile.pubxml.user"
index ca6c42d..caa556c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile.pubxml.user"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile.pubxml.user"
@@ -6,7 +6,7 @@
 <Project>
   <PropertyGroup>
     <_PublishTargetUrl>E:\IISText\鑺滄箹涓変竴\WMS</_PublishTargetUrl>
-    <History>True|2025-06-23T02:41:48.4640291Z;True|2025-06-20T12:54:56.1810887+08:00;True|2025-06-20T10:43:00.0676097+08:00;True|2025-05-21T14:27:23.3463661+08:00;True|2025-05-20T09:58:56.9385057+08:00;True|2025-05-20T09:50:56.2630438+08:00;True|2025-05-19T16:43:28.3327270+08:00;True|2025-05-19T16:39:14.2351867+08:00;True|2025-05-15T10:36:19.1660612+08:00;True|2025-05-13T15:37:28.0425978+08:00;True|2025-05-13T15:21:45.1951276+08:00;True|2025-05-07T17:51:44.1784374+08:00;True|2025-04-27T14:53:35.8458295+08:00;True|2025-04-18T17:17:44.2558979+08:00;True|2025-04-18T11:56:16.2333182+08:00;True|2025-04-17T14:04:11.2641163+08:00;True|2025-03-27T16:24:43.5017432+08:00;True|2025-03-18T16:14:40.3832855+08:00;True|2025-02-18T14:43:41.4214052+08:00;True|2025-02-17T16:47:47.1464719+08:00;True|2025-02-14T13:02:33.0683296+08:00;True|2025-02-11T13:55:27.2837544+08:00;True|2025-02-11T13:54:12.7390669+08:00;True|2025-02-10T16:40:04.5645895+08:00;True|2025-02-10T16:24:19.3540916+08:00;True|2025-02-10T14:24:04.2140946+08:00;True|2025-02-10T14:01:37.7817950+08:00;True|2025-02-10T13:58:35.5650499+08:00;True|2025-02-10T13:49:31.5513866+08:00;False|2025-02-10T13:49:18.2135044+08:00;True|2025-02-10T11:32:33.6168149+08:00;False|2025-02-10T11:31:56.1964136+08:00;False|2025-02-10T11:31:03.0326897+08:00;True|2025-02-10T11:25:27.6553142+08:00;True|2025-01-18T15:10:06.4957375+08:00;False|2025-01-18T15:09:32.6588841+08:00;True|2025-01-18T15:07:28.0952526+08:00;True|2025-01-18T15:05:38.5243008+08:00;True|2025-01-18T15:03:32.1684791+08:00;True|2025-01-18T15:00:14.2579995+08:00;False|2025-01-18T14:59:17.3888861+08:00;False|2025-01-18T14:57:59.9512472+08:00;True|2025-01-18T13:57:17.7790615+08:00;True|2025-01-18T12:53:22.4660853+08:00;True|2025-01-17T17:26:35.1781925+08:00;True|2025-01-17T16:54:55.6218094+08:00;</History>
+    <History>True|2025-07-04T01:02:45.7658413Z;True|2025-06-28T12:22:26.5226251+08:00;True|2025-06-23T10:41:48.4640291+08:00;True|2025-06-20T12:54:56.1810887+08:00;True|2025-06-20T10:43:00.0676097+08:00;True|2025-05-21T14:27:23.3463661+08:00;True|2025-05-20T09:58:56.9385057+08:00;True|2025-05-20T09:50:56.2630438+08:00;True|2025-05-19T16:43:28.3327270+08:00;True|2025-05-19T16:39:14.2351867+08:00;True|2025-05-15T10:36:19.1660612+08:00;True|2025-05-13T15:37:28.0425978+08:00;True|2025-05-13T15:21:45.1951276+08:00;True|2025-05-07T17:51:44.1784374+08:00;True|2025-04-27T14:53:35.8458295+08:00;True|2025-04-18T17:17:44.2558979+08:00;True|2025-04-18T11:56:16.2333182+08:00;True|2025-04-17T14:04:11.2641163+08:00;True|2025-03-27T16:24:43.5017432+08:00;True|2025-03-18T16:14:40.3832855+08:00;True|2025-02-18T14:43:41.4214052+08:00;True|2025-02-17T16:47:47.1464719+08:00;True|2025-02-14T13:02:33.0683296+08:00;True|2025-02-11T13:55:27.2837544+08:00;True|2025-02-11T13:54:12.7390669+08:00;True|2025-02-10T16:40:04.5645895+08:00;True|2025-02-10T16:24:19.3540916+08:00;True|2025-02-10T14:24:04.2140946+08:00;True|2025-02-10T14:01:37.7817950+08:00;True|2025-02-10T13:58:35.5650499+08:00;True|2025-02-10T13:49:31.5513866+08:00;False|2025-02-10T13:49:18.2135044+08:00;True|2025-02-10T11:32:33.6168149+08:00;False|2025-02-10T11:31:56.1964136+08:00;False|2025-02-10T11:31:03.0326897+08:00;True|2025-02-10T11:25:27.6553142+08:00;True|2025-01-18T15:10:06.4957375+08:00;False|2025-01-18T15:09:32.6588841+08:00;True|2025-01-18T15:07:28.0952526+08:00;True|2025-01-18T15:05:38.5243008+08:00;True|2025-01-18T15:03:32.1684791+08:00;True|2025-01-18T15:00:14.2579995+08:00;False|2025-01-18T14:59:17.3888861+08:00;False|2025-01-18T14:57:59.9512472+08:00;True|2025-01-18T13:57:17.7790615+08:00;True|2025-01-18T12:53:22.4660853+08:00;True|2025-01-17T17:26:35.1781925+08:00;True|2025-01-17T16:54:55.6218094+08:00;</History>
     <LastFailureDetails />
   </PropertyGroup>
 </Project>
\ No newline at end of file

--
Gitblit v1.9.3