From 40f71192f067a48fff730a52fa8f47a1b69ba59d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期一, 13 十月 2025 17:28:00 +0800
Subject: [PATCH] 支持跨楼层与AGV搬运任务,优化货位管理新增跨楼层与AGV搬运任务相关页面、API及服务逻辑,支持任务状态更新与多任务类型处理。  更新货位管理功能,支持批量创建货位及批量记录货位状态变动。  重构任务状态更新逻辑,增强事务处理能力,优化代码结构。 调整页面配置与文档布局,新增常量与枚举以支持新功能。 修复部分任务状态处理中的潜在问题。

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                     |  135 +
 项目代码/PDA/pages/task/AGVCarry.vue                                                                             |  250 ++++
 项目代码/PDA/pages/task/AcrossFloor.vue                                                                          |  270 ++++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs                                |  939 ++++++++++------
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs                                                  |    8 
 项目代码/PDA/pages/Order/inboundOrder.vue                                                                        |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                              |  280 +++--
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs                                             |    2 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs                      |   35 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs                                                 |   61 -
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs                                      |    4 
 项目代码/PDA/pages/Order/Outorderboxing.vue                                                                      |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs                         |    6 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal      |    0 
 项目代码/PDA/pages/Order/Inorderboxing.vue                                                                       |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db               |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm           |    0 
 项目代码/PDA/pages/Order/OutOrderDetail.vue                                                                      |    0 
 项目资料/技术协议/~$明和 堆垛机立库项目软件开发、测试及维护服务-技术协议-2025.09.09.doc                                                       |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs                                      |    7 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnumHelper.cs                                              |    4 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json                                     |  325 ----
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs                               |   28 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs                              |   36 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm           |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs   |   27 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json                              |  319 ----
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs                                               |    4 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs                                              |   18 
 项目代码/PDA/pages.json                                                                                          |   21 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db          |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Location/ILocationStatusChangeRecordRepository.cs |    3 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs                     |    2 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs                     |    8 
 /dev/null                                                                                                    |  199 ---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db               |    0 
 项目代码/PDA/common/http.interceptor.js                                                                          |    4 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal           |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal           |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                         |  246 +++-
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db          |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtLocationInfo.cs                                 |    6 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs                              |    2 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm      |    0 
 46 files changed, 1,870 insertions(+), 1,379 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/http.interceptor.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/http.interceptor.js"
