From 6c663b92b0078aa89657df22ec188dff65599f04 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期二, 21 十月 2025 17:24:38 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue                               |   47 -
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs                           |  270 ++++++--
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                         |   38 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs                 |    5 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs             |  116 +++
 项目代码/PDA/pages/task/CompletedTask.vue                                                                   |   34 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo_Hty.cs                          |    1 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db          |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm      |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue                        |    2 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json                                |  154 ++--
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs                          |   23 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoHtyController.cs               |   13 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs                         |   41 +
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfo.vue                                 |  167 ++++
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfoHty.vue                              |  202 ++++++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfo.cs                              |    1 
 项目代码/PDA/pages.json                                                                                     |   47 -
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db     |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs                       |    6 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                |   38 
 项目代码/WMS/WIDESEA_WMSClient/src/router/tables.js                                                         |    9 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue                          |    8 
 项目代码/PDA/pages/task/Inbound.vue                                                                         |  136 ++-
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Boxing/BoxingInfoHtyRepository.cs             |    9 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs                                             |    6 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoService.cs                    |    7 
 项目代码/PDA/common/config.js                                                                               |   12 
 项目代码/PDA/pages/index/index.vue                                                                          |   32 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/Order/InboundOrder.vue                                 |    4 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/LocationStatusChange.vue                     |   12 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoHtyService.cs                  |   20 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoController.cs                  |    8 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoHtyService.cs                 |    9 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx                        |   83 ++
 项目代码/WMS/WIDESEA_WMSClient/config/buttons.js                                                            |    9 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs                            |    3 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json                         |  127 ++-
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/Basic.cs                                                     |    2 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue                                   |    3 
 项目代码/PDA/pages/basic/cachePoint.vue                                                                     |   25 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs                     |   95 ++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs                |    2 
 项目资料/通信协议/明和U9接口.xlsx                                                                                   |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/DtBoxingInfoHty.js                           |   78 ++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Boxing/IBoxingInfoHtyRepository.cs           |    6 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs                |    4 
 /dev/null                                                                                               |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json                                           |    2 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db          |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                    |   29 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db     |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue                            |    1 
 56 files changed, 1,412 insertions(+), 534 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/config.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/config.js"
