From 63dcb7fc55d32960f643f4040900ce9a0e33536d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期一, 20 十月 2025 17:25:56 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Order/InboundOrderController.cs                |   24 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs                           |  805 +++++---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IERPStockInfoService.cs                   |   14 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                         |  179 -
 项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/erp/stockERP.js                                    |   58 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs                 |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs                                            |  187 -
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs             |   31 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs                                   |   49 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/WIDESEA_StorageTaskServices.csproj               |    1 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderRepository/Dt_InboundOrderRepository.cs                         |   12 
 项目代码/WMS/WIDESEA_WMSClient/package-lock.json                                                            |    2 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo_Hty.cs                          |   54 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db          |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj             |    1 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm      |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue                        |  180 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Common/StatusChangeType/StatusChangeTypeEnum.cs                      |   12 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo_Hty.cs                           |   55 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json                                |  175 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs                          |   17 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs                         |   49 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm      |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IOrderServices/WIDESEA_IOrderServices.csproj                         |   13 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs                                          |   32 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfo.vue                                 |   10 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo.cs                              |   31 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj                                   |    1 
 项目代码/PDA/pages.json                                                                                     |   14 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db     |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs                       |   49 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IOrderRepository/WIDESEA_IOrderRepository.csproj                     |   13 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/SqlSugarHelper.cs                                        |   19 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IOrderServices/IDt_InboundOrderService.cs                            |   11 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs                                   |   68 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_采购入成品入库自动打印清单_ST.cs                             |   27 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs                                   |    9 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs                              |   23 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs                        |   58 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                |  208 +-
 项目代码/WMS/WIDESEA_WMSClient/src/router/tables.js                                                         |   12 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/AddBoxingDto.cs                                            |   15 
 项目代码/PDA/pages/task/Inbound.vue                                                                         |  148 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/MainDb.cs                                                    |    1 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs                                  |   26 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ERPStockController.cs                      |   22 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs                                             |   92 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/Task_HtyController.cs                     |    1 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoService.cs                    |    3 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs                               |  106 -
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs                                 |   32 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/erp/stockERP.vue                                       |   69 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/ERPStockInfoService.cs                    |   33 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/Order/InboundOrder.vue                                 |   96 +
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer.sln                                                        |   60 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/Order/InboundOrder.js                              |   59 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail_Hty.cs                     |   26 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs                                         |  124 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Order/Dt_InboundOrder.cs                                |   69 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoController.cs                  |    6 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnumHelper.cs                                         |   40 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx                        |  134 -
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IOrderRepository/IDt_InboundOrderRepository.cs                       |    8 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs                            |  103 +
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json                         |  141 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/Basic.cs                                                     |  363 ++++
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs                   |    5 
 项目代码/WMS/WIDESEA_WMSClient/package.json                                                                 |    2 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs                     |   86 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PrintSetting.cs                                |   52 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_采购及成品入库清单_ST.cs                                 |   27 
 /dev/null                                                                                               |  189 --
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json                                           |    5 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db          |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs                                  |   10 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal      |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoHtyService.cs                    |   29 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                    |  244 ++
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db     |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs                      |    2 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Class1.cs                                    |   33 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs                         |   58 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderRepository/WIDESEA_OrderRepository.csproj                       |   13 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs                                 |   15 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail_Hty.cs                    |   26 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_用友库存一览表_ST.cs                                   |   37 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/WIDESEA_OrderServices.csproj                           |   17 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue                            |  173 +
 93 files changed, 3,580 insertions(+), 1,725 deletions(-)

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 28d5a05..aa99c78 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"
@@ -57,13 +57,6 @@
 			}
 		},
 		{
-			"path": "pages/task/HostErrorInfo",
-			"style": {
-				"navigationBarTitleText": "鎶ヨ淇℃伅",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
 			"path": "pages/Order/Inorderboxing",
 			"style": {
 				"navigationBarTitleText": "鍑哄簱鏄庣粏",
@@ -81,13 +74,6 @@
 			"path": "pages/Order/OutOrderDetail",
 			"style": {
 				"navigationBarTitleText": "鍏ュ簱鍗曟嵁鏄庣粏鎿嶄綔",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/task/AgvTask",
-			"style": {
-				"navigationBarTitleText": "Agv鍙枡",
 				"enablePullDownRefresh": false
 			}
 		},
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AgvTask.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AgvTask.vue"
deleted file mode 100644
index cd64e2e..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AgvTask.vue"
+++ /dev/null
@@ -1,228 +0,0 @@
-<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" @input="carNoInputChange" v-model="Point"
-							placeholder="璇疯緭鍏ョ粦瀹氳揣浣嶇偣" ref='midInput' />
-					</uni-forms-item>
-				</uni-forms>
-				<button @click="Bind" type="primary" size="default" style="margin-top: 2%;">缁戝畾</button>
-				<u-toast ref="BindluToast" />
-			</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="!istrue" @input="carNoInputChange" v-model="EndAddress"
-							placeholder="璇疯緭鍏ョ粓鐐�" ref='midInput' />
-					</uni-forms-item>
-				</uni-forms>
-				<button @click="CallMateriel" type="primary" size="default" style="margin-top: 2%;">鍙枡</button>
-				<u-toast ref="CallMaterieluToast" />
-			</view>
-		</view>
-		<view v-show="current === 2">
-			<view style="padding: 5%;">
-				<uni-forms label-width="120">
-					<uni-forms-item label="璧风偣">
-						<uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="StartAddress"
-							placeholder="璇疯緭鍏ヨ捣鐐�" ref='midInput' />
-					</uni-forms-item>
-				</uni-forms>
-				<button @click="MaterielCarry" type="primary" size="default" style="margin-top: 2%;">鎼繍</button>
-				<u-toast ref="MaterielCarryuToast" />
-			</view>
-		</view>
-	</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				istrue: false,
-				range: [],
-				EndAddress: "",
-				StartAddress: "",
-				PalletCode:"",
-				Point:"",
-				items: ['璐т綅缁戝畾', '鍙枡', '鎼繍'],
-				current: 0
-			}
-		},
-		// onLoad() {
-		// 	this.getEndLocations();
-		// },
-		methods: {
-			onClickItem(e) {
-				if (this.current != e.currentIndex) {
-					this.current = e.currentIndex;
-				}
-			},
-			Bind() {
-				if (this.PalletCode.length <= 0&&this.Point.length) {
-					this.$refs.BindluToast.show({
-						title: "鎵樼洏缂栫爜璺熺粦瀹氳揣浣嶄笉鑳戒负绌�",
-						type: "error"
-					})
-					return;
-				}
-				var param = {
-					MainData: {
-						"PalletCode": this.PalletCode,
-						"Point":this.Point
-					},
-				}
-				console.log(param);
-				this.$u.post('/api/PDA/CallMateriel', param).then(res => {
-					if (res.status) {
-						this.$refs.uToast.show({
-							title: "鍛煎彨Agv鎼繍鎴愬姛",
-							type: "success"
-						})
-						this.EndAddress = "";
-						this.istrue = false;
-					} else {
-						this.$refs.BindluToast.show({
-							title: res.message,
-							type: "error"
-						})
-					}
-				})
-			},
-			CallMateriel() {
-				if (this.EndAddress.length <= 0) {
-					this.$refs.CallMaterieluToast.show({
-						title: "璇疯緭鍏ョ粓鐐�",
-						type: "error"
-					})
-					return;
-				}
-				var param = {
-					MainData: {
-						"endPoint": this.EndAddress
-					},
-				}
-				this.$u.post('/api/PDA/CallMateriel', param).then(res => {
-					if (res.status) {
-						this.$refs.uToast.show({
-							title: "鍛煎彨Agv鎼繍鎴愬姛",
-							type: "success"
-						})
-						this.EndAddress = "";
-						this.istrue = false;
-					} else {
-						this.$refs.CallMaterieluToast.show({
-							title: res.message,
-							type: "error"
-						})
-					}
-				})
-			},
-			MaterielCarry() {
-				if (this.StartAddress.length <= 0) {
-					this.$refs.MaterielCarryuToast.show({
-						title: "璇疯緭鍏ヨ捣鐐�",
-						type: "error"
-					})
-					return;
-				}
-				var param = {
-					MainData: {
-						"startPoint": this.StartAddress
-					},
-				}
-				this.$u.post('/api/PDA/MaterielCarry', param).then(res => {
-					if (res.status) {
-						this.$refs.uToast.show({
-							title: "鍛煎彨Agv鎼繍鎴愬姛",
-							type: "success"
-						})
-						this.StartAddress = "";
-						this.istrue = false;
-					} else {
-						this.$refs.MaterielCarryuToast.show({
-							title: res.message,
-							type: "error"
-						})
-					}
-				})
-			},
-		}
-	}
-</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/HostErrorInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/HostErrorInfo.vue"
deleted file mode 100644
index 7e83332..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/HostErrorInfo.vue"
+++ /dev/null
@@ -1,189 +0,0 @@
-<template>
-	<view>
-		<uni-list class="footer">
-			<uni-list-item direction="column" v-for="item in taskInfo" :key="item.id">
-				<template v-slot:body>
-					<view class="uni-list-box">
-						<!-- <checkbox @click="click(item)"></checkbox> -->
-						<view class="uni-content">
-							<view class="uni-title-sub uni-ellipsis-2">寮傚父Code锛歿{item.errorCode}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">寮傚父淇℃伅锛歿{item.errorMessage}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">绛夌骇锛歿{item.grade}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">鏃堕棿锛歿{item.createDate}}</view>
-						</view>
-					</view>
-				</template>
-			</uni-list-item>
-		</uni-list>
-
-		<!-- <view style="background-color: #fff; padding: 20rpx,20rpx;" class="customcss">
-			<u-sticky offset-top="80%">
-				<button type="primary" @click="cancelTask()">鍙栨秷浠诲姟</button>
-			</u-sticky>
-		</view> -->
-		<u-toast ref="uToast" />
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				taskInfo: [],
-				items: [],
-			}
-		},
-		onLoad(res) {
-			this.getData();
-		},
-		mounted() {
-			this.getData();
-			setInterval(() => {
-				this.getData();
-			}, 50000);
-		},
-		methods: {
-			getData() {
-				this.$u.post('/api/PDA/GetHostError', null).then((res) => {
-					if (res.status) {
-						this.taskInfo = res.data;
-					}
-				})
-			},
-			cancelTask() {
-				if (this.items.length == 0) {
-					this.$refs.uToast.show({
-						title: "璇烽�夋嫨瑕佸彇娑堢殑鏁版嵁",
-						type: "error"
-					});
-					return;
-				}
-				if (this.items.length > 1) {
-					this.$refs.uToast.show({
-						title: "璇烽�夋嫨涓�鏉¤鍙栨秷鐨勬暟鎹�",
-						type: "error"
-					});
-					return;
-				}
-				var postData = {
-					MainData: {
-						"taskNum": this.items[0].taskNum,
-					},
-				}
-				this.$u.post('/api/Task/TaskCancel', postData).then((res) => {
-					if (res.status) {
-						this.items = [];
-						this.$refs.uToast.show({
-							title: "鍙栨秷鎴愬姛",
-							type: "success"
-						});
-						this.getData();
-					} else {
-						this.$refs.uToast.show({
-							title: "鍙栨秷澶辫触" + res.message,
-							type: "error"
-						});
-					}
-				})
-			},
-			click(e) {
-				if (this.items.find(x => x.taskNum == e.taskNum)) {
-					this.items.map((item, index) => {
-						if (item.taskNum == e.taskNum) {
-							this.items.splice(index, 1);
-						}
-					})
-				} else {
-					this.items.push(e);
-				}
-			}
-		}
-	}
-</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 {
-		width: 100%;
-		height: 140rpx;
-		text-align: center;
-		position: fixed;
-		/*1銆併�恟elative銆戠浉瀵瑰畾浣嶏紱2銆併�恆bsolute銆戠粷瀵瑰畾浣嶏紱3銆併�恌ixed銆戝浐瀹氬畾浣嶏紱4銆併�恠tatic銆戦粯璁ゅ�硷紱5銆併�恠ticky銆戠矘鎬у畾浣嶃��*/
-		left: 0px;
-		/*瀹氫綅锛氱椤甸潰宸﹁竟0px鐨勪綅缃�*/
-		bottom: 0px;
-		/*瀹氫綅锛氱椤甸潰搴曢儴0px鐨勪綅缃�*/
-		padding-top: 20rpx;
-	}
-
-	.footer {
-		// padding-top: 20%;
-		padding-bottom: 72px;
-		background-color: #f1f3f4;
-	}
-</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/Inbound.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/Inbound.vue"
index 888d8cf..01cda1b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/Inbound.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/Inbound.vue"
@@ -6,16 +6,20 @@
 			<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-easyinput type="text" :focus="!istrue" v-model="PalletCode1" placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�"
+							ref='midInput' />
 					</uni-forms-item>
 					<uni-forms-item label="鍏ュ簱璧风偣">
-						<uni-easyinput type="text" :focus="istrue" v-model="SourceAddress"
-							placeholder="璇疯緭鍏ュ叆搴撹捣鐐�" ref='midInput' />
+						<uni-easyinput type="text" :focus="istrue" v-model="SourceAddress" placeholder="璇疯緭鍏ュ叆搴撹捣鐐�"
+							ref='midInput' />
 					</uni-forms-item>
 					<uni-forms-item label="鍏ュ簱缁堢偣">
-						<uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="TargetAddress"
-							placeholder="璇疯緭鍏ュ叆搴撶粓鐐�" ref='midInput' />
+						<uni-easyinput type="text" :focus="istrue" v-model="TargetAddress" 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="InboundTask" type="primary" size="default" style="margin-top: 2%;">鍏ュ簱</button>
@@ -26,19 +30,50 @@
 			<view style="padding: 5%;">
 				<uni-forms label-width="120">
 					<uni-forms-item label="鎵樼洏缂栫爜">
-						<uni-easyinput type="text" :focus="barcodefocus" @input="inputChangebarcode" v-model="Barcode"
+						<uni-easyinput type="text" :focus="barcodefocus" @input="inputChangebarcode"
+							v-model="PalletCode2" placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
+					</uni-forms-item>
+					<uni-forms-item label="澶栫鏍囩:">
+						<uni-easyinput type="text" placeholder="璇锋壂鎻忓绠辨爣绛�" ref='midInput' :focus="focus" v-model="materSn"
+							@input="snInput" />
+					</uni-forms-item>
+					<uni-list>
+						<!-- <uni-list-item direction="column" v-for="item in InBoundOrder" :key="item.matCode">
+							<template v-slot:body>
+								<view class="uni-list-box">
+									<view class="uni-content">
+										<view class="uni-title-sub uni-ellipsis-2">璁㈠崟鍞竴缂栫爜锛歿{item.orderNo}}</view>
+									</view>
+								</view>
+							</template>
+						</uni-list-item> -->
+						<uni-list-item direction="column" v-for="(item,index) in InBoundOrder" :key="item.sn">
+							<template v-slot:body>
+								<view class="uni-list-box">
+									<uni-icons type="trash" size="22" style="position: absolute;right: 5%;"
+										@click="deleteList(item.orderNo)">
+									</uni-icons>
+									<view class="uni-content">
+										<view class="uni-title-sub uni-ellipsis-2">璁㈠崟鍙凤細{{item.orderNo}}</view>
+									</view>
+								</view>
+							</template>
+						</uni-list-item>
+					</uni-list>
+				</uni-forms>
+				<button @click="OutboundTask" type="primary" size="default" style="margin-top: 2%;">缁勭洏</button>
+				<u-toast ref="OutboundTaskluToast" />
+			</view>
+		</view>
+		<view v-show="current === 2">
+			<view style="padding: 5%;">
+				<uni-forms label-width="120">
+					<uni-forms-item label="鎵樼洏缂栫爜">
+						<uni-easyinput type="text" :focus="barcodefocus" @input="inputChange" v-model="PalletCode3"
 							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="OutboundTask" type="primary" size="default" style="margin-top: 2%;">鍑哄簱</button>
+				<button @click="OutboundTask" type="primary" size="default" style="margin-top: 2%;">瑙g洏</button>
 				<u-toast ref="OutboundTaskluToast" />
 			</view>
 		</view>
@@ -47,21 +82,30 @@
 </template>
 
 <script>
+	import {
+		config
+	} from '../../common/config';
+	const innerAudioContext = uni.createInnerAudioContext();
 	export default {
 		data() {
 			return {
 				istrue: false,
 				barcodefocus: false,
 				range: [],
-				EndAddress: "",
-				StartAddress: "",
-				Barcode: "",
-				TargetAddress:"",
-				PalletCode: "",
+				AreaId: "",
 				SourceAddress: "",
-				items: ['鍏ュ簱', '鍑哄簱'],
+				TargetAddress: "",
+				PalletCode1: "",
+				PalletCode2: "",
+				PalletCode3: "",
+				materSn: "",
+				InBoundOrder: [],
+				items: ['鍏ュ簱', '缁勭洏', '瑙g洏'],
 				current: 0
 			}
+		},
+		onLoad(res) {
+			this.range = config.AreaId;
 		},
 		methods: {
 			onClickItem(e) {
@@ -80,7 +124,7 @@
 				var param = {
 					"PalletCode": this.PalletCode,
 					"Position": this.SourceAddress,
-					"TargetAddress":this.TargetAddress
+					"TargetAddress": this.TargetAddress
 				}
 				console.log(param);
 				this.$u.post('/api/Task/RequestTaskAsync', param).then(res => {
@@ -91,7 +135,7 @@
 						})
 						this.PalletCode = "";
 						this.SourceAddress = "";
-						this.TargetAddress="";
+						this.TargetAddress = "";
 						this.istrue = false;
 					} else {
 						this.$refs.InboundTaskluToast.show({
@@ -112,7 +156,7 @@
 				var param = {
 					"PalletCode": this.Barcode,
 					"Position": this.StartAddress,
-					"TargetAddress":this.EndAddress
+					"TargetAddress": this.EndAddress
 				}
 				this.$u.post('/api/Task/RequestOutTaskAsync', param).then(res => {
 					if (res.status) {
@@ -122,7 +166,7 @@
 						})
 						this.Barcode = "";
 						this.EndAddress = "";
-						this.StartAddress="";
+						this.StartAddress = "";
 						this.barcodefocus = false;
 					} else {
 						this.$refs.OutboundTaskluToast.show({
@@ -132,6 +176,58 @@
 					}
 				})
 			},
+			snInput() {
+				this.$nextTick(() => {
+					var matObj = {
+						orderNo: this.materSn,
+					}
+					var temp = this.InBoundOrder.find(x => x.orderNo == matObj.orderNo);
+					console.log(temp)
+					if (!temp) {
+						this.InBoundOrder.push(matObj);
+						setTimeout(this.updateFocus, 200);
+						setTimeout(() => {
+							this.voiceSpeech('../../static/success.mp3');
+						}, 100);
+					} else {
+						this.$refs.uToast.show({
+							title: "鎵爜閲嶅",
+							type: "error"
+						})
+						setTimeout(this.updateFocus, 200);
+						setTimeout(() => {
+							this.voiceSpeech('../../static/fail.mp3');
+						}, 100);
+					}
+
+				})
+			},
+			// deleteList(res) {
+			// 	this.matInfos.map((item, index) => {
+			// 		if (item.orderNo == res) {
+			// 			this.matInfos.splice(index, 1);
+						
+			// 		}
+			// 	})
+			// 	this.orderNo.map((item, index) => {
+			// 		if (item == res) {
+			// 			this.orderNo.splice(index, 1);
+			// 		}
+			// 	})
+			// },
+			deleteList(res) {
+			      // 鍒犻櫎matInfos涓璷rderNo鍖归厤椤�
+			      this.matInfos = this.matInfos.filter(item => item.orderNo !== res);
+			      
+			      // 鍒犻櫎orderNo涓尮閰嶉」
+			      this.orderNo = this.orderNo.filter(item => item !== res);
+			      
+			      // 鍙�夛細娣诲姞鍒犻櫎鍙嶉
+			      this.$refs.uToast.show({
+			        title: `宸插垹闄�: ${res}`,
+			        type: "success"
+			      });
+			    }
 		}
 	}
 </script>
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 3b174d7..2af3134 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"
new file mode 100644
index 0000000..55e938b
--- /dev/null
+++ "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"
new file mode 100644
index 0000000..5a619c6
--- /dev/null
+++ "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 08d62a8..de461b7 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"
new file mode 100644
index 0000000..b511259
--- /dev/null
+++ "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"
new file mode 100644
index 0000000..b185381
--- /dev/null
+++ "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 08dcb97..bb4609a 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"
@@ -7,20 +7,28 @@
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.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\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.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\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "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:{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:{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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_core\\enums\\enumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\enums\\enumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.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}",
@@ -31,20 +39,12 @@
       "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\\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:{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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "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:{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:{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": [
@@ -54,46 +54,43 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 7,
+          "SelectedChildIndex": 5,
           "Children": [
             {
               "$type": "Document",
               "DocumentIndex": 1,
-              "Title": "Dt_Task.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "ViewState": "AgIAAIgAAAAAAAAAAAAswKUAAABQAAAAAAAAAA==",
+              "Title": "TaskTypeEnum.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ViewState": "AgIAAD8AAAAAAAAAAAAnwFQAAAAFAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-14T08:37:29.99Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-10-16T07:16:14.933Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 5,
-              "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": "AgIAAEIAAAAAAAAAAAAawF4AAAAYAAAAAAAAAA==",
+              "Title": "EnumHelper.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T03:25:18.917Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-10-16T07:16:00.292Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
-              "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": "AgIAAEIBAAAAAAAAAAAAAGsBAAAzAAAAAAAAAA==",
+              "DocumentIndex": 6,
+              "Title": "ITaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ViewState": "AgIAADgAAAAAAAAAAAAqwFkAAAAVAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-08T02:55:34.719Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-10-16T07:06:20.201Z"
             },
             {
               "$type": "Document",
@@ -103,48 +100,21 @@
               "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": "AgIAAEIAAAAAAAAAAAAtwGIAAAAuAAAAAAAAAA==",
+              "ViewState": "AgIAAD8BAAAAAAAAAAAUwF4BAABZAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-25T03:21:17.498Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-09-25T03:21:17.498Z"
             },
             {
               "$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": "AgIAAAAAAAAAAAAAAADwvwgAAAACAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-10-13T03:45:03.095Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
+              "DocumentIndex": 2,
               "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": "AgIAAFMAAAAAAAAAAAAAAGYAAABKAAAAAAAAAA==",
+              "ViewState": "AgIAAPwAAAAAAAAAAAAYwN0AAAAWAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-13T01:17:34.312Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "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": "AgIAABkAAAAAAAAAAAAtwDYAAAAdAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T05:30:35.074Z",
-              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -154,26 +124,62 @@
               "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": "AgIAABoAAAAAAAAAAAAtwOMAAAAJAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAADEAAAANAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-09T05:11:29.775Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 10,
+              "DocumentIndex": 4,
               "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==",
+              "ViewState": "AgIAACAAAAAAAAAAAAAiwEgAAAAkAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-09T12:12:52.995Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 10,
+              "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": "AgIAAAAAAAAAAAAAAADwvwgAAAACAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-10-13T03:45:03.095Z"
+            },
+            {
+              "$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": "AgIAAEIBAAAAAAAAAAAAAGsBAAAzAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T02:55:34.719Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "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": "AgIAAEIAAAAAAAAAAAAawF8AAABKAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-09T03:25:18.917Z"
+            },
+            {
+              "$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",
@@ -181,20 +187,7 @@
               "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": 9,
-              "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"
+              "WhenOpened": "2025-10-10T06:49:30.021Z"
             }
           ]
         }
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 9fa7383..96f5540 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"
@@ -7,16 +7,28 @@
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\commonagvjob.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:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.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\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "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:{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:{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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_core\\enums\\enumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\enums\\enumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.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}",
@@ -27,20 +39,12 @@
       "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\\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:{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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "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:{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:{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": [
@@ -50,47 +54,96 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 6,
+          "SelectedChildIndex": 5,
           "Children": [
             {
               "$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": "AgIAAEIAAAAAAAAAAAAawF4AAAAYAAAAAAAAAA==",
+              "DocumentIndex": 1,
+              "Title": "TaskTypeEnum.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ViewState": "AgIAAD8AAAAAAAAAAAAnwFQAAAAFAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T03:25:18.917Z"
+              "WhenOpened": "2025-10-16T07:16:14.933Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "EnumHelper.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Enums\\EnumHelper.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-16T07:16:00.292Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "ITaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ViewState": "AgIAADgAAAAAAAAAAAAqwFkAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-16T07:06:20.201Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 3,
-              "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": "AgIAAEIBAAAAAAAAAAAAAGsBAAAzAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-08T02:55:34.719Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
               "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": "AgIAAEIAAAAAAAAAAAAtwGIAAAAuAAAAAAAAAA==",
+              "ViewState": "AgIAAD8BAAAAAAAAAAAUwF4BAABZAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:21:17.498Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 2,
+              "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": "AgIAAPwAAAAAAAAAAAAYwN0AAAAWAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-13T01:17:34.312Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "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": "AgIAAOMAAAAAAAAAAAAvwB8BAAAMAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-09T05:11:29.775Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "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": "AgIAACAAAAAAAAAAAAAiwEgAAAAkAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-09T12:12:52.995Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
@@ -102,56 +155,31 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
-              "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": "AgIAAFMAAAAAAAAAAAAAAGYAAABKAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-13T01:17:34.312Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "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": "AgIAABkAAAAAAAAAAAAtwDYAAAAdAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T05:30:35.074Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "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": "AgIAABsAAAAAAAAAAAAAAFMAAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T05:11:29.775Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 9,
-              "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==",
+              "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": "AgIAAEIBAAAAAAAAAAAAAGsBAAAzAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-09T12:12:52.995Z"
+              "WhenOpened": "2025-10-08T02:55:34.719Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 7,
+              "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": "AgIAAEIAAAAAAAAAAAAawF8AAABKAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-09T03:25:18.917Z"
+            },
+            {
+              "$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",
@@ -160,18 +188,6 @@
               "ViewState": "AgIAAAkAAAAAAAAAAAASwCQAAAAsAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-10T06:49:30.021Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
-              "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"
             }
           ]
         }
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 7da37bb..1ffece8 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"
@@ -48,6 +48,38 @@
             }
         }
 
+        public static TaskStateGroup GetTaskStateGroup(this int taskState)
+        {
+            if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
+            {
+                return TaskStateGroup.OutbondGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.InboundGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskRelocationStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.RelocationGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskOtherStateEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.OtherGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskAGVCarryStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.CarryGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskAcrossFloorStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.AcrossFloorGroup;
+            }
+            else
+            {
+                throw new NotImplementedException();
+            }
+        }
+
         public static int GetNextNotCompletedStatus<T>(this int currentStatus) where T : Enum
         {
             Type type = typeof(T);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
index 3f4d1ae..7c479b1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
@@ -145,7 +145,10 @@
         [Description("鍑哄簱浠诲姟寮傚父")]
         OutException = 199,
     }
+    public enum TaskOtherStateEnum
+    {
 
+    }
     public enum TaskRelocationStatusEnum
     {
         /// <summary>
@@ -167,6 +170,18 @@
         SC_RelocationFinish = 315,
 
         /// <summary>
+        /// AGV绉诲簱鎵ц涓�
+        /// </summary>
+        [Description("AGV绉诲簱鎵ц涓�")]
+        AGV_RelocationExecuting = 320,
+
+        /// <summary>
+        /// AGV绉诲簱瀹屾垚
+        /// </summary>
+        [Description("AGV绉诲簱瀹屾垚")]
+        AGV_RelocationFinish = 325,
+
+        /// <summary>
         /// 绉诲簱浠诲姟瀹屾垚
         /// </summary>
         [Description("绉诲簱浠诲姟瀹屾垚")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
index bb35a10..453ae4b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -16,28 +16,10 @@
         Inbound = 200,
 
         /// <summary>
-        /// 鐩樼偣鍏ュ簱
+        /// 鍏朵粬鍏ュ簱
         /// </summary>
-        [Description("鐩樼偣鍏ュ簱")]
-        InInventory = 201,
-
-        /// <summary>
-        /// 鍒嗘嫞鍏ュ簱
-        /// </summary>
-        [Description("鍒嗘嫞鍏ュ簱")]
-        InPick = 202,
-
-        /// <summary>
-        /// 璐ㄦ鍏ュ簱
-        /// </summary>
-        [Description("璐ㄦ鍏ュ簱")]
-        InQuality = 203,
-
-        /// <summary>
-        /// 绌烘墭鐩樺叆搴�
-        /// </summary>
-        [Description("绌烘墭鐩樺叆搴�")]
-        InTray = 204,
+        [Description("鍏朵粬鍏ュ簱")]
+        InOther = 205,
     }
 
     public enum TaskOutboundTypeEnum
@@ -49,29 +31,22 @@
         Outbound = 100,
 
         /// <summary>
-        /// 鐩樼偣鍑哄簱
+        /// 璋冩嫧鍑哄簱
         /// </summary>
-        [Description("鐩樼偣鍑哄簱")]
-        OutInventory = 101,
+        [Description("璋冩嫧鍑哄簱")]
+        OutAllocate = 105,
 
         /// <summary>
-        /// 鍒嗘嫞鍑哄簱
+        /// 鍏朵粬鍑哄簱
         /// </summary>
-        [Description("鍒嗘嫞鍑哄簱")]
-        OutPick = 102,
+        [Description("鍏朵粬鍑哄簱")]
+        OutOther = 110,
 
         /// <summary>
-        /// 璐ㄦ鍑哄簱
+        /// 鎵嬪姩鍑哄簱
         /// </summary>
-        [Description("璐ㄦ鍑哄簱")]
-        OutQuality = 103,
-
-        /// <summary>
-        /// 绌烘墭鐩樺嚭搴�
-        /// </summary>
-        [Description("绌烘墭鐩樺嚭搴�")]
-        OutTray = 104,
-
+        [Description("鎵嬪姩鍑哄簱")]
+        OutManual = 115,
     }
 
     public enum TaskRelocationTypeEnum
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs"
index 0cc89cd..4b1b2e9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs"
@@ -15,4 +15,14 @@
         CarryGroup,
         AcrossFloorGroup,
     }
+
+    public enum TaskStateGroup
+    {
+        InboundGroup,
+        OutbondGroup,
+        RelocationGroup,
+        OtherGroup,
+        CarryGroup,
+        AcrossFloorGroup,
+    }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 8007c87..b4f9a69 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -65,6 +65,32 @@
         /// </summary>
         public List<int> TaskAcrossFloorboundTypes { get; }
 
+
+        /// <summary>
+        /// 鎵�鏈夊叆搴撲换鍔$姸鎬�
+        /// </summary>
+        public List<int> TaskInboundStates { get; }
+
+        /// <summary>
+        /// 鎵�鏈夊嚭搴撲换鍔$姸鎬�
+        /// </summary>
+        public List<int> TaskOutboundStates { get; }
+
+        /// <summary>
+        /// 鎵�鏈夌Щ搴撲换鍔$姸鎬�
+        /// </summary>
+        public List<int> TaskRelocationboundStates { get; }
+
+        /// <summary>
+        /// 鎵�鏈堿GV鎼繍浠诲姟鐘舵��
+        /// </summary>
+        public List<int> TaskAGVCarryboundStates { get; }
+
+        /// <summary>
+        /// 鎵�鏈夎法妤煎眰浠诲姟鐘舵��
+        /// </summary>
+        public List<int> TaskAcrossFloorboundStates { get; }
+
         /// <summary>
         /// 鎺ユ敹WMS浠诲姟淇℃伅
         /// </summary>
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 f2f9f1a..5a22c8f 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"
@@ -44,19 +44,32 @@
 
         private Dictionary<string, OrderByType> _taskOrderBy = new()
         {
-            {nameof(Dt_Task.Grade), OrderByType.Desc },
+            {nameof(Dt_Task.Grade), OrderByType.Asc },
             {nameof(Dt_Task.CreateDate), OrderByType.Asc},
         };
+
 
         public Dictionary<string, OrderByType> TaskOrderBy
         { get { return _taskOrderBy; } set { _taskOrderBy = value; } }
 
+
+        #region 鑾峰彇鎵�鏈変换鍔$被鍨嬨�佺姸鎬�
         public List<int> TaskInboundTypes => typeof(TaskInboundTypeEnum).GetEnumIndexList();
 
         public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList();
-        public List<int> TaskRelocationboundTypes => typeof(TaskRelocationStatusEnum).GetEnumIndexList();
-        public List<int> TaskAGVCarryboundTypes => typeof(TaskAGVCarryStatusEnum).GetEnumIndexList();
-        public List<int> TaskAcrossFloorboundTypes => typeof(TaskAcrossFloorStatusEnum).GetEnumIndexList();
+        public List<int> TaskRelocationboundTypes => typeof(TaskRelocationTypeEnum).GetEnumIndexList();
+        public List<int> TaskAGVCarryboundTypes => typeof(TaskAGVCarryTypeEnum).GetEnumIndexList();
+        public List<int> TaskAcrossFloorboundTypes => typeof(TaskAcrossFloorTypeEnum).GetEnumIndexList();
+
+        public List<int> TaskInboundStates => typeof(TaskInStatusEnum).GetEnumIndexList();
+
+        public List<int> TaskOutboundStates => typeof(TaskOutStatusEnum).GetEnumIndexList();
+        public List<int> TaskRelocationboundStates => typeof(TaskRelocationStatusEnum).GetEnumIndexList();
+        public List<int> TaskAGVCarryboundStates => typeof(TaskAGVCarryStatusEnum).GetEnumIndexList();
+        public List<int> TaskAcrossFloorboundStates => typeof(TaskAcrossFloorStatusEnum).GetEnumIndexList();
+
+        #endregion 鑾峰彇鎵�鏈変换鍔$被鍨嬨�佺姸鎬�
+
 
         public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository) : base(BaseDal)
         {
@@ -100,78 +113,179 @@
                     // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄嚭搴撲换鍔�
                     if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                     {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
-
-                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = station.stationChildCode;
-
-                        task.Floor = "1F";
-
-                        task.AGVSign = "";
-                    }
-                    // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔�
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
-                    {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
-
-                        task.TaskState = (int)TaskInStatusEnum.InNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = station.stationChildCode;
-
-                        task.Floor = "1F";
-
-                        task.AGVSign= "";
-                    }
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
-                    {
-                        task.TaskState = (int)TaskRelocationStatusEnum.RelocationNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = task.TargetAddress;
-
-                        task.Floor = "1F";
-
-                        task.AGVSign = "";
-                    }
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
-                    {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
-
-                        task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = task.TargetAddress;
-
-                        task.Floor = station.stationFloor;
-
-                        task.AGVSign = "";
-                    }
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
-                    {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
-
-                        if (station != null)
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                         {
-                            var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
 
-                            task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+                            task.TaskState = (int)TaskOutStatusEnum.OutNew;
 
                             task.CurrentAddress = item.SourceAddress;
 
-                            task.NextAddress = next.stationChildCode;
+                            task.NextAddress = station.stationChildCode;
+
+                            task.Floor = "1F";
+
+                            task.AGVSign = "";
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.TargetAddress);
+
+                            task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
 
                             task.Floor = station.stationFloor;
 
                             task.AGVSign = "";
                         }
                     }