index aae4ccd..b35efd4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/http.interceptor.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/http.interceptor.js"
@@ -1,5 +1,5 @@
-// let baseUrl = 'http://127.0.0.1:5000'
-let baseUrl = 'http://10.31.3.252:5000'
+let baseUrl = 'http://127.0.0.1:5000'
+// let baseUrl = 'http://10.31.3.252:5000'
 
 const install = (Vue, vm) => {
 	// 姝や负鑷畾涔夐厤缃弬鏁帮紝鍏蜂綋鍙傛暟瑙佷笂鏂硅鏄�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages.json"
index 9fd159d..28d5a05 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages.json"
@@ -29,16 +29,23 @@
 			}
 		},
 		{
-			"path": "pages/Station/inboundOrder",
+			"path": "pages/task/AcrossFloor",
 			"style": {
-				"navigationBarTitleText": "鍏ュ簱璁㈠崟",
+				"navigationBarTitleText": "璺ㄦゼ灞傛惉杩�",
 				"enablePullDownRefresh": false
 			}
 		},
 		{
-			"path": "pages/Station/StationStatus",
+			"path": "pages/task/AGVCarry",
 			"style": {
-				"navigationBarTitleText": "绔欏彴鐘舵�佷俊鎭�",
+				"navigationBarTitleText": "AGV鎼繍",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/Order/inboundOrder",
+			"style": {
+				"navigationBarTitleText": "鍏ュ簱璁㈠崟",
 				"enablePullDownRefresh": false
 			}
 		},
@@ -57,21 +64,21 @@
 			}
 		},
 		{
-			"path": "pages/Station/Inorderboxing",
+			"path": "pages/Order/Inorderboxing",
 			"style": {
 				"navigationBarTitleText": "鍑哄簱鏄庣粏",
 				"enablePullDownRefresh": false
 			}
 		},
 		{
-			"path": "pages/Station/Outorderboxing",
+			"path": "pages/Order/Outorderboxing",
 			"style": {
 				"navigationBarTitleText": "鍏ュ簱鏄庣粏",
 				"enablePullDownRefresh": true
 			}
 		},
 		{
-			"path": "pages/Station/OutOrderDetail",
+			"path": "pages/Order/OutOrderDetail",
 			"style": {
 				"navigationBarTitleText": "鍏ュ簱鍗曟嵁鏄庣粏鎿嶄綔",
 				"enablePullDownRefresh": false
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/Inorderboxing.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/Inorderboxing.vue"
similarity index 100%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/Inorderboxing.vue"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/Inorderboxing.vue"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/OutOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/OutOrderDetail.vue"
similarity index 100%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/OutOrderDetail.vue"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/OutOrderDetail.vue"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/Outorderboxing.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/Outorderboxing.vue"
similarity index 100%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/Outorderboxing.vue"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/Outorderboxing.vue"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/inboundOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/inboundOrder.vue"
similarity index 100%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/inboundOrder.vue"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/inboundOrder.vue"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/StationStatus.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/StationStatus.vue"
deleted file mode 100644
index fad6673..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Station/StationStatus.vue"
+++ /dev/null
@@ -1,199 +0,0 @@
-<template>
-	<view>
-		<!-- <u-sticky>
-			<view style="background-color: #ffffff;">
-				<uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar>
-			</view>
-		</u-sticky>
-		<uni-list :border="true">
-			<uni-list-item direction="column" clickable @click="groupClick(item.orderNo)" link :to="page+item.orderNo"
-				v-for="item in allReceivingOrders" :key="item.orderNo">
-				<template v-slot:body>
-					<uni-group margin-top="20">
-						<view> 鍗曞彿:{{item.orderNo}} </view>
-						<view> 鍒涘缓浜�:{{item.creater}} </view>
-						<view> 鏃ユ湡:{{item.createDate}} </view>
-					</uni-group>
-				</template>
-			</uni-list-item>
-
-		</uni-list>
-		<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
-
-		<u-back-top :scroll-top="scrollTop" top="400"></u-back-top> -->
-		<view style="display: flex;margin-top: 10px;padding: 5px;justify-content: space-between;">
-			<button style="background-color: red;">绂佺敤</button>
-			<button style="background-color: #959595;">绌洪棽</button>
-			<button style="background-color: #83b833;">鏈夋枡</button>
-			<button style="background-color: #80bcfe;">鍏ュ簱涓�</button>
-			<button style="background-color: #80dfdf;">鍑哄簱涓�</button>
-			<button style="background-color: #f59a23;">鎶芥鍑哄簱</button>
-		</view>
-		<view style="display: flex;margin-top: 10px;padding: 5px;justify-content: space-between;">
-			<button v-if="station.length > 3 && station[3].color" :style="{ width: '150px', height: '50px',backgroundColor: station[3].color || 'red'}">{{station[3].stationType}}绔欏彴{{station[3].name}}</button>
-			<button v-if="station.length > 2 && station[2].color" :style="{ width: '150px', height: '50px',backgroundColor: station[2].color || 'red'}">{{station[2].stationType}}绔欏彴{{station[2].name}}</button>
-		</view>
-		<view style="display: flex;margin-top: 10px;padding: 5px;justify-content: space-between;">
-			<button v-if="station.length > 1 && station[1].color" :style="{ width: '150px', height: '50px',backgroundColor: station[1].color || 'red'}">{{station[1].stationType}}绔欏彴{{station[1].name}}</button>
-			<button v-if="station.length > 0 && station[0].color" :style="{ width: '150px', height: '50px',backgroundColor: station[0].color || 'red'}">{{station[0].stationType}}绔欏彴{{station[0].name}}</button>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				page: "/pages/materielGroup/Outorderboxing?orderNo=",
-				loadVisible: false,
-				searchValue: "",
-				status: "more",
-				allReceivingOrders: [],
-				station: [],
-				pageNo: 1,
-				scrollTop: 0
-			}
-		},
-		onLoad(res) {
-			// this.getData();
-			this.GetStationStatus();
-		},
-		onReachBottom() {
-			this.pageNo += 1;
-			// this.getData();
-		},
-		onPageScroll(e) {
-			this.scrollTop = e.scrollTop;
-		},
-		mounted() {
-			this.GetStationStatus();
-			setInterval(() => {
-				this.GetStationStatus();
-			}, 5000);
-		},
-		methods: {
-			// search(res) {
-			// 	// this.getData();
-			// 	this.GetStationStatus();
-			// },
-			groupClick() {
-
-			},
-			GetStationStatus() {
-				this.$u.post('/api/PDA/GetStationStatus', {}).then(res => {
-					// console.log(res);
-					if (res.status) {
-						this.station = res.data.station;
-						console.log(this.station[0].stationType)
-					}
-					// = result;
-				})
-			},
-			getData() {
-				var postData = {
-					orderNo: this.searchValue,
-					pageNo: this.pageNo
-				}
-				this.$u.post('/api/OutboundOrder/GetOutboundOrder', postData).then((res) => {
-					if (res.status) {
-						if (this.searchValue == '') {
-							this.allReceivingOrders = this.allReceivingOrders.concat(res.data);
-							if (this.allReceivingOrders.length > 3) {
-								this.loadVisible = true;
-							} else {
-								this.loadVisible = false;
-							}
-						} else {
-							this.allReceivingOrders = res.data;
-							if (this.allReceivingOrders.length > 3) {
-								this.loadVisible = true;
-							} else {
-								this.loadVisible = false;
-							}
-						}
-					}
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	@import '@/common/uni-ui.scss';
-
-	page {
-		display: flex;
-		flex-direction: column;
-		box-sizing: border-box;
-		background-color: #efeff4;
-		min-height: 100%;
-		height: auto;
-	}
-
-	.tips {
-		color: #67c23a;
-		font-size: 14px;
-		line-height: 40px;
-		text-align: center;
-		background-color: #f0f9eb;
-		height: 0;
-		opacity: 0;
-		transform: translateY(-100%);
-		transition: all 0.3s;
-	}
-
-	.tips-ani {
-		transform: translateY(0);
-		height: 40px;
-		opacity: 1;
-	}
-
-	.content {
-		width: 100%;
-		display: flex;
-	}
-
-	.list-picture {
-		width: 100%;
-		height: 145px;
-	}
-
-	.thumb-image {
-		width: 100%;
-		height: 100%;
-	}
-
-	.ellipsis {
-		display: flex;
-		overflow: hidden;
-	}
-
-	.uni-ellipsis-1 {
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
-
-	.uni-ellipsis-2 {
-		overflow: hidden;
-		text-overflow: ellipsis;
-		display: -webkit-box;
-		-webkit-line-clamp: 2;
-		-webkit-box-orient: vertical;
-	}
-
-	.customcss {
-		display: flex;
-		position: fixed;
-		width: 100%;
-		top: 10px;
-		text-align: center;
-		z-index: 999;
-		left: 30px;
-		height: 20%;
-	}
-
-	.footer {
-		padding-top: 50%;
-	}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AGVCarry.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AGVCarry.vue"
new file mode 100644
index 0000000..85cbf52
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AGVCarry.vue"
@@ -0,0 +1,250 @@
+<template>
+	<view>
+		<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
+		</uni-segmented-control>
+		<view v-show="current === 0">
+			<view style="padding: 5%;">
+				<uni-forms label-width="120">
+					<uni-forms-item label="鎵樼洏缂栫爜">
+						<uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="PalletCode"
+							placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="鎼繍璧风偣">
+						<uni-easyinput type="text" :focus="istrue" v-model="SourceAddress" placeholder="璇疯緭鍏GV鎼繍璧风偣"
+							ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="鎼繍缁堢偣鍖哄煙">
+						<uni-data-select :focus="!istrue" v-model="AreaId" :localdata="range"
+							placeholder="璇疯緭鍏GV鎼繍缁堢偣鍖哄煙"></uni-data-select>
+					</uni-forms-item>
+				</uni-forms>
+				<button @click="RequestAGVCarryTaskAsync" type="primary" size="default"
+					style="margin-top: 2%;">鎼繍</button>
+			</view>
+		</view>
+		<view v-show="current === 1">
+			<view style="padding: 5%;">
+				<uni-forms label-width="120">
+					<uni-forms-item label="鎵樼洏缂栫爜">
+						<uni-easyinput type="text" :focus="barcodefocus" @input="inputChangebarcode" v-model="Barcode"
+							placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="鎼繍璧风偣">
+						<uni-easyinput type="text" :focus="barcodefocus" v-model="StartAddress" placeholder="璇疯緭鍏ユ惉杩愯捣鐐�"
+							ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="鎼繍缁堢偣">
+						<uni-easyinput type="text" :focus="barcodefocus" v-model="EndAddress" placeholder="璇疯緭鍏ユ惉杩愮粓鐐�"
+							ref='midInput' />
+					</uni-forms-item>
+				</uni-forms>
+				<button @click="RequestPointAGVCarryTaskAsync" type="primary" size="default"
+					style="margin-top: 2%;">鎼繍</button>
+				
+			</view>
+		</view>
+		<u-loading mode="circle" :show="loadingVisible"></u-loading>
+		<u-toast ref="uToast" />
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				istrue: false,
+				barcodefocus: false,
+				loadingVisible: false,
+				EndAddress: "",
+				StartAddress: "",
+				Barcode: "",
+				AreaId: "",
+				PalletCode: "",
+				SourceAddress: "",
+				items: ['AGV鍖哄煙鎼繍', '鐐瑰鐐规惉杩�'],
+				current: 0,
+				range: [{
+						value: "4",
+						text: "涓�妤煎叆搴撳尯"
+					},
+					{
+						value: "2",
+						text: "涓�妤煎嚭搴撳尯"
+					},
+					{
+						value: "3",
+						text: "绔嬪簱缂撳瓨鍖�"
+					},
+					{
+						value: "5",
+						text: "浜屾ゼB4-G4缂撳瓨鍖�"
+					},
+					{
+						value: "6",
+						text: "浜屾ゼB5-G5缂撳瓨鍖�"
+					}
+				],
+			}
+		},
+		methods: {
+			onClickItem(e) {
+				if (this.current != e.currentIndex) {
+					this.current = e.currentIndex;
+				}
+			},
+			RequestAGVCarryTaskAsync() {
+				if (this.PalletCode.length <= 0) {
+					this.$refs.uToast.show({
+						title: "鎵樼洏缂栫爜涓嶈兘涓虹┖",
+						type: "error"
+					})
+					return;
+				}
+				if (this.SourceAddress.length <= 0) {
+					this.$refs.uToast.show({
+						title: "璧风偣浣嶇疆涓嶈兘涓虹┖",
+						type: "error"
+					})
+					return;
+				}
+				try {
+					this.loadingVisible = true;
+					var param = {
+						"PalletCode": this.PalletCode,
+						"Position": this.SourceAddress,
+						"AreaId": this.AreaId
+					}
+					this.$u.post('/api/Task/RequestAGVCarryTaskAsync', param).then(res => {
+						if (res.status) {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "success"
+							})
+							this.PalletCode = "";
+							this.SourceAddress = "";
+							this.AreaId = "";
+							this.istrue = false;
+						} else {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "error"
+							})
+						}
+					})
+				} catch (error) {
+					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
+					console.error("璇锋眰寮傚父:", error);
+				} finally {
+					// 纭繚閬僵灞傞殣钘�
+					this.loadingVisible = false;
+				}
+			},
+
+			RequestPointAGVCarryTaskAsync() {
+				if (this.EndAddress.length <= 0 || this.Barcode.length <= 0) {
+					this.$refs.uToast.show({
+						title: "璇疯緭鍏ヨ捣鐐圭珯鍙�",
+						type: "error"
+					})
+					return;
+				}
+				try {
+					this.loadingVisible = true;
+					var param = {
+						"PalletCode": this.Barcode,
+						"Position": this.StartAddress,
+						"TargetAddress": this.EndAddress
+					}
+					this.$u.post('/api/Task/RequestPointAGVCarryTaskAsync', param).then(res => {
+						if (res.status) {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "success"
+							})
+							this.Barcode = "";
+							this.EndAddress = "";
+							this.StartAddress = "";
+							this.barcodefocus = false;
+						} else {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "error"
+							})
+						}
+					})
+				} catch (error) {
+					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
+					console.error("璇锋眰寮傚父:", error);
+				} finally {
+					// 纭繚閬僵灞傞殣钘�
+					this.loadingVisible = false;
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	@import '@/common/uni-ui.scss';
+
+	page {
+		display: flex;
+		flex-direction: column;
+		box-sizing: border-box;
+		background-color: #efeff4;
+		min-height: 100%;
+		height: auto;
+	}
+
+	.tips {
+		color: #67c23a;
+		font-size: 14px;
+		line-height: 40px;
+		text-align: center;
+		background-color: #f0f9eb;
+		height: 0;
+		opacity: 0;
+		transform: translateY(-100%);
+		transition: all 0.3s;
+	}
+
+	.tips-ani {
+		transform: translateY(0);
+		height: 40px;
+		opacity: 1;
+	}
+
+	.content {
+		width: 100%;
+		display: flex;
+	}
+
+	.list-picture {
+		width: 100%;
+		height: 145px;
+	}
+
+	.thumb-image {
+		width: 100%;
+		height: 100%;
+	}
+
+	.ellipsis {
+		display: flex;
+		overflow: hidden;
+	}
+
+	.uni-ellipsis-1 {
+		overflow: hidden;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+	}
+
+	.uni-ellipsis-2 {
+		overflow: hidden;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		-webkit-line-clamp: 2;
+		-webkit-box-orient: vertical;
+	}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AcrossFloor.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AcrossFloor.vue"
new file mode 100644
index 0000000..a142869
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AcrossFloor.vue"
@@ -0,0 +1,270 @@
+<template>
+	<view>
+		<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
+		</uni-segmented-control>
+		<view v-show="current === 0">
+			<view style="padding: 5%;">
+				<uni-forms label-width="120">
+					<uni-forms-item label="鎵� 鐩� 缂� 鐮�">
+						<uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="PalletCode"
+							placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="璺ㄦゼ灞傝捣鐐�">
+						<uni-easyinput type="text" :focus="istrue" v-model="SourceAddress" placeholder="璇疯緭鍏ヨ法妤煎眰璧风偣"
+							ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="缁� 鐐� 鍖� 鍩�">
+						<uni-data-select :focus="!istrue" v-model="AreaId" :localdata="range"
+							placeholder="璇疯緭閫夋嫨璺ㄦゼ灞傜粓鐐瑰尯鍩�"></uni-data-select>
+					</uni-forms-item>
+				</uni-forms>
+				<button @click="RequestAcrossFloorTaskAsync" type="primary" size="default"
+					style="margin-top: 2%;">涓嬪彂浠诲姟</button>
+			</view>
+		</view>
+		<view v-show="current === 1">
+			<view style="padding: 5%;">
+				<uni-forms label-width="120">
+					<uni-forms-item label="鎵� 鐩� 缂� 鐮�">
+						<uni-easyinput type="text" :focus="barcodefocus" @input="inputChangebarcode" v-model="Barcode"
+							placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="璺ㄦゼ灞傝捣鐐�">
+						<uni-easyinput type="text" :focus="barcodefocus" v-model="StartAddress" placeholder="璇疯緭鍏ヨ法妤煎眰璧风偣"
+							ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="璺ㄦゼ灞傜粓鐐�">
+						<uni-easyinput type="text" :focus="barcodefocus" v-model="EndAddress" placeholder="璇疯緭鍏ヨ法妤煎眰缁堢偣"
+							ref='midInput' />
+					</uni-forms-item>
+				</uni-forms>
+				<button @click="RequestPointAcrossFloorTaskAsync" type="primary" size="default"
+					style="margin-top: 2%;">涓嬪彂浠诲姟</button>
+
+			</view>
+		</view>
+		<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
+		<u-toast ref="uToast" />
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				istrue: false,
+				barcodefocus: false,
+				loadingVisible: false,
+				EndAddress: "",
+				StartAddress: "",
+				Barcode: "",
+				AreaId: "",
+				PalletCode: "",
+				SourceAddress: "",
+				items: ['璺ㄦゼ灞傛惉杩�', '璺ㄦゼ灞傜偣瀵圭偣鎼繍'],
+				current: 0,
+				range: [{
+						value: "4",
+						text: "涓�妤煎叆搴撳尯"
+					},
+					{
+						value: "2",
+						text: "涓�妤煎嚭搴撳尯"
+					},
+					{
+						value: "3",
+						text: "绔嬪簱缂撳瓨鍖�"
+					},
+					{
+						value: "5",
+						text: "浜屾ゼB4-G4缂撳瓨鍖�"
+					},
+					{
+						value: "6",
+						text: "浜屾ゼB5-G5缂撳瓨鍖�"
+					}
+				],
+			}
+		},
+		methods: {
+			onClickItem(e) {
+				if (this.current != e.currentIndex) {
+					this.current = e.currentIndex;
+				}
+			},
+			RequestAcrossFloorTaskAsync() {
+				if (this.loadingVisible) return
+				if (this.PalletCode.length <= 0) {
+					this.$refs.uToast.show({
+						title: "鎵樼洏缂栫爜涓嶈兘涓虹┖",
+						type: "error"
+					})
+					return;
+				}
+				if (this.SourceAddress.length <= 0) {
+					this.$refs.uToast.show({
+						title: "璧风偣浣嶇疆涓嶈兘涓虹┖",
+						type: "error"
+					})
+					return;
+				}
+				// this.loadingVisible = true;
+				 uni.showLoading({
+				      title: '璇锋眰涓�...',
+				      mask: true
+				    });
+				try {
+					var param = {
+						"PalletCode": this.PalletCode,
+						"Position": this.SourceAddress,
+						"AreaId": this.AreaId
+					}
+					this.$u.post('/api/Task/RequestAcrossFloorTaskAsync', param).then(res => {
+						if (res.status) {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "success"
+							})
+							this.PalletCode = "";
+							this.SourceAddress = "";
+							this.AreaId = "";
+							this.istrue = false;
+						} else {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "error"
+							})
+						}
+					})
+				} catch (error) {
+					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
+					console.error("璇锋眰寮傚父:", error);
+				} finally {
+					// 纭繚閬僵灞傞殣钘�
+					// this.loadingVisible = false;
+					uni.hideLoading();
+				}
+			},
+			RequestPointAcrossFloorTaskAsync() {
+				if (this.loadingVisible) return
+				if (this.EndAddress.length <= 0 || this.Barcode.length <= 0) {
+					this.$refs.uToast.show({
+						title: "璇疯緭鍏ヨ捣鐐圭珯鍙�",
+						type: "error"
+					})
+					return;
+				}
+				this.loadingVisible = true;
+				try {
+					var param = {
+						"PalletCode": this.Barcode,
+						"Position": this.StartAddress,
+						"TargetAddress": this.EndAddress
+					}
+					this.$u.post('/api/Task/RequestPointAcrossFloorTaskAsync', param).then(res => {
+						if (res.status) {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "success"
+							})
+							this.Barcode = "";
+							this.EndAddress = "";
+							this.StartAddress = "";
+							this.barcodefocus = false;
+						} else {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "error"
+							})
+						}
+					})
+				} catch (error) {
+					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
+					console.error("璇锋眰寮傚父:", error);
+				} finally {
+					// 纭繚閬僵灞傞殣钘�
+					this.loadingVisible = false;
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	@import '@/common/uni-ui.scss';
+
+	page {
+		display: flex;
+		flex-direction: column;
+		box-sizing: border-box;
+		background-color: #efeff4;
+		min-height: 100%;
+		height: auto;
+	}
+
+	.u-loading {
+		position: fixed !important;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: rgba(0, 0, 0, 0.5) !important;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		z-index: 9999;
+		pointer-events: auto;
+	}
+
+	.tips {
+		color: #67c23a;
+		font-size: 14px;
+		line-height: 40px;
+		text-align: center;
+		background-color: #f0f9eb;
+		height: 0;
+		opacity: 0;
+		transform: translateY(-100%);
+		transition: all 0.3s;
+	}
+
+	.tips-ani {
+		transform: translateY(0);
+		height: 40px;
+		opacity: 1;
+	}
+
+	.content {
+		width: 100%;
+		display: flex;
+	}
+
+	.list-picture {
+		width: 100%;
+		height: 145px;
+	}
+
+	.thumb-image {
+		width: 100%;
+		height: 100%;
+	}
+
+	.ellipsis {
+		display: flex;
+		overflow: hidden;
+	}
+
+	.uni-ellipsis-1 {
+		overflow: hidden;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+	}
+
+	.uni-ellipsis-2 {
+		overflow: hidden;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		-webkit-line-clamp: 2;
+		-webkit-box-orient: vertical;
+	}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db"
index b9f990d..16bc432 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
index b4801e1..4cdf8d2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
index 8b4f151..ebed01f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
index f757a55..dcffa59 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
index 82f36b5..e479fa8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
index ba7425f..8644a42 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
index 9631b7e..45a4d46 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -3,12 +3,16 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\const\\sysconfigkeyconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\const\\sysconfigkeyconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -19,24 +23,32 @@
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_dto\\wms\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\wms\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -46,11 +58,153 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 4,
+          "SelectedChildIndex": 8,
           "Children": [
             {
               "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "TaskEnumHelper.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
+              "ViewState": "AgIAACoAAAAAAAAAAAD4v0YAAAB9AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T05:26:17.406Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
               "DocumentIndex": 5,
+              "Title": "RequestTaskDto.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAUwBkAAAAqAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T04:11:09.755Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "appsettings.json",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-10-13T03:45:03.095Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "SysConfigKeyConst.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "ViewState": "AgIAABUAAAAAAAAAAAAAADUAAAA+AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T03:32:36.798Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "AGVSignal.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
+              "ViewState": "AgIAAFAAAAAAAAAAAAAAAGAAAABTAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T01:17:34.312Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "CommonConveyorLineJob.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "ViewState": "AgIAAE0AAAAAAAAAAAAewFkAAAA7AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-09T03:25:18.917Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "CommonAGVJob.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
+              "ViewState": "AgIAABIAAAAAAAAAAAAAAB4AAAATAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-09T05:11:29.775Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "CommonStackerCraneJob.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAE0AAAAcAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T02:55:34.719Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ViewState": "AgIAAOoBAAAAAAAAAAAjwAgCAAAYAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-09-25T03:21:17.498Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "CommonElevatorJob.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "ViewState": "AgIAACYAAAAAAAAAAAAiwEgAAAAkAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-09T12:12:52.995Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "TaskController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ViewState": "AgIAAAkAAAAAAAAAAAASwCQAAAAsAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-10T06:49:30.021Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
               "Title": "AGVTaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
@@ -59,106 +213,6 @@
               "ViewState": "AgIAAEAAAAAAAAAAAAAIwDgAAAA3AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-10T05:30:35.074Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "AGVSignal.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
-              "ViewState": "AgIAAFEAAAAAAAAAAAAIwNYAAABbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T03:31:34.44Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "CommonConveyorLineJob.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ViewState": "AgIAAEIAAAAAAAAAAAAawFsAAAArAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T03:25:18.917Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "CommonAGVJob.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
-              "ViewState": "AgIAAB0AAAAAAAAAAAAAAFcAAAA2AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T05:11:29.775Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "CommonStackerCraneJob.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs*",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs*",
-              "ViewState": "AgIAAPkBAAAAAAAAAAAAAAcCAABUAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-08T02:55:34.719Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "TaskService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAAJ8AAAAAAAAAAAAiwG0BAABNAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-25T03:21:17.498Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
-              "Title": "CommonElevatorJob.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "ViewState": "AgIAACYAAAAAAAAAAAAiwGwAAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T12:12:52.995Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "TaskController.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvxAAAAAyAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T06:49:30.021Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "TaskEnumHelper.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
-              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
-              "ViewState": "AgIAAB4AAAAAAAAAAAAtwEIAAAB6AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T00:29:14.68Z"
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
index bb07fd7..6ebe1d8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -3,12 +3,20 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\const\\sysconfigkeyconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\const\\sysconfigkeyconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -19,24 +27,28 @@
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_dto\\wms\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\wms\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -46,67 +58,95 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 4,
+          "SelectedChildIndex": 10,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 5,
-              "Title": "AGVTaskService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
-              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
-              "ViewState": "AgIAAEAAAAAAAAAAAAAIwDgAAAA3AAAAAAAAAA==",
+              "DocumentIndex": 6,
+              "Title": "RequestTaskDto.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\WMS\\RequestTaskDto.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAUwBkAAAAqAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T05:30:35.074Z"
+              "WhenOpened": "2025-10-13T04:11:09.755Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "appsettings.json",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-10-13T03:45:03.095Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 3,
+              "Title": "SysConfigKeyConst.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\Const\\SysConfigKeyConst.cs",
+              "ViewState": "AgIAABUAAAAAAAAAAAAAADUAAAA+AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T03:32:36.798Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
               "Title": "AGVSignal.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
-              "ViewState": "AgIAAFEAAAAAAAAAAAAIwNYAAABbAAAAAAAAAA==",
+              "ViewState": "AgIAAFAAAAAAAAAAAAAAAGAAAABTAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T03:31:34.44Z",
+              "WhenOpened": "2025-10-13T01:17:34.312Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 9,
               "Title": "CommonConveyorLineJob.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ViewState": "AgIAAEIAAAAAAAAAAAAawFsAAAArAAAAAAAAAA==",
+              "ViewState": "AgIAAE0AAAAAAAAAAAAewFkAAAA7AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T03:25:18.917Z"
+              "WhenOpened": "2025-10-09T03:25:18.917Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 4,
               "Title": "CommonAGVJob.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
-              "ViewState": "AgIAAB0AAAAAAAAAAAAAAFcAAAA2AAAAAAAAAA==",
+              "ViewState": "AgIAABIAAAAAAAAAAAAAAB4AAAATAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-09T05:11:29.775Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 10,
               "Title": "CommonStackerCraneJob.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ViewState": "AgIAAPEBAAAAAAAAAAAIwLoBAAAyAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAE0AAAAcAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-08T02:55:34.719Z",
               "EditorCaption": ""
@@ -119,20 +159,20 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAAJ8AAAAAAAAAAAAiwG0BAABNAAAAAAAAAA==",
+              "ViewState": "AgIAAAICAAAAAAAAAAAjwCMCAAAgAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:21:17.498Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 11,
               "Title": "CommonElevatorJob.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "ViewState": "AgIAACYAAAAAAAAAAAAiwGwAAAAMAAAAAAAAAA==",
+              "ViewState": "AgIAACYAAAAAAAAAAAAiwEgAAAAkAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-09T12:12:52.995Z"
             },
@@ -144,21 +184,36 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvxAAAAAyAAAAAAAAAA==",
+              "ViewState": "AgIAAAkAAAAAAAAAAAASwCQAAAAsAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T06:49:30.021Z"
+              "WhenOpened": "2025-10-10T06:49:30.021Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 0,
+              "Title": "AGVTaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "ViewState": "AgIAADYAAAAAAAAAAAAMwCgAAAAuAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-10T05:30:35.074Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
               "Title": "TaskEnumHelper.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
               "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskEnumHelper.cs",
-              "ViewState": "AgIAAB4AAAAAAAAAAAAtwEIAAAB6AAAAAAAAAA==",
+              "ViewState": "AgIAACoAAAAAAAAAAAD4v0YAAAB9AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T00:29:14.68Z"
+              "WhenOpened": "2025-10-13T05:26:17.406Z",
+              "EditorCaption": ""
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs"
index 8b79961..498106b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs"
@@ -31,7 +31,7 @@
         /// 淇敼浠诲姟鐘舵��
         /// </summary>
 
-        public const string UpdateTask = "UpdateTask";
+        public const string UpdateTaskStatus = "UpdateTaskStatus";
 
         /// <summary>
         /// 浠诲姟瀹屾垚
@@ -48,6 +48,11 @@
         /// </summary>
         public const string ContinueAGVTask = "ContinueAGVTask";
 
+        /// <summary>
+        /// 璇锋眰浜屾璺ㄦゼ灞備换鍔�
+        /// </summary>
+        public const string AcrossFloorTask = "AcrossFloorTask";
+
 
     }
 }