index 47f2efa..624735c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/config.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/common/config.js"
@@ -102,16 +102,20 @@
 	organizeValue: "",
 	AreaId: [
 		{
-			value: "4",
-			text: "涓�妤糀GV鍏ュ簱鍖�"
+			value: "1",
+			text: "涓�妤煎爢鍨涙満绔嬪簱鍖�"
 		},
 		{
 			value: "2",
-			text: "涓�妤糀GV鍑哄簱鍖�"
+			text: "涓�妤糀GV鍑哄簱缂撳瓨鍖�"
 		},
 		{
 			value: "3",
-			text: "AGV绔嬪簱缂撳瓨鍖�"
+			text: "涓�妤糀GV绔嬪簱缂撳瓨鍖�"
+		},
+		{
+			value: "4",
+			text: "涓�妤糀GV鍏ュ簱缂撳瓨鍖�"
 		},
 		{
 			value: "5",
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 aa99c78..a975b27 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages.json"
@@ -29,64 +29,29 @@
 			}
 		},
 		{
-			"path": "pages/task/AcrossFloor",
+			"path": "pages/task/CompletedTask",
 			"style": {
-				"navigationBarTitleText": "璺ㄦゼ灞傛惉杩�",
+				"navigationBarTitleText": "浠诲姟瀹屾垚",
 				"enablePullDownRefresh": false
 			}
 		},
 		{
-			"path": "pages/task/AGVCarry",
+			"path": "pages/task/CancelTask",
 			"style": {
-				"navigationBarTitleText": "AGV鎼繍",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/Order/inboundOrder",
-			"style": {
-				"navigationBarTitleText": "鍏ュ簱璁㈠崟",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/task/TaskInfo",
-			"style": {
-				"navigationBarTitleText": "浠诲姟淇℃伅",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/Order/Inorderboxing",
-			"style": {
-				"navigationBarTitleText": "鍑哄簱鏄庣粏",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/Order/Outorderboxing",
-			"style": {
-				"navigationBarTitleText": "鍏ュ簱鏄庣粏",
-				"enablePullDownRefresh": true
-			}
-		},
-		{
-			"path": "pages/Order/OutOrderDetail",
-			"style": {
-				"navigationBarTitleText": "鍏ュ簱鍗曟嵁鏄庣粏鎿嶄綔",
+				"navigationBarTitleText": "鍙栨秷",
 				"enablePullDownRefresh": false
 			}
 		},
 		{
 			"path": "pages/task/Inbound",
 			"style": {
-				"navigationBarTitleText": "鍫嗗灈鏈�",
+				"navigationBarTitleText": "鍏ュ簱",
 				"enablePullDownRefresh": false
 			}
 		},{
 			"path": "pages/task/Outbound",
 			"style": {
-				"navigationBarTitleText": "AGV",
+				"navigationBarTitleText": "鍑哄簱",
 				"enablePullDownRefresh": false
 			}
 		},
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/Inorderboxing.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/Inorderboxing.vue"
deleted file mode 100644
index 4669881..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/Inorderboxing.vue"
+++ /dev/null
@@ -1,494 +0,0 @@
-<template>
-	<view>
-		<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
-		</uni-segmented-control>
-		<view class="content">
-			<view v-if="current === 0" class="headerstyle">
-				<view class="itemstyle">
-					<uni-forms label-width="180">
-						<uni-forms-item :label="label">
-						</uni-forms-item>
-						<uni-forms-item label="鎵樼洏鏉$爜:">
-							<uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus"
-								v-model="barcode" @input="barcodeInput" />
-						</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-forms-item>
-							<checkbox checked="check">鏄惁婊$洏</checkbox>
-						</uni-forms-item>
-						<uni-forms-item>
-							<button @click="submit" type="primary" size="default" style="margin-top: 2%;">缁勭洏</button>
-						</uni-forms-item>
-					</uni-forms>
-					<uni-list>
-						<uni-list-item direction="column" v-for="item in matTotal" :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.matCode}}</view>
-										<view class="uni-title-sub uni-ellipsis-2">鏁伴噺锛歿{item.matQuantity}}</view>
-									</view>
-								</view>
-							</template>
-						</uni-list-item>
-						<uni-list-item direction="column" v-for="(item,index) in matInfos" :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.sn)">
-									</uni-icons>
-									<view class="uni-content">
-										<view class="uni-title-sub uni-ellipsis-2">璁㈠崟鍙凤細{{item.orderNo}}</view>
-										<view class="uni-note">鐗╂枡缂栫爜锛歿{item.matCode}}</view>
-										<view class="uni-note">鏁伴噺锛歿{item.matQty}}</view>
-									</view>
-								</view>
-							</template>
-						</uni-list-item>
-					</uni-list>
-				</view>
-			</view>
-			<view v-if="current === 1" class="headerstyle">
-				<view class="itemstyle">
-					<uni-forms label-width="120">
-						<uni-forms-item label="鎵樼洏鏉$爜">
-							<uni-easyinput type="text" :focus="!addressFocus" v-model="inboundBarcode"
-								placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode" />
-						</uni-forms-item>
-						<uni-forms-item label="鍦板潃鏉$爜">
-							<uni-easyinput type="text" v-model="address" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
-								:focus="addressFocus" />
-						</uni-forms-item>
-						<uni-forms-item>
-							<button @click="inbound" type="primary" size="default" style="margin-top: 2%;">鍏ュ簱纭</button>
-						</uni-forms-item>
-					</uni-forms>
-				</view>
-			</view>
-			<view v-if="current === 2" class="headerstyle">
-				<view class="itemstyle">
-					<uni-list :border="true">
-						<uni-list-item direction="column" v-for="(item,index) in orderDetail" :key="index">
-							<template v-slot:body>
-								<view class="uni-list-box">
-									<view class="uni-content">
-										<view style="font-size: 18px;">鍗曟嵁鍙凤細{{orderNo}}</view>
-										<view style="font-size: 18px;">鐗╂枡缂栫爜锛歿{item.materielCode}}</view>
-										<view style="font-size: 18px;">鐗╂枡鍚嶇О锛歿{item.materielName}}</view>
-										<view style="font-size: 18px;">鏁伴噺锛歿{item.orderQuantity}}</view>
-										<view style="font-size: 18px;">涓婃灦鏁伴噺锛歿{item.overInQuantity}}</view>
-										<view style="font-size: 18px;">缁勭洏鏁伴噺锛歿{item.receiptQuantity}}</view>
-									</view>
-								</view>
-							</template>
-						</uni-list-item>
-					</uni-list>
-				</view>
-			</view>
-			<view v-if="current === 3" class="headerstyle">
-				<view class="itemstyle">
-					<uni-forms label-width="120">
-						<uni-forms-item>
-							<uni-easyinput type="text" @input="releaseboxInput" v-model="value" placeholder="璇锋壂鐮�"
-								ref='midInput' :focus="true" />
-						</uni-forms-item>
-						<uni-forms-item>
-							<button @click="releasebox" type="primary" size="default">瑙g洏</button>
-						</uni-forms-item>
-					</uni-forms>
-					<uni-list>
-						<uni-list-item direction="column" v-if="value2">
-							<template v-slot:body>
-								<view class="uni-list-box">
-									<view class="uni-content">
-										<view class="uni-title-sub uni-ellipsis-2">鎵樼洏鍙凤細{{value2}}</view>
-									</view>
-								</view>
-							</template>
-						</uni-list-item>
-						<uni-list-item direction="column" v-for="item in matTotal" :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.matCode}}</view>
-										<view class="uni-title-sub uni-ellipsis-2">鏁伴噺锛歿{item.matQuantity}}</view>
-									</view>
-								</view>
-							</template>
-						</uni-list-item>
-
-						<uni-list-item direction="column" v-for="(item,index) in matInfo" :key="index">
-							<template v-slot:body>
-								<view class="uni-list-box">
-									<view class="uni-content">
-										<view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">
-											鐗╂枡缂栫爜锛歿{item.matCode}}
-										</view>
-										<view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">
-											鐗╂枡鍚嶇О锛歿{item.matName}}
-										</view>
-										<view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">
-											鏁伴噺锛歿{item.matQty}}
-										</view>
-									</view>
-								</view>
-							</template>
-						</uni-list-item>
-					</uni-list>
-				</view>
-			</view>
-		</view>
-		<u-toast ref="uToast" />
-	</view>
-</template>
-
-<script>
-	const innerAudioContext = uni.createInnerAudioContext();
-	export default {
-		data() {
-			return {
-				items: ['缁勭洏', '鍏ュ簱', '鍗曟嵁淇℃伅', '瑙g洏'],
-				current: 0,
-				matTotal: [],
-				matInfos: [],
-				orderNo: "",
-				label: "",
-				orderDetail: [],
-				focus: false,
-				barcode: "",
-				materSn: "",
-				sns: [],
-				addressFocus: false,
-				inboundBarcode: "",
-				address: "",
-				check: true,
-				value: "",
-				matInfo: [],
-				value2: "",
-				matTotals: []
-			}
-		},
-		onShow() {},
-		onLoad(res) {
-			this.focus = false;
-			this.addressFocus = false;
-			this.orderNo = res.orderNo;
-			this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
-			this.getData();
-		},
-		methods: {
-			voiceSpeech(src) {
-				innerAudioContext.src = src; // '../../static/success.mp3';
-				innerAudioContext.play();
-			},
-			//瑙g洏
-			releasebox() {
-				if (this.value.length == 0) {
-					this.$refs.uToast.show({
-						title: "璇锋壂鐮�",
-						type: "error"
-					})
-					return;
-				}
-				var param;
-				var matInfo = this.value.split('|');
-				if (matInfo.length == 7) {
-					param = {
-						MainData: {
-							"innerCode": this.value
-						}
-					}
-				} else {
-					param = {
-						MainData: {
-							"barcode": this.value
-						}
-					}
-				}
-				this.$u.post('/api/StockOperate/ReleaseAllBox', param).then(resdt => {
-					if (resdt.status) {
-						uni.$showMsg('瑙g洏鎴愬姛!')
-						this.value = "";
-						this.matInfo = [];
-						this.matTotals = [];
-						this.value2 = "";
-					} else {
-						this.$refs.uToast.show({
-							title: resdt.message,
-							type: "error"
-						})
-					}
-				})
-			},
-			releaseboxInput() {
-				this.$nextTick(() => {
-					if (this.value.length == 0) {
-						return;
-					}
-					var matInfo = this.value.split('|');
-					this.matInfo = [];
-					if (matInfo.length == 7) {
-						this.$u.post('/api/StockOperate/GetStockInfoByInnerCode', {
-							MainData: {
-								"innerCode": this.value
-							}
-						}).then(res => {
-							if (res.status) {
-								this.matInfo = res.data.stockInfo;
-								this.matTotals = res.data.stockTotal;
-								this.value2 = res.data.barcode;
-							} else {
-								this.$refs.uToast.show({
-									title: res.message,
-									type: "error"
-								})
-							}
-						})
-					} else {
-						this.$u.post('/api/StockOperate/GetStockInfoByBarcode', {
-							MainData: {
-								"barcode": this.value
-							}
-						}).then(res => {
-							if (res.status) {
-								this.matInfo = res.data.stockInfo;
-								this.matTotals = res.data.stockTotal;
-								this.value2 = res.data.barcode;
-							} else {
-								this.$refs.uToast.show({
-									title: res.message,
-									type: "error"
-								})
-							}
-						})
-					}
-				})
-			},
-
-			updateFocus() {
-				this.$nextTick(() => {
-					this.materSn = '';
-					if (!this.focus) {
-						this.focus = true;
-					}
-				});
-			},
-			barcodeFocus() {
-				this.barcode = '';
-				if (this.focus) {
-					this.focus = false;
-				}
-			},
-			getData() {
-				var postData = this.orderNo
-
-				this.$u.post('/api/InboundOrder/GetInboundOrderDetail', postData).then((res) => {
-					if (res.status) {
-						this.orderDetail = res.data;
-						if (this.orderDetail.length > 3) {
-							this.loadVisible = true;
-						}
-					}
-				})
-			},
-			onClickItem(e) {
-				this.focus = false;
-				this.addressFocus = false;
-				if (this.current !== e.currentIndex) {
-					this.current = e.currentIndex;
-					if (this.current == 2) {
-						this.getData();
-					}
-				}
-			},
-			barcodeInput() {
-				this.$nextTick(function(x) {
-					if (this.barcode.length > 0) {
-						this.focus = true;
-					}
-				})
-			},
-			snInput() {
-				this.$nextTick(() => {
-					if (this.materSn != "") {
-						this.focus = false;
-						var matSn = this.materSn;
-						setTimeout(() => {
-							this.materSn = "";
-						}, 10);
-						var matInfo = matSn.split('|');
-
-						if (matInfo.length == 7) {
-							var matObj = {
-								matCode: matInfo[1],
-								matProductionDate: matInfo[3],
-								matQty: matInfo[5],
-								orderNo: matInfo[6],
-								sn: matSn
-							}
-							var temp = this.matInfos.find(x => x.orderNo == matObj.orderNo);
-							if (!temp) {
-								var tmp = this.matTotal.find(x => x.matCode == matObj.matCode);
-								if (!tmp) {
-									this.matTotal.push({
-										matCode: matObj.matCode,
-										matQuantity: parseInt(matObj.matQty)
-									})
-								} else {
-									tmp.matQuantity += parseInt(matObj.matQty);
-								}
-								this.sns.push(matSn);
-								this.matInfos.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);
-							}
-						} else {
-							this.$refs.uToast.show({
-								title: "鎵爜閿欒,璇锋壂鎻忔纭唴绠辩爜",
-								type: "error"
-							})
-							setTimeout(this.updateFocus, 200);
-							setTimeout(() => {
-								this.voiceSpeech('../../static/fail.mp3');
-							}, 100);
-						}
-					}
-				})
-			},
-			inbound() {
-				var postData = {
-					MainData: {
-						"barcode": this.inboundBarcode,
-						"startPoint": this.address
-					}
-				}
-				this.$u.post('/api/Inbound/RequestInbound', postData).then(res => {
-					if (res.status) {
-						uni.$showMsg(res.message);
-						this.inboundBarcode = "";
-						this.address = "";
-						setTimeout(() => {
-							this.addressFocus = false;
-						}, 200);
-					} else {
-						this.$refs.uToast.show({
-							title: res.message,
-							type: "error"
-						})
-					}
-				}).catch(err => {
-					this.$refs.uToast.show({
-						title: err.message,
-						type: "error"
-					})
-				})
-			},
-			inputChangebarcode() {
-				this.addressFocus = false;
-				this.$nextTick(function(x) {
-					if (this.inboundBarcode != '') {
-						this.addressFocus = true;
-					}
-				})
-			},
-			deleteList(res) {
-				var sn = '';
-				this.matInfos.map((item, index) => {
-					if (item.sn == res) {
-						this.matInfos.splice(index, 1);
-						sn = item.sn;
-						var tmp = this.matTotal.find(x => x.matCode == item.matCode);
-						if (tmp) {
-							tmp.matQuantity -= parseInt(item.matQty);
-						} else {
-
-						}
-					}
-				})
-				this.sns.map((item, index) => {
-					if (item == res) {
-						this.sns.splice(index, 1);
-					}
-				})
-			},
-			submit() {
-				if (this.barcode == "") {
-					this.$refs.uToast.show({
-						title: "璇锋壂鎻忔墭鐩樻潯鐮�",
-						type: 'error'
-					})
-					return;
-				}
-				if (this.sns.length == 0) {
-					this.$refs.uToast.show({
-						title: "璇锋壂鎻忓唴绠辨爣绛�",
-						type: 'error'
-					})
-					return;
-				}
-				this.$u.post('/api/Bill_group_stock/PDA_ScanInStock', {
-					MainData: {
-						"pallet_barcode": this.barcode,
-						"orderNo": this.orderNo,
-						"isFull": this.check
-					},
-					DelKeys: this.sns
-				}).then(res => {
-					if (res.status) {
-						this.$refs.uToast.show({
-							title: "缁勭洏鎴愬姛",
-							type: "success"
-						})
-						this.focus = false;
-						this.barcode = "";
-						this.matInfos = [];
-						this.sns = [];
-						this.matTotal = [];
-					} else {
-						this.$refs.uToast.show({
-							title: res.message,
-							type: "error"
-						})
-					}
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	@import '@/common/uni-ui.scss';
-
-	.content {
-		display: flex;
-		height: 150px;
-	}
-
-	.content-text {
-		font-size: 14px;
-		color: #666;
-	}
-
-	.itemstyle {
-		margin-top: 30px;
-		margin-left: 5%;
-	}
-
-	.headerstyle {
-		width: 90%;
-	}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/inboundOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/inboundOrder.vue"
deleted file mode 100644
index 0e3ddf8..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Order/inboundOrder.vue"
+++ /dev/null
@@ -1,164 +0,0 @@
-<template>
-	<view>
-		<u-sticky>
-			<view style="background-color: #ffffff;">
-				<uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar>
-			</view>
-		</u-sticky>
-		<uni-list :border="true">
-			<uni-list-item direction="column" clickable @click="groupClick(item.orderNo)" link
-				:to="page+item.orderNo" v-for="item in allReceivingOrders" :key="item.orderNo">
-				<template v-slot:body>
-					<uni-group margin-top="20">
-						<view> 鍗曞彿:{{item.orderNo}} </view>
-						<view> 鍒涘缓浜�:{{item.creater}} </view>
-						<view> 鏃ユ湡:{{item.createDate}} </view>
-					</uni-group>
-				</template>
-			</uni-list-item>
-
-		</uni-list>
-		<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
-
-		<u-back-top :scroll-top="scrollTop" top="400"></u-back-top>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				page: "/pages/materielGroup/Inorderboxing?orderNo=",
-				loadVisible: false,
-				searchValue: "",
-				status: "more",
-				allReceivingOrders: [],
-				pageNo: 1,
-				scrollTop: 0
-			}
-		},
-		onLoad(res) {
-			this.getData();
-		},
-		onReachBottom() {
-			this.pageNo += 1;
-			this.getData();
-		},
-		onPageScroll(e) {
-			this.scrollTop = e.scrollTop;
-		},
-		methods: {
-			search(res) {
-				this.getData();
-			},
-			groupClick() {
-
-			},
-			getData() {
-				var postData = {
-						orderNo: this.searchValue,
-						pageNo: this.pageNo
-				}
-				this.$u.post('/api/InboundOrder/GetInboundOrder', postData).then((res) => {
-					if (res.status) {
-						if (this.searchValue == '') {
-							this.allReceivingOrders = this.allReceivingOrders.concat(res.data);
-							if (this.allReceivingOrders.length > 3) {
-								this.loadVisible = true;
-							} else {
-								this.loadVisible = false;
-							}
-						} else {
-							this.allReceivingOrders = res.data;
-							if (this.allReceivingOrders.length > 3) {
-								this.loadVisible = true;
-							} else {
-								this.loadVisible = false;
-							}
-						}
-					}
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	@import '@/common/uni-ui.scss';
-
-	page {
-		display: flex;
-		flex-direction: column;
-		box-sizing: border-box;
-		background-color: #efeff4;
-		min-height: 100%;
-		height: auto;
-	}
-
-	.tips {
-		color: #67c23a;
-		font-size: 14px;
-		line-height: 40px;
-		text-align: center;
-		background-color: #f0f9eb;
-		height: 0;
-		opacity: 0;
-		transform: translateY(-100%);
-		transition: all 0.3s;
-	}
-
-	.tips-ani {
-		transform: translateY(0);
-		height: 40px;
-		opacity: 1;
-	}
-
-	.content {
-		width: 100%;
-		display: flex;
-	}
-
-	.list-picture {
-		width: 100%;
-		height: 145px;
-	}
-
-	.thumb-image {
-		width: 100%;
-		height: 100%;
-	}
-
-	.ellipsis {
-		display: flex;
-		overflow: hidden;
-	}
-
-	.uni-ellipsis-1 {
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
-
-	.uni-ellipsis-2 {
-		overflow: hidden;
-		text-overflow: ellipsis;
-		display: -webkit-box;
-		-webkit-line-clamp: 2;
-		-webkit-box-orient: vertical;
-	}
-
-	.customcss {
-		display: flex;
-		position: fixed;
-		width: 100%;
-		top: 10px;
-		text-align: center;
-		z-index: 999;
-		left: 30px;
-		height: 20%;
-	}
-
-	.footer {
-		padding-top: 50%;
-	}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/basic/cachePoint.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/basic/cachePoint.vue"
index 50e971a..9a69483 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/basic/cachePoint.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/basic/cachePoint.vue"
@@ -14,21 +14,6 @@
                 	<u-toast ref="uToast" />
                 </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="value"
-                				placeholder="璇疯緭鍏ョ紦瀛樼偣" ref='midInput' />
-                		</uni-forms-item>
-                	</uni-forms>
-                	<button @click="submit" type="primary" size="default" style="margin-top: 2%;">鎷嗗寘</button>
-                	<u-toast ref="uToast" />
-                </view>
-            </view>
-            <!-- <view v-show="current === 2">
-                閫夐」鍗�3鐨勫唴瀹�
-            </view> -->
         </view>
     </view>
 </template>
@@ -40,7 +25,7 @@
 				istrue: false,
 				range: [],
 				value: "",
-				items: ['閲婃斁缂撳瓨浣�', '鎷嗗寘'],
+				items: ['閲婃斁缂撳瓨浣�'],
 				current: 0
 			}
 		},
@@ -61,13 +46,7 @@
 					})
 					return;
 				}
-				var param = {
-					MainData: {
-						matCode: this.value,
-						endPoint: this.value
-					}
-				}
-				this.$u.post('/api/AcrossFloorCarry/AcrossFloorCallMat', param).then(res => {
+				this.$u.post('/api/LocationInfo/initializeLocation?locationCode='+this.value,"").then(res => {
 					if (res.status) {
 						this.$refs.uToast.show({
 							title: "閲婃斁鎴愬姛",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/index/index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/index/index.vue"
index b2baced..06e2fd1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/index/index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/index/index.vue"
@@ -48,8 +48,6 @@
 		},
 		onLoad() {
 			this.getCurrentTree();
-			this.Socketonline();
-			this.GetAutoStatus();
 		},
 		beforeDestroy() {
 			if (this.intervalId) {
@@ -57,12 +55,6 @@
 			}
 		},
 		mounted() {
-			this.Socketonline();
-			this.GetAutoStatus();
-			setInterval(() => {
-				this.Socketonline();
-				this.GetAutoStatus();
-			}, 5000);
 
 			var print = uni.getStorageSync('printFloor');
 			if (print) {
@@ -172,30 +164,6 @@
 				this.$u.post('/api/Menu/getTreeMenu', {}).then(result => {
 					this.tree = result;
 				})
-			},
-			GetAutoStatus() {
-				this.$u.post('/api/PDA/GetAutoStatus', {}).then(result => {
-					if (result == false) {
-						this.value = false;
-					} else {
-						this.value = true;
-					}
-				}).catch(error => {
-					this.value = false;
-				});
-			},
-			Socketonline() {
-				this.$u.post('/api/PDA/Socketonline', {}).then(result => {
-					if (result.data != null && result.data == false) {
-						console.log(result);
-						this.online = false;
-					} else {
-						this.online = true;
-					}
-					// = result;
-				}).catch(error => {
-					this.online = false;
-				});
 			},
 			getTree(id, data, isRootId) {
 				this.datas.forEach((x) => {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AGVCarry.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AGVCarry.vue"
deleted file mode 100644
index 69999da..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AGVCarry.vue"
+++ /dev/null
@@ -1,236 +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" v-model="SourceAddress" placeholder="璇疯緭鍏GV鎼繍璧风偣"
-							ref='midInput' />
-					</uni-forms-item>
-					<uni-forms-item label="缁堢偣鍖哄煙">
-						<uni-data-select :focus="!istrue" v-model="AreaId" :localdata="range"
-							placeholder="璇烽�夋嫨AGV鎼繍缁堢偣鍖哄煙"></uni-data-select>
-					</uni-forms-item>
-				</uni-forms>
-				<button @click="RequestAGVCarryTaskAsync" type="primary" size="default"
-					style="margin-top: 2%;">鎼繍</button>
-			</view>
-		</view>
-		<view v-show="current === 1">
-			<view style="padding: 5%;">
-				<uni-forms label-width="120">
-					<uni-forms-item label="鎵樼洏缂栫爜">
-						<uni-easyinput type="text" :focus="barcodefocus" @input="inputChangebarcode" v-model="Barcode"
-							placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
-					</uni-forms-item>
-					<uni-forms-item label="鎼繍璧风偣">
-						<uni-easyinput type="text" :focus="barcodefocus" v-model="StartAddress" placeholder="璇疯緭鍏ユ惉杩愯捣鐐�"
-							ref='midInput' />
-					</uni-forms-item>
-					<uni-forms-item label="鎼繍缁堢偣">
-						<uni-easyinput type="text" :focus="barcodefocus" v-model="EndAddress" placeholder="璇疯緭鍏ユ惉杩愮粓鐐�"
-							ref='midInput' />
-					</uni-forms-item>
-				</uni-forms>
-				<button @click="RequestPointAGVCarryTaskAsync" type="primary" size="default"
-					style="margin-top: 2%;">鎼繍</button>
-				
-			</view>
-		</view>
-		<u-loading mode="circle" :show="loadingVisible"></u-loading>
-		<u-toast ref="uToast" />
-	</view>
-</template>
-
-<script>
-	import {
-		config
-	} from '../../common/config';
-	export default {
-		data() {
-			return {
-				istrue: false,
-				barcodefocus: false,
-				loadingVisible: false,
-				EndAddress: "",
-				StartAddress: "",
-				Barcode: "",
-				AreaId: "",
-				PalletCode: "",
-				SourceAddress: "",
-				items: ['AGV鍖哄煙鎼繍', '鐐瑰鐐规惉杩�'],
-				current: 0,
-				range: [],
-			}
-		},
-		onLoad(e){
-			this.range=config.AreaId
-		},
-		methods: {
-			onClickItem(e) {
-				if (this.current != e.currentIndex) {
-					this.current = e.currentIndex;
-				}
-			},
-			RequestAGVCarryTaskAsync() {
-				if (this.PalletCode.length <= 0) {
-					this.$refs.uToast.show({
-						title: "鎵樼洏缂栫爜涓嶈兘涓虹┖",
-						type: "error"
-					})
-					return;
-				}
-				if (this.SourceAddress.length <= 0) {
-					this.$refs.uToast.show({
-						title: "璧风偣浣嶇疆涓嶈兘涓虹┖",
-						type: "error"
-					})
-					return;
-				}
-				try {
-					this.loadingVisible = true;
-					var param = {
-						"PalletCode": this.PalletCode,
-						"Position": this.SourceAddress,
-						"AreaId": this.AreaId
-					}
-					this.$u.post('/api/Task/RequestAGVCarryTaskAsync', param).then(res => {
-						if (res.status) {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "success"
-							})
-							this.PalletCode = "";
-							this.SourceAddress = "";
-							this.AreaId = "";
-							this.istrue = false;
-						} else {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "error"
-							})
-						}
-					})
-				} catch (error) {
-					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
-					console.error("璇锋眰寮傚父:", error);
-				} finally {
-					// 纭繚閬僵灞傞殣钘�
-					this.loadingVisible = false;
-				}
-			},
-
-			RequestPointAGVCarryTaskAsync() {
-				if (this.EndAddress.length <= 0 || this.Barcode.length <= 0) {
-					this.$refs.uToast.show({
-						title: "璇疯緭鍏ヨ捣鐐圭珯鍙�",
-						type: "error"
-					})
-					return;
-				}
-				try {
-					this.loadingVisible = true;
-					var param = {
-						"PalletCode": this.Barcode,
-						"Position": this.StartAddress,
-						"TargetAddress": this.EndAddress
-					}
-					this.$u.post('/api/Task/RequestPointAGVCarryTaskAsync', param).then(res => {
-						if (res.status) {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "success"
-							})
-							this.Barcode = "";
-							this.EndAddress = "";
-							this.StartAddress = "";
-							this.barcodefocus = false;
-						} else {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "error"
-							})
-						}
-					})
-				} catch (error) {
-					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
-					console.error("璇锋眰寮傚父:", error);
-				} finally {
-					// 纭繚閬僵灞傞殣钘�
-					this.loadingVisible = false;
-				}
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	@import '@/common/uni-ui.scss';
-
-	page {
-		display: flex;
-		flex-direction: column;
-		box-sizing: border-box;
-		background-color: #efeff4;
-		min-height: 100%;
-		height: auto;
-	}
-
-	.tips {
-		color: #67c23a;
-		font-size: 14px;
-		line-height: 40px;
-		text-align: center;
-		background-color: #f0f9eb;
-		height: 0;
-		opacity: 0;
-		transform: translateY(-100%);
-		transition: all 0.3s;
-	}
-
-	.tips-ani {
-		transform: translateY(0);
-		height: 40px;
-		opacity: 1;
-	}
-
-	.content {
-		width: 100%;
-		display: flex;
-	}
-
-	.list-picture {
-		width: 100%;
-		height: 145px;
-	}
-
-	.thumb-image {
-		width: 100%;
-		height: 100%;
-	}
-
-	.ellipsis {
-		display: flex;
-		overflow: hidden;
-	}
-
-	.uni-ellipsis-1 {
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
-
-	.uni-ellipsis-2 {
-		overflow: hidden;
-		text-overflow: ellipsis;
-		display: -webkit-box;
-		-webkit-line-clamp: 2;
-		-webkit-box-orient: vertical;
-	}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AcrossFloor.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AcrossFloor.vue"
deleted file mode 100644
index afb45a9..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/AcrossFloor.vue"
+++ /dev/null
@@ -1,256 +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" v-model="SourceAddress" placeholder="璇疯緭鍏ヨ法妤煎眰璧风偣"
-							ref='midInput' />
-					</uni-forms-item>
-					<uni-forms-item label="缁� 鐐� 鍖� 鍩�">
-						<uni-data-select :focus="!istrue" v-model="AreaId" :localdata="range"
-							placeholder="璇疯緭閫夋嫨璺ㄦゼ灞傜粓鐐瑰尯鍩�"></uni-data-select>
-					</uni-forms-item>
-				</uni-forms>
-				<button @click="RequestAcrossFloorTaskAsync" type="primary" size="default"
-					style="margin-top: 2%;">涓嬪彂浠诲姟</button>
-			</view>
-		</view>
-		<view v-show="current === 1">
-			<view style="padding: 5%;">
-				<uni-forms label-width="120">
-					<uni-forms-item label="鎵� 鐩� 缂� 鐮�">
-						<uni-easyinput type="text" :focus="barcodefocus" @input="inputChangebarcode" v-model="Barcode"
-							placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
-					</uni-forms-item>
-					<uni-forms-item label="璺ㄦゼ灞傝捣鐐�">
-						<uni-easyinput type="text" :focus="barcodefocus" v-model="StartAddress" placeholder="璇疯緭鍏ヨ法妤煎眰璧风偣"
-							ref='midInput' />
-					</uni-forms-item>
-					<uni-forms-item label="璺ㄦゼ灞傜粓鐐�">
-						<uni-easyinput type="text" :focus="barcodefocus" v-model="EndAddress" placeholder="璇疯緭鍏ヨ法妤煎眰缁堢偣"
-							ref='midInput' />
-					</uni-forms-item>
-				</uni-forms>
-				<button @click="RequestPointAcrossFloorTaskAsync" type="primary" size="default"
-					style="margin-top: 2%;">涓嬪彂浠诲姟</button>
-
-			</view>
-		</view>
-		<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
-		<u-toast ref="uToast" />
-	</view>
-</template>
-
-<script>
-	import {
-		config
-	} from '../../common/config';
-	export default {
-		data() {
-			return {
-				istrue: false,
-				barcodefocus: false,
-				loadingVisible: false,
-				EndAddress: "",
-				StartAddress: "",
-				Barcode: "",
-				AreaId: "",
-				PalletCode: "",
-				SourceAddress: "",
-				items: ['璺ㄦゼ灞傛惉杩�', '璺ㄦゼ灞傜偣瀵圭偣鎼繍'],
-				current: 0,
-				range: []
-			}
-		},
-		onLoad(res) {
-			this.range = config.AreaId;
-		},
-		methods: {
-			onClickItem(e) {
-				if (this.current != e.currentIndex) {
-					this.current = e.currentIndex;
-				}
-			},
-			RequestAcrossFloorTaskAsync() {
-				if (this.loadingVisible) return
-				if (this.PalletCode.length <= 0) {
-					this.$refs.uToast.show({
-						title: "鎵樼洏缂栫爜涓嶈兘涓虹┖",
-						type: "error"
-					})
-					return;
-				}
-				if (this.SourceAddress.length <= 0) {
-					this.$refs.uToast.show({
-						title: "璧风偣浣嶇疆涓嶈兘涓虹┖",
-						type: "error"
-					})
-					return;
-				}
-				// this.loadingVisible = true;
-				 uni.showLoading({
-				      title: '璇锋眰涓�...',
-				      mask: true
-				    });
-				try {
-					var param = {
-						"PalletCode": this.PalletCode,
-						"Position": this.SourceAddress,
-						"AreaId": this.AreaId
-					}
-					this.$u.post('/api/Task/RequestAcrossFloorTaskAsync', param).then(res => {
-						if (res.status) {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "success"
-							})
-							this.PalletCode = "";
-							this.SourceAddress = "";
-							this.AreaId = "";
-							this.istrue = false;
-						} else {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "error"
-							})
-						}
-					})
-				} catch (error) {
-					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
-					console.error("璇锋眰寮傚父:", error);
-				} finally {
-					// 纭繚閬僵灞傞殣钘�
-					// this.loadingVisible = false;
-					uni.hideLoading();
-				}
-			},
-			RequestPointAcrossFloorTaskAsync() {
-				if (this.loadingVisible) return
-				if (this.EndAddress.length <= 0 || this.Barcode.length <= 0) {
-					this.$refs.uToast.show({
-						title: "璇疯緭鍏ヨ捣鐐圭珯鍙�",
-						type: "error"
-					})
-					return;
-				}
-				this.loadingVisible = true;
-				try {
-					var param = {
-						"PalletCode": this.Barcode,
-						"Position": this.StartAddress,
-						"TargetAddress": this.EndAddress
-					}
-					this.$u.post('/api/Task/RequestPointAcrossFloorTaskAsync', param).then(res => {
-						if (res.status) {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "success"
-							})
-							this.Barcode = "";
-							this.EndAddress = "";
-							this.StartAddress = "";
-							this.barcodefocus = false;
-						} else {
-							this.$refs.uToast.show({
-								title: res.message,
-								type: "error"
-							})
-						}
-					})
-				} catch (error) {
-					this.$u.uToast("缃戠粶璇锋眰澶辫触", "error");
-					console.error("璇锋眰寮傚父:", error);
-				} finally {
-					// 纭繚閬僵灞傞殣钘�
-					this.loadingVisible = false;
-				}
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	@import '@/common/uni-ui.scss';
-
-	page {
-		display: flex;
-		flex-direction: column;
-		box-sizing: border-box;
-		background-color: #efeff4;
-		min-height: 100%;
-		height: auto;
-	}
-
-	.u-loading {
-		position: fixed !important;
-		top: 0;
-		left: 0;
-		right: 0;
-		bottom: 0;
-		background: rgba(0, 0, 0, 0.5) !important;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		z-index: 9999;
-		pointer-events: auto;
-	}
-
-	.tips {
-		color: #67c23a;
-		font-size: 14px;
-		line-height: 40px;
-		text-align: center;
-		background-color: #f0f9eb;
-		height: 0;
-		opacity: 0;
-		transform: translateY(-100%);
-		transition: all 0.3s;
-	}
-
-	.tips-ani {
-		transform: translateY(0);
-		height: 40px;
-		opacity: 1;
-	}
-
-	.content {
-		width: 100%;
-		display: flex;
-	}
-
-	.list-picture {
-		width: 100%;
-		height: 145px;
-	}
-
-	.thumb-image {
-		width: 100%;
-		height: 100%;
-	}
-
-	.ellipsis {
-		display: flex;
-		overflow: hidden;
-	}
-
-	.uni-ellipsis-1 {
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
-
-	.uni-ellipsis-2 {
-		overflow: hidden;
-		text-overflow: ellipsis;
-		display: -webkit-box;
-		-webkit-line-clamp: 2;
-		-webkit-box-orient: vertical;
-	}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/TaskInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/CompletedTask.vue"
similarity index 74%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/TaskInfo.vue"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/CompletedTask.vue"
index fbcb051..0c9990b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/TaskInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/task/CompletedTask.vue"
@@ -4,31 +4,23 @@
 			<uni-list-item direction="column" v-for="item in taskInfo" :key="item.taskNum">
 				<template v-slot:body>
 					<view class="uni-list-box">
-						<!-- <checkbox @click="click(item)"></checkbox> -->
+						<checkbox @click="click(item)"></checkbox>
 						<view class="uni-content">
 							<view class="uni-title-sub uni-ellipsis-2">浠诲姟鍙凤細{{item.taskNum}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">鎵�&nbsp;鐩�&nbsp;鍙凤細{{item.palletCode}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">浠诲姟绫诲瀷锛歿{item.taskType}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">浠诲姟鐘舵�侊細{{item.taskState}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">璧�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鐐癸細{{item.sourceAddress}}</view>
-							<br>
-							<view class="uni-title-sub uni-ellipsis-2">缁�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鐐癸細{{item.targetAddress}}</view>
-							<br>
+							<view class="uni-note">鎵�&nbsp;鐩�&nbsp;鍙凤細{{item.palletCode}}</view>
+							<view class="uni-note">璧�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鐐癸細{{item.sourceAddress}}</view>
+							<view class="uni-note">缁�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鐐癸細{{item.targetAddress}}</view>
 						</view>
 					</view>
 				</template>
 			</uni-list-item>
 		</uni-list>
 
-		<!-- <view style="background-color: #fff; padding: 20rpx,20rpx;" class="customcss">
+		<view style="background-color: #fff; padding: 20rpx,20rpx;" class="customcss">
 			<u-sticky offset-top="80%">
-				<button type="primary" @click="cancelTask()">鍙栨秷浠诲姟</button>
+				<button type="primary" @click="completedTask()">瀹屾垚浠诲姟</button>
 			</u-sticky>
-		</view> -->
+		</view>
 		<u-toast ref="uToast" />
 	</view>
 </template>
@@ -44,21 +36,15 @@
 		onLoad(res) {
 			this.getData();
 		},
-		mounted() {
-			this.getData();
-			setInterval(() => {
-				this.getData();
-			}, 50000);
-		},
 		methods: {
 			getData() {
-				this.$u.post('/api/PDA/GetTaskInfo', null).then((res) => {
+				this.$u.post('/api/Task/GetTaskInfo', null).then((res) => {
 					if (res.status) {
 						this.taskInfo = res.data;
 					}
 				})
 			},
-			cancelTask() {
+			completedTask() {
 				if (this.items.length == 0) {
 					this.$refs.uToast.show({
 						title: "璇烽�夋嫨瑕佸彇娑堢殑鏁版嵁",
@@ -78,7 +64,7 @@
 						"taskNum": this.items[0].taskNum,
 					},
 				}
-				this.$u.post('/api/Task/TaskCancel', postData).then((res) => {
+				this.$u.post('/api/Task/CompleteAsync', postData).then((res) => {
 					if (res.status) {
 						this.items = [];
 						this.$refs.uToast.show({
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 01cda1b..06ed47d 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"
@@ -23,7 +23,7 @@
 					</uni-forms-item>
 				</uni-forms>
 				<button @click="InboundTask" type="primary" size="default" style="margin-top: 2%;">鍏ュ簱</button>
-				<u-toast ref="InboundTaskluToast" />
+
 			</view>
 		</view>
 		<view v-show="current === 1">
@@ -54,15 +54,14 @@
 										@click="deleteList(item.orderNo)">
 									</uni-icons>
 									<view class="uni-content">
-										<view class="uni-title-sub uni-ellipsis-2">璁㈠崟鍙凤細{{item.orderNo}}</view>
+										<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" />
+				<button @click="GroupPlate" type="primary" size="default" style="margin-top: 2%;">缁勭洏</button>
 			</view>
 		</view>
 		<view v-show="current === 2">
@@ -73,10 +72,10 @@
 							placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�" ref='midInput' />
 					</uni-forms-item>
 				</uni-forms>
-				<button @click="OutboundTask" type="primary" size="default" style="margin-top: 2%;">瑙g洏</button>
-				<u-toast ref="OutboundTaskluToast" />
+				<button @click="SolvePlate" type="primary" size="default" style="margin-top: 2%;">瑙g洏</button>
 			</view>
 		</view>
+		<u-toast ref="luToast" />
 	</view>
 	</view>
 </template>
@@ -89,10 +88,11 @@
 	export default {
 		data() {
 			return {
+				focus: false,
 				istrue: false,
 				barcodefocus: false,
 				range: [],
-				AreaId: "",
+				AreaId: 0,
 				SourceAddress: "",
 				TargetAddress: "",
 				PalletCode1: "",
@@ -100,6 +100,7 @@
 				PalletCode3: "",
 				materSn: "",
 				InBoundOrder: [],
+				OrderNos: [],
 				items: ['鍏ュ簱', '缁勭洏', '瑙g洏'],
 				current: 0
 			}
@@ -113,68 +114,109 @@
 					this.current = e.currentIndex;
 				}
 			},
+			voiceSpeech(src) {
+				innerAudioContext.src = src; // '../../static/success.mp3';
+				innerAudioContext.play();
+			},
 			InboundTask() {
-				if (this.PalletCode.length <= 0 && this.Point.length) {
-					this.$refs.InboundTaskluToast.show({
+				if (this.PalletCode1.length <= 0 && this.SourceAddress.length) {
+					this.$refs.luToast.show({
 						title: "鎵樼洏缂栫爜璺熺粦瀹氳揣浣嶄笉鑳戒负绌�",
 						type: "error"
 					})
 					return;
 				}
 				var param = {
-					"PalletCode": this.PalletCode,
+					"PalletCode": this.PalletCode1,
 					"Position": this.SourceAddress,
-					"TargetAddress": this.TargetAddress
+					"TargetAddress": this.TargetAddress,
+					"AreaId": this.AreaId,
 				}
 				console.log(param);
-				this.$u.post('/api/Task/RequestTaskAsync', param).then(res => {
+				this.$u.post('/api/Task/RequestInboundTaskAsync', param).then(res => {
 					if (res.status) {
-						this.$refs.InboundTaskluToast.show({
+						this.$refs.luToast.show({
 							title: res.message,
 							type: "success"
 						})
-						this.PalletCode = "";
+						this.PalletCode1 = "";
 						this.SourceAddress = "";
 						this.TargetAddress = "";
+						this.AreaId = "";
 						this.istrue = false;
 					} else {
-						this.$refs.InboundTaskluToast.show({
+						this.$refs.luToast.show({
 							title: res.message,
 							type: "error"
 						})
 					}
 				})
 			},
-			OutboundTask() {
-				if (this.EndAddress.length <= 0 && this.Barcode.length) {
-					this.$refs.OutboundTaskluToast.show({
+			GroupPlate() {
+				if (this.PalletCode2.length <= 0 && this.InBoundOrder.length) {
+					this.$refs.luToast.show({
 						title: "璇疯緭鍏ヨ捣鐐圭珯鍙�",
 						type: "error"
 					})
 					return;
 				}
 				var param = {
-					"PalletCode": this.Barcode,
-					"Position": this.StartAddress,
-					"TargetAddress": this.EndAddress
+					"PalletCode": this.PalletCode2,
+					"OrderNos": this.OrderNos
 				}
-				this.$u.post('/api/Task/RequestOutTaskAsync', param).then(res => {
+				this.$u.post('/api/BoxingInfo/AddBoxingInfo', param).then(res => {
 					if (res.status) {
-						this.$refs.OutboundTaskluToast.show({
+						this.$refs.luToast.show({
 							title: res.message,
 							type: "success"
 						})
-						this.Barcode = "";
-						this.EndAddress = "";
-						this.StartAddress = "";
+						this.PalletCode2 = "";
+						this.InBoundOrder = [];
+						this.OrderNos = [];
 						this.barcodefocus = false;
 					} else {
-						this.$refs.OutboundTaskluToast.show({
+						this.$refs.luToast.show({
 							title: res.message,
 							type: "error"
 						})
 					}
 				})
+			},
+			
+			SolvePlate(){
+				if (this.PalletCode3.length <= 0) {
+					this.$refs.luToast.show({
+						title: "璇疯緭鍏ユ墭鐩樻潯鐮�",
+						type: "error"
+					})
+					return;
+				}
+				var param = {
+					"PalletCode": this.PalletCode3,
+				}
+				this.$u.post('/api/BoxingInfo/DeleteBoxingInfoAsync', param).then(res => {
+					if (res.status) {
+						this.$refs.luToast.show({
+							title: res.message,
+							type: "success"
+						})
+						this.PalletCode3 = "";
+						this.barcodefocus = false;
+					} else {
+						this.$refs.luToast.show({
+							title: res.message,
+							type: "error"
+						})
+					}
+				})
+			},
+			updateFocus() {
+				this.$nextTick(() => {
+					this.materSn = '';
+					if (!this.focus) {
+						this.focus = true;
+					}
+				});
 			},
 			snInput() {
 				this.$nextTick(() => {
@@ -182,9 +224,9 @@
 						orderNo: this.materSn,
 					}
 					var temp = this.InBoundOrder.find(x => x.orderNo == matObj.orderNo);
-					console.log(temp)
 					if (!temp) {
 						this.InBoundOrder.push(matObj);
+						this.OrderNos.push(this.materSn);
 						setTimeout(this.updateFocus, 200);
 						setTimeout(() => {
 							this.voiceSpeech('../../static/success.mp3');
@@ -202,32 +244,20 @@
 
 				})
 			},
-			// 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"
-			      });
-			    }
+				this.InBoundOrder.map((item, index) => {
+					console.log(res, item);
+					if (item.orderNo == res) {
+						this.InBoundOrder.splice(index, 1);
+					}
+				})
+				this.OrderNos.map((item, index) => {
+					if (item == res) {
+						this.OrderNos.splice(index, 1);
+					}
+				})
+			},
+
 		}
 	}
 </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 2af3134..7d6abad 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"
deleted file mode 100644
index 55e938b..0000000
--- "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"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/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"
deleted file mode 100644
index 5a619c6..0000000
--- "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"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/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 de461b7..75a7e80 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"
deleted file mode 100644
index b511259..0000000
--- "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"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/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"
deleted file mode 100644
index b185381..0000000
--- "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"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/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 bb4609a..1083940 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -3,20 +3,20 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "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:{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\\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\\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\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "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:{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\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -54,11 +54,11 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 5,
+          "SelectedChildIndex": 3,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 3,
               "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",
@@ -94,37 +94,39 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 0,
               "Title": "TaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAAD8BAAAAAAAAAAAUwF4BAABZAAAAAAAAAA==",
+              "ViewState": "AgIAAJQCAAAAAAAAAAApwLgCAAAWAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-25T03:21:17.498Z"
+              "WhenOpened": "2025-09-25T03:21:17.498Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 1,
               "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==",
+              "ViewState": "AgIAAFAAAAAAAAAAAAAnwGUAAAArAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-13T01:17:34.312Z"
+              "WhenOpened": "2025-10-13T01:17:34.312Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 2,
               "Title": "CommonAGVJob.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAADEAAAANAAAAAAAAAA==",
+              "ViewState": "AgIAACcAAAAAAAAAAAAnwEEAAAAUAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-09T05:11:29.775Z",
               "EditorCaption": ""
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 96f5540..7fcaeac 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -3,20 +3,20 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "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:{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\\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\\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\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "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:{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\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -54,11 +54,11 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 5,
+          "SelectedChildIndex": 3,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 3,
               "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",
@@ -94,37 +94,39 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 0,
               "Title": "TaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAAD8BAAAAAAAAAAAUwF4BAABZAAAAAAAAAA==",
+              "ViewState": "AgIAAKkCAAAAAAAAAAAnwMMCAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-25T03:21:17.498Z"
+              "WhenOpened": "2025-09-25T03:21:17.498Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 1,
               "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==",
+              "ViewState": "AgIAAFAAAAAAAAAAAAAnwGUAAAArAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-13T01:17:34.312Z"
+              "WhenOpened": "2025-10-13T01:17:34.312Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 2,
               "Title": "CommonAGVJob.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
-              "ViewState": "AgIAAOMAAAAAAAAAAAAvwB8BAAAMAAAAAAAAAA==",
+              "ViewState": "AgIAACcAAAAAAAAAAAAnwEEAAAAUAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-09T05:11:29.775Z",
               "EditorCaption": ""
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 5a22c8f..27df166 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"
@@ -460,7 +460,7 @@
             try
             {
                 int oldState = task.TaskState;
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
 
@@ -483,10 +483,10 @@
                     if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                     {
                         content = StackCraneTaskCompleted(task.TaskNum);
-                        return content;
                     }
+
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                     task.TaskState = nextStatus;
@@ -540,7 +540,6 @@
                         if (App.User.UserId > 0)
                         {
                             content = StackCraneTaskCompleted(task.TaskNum);
-                            return content;
                         }
 
                         task.ModifyDate = DateTime.Now;
@@ -553,7 +552,7 @@
                         _taskHtyRepository.AddData(task_Hty);
                     }
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
+                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>();
 
@@ -571,7 +570,7 @@
                         _taskHtyRepository.AddData(task_Hty);
                     }
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAcrossFloorStatusEnum>();
 
@@ -606,7 +605,7 @@
                             stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F");
                             TaskTemplate = "CCC";
                         }
-                       
+
                         var taskDto = new RequestAcrossFloorTaskDto()
                         {
                             NextAddress = task.NextAddress,
@@ -661,22 +660,6 @@
                         BaseDal.AddData(taskNew);
 
                         SendAgvTask(TaskTemplate, taskNew.TaskNum);
-                        return content.OK();
-                    }
-
-                    if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish)
-                    {
-
-                        CompletedTask(task.TaskNum);
-
-                        task.ModifyDate = DateTime.Now;
-                        task.Modifier = "System";
-
-                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
-                        task_Hty.TaskId = 0;
-
-                        BaseDal.DeleteData(task);
-                        _taskHtyRepository.AddData(task_Hty);
                     }
                 }
                 else
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js"
index 095e536..5c78c04 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js"
@@ -49,6 +49,15 @@
     }
 },
 {
+    name: "鍏朵粬鍑哄簱",
+    icon: '',
+    class: '',
+    value: 'OtherOutBound',
+    type: 'danger',
+    onClick: function () {
+    }
+},
+{
     name: "鍒� 闄�",
     icon: 'el-icon-delete',
     class: '',
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/DtBoxingInfoHty.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/DtBoxingInfoHty.js"
new file mode 100644
index 0000000..01efd28
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/DtBoxingInfoHty.js"
@@ -0,0 +1,78 @@
+/*****************************************************************************************
+**  Author:jxx 2022
+**  QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: '',
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+        //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+        //   this.buttons.unshift({  //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+        //     name: '鎸夐挳', //鎸夐挳鍚嶇О
+        //     icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+        //     type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+        //     onClick: function () {
+        //       this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+        //     }
+        //   });
+
+        //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+        this.boxOptions.labelWidth = 150;
+    },
+    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;
+    },
+    addrow(){
+      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;
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 c3a7b25..0a22470 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"
@@ -8,12 +8,12 @@
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 
 // import gridHeader from "./demo_Product/Dt_BillGroupStockDetail.vue";
-import gridHeader from './extend/printView.vue'
-// import gridBody from "./extend/SupplementationData.vue"
+// import gridHeader from './extend/printView.vue'
+// import gridBody from './extend/OtherOutBound.vue'
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-    gridHeader: gridHeader,
+    gridHeader: '',
     gridBody: '',
     gridFooter: '',
     //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
@@ -26,7 +26,53 @@
   methods: {
     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
     onInit() {
-
+      // let OtherOutBoundbtn=this.buttons.find(x=>x.value=='OtherOutBound');
+      // if(OtherOutBoundbtn){
+      //   OtherOutBoundbtn.onClick=function(){
+      //     let row = this.$refs.table.getSelected() //鑾峰彇閫変腑鐨勮
+      //     if (row <= 0) {
+      //       //濡傛灉娌℃湁閫変腑琛�
+      //       this.$Message.error('璇烽�夋嫨涓�琛屾暟鎹�')
+      //       return;
+      //     }
+      //     let palletCode = row[0].palletCode
+      //     this.http.get(`/api/Task/CompleteTaskAsync?taskNum=${taskNum}`, {}, "姝e湪瀹屾垚浠诲姟").then((res) => {
+      //       //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+      //       if (res.status) {
+      //         this.$Message.success('浠诲姟瀹屾垚');
+      //         this.refresh();
+      //       } else {
+      //         this.$Message.error(res.message) //閿欒鎻愮ず
+      //         this.refresh();
+      //       }
+      //     })
+      //   }
+      // }
+        this.columns.push({
+          field: '鎿嶄綔',
+          title: '鎿嶄綔',
+          width: 90,
+          fixed: 'right',
+          align: 'center',
+          formatter: (row) => {
+              return (
+                  '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鍏朵粬鍑哄簱</i>'
+              );
+          },
+          click: (row) => {
+            console.log(row);
+            this.http.post(`/api/Task/OtherOutBoundTaskAsync?palletCode=${row.palletCode}`, {}, "姝e湪鐢熸垚浠诲姟").then((res) => {
+                    //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+                    if (res.status) {
+                      this.$Message.success(row[0].palletCode+"鍑哄簱鎴愬姛");
+                      this.refresh();
+                    } else {
+                      this.$Message.error(res.message) //閿欒鎻愮ず
+                      this.refresh();
+                    }
+                  })
+          }
+      });
       // this.columns.push({
       //   title: "鎿嶄綔",
       //   field: "鎿嶄綔",
@@ -60,13 +106,27 @@
 
         if (column.field == 'floor') {
 
-            const floorMap = {
-              '1F': '涓�妤�',
-              '2F': '浜屾ゼ',
-            };
-            column.formatter = (row) => {
-              return floorMap[row?.locationInfo?.floor] || '鏈煡妤煎眰'
-            }
+          const floorMap = {
+            '1F': '涓�妤�',
+            '2F': '浜屾ゼ',
+          };
+          column.formatter = (row) => {
+            return floorMap[row?.locationInfo?.floor] || '鏈煡妤煎眰'
+          }
+        }
+        if (column.field == 'areaId') {
+
+          const floorMap = {
+            '1': '涓�妤煎爢鍨涙満鍖哄煙',
+            '2': '涓�妤糀GV鍑哄簱缂撳瓨鍖�',
+            '3': '涓�妤糀GV绔嬪簱缂撳瓨鍖�',
+            '4': '涓�妤糀GV鍏ュ簱缂撳瓨鍖�',
+            '5': '浜屾ゼB4-G4缂撳瓨鍖�',
+            '6': '浜屾ゼB5-G5缂撳瓨鍖�',
+          };
+          column.formatter = (row) => {
+            return  floorMap[row?.locationInfo?.areaId] || '鏈煡妤煎眰'
+          }
         }
         if (column.field == 'locationStatus') {
           const statusMap = {
@@ -96,7 +156,6 @@
       return true
     },
     searchAfter(result) {
-      console.log(result)
       return true
     },
     addBefore(formData) {
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 37e4820..05fb2de 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"
@@ -67,7 +67,14 @@
        
     }
   },
- 
+  {
+    path: '/DtBoxingHty',
+    name: 'DtBoxingHty',
+    component: () => import('@/views/widesea_wms/stock/DtBoxingInfoHty.vue'),
+    meta: {
+       
+    }
+  },
   {
     path: '/Dt_StationManager',
     name: 'Dt_StationManager',
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"
index ddf3a92..c5ae6c1 100644
--- "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"
@@ -69,9 +69,9 @@
             { 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: 'creater', title: '鍒涘缓浜�', type: 'string', width: 120, 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: 'modifier', title: '淇敼浜�', type: 'string', width: 120, align: 'left' },
         { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
     ]);
         const detail = ref({
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue"
index 3735622..2fdea5e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue"
@@ -27,7 +27,7 @@
         const editFormOptions = ref([
             [
                 { "title": "璐т綅鐘舵��", "field": "locationStatus", "type": "select", dataKey: "LocationState", data: [] }, 
-                { "title": "鏄惁绂佺敤", "field": "enalbeStatus", "type": "select", dataKey: "EnalbeStatus", data: [] }, 
+                { "title": "鏄惁绂佺敤", "field": "enalbeStatus", "type": "select", dataKey: "EnableEnum", data: [] }, 
             ]
         ]);
         const searchFormFields = ref({ "LocationID": "",roadWayNO:"" });
@@ -36,7 +36,7 @@
                 { "title": "璐т綅缂栧彿", "field": "locationCode", type: "text" },
                 { "title": "璐т綅鐘舵��", "field": "locationStatus", "type": "select", dataKey: "LocationState", data: [] },
                 { "title": "宸烽亾缂栧彿", "field": "roadWayNO", type: "text" }, 
-                { "title": "鍚敤鐘舵��", "field": "enalbeStatus", "type": "select", dataKey: "EnalbeStatus", data: [] },
+                { "title": "鍚敤鐘舵��", "field": "enalbeStatus", "type": "select", dataKey: "EnableEnum", data: [] },
 
             ],
             [
@@ -54,9 +54,9 @@
         { field: 'column', title: '鍒�', type: 'string', width: 70, align: 'left' },
         { field: 'layer', title: '灞�', type: 'string', width: 110, align: 'left' },
         { field: 'depth', title: '娣卞害', type: 'string', width: 110, align: 'left'},
-        { field: 'locationType', title: '璐т綅绫诲瀷', type: 'int', width: 110, align: 'left',bind: { key: "LocationType", data: [] } },
+        { field: 'locationType', title: '璐т綅绫诲瀷', type: 'int', width: 110, align: 'left',hidden:true,bind: { key: "LocationType", data: [] } },
         { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 110, align: 'left', bind: { key: "LocationState", data: [] } },
-        { field: 'enalbeStatus', title: '鏄惁绂佺敤', type: 'int', width: 75, align: 'left', bind: { key: "EnalbeStatus", data: [] }}, 
+        { field: 'enalbeStatus', title: '鏄惁绂佺敤', type: 'int', width: 75, align: 'left', bind: { key: "EnableEnum", data: [] }}, 
         { field: 'remark', title: '澶囨敞', type: 'string', width: 110, align: 'left' ,hidden:true},
         { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
         { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/LocationStatusChange.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/LocationStatusChange.vue"
index 7325de3..a1c6059 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/LocationStatusChange.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/LocationStatusChange.vue"
@@ -21,7 +21,7 @@
             cnName: '璐т綅鐘舵�佸彉鍔ㄨ褰�',
             name: 'LocationStatusChange',
             url: "/LocationStatusChangeRecord/",
-            sortName: "LocationID"
+            sortName: "createDate"
         });
         const editFormFields = ref({});
         const editFormOptions = ref([]);
@@ -39,12 +39,12 @@
         { field: 'locationCode', title: '璐т綅缂栧彿', type: 'string', width: 110, require: true, align: 'left' },
         { field: 'beforeStatus', title: '鍙樺姩鍓嶈揣浣嶇姸鎬�', type: 'int', width: 120, align: 'left', bind: { key: "LocationState", data: [] } },
         { field: 'afterStatus', title: '鍙樺姩鍚庤揣浣嶇姸鎬�', type: 'int', width: 110, require: true, align: 'left', sort: true, bind: { key: "LocationState", data: [] } },
-        { field: 'changeType', title: '鍙樺姩绫诲瀷锛堝嚭搴撱�佸叆搴撱�佹墜鍔ㄨ皟鏁�...锛�', type: 'string', width: 70, align: 'left', bind: { key: "StatusChangeType", data: [] }  },
-        { field: 'orderId', title: '鍗曟嵁涓婚敭', type: 'string', width: 70, align: 'left' },
-        { field: 'orderNo', title: '鍗曟嵁缂栧彿', type: 'string', width: 110, align: 'left' },
-        { field: 'orderDetailId', title: '鍗曟嵁鏄庣粏涓婚敭', type: 'string', width: 110, align: 'left' },
+        { field: 'changeType', title: '鍙樺姩绫诲瀷锛堝嚭搴撱�佸叆搴撱�佹墜鍔ㄨ皟鏁�...锛�', type: 'string', width: 180, align: 'left', bind: { key: "StatusChangeType", data: [] }  },
+        { field: 'orderId', title: '鍗曟嵁涓婚敭', type: 'string', width: 70, align: 'left',hidden:true },
+        { field: 'orderNo', title: '鍗曟嵁缂栧彿', type: 'string', width: 110, align: 'left' ,hidden:true},
+        { field: 'orderDetailId', title: '鍗曟嵁鏄庣粏涓婚敭', type: 'string', width: 110, align: 'left' ,hidden:true},
         { field: 'taskNum', title: '浠诲姟鍙�', type: 'string', width: 110, align: 'left' },
-        { field: 'remark', title: '澶囨敞', type: 'int', width: 110, align: 'left' },
+        { field: 'remark', title: '澶囨敞', type: 'int', width: 110, align: 'left',hidden:true },
         { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
         { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
         { field: 'modifier', title: '淇敼浜�', type: 'string', 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/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 b8fbba9..1c695af 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"
@@ -35,27 +35,160 @@
                 { "title": "鎵樼洏鏉$爜", "field": "palletCode", type: "text" },
             ]
         ]);
-        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: 'remark', title: '澶囨敞', type: 'string', width: 120, align: 'left' },
-            { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'int', sort: true, width: 100, align: 'left' },
-        ]);
-
+        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: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 60, align: 'left', bind: { key: "LocationState", data: [] } },
+            { field: 'floor', title: '妤煎眰', type: 'int', width: 60, align: 'left', bind: { key: "Floor", data: [] } },
+            { field: 'areaId', title: '鍖哄煙', type: 'int', 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', 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' },
+            ]
+        );
         const detail = ref({
-            cnName: "缁勭洏鏄庣粏淇℃伅",
-            table: "DtBoxingInfoDetail",
+            cnName: "搴撳瓨鏄庣粏淇℃伅",
+            table: "BoxingInfoDetails",
             columns: [
-                { title: "鐢佃姱搴忓垪鍙�", field: "serialNumber", type: "text"},
-                { title: "鐗╂枡缂栧彿", field: "materielCode",type: "text" },
-                { title: "鐗╂枡鍚嶇О", field: "materielName", type: "text" },
-                { title: "搴撳瓨鐘舵��", field: "status", type: "text" },
-                { title: "缁勭洏鏁伴噺", field: "stockQuantity", type: "text" },
-                { title: "鍒涘缓鏃堕棿", field: "createDate", type: "text" },
+                {
+                    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: "BoxingInfoId"
+            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/DtBoxingInfoHty.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfoHty.vue"
new file mode 100644
index 0000000..0ad6247
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/DtBoxingInfoHty.vue"
@@ -0,0 +1,202 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/invoices/Dt_InboundOrder.js姝ゅ缂栧啓
+ -->
+<template>
+    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+        :table="table" :extend="extend">
+    </view-grid>
+</template>
+<script>
+import extend from "@/extension/widesea_wms/stock/DtBoxingInfoHty.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: 'id',
+            footer: "Foots",
+            cnName: '缁勭洏鍘嗗彶淇℃伅',
+            name: 'stock/DtBoxingInfoHty',
+            url: "/BoxingInfoHty/",
+            sortName: "id"
+        });
+        const editFormFields = ref({
+
+        });
+        const editFormOptions = ref([
+
+        ]);
+        const searchFormFields = ref({});
+        const searchFormOptions = ref([
+            [
+                { "title": "鎵樼洏鏉$爜", "field": "palletCode", 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: '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' },
+            ]
+        );
+        const detail = ref({
+            cnName: "缁勭洏鏄庣粏淇℃伅",
+            table: "BoxingInfoDetails",
+            columns: [
+                {
+                    field: "id",
+                    title: "Id",
+                    type: "int",
+                    width: 90,
+                    hidden: true,
+                    readonly: true,
+                    require: true,
+                    align: "left",
+                },
+                {
+                    field: "boxingInfoId",
+                    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,
+            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/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 0a0a715..e08dd8c 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"
@@ -50,6 +50,7 @@
             { field: 'locationCode', title: '搴撲綅', type: 'string', width: 100, align: 'left', },
             { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 60, align: 'left', bind: { key: "LocationState", data: [] } },
             { field: 'floor', title: '妤煎眰', type: 'int', width: 60, align: 'left', bind: { key: "Floor", data: [] } },
+            { field: 'areaId', title: '鍖哄煙', type: 'int', 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', hidden: true },
             { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, 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_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 fb026f0..44b093a 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"
@@ -19,7 +19,7 @@
         const table = ref({
             key: 'id',
             footer: "Foots",
-            cnName: '搴撳瓨淇℃伅',
+            cnName: '搴撳瓨鍘嗗彶淇℃伅',
             name: 'stock/Dt_BillGroupStock_Hty',
             url: "/StockInfoHty/",
             sortName: "createDate"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
index 30b0b9e..a4d2838 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
@@ -56,9 +56,6 @@
         const columns = ref([{ field: 'TaskId', title: '涓婚敭', type: 'string', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
         { field: 'taskNum', title: '浠诲姟鍙�', type: 'int', width: 110, align: 'left', sort: true },
         { field: 'palletCode', title: '鎵樼洏鍙�', type: 'string', width: 180, align: 'left' },
-        { field: 'pnboundNo', title: '鍗曟嵁鍙�', type: 'string', width: 110, align: 'left',hidden:true },
-        { field: 'groupID', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, align: 'left' },
-        { field: 'groupDetailId', title: '缁勭洏鏄庣粏ID', type: 'int', width: 110, hidden: true, align: 'left' },
         { field: 'roadway', title: '宸烽亾', type: 'string', width: 110, align: 'left' },
         { field: 'taskType', title: '浠诲姟绫诲瀷', type: 'int', width: 130, align: 'left', bind: { key: "taskType", data: [] } },
         { field: 'taskState', title: '浠诲姟鐘舵��', type: 'int', width: 130, align: 'left', bind: { key: "taskState", data: [] } },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue"
index 848d6d7..5a7bc00 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue"
@@ -17,28 +17,17 @@
         const table = ref({
             key: 'taskId',
             footer: "Foots",
-            cnName: '浠诲姟淇℃伅',
+            cnName: '浠诲姟鍘嗗彶淇℃伅',
             name: 'taskinfo/Dt_Task_Hty',
             url: "/Task_Hty/",
             sortName: "TaskId"
         });
         const editFormFields = ref({
-            "taskNum": "",
-            "palletCode": ""
+            "grade": "",
         });
         const editFormOptions = ref([
             [
-                { "title": "浠诲姟鍙�", "field": "taskNum", "type": "text" },
-                { "title": "鎵樼洏鍙�", "field": "palletCode", "type": "text" },
-                { "title": "浠诲姟绫诲瀷", "field": "taskType", "type": "select", dataKey: "TaskType", data: [] },
-                { "title": "浠诲姟鐘舵��", "field": "taskState", "type": "select", dataKey: "TaskStatus", data: [] },
-
-            ],
-            [
-                { "title": "璧峰浣嶇疆", "field": "sourceAddress", type: "text" },
-                { "title": "褰撳墠浣嶇疆", "field": "currentAddress", type: "text" },
-                { "title": "涓嬩竴浣嶇疆", "field": "nextAddress", type: "text" },
-                { "title": "鐩爣浣嶇疆", "field": "targetAddress", type: "text" },
+                { "title": "浼樺厛绾�", "field": "grade", type: "text" },
             ],
         ]);
         const searchFormFields = ref({
@@ -66,34 +55,26 @@
         ]);
         const columns = ref([{ field: 'TaskId', title: '涓婚敭', type: 'string', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
         { field: 'taskNum', title: '浠诲姟鍙�', type: 'int', width: 110, align: 'left', sort: true },
-        { field: 'palletCode', title: '鎵樼洏鍙�', type: 'string', width: 150, align: 'left' },
-        { field: 'pnboundNo', title: '鍗曟嵁鍙�', type: 'string', width: 110, align: 'left' ,hidden: true},
-        { field: 'groupID', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, align: 'left' },
-        { field: 'groupDetailId', title: '缁勭洏鏄庣粏ID', type: 'int', width: 110, hidden: true, align: 'left' },
+        { field: 'palletCode', title: '鎵樼洏鍙�', type: 'string', width: 180, align: 'left' },
         { field: 'roadway', title: '宸烽亾', type: 'string', width: 110, align: 'left' },
-        { field: 'taskType', title: '浠诲姟绫诲瀷', type: 'int', width: 110, align: 'left', bind: { key: "TaskType", data: [] } },
-        { field: 'taskState', title: '浠诲姟鐘舵��', type: 'int', width: 110, align: 'left', bind: { key: "TaskStatus", data: [] } },
+        { field: 'taskType', title: '浠诲姟绫诲瀷', type: 'int', width: 130, align: 'left', bind: { key: "taskType", data: [] } },
+        { field: 'taskState', title: '浠诲姟鐘舵��', type: 'int', width: 130, align: 'left', bind: { key: "taskState", data: [] } },
         { field: 'sourceAddress', title: '璧峰浣嶇疆', type: 'string', width: 110, align: 'left' },
         { field: 'currentAddress', title: '褰撳墠浣嶇疆', type: 'string', width: 110, align: 'left' },
         { field: 'nextAddress', title: '涓嬩竴浣嶇疆', type: 'string', width: 110, align: 'left' },
         { field: 'targetAddress', title: '鐩爣浣嶇疆', type: 'string', width: 110, align: 'left' },
         { field: 'grade', title: '浼樺厛绾�', type: 'int', width: 60, align: 'left' },
-        { field: 'productionLine', title: '浜х嚎', type: 'string', width: 70, align: 'left', bind: { key: "ProductionLine", data: [] }  }, 
-        { field: 'errorMessage', title: '寮傚父淇℃伅', type: 'string', width: 110,  align: 'left' },
+        { field: 'errorMessage', title: '寮傚父淇℃伅', type: 'string', width: 110,  align: 'left',sort: true },
         { field: 'dispatchertime', title: '浠诲姟涓嬪彂鏃堕棿', type: 'datetime', width: 150, align: 'left', sort: true },
-        { field: 'operateType', title: '鎿嶄綔绫诲瀷', type: 'string', width: 110, align: 'left', bind: { key: "operateType", data: [] }},
         { field: 'remark', title: '澶囨敞', type: 'string', width: 110, align: 'left',hidden: true, },
-        { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, hidden: true,align: 'left', sort: true },
-        //{ field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
-        { field: 'creater', title: '瀹屾垚鑰�', type: 'string', sort: true, width: 110, align: 'left' },
-        //{ field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 100, align: 'left' },
-        { field: 'finishTime', title: '瀹屾垚鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
-        { field: 'locationCode', title: '璐т綅鍙�', type: 'string', width: 110, hidden: true, align: 'left' },
+        { field: 'operateType', title: '鎿嶄綔绫诲瀷', type: 'string', width: 110, align: 'left',bind: { key: "operateTypeEnum", data: [] }  },
+        { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+        { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+        { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
+        { field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 100, align: 'left' },
         { field: 'materialNo', title: '鐗╂枡缂栧彿', type: 'string', width: 110, hidden: true, align: 'left' },
-        { field: 'processCode', title: '宸ュ簭', type: 'string', width: 90, align: 'left' },
-        { field: 'createID', title: '鍒涘缓ID', type: 'int', sort: true, width: 100, hidden: true, align: 'left' },
-        { field: 'modifyID', title: '淇敼浜篒D', type: 'int', sort: true, width: 100, hidden: true, align: 'left' },]);
-        const detail = ref({
+    ]);
+    const detail = ref({
             cnName: "#detailCnName",
             table: "#detailTable",
             columns: [],
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 e97973c..f3815d9 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 cc43f81..fe9ac28 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 18adff1..e69de29 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 224c4f1..e60a3d6 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 98ac026..386a519 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 b412592..00800b5 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 720f513..be474fc 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,24 +3,28 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
-      "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:{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:{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:{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\\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:{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:{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:{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:{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}",
@@ -34,84 +38,97 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 5,
+          "SelectedChildIndex": 1,
           "Children": [
             {
               "$type": "Document",
-              "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==",
+              "DocumentIndex": 2,
+              "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": "AgIAAAAAAAAAAAAAAADwvwcAAAAtAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-10-21T08:37:20.946Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "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": "AgIAAGICAAAAAAAAAAAmwH8CAAAaAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-20T07:20:00.697Z",
+              "WhenOpened": "2025-10-21T08:35:46.527Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "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": "AgIAAHABAAAAAAAAAAAiwHoBAAA+AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-21T08:34:47.821Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 3,
-              "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==",
+              "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": "AgIAAIEAAAAAAAAAAAAAAJQAAABEAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-20T07:19:18.11Z",
+              "WhenOpened": "2025-10-21T03:34:03.341Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 5,
+              "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": "AgIAAIgAAAAAAAAAAAApwJwAAAAnAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-21T01:04:19.904Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
               "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==",
+              "ViewState": "AgIAADAAAAAAAAAAAADgvzkAAAApAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-20T04:05:33.05Z",
               "EditorCaption": ""
             },
             {
               "$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,
+              "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": "AgIAAOMEAAAAAAAAAAAjwP0EAAAIAAAAAAAAAA==",
+              "ViewState": "AgIAAKUEAAAAAAAAAAAAAMIEAABNAAAAAAAAAA==",
               "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 e8c1fcc..6eceeda 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,36 +3,36 @@
   "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\\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:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\stock\\erpstockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\stock\\erpstockinfoservice.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:{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\\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}"
     },
     {
       "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:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{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\\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:{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}"
+      "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\\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}"
     }
   ],
   "DocumentGroupContainers": [
@@ -47,64 +47,90 @@
             {
               "$type": "Document",
               "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": "AgIAAAAAAAAAAAAAAADwvwcAAAA+AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-10-20T08:45:46.026Z",
+              "Title": "ERPStockInfoService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\ERPStockInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Stock\\ERPStockInfoService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\ERPStockInfoService.cs",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Stock\\ERPStockInfoService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvyEAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-21T09:12:45.849Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
-              "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==",
+              "DocumentIndex": 3,
+              "Title": "LocationInfoService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
+              "ViewState": "AgIAAE0AAAAAAAAAAAAQwFUAAACTAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-20T08:43:38.865Z",
+              "WhenOpened": "2025-10-21T04:13:57.538Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 6,
-              "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-20T07:20:00.697Z",
+              "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": "AgIAAAAAAAAAAAAAAADwvwcAAAAtAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-10-21T08:37:20.946Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "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==",
+              "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": "AgIAAGICAAAAAAAAAAAmwH8CAAAaAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-20T07:19:18.11Z",
+              "WhenOpened": "2025-10-21T08:35:46.527Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "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": "AgIAABEBAAAAAAAAAAAiwHQBAAAlAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-21T08:34:47.821Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 7,
+              "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": "AgIAAIgAAAAAAAAAAAApwJwAAAAnAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-21T01:04:19.904Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
               "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==",
+              "ViewState": "AgIAACcAAAAAAAAAAAAvwEoAAAA4AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-20T04:05:33.05Z",
               "EditorCaption": ""
@@ -112,40 +138,14 @@
             {
               "$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": "AgIAAOMEAAAAAAAAAAAjwP0EAAAIAAAAAAAAAA==",
+              "ViewState": "AgIAANcCAAAAAAAAAAASwP0CAAAlAAAAAAAAAA==",
               "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_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 6a150d2..151165b 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"
@@ -631,11 +631,17 @@
     #region 鎿嶄綔绫诲瀷
     public enum OperateTypeEnum
     {
+        [Description("浜哄伐鍒犻櫎")]
         浜哄伐鍒犻櫎 = 1,
+        [Description("鑷姩鍒犻櫎")]
         鑷姩鍒犻櫎 = 2,
+        [Description("浜哄伐鎭㈠")]
         浜哄伐鎭㈠ = 3,
+        [Description("鑷姩鎭㈠")]
         鑷姩鎭㈠ = 4,
+        [Description("浜哄伐瀹屾垚")]
         浜哄伐瀹屾垚 = 5,
+        [Description("鑷姩瀹屾垚")]
         鑷姩瀹屾垚 = 6,
     }
     #endregion
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"
index 7140162..6b72cfd 100644
--- "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"
@@ -226,7 +226,7 @@
         /// <summary>
         /// 鏁伴噺
         /// </summary>
-        public float TransInQty { get; set; }
+        public decimal TransInQty { get; set; }
 
         /// <summary>
         /// 璋冨嚭瀛樺偍鍦扮偣缂栫爜
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Boxing/IBoxingInfoHtyRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Boxing/IBoxingInfoHtyRepository.cs"
new file mode 100644
index 0000000..7a47a58
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Boxing/IBoxingInfoHtyRepository.cs"
@@ -0,0 +1,6 @@
+锘縩amespace WIDESEA_IStorageBasicRepository
+{
+    public interface IBoxingInfoHtyRepository : IRepository<DtBoxingInfo_Hty>
+    {
+    }
+}
\ 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/Boxing/IBoxingInfoHtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoHtyService.cs"
new file mode 100644
index 0000000..1830ba4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IBoxingInfoHtyService.cs"
@@ -0,0 +1,9 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_DTO.Basic;
+
+namespace WIDESEA_IStorageBasicService;
+
+public interface IBoxingInfoHtyService : IService<DtBoxingInfo_Hty>
+{
+   
+}
\ 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/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 6a36f01..160081e 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"
@@ -11,4 +11,11 @@
     /// <param name="boxingInfo"></param>
     /// <returns></returns>
     Task<WebResponseContent> AddBoxingInfoAsync(AddBoxingDto boxingInfo);
+
+    /// <summary>
+    /// 瑙g洏
+    /// </summary>
+    /// <param name="boxingInfo"></param>
+    /// <returns></returns>
+    Task<WebResponseContent> DeleteBoxingInfoAsync(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/Location/ILocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs"
index dec42d3..1006a6c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs"
@@ -4,7 +4,7 @@
 
 public interface ILocationInfoService : IService<DtLocationInfo>
 {
-    Task<WebResponseContent> initializeLocation(int locationID);
+    Task<WebResponseContent> initializeLocation(string locationCode);
 
     WebResponseContent CreateLocation(int x, int y, int z, int locType, int areaId);
 
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 aec2535..33d0c44 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"
@@ -34,6 +34,19 @@
     Task<WebResponseContent> CompleteAsync(int taskNum);
 
     /// <summary>
+    /// 鍙栨秷浠诲姟
+    /// </summary>
+    /// <param name="taskNum"></param>
+    /// <returns></returns>
+    WebResponseContent TaskCancel(int taskNum);
+
+    /// <summary>
+    /// 鑾峰彇浠诲姟淇℃伅
+    /// </summary>
+    /// <returns></returns>
+    WebResponseContent GetTaskInfo();
+
+    /// <summary>
     /// 璇锋眰浠诲姟宸烽亾
     /// </summary>
     /// <param name="position"></param>
@@ -74,6 +87,14 @@
     /// <param name="roadways">宸烽亾鍒楄〃</param>
     /// <returns>杩斿洖缁撴灉闆�</returns>
     Task<WebResponseContent> RequestOutboundTaskAsync(RequestTaskDto taskDto);
+
+
+    /// <summary>
+    /// 鍏朵粬鍑哄簱浠诲姟璇锋眰
+    /// </summary>
+    /// <param name="palletCode"></param>
+    /// <returns></returns>
+    Task<WebResponseContent> OtherOutBoundTaskAsync(string palletCode);
 
 
     /// <summary>
@@ -124,4 +145,6 @@
     /// <returns></returns>
     Task<WebResponseContent> AGVIsNeedRelocationAsync(RequestTaskDto taskDto);
 
+
+    Task<WebResponseContent> SendERPTaskCompletion(string palletCode);
 }
\ 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 71be07b..56f77b4 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"
@@ -49,7 +49,6 @@
         /// <summary>
         /// 搴撳瓨鏄庣粏
         /// </summary>
-        [MinItemsCount(1)] // 妫�娴嬮泦鍚堝厓绱犳渶灏�1涓�
         [SugarColumn(ColumnName = "BoxingInfoDetails")]
         [Navigate(NavigateType.OneToMany, nameof(DtBoxingInfoDetail.BoxingInfoId))]
         public List<DtBoxingInfoDetail>? BoxingInfoDetails { get; set; }
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 c6dc229..edc5b84 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"
@@ -50,7 +50,6 @@
         /// <summary>
         /// 搴撳瓨鏄庣粏
         /// </summary>
-        [MinItemsCount(1)] // 妫�娴嬮泦鍚堝厓绱犳渶灏�1涓�
         [SugarColumn(ColumnName = "BoxingInfoDetails")]
         [Navigate(NavigateType.OneToMany, nameof(DtBoxingInfoDetail_Hty.BoxingInfoId))]
         public List<DtBoxingInfoDetail_Hty>? BoxingInfoDetails { get; set; }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Boxing/BoxingInfoHtyRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Boxing/BoxingInfoHtyRepository.cs"
new file mode 100644
index 0000000..fa4f5e3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Boxing/BoxingInfoHtyRepository.cs"
@@ -0,0 +1,9 @@
+锘縩amespace WIDESEA_StorageBasicRepository
+{
+    public class BoxingInfoHtyRepository : RepositoryBase<DtBoxingInfo_Hty>, IBoxingInfoHtyRepository
+    {
+        public BoxingInfoHtyRepository(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_StorageBasicServices/Boxing/BoxingInfoHtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoHtyService.cs"
new file mode 100644
index 0000000..94da40c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoHtyService.cs"
@@ -0,0 +1,20 @@
+锘縰sing Mapster;
+using Masuit.Tools;
+using System.ComponentModel.DataAnnotations;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_DTO.Basic;
+using WIDESEA_IOrderRepository;
+
+namespace WIDESEA_StorageBasicService;
+
+public class BoxingInfoHtyService : ServiceBase<DtBoxingInfo_Hty, IBoxingInfoHtyRepository>, IBoxingInfoHtyService
+{
+    private readonly IDt_InboundOrderRepository _inboundOrderRepository;
+    private readonly IUnitOfWorkManage _unitOfWorkManage;
+    public BoxingInfoHtyService(IBoxingInfoHtyRepository BaseDal, IDt_InboundOrderRepository inboundOrderRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+    {
+        _inboundOrderRepository = inboundOrderRepository;
+        _unitOfWorkManage = 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_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 bbbd858..87df8eb 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,5 +1,9 @@
-锘縰sing Masuit.Tools;
+锘縰sing Mapster;
+using Masuit.Tools;
+using SqlSugar;
 using System.ComponentModel.DataAnnotations;
+using System.Linq.Expressions;
+using WIDESEA_Core.BaseRepository;
 using WIDESEA_DTO.Basic;
 using WIDESEA_IOrderRepository;
 
@@ -8,9 +12,47 @@
 public class BoxingInfoService : ServiceBase<DtBoxingInfo, IBoxingInfoRepository>, IBoxingInfoService
 {
     private readonly IDt_InboundOrderRepository _inboundOrderRepository;
-    public BoxingInfoService(IBoxingInfoRepository BaseDal, IDt_InboundOrderRepository inboundOrderRepository) : base(BaseDal)
+    private readonly IUnitOfWorkManage _unitOfWorkManage;
+    public BoxingInfoService(IBoxingInfoRepository BaseDal, IDt_InboundOrderRepository inboundOrderRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
     {
         _inboundOrderRepository = inboundOrderRepository;
+        _unitOfWorkManage = unitOfWorkManage;
+    }
+    public override PageGridData<DtBoxingInfo> GetPageData(PageDataOptions options)
+    {
+        string wheres = ValidatePageOptions(options);
+        //鑾峰彇鎺掑簭瀛楁
+        Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
+        List<OrderByModel> orderByModels = new List<OrderByModel>();
+        foreach (var item in orderbyDic)
+        {
+            OrderByModel orderByModel = new()
+            {
+                FieldName = item.Key,
+                OrderByType = item.Value
+            };
+            orderByModels.Add(orderByModel);
+        }
+
+
+        int totalCount = 0;
+        List<SearchParameters> searchParametersList = new List<SearchParameters>();
+        if (!string.IsNullOrEmpty(options.Wheres))
+        {
+            try
+            {
+                searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+                options.Filter = searchParametersList;
+            }
+            catch { }
+        }
+        var data = BaseDal.Db.Queryable<DtBoxingInfo>()
+            .Includes(x => x.BoxingInfoDetails)
+            .WhereIF(!wheres.IsNullOrEmpty(), wheres)
+            .OrderBy(orderByModels)
+            .ToPageList(options.Page, options.Rows, ref totalCount);
+        new PageGridData<DtBoxingInfo>(totalCount, data);
+        return new PageGridData<DtBoxingInfo>(totalCount, data);
     }
 
     public async Task<WebResponseContent> AddBoxingInfoAsync(AddBoxingDto boxingInfo)
@@ -18,6 +60,10 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
+            if(boxingInfo == null || boxingInfo.OrderNos.IsNullOrEmpty() || boxingInfo.palletCode.IsNullOrEmpty())
+            {
+                return content.Error("鍙傛暟閿欒");
+            }
             var info = await BaseDal.QueryFirstAsync(x => x.PalletCode == boxingInfo.palletCode);
             if (!info.IsNullOrEmpty())
             {
@@ -80,18 +126,57 @@
                     BoxingInfoDetails= details
                 };
                 await BaseDal.AddDataNavAsync(boxing);
+                content.OK("缁勭洏鎴愬姛");
             }
             return content;
         }
         catch (Exception ex)
         {
-            return content.OK();
+            return content.Error(ex.Message);
         }
     }
 
-    public override PageGridData<DtBoxingInfo> GetPageData(PageDataOptions options)
+    public async Task<WebResponseContent> DeleteBoxingInfoAsync(AddBoxingDto boxingInfo)
     {
-        return base.GetPageData(options);
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            if (boxingInfo == null || boxingInfo.palletCode.IsNullOrEmpty())
+            {
+                return content.Error("鍙傛暟閿欒");
+            }
+            var boxing = await BaseDal.QueryFirstNavAsync(x => x.PalletCode == boxingInfo.palletCode);
+            if (!boxing.IsNullOrEmpty())
+            {
+                DtBoxingInfo_Hty boxingInfo_Hty = boxing.Adapt<DtBoxingInfo_Hty>();
+                boxingInfo_Hty.ModifyDate = DateTime.Now;
+                await _unitOfWorkManage.UseTranAsync(async () =>
+                {
+                    await BaseDal.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxing.Id)
+                                            .Include(x => x.BoxingInfoDetails)
+                                            .ExecuteCommandAsync();
+                    await AddBoxingHtyAsync(boxingInfo_Hty);
+                });
+                content.OK("瑙g洏鎴愬姛");
+            }
+            else
+            {
+                content.Error("鏈壘鍒扮粍鐩樻暟鎹�");
+            }
+            return content;
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+    private async Task AddBoxingHtyAsync(DtBoxingInfo_Hty boxingInfo)
+    {
+        var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(boxingInfo).IncludesAllFirstLayer().ExecuteCommandAsync();
+        if (!isStockAdd)
+        {
+            throw new Exception("缁勭洏鍘嗗彶淇℃伅娣诲姞澶辫触");
+        }
     }
 
     // 楠岃瘉妯″瀷
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 c9a1b3d..9818ca4 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"
@@ -68,12 +68,12 @@
     }
 
     #region 鍒濆鍖栧簱浣�
-    public async Task<WebResponseContent> initializeLocation(int locationID)
+    public async Task<WebResponseContent> initializeLocation(string locationCode)
     {
         WebResponseContent content = new WebResponseContent();
         try
         {
-            DtLocationInfo? location = BaseDal.QueryData(x => x.Id == locationID).FirstOrDefault();
+            DtLocationInfo? location = BaseDal.QueryData(x => x.LocationCode == locationCode).FirstOrDefault();
             int LastStatus = location.LocationStatus;
             if (location == null)
             {
@@ -83,6 +83,7 @@
             if(stock == null)
             {
                 location.LocationStatus= (int)LocationEnum.Free;
+                _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, LastStatus, (int)StatusChangeTypeEnum.ManualOperation, 0);
                 BaseDal.UpdateData(location);
             }
             else
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 f3d46da..bcd9bd1 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"
@@ -59,6 +59,7 @@
 
         Expression<Func<DtStockInfo, bool>> locationStatus = null;
         Expression<Func<DtStockInfo, bool>> floor = null;
+        Expression<Func<DtStockInfo, bool>> areaId = null;
         foreach (var item in searchParametersList)
         {
             if (item.Name.Contains("locationStatus"))
@@ -69,6 +70,10 @@
             {
                 floor = x => x.LocationInfo.Floor.Contains(item.Value);
             }
+            else if (item.Name.Contains("areaId"))
+            {
+                areaId = x => x.LocationInfo.AreaId== Convert.ToInt32(item.Value);
+            }
         }
         //.IncludesAllFirstLayer()
         var data = BaseDal.Db.Queryable<DtStockInfo>()
@@ -77,6 +82,7 @@
             .WhereIF(!wheres.IsNullOrEmpty(), wheres)
             .WhereIF(locationStatus != null, locationStatus)
             .WhereIF(floor != null, floor)
+            .WhereIF(areaId != null, areaId)
             .OrderBy(orderByModels)
             .ToPageList(options.Page, options.Rows, ref totalCount);
         new PageGridData<DtStockInfo>(totalCount, data);
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 b6c1b44..6080888 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"
@@ -61,7 +61,6 @@
                 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();
@@ -142,7 +141,7 @@
             {
                 PrintSetting.Spare1 = DateTime.Now.ToString("yyyyMMdd");
                 PrintSetting.PrintNo = 2;
-                PrintCode = PrintSetting.PrintCode + PrintSetting.Spare1 + 1.ToString().PadLeft(PrintSetting.Spare2, '0');
+                PrintCode = PrintSetting.Spare1 + 1.ToString().PadLeft(PrintSetting.Spare2, '0');
             }
             SqlSugarHelper.DbWMS.Updateable(PrintSetting).ExecuteCommand();
             return PrintCode;
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 53e5909..fb047f2 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"
@@ -3,13 +3,17 @@
 using Mapster;
 using Masuit.Tools;
 using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
 using OfficeOpenXml.Table.PivotTable;
 using SixLabors.Fonts.Tables.AdvancedTypographic;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Reflection;
 using System.Reflection.Metadata;
+using System.Security.Policy;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 using WIDESEA_Cache;
@@ -83,16 +87,33 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
+            var locationStart = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.SourceAddress);
+            var locationEnd = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
+
             task.TaskState = (int)TaskOutStatusEnum.OutFinish;
             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";
+
+            //DtStockInfo_Hty stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>();
+            //stockInfo_Hty.ModifyDate = DateTime.Now; 
+            stock.ModifyDate = DateTime.Now;
+            stock.LocationCode = task.TargetAddress;
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
+                //await DeleteStockInfoAsync(stock.Id);
+                //await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
+                //await AddStockInfoHtyAsync(stockInfo_Hty);
+                _stockInfoRepository.UpdateData(stock);
+
+                UpdateLocationStatus(locationStart, LocationEnum.Free, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticOutbound);
+                UpdateLocationStatus(locationEnd, LocationEnum.InStock, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticOutbound);
+
                 await DeleteTaskAsync(task.TaskId);
                 await AddTaskHtyAsync(taskHty);
             });
+            content.OK("鍑哄簱瀹屾垚");
         }
         catch (Exception ex)
         {
@@ -117,17 +138,27 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
-            // 鏇存柊璐т綅鍜屽簱瀛樹俊鎭�
-            (DtStockInfo updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateStockLocation(stock, task);
-            var taskHty = CreateHistoricalTask(task);
-            LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "绉诲簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庡簱瀛樻暟鎹細{JsonConvert.SerializeObject(updateStock)}锛屽師鍏堣揣浣嶆暟鎹細{locationInForm}");
+            var locationStart = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.SourceAddress);
+            var locationEnd = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
 
-            // 鎵ц鏁版嵁搴撲簨鍔�
-            bool isResult = false;
-            if (isResult)
-                content.OK("绉诲簱浠诲姟瀹屾垚鎴愬姛");
-            else
-                content.Error("绉诲簱浠诲姟瀹屾垚澶辫触");
+            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+            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";
+
+            stock.ModifyDate = DateTime.Now;
+            stock.LocationCode = task.TargetAddress;
+
+            await _unitOfWorkManage.UseTranAsync(async () =>
+            {
+                //UpdateLocationStatus(locationStart, LocationEnum.Free, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
+                UpdateLocationStatus(locationEnd, LocationEnum.InStock, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticRelocation);
+                _stockInfoRepository.UpdateData(stock);
+                await DeleteTaskAsync(task.TaskId);
+                await AddTaskHtyAsync(taskHty);
+            });
+            content.OK("绉诲簱瀹屾垚");
         }
         catch (Exception err)
         {
@@ -177,6 +208,8 @@
                 await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxing.Id)
                                         .Include(x => x.BoxingInfoDetails)
                                         .ExecuteCommandAsync();
+                UpdateLocationStatus(locationStart, LocationEnum.Free, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
+                UpdateLocationStatus(locationEnd, LocationEnum.InStock, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
                 await AddBoxingHtyAsync(boxingInfo_Hty);
             });
             content.OK("鍏ュ簱瀹屾垚");
@@ -274,8 +307,7 @@
 
 
         // 楠岃瘉搴撳瓨鏄惁瀛樺湪
-        //var stock = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
-        DtStockInfo stock = null;
+        var stock = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
 
         if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
         {
@@ -297,6 +329,40 @@
 
     #endregion 浠诲姟瀹屾垚
 
+    #region 鍙栨秷浠诲姟
+    public WebResponseContent TaskCancel(int taskNum)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+            if (task == null)
+            {
+                return content = WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�");
+            }
+            _unitOfWorkManage.BeginTran();
+            MethodInfo? methodInfo = GetType().GetMethod(((TaskTypeEnum)task.TaskType) + "TaskCancel");
+            if (methodInfo != null)
+            {
+                WebResponseContent? responseContent = (WebResponseContent?)methodInfo.Invoke(this, new object[] { task });
+                if (responseContent != null)
+                {
+                    if (responseContent != null)
+                    {
+                        
+                    }
+                }
+            }
+            return content = WebResponseContent.Instance.Error("鏈壘鍒颁换鍔$被鍨嬪搴斾笟鍔″鐞嗛�昏緫");
+        }
+        catch (Exception ex)
+        {
+            _unitOfWorkManage.RollbackTran();
+            return content = WebResponseContent.Instance.Error(ex.Message);
+        }
+    }
+    #endregion
+
     #region 璇锋眰浠诲姟鍏ュ簱
 
     public async Task<WebResponseContent> RequestInboundTaskAsync(RequestTaskDto taskDto)
@@ -310,14 +376,14 @@
                 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搴撳瓨鏁版嵁涓紝璇蜂汉宸ョ‘璁ゆ暟鎹槸鍚︽纭�");
-                }
-            }
+            //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)
@@ -349,16 +415,16 @@
                 var location = _locationRepository.QueryFirst(x => x.LocationCode == taskDto.TargetAddress);
                 if (location != null && location.LocationStatus == (int)LocationEnum.Free && location.EnalbeStatus == 1)
                 {
-                    switch (taskDto.AreaId)
+                    switch (location.AreaId)
                     {
                         case 1:
-                            return await InboundStakerArea(taskDto, location, StartAddress);
+                            return await InboundStakerArea(taskDto, StartAddress, location);
                         case 2:
                         case 3:
                         case 4:
                         case 5:
                         case 6:
-                            return await InboundAGVCacheArea(taskDto, location, StartAddress);
+                            return await InboundAGVCacheArea(taskDto, StartAddress, location);
                         default:
                             return content.Error("璐т綅鍖哄煙鏈壘鍒�");
                     }
@@ -560,6 +626,29 @@
     #endregion
 
     #region 璇锋眰鍑哄簱
+    public async Task<WebResponseContent> OtherOutBoundTaskAsync(string palletCode)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            DtStockInfo stcok = await _stockInfoRepository.QueryFirstAsync(x => x.PalletCode == palletCode);
+            if (stcok == null)
+            {
+                return content.Error("鎵樼洏淇℃伅涓嶅瓨鍦紝璇风‘璁ゆ墭鐩樺凡鍏ュ簱鎴愬姛");
+            }
+            var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == stcok.LocationCode);
+            if (location.AreaId == 2)
+            {
+                return content.Error("璇ユ墭鐩樺簱瀛樺凡鍦ㄥ嚭搴撶紦瀛樺尯");
+            }
+            return await RequestOutboundTaskAsync(new RequestTaskDto { PalletCode = palletCode, AreaId = 2, Position = stcok.LocationCode ,TaskType = (int)TaskOutboundTypeEnum.OutOther });
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
 
     /// <summary>
     /// 璇锋眰鍑哄簱浠诲姟
@@ -571,11 +660,11 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
-            //DtStockInfo stcok= await _stockInfoRepository.QueryFirstAsync(x => x.PalletCode == taskDto.PalletCode);
-            //if (stcok == null)
-            //{
-            //    return content.Error("鎵樼洏淇℃伅涓嶅瓨鍦紝璇风‘璁ゆ墭鐩樺凡鍏ュ簱鎴愬姛");
-            //}
+            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)
@@ -763,16 +852,17 @@
                 Floor = stationManager.stationFloor,
             };
             var taskDTO = CreateTaskDTO(taskNew);
-
+            task.TaskState = (int)TaskAcrossFloorStatusEnum.FirstCarryFinish;
             var taskHty = task.Adapt<Dt_Task_Hty>();
             taskHty.FinishTime = DateTime.Now;
             taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.浜哄伐瀹屾垚 : (int)OperateTypeEnum.鑷姩瀹屾垚;
             taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
-                BaseDal.AddData(taskNew);
+                
                 await DeleteTaskAsync(task.TaskId);
                 await AddTaskHtyAsync(taskHty);
+                BaseDal.AddData(taskNew);
             });
             return content.OK(data: taskDTO);
         }
@@ -1059,11 +1149,32 @@
     }
     #endregion
 
+    #region 鑾峰彇浠诲姟淇℃伅
+    public WebResponseContent GetTaskInfo()
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            Expression<Func<Dt_Task, bool>> expression = x => true;
+            if (!App.User.IsSuperAdmin)
+            {
+                expression = x => x.Creater == App.User.UserName;
+            }
+            var task = BaseDal.Db.Queryable<Dt_Task>().OrderByDescending(x => x.CreateDate).Take(100).Select(x => new Dt_Task { TaskNum = x.TaskNum, PalletCode = x.PalletCode, TaskType = x.TaskType, SourceAddress = x.SourceAddress, TargetAddress = x.TargetAddress }).ToList();
+            content = WebResponseContent.Instance.OK(data: task);
+        }
+        catch (Exception ex)
+        {
+            content = WebResponseContent.Instance.Error(ex.Message);
+        }
+        return content;
+    }
+    #endregion
 
     #endregion 澶栭儴鎺ュ彛鏂规硶
 
     #region 璋冪敤WCS鎺ュ彛
-    private string GetAGVIPAddress(string baseIp, string name)
+    private string GetWCSIPAddress(string baseIp, string name)
     {
         var configz = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
         var wcsBasez = configz.Where(x => x.ConfigKey == baseIp).FirstOrDefault()?.ConfigValue;
@@ -1077,7 +1188,7 @@
     public async Task<WebResponseContent> SendWCSTask(List<WMSTaskDTO> taskDTO)
     {
         WebResponseContent content = new WebResponseContent();
-        var AgvSendTaskAddrss = GetAGVIPAddress(SysConfigConst.WCSIPAddress, SysConfigConst.ReceiveTask);
+        var AgvSendTaskAddrss = GetWCSIPAddress(SysConfigConst.WCSIPAddress, SysConfigConst.ReceiveTask);
         // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
         var result = await HttpHelper.PostAsync(AgvSendTaskAddrss, taskDTO.ToJsonString());
 
@@ -1087,13 +1198,69 @@
     }
     #endregion
 
+    #region ERP鎺ュ彛璋冪敤
+    public string GetERPIPAddress(string baseIp, string name)
+    {
+        var configz = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+        var wcsBasez = configz.Where(x => x.ConfigKey == baseIp).FirstOrDefault()?.ConfigValue;
+        var address = configz.Where(x => x.ConfigKey == name).FirstOrDefault()?.ConfigValue;
+        if (wcsBasez == null || address == null)
+        {
+            throw new InvalidOperationException("WMS IP 鏈厤缃�");
+        }
+        return wcsBasez + address;
+    }
+
+    public async Task<WebResponseContent> SendERPTaskCompletion(string palletCode)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            DtStockInfo stock = await _stockInfoRepository.QueryFirstNavAsync(x=>x.PalletCode== palletCode);
+            Allocate allocate = new Allocate
+            {
+                context = new Context
+                {
+                    CultureName = "zh-CN",
+                    EntCode = "001",
+                    OrgCode = "102",
+                    UserCode = "MH0551"
+                },
+                documentTypeCode = "TransIn002",
+                businessDate = DateTime.Now.ToString("yyyy-MM-dd"),
+                isApproved = true,
+
+                transferInList = stock.StockInfoDetails.Select(item => new transferInList
+                {
+                    ItemCode = item.MaterielCode,
+                    TransInWHCode = item.Warehouse,
+                    TransInQty = item.Quantity,
+                    TransOutWHCode = "001",
+                }).ToList()
+            };
+            return content.OK(data: allocate);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+    }
+
+
+    #endregion
+
     #region 鍐呴儴璋冪敤鏂规硶
 
     public void UpdateLocationStatus(DtLocationInfo location, LocationEnum locationStatus, int taskNum, int StatusChangeType)
     {
         List<DtLocationInfo> locations = GetGroupLocations(location);
 
-        List<DtLocationInfo> Beforelocation = locations;
+        List<DtLocationInfo> Beforelocation = locations.Select(x => new DtLocationInfo
+        {
+            Id = x.Id,
+            LocationCode = x.LocationCode,
+            LocationStatus = x.LocationStatus
+        }).ToList();
 
         foreach (var item in locations)
         {
@@ -1237,15 +1404,6 @@
         };
     }
 
-    private bool IsAcrossFloor(DtLocationInfo Sourcelocation,DtLocationInfo Targetlocation)
-    {
-        return Sourcelocation.Floor == Targetlocation.Floor;
-    }
-
-    private bool IsSamefloor(DtLocationInfo Sourcelocation, DtLocationInfo Targetlocation)
-    {
-        return Sourcelocation.Floor == Targetlocation.Floor;
-    }
     private async Task DeleteStockInfoAsync(int stockId)
     {
         var isStockUpdated = await _stockInfoRepository.DeleteDataByIdAsync(stockId);
@@ -1282,14 +1440,6 @@
         }
     }
 
-    private async Task UpdateLocationAsync(DtLocationInfo info)
-    {
-        var isStockUpdated = await _locationRepository.UpdateDataAsync(info);
-        if (!isStockUpdated)
-        {
-            throw new Exception("搴撲綅淇℃伅鏇存柊澶辫触");
-        }
-    }
 
     private async Task DeleteStockInfoDetailsAsync(IEnumerable<DtStockInfoDetail> details)
     {
@@ -1387,26 +1537,6 @@
         return taskHty;
     }
 
-    /// <summary>
-    /// 鏇存柊搴撳瓨浣嶇疆
-    /// </summary>
-    /// <param name="stock">搴撳瓨瀵硅薄</param>
-    /// <param name="toLocation">鐩爣浣嶇疆</param>
-    // 鏇存柊搴撳瓨鍜屼綅缃俊鎭�
-    private (DtStockInfo, DtLocationInfo, DtLocationInfo) UpdateStockLocation(DtStockInfo stock, Dt_Task task)
-    {
-        //淇敼鏉ユ簮搴撲綅鍜� 鐩爣搴撲綅鐘舵��
-        var fromLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
-        fromLocation.LocationStatus = LocationEnum.Free.ObjToInt();
-        var toLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
-        toLocation.LocationStatus = LocationEnum.InStock.ObjToInt();
-
-        // 灏嗗簱瀛樹綅缃缃负鐩爣浣嶇疆
-        stock.LocationCode = task.TargetAddress;
-
-        // 杩斿洖鏇存柊鍚庣殑搴撳瓨鍜屼綅缃俊鎭�
-        return (stock, fromLocation, toLocation);
-    }
 
     #region 浠诲姟璇锋眰鏂规硶
 
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 26c253a..0836c6a 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"
@@ -11,9 +11,15 @@
     }
 
     // POST api/<BoxingInfoController>
-    [HttpPost, Route("AddBoxingInfo"), AllowAnonymous]
+    [HttpPost,HttpGet, Route("AddBoxingInfo"), AllowAnonymous]
     public Task<WebResponseContent> AddBoxingInfoAsync([FromBody] AddBoxingDto boxingInfo)
     {
         return Service.AddBoxingInfoAsync(boxingInfo);
     }
+
+    [HttpPost, HttpGet, Route("DeleteBoxingInfoAsync"), AllowAnonymous]
+    public Task<WebResponseContent> DeleteBoxingInfoAsync([FromBody] AddBoxingDto boxingInfo)
+    {
+        return Service.DeleteBoxingInfoAsync(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_WMSServer/Controllers/Basic/BoxingInfoHtyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoHtyController.cs"
new file mode 100644
index 0000000..2b38792
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/BoxingInfoHtyController.cs"
@@ -0,0 +1,13 @@
+锘縰sing WIDESEA_DTO.Basic;
+
+namespace WIDESEA_WMSServer.Controllers;
+
+[Route("api/BoxingInfoHty")]
+[ApiController]
+public class BoxingInfoHtyController : ApiBaseController<IBoxingInfoHtyService, DtBoxingInfo>
+{
+    public BoxingInfoHtyController(IBoxingInfoHtyService service) : base(service)
+    {
+    }
+
+}
\ 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/Basic/LocationInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
index 8d21ec3..d60da40 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs"
@@ -34,8 +34,8 @@
     }
 
     [HttpPost, AllowAnonymous, Route("initializeLocation")]
-    public async Task<WebResponseContent> initializeLocation(int locationID)
+    public async Task<WebResponseContent> initializeLocation(string locationCode)
     {
-        return await Service.initializeLocation(locationID);
+        return await Service.initializeLocation(locationCode);
     }
 }
\ 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/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 13329dd..aab3422 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"
@@ -370,6 +370,122 @@
                         result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                     }
                     break;
+                case "operateTypeEnum":
+                    {
+                        List<object> data = new List<object>();
+
+                        #region operateTypeEnum
+                        {
+                            Type type = typeof(OperateTypeEnum);
+                            List<int> enums = Enum.GetValues(typeof(OperateTypeEnum)).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = typeof(OperateTypeEnum).GetField(((OperateTypeEnum)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;
+                case "LocationState":
+                    {
+                        List<object> data = new List<object>();
+
+                        #region LocationEnum
+                        {
+                            Type type = typeof(LocationEnum);
+                            List<int> enums = Enum.GetValues(typeof(LocationEnum)).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = typeof(LocationEnum).GetField(((LocationEnum)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;
+                case "StockStateEmun":
+                    {
+                        List<object> data = new List<object>();
+
+                        #region StockStateEmun
+                        {
+                            Type type = typeof(StockStateEmun);
+                            List<int> enums = Enum.GetValues(typeof(StockStateEmun)).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = typeof(StockStateEmun).GetField(((StockStateEmun)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;
+                case "EnableEnum":
+                    {
+                        List<object> data = new List<object>();
+
+                        #region EnableEnum
+                        {
+                            Type type = typeof(EnableEnum);
+                            List<int> enums = Enum.GetValues(typeof(EnableEnum)).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = typeof(EnableEnum).GetField(((EnableEnum)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 eea9955..c336623 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"
@@ -28,6 +28,28 @@
     {
         return await Service.CompleteAsync(taskNum);
     }
+
+    /// <summary>
+    /// 浠诲姟鍙栨秷
+    /// </summary>
+    /// <param name="taskNum"></param>
+    /// <returns></returns>
+    [HttpPost, Route("TaskCancel"), AllowAnonymous]
+    public WebResponseContent TaskCancel(int taskNum)
+    {
+        return Service.TaskCancel(taskNum);
+    }
+
+    /// <summary>
+    /// 鑾峰彇浠诲姟淇℃伅
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost, Route("GetTaskInfo")]
+    public WebResponseContent GetTaskInfo()
+    {
+        return Service.GetTaskInfo();
+    }
+
     /// <summary>
     /// 璇锋眰鍏ュ簱浠诲姟
     /// </summary>
@@ -62,6 +84,18 @@
     public async Task<WebResponseContent> RequestOutboundTaskAsync([FromBody] RequestTaskDto taskDto)
     {
         return await Service.RequestOutboundTaskAsync(taskDto);
+    }
+
+    /// <summary>
+    /// 绌烘墭鐩樻弧鐩樺嚭搴撹姹�
+    /// </summary>
+    /// <param name="request">璇锋眰鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("OtherOutBoundTaskAsync")]
+    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 2 })]
+    public Task<WebResponseContent> OtherOutBoundTaskAsync(string palletCode)
+    {
+        return Service.OtherOutBoundTaskAsync(palletCode);
     }
 
     /// <summary>
@@ -115,4 +149,11 @@
     {
         return await Service.AGVIsNeedRelocationAsync(taskDto);
     }
+
+    [HttpPost, AllowAnonymous, Route("SendERPTaskCompletion")]
+    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
+    public Task<WebResponseContent> SendERPTaskCompletion(string palletCode)
+    {
+        return Service.SendERPTaskCompletion(palletCode);
+    }
 }
\ 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/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
index 194844c..fc84b76 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,StatusChangeType",
+  "dics": "taskType,taskState,operateTypeEnum,StatusChangeType,LocationState,StockStateEmun,EnableEnum",
   "AllowedHosts": "*",
   "urls": "http://*:5000",
   "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\230\216\345\222\214U9\346\216\245\345\217\243.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\230\216\345\222\214U9\346\216\245\345\217\243.xlsx"
new file mode 100644
index 0000000..9f5786c
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\230\216\345\222\214U9\346\216\245\345\217\243.xlsx"
Binary files differ

--
Gitblit v1.9.3