+                    // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔�
+                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                    {
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
+
+                            task.TaskState = (int)TaskInStatusEnum.InNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = station.stationChildCode;
+
+                            task.Floor = "1F";
+
+                            task.AGVSign = "";
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
+
+                            task.Floor = station.stationFloor;
+
+                            task.AGVSign = "";
+                        }
+
+                    }
+                    // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓虹Щ搴撲换鍔�
+                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+                    {
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.RelocationGroup)
+                        {
+                            task.TaskState = (int)TaskRelocationStatusEnum.RelocationNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
+
+                            task.Floor = "1F";
+
+                            task.AGVSign = "";
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
+
+                            task.Floor = station.stationFloor;
+
+                            task.AGVSign = "";
+                        }
+                    }
+                    //鍒ゆ柇浠诲姟绫诲瀷鏄惁涓鸿法妤煎眰鎼繍浠诲姟
+                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+                    {
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                    }
+
                     // 灏嗚浆鎹㈠悗鐨勪换鍔℃坊鍔犲埌浠诲姟鍒楄〃涓�
                     tasks.Add(task);
                 }
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 91883ea..ed2c5f9 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"
@@ -88,39 +88,38 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+
+                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                 {
-                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
+                    if (task.Floor == "1F")
                     {
-                        if (task.Floor == "1F")
-                        {
-                            elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
-                        }
-                        else
-                        {
-                            elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
-                        }
-                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
-                        content.OK();
+                        elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
                     }
-                    else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.EndAddressExecuting)
+                    else
                     {
-                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
-                        content.OK();
+                        elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
                     }
+                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
+                    content.OK();
                 }
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
+                else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.EndAddressExecuting)
+                {
+                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
+                    content.OK();
+                }
+                
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                 {
                     _taskService.UpdateTaskStatusToNext(task.TaskNum);
                 }
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                 {
                     if (task.TaskState == (int)TaskOutStatusEnum.AGV_OutExecuting)
                     {
                         _taskService.UpdateTaskStatusToNext(task.TaskNum);
                     }
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
                 {
                     commonConveyorLine.SetValue(ConveyorLineDBName.PutFinish, 1, "LK001");
                     commonConveyorLine.Communicator.WriteNoRead("DB100.0", 9990);
@@ -147,24 +146,23 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
-                {
-                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
-                    {
-                        if (task.Floor == "1F")
-                        {
-                            elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
-                        }
-                        else
-                        {
-                            elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
-                        }
-                        task.TaskState = (int)TaskAcrossFloorStatusEnum.EndAddressExecuting;
-                        _taskRepository.UpdateData(task);
-                    }
-                }
 
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
+                {
+                    if (task.Floor == "1F")
+                    {
+                        elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
+                    }
+                    else
+                    {
+                        elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
+                    }
+                    task.TaskState = (int)TaskAcrossFloorStatusEnum.EndAddressExecuting;
+                    _taskRepository.UpdateData(task);
+                }
+                
+
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                 {
                     commonConveyorLine.SetValue(ConveyorLineDBName.PickUpFinish, 1, "LK001");
                     task.TaskState = (int)TaskOutStatusEnum.AGV_OutExecuting;
@@ -189,42 +187,39 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+
+                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
                 {
-                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
+                    if (task.Floor == "1F")
                     {
-                        if (task.Floor == "1F")
+                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPickUp) == 1)
                         {
-                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPickUp) == 1)
-                            {
-                                _taskService.ContinueAgvTask(task.AGVTaskNum);
-                                content.OK();
-                            }
-                            else
-                            {
-                                task.AGVSign = "RequestPickUp";
-                                _taskRepository.UpdateData(task);
-                                content.Error("璁惧涓嶅厑璁稿彇璐�");
-                            }
+                            _taskService.ContinueAgvTask(task.AGVTaskNum);
+                            content.OK();
                         }
                         else
                         {
-                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPickUp) == 1)
-                            {
-                                _taskService.ContinueAgvTask(task.AGVTaskNum);
-                                content.OK();
-                            }
-                            else
-                            {
-                                task.AGVSign = "RequestPickUp";
-                                _taskRepository.UpdateData(task);
-                                content.Error("璁惧涓嶅厑璁稿彇璐�");
-                            }
+                            task.AGVSign = "RequestPickUp";
+                            _taskRepository.UpdateData(task);
+                            content.Error("璁惧涓嶅厑璁稿彇璐�");
+                        }
+                    }
+                    else
+                    {
+                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPickUp) == 1)
+                        {
+                            _taskService.ContinueAgvTask(task.AGVTaskNum);
+                            content.OK();
+                        }
+                        else
+                        {
+                            task.AGVSign = "RequestPickUp";
+                            _taskRepository.UpdateData(task);
+                            content.Error("璁惧涓嶅厑璁稿彇璐�");
                         }
                     }
                 }
-
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                 {
                     if (commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
                     {
@@ -260,42 +255,39 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+
+                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                 {
-                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
+                    if (task.Floor == "1F")
                     {
-                        if (task.Floor == "1F")
+                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPut) == 1)
                         {
-                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPut) == 1)
-                            {
-                                _taskService.ContinueAgvTask(task.AGVTaskNum);
-                                content.OK();
-                            }
-                            else
-                            {
-                                task.AGVSign = "RequestPut";
-                                _taskRepository.UpdateData(task);
-                                content.Error("璁惧涓嶅厑璁告斁璐�");
-                            }
+                            _taskService.ContinueAgvTask(task.AGVTaskNum);
+                            content.OK();
                         }
                         else
                         {
-                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPut) == 1)
-                            {
-                                _taskService.ContinueAgvTask(task.AGVTaskNum);
-                                content.OK();
-                            }
-                            else
-                            {
-                                task.AGVSign = "RequestPut";
-                                _taskRepository.UpdateData(task);
-                                content.Error("璁惧涓嶅厑璁告斁璐�");
-                            }
+                            task.AGVSign = "RequestPut";
+                            _taskRepository.UpdateData(task);
+                            content.Error("璁惧涓嶅厑璁告斁璐�");
+                        }
+                    }
+                    else
+                    {
+                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPut) == 1)
+                        {
+                            _taskService.ContinueAgvTask(task.AGVTaskNum);
+                            content.OK();
+                        }
+                        else
+                        {
+                            task.AGVSign = "RequestPut";
+                            _taskRepository.UpdateData(task);
+                            content.Error("璁惧涓嶅厑璁告斁璐�");
                         }
                     }
                 }
-
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
                 {
                     if (commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1)
                     {
@@ -323,22 +315,5 @@
 
         #endregion
 
-        #region 鑾峰彇AGV浠诲姟鍙�
-
-        private static readonly Random _random = new Random();
-
-
-        public static string GenerateUniqueId()
-        {
-            // 鑾峰彇褰撳墠姣绾ф椂闂存埑
-            long timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
-
-            // 鐢熸垚4浣嶉殢鏈烘暟锛�0000-9999锛�
-            int randomNumber = _random.Next(0, 10000);
-            string randomPart = randomNumber.ToString("D4"); // 琛ラ浂鍒�4浣�
-
-            return $"{timestamp}{randomPart}";
-        }
-        #endregion
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
index 853bb61..7221859 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
@@ -1,6 +1,7 @@
 锘縰sing HslCommunication;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
 using Quartz;
 using System;
 using System.Collections.Generic;
@@ -39,6 +40,22 @@
 
         public Task Execute(IJobExecutionContext context)
         {
+            var RelocationTask = _taskRepository.QueryData(x => _taskService.TaskAcrossFloorboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskAGVCarryStatusEnum.CarryNew);
+            if (RelocationTask.Count > 0)
+            {
+                foreach (var item in RelocationTask)
+                {
+                    AGVSendTask(item);
+                }
+            }
+
+            var taskCarry = _taskRepository.QueryData(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.CarryNew);
+            #region 鍑哄簱浠诲姟
+
+            AGVOutTask(taskCarry.Where(x => x.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup).ToList());
+            
+            #endregion
+
             #region AGV璺ㄦゼ灞備换鍔�
             var AcrossFloorTask = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.CarryNew);
             if (AcrossFloorTask != null)
@@ -83,16 +100,8 @@
 
             #region AGV鍚屽眰鎼繍浠诲姟
 
-            var CarryTask = _taskRepository.QueryData(x => x.TaskType == (int)TaskAGVCarryTypeEnum.CarryReloction && x.TaskState == (int)TaskAGVCarryStatusEnum.CarryNew);
-            var Carry = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskAGVCarryStatusEnum.CarryNew);
-            if (CarryTask .Count>0)
-            {
-                foreach (var item in CarryTask)
-                {
-                    AGVSendTask(item);
-                }
-            }
 
+            Dt_Task Carry = null;
             if (Carry != null)
             {
                 var task = _taskRepository.QueryFirst(x => x.TaskState > (int)TaskAGVCarryStatusEnum.CarryNew);
@@ -205,6 +214,33 @@
 
             return Task.CompletedTask;
         }
+
+        /// <summary>
+        /// AGV鍑哄簱浠诲姟
+        /// </summary>
+        /// <param name="tasks"></param>
+        public void AGVOutTask(List<Dt_Task> tasks)
+        {
+            if(tasks.Count > 0)
+            {
+                var OutTaskOneFloor = _taskRepository.QueryFirst(x => x.TaskState >= (int)TaskOutStatusEnum.OutNew && x.TaskState < (int)TaskOutStatusEnum.AGV_OutExecuting && x.Floor=="1F");
+                var OutTaskTwoFloor = _taskRepository.QueryFirst(x => x.TaskState >= (int)TaskOutStatusEnum.OutNew && x.TaskState < (int)TaskOutStatusEnum.AGV_OutExecuting && x.Floor=="1F");
+                if(OutTaskOneFloor == null)
+                {
+                    var task = tasks.Where(x => x.Floor == "1F").OrderByDescending(x => x.Grade).FirstOrDefault();
+                    if (task != null)
+                        Relocation(task);
+                }
+                if (OutTaskTwoFloor == null)
+                {
+                    var task = (tasks.Where(x => x.Floor == "2F").OrderBy(x => x.Grade).FirstOrDefault());
+                    if (task != null)
+                        Relocation(task);
+                }
+            }
+        }
+
+
         public void AGVSendTask(Dt_Task task)
         {
             if (task.SourceAddress.Contains("XB001") || task.TargetAddress.Contains("XB001"))
@@ -226,5 +262,75 @@
                 _taskRepository.UpdateData(task);
             }
         }
+
+
+        public void Relocation(Dt_Task? task)
+        {
+            var taskDto = new RequestTaskDto()
+            {
+                Position = task.SourceAddress,
+                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.AGVIsNeedRelocation).FirstOrDefault()?.ConfigValue;
+            if (wmsBasez == null || requestLocation == null)
+            {
+                throw new InvalidOperationException("WMS IP 鏈厤缃�");
+            }
+            var wmsIpAddrss = wmsBasez + requestLocation;
+
+            var result = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
+
+            WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+            if (!content.Status)
+            {
+                task.ExceptionMessage = content.Message;
+                _taskRepository.UpdateData(task);
+                return;
+            }
+
+            // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+            var taskDTO = JsonConvert.DeserializeObject<List<WMSTaskDTO>>(content.Data.ToString());
+            bool IsAddTask = false;
+            foreach (var t in taskDTO)
+            {
+                if (t.TaskNum == task.TaskNum)
+                {
+                    IsAddTask = false;
+                    break;
+                }
+                else
+                {
+                    IsAddTask = true;
+                }
+            }
+            if (IsAddTask)
+                _taskService.ReceiveWMSTask(taskDTO);
+
+            var taskNew = _taskRepository.QueryData(x => _taskService.TaskRelocationboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskAGVCarryStatusEnum.CarryNew);
+            if (taskNew.Count > 0)
+            {
+                if (taskNew[0].Floor == "2F")
+                {
+                    foreach (var item in taskNew.OrderBy(x => x.Grade).ToList())
+                    {
+                        //AGVSendTask(item);
+                    }
+                }
+                else
+                {
+                    foreach (var item in taskNew.OrderByDescending(x => x.Grade).ToList())
+                    {
+                        //AGVSendTask(item);
+                    }
+                }
+            }
+            //AGVSendTask(task);
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json"
index 37c4242..bc74645 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json"
@@ -1071,7 +1071,7 @@
     },
     "@vitejs/plugin-vue": {
       "version": "4.6.2",
-      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+      "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
       "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
       "dev": true
     },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package.json"
index 9716f3c..e0b7039 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package.json"
@@ -39,7 +39,7 @@
     "@rushstack/eslint-patch": "^1.2.0",
     "@types/jsdom": "^21.1.0",
     "@types/node": "^18.14.2",
-    "@vitejs/plugin-vue": "^4.0.0",
+    "@vitejs/plugin-vue": "^4.6.2",
     "@vitejs/plugin-vue-jsx": "^3.0.0",
     "@vue/eslint-config-prettier": "^7.1.0",
     "@vue/eslint-config-typescript": "^11.0.2",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/Order/InboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/Order/InboundOrder.js"