\ 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_Common/TaskEnum/TaskEnumHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
index 4250ac9..7da37bb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
@@ -66,6 +66,10 @@
             {
                 return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskAGVCarryStatusEnum.CarryFinish).OrderBy(x => x).FirstOrDefault();
             }
+            else if (type == typeof(TaskAcrossFloorStatusEnum))
+            {
+                return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskAcrossFloorStatusEnum.CarryFinish).OrderBy(x => x).FirstOrDefault();
+            }
             else
             {
                 throw new NotImplementedException();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs"
index 91dc7b9..3bce2f1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs"
@@ -22,4 +22,22 @@
         /// </summary>
         public string RequestType { get; set; } = string.Empty;
     }
+
+    public class RequestAcrossFloorTaskDto
+    {
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        public int TaskNum { get; set; }
+
+        /// <summary>
+        /// 鎵樼洏鍙�
+        /// </summary>
+        public string PalletCode { get; set; }
+
+        /// <summary>
+        /// 涓嬩竴浣嶇疆
+        /// </summary>
+        public string NextAddress { get; set; }
+    }
 }
\ 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_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index e5fa088..279ea05 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -31,7 +31,7 @@
             return Service.UpdateTaskExceptionMessage(taskNum, message);
         }
 
-        [HttpPost, HttpGet, Route("UpdateTaskStatusToNext")]
+        [HttpPost, HttpGet, Route("UpdateTaskStatusToNext") ,AllowAnonymous]
         public WebResponseContent UpdateTaskStatusToNext(int taskNum)
         {
             return Service.UpdateTaskStatusToNext(taskNum);
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 0df6834..9e2d51d 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"
@@ -341,7 +341,7 @@
         /// <returns></returns>
         public WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task)
         {
-            WebResponseContent content = new WebResponseContent();
+            WebResponseContent? content = new WebResponseContent();
             try
             {
                 int oldState = task.TaskState;
@@ -353,6 +353,8 @@
 
                     if (task.TaskState == (int)TaskOutStatusEnum.AGV_OutFinish)
                     {
+                        CompletedTask(task.TaskNum);
+
                         task.ModifyDate = DateTime.Now;
                         task.Modifier = "System";
 
@@ -374,56 +376,51 @@
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                     task.TaskState = nextStatus;
 
-                    //if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
-                    //{
-                    //    #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                    if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
+                    {
+                        #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
 
-                    //    // TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
-                    //    // 鍒涘缓璇锋眰瀵硅薄
-                    //    var taskDto = new RequestTaskDto()
-                    //    {
-                    //        Position = task.NextAddress,
-                    //        PalletCode = task.PalletCode,
-                    //    };
+                        var taskDto = new RequestTaskDto()
+                        {
+                            Position = task.NextAddress,
+                            PalletCode = task.PalletCode,
+                        };
 
-                    //    // 鑾峰彇WMSip鍦板潃
-                    //    var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                    //    var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
-                    //    var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue;
-                    //    if (wmsBasez == null || requestLocation == null)
-                    //    {
-                    //        throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                    //    }
-                    //    var wmsIpAddrss = wmsBasez + requestLocation;
+                        // 鑾峰彇WMSip鍦板潃
+                        var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                        var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
+                        var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue;
+                        if (wmsBasez == null || requestLocation == null)
+                        {
+                            throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                        }
+                        var wmsIpAddrss = wmsBasez + requestLocation;
 
-                    //    // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
-                    //    var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
-                    //    if (abc == null)
-                    //        return content.Error();
-                    //    // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
-                    //    content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
+                        // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                        var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
+                        if (abc == null)
+                            return content.Error();
+                        // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
 
+                        LogFactory.WriteError($"Info_鑾峰彇璐т綅", $"鑾峰彇璐т綅,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙凤細銆恵task.PalletCode}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
 
-                    //    QuartzLogger.WriteLogToFile($"Info_鑾峰彇璐т綅", $"鑾峰彇璐т綅,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙凤細銆恵task.PalletCode}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
+                        // 妫�鏌ョ姸鎬佸苟杩斿洖
+                        if (!content.Status)
+                        {
+                            return content;
+                        }
 
+                        // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                        var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
 
-                    //    // 妫�鏌ョ姸鎬佸苟杩斿洖
-                    //    if (!content.Status)
-                    //    {
-                    //        return content;
-                    //    }
+                        task.CurrentAddress = task.NextAddress;
+                        task.NextAddress = taskResult.TargetAddress;
+                        task.TargetAddress = task.NextAddress;
 
-                    //    // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
-                    //    var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-
-                    //    task.CurrentAddress = task.NextAddress;
-                    //    task.NextAddress = taskResult.TargetAddress;
-                    //    task.TargetAddress = task.NextAddress;
-
-                    //    #endregion 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
-                    //}
-                    //else 
-                    if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish)
+                        #endregion 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                    }
+                    else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish)
                     {
                         if (App.User.UserId > 0)
                         {
@@ -440,7 +437,8 @@
                         BaseDal.DeleteData(task);
                         _taskHtyRepository.AddData(task_Hty);
                     }
-                }else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
+                }
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>();
 
@@ -448,6 +446,114 @@
 
                     if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish)
                     {
+                        task.ModifyDate = DateTime.Now;
+                        task.Modifier = "System";
+
+                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
+                        task_Hty.TaskId = 0;
+
+                        BaseDal.DeleteData(task);
+                        _taskHtyRepository.AddData(task_Hty);
+                    }
+                }
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+                {
+                    int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAcrossFloorStatusEnum>();
+
+                    task.TaskState = nextStatus;
+
+                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarryFinish)
+                    {
+                        CompletedTask(task.TaskNum);
+
+                        task.TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarryFinish;
+                        task.ModifyDate = DateTime.Now;
+                        task.Modifier = "System";
+
+                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
+                        task_Hty.TaskId = 0;
+
+                        BaseDal.DeleteData(task);
+                        _taskHtyRepository.AddData(task_Hty);
+                    }
+
+                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarryFinish)
+                    {
+                        Dt_StationManager stationManager = new Dt_StationManager();
+                        string TaskTemplate = string.Empty;
+                        if (task.Floor == "1F")
+                        {
+                            stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "2F");
+                            TaskTemplate = "BBB";
+                        }
+                        else
+                        {
+                            stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F");
+                            TaskTemplate = "CCC";
+                        }
+                       
+                        var taskDto = new RequestAcrossFloorTaskDto()
+                        {
+                            NextAddress = task.NextAddress,
+                            PalletCode = task.PalletCode,
+                            TaskNum = task.TaskNum
+                        };
+
+                        // 鑾峰彇WMSip鍦板潃
+                        var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                        var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
+                        var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.AcrossFloorTask).FirstOrDefault()?.ConfigValue;
+                        if (wmsBasez == null || requestLocation == null)
+                        {
+                            throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                        }
+                        var wmsIpAddrss = wmsBasez + requestLocation;
+
+                        var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
+                        if (abc == null)
+                            return content.Error();
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
+
+                        if (!content.Status)
+                        {
+                            return content;
+                        }
+
+                        // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                        var taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+
+                        Dt_Task taskNew = _mapper.Map<Dt_Task>(taskDTO);
+                        task.Creater = "WMS";
+
+                        taskNew.CurrentAddress = stationManager.stationChildCode;
+
+                        taskNew.NextAddress = task.TargetAddress;
+
+                        taskNew.Floor = stationManager.stationFloor;
+
+                        taskNew.AGVSign = "";
+
+                        task.TaskState = (int)TaskAcrossFloorStatusEnum.FirstCarryFinish;
+                        task.ModifyDate = DateTime.Now;
+                        task.Modifier = "System";
+
+                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
+                        task_Hty.TaskId = 0;
+
+                        BaseDal.DeleteData(task);
+                        _taskHtyRepository.AddData(task_Hty);
+
+                        BaseDal.AddData(taskNew);
+
+                        SendAgvTask(TaskTemplate, taskNew.TaskNum);
+                        return content.OK();
+                    }
+
+                    if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish)
+                    {
+
+                        CompletedTask(task.TaskNum);
+
                         task.ModifyDate = DateTime.Now;
                         task.Modifier = "System";
 
@@ -479,7 +585,7 @@
                 // 鑾峰彇WMSip鍦板潃
                 var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                 var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue;
+                var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTaskStatus)?.ConfigValue;
                 if (wmsBase == null || updateTask == null)
                 {
                     throw new InvalidOperationException("WMS IP 鏈厤缃�");
@@ -500,6 +606,29 @@
             return content;
         }
 
+        public void CompletedTask(int taskNum)
+        {
+            #region WMS鍚屾浠诲姟瀹屾垚
+
+            var keys = new Dictionary<string, object>()
+            {
+                {"taskNum", taskNum}
+            };
+            // 鑾峰彇WMSip鍦板潃
+            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+            var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
+            if (wmsBase == null || completeTask == null)
+            {
+                throw new InvalidOperationException("WMS IP 鏈厤缃�");
+            }
+            var wmsIpAddress = wmsBase + completeTask;
+
+            var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
+
+            #endregion WMS鍚屾浠诲姟瀹屾垚
+        }
+
         /// <summary>
         /// 浠诲姟瀹屾垚
         /// </summary>
@@ -513,29 +642,9 @@
                 var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                 if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
 
-                #region WMS鍚屾浠诲姟瀹屾垚
-
-                //var keys = new Dictionary<string, object>()
-                //{
-                //    {"taskNum", taskNum}
-                //};
-                //// 鑾峰彇WMSip鍦板潃
-                //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                //var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
-                //if (wmsBase == null || completeTask == null)
-                //{
-                //    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                //}
-                //var wmsIpAddress = wmsBase + completeTask;
-
-                //var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
-
-                #endregion WMS鍚屾浠诲姟瀹屾垚
 
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
                 {
-                    var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
                     task.TaskState = nextStatus;
 
@@ -549,7 +658,8 @@
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
                 {
-                    //todo 鍚屾鍒癢MS
+                    CompletedTask(task.TaskNum);
+
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                     task.TaskState = nextStatus;
                     task.ModifyDate = DateTime.Now;
@@ -562,8 +672,10 @@
                     _taskHtyRepository.AddData(task_Hty);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup && task.TaskState == (int)TaskRelocationStatusEnum.SC_RelocationExecuting)
                 {
+                    CompletedTask(task.TaskNum);
+
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskRelocationStatusEnum>();
                     task.TaskState = nextStatus;
                     task.ModifyDate = DateTime.Now;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs"
index e653bc8..91883ea 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs"
@@ -92,74 +92,21 @@
                 {
                     if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                     {
-                        Dt_StationManager stationManager = new Dt_StationManager();
-                        string TaskTemplate = string.Empty;
                         if (task.Floor == "1F")
                         {
-                            stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "2F");
                             elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
-                            TaskTemplate = "BBB";
-                            //璇锋眰WMS璺ㄦゼ灞�2浠诲姟
                         }
                         else
                         {
-                            stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F");
                             elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
-                            //璇锋眰WMS璺ㄦゼ灞�2浠诲姟
-                            TaskTemplate = "CCC";
                         }
-                        task.TaskState = (int)TaskAcrossFloorStatusEnum.FirstCarryFinish;
-                        task.ModifyDate = DateTime.Now;
-                        task.Modifier = "System";
-
-                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
-                        task_Hty.TaskId = 0;
-
-                        _taskRepository.DeleteData(task);
-                        _taskhtyRepository.AddData(task_Hty);
-                        Random random = new Random();
-                        int randomNumber = random.Next(1000, 10000);
-
-                        WMSTaskDTO taskDTO = new WMSTaskDTO()
-                        {
-                            Id = 1,
-                            TaskNum = randomNumber,
-                            RoadWay = "AGV",
-                            TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry,
-                            TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarry,
-                            PalletCode = task.PalletCode,
-                            SourceAddress = stationManager.stationChildCode,
-                            TargetAddress = task.TargetAddress,
-                            Grade = 1,
-                            AGVTaskNum = GenerateUniqueId()
-                        };
-                        Dt_Task SecondCarry =  _mapper.Map<Dt_Task>(taskDTO);
-                        task.Creater = "WMS";
-
-                        SecondCarry.CurrentAddress = stationManager.stationChildCode;
-
-                        SecondCarry.NextAddress = task.TargetAddress;
-
-                        SecondCarry.Floor = stationManager.stationFloor;
-
-                        SecondCarry.AGVSign = "";
-
-                        _taskRepository.AddData(SecondCarry);
-
-                        _taskService.SendAgvTask(TaskTemplate, SecondCarry.TaskNum);
+                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
                         content.OK();
                     }
-                    else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
+                    else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.EndAddressExecuting)
                     {
-                        task.TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarryFinish;
-                        task.ModifyDate = DateTime.Now;
-                        task.Modifier = "System";
-
-                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
-                        task_Hty.TaskId = 0;
-
-                        _taskRepository.DeleteData(task);
-                        _taskhtyRepository.AddData(task_Hty);
+                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
+                        content.OK();
                     }
                 }
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index 9152ae9..26928ae 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -87,11 +87,7 @@
                             var task = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress);
                             if (task != null)
                             {
-                                task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
-                                task.CurrentAddress = task.NextAddress;
-                                //鑾峰彇WMS璐т綅淇℃伅
-                                task.NextAddress = task.TargetAddress;
-                                _taskRepository.UpdateData(task);
+                                _taskService.UpdateTaskStatusToNext(task.TaskNum);
                             }
                         }
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db"
index b5233cf..5bab2b1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
index aa32c54..cab6b45 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
index caf0dce..27edd6c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
index 40034fa..5acad28 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
index dad9979..3b838e1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
index a2d2b7d..714ebb5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
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/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
index 311e43e..e677b16 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
@@ -3,80 +3,28 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\db\\basedbconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\db\\basedbconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\seed\\dbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\seed\\dbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\utilities\\lambdaextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\utilities\\lambdaextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\utilities\\vierificationcode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\utilities\\vierificationcode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\automapperhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\automapperhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\utilconvert.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\utilconvert.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\sqlsugarhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\sqlsugarhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\securityencdecrypthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\securityencdecrypthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\db\\maindb.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\db\\maindb.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\pda\\pdacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\pda\\pdacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{F512AFDB-D45D-4979-BC8C-0BA7FBE8F583}|WIDESEA_Services\\WIDESEA_Services.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_services\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{F512AFDB-D45D-4979-BC8C-0BA7FBE8F583}|WIDESEA_Services\\WIDESEA_Services.csproj|solutionrelative:widesea_services\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -86,11 +34,50 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 8,
+          "SelectedChildIndex": 5,
           "Children": [
             {
               "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "RequestTaskDto.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "RelativeDocumentMoniker": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "RelativeToolTip": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAuwA8AAAAKAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T03:17:53.056Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "IDt_TaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "ViewState": "AgIAAFcAAAAAAAAAAAAMwHYAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T01:19:55.909Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
               "DocumentIndex": 1,
+              "Title": "TaskController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "ViewState": "AgIAAE8AAAAAAAAAAAAewGMAAAAEAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T01:01:30.714Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
@@ -103,175 +90,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "LambdaExtensions.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "ViewState": "AgIAAHgAAAAAAAAAAAAQwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:47.267Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "VierificationCode.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:46.225Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 5,
-              "Title": "AutoMapperHelper.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:33.36Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
-              "Title": "UtilConvert.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:31.289Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "SecurityEncDecryptHelper.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "ViewState": "AgIAACUAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:26.128Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 9,
-              "Title": "MainDb.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\MainDb.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\DB\\MainDb.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\MainDb.cs",
-              "RelativeToolTip": "WIDESEA_Core\\DB\\MainDb.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAA2AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:32:33.249Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "DBContext.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Seed\\DBContext.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Seed\\DBContext.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Seed\\DBContext.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Seed\\DBContext.cs",
-              "ViewState": "AgIAAA0AAAAAAAAAAAAgwDYAAAAJAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:23:07.46Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "BaseDBConfig.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "RelativeToolTip": "WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "ViewState": "AgIAACcAAAAAAAAAAAAnwEsAAAAuAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:22:55.733Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 18,
-              "Title": "Sys_DictionaryService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Services\\Sys_DictionaryService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Services\\Sys_DictionaryService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Services\\Sys_DictionaryService.cs",
-              "RelativeToolTip": "WIDESEA_Services\\Sys_DictionaryService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T06:47:44.312Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
-              "Title": "LocationInfoController.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAABMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T01:15:25.823Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "LocationInfoService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAIMAAAAEAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T01:13:44.082Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 10,
-              "Title": "TaskController.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAAEMAAAAAAAAAAAAUwEAAAAAtAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T12:44:34.349Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "SqlSugarHelper.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAADwvx4AAAA7AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:25:49.888Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 17,
               "Title": "Program.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
@@ -283,51 +102,13 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 16,
-              "Title": "PDAController.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "ViewState": "AgIAABgAAAAAAAAAAAAwwAgAAAANAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T12:50:02.244Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 14,
-              "Title": "SeedDataHostedService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "RelativeToolTip": "WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "ViewState": "AgIAABYAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:25:06.857Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 13,
-              "Title": "SwaggerMiddleware.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "ViewState": "AgIAAA8AAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:25:34.39Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 15,
+              "DocumentIndex": 0,
               "Title": "Dt_TaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACsBAAAdAAAAAAAAAA==",
+              "ViewState": "AgIAAM0CAAAAAAAAAAArwOECAAANAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:08:03.698Z",
               "EditorCaption": ""
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
index b6690e5..8bbab85 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
@@ -3,80 +3,28 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\seed\\dbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\seed\\dbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\db\\basedbconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\db\\basedbconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\db\\maindb.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\db\\maindb.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\utilities\\vierificationcode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\utilities\\vierificationcode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\utilities\\lambdaextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\utilities\\lambdaextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\securityencdecrypthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\securityencdecrypthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\automapperhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\automapperhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\utilconvert.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\utilconvert.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\helper\\sqlsugarhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\sqlsugarhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\pda\\pdacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\pda\\pdacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{F512AFDB-D45D-4979-BC8C-0BA7FBE8F583}|WIDESEA_Services\\WIDESEA_Services.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_services\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{F512AFDB-D45D-4979-BC8C-0BA7FBE8F583}|WIDESEA_Services\\WIDESEA_Services.csproj|solutionrelative:widesea_services\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -86,11 +34,50 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 7,
+          "SelectedChildIndex": 5,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 3,
+              "Title": "RequestTaskDto.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "RelativeDocumentMoniker": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "RelativeToolTip": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAuwA8AAAAKAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T03:17:53.056Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "IDt_TaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "ViewState": "AgIAAFcAAAAAAAAAAAAMwHYAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T01:19:55.909Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "TaskController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
+              "ViewState": "AgIAAE8AAAAAAAAAAAAewGMAAAAEAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T01:01:30.714Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
@@ -103,175 +90,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "LambdaExtensions.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Utilities\\LambdaExtensions.cs",
-              "ViewState": "AgIAAHgAAAAAAAAAAAAQwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:47.267Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "VierificationCode.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Utilities\\VierificationCode.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:46.225Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "AutoMapperHelper.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\AutoMapperHelper.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:33.36Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "UtilConvert.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\UtilConvert.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:31.289Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 5,
-              "Title": "SecurityEncDecryptHelper.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\SecurityEncDecryptHelper.cs",
-              "ViewState": "AgIAAB8AAAAAAAAAAAAIwDUAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:33:26.128Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "MainDb.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\MainDb.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\DB\\MainDb.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\MainDb.cs",
-              "RelativeToolTip": "WIDESEA_Core\\DB\\MainDb.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAA3AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:32:33.249Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "DBContext.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Seed\\DBContext.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Seed\\DBContext.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Seed\\DBContext.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Seed\\DBContext.cs",
-              "ViewState": "AgIAAA0AAAAAAAAAAAAgwB4AAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:23:07.46Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "BaseDBConfig.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "RelativeToolTip": "WIDESEA_Core\\DB\\BaseDBConfig.cs",
-              "ViewState": "AgIAAGYAAAAAAAAAAADgv3YAAAAwAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:22:55.733Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 18,
-              "Title": "Sys_DictionaryService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Services\\Sys_DictionaryService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Services\\Sys_DictionaryService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Services\\Sys_DictionaryService.cs",
-              "RelativeToolTip": "WIDESEA_Services\\Sys_DictionaryService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T06:47:44.312Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
-              "Title": "LocationInfoController.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAABMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T01:15:25.823Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "LocationInfoService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAIMAAAAEAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T01:13:44.082Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 10,
-              "Title": "TaskController.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAAEMAAAAAAAAAAAAUwEAAAAAtAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T12:44:34.349Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 9,
-              "Title": "SqlSugarHelper.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Helper\\SqlSugarHelper.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAADwvx4AAAA7AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:25:49.888Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 17,
               "Title": "Program.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
@@ -283,51 +102,13 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 16,
-              "Title": "PDAController.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\PDA\\PDAController.cs",
-              "ViewState": "AgIAABgAAAAAAAAAAAAwwAgAAAANAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T12:50:02.244Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 14,
-              "Title": "SeedDataHostedService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "RelativeToolTip": "WIDESEA_Core\\HostedService\\SeedDataHostedService.cs",
-              "ViewState": "AgIAABYAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:25:06.857Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 13,
-              "Title": "SwaggerMiddleware.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Middlewares\\SwaggerMiddleware.cs",
-              "ViewState": "AgIAAA8AAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-11T07:25:34.39Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 15,
+              "DocumentIndex": 0,
               "Title": "Dt_TaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACsBAAAdAAAAAAAAAA==",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs*",
+              "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs*",
+              "ViewState": "AgIAAM0BAAAAAAAAAAAAACgCAAAMAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:08:03.698Z",
               "EditorCaption": ""
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs"
index 374989c..09846c1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs"
@@ -570,10 +570,16 @@
         SecondCarry = 520,
 
         /// <summary>
+        /// 璺ㄦゼ灞傜粓鐐规墽琛�
+        /// </summary>
+        [Description("璺ㄦゼ灞傜粓鐐规墽琛�")]
+        EndAddressExecuting = 525,
+
+        /// <summary>
         /// 璺ㄦゼ灞傛惉杩�2瀹屾垚
         /// </summary>
         [Description("璺ㄦゼ灞傛惉杩�2瀹屾垚")]
-        SecondCarryFinish = 525,
+        SecondCarryFinish = 530,
 
         /// <summary>
         /// 璺ㄦゼ灞備换鍔″畬鎴�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnumHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnumHelper.cs"
index 1e0263f..a789bf8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnumHelper.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnumHelper.cs"
@@ -61,6 +61,10 @@
             {
                 return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskOutStatusEnum.OutFinish).OrderBy(x => x).FirstOrDefault();
             }
+            else if (type == typeof(TaskAGVCarryStatusEnum))
+            {
+                return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskAGVCarryStatusEnum.CarryFinish).OrderBy(x => x).FirstOrDefault();
+            }
             else
             {
                 throw new NotImplementedException();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs"
index 2baabfc..2fcf1a9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs"
@@ -13,7 +13,7 @@
     public string PalletCode { get; set; }
 
     /// <summary>
-    /// 绌烘墭鐩樺彲鍏ュ贩鍒�
+    /// 缁堢偣
     /// </summary>
     public string TargetAddress { get; set; }
 
@@ -22,6 +22,8 @@
     /// </summary>
     public string RequestType { get; set; } = string.Empty;
 
+    public int AreaId { get; set; }
+
 }
 public class RequestAcrossFloorTaskDto
 {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Location/ILocationStatusChangeRecordRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Location/ILocationStatusChangeRecordRepository.cs"
index 9755f1d..d8a66cf 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Location/ILocationStatusChangeRecordRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Location/ILocationStatusChangeRecordRepository.cs"
@@ -11,6 +11,9 @@
     /// <returns></returns>
     bool AddStatusChangeRecord(LocationChangeRecordDto changeRecordDto);
 
+
+    bool AddStatusChangeRecord(List<LocationChangeRecordDto> changeRecordDto);
+
     void AddLocationStatusChangeRecord(DtLocationInfo locationInfo, int lastStatus, int changeType, int? taskNum);
 
     void AddLocationStatusChangeRecord(List<DtLocationInfo> locationInfos, int newStatus, int changeType, List<int>? taskNums);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs"
index e3eb211..dec42d3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs"
@@ -8,4 +8,6 @@
 
     WebResponseContent CreateLocation(int x, int y, int z, int locType, int areaId);
 
+    WebResponseContent CreateLocation(string AreaName, int x, int y, int areaId, string Floor);
+
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs"
index aafedc4..8a7a5f0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs"
@@ -44,11 +44,26 @@
     Task<WebResponseContent> RequestTaskAsync(RequestTaskDto taskDto);
 
     /// <summary>
+    /// 鑾峰彇绌鸿揣浣�
+    /// </summary>
+    /// <param name="roadWay"></param>
+    /// <returns></returns>
+    Task<DtLocationInfo> GetEmptyLocation(string roadWay);
+
+    /// <summary>
+    /// 鑾峰彇AGV绌鸿揣浣�
+    /// </summary>
+    /// <param name="AreaId"></param>
+    /// <returns></returns>
+
+    Task<DtLocationInfo> GetAGVEmptyCacheLocation(int AreaId);
+
+    /// <summary>
     /// 璇锋眰浠诲姟璐т綅
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input);
+    Task<WebResponseContent> RequestLocationAsync(RequestTaskDto input);
 
     /// <summary>
     /// 璇锋眰鎵樼洏浠诲姟