new file mode 100644
index 0000000..4ad3b40
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/Order/InboundOrder.js"
@@ -0,0 +1,59 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+    components: {
+      //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+      gridHeader: '',
+      gridBody: '',
+      gridFooter: '',
+      //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+      modelHeader: '',
+      modelBody: '',
+      modelFooter: ''
+    },
+    tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+    buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+    methods: {
+       //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+      onInit() {  
+        
+      },
+      onInited() {
+        //妗嗘灦鍒濆鍖栭厤缃悗
+        //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+        //this.detailOptions.columns.forEach(column=>{ });
+      },
+      searchBefore(param) {
+        //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+        //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+        return true;
+      },
+      searchAfter(result) {
+        //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+        return true;
+      },
+      addBefore(formData) {
+        //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+        return true;
+      },
+      updateBefore(formData) {
+        //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+        return true;
+      },
+      rowClick({ row, column, event }) {
+        //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+        //this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+      },
+      modelOpenAfter(row) {
+        //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+        //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+        //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+        //(3)this.editFormFields.瀛楁='xxx';
+        //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+        //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+      }
+    }
+  };
+  export default extension;
+  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/erp/stockERP.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/erp/stockERP.js"
new file mode 100644
index 0000000..0c319b9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/erp/stockERP.js"
@@ -0,0 +1,58 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+    components: {
+      //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+      gridHeader: '',
+      gridBody: '',
+      gridFooter: '',
+      //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+      modelHeader: '',
+      modelBody: '',
+      modelFooter: ''
+    },
+    tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+    buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+    methods: {
+       //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+      onInit() {  
+      },
+      onInited() {
+        //妗嗘灦鍒濆鍖栭厤缃悗
+        //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+        //this.detailOptions.columns.forEach(column=>{ });
+      },
+      searchBefore(param) {
+        //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+        //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+        return true;
+      },
+      searchAfter(result) {
+        //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+        return true;
+      },
+      addBefore(formData) {
+        //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+        return true;
+      },
+      updateBefore(formData) {
+        //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+        return true;
+      },
+      rowClick({ row, column, event }) {
+        //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+        //this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+      },
+      modelOpenAfter(row) {
+        //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+        //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+        //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+        //(3)this.editFormFields.瀛楁='xxx';
+        //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+        //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+      }
+    }
+  };
+  export default extension;
+  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx"
index 870425f..c3a7b25 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx"
@@ -27,91 +27,6 @@
     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
     onInit() {
 
-      this.columns.push({
-        title: "鎿嶄綔",
-        field: "鎿嶄綔",
-        width: 150,
-        align: "left", // 'center',
-        render: (h, { row, column, index }) => {
-          return (
-            <div>
-              <el-button
-                onClick={($e) => {
-                  // this.$refs.table.load();
-                  // console.log(this.$refs.table);
-                  this.$refs.gridHeader.open(row);
-                }}
-                type="primary"
-                plain
-                style="height:26px; padding: 10px !important;"
-              >
-                鎵撳嵃
-              </el-button> 
-            </div>
-          );
-        },
-      });
-
-
-
-
-
-
-
-
-
-
-      //妗嗘灦鍒濆鍖栭厤缃墠锛�
-      let OutBoundBtn = this.buttons.find((x) => x.value == 'OutBound')
-      if (OutBoundBtn) {
-        OutBoundBtn.onClick = function () {
-          // this.$Message.success('鐐瑰嚮浜嗘寜閽�')
-          let row = this.$refs.table.getSelected() //鑾峰彇閫変腑鐨勮
-          if (row <= 0) {
-            //濡傛灉娌℃湁閫変腑琛�
-            this.$Message.error('璇烽�夋嫨涓�琛屾暟鎹�')
-            return
-          }
-          let locationCode = row[0].locationCode
-          let palletCode = row[0].palletCode
-          this.http
-            .get(
-              `/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`,
-              {},
-              '姝e湪鍒涘缓浠诲姟'
-            )
-            .then((res) => {
-              //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
-              if (res.status) {
-                this.$Message.success('鍒涘缓浠诲姟鎴愬姛')
-                console.log(res)
-                this.refresh() //鍒锋柊琛ㄦ牸
-              } else {
-                this.$Message.error(res.message) //閿欒鎻愮ず
-              }
-            })
-        }
-      } 
-     
-
-      var btnSupplementationData = this.buttons.find(x => x.value == "SupplementationData");
-            if (btnSupplementationData != null) {
-                btnSupplementationData.onClick = () => {
-                    let rows = this.$refs.table.getSelected();
-                        if (rows.length == 0) {
-                            return this.$error("璇烽�夋嫨鏁版嵁!");
-                        } else if (rows.length > 1) {
-                            return this.$error("鍙兘閫夋嫨鍗曟潯鏁版嵁");
-                        }
-                        this.$refs.gridBody.open(rows[0].palletCode);
-                        this.refresh();
-                    }
-                
-                }
-           
-      //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
-      this.boxOptions.labelWidth = 150
-
       // this.columns.push({
       //   title: "鎿嶄綔",
       //   field: "鎿嶄綔",
@@ -122,58 +37,57 @@
       //       <div>
       //         <el-button
       //           onClick={($e) => {
-      //             this.$refs.gridHeader.openModel1(row);
+      //             // this.$refs.table.load();
+      //             // console.log(this.$refs.table);
+      //             this.$refs.gridHeader.open(row);
       //           }}
       //           type="primary"
       //           plain
       //           style="height:26px; padding: 10px !important;"
       //         >
-      //           鏌ョ湅搴撳瓨鏄庣粏
-      //         </el-button>
+      //           鎵撳嵃
+      //         </el-button> 
       //       </div>
       //     );
       //   },
       // });
 
+      //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+      this.boxOptions.labelWidth = 150
+
+
       this.columns.forEach((column) => {
-        //淇敼棰滆壊
-        if (column.field == 'roadwayNo') {
-          column.formatter = (row) => {
-            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
-            return  row?.locationInfo?.roadwayNo 
-          }
+
+        if (column.field == 'floor') {
+
+            const floorMap = {
+              '1F': '涓�妤�',
+              '2F': '浜屾ゼ',
+            };
+            column.formatter = (row) => {
+              return floorMap[row?.locationInfo?.floor] || '鏈煡妤煎眰'
+            }
         }
-        if (column.field == 'materielCode') {
-          column.formatter = (row) => {
-            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
-            return  row?.stockInfoDetails[0]?.materielCode 
-          }
-        }
-        //鏍煎紡鍖栨棩鏈�
-        // 妫�鏌ュ綋鍓嶅垪鐨勫瓧娈垫槸鍚︿负 'locationStatus'
         if (column.field == 'locationStatus') {
-          // 浣跨敤瀵硅薄瀛楅潰閲忔潵鏄犲皠 'locationStatus' 鐨勫�煎拰瀵瑰簲鐨勬枃鏈�
           const statusMap = {
-            '-1': '鍏ㄩ儴',
             '0': '绌洪棽',
             '1': '閿佸畾',
             '2': '鏈夎揣',
             '3': '鏈夎揣绂佺敤',
             '4': '鏃犺揣绂佺敤'
           };
-          // 瀹氫箟涓�涓牸寮忓寲鍑芥暟锛屾牴鎹� 'locationStatus' 鐨勫�艰繑鍥炵浉搴旂殑鏂囨湰
           column.formatter = (row) => {
-            // 浣跨敤 statusMap 瀵硅薄鏉ヨ幏鍙栧搴旂殑鏂囨湰锛屽鏋滄病鏈夊尮閰嶅垯杩斿洖 '鏈煡鐘舵��'
             return statusMap[row?.locationInfo?.locationStatus] || '鏈煡鐘舵��';
           }
         }
+
       })
     },
     onInited() {
       //妗嗘灦鍒濆鍖栭厤缃悗
       //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-      this.detailOptions.columns.forEach(column=>{ 
-        console.log(column)
+      this.detailOptions.columns.forEach(column => {
+
       });
     },
     searchBefore(param) {
@@ -182,7 +96,7 @@
       return true
     },
     searchAfter(result) {
-     console.log(result)
+      console.log(result)
       return true
     },
     addBefore(formData) {
@@ -198,7 +112,7 @@
       // this.$refs.table.$refs.table.toggleRowSelection(row) //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
     },
     modelOpenAfter(row) {
-   
+
       //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
       //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
       //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/router/tables.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/router/tables.js"
index 893cbf1..37e4820 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/router/tables.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/router/tables.js"
@@ -81,6 +81,18 @@
     component: () => import('@/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue'),
     meta: {
     }
+  },{
+    path: '/stockERP',
+    name: 'stockERP',
+    component: () => import('@/views/widesea_wms/erp/stockERP.vue'),
+    meta: {
+    }
+  },{
+    path: '/InboundOrder',
+    name: 'InboundOrder',
+    component: () => import('@/views/widesea_wms/Order/InboundOrder.vue'),
+    meta: {
+    }
   }
 ]
 export default tables
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/Order/InboundOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/Order/InboundOrder.vue"
new file mode 100644
index 0000000..ddf3a92
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/Order/InboundOrder.vue"
@@ -0,0 +1,96 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/taskinfo/Dt_Task.js姝ゅ缂栧啓
+ -->
+ <template>
+    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+        :table="table" :extend="extend" />
+</template>
+<script>
+import extend from "@/extension/widesea_wms/Order/InboundOrder.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: '',
+            footer: "Foots",
+            cnName: '鍏ュ簱鍗曟嵁',
+            name: '',
+            url: "/InboundOrder/",
+            sortName: ""
+        });
+        const editFormFields = ref({
+            
+        });
+        const editFormOptions = ref([
+        
+        ]);
+        const searchFormFields = ref({
+
+        });
+        const searchFormOptions = ref([
+        [
+                { "title": "璁㈠崟鍞竴鍙�", "field": "printCode", "type": "text" },
+                { "title": "璁㈠崟缂栧彿", "field": "orderNo", "type": "text" },
+                { "title": "闇�姹傚垎绫�", "field": "demandClassification", "type": "text" },
+                { "title": "鍗曟嵁绫诲瀷", "field": "orderType", "type": "text" },
+
+            ],
+            [
+                { "title": "鐗╂枡缂栫爜", "field": "materialNo", type: "text" },
+                { "title": "鐗╂枡鍚嶇О", "field": "materialName", type: "text" },
+                { "title": "琛屽彿", "field": "lineNumber", type: "text" },
+                { "title": "鏃堕棿", "field": "datetime", type: "text" },
+            ],
+            [
+                { "title": "浠撳簱鍚嶇О", "field": "warehouseName", type: "text" },
+                { "title": "鍗曢噸", "field": "weight", type: "text",  },
+                { "title": "瑙勬牸", "field": "specs", type: "text" },
+                { "title": "鏁伴噺", "field": "quantity", type: "text" },
+            ],
+        ]);
+        const columns = ref([
+            { field: 'printCode', title: '璁㈠崟鍞竴鍙�', type: 'string', width: 180, readonly: true, require: true, align: 'left' },
+            { field: 'orderNo', title: '璁㈠崟缂栧彿', type: 'string', width: 180, align: 'left' },
+            { field: 'materialNo', title: '鐗╂枡缂栫爜', type: 'string', width: 180, align: 'left' },
+            { field: 'materialName', title: '鐗╂枡鍚嶇О', type: 'string', width: 180, align: 'left' },
+            { field: 'demandClassification', title: '闇�姹傚垎绫�', type: 'string', width: 180, align: 'left' },
+            { field: 'orderType', title: '鍗曟嵁绫诲瀷', type: 'string', width: 110, align: 'left' },
+            { field: 'warehouseName', title: '浠撳簱鍚嶇О', type: 'string', width: 120, align: 'left' },
+            { field: 'datetime', title: '鏃堕棿', type: 'string', width: 180, align: 'left' },
+            { field: 'lineNumber', title: '琛屽彿', type: 'string', width: 90, align: 'left' },
+            { field: 'productDrawingNumber', title: '鍥惧彿', type: 'string', width: 180, align: 'left' },
+            { field: 'weight', title: '鍗曢噸', type: 'string', width: 90, align: 'left' },
+            { field: 'specs', title: '瑙勬牸', type: 'string', width: 180, align: 'left' },
+            { field: 'unit', title: '鍗曚綅', type: 'string', width: 90, align: 'left' },
+            { field: 'texture', title: '鏉愯川', type: 'string', width: 180, align: 'left' },
+            {field: 'quantity', title: '鏁伴噺', type: 'string', width: 90, align: 'left' },
+            {field: 'orderStatus', title: '璁㈠崟鐘舵��', type: 'string', width: 90, align: 'left' },
+           { field: 'creater', title: '鍒涘缓浜�', type: 'string', width: 180, align: 'left' },
+           { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+           { field: 'modifier', title: '淇敼浜�', type: 'string', width: 180, align: 'left' },
+        { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+    ]);
+        const detail = ref({
+            cnName: "#detailCnName",
+            table: "#detailTable",
+            columns: [],
+            sortName: "",
+            key: ""
+        });
+        return {
+            table,
+            extend,
+            editFormFields,
+            editFormOptions,
+            searchFormFields,
+            searchFormOptions,
+            columns,
+            detail,
+        };
+    },
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/erp/stockERP.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/erp/stockERP.vue"
new file mode 100644
index 0000000..a76b933
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/erp/stockERP.vue"
@@ -0,0 +1,69 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/taskinfo/Dt_Task.js姝ゅ缂栧啓
+ -->
+ <template>
+    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+        :table="table" :extend="extend" />
+</template>
+<script>
+import extend from "@/extension/widesea_wms/erp/stockERP.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: '',
+            footer: "Foots",
+            cnName: 'ERP搴撳瓨',
+            name: '',
+            url: "/stockERP/",
+            sortName: ""
+        });
+        const editFormFields = ref({
+            
+        });
+        const editFormOptions = ref([
+            
+        ]);
+        const searchFormFields = ref({
+        });
+        const searchFormOptions = ref([
+            
+        ]);
+        const columns = ref([
+            { field: '浠撳簱鍚嶇О', title: '浠撳簱鍚嶇О', type: 'string', width: 110, readonly: true, require: true, align: 'left' },
+            { field: '浜у搧鍥惧彿', title: '浜у搧鍥惧彿', type: 'string', width: 180, align: 'left' },
+            { field: '鏂欏彿', title: '鏂欏彿', type: 'string', width: 180, align: 'left' },
+            { field: '鍝佸悕', title: '鍝佸悕', type: 'string', width: 180, align: 'left' },
+            { field: '瑙勬牸', title: '瑙勬牸', type: 'string', width: 180, align: 'left' },
+            { field: '閲囪喘鍗曚綅', title: '閲囪喘鍗曚綅', type: 'string', width: 180, align: 'left' },
+            { field: '鍗曢噸', title: '鍗曢噸', type: 'string', width: 180, align: 'left' },
+            { field: '搴撳瓨鏁伴噺', title: '搴撳瓨鏁伴噺', type: 'string', width: 180, align: 'left' },
+            { field: '鏍规暟', title: '鏍规暟', type: 'string', width: 180, align: 'left' },
+            { field: '鐢ㄥ弸鏉愯川', title: '鐢ㄥ弸鏉愯川', type: 'string', width: 180, align: 'left' },
+            { field: '鎵ц鏍囧噯鍙�', title: '鎵ц鏍囧噯鍙�', type: 'string', width: 180, align: 'left' },
+            { field: '鍝佺墝', title: '鍝佺墝', type: 'string', width: 180, align: 'left' },
+    ]);
+        const detail = ref({
+            cnName: "#detailCnName",
+            table: "#detailTable",
+            columns: [],
+            sortName: "",
+            key: ""
+        });
+        return {
+            table,
+            extend,
+            editFormFields,
+            editFormOptions,
+            searchFormFields,
+            searchFormOptions,
+            columns,
+            detail,
+        };
+    },
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfo.vue"
index 4e275f8..b8fbba9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfo.vue"
@@ -33,23 +33,13 @@
         const searchFormOptions = ref([
             [
                 { "title": "鎵樼洏鏉$爜", "field": "palletCode", type: "text" },
-                { "title": "鐗╂枡缂栧彿", "field": "materielCode", type: "text" },
-                { "title": "搴撳瓨鐘舵��", "field": "status", type: "select", dataKey: "StockState", data: [] },
-                { "title": "缁勭洏绫诲瀷", "field": "groupType", type: "select", dataKey: "GroupType", data: [] },
-            ],
-            [
-            { "title": "鐢熶骇浜х嚎", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
-                
             ]
         ]);
         const columns = ref([
             { field: 'id', title: '搴撳瓨ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
             { field: 'palletCode', title: '鎵樼洏鏉$爜', type: 'string', width: 110, align: 'left', sort: true, link: true, },
             { field: 'locationCode', title: '搴撲綅', type: 'string', width: 110, align: 'left' },
-            { field: 'isFull', title: '鏄惁婊$洏', type: 'bool', width: 110, align: 'left' },
-            // { field: 'state', title: '搴撳瓨鐘舵��', type: 'int', width: 110, align: 'left', bind: { key: "StockState", data: [] } },
             { field: 'remark', title: '澶囨敞', type: 'string', width: 120, align: 'left' },
-            { field: 'productionLine', title: '浜х嚎', type: 'string', width: 70, align: 'left' , bind: { key: "ProductionLine", data: [] } },
             { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'int', sort: true, width: 100, align: 'left' },
         ]);
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue"
index f3a5931..0a0a715 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue"
@@ -25,18 +25,10 @@
             sortName: "createDate"
         });
         const editFormFields = ref({
-            "palletCode": "",
-            "productionLine": "",
-            "outboundTime": "",
-            // "groupType": ""
+
         });
         const editFormOptions = ref([
-            [
-                { "title": "鎵樼洏鏉$爜", "field": "palletCode", type: "text" },
-                { "title": "鐢熶骇浜х嚎", "field": "productionLine", type: "text" },
-                { "title": "搴斿嚭搴撴椂闂�", "field": "outboundTime", type: "datetime" },
-                // { "title": "缁勭洏绫诲瀷", "field": "groupType", type: "select", dataKey: "GroupType", data: [] },
-            ]
+
         ]);
         const searchFormFields = ref({});
         const searchFormOptions = ref([
@@ -49,35 +41,162 @@
                 { "title": "搴撲綅鍙�", "field": "locationCode", type: "text" },
                 { "title": "宸烽亾", "field": "roadwayNo", type: "text" },
                 { "title": "璐т綅鐘舵��", "field": "locationStatus", type: "select", dataKey: "LocationState", data: [] },
-                { "title": "鐗╂枡缂栫爜", "field": "materielCode", type: "text"},
+                { "title": "鐗╂枡缂栫爜", "field": "materielCode", type: "text" },
             ]
         ]);
         const columns = ref(
             [{ field: 'id', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
+            { field: 'palletCode', title: '鎵樼洏鏉$爜', type: 'string', width: 110, align: 'left', link: true, },
             { field: 'locationCode', title: '搴撲綅', type: 'string', width: 100, align: 'left', },
-            { field: 'palletCode', title: '鎵樼洏鏉$爜', type: 'string', width: 110, align: 'left', },
-            { field: 'isFull', title: '搴撳瓨绫诲瀷', type: 'bool', width: 60, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '绌虹洏' }, { key: true, value: '瀹炵洏' }] }, },
-            { field: 'linedProcessFeedbackTime', title: '宸ヨ壓寮�濮嬫椂闂�', type: 'string', width: 110, align: 'left', },
-            { field: 'roadwayNo', title: '宸烽亾', type: 'string', width: 60, align: 'left', sort: true },
-            { field: 'materielCode', title: '鐗╂枡缂栫爜', type: 'string', width: 90, align: 'left', sort: true },
             { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 60, align: 'left', bind: { key: "LocationState", data: [] } },
-            { field: 'specialParameterDuration', title: '宸ヨ壓鏃堕暱', type: 'string', width: 60, align: 'left', sort: true },
-            { field: 'outboundTime', title: '搴斿嚭搴撴椂闂�', type: 'string', width: 110, align: 'left', sort: true },
-            { field: 'productionLine', title: '鐢熶骇浜х嚎', type: 'string', width: 60, align: 'left', bind: { key: "ProductionLine", data: [] }  },
-            { field: 'areaCode', title: '搴撳尯', type: 'string', width: 60, align: 'left', bind: { key: "AreaType", data: [] } },
-            { field: 'remark', title: '鐢佃姱鏁伴噺', type: 'string', width: 60, align: 'left', },
+            { field: 'floor', title: '妤煎眰', type: 'int', width: 60, align: 'left', bind: { key: "Floor", data: [] } },
+            { field: 'remark', title: '澶囨敞', type: 'string', width: 60, align: 'left', },
             { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left', hidden: true },
             { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', },
             { field: 'modifier', title: '鏈�鍚庝慨鏀逛汉', type: 'string', sort: true, width: 100, hidden: true, align: 'left' },
-                // { field: 'modifyDate', title: '鏈�鍚庝慨鏀规椂闂�', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
             ]
         );
         const detail = ref({
-            cnName: "#detailCnName",
-            table: "#detailTable",
-            columns: [],
-            sortName: "",
-            key: ""
+            cnName: "搴撳瓨鏄庣粏淇℃伅",
+            table: "StockInfoDetails",
+            columns: [
+                {
+                    field: "id",
+                    title: "Id",
+                    type: "int",
+                    width: 90,
+                    hidden: true,
+                    readonly: true,
+                    require: true,
+                    align: "left",
+                },
+                {
+                    field: "stockId",
+                    title: "搴撳瓨淇℃伅涓婚敭",
+                    type: "string",
+                    width: 90,
+                    align: "left",
+                    hidden: true,
+                },
+                {
+                    field: "materielCode",
+                    title: "鐗╂枡缂栧彿",
+                    type: "string",
+                    width: 150,
+                    align: "left",
+                },
+                {
+                    field: "materielName",
+                    title: "鐗╂枡鍚嶇О",
+                    type: "string",
+                    width: 150,
+                    align: "left",
+                },
+                {
+                    field: "orderNo",
+                    title: "鍗曟嵁缂栧彿",
+                    type: "decimal",
+                    width: 180,
+                    align: "left",
+                },
+                {
+                    field: "warehouse",
+                    title: "浠撳簱鍚嶇О",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "quantity",
+                    title: "鏁伴噺",
+                    type: "int",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "unit",
+                    title: "鍗曚綅",
+                    type: "int",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "specs",
+                    title: "瑙勬牸",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "weight",
+                    title: "鍗曢噸",
+                    type: "string",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "drawingNumber",
+                    title: "鍥惧彿",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "date",
+                    title: "鏃ユ湡",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "status",
+                    title: "搴撳瓨鏄庣粏鐘舵��",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                    hidden:true,
+                },
+                {
+                    field: "creater",
+                    title: "鍒涘缓浜�",
+                    type: "string",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "createDate",
+                    title: "鍒涘缓鏃堕棿",
+                    type: "datetime",
+                    width: 160,
+                    align: "left",
+                },
+                {
+                    field: "modifier",
+                    title: "淇敼浜�",
+                    type: "string",
+                    width: 100,
+                    align: "left",
+                    hidden:true,
+                },
+                {
+                    field: "modifyDate",
+                    title: "淇敼鏃堕棿",
+                    type: "datetime",
+                    width: 160,
+                    align: "left",
+                    hidden:true,
+                },
+                {
+                    field: "remark",
+                    title: "澶囨敞",
+                    type: "string",
+                    width: 100,
+                    align: "left",
+                    hidden:true,
+                },
+            ],
+            sortName: "id",
+            key: "id",
         });
         return {
             table,
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue"
index 2496905..fb026f0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue"
@@ -5,7 +5,7 @@
  *涓氬姟璇峰湪@/extension/widesea_wms/stock/Dt_BillGroupStock.js姝ゅ缂栧啓
  -->
 
-<template>
+ <template>
     <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
         :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
         :table="table" :extend="extend">
@@ -19,24 +19,16 @@
         const table = ref({
             key: 'id',
             footer: "Foots",
-            cnName: '搴撳瓨鍘嗗彶淇℃伅',
+            cnName: '搴撳瓨淇℃伅',
             name: 'stock/Dt_BillGroupStock_Hty',
             url: "/StockInfoHty/",
             sortName: "createDate"
         });
         const editFormFields = ref({
-            "palletCode": "",
-            "productionLine": "",
-            "outboundTime": "",
-            // "groupType": ""
+
         });
         const editFormOptions = ref([
-            [
-                { "title": "鎵樼洏鏉$爜", "field": "palletCode", type: "text" },
-                { "title": "鐢熶骇浜х嚎", "field": "productionLine", type: "text" },
-                { "title": "搴斿嚭搴撴椂闂�", "field": "outboundTime", type: "datetime" },
-                // { "title": "缁勭洏绫诲瀷", "field": "groupType", type: "select", dataKey: "GroupType", data: [] },
-            ]
+
         ]);
         const searchFormFields = ref({});
         const searchFormOptions = ref([
@@ -48,35 +40,161 @@
             ], [
                 { "title": "搴撲綅鍙�", "field": "locationCode", type: "text" },
                 { "title": "宸烽亾", "field": "roadwayNo", type: "text" },
-                { "title": "鐗╂枡缂栫爜", "field": "materielCode", type: "text"},
+                { "title": "璐т綅鐘舵��", "field": "locationStatus", type: "select", dataKey: "LocationState", data: [] },
+                { "title": "鐗╂枡缂栫爜", "field": "materielCode", type: "text" },
             ]
         ]);
         const columns = ref(
             [{ field: 'id', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
+            { field: 'palletCode', title: '鎵樼洏鏉$爜', type: 'string', width: 110, align: 'left', link: true, },
             { field: 'locationCode', title: '搴撲綅', type: 'string', width: 100, align: 'left', },
-            { field: 'palletCode', title: '鎵樼洏鏉$爜', type: 'string', width: 110, align: 'left', },
-            { field: 'isFull', title: '搴撳瓨绫诲瀷', type: 'bool', width: 60, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '绌虹洏' }, { key: true, value: '瀹炵洏' }] }, },
-            { field: 'linedProcessFeedbackTime', title: '宸ヨ壓寮�濮嬫椂闂�', type: 'string', width: 110, align: 'left', },
-            { field: 'roadwayNo', title: '宸烽亾', type: 'string', width: 60, align: 'left', sort: true },
-            { field: 'materielCode', title: '鐗╂枡缂栫爜', type: 'string', width: 90, align: 'left', sort: true },
-            // { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 60, align: 'left', bind: { key: "LocationState", data: [] } },
-            { field: 'specialParameterDuration', title: '宸ヨ壓鏃堕暱', type: 'string', width: 60, align: 'left', sort: true },
-            { field: 'outboundTime', title: '搴斿嚭搴撴椂闂�', type: 'string', width: 110, align: 'left', sort: true },
-            { field: 'productionLine', title: '鐢熶骇浜х嚎', type: 'string', width: 60, align: 'left', bind: { key: "ProductionLine", data: [] }  },
-            { field: 'areaCode', title: '搴撳尯', type: 'string', width: 60, align: 'left', bind: { key: "AreaType", data: [] } },
-            { field: 'remark', title: '鐢佃姱鏁伴噺', type: 'string', width: 60, align: 'left', },
-            { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
+            { field: 'remark', title: '澶囨敞', type: 'string', width: 60, align: 'left', },
+            { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left', hidden: true },
             { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', },
             { field: 'modifier', title: '鏈�鍚庝慨鏀逛汉', type: 'string', sort: true, width: 100, hidden: true, align: 'left' },
-                // { field: 'modifyDate', title: '鏈�鍚庝慨鏀规椂闂�', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
             ]
         );
         const detail = ref({
-            cnName: "#detailCnName",
-            table: "#detailTable",
-            columns: [],
-            sortName: "",
-            key: ""
+            cnName: "搴撳瓨鏄庣粏淇℃伅",
+            table: "StockInfoDetails",
+            columns: [
+                {
+                    field: "id",
+                    title: "Id",
+                    type: "int",
+                    width: 90,
+                    hidden: true,
+                    readonly: true,
+                    require: true,
+                    align: "left",
+                },
+                {
+                    field: "stockId",
+                    title: "搴撳瓨淇℃伅涓婚敭",
+                    type: "string",
+                    width: 90,
+                    align: "left",
+                    hidden: true,
+                },
+                {
+                    field: "materielCode",
+                    title: "鐗╂枡缂栧彿",
+                    type: "string",
+                    width: 150,
+                    align: "left",
+                },
+                {
+                    field: "materielName",
+                    title: "鐗╂枡鍚嶇О",
+                    type: "string",
+                    width: 150,
+                    align: "left",
+                },
+                {
+                    field: "orderNo",
+                    title: "鍗曟嵁缂栧彿",
+                    type: "decimal",
+                    width: 180,
+                    align: "left",
+                },
+                {
+                    field: "warehouse",
+                    title: "浠撳簱鍚嶇О",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "quantity",
+                    title: "鏁伴噺",
+                    type: "int",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "unit",
+                    title: "鍗曚綅",
+                    type: "int",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "specs",
+                    title: "瑙勬牸",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "weight",
+                    title: "鍗曢噸",
+                    type: "string",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "drawingNumber",
+                    title: "鍥惧彿",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "date",
+                    title: "鏃ユ湡",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                },
+                {
+                    field: "status",
+                    title: "搴撳瓨鏄庣粏鐘舵��",
+                    type: "string",
+                    width: 120,
+                    align: "left",
+                    hidden:true,
+                },
+                {
+                    field: "creater",
+                    title: "鍒涘缓浜�",
+                    type: "string",
+                    width: 90,
+                    align: "left",
+                },
+                {
+                    field: "createDate",
+                    title: "鍒涘缓鏃堕棿",
+                    type: "datetime",
+                    width: 160,
+                    align: "left",
+                },
+                {
+                    field: "modifier",
+                    title: "淇敼浜�",
+                    type: "string",
+                    width: 100,
+                    align: "left",
+                    hidden:true,
+                },
+                {
+                    field: "modifyDate",
+                    title: "淇敼鏃堕棿",
+                    type: "datetime",
+                    width: 160,
+                    align: "left",
+                    hidden:true,
+                },
+                {
+                    field: "remark",
+                    title: "澶囨敞",
+                    type: "string",
+                    width: 100,
+                    align: "left",
+                    hidden:true,
+                },
+            ],
+            sortName: "id",
+            key: "id",
         });
         return {
             table,
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 8e48c50..e97973c 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 0387628..cc43f81 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 0ede793..18adff1 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 71da3d0..224c4f1 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 55ced8c..98ac026 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 4c3c870..b412592 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 8ff876e..720f513 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,32 +3,28 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
-      "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\\stock\\stockinfohtyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\stock\\stockinfohtyservice.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\\stock\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\stock\\stockinfoservice.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:{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\\order\\inboundordercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\order\\inboundordercontroller.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\\enums\\manageenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\manageenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_model\\models\\order\\dt_inboundorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\order\\dt_inboundorder.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\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\filter\\customprofile.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\\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:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\aspnetcoreschedule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\aspnetcoreschedule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -38,96 +34,85 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 4,
+          "SelectedChildIndex": 5,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 5,
-              "Title": "CustomProfile.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvxYAAAApAAAAAAAAAA==",
+              "DocumentIndex": 4,
+              "Title": "Dt_InboundOrder.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "RelativeToolTip": "WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "ViewState": "AgIAACAAAAAAAAAAAAA2wEAAAAA9AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-14T08:51:32.158Z"
-            },
-            {
-              "$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": "AgIAACcAAAAAAAAAAAAjwDoAAAAZAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-14T07:36:33.735Z",
+              "WhenOpened": "2025-10-20T07:20:00.697Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 3,
-              "Title": "ManageEnum.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "ViewState": "AgIAABIAAAAAAAAAAAAMwCYAAAAIAAAAAAAAAA==",
+              "Title": "InboundOrderController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-14T07:30:08.5Z",
+              "WhenOpened": "2025-10-20T07:19:18.11Z",
               "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",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
-              "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-10-11T07:35:46.539Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "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": "AgIAAHQAAAAAAAAAAAApwIoAAABFAAAAAAAAAA==",
+              "DocumentIndex": 5,
+              "Title": "AspNetCoreSchedule.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "RelativeToolTip": "WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "ViewState": "AgIAAFUAAAAAAAAAAAAUwHkAAAArAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-13T01:01:30.714Z",
+              "WhenOpened": "2025-10-20T04:05:33.05Z",
               "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
-              "Title": "Program.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Program.cs",
-              "ViewState": "AgIAAGsAAAAAAAAAAAD4v38AAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T06:51:04.096Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 1,
+              "Title": "StockInfoService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ViewState": "AgIAAFQAAAAAAAAAAAArwF4AAAAMAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-20T06:49:04.252Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
               "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": "AgIAAOoBAAAAAAAAAAAAAD0CAABpAAAAAAAAAA==",
+              "ViewState": "AgIAAOMEAAAAAAAAAAAjwP0EAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:08:03.698Z",
               "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "StockInfoHtyService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs*",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs*",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAABAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-20T08:32:19.147Z",
+              "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 5b8b451..e8c1fcc 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,32 +3,36 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
-      "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:{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:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_core\\enums\\manageenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\manageenum.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\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\filter\\customprofile.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\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\system\\sys_dictionarycontroller.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\\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:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\stock\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\stock\\stockinfoservice.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\\stock\\stockinfohtyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\stock\\stockinfohtyservice.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\\order\\inboundordercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\order\\inboundordercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_model\\models\\order\\dt_inboundorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\order\\dt_inboundorder.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\\aspnetcoreschedule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\aspnetcoreschedule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -38,96 +42,111 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 6,
+          "SelectedChildIndex": 0,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 5,
-              "Title": "CustomProfile.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvxYAAAApAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-14T08:51:32.158Z"
-            },
-            {
-              "$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": "AgIAACcAAAAAAAAAAAAjwDoAAAAZAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-14T07:36:33.735Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "ManageEnum.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "RelativeToolTip": "WIDESEA_Core\\Enums\\ManageEnum.cs",
-              "ViewState": "AgIAABIAAAAAAAAAAAAMwCYAAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-14T07:30:08.5Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 0,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
               "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAA+AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-10-11T07:35:46.539Z",
+              "WhenOpened": "2025-10-20T08:45:46.026Z",
               "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": "AgIAAHQAAAAAAAAAAAApwIoAAABFAAAAAAAAAA==",
+              "Title": "Sys_DictionaryController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\System\\Sys_DictionaryController.cs",
+              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\System\\Sys_DictionaryController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\System\\Sys_DictionaryController.cs",
+              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\System\\Sys_DictionaryController.cs",
+              "ViewState": "AgIAAE0AAAAAAAAAAAAkwFcBAAAmAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-13T01:01:30.714Z",
+              "WhenOpened": "2025-10-20T08:43:38.865Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 6,
-              "Title": "Program.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Program.cs",
-              "ViewState": "AgIAAGsAAAAAAAAAAAD4v38AAAAAAAAAAAAAAA==",
+              "Title": "Dt_InboundOrder.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "RelativeToolTip": "WIDESEA_Model\\Models\\Order\\Dt_InboundOrder.cs",
+              "ViewState": "AgIAACAAAAAAAAAAAAA2wEAAAAA9AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-10T06:51:04.096Z"
+              "WhenOpened": "2025-10-20T07:20:00.697Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 5,
+              "Title": "InboundOrderController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-20T07:19:18.11Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "AspNetCoreSchedule.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "RelativeToolTip": "WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
+              "ViewState": "AgIAAFUAAAAAAAAAAAAUwHkAAAArAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-20T04:05:33.05Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "StockInfoService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ViewState": "AgIAAFQAAAAAAAAAAAArwGsAAACTAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-20T06:49:04.252Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
               "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": "AgIAAOQAAAAAAAAAAAAhwP4AAAAhAAAAAAAAAA==",
+              "ViewState": "AgIAAOMEAAAAAAAAAAAjwP0EAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:08:03.698Z",
               "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "StockInfoHtyService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Stock\\StockInfoHtyService.cs",
+              "ViewState": "AgIAAB4AAAAAAAAAAAAIwBIAAABAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-20T08:32:19.147Z",
+              "EditorCaption": ""
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Common/StatusChangeType/StatusChangeTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Common/StatusChangeType/StatusChangeTypeEnum.cs"
index 8bfdf7a..736afe7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Common/StatusChangeType/StatusChangeTypeEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Common/StatusChangeType/StatusChangeTypeEnum.cs"
@@ -8,18 +8,24 @@
         /// 鑷姩鍏ュ簱
         /// </summary>
         [Description("鑷姩鍏ュ簱")]
-        AutomaticStorage = 1,
+        AutomaticInbound = 1,
 
         /// <summary>
         /// 鑷姩鍑哄簱
         /// </summary>
         [Description("鑷姩鍑哄簱")]
-        AutomaticDelivery = 2,
+        AutomaticOutbound = 2,
+
+        /// <summary>
+        /// 鑷姩绉诲簱
+        /// </summary>
+        [Description("鑷姩绉诲簱")]
+        AutomaticRelocation = 3,
 
         /// <summary>
         /// 浜哄伐鎿嶄綔
         /// </summary>
         [Description("浜哄伐鎿嶄綔")]
-        ManualOperation = 3
+        ManualOperation = 4
     }
 }