@@ -85,6 +100,14 @@
 
     Task<WebResponseContent> RequestAcrossFloorTaskAsync(RequestTaskDto taskDto);
 
+
+    /// <summary>
+    /// 璺ㄦゼ灞傜偣瀵圭偣浠诲姟
+    /// </summary>
+    /// <param name="taskDto"></param>
+    /// <returns></returns>
+    Task<WebResponseContent> RequestPointAcrossFloorTaskAsync(RequestTaskDto taskDto);
+
     /// <summary>
     /// AGV璇锋眰鎼繍浠诲姟
     /// </summary>
@@ -92,4 +115,7 @@
     /// <returns></returns>
     Task<WebResponseContent> RequestAGVCarryTaskAsync(RequestTaskDto taskDto);
 
+
+    Task<WebResponseContent> RequestPointAGVCarryTaskAsync(RequestTaskDto taskDto);
+
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs"
index 2272a29..a81e839 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs"
@@ -56,7 +56,7 @@
     /// 榛樿鍊�:
     ///</summary>
     [SugarColumn(ColumnName = "TaskState")]
-    public int? TaskState { get; set; }
+    public int TaskState { get; set; }
 
     /// <summary>
     /// 澶�  娉�:鐗╂枡缂栧彿
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtLocationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtLocationInfo.cs"
index c2f9d6b..564158e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtLocationInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtLocationInfo.cs"
@@ -37,6 +37,12 @@
     public string RoadwayNo { get; set; }
 
     /// <summary>
+    /// 妤煎眰
+    /// </summary>
+    [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "妤煎眰")]
+    public string Floor { get; set; }
+
+    /// <summary>
     /// 璐т綅琛�
     /// </summary>
     [SugarColumn(IsNullable = false, ColumnDescription = "璐т綅琛�")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs"
index c6e503c..bbaaf83 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs"
@@ -29,6 +29,33 @@
             };
             return AddData(dtLocationStatusChangeRecord) > 0;
         }
+
+        /// <summary>
+        /// 娣诲姞璐т綅鍙樺姩璁板綍
+        /// </summary>
+        /// <param name="changeRecordDto">鏁版嵁妯″瀷</param>
+        /// <returns></returns>
+        public bool AddStatusChangeRecord(List<LocationChangeRecordDto> changeRecordDto)
+        {
+            List<DtLocationStatusChangeRecord> changs = new List<DtLocationStatusChangeRecord>();
+            foreach (var item in changeRecordDto)
+            {
+                DtLocationStatusChangeRecord dtLocationStatusChangeRecord = new DtLocationStatusChangeRecord()
+                {
+                    ChangeType = item.ChangeType,
+                    LocationCode = item.LocationCode,
+                    LocationId = item.LocationId,
+                    Creater = "System",
+                    TaskNum = item.TaskNum,
+                    AfterStatus = item.AfterStatus,
+                    BeforeStatus = item.BeforeStatus,
+                };
+                changs.Add(dtLocationStatusChangeRecord);
+            }
+            
+            return AddData(changs) > 0;
+        }
+
         /// <summary>
         /// 娣诲姞璐т綅鍙樺姩璁板綍
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs"
index 37067a5..c7de8c4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs"
@@ -164,6 +164,41 @@
             return new WebResponseContent().Error();
     }
 
+    public WebResponseContent CreateLocation(string AreaName,int x, int y,int areaId,string Floor)
+    {
+        string[] chineseNumbers = new string[] { "闆�", "涓�", "浜�", "涓�", "鍥�", "浜�", "鍏�", "涓�", "鍏�", "涔�" };
+        var locationList = new List<DtLocationInfo>();
+        var LocationName= _AreaInfoRepository.QueryFirst(a => a.AreaID == areaId).AreaName;
+        for (int line = 1; line <= x; line++)
+        {
+            for (int column = 1; column <= y; column++)
+            {
+                locationList.Add(new DtLocationInfo()
+                {
+                    Row = line,
+                    Column = column,
+                    Layer = 0,
+                    LocationCode = AreaName+'-'+line.ToString() + '-' + column.ToString(),
+                    LocationName = LocationName,
+                    Floor = Floor,
+                    LocationType = 1,
+                    Remark = "",
+                    Depth = column,
+                    RoadwayNo = "AGV",
+                    LocationStatus = LocationEnum.Free.ObjToInt(),
+                    AreaId = areaId,
+                    Creater = "System",
+                    EnalbeStatus = 1,
+                });
+            }
+        }
+        var isResult = BaseDal.AddData(locationList) > 0;
+        if (isResult)
+            return new WebResponseContent().OK();
+        else
+            return new WebResponseContent().Error();
+    }
+
     #endregion 鍒涘缓鍘熷璐т綅鏁版嵁
 
     #region 鍚敤绂佺敤璐т綅
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
index 9417b92..30e9837 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
@@ -1,16 +1,22 @@
-锘縰sing Mapster;
+锘縰sing AngleSharp.Dom;
+using log4net.Core;
+using Mapster;
 using Masuit.Tools;
+using OfficeOpenXml.Table.PivotTable;
 using SixLabors.Fonts.Tables.AdvancedTypographic;
 using SqlSugar;
 using System;
+using System.Reflection.Metadata;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 using WIDESEA_Cache;
+using WIDESEA_Common;
 using WIDESEA_Core.Const;
 using WIDESEA_DTO.Location;
 using WIDESEA_DTO.WMS;
 using WIDESEA_IServices;
 using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.Basic;
 using WIDESEAWCS_BasicInfoRepository;
 using WIDESEAWCS_QuartzJob.Models;
 
@@ -272,18 +278,15 @@
 
         try
         {
-            var task = await GetByTaskAddress(taskDto.Position, taskDto.TargetAddress);
-            if (task != null)
-            {
-                return content.Error("璧风偣鎴栫粓鐐瑰瓨鍦ㄤ换鍔�");
-            }
             var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
+
+            var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
 
             Dt_Task taskNew = new Dt_Task
             {
                 Grade = 1,
                 Roadway = "SC1",
-                TargetAddress = taskDto.TargetAddress,
+                TargetAddress = "SC1",
                 Dispatchertime = DateTime.Now,
                 MaterialNo = "",
                 NextAddress = station.stationChildCode,
@@ -301,6 +304,13 @@
             };
             var taskDTO = CreateListTaskDTO(taskNew);
 
+            var isResult = await AddInBoundTaskAsync(taskNew, location);
+            if (!isResult)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return content.Error("鏂板浠诲姟澶辫触");
+            }
+
             return content = await SendWCSTask(taskDTO);
         }
         catch (Exception err)
@@ -311,241 +321,16 @@
         return content;
     }
 
+
+    #endregion 璇锋眰浠诲姟鍏ュ簱
+
+    #region 鏇存柊浠诲姟鐘舵��
+
+
     /// <summary>
     /// 鏇存柊浠诲姟璐т綅
     /// </summary>
     /// <param name="input"></param>
-    /// <returns></returns>
-    public async Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input)
-    {
-        WebResponseContent content = new WebResponseContent();
-        try
-        {
-            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
-            if (task == null)
-                return content.Error($"鏆傛湭鎵惧埌銆恵input.PalletCode}銆戠殑浠诲姟");
-
-            return content = await UpdateExistingTask(input, task);
-        }
-        catch (Exception err)
-        {
-            return content.Error(err.Message);
-        }
-    }
-
-    #endregion 璇锋眰浠诲姟鍏ュ簱
-
-    #region 璇锋眰鍑哄簱
-
-    /// <summary>
-    /// 璇锋眰鎵樼洏浠诲姟
-    /// </summary>
-    /// <param name="position">鐩爣浣嶇疆</param>
-    /// <param name="tag">鎵樼洏绫诲瀷锛�1锛氬疄鐩橈紝2锛氱┖鐩橈級</param>
-    /// <param name="areaCode">鍖哄煙缂栫爜</param>
-    /// <param name="roadways">宸烽亾缂栫爜闆嗗悎</param>
-    /// <returns>杩斿洖缁撴灉闆�</returns>
-    public async Task<WebResponseContent> RequestOutTaskAsync(RequestTaskDto taskDto)
-    {
-        WebResponseContent content = new WebResponseContent();
-        try
-        {
-            var task = await GetByTaskAddress(taskDto.Position, taskDto.TargetAddress);
-            if (task != null)
-            {
-                return content.Error("璧风偣鎴栫粓鐐瑰瓨鍦ㄤ换鍔�");
-            }
-            var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
-
-            Dt_Task taskNew = new Dt_Task
-            {
-                Grade = 1,
-                Roadway = "SC1",
-                TargetAddress = taskDto.TargetAddress,
-                Dispatchertime = DateTime.Now,
-                MaterialNo = "",
-                NextAddress = station.stationChildCode,
-                OrderNo = null,
-                PalletCode = taskDto.PalletCode,
-                SourceAddress = taskDto.Position,
-                CurrentAddress = taskDto.Position,
-                TaskState = (int)TaskOutStatusEnum.OutNew,
-                TaskType = (int)TaskOutboundTypeEnum.Outbound,
-                TaskNum = BaseDal.GetTaskNo().Result,
-                CreateDate = DateTime.Now,
-                TaskId = 0,
-                AGVTaskNum = GenerateUniqueId(),
-                Floor = "1F",
-            };
-            var taskDTO = CreateListTaskDTO(taskNew);
-
-            return content = await SendWCSTask(taskDTO);
-        }
-        catch (Exception ex)
-        {
-            return content.Error(ex.Message);
-        }
-    }
-
-
-    #endregion 璇锋眰鍑哄簱锛堝疄鐩�&绌虹洏锛�
-
-    #region 璇锋眰璺ㄦゼ灞�2浠诲姟
-    /// <summary>
-    /// 璇锋眰璺ㄦゼ灞�2浠诲姟
-    /// </summary>
-    /// <param name="taskDto"></param>
-    /// <returns></returns>
-    public async Task<WebResponseContent> AcrossFloorTaskAsync(RequestAcrossFloorTaskDto taskDto)
-    {
-        WebResponseContent content=new WebResponseContent();
-        try
-        {
-            var task = BaseDal.QueryFirst(x => x.TaskNum == Convert.ToInt32(taskDto.TaskNum) && x.PalletCode == taskDto.PalletCode);
-            if(task == null)
-                return content.Error("鏈壘鍒颁换鍔�");
-            Dt_Task taskNew = new Dt_Task
-            {
-                Grade = 1,
-                Roadway = "AGV",
-                TargetAddress = task.TargetAddress,
-                Dispatchertime = DateTime.Now,
-                MaterialNo = "",
-                NextAddress = taskDto.NextAddress,
-                OrderNo = null,
-                PalletCode = task.PalletCode,
-                SourceAddress = taskDto.NextAddress,
-                CurrentAddress = taskDto.NextAddress,
-                TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarry,
-                TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry,
-                TaskNum = BaseDal.GetTaskNo().Result,
-                CreateDate = DateTime.Now,
-                TaskId = 0,
-                AGVTaskNum = GenerateUniqueId(),
-                Floor = "",
-            };
-            var taskDTO = CreateTaskDTO(taskNew);
-
-            var taskHty = task.Adapt<Dt_Task_Hty>();
-            taskHty.FinishTime = DateTime.Now;
-            taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.浜哄伐瀹屾垚 : (int)OperateTypeEnum.鑷姩瀹屾垚;
-            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
-            await _unitOfWorkManage.UseTranAsync(async () =>
-            {
-                await DeleteTaskAsync(task.TaskId);
-                await AddTaskHtyAsync(taskHty);
-            });
-            return content.OK(data: taskDTO);
-        }
-        catch (Exception ex)
-        {
-            return content.Error(ex.Message);
-        }
-    }
-
-    #endregion
-
-    #region 璇锋眰璺ㄦゼ灞備换鍔�
-    public async Task<WebResponseContent> RequestAcrossFloorTaskAsync(RequestTaskDto taskDto)
-    {
-        WebResponseContent content = new WebResponseContent();
-        try
-        {
-            var task = await GetByTaskAddress(taskDto.Position, taskDto.TargetAddress);
-            if (task != null)
-            {
-                return content.Error("璧风偣鎴栫粓鐐瑰瓨鍦ㄤ换鍔�");
-            }
-            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDto.Position);
-
-            if (station != null)
-            {
-                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
-                Dt_Task taskNew = new Dt_Task
-                {
-                    Grade = 1,
-                    Roadway = "AGV",
-                    TargetAddress = taskDto.TargetAddress,
-                    Dispatchertime = DateTime.Now,
-                    MaterialNo = "",
-                    NextAddress = next.stationChildCode,
-                    OrderNo = null,
-                    PalletCode = taskDto.PalletCode,
-                    SourceAddress = taskDto.Position,
-                    CurrentAddress = taskDto.Position,
-                    TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew,
-                    TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry,
-                    TaskNum = BaseDal.GetTaskNo().Result,
-                    CreateDate = DateTime.Now,
-                    TaskId = 0,
-                    AGVTaskNum = GenerateUniqueId(),
-                    Floor = station.stationFloor,
-                };
-                var taskDTO = CreateListTaskDTO(taskNew);
-
-                return content = await SendWCSTask(taskDTO);
-            }
-            return content.Error("鏈壘鍒版彁鍗囨満绔欑偣");
-        }
-        catch (Exception ex)
-        {
-            return content.Error(ex.Message);
-        }
-    }
-
-    #endregion
-
-    #region 璇锋眰AGV鎼繍浠诲姟
-    public async Task<WebResponseContent> RequestAGVCarryTaskAsync(RequestTaskDto taskDto)
-    {
-        WebResponseContent content = new WebResponseContent();
-        try
-        {
-            var task = await GetByTaskAddress(taskDto.Position,taskDto.TargetAddress);
-            if (task != null)
-            {
-                return content.Error("璧风偣鎴栫粓鐐瑰瓨鍦ㄤ换鍔�");
-            }
-            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDto.Position);
-            Dt_Task taskNew = new Dt_Task
-            {
-                Grade = 1,
-                Roadway = "AGV",
-                TargetAddress = taskDto.TargetAddress,
-                Dispatchertime = DateTime.Now,
-                MaterialNo = "",
-                NextAddress = taskDto.TargetAddress,
-                OrderNo = null,
-                PalletCode = taskDto.PalletCode,
-                SourceAddress = taskDto.Position,
-                CurrentAddress = taskDto.Position,
-                TaskState = (int)TaskAGVCarryStatusEnum.CarryNew,
-                TaskType = (int)TaskAGVCarryTypeEnum.Carry,
-                TaskNum = BaseDal.GetTaskNo().Result,
-                CreateDate = DateTime.Now,
-                TaskId = 0,
-                AGVTaskNum = GenerateUniqueId(),
-                Floor = station.stationFloor,
-            };
-            var taskDTO = CreateListTaskDTO(taskNew);
-
-            return content = await SendWCSTask(taskDTO);
-        }
-        catch (Exception ex)
-        {
-            return content.Error(ex.Message);
-        }
-    }
-
-    #endregion
-
-    #region 浠诲姟鐘舵�佹洿鏀�
-
-    /// <summary>
-    /// 鏇存柊浠诲姟鐘舵��&鍑哄簱瑙g洏
-    /// </summary>
-    /// <param name="taskNum"></param>
-    /// <param name="taskState"></param>
     /// <returns></returns>
     public async Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState)
     {
@@ -556,7 +341,7 @@
             if (task == null)
                 return content.Error("鏈壘鍒颁换鍔�");
 
-            if (taskState == (int)TaskOutStatusEnum.Line_OutFinish || taskState == (int)TaskInStatusEnum.SC_InFinish)
+            if (taskState == (int)TaskOutStatusEnum.Line_OutFinish || taskState == (int)TaskInStatusEnum.SC_InFinish || taskState == (int)TaskRelocationStatusEnum.SC_RelocationFinish || taskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish)
             {
                 var taskHty = CreateHistoricalTask(task);
                 await _unitOfWorkManage.UseTranAsync(async () =>
@@ -587,7 +372,416 @@
         return content;
     }
 
-    #endregion 浠诲姟鐘舵�佹洿鏀�
+    public async Task<WebResponseContent> RequestLocationAsync(RequestTaskDto input)
+    {
+        await _semaphoreUpdate.WaitAsync();
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == input.PalletCode);
+            if (task == null)
+            {
+                return content.Error("浠诲姟瀵硅薄涓虹┖");
+            }
+
+            task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
+            var location = await GetEmptyLocation(task.Roadway);
+            if (location == null)
+            {
+                return content.Error("鏃犳硶鑾峰彇璐т綅淇℃伅");
+            }
+            int beforeStatus = location.LocationStatus;
+
+            location.LocationStatus = (int)LocationEnum.Lock;
+            task.CurrentAddress = input.Position;
+            task.TargetAddress = location.LocationCode;
+            task.NextAddress = location.LocationCode;
+            task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
+            // 寮�濮嬩簨鍔�
+            var isResult = await UpdateTaskAsync(task, location, beforeStatus);
+            if (!isResult)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return content.Error("鏇存柊浠诲姟澶辫触");
+            }
+            return content.OK(data: task);
+        }
+        catch (Exception)
+        {
+            throw;
+        }
+        finally { _semaphoreUpdate.Release(); }
+    }
+
+    #endregion
+
+
+    #region 璇锋眰鍑哄簱
+
+    /// <summary>
+    /// 璇锋眰鎵樼洏浠诲姟
+    /// </summary>
+    /// <param name="position">鐩爣浣嶇疆</param>
+    /// <param name="tag">鎵樼洏绫诲瀷锛�1锛氬疄鐩橈紝2锛氱┖鐩橈級</param>
+    /// <param name="areaCode">鍖哄煙缂栫爜</param>
+    /// <param name="roadways">宸烽亾缂栫爜闆嗗悎</param>
+    /// <returns>杩斿洖缁撴灉闆�</returns>
+    public async Task<WebResponseContent> RequestOutTaskAsync(RequestTaskDto taskDto)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
+
+            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
+
+            DtLocationInfo Targetlocation = await GetAGVEmptyCacheLocation(2);
+            Dt_Task taskNew = new Dt_Task
+            {
+                Grade = 1,
+                Roadway = "SC1",
+                TargetAddress = Targetlocation.LocationCode,
+                Dispatchertime = DateTime.Now,
+                MaterialNo = "",
+                NextAddress = station.stationChildCode,
+                OrderNo = null,
+                PalletCode = taskDto.PalletCode,
+                SourceAddress = taskDto.Position,
+                CurrentAddress = taskDto.Position,
+                TaskState = (int)TaskOutStatusEnum.OutNew,
+                TaskType = (int)TaskOutboundTypeEnum.Outbound,
+                TaskNum = BaseDal.GetTaskNo().Result,
+                CreateDate = DateTime.Now,
+                TaskId = 0,
+                AGVTaskNum = GenerateUniqueId(),
+                Floor = "1F",
+            };
+            var taskDTO = CreateListTaskDTO(taskNew);
+
+            var isResult = await AddTaskAsync(taskNew, Sourcelocation, Targetlocation);
+            if (!isResult)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return content.Error("鏂板浠诲姟澶辫触");
+            }
+            return content = await SendWCSTask(taskDTO);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
+
+    #endregion 璇锋眰鍑哄簱锛堝疄鐩�&绌虹洏锛�
+
+    #region 璇锋眰璺ㄦゼ灞�2浠诲姟
+    /// <summary>
+    /// 璇锋眰璺ㄦゼ灞�2浠诲姟
+    /// </summary>
+    /// <param name="taskDto"></param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> AcrossFloorTaskAsync(RequestAcrossFloorTaskDto taskDto)
+    {
+        WebResponseContent content=new WebResponseContent();
+        try
+        {
+            var task = BaseDal.QueryFirst(x => x.TaskNum == Convert.ToInt32(taskDto.TaskNum) && x.PalletCode == taskDto.PalletCode);
+            if(task == null)
+                return content.Error("鏈壘鍒颁换鍔�");
+            Dt_StationManager stationManager = new Dt_StationManager();
+            if (task.Floor == "1F")
+            {
+                stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "2F");
+            }
+            else
+            {
+                stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F");
+            }
+            Dt_Task taskNew = new Dt_Task
+            {
+                Grade = 1,
+                Roadway = "AGV",
+                TargetAddress = task.TargetAddress,
+                Dispatchertime = DateTime.Now,
+                MaterialNo = "",
+                NextAddress = task.TargetAddress,
+                OrderNo = null,
+                PalletCode = task.PalletCode,
+                SourceAddress = task.SourceAddress,
+                CurrentAddress = stationManager.stationChildCode,
+                TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarry,
+                TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry,
+                TaskNum = BaseDal.GetTaskNo().Result,
+                CreateDate = DateTime.Now,
+                TaskId = 0,
+                AGVTaskNum = GenerateUniqueId(),
+                Floor = stationManager.stationFloor,
+            };
+            var taskDTO = CreateTaskDTO(taskNew);
+
+            var taskHty = task.Adapt<Dt_Task_Hty>();
+            taskHty.FinishTime = DateTime.Now;
+            taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.浜哄伐瀹屾垚 : (int)OperateTypeEnum.鑷姩瀹屾垚;
+            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+            await _unitOfWorkManage.UseTranAsync(async () =>
+            {
+                BaseDal.AddData(taskNew);
+                await DeleteTaskAsync(task.TaskId);
+                await AddTaskHtyAsync(taskHty);
+            });
+            return content.OK(data: taskDTO);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
+    #endregion
+
+    #region 璇锋眰璺ㄦゼ灞備换鍔�
+    public async Task<WebResponseContent> RequestAcrossFloorTaskAsync(RequestTaskDto taskDto)
+    {
+        LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "绉诲簱浠诲姟瀹屾垚", $"111111");
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+
+            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
+
+            DtLocationInfo Targetlocation = await GetAGVEmptyCacheLocation(taskDto.AreaId);
+
+            if (Targetlocation == null || Sourcelocation == null)
+            {
+                return content.Error("璧风偣鏈畾涔夋垨缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
+            }
+
+            if (IsAcrossFloor(Sourcelocation, Targetlocation))
+            {
+                return content.Error("鍚屾ゼ灞備笉鍏佽璇锋眰璺ㄦゼ灞備换鍔�");
+            }
+
+            if (Sourcelocation != null)
+            {
+                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == Sourcelocation.Floor);
+                Dt_Task taskNew = new Dt_Task
+                {
+                    Grade = 1,
+                    Roadway = "AGV",
+                    TargetAddress = Targetlocation.LocationCode,
+                    Dispatchertime = DateTime.Now,
+                    MaterialNo = "",
+                    NextAddress = next.stationChildCode,
+                    OrderNo = null,
+                    PalletCode = taskDto.PalletCode,
+                    SourceAddress = taskDto.Position,
+                    CurrentAddress = taskDto.Position,
+                    TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew,
+                    TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry,
+                    TaskNum = BaseDal.GetTaskNo().Result,
+                    CreateDate = DateTime.Now,
+                    TaskId = 0,
+                    AGVTaskNum = GenerateUniqueId(),
+                    Floor = Sourcelocation.Floor,
+                };
+                var taskDTO = CreateListTaskDTO(taskNew);
+
+
+                var isResult = await AddTaskAsync(taskNew, Sourcelocation, Targetlocation);
+                if (!isResult)
+                {
+                    _unitOfWorkManage.RollbackTran();
+                    return content.Error("鏂板浠诲姟澶辫触");
+                }
+
+                return content = await SendWCSTask(taskDTO);
+            }
+            return content.Error("鏈壘鍒版彁鍗囨満绔欑偣");
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
+    public async Task<WebResponseContent> RequestPointAcrossFloorTaskAsync(RequestTaskDto taskDto)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
+
+            var Targetlocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.TargetAddress);
+
+            if (Targetlocation == null || Sourcelocation == null)
+            {
+                return content.Error("璧风偣鎴栫粓鐐规湭瀹氫箟");
+            }
+
+            if (IsAcrossFloor(Sourcelocation, Targetlocation))
+            {
+                return content.Error("鍚屾ゼ灞備笉鍏佽璇锋眰璺ㄦゼ灞備换鍔�");
+            }
+            if (Sourcelocation != null)
+            {
+                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == Sourcelocation.Floor);
+                Dt_Task taskNew = new Dt_Task
+                {
+                    Grade = 1,
+                    Roadway = "AGV",
+                    TargetAddress = Targetlocation.LocationCode,
+                    Dispatchertime = DateTime.Now,
+                    MaterialNo = "",
+                    NextAddress = next.stationChildCode,
+                    OrderNo = null,
+                    PalletCode = taskDto.PalletCode,
+                    SourceAddress = taskDto.Position,
+                    CurrentAddress = taskDto.Position,
+                    TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew,
+                    TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry,
+                    TaskNum = BaseDal.GetTaskNo().Result,
+                    CreateDate = DateTime.Now,
+                    TaskId = 0,
+                    AGVTaskNum = GenerateUniqueId(),
+                    Floor = Sourcelocation.Floor,
+                };
+                var taskDTO = CreateListTaskDTO(taskNew);
+
+
+                var isResult = await AddTaskAsync(taskNew, Sourcelocation, Targetlocation);
+                if (!isResult)
+                {
+                    _unitOfWorkManage.RollbackTran();
+                    return content.Error("鏂板浠诲姟澶辫触");
+                }
+
+                return content = await SendWCSTask(taskDTO);
+            }
+            return content.Error("鏈壘鍒版彁鍗囨満绔欑偣");
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
+    #endregion
+
+    #region 璇锋眰AGV鎼繍浠诲姟
+    public async Task<WebResponseContent> RequestAGVCarryTaskAsync(RequestTaskDto taskDto)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
+
+            DtLocationInfo Targetlocation = await GetAGVEmptyCacheLocation(taskDto.AreaId);
+
+            if (Targetlocation == null || Sourcelocation == null)
+            {
+                return content.Error("璧风偣鏈畾涔夋垨缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
+            }
+
+            if (!IsSamefloor(Sourcelocation, Targetlocation))
+            {
+                return content.Error("鍚屾ゼ灞備笉鍏佽璇锋眰璺ㄦゼ灞備换鍔�");
+            }
+
+            Dt_Task taskNew = new Dt_Task
+            {
+                Grade = 1,
+                Roadway = "AGV",
+                TargetAddress = Targetlocation.LocationCode,
+                Dispatchertime = DateTime.Now,
+                MaterialNo = "",
+                NextAddress = taskDto.TargetAddress,
+                OrderNo = null,
+                PalletCode = taskDto.PalletCode,
+                SourceAddress = taskDto.Position,
+                CurrentAddress = taskDto.Position,
+                TaskState = (int)TaskAGVCarryStatusEnum.CarryNew,
+                TaskType = (int)TaskAGVCarryTypeEnum.Carry,
+                TaskNum = BaseDal.GetTaskNo().Result,
+                CreateDate = DateTime.Now,
+                TaskId = 0,
+                AGVTaskNum = GenerateUniqueId(),
+                Floor = Sourcelocation.Floor,
+            };
+            var taskDTO = CreateListTaskDTO(taskNew);
+
+            var isResult = await AddTaskAsync(taskNew, Sourcelocation, Targetlocation);
+            if (!isResult)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return content.Error("鏂板浠诲姟澶辫触");
+            }
+
+            return content = await SendWCSTask(taskDTO);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
+
+    public async Task<WebResponseContent> RequestPointAGVCarryTaskAsync(RequestTaskDto taskDto)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
+
+            var Targetlocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.TargetAddress);
+
+            if (Targetlocation == null || Sourcelocation == null)
+            {
+                return content.Error("璧风偣鎴栫粓鐐规湭瀹氫箟");
+            }
+
+            if (!IsSamefloor(Sourcelocation, Targetlocation))
+            {
+                return content.Error("鍚屾ゼ灞備笉鍏佽璇锋眰璺ㄦゼ灞備换鍔�");
+            }
+            Dt_Task taskNew = new Dt_Task
+            {
+                Grade = 1,
+                Roadway = "AGV",
+                TargetAddress = Targetlocation.LocationCode,
+                Dispatchertime = DateTime.Now,
+                MaterialNo = "",
+                NextAddress = taskDto.TargetAddress,
+                OrderNo = null,
+                PalletCode = taskDto.PalletCode,
+                SourceAddress = taskDto.Position,
+                CurrentAddress = taskDto.Position,
+                TaskState = (int)TaskAGVCarryStatusEnum.CarryNew,
+                TaskType = (int)TaskAGVCarryTypeEnum.Carry,
+                TaskNum = BaseDal.GetTaskNo().Result,
+                CreateDate = DateTime.Now,
+                TaskId = 0,
+                AGVTaskNum = GenerateUniqueId(),
+                Floor = Sourcelocation.Floor,
+            };
+            var taskDTO = CreateListTaskDTO(taskNew);
+
+            var isResult = await AddTaskAsync(taskNew, Sourcelocation, Targetlocation);
+            if (!isResult)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return content.Error("鏂板浠诲姟澶辫触");
+            }
+
+            return content = await SendWCSTask(taskDTO);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+    #endregion
+
 
     #region 鑾峰彇AGV浠诲姟鍙�
 