\ 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_Core/BaseModels/PageDataOptions.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs"
index bffe798..a476723 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs"
@@ -1,8 +1,12 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Core.Enums;
+using WIDESEA_Core.Helper;
+using WIDESEA_Core.Utilities;
 
 namespace WIDESEA_Core
 {
@@ -24,6 +28,69 @@
         /// 鏌ヨ鏉′欢
         /// </summary>
         public List<SearchParameters> Filter { get; set; }
+        public string ValidatePageOptions(PropertyInfo[] entityProperties)
+        {
+            string where = string.Empty;
+            List<SearchParameters> searchParametersList = new List<SearchParameters>();
+            if (this.Filter != null && this.Filter.Count > 0)
+            {
+                searchParametersList.AddRange(Filter);
+            }
+            else if (!string.IsNullOrEmpty(Wheres))
+            {
+                try
+                {
+                    searchParametersList = Wheres.DeserializeObject<List<SearchParameters>>();
+                    Filter = searchParametersList;
+                }
+                catch { }
+            }
+            for (int i = 0; i < searchParametersList.Count; i++)
+            {
+                if (string.IsNullOrEmpty(searchParametersList[i].Value))
+                {
+                    continue;
+                }
+
+                PropertyInfo? property = entityProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
+
+                if (property == null) continue;
+
+                List<(bool, string, object)> results = property.ValidationValueForDbType(searchParametersList[i].Value.Split(',')).ToList();
+                if (results == null || results.Count() == 0)
+                {
+                    continue;
+                }
+                for (int j = 0; j < results.Count(); j++)
+                {
+                    if (j == 0)
+                    {
+                        where += "(";
+                    }
+                    LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
+                    if (expressionType == LinqExpressionType.Equal)
+                    {
+                        where += $"{searchParametersList[i].Name} = '{results[j].Item3}'";
+                    }
+                    else
+                    {
+                        where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{results[j].Item3}'";
+                    }
+
+                    if (j == results.Count() - 1)
+                    {
+                        where += ")";
+                    }
+                    else
+                    {
+                        where += " or ";
+                    }
+                }
+                if (i < searchParametersList.Count - 1)
+                    where += " and ";
+            }
+            return where;
+        }
     }
     public class SearchParameters
     {
@@ -32,4 +99,5 @@
         //鏌ヨ绫诲瀷锛歀inqExpressionType
         public string DisplayType { get; set; }
     }
+
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/MainDb.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/MainDb.cs"
index 2909548..46ad8b6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/MainDb.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/MainDb.cs"
@@ -12,6 +12,7 @@
         public const string CurrentDbConnId = "WIDESEA";
         public const string ConnectionString = "ConnectionString";
         public const string ConnectionStringWCS = "ConnectionStringWCS";
+        public const string ConnectionStringERP = "ConnectionStringERP";
         public const string Connection = "Connection";
         public const string TenantTableName = "Sys_Tenant";
         public const string TenantStatus = "Status";
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 79c37b5..6a150d2 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"
@@ -103,34 +103,10 @@
         Inbound = 200,
 
         /// <summary>
-        /// 鐩樼偣鍏ュ簱
+        /// 鍏朵粬鍏ュ簱
         /// </summary>
-        [Description("鐩樼偣鍏ュ簱")]
-        InInventory = 201,
-
-        /// <summary>
-        /// 鍒嗘嫞鍏ュ簱
-        /// </summary>
-        [Description("鍒嗘嫞鍏ュ簱")]
-        InPick = 202,
-
-        /// <summary>
-        /// 璐ㄦ鍏ュ簱
-        /// </summary>
-        [Description("璐ㄦ鍏ュ簱")]
-        InQuality = 203,
-
-        /// <summary>
-        /// 绌烘墭鐩樺叆搴�
-        /// </summary>
-        [Description("绌烘墭鐩樺叆搴�")]
-        InTray = 204,
-
-        /// <summary>
-        /// NG鍏ュ簱
-        /// </summary>
-        [Description("NG鍏ュ簱")]
-        InNG = 205,
+        [Description("鍏朵粬鍏ュ簱")]
+        InOther = 205,
     }
 
     public enum TaskOutboundTypeEnum
@@ -142,46 +118,22 @@
         Outbound = 100,
 
         /// <summary>
-        /// 鐩樼偣鍑哄簱
+        /// 璋冩嫧鍑哄簱
         /// </summary>
-        [Description("鐩樼偣鍑哄簱")]
-        OutInventory = 101,
+        [Description("璋冩嫧鍑哄簱")]
+        OutAllocate = 105,
 
         /// <summary>
-        /// 鍒嗘嫞鍑哄簱
+        /// 鍏朵粬鍑哄簱
         /// </summary>
-        [Description("鍒嗘嫞鍑哄簱")]
-        OutPick = 102,
+        [Description("鍏朵粬鍑哄簱")]
+        OutOther = 110,
 
         /// <summary>
-        /// 璐ㄦ鍑哄簱
+        /// 鍙枡鍑哄簱
         /// </summary>
-        [Description("璐ㄦ鍑哄簱")]
-        OutQuality = 103,
-
-        /// <summary>
-        /// 绌烘墭鐩樺嚭搴�
-        /// </summary>
-        [Description("绌烘墭鐩樺嚭搴�")]
-        OutTray = 104,
-
-        /// <summary>
-        /// NG鍑哄簱
-        /// </summary>
-        [Description("NG鍑哄簱")]
-        OutNG = 105,
-
-        /// <summary>
-        /// 鐩存帴鍑哄簱
-        /// </summary>
-        [Description("鐩存帴鍑哄簱")]
-        InToOut = 106,
-
-        /// <summary>
-        /// 鐏鍑哄簱
-        /// </summary>
-        [Description("鐏鍑哄簱")]
-        OutFireAlarm = 500,
+        [Description("鍙枡鍑哄簱")]
+        OutCall = 115,
     }
 
     public enum TaskRelocationTypeEnum
@@ -434,6 +386,14 @@
 
     #endregion
 
+    #region 鍏朵粬鐘舵��
+    public enum TaskOtherStateEnum
+    {
+
+    }
+
+    #endregion
+
     #region 绉诲簱鐘舵��
     public enum TaskRelocationStatusEnum
     {
@@ -456,6 +416,18 @@
         SC_RelocationFinish = 315,
 
         /// <summary>
+        /// AGV绉诲簱鎵ц涓�
+        /// </summary>
+        [Description("AGV绉诲簱鎵ц涓�")]
+        AGV_RelocationExecuting = 320,
+
+        /// <summary>
+        /// AGV绉诲簱瀹屾垚
+        /// </summary>
+        [Description("AGV绉诲簱瀹屾垚")]
+        AGV_RelocationFinish = 325,
+
+        /// <summary>
         /// 绉诲簱浠诲姟瀹屾垚
         /// </summary>
         [Description("绉诲簱浠诲姟瀹屾垚")]
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 a789bf8..bee5f32 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"
@@ -46,6 +46,37 @@
                 throw new NotImplementedException();
             }
         }
+        public static TaskStateGroup GetTaskStateGroup(this int taskState)
+        {
+            if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
+            {
+                return TaskStateGroup.OutbondGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.InboundGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskRelocationStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.RelocationGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskOtherStateEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.OtherGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskAGVCarryStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.CarryGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskAcrossFloorStatusEnum>(taskState.ToString()).ToString(), out result))
+            {
+                return TaskStateGroup.AcrossFloorGroup;
+            }
+            else
+            {
+                throw new NotImplementedException();
+            }
+        }
 
         public static int GetNextNotCompletedStatus<T>(this int currentStatus) where T : Enum
         {
@@ -80,4 +111,13 @@
         CarryGroup,
         AcrossFloorGroup
     }
+    public enum TaskStateGroup
+    {
+        InboundGroup,
+        OutbondGroup,
+        RelocationGroup,
+        OtherGroup,
+        CarryGroup,
+        AcrossFloorGroup,
+    }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/SqlSugarHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/SqlSugarHelper.cs"
index 5d304cd..d3e821f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/SqlSugarHelper.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/SqlSugarHelper.cs"
@@ -15,17 +15,26 @@
         //濡傛灉鏄浐瀹氬搴撳彲浠ヤ紶 new SqlSugarScope(List<ConnectionConfig>,db=>{}) 鏂囨。锛氬绉熸埛
         //濡傛灉鏄笉鍥哄畾澶氬簱 鍙互鐪嬫枃妗aas鍒嗗簱
         //鐢ㄥ崟渚嬫ā寮�
-        public static SqlSugarScope DbWCS = new SqlSugarScope(new ConnectionConfig()
+      //  public static SqlSugarScope DbWCS = new SqlSugarScope(new ConnectionConfig()
+      //  {
+      //      //ConnectionString = DBContext.GetMainConnectionDb().Connection,
+      //      ConnectionString = AppSettings.app(MainDb.ConnectionStringWCS),
+      //      DbType = DbType.SqlServer,//鏁版嵁搴撶被鍨�
+      //      IsAutoCloseConnection = true //涓嶈鎴恡rue瑕佹墜鍔╟lose
+      //  },
+      //db =>
+      //    { 
+      //    });
+        public static SqlSugarScope DBERP = new SqlSugarScope(new ConnectionConfig()
         {
             //ConnectionString = DBContext.GetMainConnectionDb().Connection,
-            ConnectionString = AppSettings.app(MainDb.ConnectionStringWCS),
+            ConnectionString = AppSettings.app(MainDb.ConnectionStringERP),
             DbType = DbType.SqlServer,//鏁版嵁搴撶被鍨�
             IsAutoCloseConnection = true //涓嶈鎴恡rue瑕佹墜鍔╟lose
         },
       db =>
-          { 
-          });
-
+      {
+      });
         public static SqlSugarScope DbWMS = new SqlSugarScope(new ConnectionConfig()
         {
             ConnectionString = DBContext.GetMainConnectionDb().Connection,
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs"
index 367eda1..04a4233 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs"
@@ -125,6 +125,15 @@
             }
             return SqlDbTypeName.NVarChar;
         }
+        public static List<(bool, string, object)> ValidationValueForDbType(this PropertyInfo propertyInfo, params object[] values)
+        {
+            List<(bool, string, object)> result = new List<(bool, string, object)>();
+            foreach (object value in values)
+            {
+                result.Add(propertyInfo.ValidationVal(value));
+            }
+            return result;
+        }
 
         public static string ValidateDicInEntity(this Type typeinfo, List<Dictionary<string, object>> dicList, bool removerKey, string[] ignoreFields = null)
         {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/AddBoxingDto.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/AddBoxingDto.cs"
new file mode 100644
index 0000000..3e7b39b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/AddBoxingDto.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.Basic
+{
+    public class AddBoxingDto
+    {
+        public string palletCode { get; set; }
+
+        public List<string> OrderNos { get; set; }
+    }
+}
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 1d6a747..43dcb4f 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"
@@ -18,13 +18,21 @@
     public string TargetAddress { get; set; }
 
     /// <summary>
-    /// 浠诲姟绫诲瀷
+    /// 鍖哄煙
     /// </summary>
-    public string RequestType { get; set; } = string.Empty;
 
     public int AreaId { get; set; }
 
+    /// <summary>
+    /// 浠诲姟鍙�
+    /// </summary>
+
     public int TaskNum { get; set; }
+
+    /// <summary>
+    /// 浠诲姟绫诲瀷 
+    /// </summary>
+    public int TaskType { get; set; }
 
 }
 public class RequestAcrossFloorTaskDto
@@ -47,9 +55,21 @@
 
 public class RequestOutTaskDto
 {
+    /// <summary>
+    /// 褰撳墠浣嶇疆
+    /// </summary>
     public string Position { get; set; }
-    public int Tag { get; set; }
-    public string AreaCdoe { get; set; }
-    public List<string> AreaCdoes { get; set; }
-    public string ProductionLine { get; set; }
+
+    /// <summary>
+    /// 鎵樼洏鍙�
+    /// </summary>
+    public string PalletCode { get; set; }
+
+    /// <summary>
+    /// 缁堢偣
+    /// </summary>
+    public string TargetAddress { get; set; }
+
+
+    public int AreaId { get; set; }
 }