@@ -648,7 +842,7 @@
             RoadWay = task.Roadway,
             SourceAddress = task.SourceAddress,
             TargetAddress = task.TargetAddress,
-            TaskState = task.TaskState.Value,
+            TaskState = task.TaskState,
             Id = 0,
             TaskType = task.TaskType,
             AGVTaskNum = task.AGVTaskNum,
@@ -665,11 +859,21 @@
             RoadWay = task.Roadway,
             SourceAddress = task.SourceAddress,
             TargetAddress = task.TargetAddress,
-            TaskState = task.TaskState.Value,
+            TaskState = task.TaskState,
             Id = 0,
             TaskType = task.TaskType,
             AGVTaskNum = task.AGVTaskNum,
         };
+    }
+
+    private bool IsAcrossFloor(DtLocationInfo Sourcelocation,DtLocationInfo Targetlocation)
+    {
+        return Sourcelocation.Floor == Targetlocation.Floor;
+    }
+
+    private bool IsSamefloor(DtLocationInfo Sourcelocation, DtLocationInfo Targetlocation)
+    {
+        return Sourcelocation.Floor == Targetlocation.Floor;
     }
     private async Task DeleteStockInfoAsync(int stockId)
     {
@@ -820,79 +1024,10 @@
     private static readonly SemaphoreSlim _semaphoreUpdate = new SemaphoreSlim(1, 1);
     // 鏇存柊浠诲姟璐т綅
 
-    private async Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input, Dt_Task task)
-    {
-        await _semaphoreUpdate.WaitAsync();
-        try
-        {
-            if (task == null)
-            {
-                return new WebResponseContent().Error("浠诲姟瀵硅薄涓虹┖");
-            }
-
-            try
-            {
-                // 鍒涘缓WebResponseContent瀵硅薄
-                var content = new WebResponseContent();
-
-
-                var location = await GetEmptyLocation(task.Roadway);
-                if (location == null)
-                {
-                    return content.Error("鏃犳硶鑾峰彇璐т綅淇℃伅");
-                }
-
-                string toAddress = location.LocationCode;
-                int taskState = (int)TaskInStatusEnum.Line_InFinish;
-                int beforeStatus = location.LocationStatus;
-                // 鏇存柊璐т綅淇℃伅
-                location.LocationStatus = (int)LocationEnum.Lock;
-
-                // 鏇存柊浠诲姟淇℃伅
-                MapTaskProperties(task, input, toAddress, taskState);
-
-                // 寮�濮嬩簨鍔�
-                var isResult = await UpdateTaskAsync(task, location, beforeStatus);
-                if (!isResult)
-                {
-                    _unitOfWorkManage.RollbackTran();
-                    return content.Error("鏇存柊浠诲姟澶辫触");
-                }
-
-                // 鎻愪氦浜嬪姟
-                _unitOfWorkManage.CommitTran();
-                return content.OK(data: task);
-
-            }
-            catch (Exception ex)
-            {
-                // 鍥炴粴浜嬪姟
-                _unitOfWorkManage.RollbackTran();
-                // 杩欓噷鍙互娣诲姞鏃ュ織璁板綍
-                return new WebResponseContent().Error($"鏇存柊浠诲姟鏃跺彂鐢熼敊璇�: {ex.Message}");
-            }
-        }
-        catch (Exception)
-        {
-            throw;
-        }
-        finally { _semaphoreUpdate.Release(); }
-    }
-
-    private void MapTaskProperties(Dt_Task task, RequestTaskDto input, string toAddress, int taskState)
-    {
-        task.CurrentAddress = input.Position;
-        task.TargetAddress = toAddress;
-        task.NextAddress = toAddress;
-        task.TaskState = taskState;
-    }
-
     // 淇敼浠诲姟
     private async Task<bool> UpdateTaskAsync(Dt_Task task, DtLocationInfo location, int beforeStatus)
     {
         bool isResult = await BaseDal.UpdateDataAsync(task);
-        bool isTaskDetail = await _taskExecuteDetailRepository.AddDetailAsync(task, false, TaskDescription.GetTaskUpdateDescription(task.PalletCode, task.CurrentAddress, task.TargetAddress, TaskInStatusEnum.Line_InFinish.GetIntegralRuleTypeEnumDesc()));
-
         LocationChangeRecordDto changeRecordDto = new LocationChangeRecordDto()
         {
             AfterStatus = location.LocationStatus,
@@ -906,8 +1041,73 @@
         bool isUpdateChange = _locationStatusChangeRecordRepository.AddStatusChangeRecord(changeRecordDto);
         bool isUpdateLo = await _locationRepository.UpdateDataAsync(location);
 
-        return isResult && isUpdateLo && isTaskDetail;
+        return isResult && isUpdateLo;
     }
+
+    private async Task<bool> AddTaskAsync(Dt_Task task, DtLocationInfo Sourcelocation, DtLocationInfo Targetlocation)
+    {
+        bool isResult = await BaseDal.AddDataAsync(task) > 0;
+        int SourcebeforeStatus = Sourcelocation.LocationStatus;
+
+        int TargetbeforeStatus = Targetlocation.LocationStatus;
+
+        Sourcelocation.LocationStatus = (int)LocationEnum.InStockDisable;
+
+        Targetlocation.LocationStatus = (int)LocationEnum.Lock;
+
+        List<LocationChangeRecordDto> changeRecordDto = new List<LocationChangeRecordDto>()
+        {
+            new LocationChangeRecordDto()
+            {
+                AfterStatus = Sourcelocation.LocationStatus,
+                BeforeStatus = SourcebeforeStatus,
+                TaskNum = task.TaskNum.Value,
+                LocationId = Sourcelocation.Id,
+                LocationCode = Sourcelocation.LocationCode,
+                ChangeType = (int)StatusChangeTypeEnum.AutomaticDelivery,
+            },
+            new LocationChangeRecordDto()
+            {
+                AfterStatus = Targetlocation.LocationStatus,
+                BeforeStatus = TargetbeforeStatus,
+                TaskNum = task.TaskNum.Value,
+                LocationId = Targetlocation.Id,
+                LocationCode = Targetlocation.LocationCode,
+                ChangeType = (int)StatusChangeTypeEnum.AutomaticDelivery,
+            },
+        };
+
+        bool isUpdateChange = _locationStatusChangeRecordRepository.AddStatusChangeRecord(changeRecordDto);
+        bool Source = await _locationRepository.UpdateDataAsync(Sourcelocation);
+        bool Target = await _locationRepository.UpdateDataAsync(Targetlocation);
+
+        return isResult && Source && Target;
+    }
+
+    private async Task<bool> AddInBoundTaskAsync(Dt_Task task, DtLocationInfo location)
+    {
+        bool isResult = await BaseDal.AddDataAsync(task) > 0;
+        int beforeStatus = location.LocationStatus;
+
+        location.LocationStatus = (int)LocationEnum.InStockDisable;
+
+        LocationChangeRecordDto changeRecordDto = new LocationChangeRecordDto()
+        {
+            AfterStatus = location.LocationStatus,
+            BeforeStatus = beforeStatus,
+            TaskNum = task.TaskNum.Value,
+            LocationId = location.Id,
+            LocationCode = location.LocationCode,
+            ChangeType = (int)StatusChangeTypeEnum.AutomaticStorage,
+
+        };
+
+        bool isUpdateChange = _locationStatusChangeRecordRepository.AddStatusChangeRecord(changeRecordDto);
+        bool loc = await _locationRepository.UpdateDataAsync(location);
+
+        return isResult && loc;
+    }
+
     /// <summary>
     /// 鑾峰彇璐т綅鍙�
     /// </summary>
@@ -916,36 +1116,103 @@
     {
         try
         {
-            List<DtLocationInfo> LocationInfoList = await _locationRepository.QueryDataAsync(x => x.RoadwayNo == roadWay && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == EnableEnum.Enable.ObjToInt());
+            List<DtLocationInfo> locations = await _locationRepository.QueryDataAsync(x => x.RoadwayNo == "SC1" && x.LocationStatus == 0 && x.EnalbeStatus == 1);
 
-            List<DtLocationInfo> LocationInfoResult = new List<DtLocationInfo>();
-            foreach (DtLocationInfo item in LocationInfoList)
+            if (locations.Where(x => x.Row == 2).ToList().OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault() != null)
             {
-                DtLocationInfo locationItem = new DtLocationInfo();
-                
-                if (item.Depth == 2)
-                {
-                    locationItem = _locationRepository.QueryFirst(x => x.Column == item.Column && x.RoadwayNo == item.RoadwayNo && x.Layer == item.Layer && x.Depth != item.Depth && x.Row != item.Row && (SqlFunc.Abs(x.Row - item.Row) == 1) && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == EnableEnum.Enable.ObjToInt());
-                    if (locationItem != null)
-                    { 
-                        LocationInfoResult.Add(item);
-                    }
-                }
-                else
-                {
-                    locationItem = _locationRepository.QueryFirst(x => x.Column == item.Column && x.RoadwayNo == item.RoadwayNo && x.Layer == item.Layer && x.Depth != item.Depth && x.Row != item.Row && (SqlFunc.Abs(x.Row - item.Row) == 1) && x.LocationStatus == (int)LocationEnum.InStock && x.EnalbeStatus == EnableEnum.Enable.ObjToInt());
-                    if (locationItem != null)
-                    {
-                        LocationInfoResult.Add(item);
-                    }
-                }
+                return locations.Where(x => x.Row == 2).ToList().OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault();
             }
-            if (LocationInfoResult.Count < 2)
+            else if (locations.Where(x => x.Row == 3).ToList().OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault() != null)
             {
-                throw new Exception("褰撳墠绌洪棽璐т綅涓嶈冻锛�");
+                return locations.Where(x => x.Row == 3).ToList().OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault();
+            }
+            else
+            {
+                return locations.Where(x => x.Row == 1).ToList().OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault();
+            }
+        }
+        catch (Exception ex)
+        {
+            throw new Exception(ex.Message);
+        }
+    }
+
+    public async Task<DtLocationInfo> GetAGVEmptyCacheLocation(int AreaId)
+    {
+        try
+        {
+            DtLocationInfo location = null;
+            switch (AreaId)
+            {
+                case 2:
+                    location = await FromShallowToDeep(AreaId);
+                    break;
+                    case 3:
+                    location = await AGVLIKU(AreaId);
+                    break;
+                case 5:
+                case 6:
+                    location = await FromDeepToShallow(AreaId);
+                    break;
+                default:
+                    break;
             }
 
-            return LocationInfoResult.OrderByDescending(x => x.Depth).ThenBy(x => x.Column).ThenBy(x => x.Layer).FirstOrDefault();
+            return location;
+        }
+        catch (Exception ex)
+        {
+            throw new Exception(ex.Message) ;
+        }
+    }
+
+    /// <summary>
+    /// 鐢辨繁鍒版祬
+    /// </summary>
+    /// <param name="AreaId"></param>
+    /// <returns></returns>
+    public async Task<DtLocationInfo> FromDeepToShallow(int AreaId)
+    {
+        try
+        {
+            List<DtLocationInfo> locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == 0 && x.EnalbeStatus == 1);
+
+            var location = locations.OrderByDescending(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
+
+            return location;
+        }
+        catch (Exception ex)
+        {
+            throw new Exception(ex.Message);
+        }
+    }
+
+    /// <summary>
+    /// 鐢辨祬鍒版繁
+    /// </summary>
+    /// <param name="AreaId"></param>
+    /// <returns></returns>
+    public async Task<DtLocationInfo> FromShallowToDeep(int AreaId)
+    {
+        try
+        {
+            List<DtLocationInfo> locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == 0 && x.EnalbeStatus == 1);
+            var location = locations.OrderBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
+            return location;
+        }
+        catch (Exception ex)
+        {
+            throw new Exception(ex.Message);
+        }
+    }
+    public async Task<DtLocationInfo> AGVLIKU(int AreaId)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            List<DtLocationInfo> locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == 0 && x.EnalbeStatus == 1);
+            var location = locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault();
+            return location;
         }
         catch (Exception ex)
         {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
index 627e3e0..8d21ec3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
@@ -25,6 +25,14 @@
     {
         return Service.CreateLocation(x, y, z, locType, areaId);
     }
+
+
+    [HttpPost, AllowAnonymous, Route("CreateAGVLocation")]
+    public WebResponseContent CreateLocation(string AreaName, int x, int y, int areaId, string Floor)
+    {
+        return Service.CreateLocation(AreaName,x, y, areaId, Floor);
+    }
+
     [HttpPost, AllowAnonymous, Route("initializeLocation")]
     public async Task<WebResponseContent> initializeLocation(int locationID)
     {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
index 5cc7a05..beabf62 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
@@ -42,15 +42,15 @@
     }
 
     /// <summary>
-    /// 璇锋眰浠诲姟璐т綅
+    /// 鏇存柊璐т綅浠诲姟鐘舵�佸埌涓嬩竴涓妭鐐�
     /// </summary>
     /// <param name="input">璇锋眰鏁版嵁</param>
     /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestLocationTaskAsync")]
+    [HttpPost, AllowAnonymous, Route("RequestLocationAsync")]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5绉掕妭娴�
-    public async Task<WebResponseContent> UpdateExistingTask([FromBody] RequestTaskDto input)
+    public async Task<WebResponseContent> RequestLocationAsync([FromBody] RequestTaskDto input)
     {
-        return await Service.UpdateExistingTask(input);
+        return await Service.RequestLocationAsync(input);
     }
 
     /// <summary>
@@ -99,14 +99,38 @@
         return await Service.RequestAcrossFloorTaskAsync(taskDto);
     }
 