\ 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_DTO/ERP/Basic.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/Basic.cs"
new file mode 100644
index 0000000..7140162
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/Basic.cs"
@@ -0,0 +1,363 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.ERP
+{
+    /// <summary>
+    /// U9涓婁笅鏂囦俊鎭�
+    /// </summary>
+    public class Context
+    {
+        /// <summary>
+        /// 璇
+        /// </summary>
+        public string CultureName { get; set; }="zh-CN";
+
+        /// <summary>
+        /// 浼佷笟缂栫爜
+        /// </summary>
+        public string EntCode { get; set; } = "001";
+
+        /// <summary>
+        /// 缁勭粐缂栫爜
+        /// </summary>
+        public string OrgCode { get; set; } = "102";
+
+        /// <summary>
+        /// 鐢ㄦ埛缂栫爜
+        /// </summary>
+        public string UserCode { get; set; } = "MH0551";
+    }
+
+    public class Respone
+    {
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public bool ResultStatus { get; set; }
+
+        /// <summary>
+        /// 杩斿洖淇℃伅
+        /// </summary>
+        public string ResultMsg { get; set; }
+
+        /// <summary>
+        /// 鍗曞彿
+        /// </summary>
+        public string DocNo { get; set; }
+    }
+
+    /// <summary>
+    /// 棰嗘枡鏄庣粏
+    /// </summary>
+    public class issueList
+    {
+        /// <summary>
+        /// 澶囨枡鏄庣粏ID
+        /// </summary>
+        public string PickListID { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍鍦扮偣缂栫爜
+        /// </summary>
+        public string WhCode { get; set; }
+
+        /// <summary>
+        /// 棰嗘枡鏁伴噺
+        /// </summary>
+        public string IssueQty { get; set; }
+    }
+
+    /// <summary>
+    /// 鐢熶骇棰嗘枡
+    /// </summary>
+    public class MaterialRequisition
+    {
+        public Context context { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷缂栫爜
+        /// </summary>
+        public string documentTypeCode { get; set; }
+
+        /// <summary>
+        /// 涓氬姟鏃ユ湡
+        /// </summary>
+        public string businessDate { get; set; }
+
+        /// <summary>
+        /// 棰嗘枡鏄庣粏
+        /// </summary>
+        public List<issueList> issueList { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹℃牳
+        /// </summary>
+        public bool isApproved { get; set; }
+
+    }
+
+    /// <summary>
+    /// 鏉傚彂鏄庣粏
+    /// </summary>
+    public class miscShipList
+    {
+        /// <summary>
+        /// 鏂欏搧缂栫爜
+        /// </summary>
+        public string ItemCode { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍鍦扮偣
+        /// </summary>
+        public string WhCode { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public string Qty { get; set; }
+
+        /// <summary>
+        /// 鍙楃泭閮ㄩ棬缂栧彿
+        /// </summary>
+        public string BenefitDeptCode { get; set; }
+    }
+
+    /// <summary>
+    /// 鏉傚彂
+    /// </summary>
+    public class MixedSend
+    {
+        public Context context { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷缂栫爜
+        /// </summary>
+        public string documentTypeCode { get; set; }
+
+        /// <summary>
+        /// 涓氬姟鏃ユ湡
+        /// </summary>
+        public string businessDate { get; set; }
+
+        /// <summary>
+        /// 鏉傚彂鏄庣粏
+        /// </summary>
+        public List<miscShipList> miscShipList { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹℃牳
+        /// </summary>
+        public bool isApproved { get; set; }
+    }
+
+    /// <summary>
+    /// 鏉傛敹鏄庣粏
+    /// </summary>
+    public class miscRcvList
+    {
+        /// <summary>
+        /// 鏂欏搧缂栫爜
+        /// </summary>
+        public string ItemCode { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍鍦扮偣
+        /// </summary>
+        public string WhCode { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public string Qty { get; set; }
+
+        /// <summary>
+        /// 鎴愭湰鍗曚环
+        /// </summary>
+        public string CostPrice { get; set; }
+    }
+
+    /// <summary>
+    /// 鏉傛敹
+    /// </summary>
+    public class MixedReceive
+    {
+        public Context context { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷缂栫爜
+        /// </summary>
+        public string documentTypeCode { get; set; }
+
+        /// <summary>
+        /// 涓氬姟鏃ユ湡
+        /// </summary>
+        public string businessDate { get; set; }
+
+        /// <summary>
+        /// 鏉傛敹鏄庣粏
+        /// </summary>
+        public List<miscRcvList> miscRcvList { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹℃牳
+        /// </summary>
+        public bool isApproved { get; set; }
+    }
+
+    /// <summary>
+    /// 璋冩嫧鏄庣粏
+    /// </summary>
+    public class transferInList
+    {
+        /// <summary>
+        /// 鏂欏搧缂栫爜
+        /// </summary>
+        public string ItemCode { get; set; }
+
+        /// <summary>
+        /// 璋冨叆瀛樺偍鍦扮偣缂栫爜
+        /// </summary>
+        public string TransInWHCode { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public float TransInQty { get; set; }
+
+        /// <summary>
+        /// 璋冨嚭瀛樺偍鍦扮偣缂栫爜
+        /// </summary>
+        public string TransOutWHCode { get; set; }
+    }
+
+    /// <summary>
+    /// 璋冩嫧
+    /// </summary>
+    public class Allocate
+    {
+        public Context context { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷缂栫爜
+        /// </summary>
+        public string documentTypeCode { get; set; }
+
+        /// <summary>
+        /// 涓氬姟鏃ユ湡
+        /// </summary>
+        public string businessDate { get; set; }
+
+        /// <summary>
+        /// 璋冩嫧鏄庣粏
+        /// </summary>
+        public List<transferInList> transferInList { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹℃牳
+        /// </summary>
+        public bool isApproved { get; set; }
+    }
+
+    /// <summary>
+    /// 閫�鏂欐槑缁�
+    /// </summary>
+    public class returnMaterialList
+    {
+        /// <summary>
+        /// 鏂欏搧缂栫爜
+        /// </summary>
+        public string ItemCode { get; set; }
+
+        /// <summary>
+        /// 璋冨叆瀛樺偍鍦扮偣缂栫爜
+        /// </summary>
+        public string TransInWHCode { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public float TransInQty { get; set; }
+
+        /// <summary>
+        /// 璋冨嚭瀛樺偍鍦扮偣缂栫爜
+        /// </summary>
+        public string TransOutWHCode { get; set; }
+    }
+
+    /// <summary>
+    /// 閫�鏂�
+    /// </summary>
+    public class ReturnMaterials
+    {
+        public Context context { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷缂栫爜
+        /// </summary>
+        public string documentTypeCode { get; set; }
+
+        /// <summary>
+        /// 涓氬姟鏃ユ湡
+        /// </summary>
+        public string businessDate { get; set; }
+
+        /// <summary>
+        /// 璋冩嫧鏄庣粏
+        /// </summary>
+        public List<returnMaterialList> issueList { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹℃牳
+        /// </summary>
+        public bool isApproved { get; set; }
+    }
+
+    public class ERPDTO
+    {
+        public Context context { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷缂栫爜
+        /// </summary>
+        public string documentTypeCode { get; set; }
+
+        /// <summary>
+        /// 涓氬姟鏃ユ湡
+        /// </summary>
+        public string businessDate { get; set; }
+
+        /// <summary>
+        /// 閫�鏂欐槑缁�
+        /// </summary>
+        public List<returnMaterialList> returnMaterialList { get; set; }
+
+        /// <summary>
+        /// 璋冩嫧鏄庣粏
+        /// </summary>
+        public List<transferInList> transferInList { get; set; }
+
+        /// <summary>
+        /// 鏉傛敹鏄庣粏
+        /// </summary>
+        public List<miscRcvList> miscRcvList { get; set; }
+
+        /// <summary>
+        /// 鏉傚彂
+        /// </summary>
+        public List<miscShipList> miscShipList { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇棰嗘枡
+        /// </summary>
+        public List<issueList> issueList { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹℃牳
+        /// </summary>
+        public bool isApproved { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderRepository/IDt_InboundOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderRepository/IDt_InboundOrderRepository.cs"
new file mode 100644
index 0000000..3c1e693
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderRepository/IDt_InboundOrderRepository.cs"
@@ -0,0 +1,8 @@
+锘縰sing WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models.Order;
+
+namespace WIDESEA_IOrderRepository;
+
+public interface IDt_InboundOrderRepository : IRepository<Dt_InboundOrder>
+{
+}
\ 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_IOrderRepository/WIDESEA_IOrderRepository.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderRepository/WIDESEA_IOrderRepository.csproj"
new file mode 100644
index 0000000..a70161f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderRepository/WIDESEA_IOrderRepository.csproj"
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEA_DTO\WIDESEA_DTO.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderServices/IDt_InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderServices/IDt_InboundOrderService.cs"
new file mode 100644
index 0000000..89afa9c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderServices/IDt_InboundOrderService.cs"
@@ -0,0 +1,11 @@
+锘縰sing WIDESEA_Core.BaseServices;
+using WIDESEA_DTO;
+using WIDESEA_Model.Models.Order;
+
+namespace WIDESEA_IOrderServices;
+
+public interface IDt_InboundOrderService : IService<Dt_InboundOrder>
+{
+    
+    
+}
\ 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_IOrderServices/WIDESEA_IOrderServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderServices/WIDESEA_IOrderServices.csproj"
new file mode 100644
index 0000000..09325ce
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IOrderServices/WIDESEA_IOrderServices.csproj"
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEA_OrderRepository\WIDESEA_OrderRepository.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoService.cs"
index ffc35de..6a36f01 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoService.cs"
@@ -1,4 +1,5 @@
 锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_DTO.Basic;
 
 namespace WIDESEA_IStorageBasicService;
 
@@ -9,5 +10,5 @@
     /// </summary>
     /// <param name="boxingInfo"></param>
     /// <returns></returns>
-    Task<WebResponseContent> AddBoxingInfoAsync( DtBoxingInfo boxingInfo);
+    Task<WebResponseContent> AddBoxingInfoAsync(AddBoxingDto boxingInfo);
 }
\ 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_IStorageBasicService/Stock/IERPStockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IERPStockInfoService.cs"
new file mode 100644
index 0000000..530d4d1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IERPStockInfoService.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Model.Models.ERP;
+
+namespace WIDESEA_IStorageBasicServices.Stock
+{
+    public interface IERPStockInfoService:IDependency
+    {
+        PageGridData<WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST> GetPageData(PageDataOptions options);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs"
index 53e59ca..4947552 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs"
@@ -2,5 +2,5 @@
 
 public interface IStockInfoService : IService<DtStockInfo>
 {
-    Task<Dictionary<string, int>> GetLocationByStockType(bool stockType, string areaCode);
+   
 }
\ 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 98208ae..aec2535 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"
@@ -41,7 +41,7 @@
     /// <param name="palletCode"></param>
     /// <param name="type"></param>
     /// <returns></returns>
-    Task<WebResponseContent> RequestTaskAsync(RequestTaskDto taskDto);
+    Task<WebResponseContent> RequestInboundTaskAsync(RequestTaskDto taskDto);
 
     /// <summary>
     /// 鑾峰彇绌鸿揣浣�
@@ -73,7 +73,7 @@
     /// <param name="areaCode">鍖哄煙缂栫爜</param>
     /// <param name="roadways">宸烽亾鍒楄〃</param>
     /// <returns>杩斿洖缁撴灉闆�</returns>
-    Task<WebResponseContent> RequestOutTaskAsync(RequestTaskDto taskDto);
+    Task<WebResponseContent> RequestOutboundTaskAsync(RequestTaskDto taskDto);
 
 
     /// <summary>
@@ -98,25 +98,16 @@
     /// <param name="TargetAddress"></param>
     /// <returns></returns>
 
-    Task<WebResponseContent> RequestAcrossFloorTaskAsync(RequestTaskDto taskDto);
+    Dt_Task RequestAcrossFloorTask(DtLocationInfo StartAddress, DtLocationInfo EndAddress, int TaskType, string palletCode);
 
-
-    /// <summary>
-    /// 璺ㄦゼ灞傜偣瀵圭偣浠诲姟
-    /// </summary>
-    /// <param name="taskDto"></param>
-    /// <returns></returns>
-    Task<WebResponseContent> RequestPointAcrossFloorTaskAsync(RequestTaskDto taskDto);
 
     /// <summary>
     /// AGV璇锋眰鎼繍浠诲姟
     /// </summary>
     /// <param name="taskDto"></param>
     /// <returns></returns>
-    Task<WebResponseContent> RequestAGVCarryTaskAsync(RequestTaskDto taskDto);
+    Dt_Task RequestAGVCarryTask(DtLocationInfo StartAddress, DtLocationInfo EndAddress, int TaskType, string palletCode);
 
-
-    Task<WebResponseContent> RequestPointAGVCarryTaskAsync(RequestTaskDto taskDto);
 
 
     /// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PrintSetting.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PrintSetting.cs"
new file mode 100644
index 0000000..e14c896
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PrintSetting.cs"
@@ -0,0 +1,52 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+using WIDESEA_Core.DB.Models;
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎵撳嵃閰嶇疆
+    ///</summary>
+    [SugarTable("Dt_PrintSetting")]
+    public class Dt_PrintSetting : BaseEntity
+    {
+        /// <summary>
+        /// 澶�  娉�:鍖哄煙ID
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Id" ,IsPrimaryKey = true,IsIdentity = true) ]
+        public int Id  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎵撳嵃缂栫爜
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName= "PrintCode") ]
+        public string PrintCode  { get; set;  }
+     
+        /// <summary>
+        /// 澶�  娉�:鎵撳嵃鏁伴噺
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="PrintNo" ) ]
+        public int PrintNo  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:澶囩敤
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName= "Spare1") ]
+        public string? Spare1  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:澶囩敤
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName= "Spare2") ]
+        public int Spare2  { get; set;  } 
+     
+        
+    }
+    
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Class1.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Class1.cs"
new file mode 100644
index 0000000..2e40d19
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Class1.cs"
@@ -0,0 +1,33 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    public class DtStockInfo_Htsy : DtStockInfo, IBaseHistoryEntity
+    {
+        /// <summary>
+        /// 鍘熻〃涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "鍘熻〃涓婚敭")]
+        [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
+        [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
+        public int SourceId { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
+        [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
+        public string OperateType { get; set; }
+
+        /// <summary>
+        /// 绉诲叆鍘嗗彶鏃堕棿
+        /// </summary>
+        [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
+        [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
+        public DateTime InsertTime { get; set; }
+    }
+}
\ 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/BasicModel/DtBoxingInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo.cs"
index de981c4..71be07b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo.cs"
@@ -22,6 +22,12 @@
         public string PalletCode { get; set; }
 
         /// <summary>
+        /// 璐т綅缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅缂栫爜")]
+        public string LocationCode { get; set; }
+
+        /// <summary>
         /// 鏄惁婊$洏
         /// </summary>
         [Required]
@@ -29,29 +35,16 @@
         public bool IsFull { get; set; } = true;
 
         /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐘舵��")]
+        public int StockStatus { get; set; }
+
+        /// <summary>
         /// 澶囨敞
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
-
-
-        /// <summary>
-        /// 鐢熶骇浜х嚎
-        /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDescription = "鐢熶骇浜х嚎")]
-        public string ProductionLine { get; set; }
-
-        /// <summary>
-        /// 褰撳墠宸ュ簭
-        /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDescription = "褰撳墠宸ュ簭")]
-        public string ProcessCode { get; set; }
-
-        /// <summary>
-        /// 涓嬩竴宸ュ簭
-        /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDescription = "涓嬩竴宸ュ簭")]
-        public string NextProcessCode { 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/DtBoxingInfoDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs"
index d55b38a..215384a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs"
@@ -34,6 +34,18 @@
     public string MaterielName { get; set; }
 
     /// <summary>
+    /// 闇�姹傚垎绫�
+    /// </summary>
+    [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "闇�姹傚垎绫�")]
+    public string DemandClassification { get; set; }
+
+    /// <summary>
+    /// 浠撳簱
+    /// </summary>
+    [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "浠撳簱")]
+    public string Warehouse { get; set; }
+
+    /// <summary>
     /// 鍗曟嵁缂栧彿 / 閫氶亾
     /// </summary>
     [Required]
@@ -41,41 +53,51 @@
     public string OrderNo { get; set; }
 
     /// <summary>
-    /// 鎵规鍙�
+    /// 鍗曚綅
     /// </summary>
-    [Required]
-    [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鎵规鍙�")]
-    public string BatchNo { get; set; }
+    [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鍗曚綅")]
+    public string Unit { get; set; }
 
     /// <summary>
-    /// 搴忓垪鍙�(鐢佃姱)
-    /// </summary>
-    [Required]
-    [SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "搴忓垪鍙�")]
-    public string SerialNumber { get; set; }
+    /// 瑙勬牸
+    /// </summary
+    [SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "瑙勬牸")]
+    public string Specs { get; set; }
 
     /// <summary>
-    /// 搴撳瓨鏁伴噺
+    /// 鍗曢噸
     /// </summary>
-    [Required]
-    [SugarColumn(IsNullable = false, DecimalDigits = 2, ColumnDescription = "搴撳瓨鏁伴噺")]
-    public decimal StockQuantity { get; set; }
+    [SugarColumn(IsNullable = false, DecimalDigits = 4, ColumnDescription = "閲嶉噺")]
+    public decimal Weight { get; set; }
 
     /// <summary>
-    /// 鍑哄簱鏁伴噺
+    /// 鏁伴噺
     /// </summary>
-    [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍑哄簱鏁伴噺", DefaultValue = "0")]
-    public decimal OutboundQuantity { get; set; }
+    [SugarColumn(IsNullable = true, DecimalDigits = 4, ColumnDescription = "鏁伴噺", DefaultValue = "0")]
+    public decimal Quantity { get; set; }
 
     /// <summary>
-    /// 缁勭洏鐘舵�� 鐢佃姱鐘舵��
+    /// 缁勭洏鐘舵��
     /// </summary>
     [Required]
     [SugarColumn(IsNullable = false, ColumnDescription = "缁勭洏鐘舵��")]
     public int Status { get; set; }
 
     /// <summary>
-    /// 澶囨敞 // 鏂欐灞炴�son
+    /// 鍥惧彿
+    /// </summary>
+    [SugarColumn(IsNullable = false, ColumnDescription = "鍥惧彿")]
+    public string DrawingNumber { get; set; }
+
+    /// <summary>
+    /// 鏃ユ湡
+    /// </summary>
+    [SugarColumn(IsNullable = false, ColumnDescription = "鏃ユ湡")]
+
+    public string Date { get; set; }
+
+    /// <summary>
+    /// 澶囨敞
     /// </summary>
     [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
     public string Remark { get; set; }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail_Hty.cs"
index ade0f42..5544f61 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail_Hty.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail_Hty.cs"
@@ -6,29 +6,7 @@
 namespace WIDESEA_Model.Models;
 
 [SugarTable(nameof(DtBoxingInfoDetail_Hty), "缁勭洏鏄庣粏鍘嗗彶")]
-public class DtBoxingInfoDetail_Hty : DtBoxingInfoDetail,IBaseHistoryEntity
+public class DtBoxingInfoDetail_Hty : DtBoxingInfoDetail
 {
-    //// <summary>
-    /// 鍘熻〃涓婚敭
-    /// </summary>
-    [ImporterHeader(Name = "鍘熻〃涓婚敭")]
-    [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
-    [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
-    public int SourceId { get; set; }
-
-    /// <summary>
-    /// 鎿嶄綔绫诲瀷
-    /// </summary>
-    [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
-    [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
-    [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
-    public string OperateType { get; set; }
-
-    /// <summary>
-    /// 绉诲叆鍘嗗彶鏃堕棿
-    /// </summary>
-    [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
-    [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
-    [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
-    public DateTime InsertTime { get; set; }
+    
 }
\ 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/BasicModel/DtBoxingInfo_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo_Hty.cs"
index 434ac58..c6dc229 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo_Hty.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo_Hty.cs"
@@ -7,30 +7,52 @@
 namespace WIDESEA_Model.Models
 {
     [SugarTable(nameof(DtBoxingInfo_Hty), "缁勭洏鍘嗗彶淇℃伅")]
-    public class DtBoxingInfo_Hty : DtBoxingInfo,IBaseHistoryEntity
+    public class DtBoxingInfo_Hty :BaseEntity
     {
         /// <summary>
-        /// 鍘熻〃涓婚敭
+        /// 涓婚敭
         /// </summary>
-        [ImporterHeader(Name = "鍘熻〃涓婚敭")]
-        [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
-        [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
-        public int SourceId { get; set; }
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
 
         /// <summary>
-        /// 鎿嶄綔绫诲瀷
+        /// 鎵樼洏缂栫爜
         /// </summary>
-        [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
-        [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
-        public string OperateType { get; set; }
+        [Required]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
+        public string PalletCode { get; set; }
 
         /// <summary>
-        /// 绉诲叆鍘嗗彶鏃堕棿
+        /// 璐т綅缂栫爜
         /// </summary>
-        [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
-        [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
-        [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
-        public DateTime InsertTime { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅缂栫爜")]
+        public string LocationCode { get; set; }
+
+        /// <summary>
+        /// 鏄惁婊$洏
+        /// </summary>
+        [Required]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁婊$洏")]
+        public bool IsFull { get; set; } = true;
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐘舵��")]
+        public int StockStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鏄庣粏
+        /// </summary>
+        [MinItemsCount(1)] // 妫�娴嬮泦鍚堝厓绱犳渶灏�1涓�
+        [SugarColumn(ColumnName = "BoxingInfoDetails")]
+        [Navigate(NavigateType.OneToMany, nameof(DtBoxingInfoDetail_Hty.BoxingInfoId))]
+        public List<DtBoxingInfoDetail_Hty>? BoxingInfoDetails { get; set; }
     }
 }
\ 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/BasicModel/DtStockInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs"
index fd68d02..4da404e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs"
@@ -1,7 +1,9 @@
 锘縰sing Magicodes.ExporterAndImporter.Core;
+using Masuit.Tools.Core.Validator;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -15,120 +17,38 @@
         /// <summary>
         /// 涓婚敭
         /// </summary>
-        [ImporterHeader(Name = "涓婚敭")]
-        [ExporterHeader(DisplayName = "涓婚敭")]
         [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
         public int Id { get; set; }
 
         /// <summary>
-        /// 鎵樼洏缂栧彿
+        /// 鎵樼洏缂栫爜
         /// </summary>
-        [ImporterHeader(Name = "鎵樼洏缂栧彿")]
-        [ExporterHeader(DisplayName = "鎵樼洏缂栧彿")]
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
         public string PalletCode { get; set; }
 
         /// <summary>
-        /// 璐т綅缂栧彿
+        /// 璐т綅缂栫爜
         /// </summary>
-        [ImporterHeader(Name = "璐т綅ID")]
-        [ExporterHeader(DisplayName = "璐т綅ID")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅ID")]
-        public int LocationId { get; set; }
-
-        /// <summary>
-        /// 璐т綅缂栧彿
-        /// </summary>
-        [ImporterHeader(Name = "璐т綅缂栧彿")]
-        [ExporterHeader(DisplayName = "璐т綅缂栧彿")]
-        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "璐т綅缂栧彿")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅缂栫爜")]
         public string LocationCode { get; set; }
 
         /// <summary>
         /// 鏄惁婊$洏
         /// </summary>
-        [ImporterHeader(Name = "鏄惁瀹炵洏")]
-        [ExporterHeader(DisplayName = "鏄惁瀹炵洏")]
-        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁婊$洏", DefaultValue = "0")]
-        public bool IsFull { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁婊$洏")]
+        public bool IsFull { get; set; } = true;
 
         /// <summary>
-        /// 澶囨敞 (闈欏埗\闄堝寲鏃堕棿)
+        /// 鐘舵��
         /// </summary>
-        [ImporterHeader(Name = "鐢佃姱鏁伴噺")]
-        [ExporterHeader(DisplayName = "鐢佃姱鏁伴噺")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "鐢佃姱鏁伴噺")]
-        public string Remark { get; set; }
-
-        /// <summary>
-        /// 鍏宠仈宸ュ簭杩斿洖鏃堕棿锛堟敞娑瞈闈欑疆鏃堕暱锛�
-        /// </summary>
-        [ImporterHeader(Name = "宸ュ簭杩斿洖鏃堕棿")]
-        [ExporterHeader(DisplayName = "宸ュ簭杩斿洖鏃堕棿")]
-        public string LinedProcessFeedbackTime { get; set; }
-
-        /// <summary>
-        /// 鐗瑰緛鍙傛暟杩斿洖(闈欑疆鏃堕暱)
-        /// </summary>
-        [ImporterHeader(Name = "闈欑疆鏃堕暱")]
-        [ExporterHeader(DisplayName = "闈欑疆鏃堕暱")]
-        public string SpecialParameterDuration { get; set; }
-
-        /// <summary>
-        /// 鐢熶骇浜х嚎
-        /// </summary>
-        [ImporterHeader(Name = "鐢熶骇浜х嚎")]
-        [ExporterHeader(DisplayName = "鐢熶骇浜х嚎")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "鐢熶骇浜х嚎")]
-        public string ProductionLine { get; set; }
-
-        /// <summary>
-        /// 鍖哄煙缂栫爜
-        /// </summary>
-        [ImporterHeader(Name = "鍖哄煙缂栫爜")]
-        [ExporterHeader(DisplayName = "鍖哄煙缂栫爜")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "鍖哄煙缂栫爜")]
-        public string AreaCode { get; set; }
-
-        /// <summary>
-        /// 搴斿嚭搴撴椂闂�
-        /// </summary>
-        [ImporterHeader(Name = "搴斿嚭搴撴椂闂�")]
-        [ExporterHeader(DisplayName = "搴斿嚭搴撴椂闂�")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "搴斿嚭搴撴椂闂�")]
-        public DateTime? OutboundTime { get; set; }
-
-        /// <summary>
-        /// 鍙傛暟淇℃伅
-        /// </summary>
-        [ImporterHeader(Name = "鍙傛暟淇℃伅")]
-        [ExporterHeader(DisplayName = "鍙傛暟淇℃伅")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "鍙傛暟淇℃伅")]
-        public string ParameterInfos {  get; set; }
-
-        /// <summary>
-        /// 搴撳瓨鐘舵��
-        /// </summary>
-        [ImporterHeader(Name = "鍒涘缓鑰�")]
-        [ExporterHeader(DisplayName = "鍒涘缓鑰�")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "搴撳瓨鐘舵��")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐘舵��")]
         public int StockStatus { get; set; }
 
         /// <summary>
-        /// 褰撳墠宸ュ簭
+        /// 澶囨敞
         /// </summary>
-        [ImporterHeader(Name = "褰撳墠宸ュ簭")]
-        [ExporterHeader(DisplayName = "褰撳墠宸ュ簭")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "褰撳墠宸ュ簭")]
-        public string ProcessCode { get; set; }
-
-        /// <summary>
-        /// 涓嬩竴宸ュ簭
-        /// </summary>
-        [ImporterHeader(Name = "涓嬩竴宸ュ簭")]
-        [ExporterHeader(DisplayName = "涓嬩竴宸ュ簭")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "涓嬩竴宸ュ簭")]
-        public string NextProcessCode { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
 
         /// <summary>
         /// 搴撳瓨鏄庣粏
@@ -141,7 +61,7 @@
         /// 璐т綅鏁版嵁
         /// </summary>
         [SugarColumn(ColumnName = "LocationInfo")]
-        [Navigate(NavigateType.OneToOne, nameof(LocationId), nameof(DtLocationInfo.Id))]
+        [Navigate(NavigateType.OneToOne, nameof(LocationCode), nameof(DtLocationInfo.LocationCode))]
         public DtLocationInfo? LocationInfo { get; set; }
     }
 }
\ 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/BasicModel/DtStockInfoDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs"
index e4b331e..6629ecd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs"
@@ -1,6 +1,7 @@
 锘縰sing SqlSugar;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -24,54 +25,77 @@
     public int StockId { get; set; }
 
     /// <summary>
-    /// 鐗╂枡缂栧彿
+    /// 鐗╂枡缂栫爜 缁戝畾浠g爜
     /// </summary>
+    [Required]
     [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
     public string MaterielCode { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍚嶇О
     /// </summary>
+    [Required]
     [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")]
     public string MaterielName { get; set; }
 
     /// <summary>
-    /// 鍗曟嵁缂栧彿
+    /// 浠撳簱
     /// </summary>
-    [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍗曟嵁缂栧彿")]
+    [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "浠撳簱")]
+    public string Warehouse { get; set; }
+
+    /// <summary>
+    /// 鍗曟嵁缂栧彿 / 閫氶亾
+    /// </summary>
+    [Required]
+    [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍗曟嵁缂栧彿")]
     public string OrderNo { get; set; }
 
     /// <summary>
-    /// 鎵规鍙�
+    /// 鍗曚綅
     /// </summary>
-    [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鎵规鍙�")]
-    public string BatchNo { get; set; }
+    [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鍗曚綅")]
+    public string Unit { get; set; }
 
     /// <summary>
-    /// 搴忓垪鍙�
-    /// </summary>
-    [SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "搴忓垪鍙�")]
-    public string SerialNumber { get; set; }
+    /// 瑙勬牸
+    /// </summary
+    [SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "瑙勬牸")]
+    public string Specs { get; set; }
 
     /// <summary>
     /// 搴撳瓨鏁伴噺
     /// </summary>
-    [SugarColumn(IsNullable = false, DecimalDigits = 2, ColumnDescription = "搴撳瓨鏁伴噺")]
-    public decimal StockQuantity { get; set; }
+    [SugarColumn(IsNullable = false, DecimalDigits = 4, ColumnDescription = "閲嶉噺")]
+    public decimal Weight { get; set; }
 
     /// <summary>
-    /// 鍑哄簱鏁伴噺
+    /// 鏁伴噺
     /// </summary>
-    [SugarColumn(IsNullable = false, DecimalDigits = 2, ColumnDescription = "鍑哄簱鏁伴噺", DefaultValue = "0")]
-    public decimal OutboundQuantity { get; set; }
+    [SugarColumn(IsNullable = true, DecimalDigits = 4, ColumnDescription = "鏁伴噺", DefaultValue = "0")]
+    public decimal Quantity { get; set; }
 
     /// <summary>
-    /// 搴撳瓨鏄庣粏鐘舵��
+    /// 缁勭洏鐘舵�� 鐢佃姱鐘舵��
     /// </summary>
-    [SugarColumn(IsNullable = false, ColumnDescription = "搴撳瓨鏄庣粏鐘舵��")]
+    [Required]
+    [SugarColumn(IsNullable = false, ColumnDescription = "缁勭洏鐘舵��")]
     public int Status { get; set; }
 
     /// <summary>
+    /// 鍥惧彿
+    /// </summary>
+    [SugarColumn(IsNullable = false, ColumnDescription = "鍥惧彿")]
+    public string DrawingNumber { get; set; }
+
+    /// <summary>
+    /// 鏃ユ湡
+    /// </summary>
+    [SugarColumn(IsNullable = false, ColumnDescription = "鏃ユ湡")]
+
+    public string Date { get; set; }
+
+    /// <summary>
     /// 澶囨敞
     /// </summary>
     [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail_Hty.cs"
index 86d3402..4c4dd37 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail_Hty.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail_Hty.cs"
@@ -5,29 +5,7 @@
 namespace WIDESEA_Model.Models;
 
 [SugarTable(nameof(DtStockInfoDetail_Hty), "搴撳瓨淇℃伅鏄庣粏")]
-public class DtStockInfoDetail_Hty : DtStockInfoDetail, IBaseHistoryEntity
+public class DtStockInfoDetail_Hty : DtStockInfoDetail
 {
-    /// <summary>
-    /// 鍘熻〃涓婚敭
-    /// </summary>
-    [ImporterHeader(Name = "鍘熻〃涓婚敭")]
-    [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
-    [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
-    public int SourceId { get; set; }
-
-    /// <summary>
-    /// 鎿嶄綔绫诲瀷
-    /// </summary>
-    [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
-    [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
-    [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
-    public string OperateType { get; set; }
-
-    /// <summary>
-    /// 绉诲叆鍘嗗彶鏃堕棿
-    /// </summary>
-    [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
-    [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
-    [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
-    public DateTime InsertTime { get; set; }
+    
 }
\ 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/BasicModel/DtStockInfo_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo_Hty.cs"
index b8c8a02..b920d2a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo_Hty.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo_Hty.cs"
@@ -1,34 +1,57 @@
 锘縰sing Magicodes.ExporterAndImporter.Core;
+using Masuit.Tools.Core.Validator;
 using SqlSugar;
+using System.ComponentModel.DataAnnotations;
 using WIDESEA_Core.DB.Models;
 
 namespace WIDESEA_Model.Models
 {
     [SugarTable(nameof(DtStockInfo_Hty), "搴撳瓨淇℃伅鍘嗗彶")]
-    public class DtStockInfo_Hty : DtStockInfo, IBaseHistoryEntity
+    public class DtStockInfo_Hty : BaseEntity
     {
         /// <summary>
-        /// 鍘熻〃涓婚敭
+        /// 涓婚敭
         /// </summary>
-        [ImporterHeader(Name = "鍘熻〃涓婚敭")]
-        [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
-        [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
-        public int SourceId { get; set; }
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
 
         /// <summary>
-        /// 鎿嶄綔绫诲瀷
+        /// 鎵樼洏缂栫爜
         /// </summary>
-        [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
-        [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
-        public string OperateType { get; set; }
+        [Required]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
+        public string PalletCode { get; set; }
 
         /// <summary>
-        /// 绉诲叆鍘嗗彶鏃堕棿
+        /// 璐т綅缂栫爜
         /// </summary>
-        [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
-        [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
-        [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
-        public DateTime InsertTime { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅缂栫爜")]
+        public string LocationCode { get; set; }
+
+        /// <summary>
+        /// 鏄惁婊$洏
+        /// </summary>
+        [Required]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁婊$洏")]
+        public bool IsFull { get; set; } = true;
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐘舵��")]
+        public int StockStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鏄庣粏
+        /// </summary>
+        [SugarColumn(ColumnName = "DtSTockInfoDetails")]
+        [Navigate(NavigateType.OneToMany, nameof(DtStockInfoDetail_Hty.StockId))]
+        public List<DtStockInfoDetail_Hty>? StockInfoDetails { get; set; }
     }
 }
\ 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/ERP/WMS_\347\224\250\345\217\213\345\272\223\345\255\230\344\270\200\350\247\210\350\241\250_ST.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\347\224\250\345\217\213\345\272\223\345\255\230\344\270\200\350\247\210\350\241\250_ST.cs"
new file mode 100644
index 0000000..7d9718a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\347\224\250\345\217\213\345\272\223\345\255\230\344\270\200\350\247\210\350\241\250_ST.cs"
@@ -0,0 +1,37 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Model.Models.ERP
+{
+    public class WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST
+    {
+        public string 浠撳簱鍚嶇О { get; set; }
+
+        public string 浜у搧鍥惧彿 { get; set; }
+
+        public string 鏂欏彿 { get; set; }
+
+        public string 鍝佸悕 { get; set; }
+
+        public string 瑙勬牸 { get; set; }
+
+        public string 鍗曚綅 { get; set; }
+
+        public string 鍗曢噸 { get; set; }
+
+        public decimal 搴撳瓨鏁伴噺 { get; set; }
+
+        public string 鏍规暟 { get; set; }
+
+        public string 鐢ㄥ弸鏉愯川 { get; set; }
+
+        public string 鎵ц鏍囧噯鍙� { get; set; }
+
+        public string 鍝佺墝 { get; set; }
+
+        
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\205\245\346\210\220\345\223\201\345\205\245\345\272\223\350\207\252\345\212\250\346\211\223\345\215\260\346\270\205\345\215\225_ST.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\205\245\346\210\220\345\223\201\345\205\245\345\272\223\350\207\252\345\212\250\346\211\223\345\215\260\346\270\205\345\215\225_ST.cs"
new file mode 100644
index 0000000..f1588ef
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\205\245\346\210\220\345\223\201\345\205\245\345\272\223\350\207\252\345\212\250\346\211\223\345\215\260\346\270\205\345\215\225_ST.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Model.Models.ERP
+{
+    public class WMS_閲囪喘鍏ユ垚鍝佸叆搴撹嚜鍔ㄦ墦鍗版竻鍗昣ST
+    {
+        public string 鍗曞彿 { get; set; }
+        public string 闇�姹傚垎绫� { get; set; }
+        public string 鍗曟嵁绫诲瀷 { get; set; }
+        public string 鍏ュ簱浠撳簱鍚嶇О { get; set; }
+        public string 鏃ユ湡 { get; set; }
+        public int 琛屽彿 { get; set; }
+        public string 浜у搧鍥惧彿 { get; set; }
+        public string 鏂欏彿 { get; set; }
+        public string 鍝佸悕 { get; set; }
+        public decimal 鍗曢噸 { get; set; }
+        public string 瑙勬牸 { get; set; }
+        public string 鍗曚綅 { get; set; }
+        public string 鐢ㄥ弸鏉愯川 { get; set; }
+        public decimal 鍏ュ簱鏁伴噺 { get; set; }
+        public string 鍗曟嵁鐘舵�� { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\217\212\346\210\220\345\223\201\345\205\245\345\272\223\346\270\205\345\215\225_ST.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\217\212\346\210\220\345\223\201\345\205\245\345\272\223\346\270\205\345\215\225_ST.cs"
new file mode 100644
index 0000000..5941262
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\217\212\346\210\220\345\223\201\345\205\245\345\272\223\346\270\205\345\215\225_ST.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Model.Models.ERP
+{
+    public class WMS_閲囪喘鍙婃垚鍝佸叆搴撴竻鍗昣ST
+    {
+        public string 鍗曞彿 { get; set; }
+        public string 闇�姹傚垎绫� { get; set; }
+        public string 鍗曟嵁绫诲瀷 { get; set; }
+        public string 鍏ュ簱浠撳簱鍚嶇О { get; set; }
+        public string 鏃ユ湡 { get; set; }
+        public int 琛屽彿 { get; set; }
+        public string 浜у搧鍥惧彿 { get; set; }
+        public string 鏂欏彿 { get; set; }
+        public string 鍝佸悕 { get; set; }
+        public decimal 鍗曢噸 { get; set; }
+        public string 瑙勬牸 { get; set; }
+        public string 鍗曚綅 { get; set; }
+        public string 鐢ㄥ弸鏉愯川 { get; set; }
+        public decimal 鍏ュ簱鏁伴噺 { get; set; }
+        public string 鍗曟嵁鐘舵�� { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Order/Dt_InboundOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Order/Dt_InboundOrder.cs"
new file mode 100644
index 0000000..a2d2b9c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Order/Dt_InboundOrder.cs"
@@ -0,0 +1,69 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models.Order
+{
+    /// <summary>
+    /// 鎵撳嵃鍏ュ簱鍗曟嵁琛�
+    ///</summary>
+    [SugarTable("Dt_InboundOrder")]
+    public class Dt_InboundOrder : BaseEntity
+    {
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        [SugarColumn(ColumnName= "PrintCode", Length = 255) ]
+        public string PrintCode { get; set; }
+
+        [SugarColumn(ColumnName = "OrderNo", Length = 255)]
+        public string OrderNo { get; set; }
+
+        [SugarColumn(ColumnName = "DemandClassification", Length = 255)]
+        public string DemandClassification { get; set; }
+
+        [SugarColumn(ColumnName = "OrderType", Length = 255)]
+        public string OrderType { get; set; }
+
+        [SugarColumn(ColumnName = "WarehouseName", Length = 255)]
+        public string WarehouseName { get; set; }
+
+        [SugarColumn(ColumnName = "Datetime", Length = 255)]
+        public string Datetime { get; set; }
+
+        [SugarColumn(ColumnName = "LineNumber")]
+        public int LineNumber { get; set; }
+
+        [SugarColumn(ColumnName = "ProductDrawingNumber", Length = 255)]
+        public string ProductDrawingNumber { get; set; }
+
+        [SugarColumn(ColumnName = "MaterialNo", Length = 255)]
+        public string MaterialNo { get; set; }
+
+        [SugarColumn(ColumnName = "MaterialName", Length = 255)]
+        public string MaterialName { get; set; }
+
+        [SugarColumn(ColumnName = "Weight")]
+        public decimal Weight { get; set; }
+
+        [SugarColumn(ColumnName = "Specs", Length = 255)]
+        public string Specs { get; set; }
+
+        [SugarColumn(ColumnName = "Unit", Length = 255)]
+        public string Unit { get; set; }
+
+        [SugarColumn(ColumnName = "Texture", Length = 255)]
+        public string Texture { get; set; }
+
+        [SugarColumn(ColumnName = "Quantity")]
+        public decimal Quantity { get; set; }
+
+        [SugarColumn(ColumnName = "OrderStatus", Length = 255)]
+        public string OrderStatus { get; set; }
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderRepository/Dt_InboundOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderRepository/Dt_InboundOrderRepository.cs"
new file mode 100644
index 0000000..03a04af
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderRepository/Dt_InboundOrderRepository.cs"
@@ -0,0 +1,12 @@
+锘縰sing WIDESEA_Core.BaseRepository;
+using WIDESEA_IOrderRepository;
+using WIDESEA_Model.Models.Order;
+
+namespace WIDESEA_OrderRepository;
+
+public class Dt_InboundOrderRepository : RepositoryBase<Dt_InboundOrder>, IDt_InboundOrderRepository
+{
+    public Dt_InboundOrderRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+    {
+    }
+}
\ 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_OrderRepository/WIDESEA_OrderRepository.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderRepository/WIDESEA_OrderRepository.csproj"
new file mode 100644
index 0000000..b563c7d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderRepository/WIDESEA_OrderRepository.csproj"
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEA_IOrderRepository\WIDESEA_IOrderRepository.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs"
new file mode 100644
index 0000000..f2f9ff9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs"
@@ -0,0 +1,23 @@
+锘縰sing WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IOrderRepository;
+using WIDESEA_IOrderServices;
+using WIDESEA_IStorageTaskRepository;
+using WIDESEA_IStorageTaskServices;
+using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.Order;
+
+namespace WIDESEA_OrderServices
+{
+    public class Dt_InboundOrderService : ServiceBase<Dt_InboundOrder, IDt_InboundOrderRepository>, IDt_InboundOrderService
+    {
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+
+        public Dt_InboundOrderService(IDt_InboundOrderRepository BaseDal,
+                                        IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        {
+            _unitOfWorkManage = unitOfWorkManage;
+
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/WIDESEA_OrderServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/WIDESEA_OrderServices.csproj"
new file mode 100644
index 0000000..660da3c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/WIDESEA_OrderServices.csproj"
@@ -0,0 +1,17 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\LogLibrary\LogLibrary.csproj" />
+    <ProjectReference Include="..\WIDESEA_Cache\WIDESEA_Cache.csproj" />
+    <ProjectReference Include="..\WIDESEA_IBusinessServices\WIDESEA_IBusinessServices.csproj" />
+    <ProjectReference Include="..\WIDESEA_IOrderServices\WIDESEA_IOrderServices.csproj" />
+    <ProjectReference Include="..\WIDESEA_StorageTaskServices\WIDESEA_StorageTaskServices.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs"
index 79d8610..bbbd858 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs"
@@ -1,32 +1,92 @@
 锘縰sing Masuit.Tools;
 using System.ComponentModel.DataAnnotations;
+using WIDESEA_DTO.Basic;
+using WIDESEA_IOrderRepository;
 
 namespace WIDESEA_StorageBasicService;
 
 public class BoxingInfoService : ServiceBase<DtBoxingInfo, IBoxingInfoRepository>, IBoxingInfoService
 {
-    public BoxingInfoService(IBoxingInfoRepository BaseDal) : base(BaseDal)
+    private readonly IDt_InboundOrderRepository _inboundOrderRepository;
+    public BoxingInfoService(IBoxingInfoRepository BaseDal, IDt_InboundOrderRepository inboundOrderRepository) : base(BaseDal)
     {
+        _inboundOrderRepository = inboundOrderRepository;
     }
 
-    public async Task<WebResponseContent> AddBoxingInfoAsync(DtBoxingInfo boxingInfo)
+    public async Task<WebResponseContent> AddBoxingInfoAsync(AddBoxingDto boxingInfo)
     {
         WebResponseContent content = new WebResponseContent();
-        var info = await BaseDal.QueryFirstAsync(x => x.PalletCode == boxingInfo.PalletCode);
-        if (!info.IsNullOrEmpty())
+        try
         {
-            content.Error("璇ユ墭鐩樺凡瀛樺湪缁勭洏");
-        }
-        else
-        {
-            // 娣诲姞缁勭洏淇℃伅
-            var result = await BaseDal.AddDataNavAsync(boxingInfo);
-            if (result)
+            var info = await BaseDal.QueryFirstAsync(x => x.PalletCode == boxingInfo.palletCode);
+            if (!info.IsNullOrEmpty())
             {
-                content.OK("娣诲姞鎴愬姛", boxingInfo);
+                content.Error("璇ユ墭鐩樺凡瀛樺湪缁勭洏");
             }
+            else
+            {
+                List<DtBoxingInfoDetail> details = new List<DtBoxingInfoDetail>();
+                foreach (var item in boxingInfo.OrderNos)
+                {
+                    var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.PrintCode == item);
+
+                    if(InboundOrder != null)
+                    {
+                        var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber==InboundOrder.ProductDrawingNumber &&x.DemandClassification ==InboundOrder.DemandClassification).FirstOrDefault();
+                        if (x != null)
+                        {
+                            details.Remove(x);
+                            x.MaterielCode = InboundOrder.MaterialNo;
+                            x.MaterielName = InboundOrder.MaterialName;
+                            x.DemandClassification = InboundOrder.DemandClassification;
+                            x.Warehouse = InboundOrder.WarehouseName;
+                            x.OrderNo = InboundOrder.OrderNo;
+                            x.Unit = InboundOrder.Unit;
+                            x.Specs = InboundOrder.Specs;
+                            x.Weight = InboundOrder.Weight;
+                            x.Quantity = x.Quantity + InboundOrder.Quantity;
+                            x.DrawingNumber = InboundOrder.ProductDrawingNumber;
+                            x.Date = InboundOrder.Datetime;
+                            details.Add(x);
+                        }
+                        else
+                        {
+                            DtBoxingInfoDetail detail = new DtBoxingInfoDetail()
+                            {
+                                MaterielCode = InboundOrder.MaterialNo,
+                                MaterielName = InboundOrder.MaterialName,
+                                DemandClassification = InboundOrder.DemandClassification,
+                                Warehouse = InboundOrder.WarehouseName,
+                                OrderNo = InboundOrder.OrderNo,
+                                Unit = InboundOrder.Unit,
+                                Specs = InboundOrder.Specs,
+                                Weight = InboundOrder.Weight,
+                                Quantity = InboundOrder.Quantity,
+                                DrawingNumber = InboundOrder.ProductDrawingNumber,
+                                Date = InboundOrder.Datetime,
+                            };
+                            details.Add(detail);
+                        }
+                    }
+                    else
+                    {
+                        return content.Error("鏈壘鍒板叆搴撳崟鎹俊鎭�");
+                    }
+                }
+
+                DtBoxingInfo boxing = new DtBoxingInfo()
+                {
+                    PalletCode=boxingInfo.palletCode,
+                    BoxingInfoDetails= details
+                };
+                await BaseDal.AddDataNavAsync(boxing);
+            }
+            return content;
         }
-        return content;
+        catch (Exception ex)
+        {
+            return content.OK();
+        }
     }
 
     public override PageGridData<DtBoxingInfo> GetPageData(PageDataOptions options)
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 c7de8c4..c9a1b3d 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"
@@ -79,7 +79,7 @@
             {
                 return content.Error("鏈壘鍒拌揣浣嶄俊鎭�!");
             }
-            DtStockInfo stock = _stockInfoRepository.QueryFirst(x => x.LocationId == location.Id);
+            DtStockInfo stock = _stockInfoRepository.QueryFirst(x => x.LocationCode == location.LocationCode);
             if(stock == null)
             {
                 location.LocationStatus= (int)LocationEnum.Free;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/ERPStockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/ERPStockInfoService.cs"
new file mode 100644
index 0000000..fa90a9c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/ERPStockInfoService.cs"
@@ -0,0 +1,33 @@
+锘縰sing SharpCompress.Compressors.ADC;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_IStorageBasicServices.Stock;
+using WIDESEA_Model.Models.ERP;
+
+namespace WIDESEA_StorageBasicServices
+{
+    public partial class ERPStockInfoService: IERPStockInfoService
+    {
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+        public ERPStockInfoService(IUnitOfWorkManage unitOfWorkManage)
+        {
+            _unitOfWorkManage = unitOfWorkManage;
+        }
+        public virtual PageGridData<WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST> GetPageData(PageDataOptions options)
+        {
+            string wheres = options.ValidatePageOptions(typeof(WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST).GetProperties());
+            //鑾峰彇鎺掑簭瀛楁
+            int totalCount = 0;
+            var data = SqlSugarHelper.DBERP.Queryable<WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST>()
+                .WhereIF(!wheres.IsNullOrEmpty(), wheres)
+                .ToPageList(options.Page, options.Rows, ref totalCount);
+            new PageGridData<WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST>(totalCount, data);
+            return new PageGridData<WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST>(totalCount, data);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoHtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoHtyService.cs"
index 43f0030..06d3149 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoHtyService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoHtyService.cs"
@@ -15,12 +15,9 @@
 
 public class StockInfoHtyService : ServiceBase<DtStockInfo_Hty, IStockInfoHtyRepository>, IStockInfoHtyService
 {
-
-    private readonly ISimpleCacheService _simpleCacheService;
     private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
-    public StockInfoHtyService(IStockInfoHtyRepository BaseDal, ISimpleCacheService simpleCacheService, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository) : base(BaseDal)
+    public StockInfoHtyService(IStockInfoHtyRepository BaseDal, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository) : base(BaseDal)
     {
-        _simpleCacheService = simpleCacheService;
         _locationStatusChangeRecordRepository = locationStatusChangeRecordRepository;
     }
 
@@ -57,34 +54,10 @@
             }
             catch { }
         }
-
-        Expression<Func<DtStockInfo_Hty, bool>> locationStatus = null;
-        Expression<Func<DtStockInfo_Hty, bool>> roadwayNo = null;
-        Expression<Func<DtStockInfo_Hty, bool>> materielCode = null;
-        foreach (var item in searchParametersList)
-        {
-            if (item.Name.Contains("locationStatus"))
-            {
-                locationStatus = x => x.LocationInfo.LocationStatus == Convert.ToInt32(item.Value);
-            }
-            else if (item.Name.Contains("roadwayNo"))
-            {
-                roadwayNo = x => x.LocationInfo.RoadwayNo.Contains(item.Value);
-            }
-            else if (item.Name.Contains("materielCode"))
-            {
-                materielCode = x => x.StockInfoDetails.Any(d => d.MaterielCode.Contains(item.Value));
-            }
-        }
-        //.IncludesAllFirstLayer()
         var data = BaseDal.Db.Queryable<DtStockInfo_Hty>()
             .Includes(x => x.StockInfoDetails)
-            .Includes(x => x.LocationInfo)
             .Where(x=>x.CreateDate>DateTime.Now.AddMonths(-1))
             .WhereIF(!wheres.IsNullOrEmpty(), wheres)
-            .WhereIF(locationStatus != null, locationStatus)
-            .WhereIF(roadwayNo != null, roadwayNo)
-            .WhereIF(materielCode != null, materielCode)
             .OrderBy(orderByModels)
             .ToPageList(options.Page, options.Rows, ref totalCount);
         return new PageGridData<DtStockInfo_Hty>(totalCount, data);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs"
index 05f4ba4..f3d46da 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs"
@@ -1,6 +1,7 @@
 锘縰sing AngleSharp.Dom;
 using Mapster;
 using Masuit.Tools;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
 using SqlSugar;
 using System.Collections;
 using System.Collections.Generic;
@@ -10,17 +11,15 @@
 using WIDESEA_Cache;
 using WIDESEA_Common;
 using WIDESEA_Core;
+using WIDESEA_Model.Models;
 
 namespace WIDESEA_StorageBasicService;
 
 public class StockInfoService : ServiceBase<DtStockInfo, IStockInfoRepository>, IStockInfoService
 {
-
-    private readonly ISimpleCacheService _simpleCacheService;
     private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
-    public StockInfoService(IStockInfoRepository BaseDal, ISimpleCacheService simpleCacheService, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository) : base(BaseDal)
+    public StockInfoService(IStockInfoRepository BaseDal, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository) : base(BaseDal)
     {
-        _simpleCacheService = simpleCacheService;
         _locationStatusChangeRecordRepository = locationStatusChangeRecordRepository;
     }
 
@@ -33,7 +32,7 @@
     {
         string wheres = ValidatePageOptions(options);
         //鑾峰彇鎺掑簭瀛楁
-        Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
+        Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
         List<OrderByModel> orderByModels = new List<OrderByModel>();
         foreach (var item in orderbyDic)
         {
@@ -59,21 +58,16 @@
         }
 
         Expression<Func<DtStockInfo, bool>> locationStatus = null;
-        Expression<Func<DtStockInfo, bool>> roadwayNo = null;
-        Expression<Func<DtStockInfo, bool>> materielCode = null;
+        Expression<Func<DtStockInfo, bool>> floor = null;
         foreach (var item in searchParametersList)
         {
             if (item.Name.Contains("locationStatus"))
             {
                 locationStatus = x => x.LocationInfo.LocationStatus == Convert.ToInt32(item.Value);
             }
-            else if (item.Name.Contains("roadwayNo"))
+            else if (item.Name.Contains("floor"))
             {
-                roadwayNo = x => x.LocationInfo.RoadwayNo.Contains(item.Value);
-            }
-            else if (item.Name.Contains("materielCode"))
-            {
-                materielCode = x => x.StockInfoDetails.Any(d => d.MaterielCode.Contains(item.Value));
+                floor = x => x.LocationInfo.Floor.Contains(item.Value);
             }
         }
         //.IncludesAllFirstLayer()
@@ -82,8 +76,7 @@
             .Includes(x => x.LocationInfo)
             .WhereIF(!wheres.IsNullOrEmpty(), wheres)
             .WhereIF(locationStatus != null, locationStatus)
-            .WhereIF(roadwayNo != null, roadwayNo)
-            .WhereIF(materielCode != null, materielCode)
+            .WhereIF(floor != null, floor)
             .OrderBy(orderByModels)
             .ToPageList(options.Page, options.Rows, ref totalCount);
         new PageGridData<DtStockInfo>(totalCount, data);
@@ -108,15 +101,16 @@
                 var stockHty = stock.Adapt<DtStockInfo_Hty>();
                 stockInfos.Add(stockHty);
 
-                var location = SqlSugarHelper.DbWMS.Queryable<DtLocationInfo>().FirstAsync(x => x.Id == stock.LocationId).Result;
+                var location = SqlSugarHelper.DbWMS.Queryable<DtLocationInfo>().FirstAsync(x => x.LocationCode == stock.LocationCode).Result;
                 var lastStatus = location.LocationStatus;
                 location.LocationStatus = (int)LocationEnum.Free;
                 locationInfos.Add(location);
                 _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.ManualOperation, 0);
             }
-            var hty = BaseDal.Db.InsertNav(stockInfos)
-                .Include(x => x.StockInfoDetails)
-                .ExecuteCommand();
+            //var hty = BaseDal.Db.InsertNav(stockInfos)
+            //    .Include(x => x.StockInfoDetails)
+            //    .ExecuteCommand();
+            var isStockAdd = SqlSugarHelper.DbWMS.InsertNav(stockInfos).IncludesAllFirstLayer().ExecuteCommandAsync();
 
             var locationd = SqlSugarHelper.DbWMS.Updateable(locationInfos).ExecuteCommandHasChange();
             return base.DeleteData(keys);
@@ -126,21 +120,4 @@
             return WebResponseContent.Instance.Error(ex.Message);
         }
     }
-
-    // 鏍规嵁浼犲叆搴撳瓨绫诲瀷鑾峰彇涓嶅悓宸烽亾鐨勫簱瀛�
-    public async Task<Dictionary<string, int>> GetLocationByStockType(bool stockType, string areaCode)
-    {
-        var stockInfos = await BaseDal.Db.Queryable<DtStockInfo>().Where(x => x.IsFull == stockType && x.AreaCode == areaCode)
-            .Includes(x => x.LocationInfo).ToListAsync();
-
-        var result = stockInfos
-            .GroupBy(x => x.LocationInfo.RoadwayNo)
-            .ToDictionary(x => x.Key, x => x.Count());
-        return result;
-    }
-
-    //public override WebResponseContent UpdateData(DtStockInfo entity)
-    //{
-    //    return base.UpdateData(entity);
-    //}
 }
\ 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_StorageBasicServices/WIDESEA_StorageBasicServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj"
index 9e9aaed..b3cbc09 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj"
@@ -17,6 +17,7 @@
   <ItemGroup>
     <ProjectReference Include="..\WIDESEA_Cache\WIDESEA_Cache.csproj" />
     <ProjectReference Include="..\WIDESEA_IBusinessServices\WIDESEA_IBusinessServices.csproj" />
+    <ProjectReference Include="..\WIDESEA_IOrderServices\WIDESEA_IOrderServices.csproj" />
     <ProjectReference Include="..\WIDESEA_IServices\WIDESEA_IServices.csproj" />
     <ProjectReference Include="..\WIDESEA_IStorageBasicService\WIDESEA_IStorageBasicServices.csproj" />
     <ProjectReference Include="..\LogLibrary\LogLibrary.csproj" />
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs"
index 4ad04b1..b6c1b44 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs"
@@ -1,13 +1,21 @@
-锘縰sing Masuit.Tools;
+锘縰sing MailKit.Search;
+using Masuit.Tools;
 using Microsoft.Extensions.Hosting;
 using Microsoft.Extensions.Logging;
-using System.Net.Mail;
+using SixLabors.Fonts;
+using SqlSugar;
+using System;
 using System.Net;
+using System.Net.Mail;
 using System.Text;
 using WIDESEA_Cache;
 using WIDESEA_Core.Const;
 using WIDESEA_DTO.WMS;
+using WIDESEA_IOrderRepository;
 using WIDESEA_IServices;
+using WIDESEA_Model.Models.ERP;
+using WIDESEA_Model.Models.Order;
+using WIDESEA_OrderRepository;
 using WIDESEAWCS_BasicInfoRepository;
 
 namespace WIDESEA_StorageTaskServices
@@ -21,10 +29,11 @@
         private readonly IDt_StationManagerRepository _stationManagerRepository;
         private readonly ISys_ConfigService _configService;
         private readonly ILocationInfoRepository _locationRepository;
+        private readonly IDt_InboundOrderRepository _inboundOrderRepository;
 
         private Timer _timer;
 
-        public MyBackgroundService(ILogger<MyBackgroundService> logger, ILocationInfoRepository locationRepository, IStockInfoRepository stockInfoRepository, IDt_AreaInfoRepository areaInfoRepository, IDt_TaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, ISys_ConfigService configService)
+        public MyBackgroundService(ILogger<MyBackgroundService> logger, ILocationInfoRepository locationRepository, IStockInfoRepository stockInfoRepository, IDt_AreaInfoRepository areaInfoRepository, IDt_TaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, ISys_ConfigService configService,IDt_InboundOrderRepository inboundOrderRepository)
         {
             _logger = logger;
             _locationRepository = locationRepository;
@@ -33,11 +42,12 @@
             _taskRepository = taskRepository;
             _stationManagerRepository = stationManagerRepository;
             _configService = configService;
+            _inboundOrderRepository = inboundOrderRepository;
         }
 
         public Task StartAsync(CancellationToken cancellationToken)
         {
-            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(5));
+            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
             return Task.CompletedTask;
         }
 
@@ -45,13 +55,98 @@
         {
             try
             {
+                List<WMS_閲囪喘鍏ユ垚鍝佸叆搴撹嚜鍔ㄦ墦鍗版竻鍗昣ST> ERPPrintChecklist =SqlSugarHelper.DBERP.Queryable<WMS_閲囪喘鍏ユ垚鍝佸叆搴撹嚜鍔ㄦ墦鍗版竻鍗昣ST>().Where(x => true).ToList();
+
                 
+                var printCheckList = _inboundOrderRepository.QueryData(x => true);
+                List<Dt_InboundOrder> inboundOrderAdd = new List<Dt_InboundOrder>();
+                List<Dt_InboundOrder> inboundOrderUpdate = new List<Dt_InboundOrder>();
+                if (ERPPrintChecklist != null) return;
+                foreach (var item in ERPPrintChecklist)
+                {
+                    var x = printCheckList.Where(x => x.MaterialNo == item.鏂欏彿 && x.OrderNo == item.鍗曞彿 && x.WarehouseName == item.鍏ュ簱浠撳簱鍚嶇О).FirstOrDefault();
+                    if (x == null)
+                    {
+                        Dt_InboundOrder Print = new Dt_InboundOrder()
+                        {
+                            PrintCode = GetOrderPintCode(),
+                            OrderNo = item.鍗曞彿,
+                            DemandClassification = item.闇�姹傚垎绫�,
+                            OrderType = item.鍗曟嵁绫诲瀷,
+                            WarehouseName = item.鍏ュ簱浠撳簱鍚嶇О,
+                            Datetime = item.鏃ユ湡.ToString(),
+                            LineNumber = item.琛屽彿,
+                            ProductDrawingNumber = item.浜у搧鍥惧彿,
+                            MaterialNo = item.鏂欏彿,
+                            MaterialName = item.鍝佸悕,
+                            Weight = item.鍗曢噸,
+                            Specs = item.瑙勬牸,
+                            Unit = item.鍗曚綅,
+                            Texture = item.鐢ㄥ弸鏉愯川,
+                            Quantity = item.鍏ュ簱鏁伴噺,
+                            OrderStatus = item.鍗曟嵁鐘舵��
+
+                        };
+                        inboundOrderAdd.Add(Print);
+                    }
+                    else
+                    {
+                        if (x.PrintCode == null || x.PrintCode == "")
+                        {
+                            x.PrintCode = GetOrderPintCode();
+                            x.OrderNo = item.鍗曞彿;
+                            x.DemandClassification = item.闇�姹傚垎绫�;
+                            x.OrderType = item.鍗曟嵁绫诲瀷;
+                            x.WarehouseName = item.鍏ュ簱浠撳簱鍚嶇О;
+                            x.Datetime = item.鏃ユ湡.ToString();
+                            x.LineNumber = item.琛屽彿;
+                            x.ProductDrawingNumber = item.浜у搧鍥惧彿;
+                            x.MaterialNo = item.鏂欏彿;
+                            x.MaterialName = item.鍝佸悕;
+                            x.Weight = item.鍗曢噸;
+                            x.Specs = item.瑙勬牸;
+                            x.Unit = item.鍗曚綅;
+                            x.Texture = item.鐢ㄥ弸鏉愯川;
+                            x.Quantity = item.鍏ュ簱鏁伴噺;
+                            x.OrderStatus = item.鍗曟嵁鐘舵��;
+                            inboundOrderUpdate.Add(x);
+                        }
+                    }
+                }
+                if (inboundOrderAdd.Count > 0)
+                {
+                    _inboundOrderRepository.AddData(inboundOrderAdd);
+                }
+                if (inboundOrderUpdate.Count > 0)
+                {
+                    _inboundOrderRepository.UpdateData(inboundOrderUpdate);
+                }
             }
             catch (Exception ex)
             {
                 ConsoleHelper.WriteErrorLine($"閿欒淇℃伅锛�" + ex.Message);
             }
         }
+
+        public string GetOrderPintCode()
+        {
+            string PrintCode = "";
+            var PrintSetting = SqlSugarHelper.DbWMS.Queryable<Dt_PrintSetting>().Where(x => x.PrintCode == "OrderNo").ToList().FirstOrDefault();
+
+            if (PrintSetting.Spare1 == DateTime.Now.ToString("yyyyMMdd"))
+            {
+                PrintCode = PrintSetting.Spare1 + PrintSetting.PrintNo.ToString().PadLeft(PrintSetting.Spare2, '0');
+                PrintSetting.PrintNo = PrintSetting.PrintNo + 1;
+            }
+            else
+            {
+                PrintSetting.Spare1 = DateTime.Now.ToString("yyyyMMdd");
+                PrintSetting.PrintNo = 2;
+                PrintCode = PrintSetting.PrintCode + PrintSetting.Spare1 + 1.ToString().PadLeft(PrintSetting.Spare2, '0');
+            }
+            SqlSugarHelper.DbWMS.Updateable(PrintSetting).ExecuteCommand();
+            return PrintCode;
+        }
         
         public Task StopAsync(CancellationToken cancellationToken)
         {
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 e91b1a3..53e5909 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"
@@ -2,6 +2,7 @@
 using log4net.Core;
 using Mapster;
 using Masuit.Tools;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
 using OfficeOpenXml.Table.PivotTable;
 using SixLabors.Fonts.Tables.AdvancedTypographic;
@@ -16,11 +17,13 @@
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.Const;
 using WIDESEA_Core.Enums;
+using WIDESEA_DTO.ERP;
 using WIDESEA_DTO.Location;
 using WIDESEA_DTO.WMS;
 using WIDESEA_IServices;
 using WIDESEA_Model.Models;
 using WIDESEA_Model.Models.Basic;
+using WIDESEA_Model.Models.ERP;
 using WIDESEAWCS_BasicInfoRepository;
 using WIDESEAWCS_QuartzJob.Models;
 using static System.Collections.Specialized.BitVector32;
@@ -147,16 +150,36 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
+            var boxing = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
+            var locationStart = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.SourceAddress);
+            var locationEnd = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
+
+            if (boxing == null)
+            {
+                return content.Error("鏈壘鍒扮粍鐩樻暟鎹�");
+            }
+
+            DtStockInfo stock = CreatePalletStock(task, boxing);
+            DtBoxingInfo_Hty boxingInfo_Hty = boxing.Adapt<DtBoxingInfo_Hty>();
+            boxingInfo_Hty.ModifyDate = DateTime.Now;
+
             task.TaskState = (int)TaskInStatusEnum.InFinish;
             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 _stockInfoRepository.AddDataNavAsync(stock);
                 await DeleteTaskAsync(task.TaskId);
                 await AddTaskHtyAsync(taskHty);
+                await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxing.Id)
+                                        .Include(x => x.BoxingInfoDetails)
+                                        .ExecuteCommandAsync();
+                await AddBoxingHtyAsync(boxingInfo_Hty);
             });
+            content.OK("鍏ュ簱瀹屾垚");
         }
         catch (Exception ex)
         {
@@ -177,8 +200,8 @@
             var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.SourceAddress);
             var Targetlocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
 
-            UpdateLocationStatus(Sourcelocation, LocationEnum.Free);
-            UpdateLocationStatus(Targetlocation, LocationEnum.InStock);
+            //UpdateLocationStatus(Sourcelocation, LocationEnum.Free);
+            //UpdateLocationStatus(Targetlocation, LocationEnum.InStock);
 
             task.TaskState = (int)TaskAGVCarryStatusEnum.CarryFinish;
             var taskHty = task.Adapt<Dt_Task_Hty>();
@@ -266,14 +289,6 @@
         {
             return await CompleteTransferTaskAsync(task, stock);
         }
-        else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
-        {
-            return await CompleteCarryTaskAsync(task, stock);
-        }
-        else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
-        {
-            return await CompleteAcrossFloorTaskAsync(task, stock);
-        }
         else
         {
             return content.Error("鏈壘鍒颁换鍔$被鍨�");
@@ -284,28 +299,102 @@
 
     #region 璇锋眰浠诲姟鍏ュ簱
 
-    public async Task<WebResponseContent> RequestTaskAsync(RequestTaskDto taskDto)
+    public async Task<WebResponseContent> RequestInboundTaskAsync(RequestTaskDto taskDto)
     {
         WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var boxingInfo = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == taskDto.PalletCode);
+            if (boxingInfo == null)
+            {
+                return content.Error("鎵樼洏淇℃伅涓嶅瓨鍦紝璇风‘璁ゆ墭鐩樺凡缁勭洏鎴愬姛");
+            }
 
+            foreach (var item in boxingInfo.BoxingInfoDetails)
+            {
+                var ERPStock = SqlSugarHelper.DBERP.Queryable<WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST>().Where(x => x.浠撳簱鍚嶇О == item.Warehouse && x.鏂欏彿 == item.MaterielCode && x.鍝佸悕 == item.MaterielName).ToList().FirstOrDefault();
+                if (ERPStock == null)
+                {
+                    return content.Error($"缁勭洏鏁版嵁鏈湪ERP搴撳瓨鏁版嵁涓紝璇蜂汉宸ョ‘璁ゆ暟鎹槸鍚︽纭�");
+                }
+            }
+
+            var StartAddress = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
+            if (StartAddress == null)
+            {
+                return content.Error("璧风偣搴撲綅鏈壘鍒�");
+            }
+            if (!LocationIsOutBound(StartAddress))
+            {
+                return content.Error($"璧风偣搴撲綅{StartAddress.LocationCode}鎼繍璺緞琚崰鐢紝璇蜂汉宸ョ‘璁ゅ啀涓嬪彂浠诲姟");
+            }
+            if (taskDto.AreaId != 0)
+            {
+                switch (taskDto.AreaId)
+                {
+                    case 1:
+                        return await InboundStakerArea(taskDto, StartAddress, await GetEmptyLocation("SC1"));
+                    case 2:
+                    case 3:
+                    case 4:
+                    case 5:
+                    case 6:
+                        return await InboundAGVCacheArea(taskDto, StartAddress, await GetAGVEmptyCacheLocation(taskDto.AreaId, StartAddress));
+                    default:
+                        return content.Error("璇烽�夋嫨姝g‘鐨勫尯鍩熶俊鎭�");
+                }
+            }
+            else if (taskDto.TargetAddress != null)
+            {
+                var location = _locationRepository.QueryFirst(x => x.LocationCode == taskDto.TargetAddress);
+                if (location != null && location.LocationStatus == (int)LocationEnum.Free && location.EnalbeStatus == 1)
+                {
+                    switch (taskDto.AreaId)
+                    {
+                        case 1:
+                            return await InboundStakerArea(taskDto, location, StartAddress);
+                        case 2:
+                        case 3:
+                        case 4:
+                        case 5:
+                        case 6:
+                            return await InboundAGVCacheArea(taskDto, location, StartAddress);
+                        default:
+                            return content.Error("璐т綅鍖哄煙鏈壘鍒�");
+                    }
+                }
+                else
+                {
+                    return content.OK("鐩爣搴撲綅涓嶅彲鐢�");
+                }
+            }
+            else
+            {
+                return content.OK("璇烽�夋嫨鍏ュ簱鍖哄煙鎴栫粓鐐瑰湴鍧�");
+            }
+        }
+        catch (Exception err)
+        {
+            return content.Error(err.Message);
+        }
+    }
+
+    public async Task<WebResponseContent> InboundStakerArea(RequestTaskDto taskDto,DtLocationInfo StartAddress, DtLocationInfo location)
+    {
+        WebResponseContent content = new WebResponseContent();
         try
         {
             var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
 
-            var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
-
-            var TargetAddress = await GetEmptyLocation("SC1");
-
-            if (location == null || TargetAddress == null)
+            if (location == null)
             {
-                return content.Error("璧风偣鏈畾涔夋垨缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
+                return content.Error("缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
             }
-
             Dt_Task taskNew = new Dt_Task
             {
                 Grade = 1,
                 Roadway = "SC1",
-                TargetAddress = TargetAddress.LocationCode,
+                TargetAddress = location.LocationCode,
                 Dispatchertime = DateTime.Now,
                 MaterialNo = "",
                 NextAddress = station.stationChildCode,
@@ -323,24 +412,60 @@
             };
             var taskDTO = CreateListTaskDTO(taskNew);
 
-            var isResult = await AddTaskAsync(taskNew, location,TargetAddress);
-            if (!isResult)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return content.Error("鏂板浠诲姟澶辫触");
-            }
+            BaseDal.AddData(taskNew);
 
+            UpdateLocationStatus(StartAddress, LocationEnum.InStockDisable, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
+            UpdateLocationStatus(location, LocationEnum.Lock, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
+            
+            
+
+            //return content.OK();
             return content = await SendWCSTask(taskDTO);
         }
-        catch (Exception err)
+        catch (Exception ex)
         {
-            content.Error(err.Message);
+            _unitOfWorkManage.RollbackTran();
+            return content.Error(ex.Message);
         }
-
-        return content;
     }
 
+    public async Task<WebResponseContent> InboundAGVCacheArea(RequestTaskDto taskDto, DtLocationInfo StartAddress, DtLocationInfo location)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            if (location == null)
+            {
+                return content.Error("璧风偣鏈畾涔夋垨缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
+            }
+            Dt_Task taskNew = new Dt_Task();
+            if (StartAddress.Floor != location.Floor)
+            {
+                taskNew= RequestAcrossFloorTask(StartAddress,location, (int)TaskInboundTypeEnum.Inbound,taskDto.PalletCode);
+            }
+            else
+            {
+                taskNew = RequestAGVCarryTask(StartAddress, location, (int)TaskInboundTypeEnum.Inbound, taskDto.PalletCode);
+            }
+                
+            var taskDTO = CreateListTaskDTO(taskNew);
+            _unitOfWorkManage.BeginTran();
 
+            UpdateLocationStatus(StartAddress, LocationEnum.InStockDisable, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
+            UpdateLocationStatus(location, LocationEnum.Lock, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
+
+            BaseDal.AddData(taskNew);
+
+            _unitOfWorkManage.CommitTran();
+            //return content.OK();
+            return content = await SendWCSTask(taskDTO);
+        }
+        catch (Exception ex)
+        {
+            _unitOfWorkManage.RollbackTran();
+            return content.Error(ex.Message);
+        }
+    }
     #endregion 璇锋眰浠诲姟鍏ュ簱
 
     #region 鏇存柊浠诲姟鐘舵��
@@ -434,36 +559,101 @@
 
     #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)
+    /// <param name="taskDto"></param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> RequestOutboundTaskAsync(RequestTaskDto taskDto)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            //DtStockInfo stcok= await _stockInfoRepository.QueryFirstAsync(x => x.PalletCode == taskDto.PalletCode);
+            //if (stcok == null)
+            //{
+            //    return content.Error("鎵樼洏淇℃伅涓嶅瓨鍦紝璇风‘璁ゆ墭鐩樺凡鍏ュ簱鎴愬姛");
+            //}
+
+            var StartAddress = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
+            if (StartAddress == null)
+            {
+                return content.Error("璧风偣搴撲綅鏈壘鍒�");
+            }
+            if (!LocationIsOutBound(StartAddress))
+            {
+                return content.Error($"璧风偣搴撲綅{StartAddress.LocationCode}鍑哄簱璺緞琚崰鐢紝璇蜂汉宸ョ‘璁ゅ啀涓嬪彂浠诲姟");
+            }
+            DtLocationInfo location = null;
+            if (taskDto.AreaId != 0)
+            {
+                if (taskDto.AreaId == 1)
+                {
+                    location = await GetEmptyLocation("SC1");
+                }
+                else
+                {
+                    location = await GetAGVEmptyCacheLocation(taskDto.AreaId, StartAddress);
+                }
+                    
+            }
+            else if (taskDto.TargetAddress != null)
+            {
+                location = _locationRepository.QueryFirst(x => x.LocationCode == taskDto.TargetAddress);
+
+                if (location != null && location.LocationStatus != (int)LocationEnum.Free && location.EnalbeStatus == 1)
+                {
+                    return content.OK("鐩爣搴撲綅涓嶅彲鐢�");
+                }
+            }
+            else
+            {
+                return content.OK("璇烽�夋嫨鍏ュ簱鍖哄煙鎴栫粓鐐瑰湴鍧�");
+            }
+
+            switch (StartAddress.AreaId)
+            {
+                case 1:
+                    return await OutboundStakerArea(taskDto, StartAddress, location);
+                case 2:
+                case 3:
+                case 4:
+                case 5:
+                case 6:
+                    return await OutboundAGVCacheArea(taskDto, StartAddress, location);
+                default:
+                    return content.Error("璇烽�夋嫨姝g‘鐨勫尯鍩熶俊鎭�");
+            }
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
+    public async Task<WebResponseContent> OutboundStakerArea(RequestTaskDto taskDto, DtLocationInfo StartAddress, DtLocationInfo location)
     {
         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, Sourcelocation);
-            if (Targetlocation == null || Sourcelocation == null)
+            if (location == null)
             {
-                return content.Error("璧风偣鏈畾涔夋垨缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
+                return content.Error("缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
+            }
+
+            if (location.AreaId == 5 || location.AreaId == 6)
+            {
+                return content.Error("褰撳墠鍖哄煙涓嶅彲鍑哄簱锛岃鑱旂郴绠$悊鍛�");
             }
             Dt_Task taskNew = new Dt_Task
             {
-                Grade = 1,
+                Grade = Convert.ToInt32(StartAddress.Remark),
                 Roadway = "SC1",
-                TargetAddress = Targetlocation.LocationCode,
+                TargetAddress = location.LocationCode,
                 Dispatchertime = DateTime.Now,
                 MaterialNo = "",
                 NextAddress = station.stationChildCode,
@@ -472,7 +662,7 @@
                 SourceAddress = taskDto.Position,
                 CurrentAddress = taskDto.Position,
                 TaskState = (int)TaskOutStatusEnum.OutNew,
-                TaskType = (int)TaskOutboundTypeEnum.Outbound,
+                TaskType = taskDto.TaskType,
                 TaskNum = BaseDal.GetTaskNo().Result,
                 CreateDate = DateTime.Now,
                 TaskId = 0,
@@ -481,12 +671,11 @@
             };
             var taskDTO = CreateListTaskDTO(taskNew);
 
-            var isResult = await AddTaskAsync(taskNew, Sourcelocation, Targetlocation);
-            if (!isResult)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return content.Error("鏂板浠诲姟澶辫触");
-            }
+            UpdateLocationStatus(StartAddress, LocationEnum.InStockDisable, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticOutbound);
+            UpdateLocationStatus(location, LocationEnum.Lock, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticOutbound);
+
+            BaseDal.AddData(taskNew);
+            //return content.OK();
             return content = await SendWCSTask(taskDTO);
         }
         catch (Exception ex)
@@ -495,7 +684,39 @@
         }
     }
 
+    public async Task<WebResponseContent> OutboundAGVCacheArea(RequestTaskDto taskDto, DtLocationInfo StartAddress, DtLocationInfo location)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            if (location == null)
+            {
+                return content.Error("璧风偣鏈畾涔夋垨缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
+            }
+            Dt_Task taskNew = new Dt_Task();
+            if (StartAddress.Floor != location.Floor)
+            {
+                taskNew = RequestAcrossFloorTask(StartAddress, location, taskDto.TaskType, taskDto.PalletCode);
+            }
+            else
+            {
+                taskNew = RequestAGVCarryTask(StartAddress, location, taskDto.TaskType, taskDto.PalletCode);
+            }
 
+            var taskDTO = CreateListTaskDTO(taskNew);
+
+            UpdateLocationStatus(StartAddress, LocationEnum.InStockDisable, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticOutbound);
+            UpdateLocationStatus(location, LocationEnum.Lock, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticOutbound);
+
+            BaseDal.AddData(taskNew);
+            //return content.OK();
+            return content = await SendWCSTask(taskDTO);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
     #endregion 璇锋眰鍑哄簱锛堝疄鐩�&绌虹洏锛�
 
     #region 璇锋眰璺ㄦゼ灞�2浠诲姟
@@ -534,7 +755,7 @@
                 SourceAddress = task.SourceAddress,
                 CurrentAddress = stationManager.stationChildCode,
                 TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarry,
-                TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry,
+                TaskType = task.TaskType,
                 TaskNum = BaseDal.GetTaskNo().Result,
                 CreateDate = DateTime.Now,
                 TaskId = 0,
@@ -564,248 +785,75 @@
     #endregion
 
     #region 璇锋眰璺ㄦゼ灞備换鍔�
-    public async Task<WebResponseContent> RequestAcrossFloorTaskAsync(RequestTaskDto taskDto)
+    public Dt_Task RequestAcrossFloorTask(DtLocationInfo StartAddress,DtLocationInfo EndAddress,int TaskType,string palletCode)
     {
         WebResponseContent content = new WebResponseContent();
         try
         {
-
-            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
-
-            DtLocationInfo Targetlocation = await GetAGVEmptyCacheLocation(taskDto.AreaId, Sourcelocation);
-
-            if (Targetlocation == null || Sourcelocation == null)
+            var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == StartAddress.Floor);
+            return new Dt_Task
             {
-                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("鏈壘鍒版彁鍗囨満绔欑偣");
+                Grade = StartAddress.Column,
+                Roadway = "AGV",
+                TargetAddress = EndAddress.LocationCode,
+                Dispatchertime = DateTime.Now,
+                MaterialNo = "",
+                NextAddress = next.stationChildCode,
+                OrderNo = null,
+                PalletCode = palletCode,
+                SourceAddress = StartAddress.LocationCode,
+                CurrentAddress = StartAddress.LocationCode,
+                TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew,
+                TaskType = TaskType,
+                TaskNum = BaseDal.GetTaskNo().Result,
+                CreateDate = DateTime.Now,
+                TaskId = 0,
+                Remark = StartAddress.AreaId.ToString(),
+                AGVTaskNum = GenerateUniqueId(),
+                Floor = StartAddress.Floor,
+            };
         }
         catch (Exception ex)
         {
-            return content.Error(ex.Message);
+            return null;
         }
     }
-
-    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)
+    public Dt_Task RequestAGVCarryTask(DtLocationInfo StartAddress, DtLocationInfo EndAddress, int TaskType, string palletCode)
     {
         WebResponseContent content = new WebResponseContent();
         try
         {
-            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
-
-            DtLocationInfo Targetlocation = await GetAGVEmptyCacheLocation(taskDto.AreaId,Sourcelocation);
-
-            if (Targetlocation == null || Sourcelocation == null)
+            return new Dt_Task
             {
-                return content.Error("璧风偣鏈畾涔夋垨缁堢偣鍖哄煙鏈壘鍒扮┖闂插簱浣�");
-            }
-
-            if (!IsSamefloor(Sourcelocation, Targetlocation))
-            {
-                return content.Error("鍚屾ゼ灞備笉鍏佽璇锋眰璺ㄦゼ灞備换鍔�");
-            }
-
-            Dt_Task taskNew = new Dt_Task
-            {
-                Grade = 1,
+                Grade = StartAddress.Column,
                 Roadway = "AGV",
-                TargetAddress = Targetlocation.LocationCode,
+                TargetAddress = EndAddress.LocationCode,
                 Dispatchertime = DateTime.Now,
                 MaterialNo = "",
-                NextAddress = Targetlocation.LocationCode,
+                NextAddress = EndAddress.LocationCode,
                 OrderNo = null,
-                PalletCode = taskDto.PalletCode,
-                SourceAddress = taskDto.Position,
-                CurrentAddress = taskDto.Position,
+                PalletCode = palletCode,
+                SourceAddress = StartAddress.LocationCode,
+                CurrentAddress = StartAddress.LocationCode,
                 TaskState = (int)TaskAGVCarryStatusEnum.CarryNew,
-                TaskType = (int)TaskAGVCarryTypeEnum.Carry,
+                TaskType = TaskType,
                 TaskNum = BaseDal.GetTaskNo().Result,
                 CreateDate = DateTime.Now,
                 TaskId = 0,
+                Remark = StartAddress.AreaId.ToString(),
                 AGVTaskNum = GenerateUniqueId(),
-                Floor = Sourcelocation.Floor,
+                Floor = StartAddress.Floor,
             };
-            var taskDTO = CreateListTaskDTO(taskNew);
-
-            UpdateLocationStatus(Sourcelocation, LocationEnum.InStockDisable);
-            UpdateLocationStatus(Targetlocation, LocationEnum.Lock);
-
-            var isResult = await AddTaskAsync(taskNew, Sourcelocation, Targetlocation);
-            if (!isResult)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return content.Error("鏂板浠诲姟澶辫触");
-            }
-
-            //return content = await SendWCSTask(taskDTO);
-            return content.OK();
         }
         catch (Exception ex)
         {
-            return content.Error(ex.Message);
+            return null;
         }
     }
 
-
-    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 = Targetlocation.LocationCode,
-                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  鍒ゆ柇鏄惁闇�瑕佺Щ搴�
@@ -830,19 +878,19 @@
 
             if (location == null || location.Depth != 2)
             {
-                return content.Error("鏈壘鍒拌揣浣嶆垨鑰呰搴撲綅涓嶆槸浜屾繁璐т綅");
+                return content.OK(data: _mapper.Map<WMSTaskDTO>(task));
             }
 
             var locationLateral = _locationRepository.QueryFirst(x => x.RoadwayNo == location.RoadwayNo && x.Row == 1 && x.Layer == location.Layer && x.Column == location.Column);
-            if (locationLateral != null && (locationLateral.LocationStatus == 0 || locationLateral.EnalbeStatus == 1))
+            if (locationLateral != null && (locationLateral.LocationStatus == (int)LocationEnum.FreeDisable || locationLateral.LocationStatus == (int)LocationEnum.Free) && locationLateral.EnalbeStatus == 1)
             {
                 return content.OK(data: _mapper.Map<WMSTaskDTO>(task));
             }
-            else if (locationLateral != null && (locationLateral.LocationStatus == 1 || locationLateral.EnalbeStatus == 1))
+            else if (locationLateral != null && locationLateral.LocationStatus == 1 && locationLateral.EnalbeStatus == 1)
             {
                 return content.Error($"涓�娣变綅寮傚父閿佸畾鏆備笉鍙嚭搴�");
             }
-            else if (locationLateral != null && (locationLateral.LocationStatus == 2 || locationLateral.EnalbeStatus == 1))
+            else if (locationLateral != null && locationLateral.LocationStatus == (int)LocationEnum.InStockDisable && locationLateral.EnalbeStatus == 1)
             {
                 var TargetAddress = await GetEmptyLocation("SC1");
 
@@ -852,7 +900,7 @@
                 }
 
                 //todo鏌ヨ鍐呬晶搴撳瓨淇℃伅
-                var stock = await _stockInfoRepository.QueryFirstAsync(x => x.LocationCode == locationLateral.LocationCode && x.LocationId == locationLateral.Id);
+                var stock = await _stockInfoRepository.QueryFirstAsync(x => x.LocationCode == locationLateral.LocationCode);
 
                 Dt_Task taskNew = new Dt_Task
                 {
@@ -863,7 +911,7 @@
                     MaterialNo = "",
                     NextAddress = TargetAddress.LocationCode,
                     OrderNo = null,
-                    PalletCode = taskDto.PalletCode+"001",
+                    PalletCode = taskDto.PalletCode + "001",
                     SourceAddress = locationLateral.LocationCode,
                     CurrentAddress = locationLateral.LocationCode,
                     TaskState = (int)TaskRelocationStatusEnum.RelocationNew,
@@ -876,6 +924,8 @@
                 var taskDTO = CreateListTaskDTO(taskNew);
 
                 var isResult = await AddTaskAsync(taskNew, locationLateral, TargetAddress);
+                //UpdateLocationStatus(TargetAddress, LocationEnum.Lock);
+                UpdateLocationStatus(TargetAddress, LocationEnum.Lock, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticRelocation);
                 if (!isResult)
                 {
                     _unitOfWorkManage.RollbackTran();
@@ -934,7 +984,7 @@
 
             foreach (var item in locationInfos)
             {
-                if (item.LocationStatus == 0 && item.EnalbeStatus == 1)
+                if ((item.LocationStatus == 0 || item.LocationStatus == (int)LocationEnum.FreeDisable) && item.EnalbeStatus == 1)
                 {
                     continue;
                 }
@@ -961,7 +1011,7 @@
                         SourceAddress = item.LocationCode,
                         CurrentAddress = item.LocationCode,
                         TaskState = (int)TaskAGVCarryStatusEnum.CarryNew,
-                        TaskType = (int)TaskAGVCarryTypeEnum.CarryReloction,
+                        TaskType = (int)TaskRelocationTypeEnum.Relocation,
                         TaskNum = BaseDal.GetTaskNo().Result,
                         CreateDate = DateTime.Now,
                         TaskId = 0,
@@ -972,6 +1022,7 @@
                     taskDTO.Add(CreateTaskDTO(taskNew));
 
                     var isResult = await AddTaskAsync(taskNew, item, Targetlocation);
+                    UpdateLocationStatus(Targetlocation, LocationEnum.Lock, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticRelocation);
                     if (!isResult)
                     {
                         _unitOfWorkManage.RollbackTran();
@@ -1038,7 +1089,7 @@
 
     #region 鍐呴儴璋冪敤鏂规硶
 
-    public void UpdateLocationStatus(DtLocationInfo location, LocationEnum locationStatus)
+    public void UpdateLocationStatus(DtLocationInfo location, LocationEnum locationStatus, int taskNum, int StatusChangeType)
     {
         List<DtLocationInfo> locations = GetGroupLocations(location);
 
@@ -1091,6 +1142,24 @@
                 }
             }
         }
+        List<LocationChangeRecordDto> changeRecordDto = new List<LocationChangeRecordDto>();
+        foreach (var item in Beforelocation)
+        {
+            var loc = locations.Where(x => x.LocationCode == item.LocationCode).FirstOrDefault();
+            if (loc != null)
+            {
+                changeRecordDto.Add(new LocationChangeRecordDto()
+                {
+                    AfterStatus = loc.LocationStatus,
+                    BeforeStatus = item.LocationStatus,
+                    TaskNum = taskNum,
+                    LocationId = loc.Id,
+                    LocationCode = loc.LocationCode,
+                    ChangeType = StatusChangeType,
+                });
+            }
+        }
+        _locationStatusChangeRecordRepository.AddStatusChangeRecord(changeRecordDto);
 
         _locationRepository.UpdateData(locations);
     }
@@ -1192,6 +1261,24 @@
         if (!isStockAdd)
         {
             throw new Exception("搴撳瓨鍘嗗彶淇℃伅娣诲姞澶辫触");
+        }
+    }
+
+    private async Task DeleteBoxingInfoAsync(int boxingId)
+    {
+        var isStockUpdated = await _stockInfoRepository.DeleteDataByIdAsync(boxingId);
+        if (!isStockUpdated)
+        {
+            throw new Exception("搴撳瓨淇℃伅鏇存柊澶辫触");
+        }
+    }
+
+    private async Task AddBoxingHtyAsync(DtBoxingInfo_Hty boxingInfo)
+    {
+        var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(boxingInfo).IncludesAllFirstLayer().ExecuteCommandAsync();
+        if (!isStockAdd)
+        {
+            throw new Exception("缁勭洏鍘嗗彶淇℃伅娣诲姞澶辫触");
         }
     }
 
@@ -1337,7 +1424,7 @@
             TaskNum = task.TaskNum.Value,
             LocationId = location.Id,
             LocationCode = location.LocationCode,
-            ChangeType = (int)StatusChangeTypeEnum.AutomaticStorage,
+            ChangeType = (int)StatusChangeTypeEnum.AutomaticInbound,
         };
 
         bool isUpdateChange = _locationStatusChangeRecordRepository.AddStatusChangeRecord(changeRecordDto);
@@ -1346,42 +1433,43 @@
         return isResult && isUpdateLo;
     }
 
-    private async Task<bool> AddTaskAsync(Dt_Task task, DtLocationInfo Sourcelocation, DtLocationInfo Targetlocation)
+    private async Task<bool> AddTaskAsync(Dt_Task task, DtLocationInfo StartAddress, DtLocationInfo EndAddress)
     {
+        //UpdateLocationStatus
         bool isResult = await BaseDal.AddDataAsync(task) > 0;
-        int SourcebeforeStatus = Sourcelocation.LocationStatus;
+        int SourcebeforeStatus = StartAddress.LocationStatus;
 
-        int TargetbeforeStatus = Targetlocation.LocationStatus;
+        int TargetbeforeStatus = EndAddress.LocationStatus;
 
-        Sourcelocation.LocationStatus = (int)LocationEnum.InStockDisable;
+        StartAddress.LocationStatus = (int)LocationEnum.InStockDisable;
 
-        Targetlocation.LocationStatus = (int)LocationEnum.Lock;
+        EndAddress.LocationStatus = (int)LocationEnum.Lock;
 
         List<LocationChangeRecordDto> changeRecordDto = new List<LocationChangeRecordDto>()
         {
             new LocationChangeRecordDto()
             {
-                AfterStatus = Sourcelocation.LocationStatus,
+                AfterStatus = StartAddress.LocationStatus,
                 BeforeStatus = SourcebeforeStatus,
                 TaskNum = task.TaskNum.Value,
-                LocationId = Sourcelocation.Id,
-                LocationCode = Sourcelocation.LocationCode,
-                ChangeType = (int)StatusChangeTypeEnum.AutomaticDelivery,
+                LocationId = StartAddress.Id,
+                LocationCode = StartAddress.LocationCode,
+                ChangeType = (int)StatusChangeTypeEnum.AutomaticInbound,
             },
             new LocationChangeRecordDto()
             {
-                AfterStatus = Targetlocation.LocationStatus,
+                AfterStatus = EndAddress.LocationStatus,
                 BeforeStatus = TargetbeforeStatus,
                 TaskNum = task.TaskNum.Value,
-                LocationId = Targetlocation.Id,
-                LocationCode = Targetlocation.LocationCode,
-                ChangeType = (int)StatusChangeTypeEnum.AutomaticDelivery,
+                LocationId = EndAddress.Id,
+                LocationCode = EndAddress.LocationCode,
+                ChangeType = (int)StatusChangeTypeEnum.AutomaticInbound,
             },
         };
 
         bool isUpdateChange = _locationStatusChangeRecordRepository.AddStatusChangeRecord(changeRecordDto);
-        bool Source = await _locationRepository.UpdateDataAsync(Sourcelocation);
-        bool Target = await _locationRepository.UpdateDataAsync(Targetlocation);
+        bool Source = await _locationRepository.UpdateDataAsync(StartAddress);
+        bool Target = await _locationRepository.UpdateDataAsync(EndAddress);
 
         return isResult && Source && Target;
     }
@@ -1395,6 +1483,11 @@
         try
         {
             List<DtLocationInfo> locations = await _locationRepository.QueryDataAsync(x => x.RoadwayNo == "SC1" && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1);
+            if (locations.Count < 2)
+            {
+                return null;
+            }
+
             List<DtLocationInfo> locationInfos = new List<DtLocationInfo>();
             var locationInside = locations.Where(x => x.Row == 3).ToList();
 
@@ -1413,7 +1506,7 @@
                     }
                 }
 
-                return locationInfos.OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault();
+                return locationInfos.Distinct().OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault();
             }
             else if (locations.Where(x => x.Row == 1).OrderBy(x => x.Layer).ThenBy(x => x.Column).FirstOrDefault() != null)
             {
@@ -1434,24 +1527,23 @@
     {
         try
         {
-            DtLocationInfo location = null;
+            if(loc==null)
+            {
+                return null;
+            }
             switch (AreaId)
             {
                 case 2:
-                    location = await FromShallowToDeep(AreaId, loc);
-                    break;
+                    return await FromShallowToDeep(AreaId, loc);
                 case 3:
-                    location = await AGVLIKU(AreaId);
-                    break;
+                    return await AGVLIKU(AreaId);
                 case 5:
                 case 6:
-                    location = await FromDeepToShallow(AreaId, loc);
-                    break;
+                    return  await FromDeepToShallow(AreaId, loc);
                 default:
-                    break;
+                    return null;
             }
 
-            return location;
         }
         catch (Exception ex)
         {
@@ -1470,22 +1562,36 @@
         {
             List<DtLocationInfo> locations = new List<DtLocationInfo>();
 
-            locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1 && x.Row != loc.Row);
-
+            if (AreaId == loc.AreaId)
+            {
+                locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1 && x.Row != loc.Row);
+            }
+            else
+            {
+                locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1);
+            }
+            if (locations.Count == 0)
+            {
+                return null;
+            }
             List<DtLocationInfo> locationInfos = new List<DtLocationInfo>();
             foreach (var item in locations)
             {
                 var locationLateral = _locationRepository.QueryData(x => x.Row == item.Row && x.Column < item.Column && x.Remark == item.Remark);
+                bool Isavailable = true;
                 foreach (var lateral in locationLateral)
                 {
-                    if (lateral.LocationStatus == (int)LocationEnum.Free && lateral.EnalbeStatus == 1)
+                    if (lateral.LocationStatus != (int)LocationEnum.Free && lateral.EnalbeStatus == 1)
                     {
-                        locationInfos.Add(item);
+                        Isavailable = false;
+                        continue;
                     }
                 }
+                if(Isavailable)
+                    locationInfos.Add(item);
             }
 
-            return locationInfos.OrderByDescending(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
+            return locationInfos.Distinct().OrderByDescending(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
         }
         catch (Exception ex)
         {
@@ -1504,8 +1610,15 @@
         {
             List<DtLocationInfo> locations = new List<DtLocationInfo>();
 
-            locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1 && x.Row != loc.Row);
-           
+            if (AreaId == loc.AreaId)
+            {
+                locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1 && x.Row != loc.Row);
+            }
+            else
+            {
+                locations = await _locationRepository.QueryDataAsync(x => x.AreaId == AreaId && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1);
+            }
+
             if (locations.Count == 0)
             {
                 return null;
@@ -1514,8 +1627,15 @@
             foreach (var item in locations)
             {
                 var locationLateral = _locationRepository.QueryData(x => x.Row == item.Row && x.Column > item.Column && x.Remark == item.Remark);
+                if (locationLateral.Count == 0)
+                {
+                    locationInfos.Add(item);
+                    continue;
+                }
                 foreach (var Lateral in locationLateral)
                 {
+                    if (locationInfos.Contains(Lateral))
+                        continue;
                     if (Lateral.LocationStatus == (int)LocationEnum.Free && Lateral.EnalbeStatus == 1)
                     {
                         locationInfos.Add(item);
@@ -1523,13 +1643,15 @@
                 }
             }
 
-            return locationInfos.OrderBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
+            return locationInfos.Distinct().OrderBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message);
         }
     }
+
+
     public async Task<DtLocationInfo> AGVLIKU(int AreaId)
     {
         WebResponseContent content = new WebResponseContent();
@@ -1545,6 +1667,83 @@
         }
     }
 
+
+    public bool LocationIsOutBound(DtLocationInfo location)
+    {
+        try
+        {
+            int sum = 0;
+            if (location.AreaId == 1)
+            {
+                if (location.Depth == 2)
+                {
+                    var locationLateral = _locationRepository.QueryFirst(x => x.Row == 1 && x.Column == location.Column && x.Layer == location.Layer);
+
+                    if (locationLateral.LocationStatus == (int)LocationEnum.Lock && locationLateral.EnalbeStatus == 1)
+                    {
+                        return false;
+                    }
+                }
+            }
+
+            else if (location.AreaId == 2)
+            {
+                var locationLateral = _locationRepository.QueryData(x => x.Row == location.Row && x.Column > location.Column && x.Remark == location.Remark);
+
+                foreach (var Lateral in locationLateral)
+                {
+                    if (Lateral.LocationStatus == (int)LocationEnum.Lock && Lateral.EnalbeStatus == 1)
+                    {
+                        return false;
+                    }
+                }
+            }
+
+            else if (location.AreaId == 5 || location.AreaId == 6)
+            {
+                var locationLateral = _locationRepository.QueryData(x => x.Row == location.Row && x.Column < location.Column && x.Remark == location.Remark);
+
+                foreach (var lateral in locationLateral)
+                {
+                    if (lateral.LocationStatus == (int)LocationEnum.Lock && lateral.EnalbeStatus == 1)
+                    {
+                        return false;
+                    }
+                }
+            }
+
+            return true;
+        }
+        catch (Exception)
+        {
+            return false;
+        }
+    }
+
+    private DtStockInfo CreatePalletStock(Dt_Task task, DtBoxingInfo boxing)
+    {
+        var loation = _locationRepository.QueryFirst(x => x.RoadwayNo == task.Roadway && x.LocationCode == task.TargetAddress);
+        if (loation == null)
+            throw new Exception("鏈壘鍒板搴斾綅缃俊鎭�");
+
+
+        var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>();
+        boxDetail.ForEach(x => { x.Status = (int)StockStateEmun.宸插叆搴�; });
+        var stock = new DtStockInfo()
+        {
+            PalletCode = task.PalletCode,
+            LocationCode = task.TargetAddress,
+            CreateDate = DateTime.Now,
+            Creater = "system",
+            IsFull = boxing.IsFull,
+            StockInfoDetails = boxDetail,
+        };
+
+        stock.StockStatus = 1;
+
+        return stock;
+    }
+
     #endregion 浠诲姟璇锋眰鏂规硶
 
     #endregion private 鍐呴儴鏂规硶
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/WIDESEA_StorageTaskServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/WIDESEA_StorageTaskServices.csproj"
index 14ef346..b62885e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/WIDESEA_StorageTaskServices.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/WIDESEA_StorageTaskServices.csproj"
@@ -18,6 +18,7 @@
     <ProjectReference Include="..\LogLibrary\LogLibrary.csproj" />
     <ProjectReference Include="..\WIDESEA_Cache\WIDESEA_Cache.csproj" />
     <ProjectReference Include="..\WIDESEA_IBusinessServices\WIDESEA_IBusinessServices.csproj" />
+    <ProjectReference Include="..\WIDESEA_IOrderServices\WIDESEA_IOrderServices.csproj" />
     <ProjectReference Include="..\WIDESEA_IServices\WIDESEA_IServices.csproj" />
     <ProjectReference Include="..\WIDESEA_IStorageBasicService\WIDESEA_IStorageBasicServices.csproj" />
     <ProjectReference Include="..\WIDESEA_IStorageTaskService\WIDESEA_IStorageTaskServices.csproj" />
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer.sln" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer.sln"
index 4dc1a11..fb3e462 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer.sln"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer.sln"
@@ -68,6 +68,14 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEA_Cache", "WIDESEA_Cache\WIDESEA_Cache.csproj", "{461A73BF-9FC7-4BFE-9BEB-2AE686CBFEEC}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEA_OrderServices", "WIDESEA_OrderServices\WIDESEA_OrderServices.csproj", "{20D16B32-8186-420C-B3B7-58B183FC09CF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEA_IOrderServices", "WIDESEA_IOrderServices\WIDESEA_IOrderServices.csproj", "{10CE047F-43CC-4609-8955-9A336E467924}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEA_OrderRepository", "WIDESEA_OrderRepository\WIDESEA_OrderRepository.csproj", "{48DB293D-CCA1-47C8-A3B6-664035F20303}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEA_IOrderRepository", "WIDESEA_IOrderRepository\WIDESEA_IOrderRepository.csproj", "{2A09BCA3-09B0-417A-8453-72663D9A78B9}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -366,6 +374,54 @@
 		{461A73BF-9FC7-4BFE-9BEB-2AE686CBFEEC}.Release|Any CPU.Build.0 = Release|Any CPU
 		{461A73BF-9FC7-4BFE-9BEB-2AE686CBFEEC}.Release|x86.ActiveCfg = Release|Any CPU
 		{461A73BF-9FC7-4BFE-9BEB-2AE686CBFEEC}.Release|x86.Build.0 = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Debug|x86.Build.0 = Debug|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Dev|Any CPU.ActiveCfg = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Dev|Any CPU.Build.0 = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Dev|x86.ActiveCfg = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Dev|x86.Build.0 = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Release|x86.ActiveCfg = Release|Any CPU
+		{20D16B32-8186-420C-B3B7-58B183FC09CF}.Release|x86.Build.0 = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Debug|x86.Build.0 = Debug|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Dev|Any CPU.ActiveCfg = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Dev|Any CPU.Build.0 = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Dev|x86.ActiveCfg = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Dev|x86.Build.0 = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Release|Any CPU.Build.0 = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Release|x86.ActiveCfg = Release|Any CPU
+		{10CE047F-43CC-4609-8955-9A336E467924}.Release|x86.Build.0 = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Debug|x86.Build.0 = Debug|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Dev|Any CPU.ActiveCfg = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Dev|Any CPU.Build.0 = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Dev|x86.ActiveCfg = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Dev|x86.Build.0 = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Release|Any CPU.Build.0 = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Release|x86.ActiveCfg = Release|Any CPU
+		{48DB293D-CCA1-47C8-A3B6-664035F20303}.Release|x86.Build.0 = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Debug|x86.Build.0 = Debug|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Dev|Any CPU.ActiveCfg = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Dev|Any CPU.Build.0 = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Dev|x86.ActiveCfg = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Dev|x86.Build.0 = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Release|x86.ActiveCfg = Release|Any CPU
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -391,6 +447,10 @@
 		{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1} = {A73C1AFF-FF92-4825-B607-2E908077EBA4}
 		{4BDE58B2-5B2E-480B-932F-D63C2A7D557C} = {8498AA9D-CDC4-4FD2-81AE-DE6AD78F75ED}
 		{9912BD12-4CF7-4A91-8203-47C9C125004C} = {8498AA9D-CDC4-4FD2-81AE-DE6AD78F75ED}
+		{20D16B32-8186-420C-B3B7-58B183FC09CF} = {8498AA9D-CDC4-4FD2-81AE-DE6AD78F75ED}
+		{10CE047F-43CC-4609-8955-9A336E467924} = {A73C1AFF-FF92-4825-B607-2E908077EBA4}
+		{48DB293D-CCA1-47C8-A3B6-664035F20303} = {798C4C07-A3B2-47AD-A69C-922D5217B5CA}
+		{2A09BCA3-09B0-417A-8453-72663D9A78B9} = {B131DEBD-A555-490B-B448-46425298E427}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {599A7267-7402-4143-84AE-9B407FC2BB69}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoController.cs"
index a5559b3..26c253a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoController.cs"
@@ -1,4 +1,6 @@
-锘縩amespace WIDESEA_WMSServer.Controllers;
+锘縰sing WIDESEA_DTO.Basic;
+
+namespace WIDESEA_WMSServer.Controllers;
 
 [Route("api/[controller]")]
 [ApiController]
@@ -10,7 +12,7 @@
 
     // POST api/<BoxingInfoController>
     [HttpPost, Route("AddBoxingInfo"), AllowAnonymous]
-    public Task<WebResponseContent> AddBoxingInfoAsync([FromBody] DtBoxingInfo boxingInfo)
+    public Task<WebResponseContent> AddBoxingInfoAsync([FromBody] AddBoxingDto boxingInfo)
     {
         return Service.AddBoxingInfoAsync(boxingInfo);
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs"
index a4d285c..101e060 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs"
@@ -10,9 +10,4 @@
     {
     }
 
-    [HttpGet, AllowAnonymous, Route("GetLocationByStockType")]
-    public Task<Dictionary<string, int>> GetLocationByStockType(bool stockType, string areaCode)
-    {
-        return Service.GetLocationByStockType(stockType, areaCode);
-    }
 }
\ 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_WMSServer/Controllers/ERP/ERPStockController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ERPStockController.cs"
new file mode 100644
index 0000000..00335a9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ERPStockController.cs"
@@ -0,0 +1,22 @@
+锘縰sing WIDESEA_IStorageBasicServices.Stock;
+using WIDESEA_Model.Models.ERP;
+
+namespace WIDESEA_WMSServer.Controllers.ERP
+{
+    [Route("api/stockERP")]
+    [Authorize, ApiController]
+    public class ERPStockController:Controller
+    {
+        private readonly IERPStockInfoService service;
+        public ERPStockController(IERPStockInfoService _service)
+        {
+            service = _service;
+        }
+
+        [HttpPost, Route("GetPageData"),AllowAnonymous]
+        public PageGridData<WMS_鐢ㄥ弸搴撳瓨涓�瑙堣〃_ST> GetPageData([FromBody] PageDataOptions options)
+        {
+            return service.GetPageData(options);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Order/InboundOrderController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Order/InboundOrderController.cs"
new file mode 100644
index 0000000..4ae9456
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Order/InboundOrderController.cs"
@@ -0,0 +1,24 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_BusinessServices;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IBusinessServices;
+using WIDESEA_IOrderServices;
+using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.Basic;
+using WIDESEA_Model.Models.Order;
+using WIDESEAWCS_BasicInfoService;
+
+namespace WIDESEA_WMSServer.Controllers
+{
+    [Route("api/InboundOrder")]
+    [ApiController]
+    public class InboundOrderController : ApiBaseController<IDt_InboundOrderService, Dt_InboundOrder>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public InboundOrderController(IDt_InboundOrderService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs"
index aa8a92b..13329dd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs"
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using System.ComponentModel;
 using System.Reflection;
+using WIDESEA_Common;
 using WIDESEA_Core.Caches;
 using WIDESEA_Core.Enums;
 
@@ -340,6 +341,36 @@
                         result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                     }
                     break;
+                case "StatusChangeType":
+                    {
+                        List<object> data = new List<object>();
+
+                        #region StatusChangeTypeEnum
+                        {
+                            Type type = typeof(StatusChangeTypeEnum);
+                            List<int> enums = Enum.GetValues(typeof(StatusChangeTypeEnum)).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = typeof(StatusChangeTypeEnum).GetField(((StatusChangeTypeEnum)item).ToString());
+                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                if (description != null)
+                                {
+                                    data.Add(new { key = item.ToString(), value = description.Description });
+                                }
+                                else
+                                {
+                                    data.Add(new { key = item.ToString(), value = item.ToString() });
+                                }
+                                index++;
+                            }
+                        }
+                        #endregion
+
+                        result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                    }
+                    break;
+                    
             }
             return result;
         }
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 04f3c84..eea9955 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"
@@ -33,11 +33,11 @@
     /// </summary>
     /// <param name="input">璇锋眰鏁版嵁</param>
     /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestTaskAsync")]
+    [HttpPost, AllowAnonymous, Route("RequestInboundTaskAsync")]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
-    public async Task<WebResponseContent> RequestTaskAsync([FromBody] RequestTaskDto input)
+    public async Task<WebResponseContent> RequestInboundTaskAsync([FromBody] RequestTaskDto input)
     {
-        return await Service.RequestTaskAsync(input);
+        return await Service.RequestInboundTaskAsync(input);
     }
 
     /// <summary>
@@ -57,11 +57,11 @@
     /// </summary>
     /// <param name="request">璇锋眰鏁版嵁</param>
     /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestOutTaskAsync")]
+    [HttpPost, AllowAnonymous, Route("RequestOutboundTaskAsync")]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
-    public async Task<WebResponseContent> RequestOutTaskAsync([FromBody] RequestTaskDto taskDto)
+    public async Task<WebResponseContent> RequestOutboundTaskAsync([FromBody] RequestTaskDto taskDto)
     {
-        return await Service.RequestOutTaskAsync(taskDto);
+        return await Service.RequestOutboundTaskAsync(taskDto);
     }
 
     /// <summary>
@@ -87,43 +87,6 @@
         return await Service.AcrossFloorTaskAsync(taskDto);
     }
 
-    /// <summary>
-    /// 璺ㄦゼ灞備换鍔¤姹�
-    /// </summary>
-    /// <param name="taskDto"></param>
-    /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestAcrossFloorTaskAsync")]
-    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
-    public async Task<WebResponseContent> RequestAcrossFloorTaskAsync([FromBody] RequestTaskDto taskDto)
-    {
-        return await Service.RequestAcrossFloorTaskAsync(taskDto);
-    }
-
-    [HttpPost, AllowAnonymous, Route("RequestPointAcrossFloorTaskAsync")]
-    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
-    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")]
-    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
-    public async Task<WebResponseContent> RequestAGVCarryTaskAsync([FromBody] RequestTaskDto taskDto)
-    {
-        return await Service.RequestAGVCarryTaskAsync(taskDto);
-    }
-
-    [HttpPost, AllowAnonymous, Route("RequestPointAGVCarryTaskAsync")]
-    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
-    public async Task<WebResponseContent> RequestPointAGVCarryTaskAsync([FromBody] RequestTaskDto taskDto)
-    {
-        return await Service.RequestPointAGVCarryTaskAsync(taskDto);
-    }
 
     [HttpPost, AllowAnonymous, Route("GetEmptyLocation")]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/Task_HtyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/Task_HtyController.cs"
index 562cc23..c33f3c6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/Task_HtyController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/Task_HtyController.cs"
@@ -1,5 +1,4 @@
 锘縰sing WIDESEA_DTO;
-using static WIDESEA_DTO.RequestTaskDto;
 
 namespace WIDESEA_WMSServer.Controllers.Task;
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj"
index c111ba5..a339753 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj"
@@ -35,6 +35,7 @@
 	<ItemGroup>
 	  <ProjectReference Include="..\WIDESEA_BusinessServices\WIDESEA_BusinessServices.csproj" />
 	  <ProjectReference Include="..\WIDESEA_Cache\WIDESEA_Cache.csproj" />
+	  <ProjectReference Include="..\WIDESEA_OrderServices\WIDESEA_OrderServices.csproj" />
 	  <ProjectReference Include="..\WIDESEA_Services\WIDESEA_Services.csproj" />
 	  <ProjectReference Include="..\WIDESEA_IServices\WIDESEA_IServices.csproj" />
 	  <ProjectReference Include="..\WIDESEA_StorageBasicServices\WIDESEA_StorageBasicServices.csproj" />
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
index 6144754..194844c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
@@ -5,7 +5,7 @@
       "Microsoft.AspNetCore": "Warning"
     }
   },
-  "dics": "taskType,taskState,operateTypeEnum",
+  "dics": "taskType,taskState,operateTypeEnum,StatusChangeType",
   "AllowedHosts": "*",
   "urls": "http://*:5000",
   "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
@@ -14,7 +14,8 @@
   //"DBType": "SqlServer",
   //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
   "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_MHLK;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionStringWCS": "Data Source=.;Initial Catalog=WIDESEAWCS_MHLK;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  //"ConnectionStringWCS": "Data Source=.;Initial Catalog=WIDESEAWCS_MHLK;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionStringERP": "Data Source=192.168.117.110;Initial Catalog=MHI;User ID=wms2;Password=Wms2025;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //璺ㄥ煙
   "Cors": {
     "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О

--
Gitblit v1.9.3