+    [HttpPost, AllowAnonymous, Route("RequestPointAcrossFloorTaskAsync")]
+    public async Task<WebResponseContent> RequestPointAcrossFloorTaskAsync([FromBody] RequestTaskDto taskDto)
+    {
+        return await Service.RequestPointAcrossFloorTaskAsync(taskDto);
+    }
+
     /// <summary>
     /// AGV鎼繍浠诲姟璇锋眰
     /// </summary>
     /// <param name="taskDto"></param>
     /// <returns></returns>
     [HttpPost, AllowAnonymous, Route("RequestAGVCarryTaskAsync")]
-    public Task<WebResponseContent> RequestAGVCarryTaskAsync([FromBody] RequestTaskDto taskDto)
+    public async Task<WebResponseContent> RequestAGVCarryTaskAsync([FromBody] RequestTaskDto taskDto)
     {
-        return Service.RequestAGVCarryTaskAsync(taskDto);
+        return await Service.RequestAGVCarryTaskAsync(taskDto);
+    }
+
+    [HttpPost, AllowAnonymous, Route("RequestAGVCarryTaskAsync")]
+    public async Task<WebResponseContent> RequestPointAGVCarryTaskAsync([FromBody] RequestTaskDto taskDto)
+    {
+        return await Service.RequestPointAGVCarryTaskAsync(taskDto);
+    }
+
+    [HttpPost, AllowAnonymous, Route("GetEmptyLocation")]
+    public async Task<DtLocationInfo> GetEmptyLocation(string roadWay)
+    {
+        return await Service.GetEmptyLocation(roadWay);
+    }
+
+    [HttpPost, AllowAnonymous, Route("GetAGVEmptyCacheLocation")]
+    public async Task<DtLocationInfo> GetAGVEmptyCacheLocation(int AreaId)
+    {
+        return await Service.GetAGVEmptyCacheLocation(AreaId);
     }
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/~$\346\230\216\345\222\214 \345\240\206\345\236\233\346\234\272\347\253\213\345\272\223\351\241\271\347\233\256\350\275\257\344\273\266\345\274\200\345\217\221\343\200\201\346\265\213\350\257\225\345\217\212\347\273\264\346\212\244\346\234\215\345\212\241-\346\212\200\346\234\257\345\215\217\350\256\256-2025.09.09.doc" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/~$\346\230\216\345\222\214 \345\240\206\345\236\233\346\234\272\347\253\213\345\272\223\351\241\271\347\233\256\350\275\257\344\273\266\345\274\200\345\217\221\343\200\201\346\265\213\350\257\225\345\217\212\347\273\264\346\212\244\346\234\215\345\212\241-\346\212\200\346\234\257\345\215\217\350\256\256-2025.09.09.doc"
new file mode 100644
index 0000000..fcd42e3
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/~$\346\230\216\345\222\214 \345\240\206\345\236\233\346\234\272\347\253\213\345\272\223\351\241\271\347\233\256\350\275\257\344\273\266\345\274\200\345\217\221\343\200\201\346\265\213\350\257\225\345\217\212\347\273\264\346\212\244\346\234\215\345\212\241-\346\212\200\346\234\257\345\215\217\350\256\256-2025.09.09.doc"
Binary files differ

--
Gitblit v1.9.3