From ac795c61f3d0b21626cc3487743c39286950fea1 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 29 11月 2024 13:52:00 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/LA24030-LuLI_PackageLine

---
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue                     |    2 
 LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts                                      |   27 +
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue                                     |   73 +++-
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/component/editDialog.vue               |  120 +++++++
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/index.vue                              |  315 ++++++++++++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs |    9 
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue                  |    4 
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue                            |  178 +++++++---
 LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts                                      |   15 
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue                                   |  246 +++++++-------
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs               |    2 
 11 files changed, 790 insertions(+), 201 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
index 7943695..5b60f7f 100644
--- a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
@@ -17,6 +17,12 @@
   //PageStockQuanForXjd= '/api/WmsOrderMovement/GetKcMaterialGroup',
   PageStockQuanForXjd= '/api/v_wms_stock_quan_group/Page',
   PageWmsLocationViewDetail = '/api/WmsPlaceContainerInfo/Detail',
+  ValdateQiTao = '/api/WmsOperationTask/ValdateQiTao',
+
+  ValdateLabel = '/api/WmsOperationTask/ValdateLabel',
+
+  
+  
 }
 
 // 澧炲姞瀹炴椂搴撳瓨
@@ -151,3 +157,24 @@
 		method: 'get',
 		data: params
 	});
+
+
+	///鍒ゆ柇榻愬
+export const ValdateQiTao = (params?: any) => 
+	request({
+			url: Api.ValdateQiTao,
+			method: 'post',
+			data: params
+		});
+
+
+
+		
+export const ValdateLabel = (params?: any) => 
+	request({
+			url: Api.ValdateLabel,
+			method: 'post',
+			data: params
+		});
+
+		
\ No newline at end of file
diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts
index f0dc8f0..0464bcb 100644
--- a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts
@@ -1,6 +1,9 @@
 锘縤mport request from '/@/utils/request';
 enum Api {
   AddWmsOrderPurchase = '/api/wmsOrderPurchase/add',
+  ForceOutbound = '/api/WmsOperationTask/ForceOutbound',
+
+  
   DeleteWmsOrderPurchase = '/api/wmsOrderPurchase/delete',
   UpdateWmsOrderPurchase = '/api/wmsOrderPurchase/update',
   KittingList = '/api/WmsStockQuan/KittingList', ///api/wmsOrderPurchase/page
@@ -106,4 +109,14 @@
 		method: 'get',
 		data: params,
 		responseType: 'blob'
-	});
\ No newline at end of file
+	});
+
+
+
+	export const ForceOutbound = (params?: any) =>
+		request({
+			url: Api.ForceOutbound,
+			method: 'post',
+			data: params,
+		});
+	
\ No newline at end of file
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
index c995954..32c0c1d 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
@@ -281,9 +281,7 @@
 								<el-form-item label-width="20px">
 									<el-button type="primary" icon="el-icon-search" @click="getDetail">鏌ヨ</el-button>
 
-									<!-- <el-button type="primary" icon="ele-Printer" @click="getPrint">鎵撳嵃</el-button> -->
-
-									<el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> 鎵撳嵃 </el-button>
+									<!-- <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> 鎵撳嵃 </el-button> -->
 								</el-form-item>
 							</el-col>
 						</el-row>
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue
index 55d7381..d2c5168 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue
@@ -11,7 +11,6 @@
 								ref="materialCodeInput"
 								clearable=""
 								placeholder="璇锋壂閮ㄤ欢鏉$爜"
-								@input="handleChange"
 								@keyup.enter.prevent="handleEnter"
 								@confirm.enter.prevent="handleEnter"
 							/>
@@ -33,7 +32,29 @@
 				</el-row>
 			</el-form>
 			<br />
-			<div class="detailBox">
+			<div class="detailBox" style="height: calc(65vh)">
+				<div class="titleTip">
+					<div class="" v-show="isSuccess == '鎴愬姛'">
+						<svg t="1732788314050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11359" width="100" height="100">
+							<path
+								d="M874.119618 149.859922A510.816461 510.816461 0 0 0 511.997 0.00208a509.910462 509.910462 0 0 0-362.119618 149.857842c-199.817789 199.679789-199.817789 524.581447 0 724.260236a509.969462 509.969462 0 0 0 362.119618 149.857842A508.872463 508.872463 0 0 0 874.119618 874.120158c199.836789-199.679789 199.836789-524.581447 0-724.260236zM814.94268 378.210681L470.999043 744.132295a15.359984 15.359984 0 0 1-5.887994 4.095996c-1.751998 1.180999-2.913997 2.362998-5.276994 2.913997a34.499964 34.499964 0 0 1-13.469986 2.914997 45.547952 45.547952 0 0 1-12.897986-2.303998l-4.095996-2.363997a45.291952 45.291952 0 0 1-7.009992-4.095996l-196.902793-193.789796a34.126964 34.126964 0 0 1-10.555989-25.186973c0-9.37399 3.583996-18.74698 9.98399-25.186974a36.429962 36.429962 0 0 1 50.372947 0l169.98382 167.423824L763.389735 330.220732a37.059961 37.059961 0 0 1 50.371947-1.732998 33.647965 33.647965 0 0 1 11.165988 25.186973 35.544963 35.544963 0 0 1-9.98399 24.575974v-0.04z m0 0"
+								fill="#52C41A"
+								p-id="11360"
+							></path>
+						</svg>
+						<p class="okText">鑾峰彇鏍囩淇℃伅鎴愬姛锛�</p>
+					</div>
+					<div class="" v-show="isSuccess && isSuccess != '鎴愬姛'">
+						<svg t="1732842594517" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4303" width="100" height="100">
+							<path
+								d="M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z"
+								fill="#E84335"
+								p-id="4304"
+							></path>
+						</svg>
+						<p class="okText">{{ isSuccess }}</p>
+					</div>
+				</div>
 				<ul>
 					<!-- <li>
 						<span class="text_left">鏄惁榻愬寘:</span>
@@ -62,11 +83,51 @@
 						<span class="text_left">璁㈠崟鍙�:</span>
 						<span class="text_rt">{{ tableData.orderId }}</span>
 					</li>
-					<br />	<br />	<br />	<br />	<br />	<br />
-						<br />	<br />	<br />	<br />	<br />
-					<br />	<br />	<br />	<br />	<br />	<br />	
+					<li>
+						<span class="text_left">绾哥闀�:</span>
+						<span class="text_rt">{{ tableData.info1 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绾哥瀹�:</span>
+						<span class="text_rt">{{ tableData.info2 }}</span>
+					</li>
+					<li>
+						<span class="text_left">info3:</span>
+						<span class="text_rt">{{ tableData.info3 }}</span>
+					</li>
 
-
+					<li>
+						<span class="text_left">閿�鍞悎鍚屽崟鍙�:</span>
+						<span class="text_rt">{{ tableData.info4 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绗嚑鍖�:</span>
+						<span class="text_rt">{{ tableData.info6 }}</span>
+					</li>
+					<li>
+						<span class="text_left">缁忛攢搴楀悕绉�:</span>
+						<span class="text_rt">{{ tableData.info7 }}</span>
+					</li>
+					<li>
+						<span class="text_left">浜у搧鍚嶇О:</span>
+						<span class="text_rt">{{ tableData.info8 }}</span>
+					</li>
+					<li>
+						<span class="text_left">瀹㈡埛鍚嶇О:</span>
+						<span class="text_rt">{{ tableData.info10 }}</span>
+					</li>
+					<li>
+						<span class="text_left">鑷彁鎴栧彂璐�:</span>
+						<span class="text_rt">{{ tableData.info11 }}</span>
+					</li>
+					<li>
+						<span class="text_left">鍖呰閮ㄤ欢鎬绘暟閲�:</span>
+						<span class="text_rt">{{ tableData.info12 }}</span>
+					</li>
+					<li>
+						<span class="text_left">鍖呰闈㈢Н:</span>
+						<span class="text_rt">{{ tableData.info13 }}</span>
+					</li>
 					<!-- <li>
 						<span class="text_left">瀹㈡埛鍚嶇О:</span>
 						<span class="text_rt">{{ tableData.Info10 }}</span>
@@ -128,22 +189,16 @@
 </template>
 
 <script lang="ts" setup="" name="wmsSubstituteGood">
-import { onMounted, ref } from 'vue';
+import { onBeforeUnmount, onMounted, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import { auth } from '/@/utils/authFunction';
 import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
 import { formatDate } from '/@/utils/formatTime';
-import { listMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New, importExcelMes_BatchOrderUPI_New, downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New';
-import printDialog from '/@/views/system/print/component/hiprint/preview.vue';
-import editDialog from '/@/views/main/WmsBase/wmsSubstituteGood/component/editDialog.vue';
-import { pageWmsSubstituteGood, deleteWmsSubstituteGood } from '/@/api/main/WmsBase/wmsSubstituteGood';
 import { ShortageList } from '/@/api/main/ReportCenter/wmsStockQuan';
 
 const showAdvanceQueryUI = ref(false);
-const printDialogRef = ref();
-const editDialogRef = ref();
 const loading = ref(false);
-const tableData = ref<any>([]);
+const tableData = ref<any>({});
 const queryParams = ref<any>({
 	upi: '',
 });
@@ -152,129 +207,68 @@
 	pageSize: 10,
 	total: 0,
 });
-const getIsDisabledData = [
-	{
-		value: true,
-		text: '鏄�',
-	},
-	{
-		value: false,
-		text: '鍚�',
-	},
-];
-const printWmsSubstituteGoodTitle = ref('');
-const editWmsSubstituteGoodTitle = ref('');
 
-// 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
-const changeAdvanceQueryUI = () => {
-	showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
+//=======================榧犳爣瀹氫綅 鐢ㄤ簬寮曠敤杈撳叆妗�=====================
+let materialCodeInput = ref(null);
+let inactivityTimer = null;
+
+// 澶勭悊鐢ㄦ埛娲诲姩鐨勫嚱鏁�
+const handleUserActivity = () => {
+	if (inactivityTimer) {
+		clearTimeout(inactivityTimer);
+	}
+	inactivityTimer = setTimeout(() => {
+		// 娓呯┖杈撳叆妗嗙殑鍊�
+		materialCodeInput.value.$el.querySelector('input').value = '';
+		materialCodeInput.value.$el.querySelector('input').focus();
+	}, 2000); // 璁惧畾2绉掓湭鎿嶄綔鍒欒嚜鍔ㄨ仛鐒�
 };
-// 鐢ㄤ簬寮曠敤杈撳叆妗�
-const materialCodeInput = ref(null);
 
 onMounted(() => {
 	// 鍦ㄧ粍浠舵寕杞藉悗杩涜鑱氱劍
 	materialCodeInput.value.$el.querySelector('input').focus();
+	document.addEventListener('mousemove', handleUserActivity);
+	document.addEventListener('keydown', handleUserActivity);
 });
 
+onBeforeUnmount(() => {
+	clearTimeout(inactivityTimer);
+	document.removeEventListener('mousemove', handleUserActivity);
+	document.removeEventListener('keydown', handleUserActivity);
+});
+
+//=======================end榧犳爣瀹氫綅 鐢ㄤ簬寮曠敤杈撳叆妗�=====================
+const isSuccess = ref('');
 // 鏌ヨ鎿嶄綔 888888888
 const handleQuery = async () => {
 	console.log('8888888杩涘叆鏂规硶', queryParams.value);
 	if (!queryParams.value.upi) {
 		return;
 	}
-	console.log('鏌ヨ');
 	loading.value = true;
 	var res = await ShortageList(Object.assign(queryParams.value, tableParams.value));
-	if (res.data.result.length != 1) {
-		ElMessage.warning('姝ゆ潯鐮佷笉瀛樺湪鎴栦笉鍦ㄧ己鏂欐竻鍗曚腑锛�');
-		tableData.value = [];
+
+	queryParams.value.upi = '';
+	handleResponse(res);
+};
+
+function handleResponse(res: any) {
+	tableData.value = res.data.result ?? {};
+	materialCodeInput.value.$el.querySelector('input').value = '';
+	materialCodeInput.value.$el.querySelector('input').focus();
+	if (res.data.code == 200) {
+		isSuccess.value = res.data.result ? '鎴愬姛' : res.data.message || '鏈煡璇㈠埌鏁版嵁';
+	} else if (res.data.code == 400) {
+		loading.value = false;
+		isSuccess.value = res.data.message || '鏈煡璇㈠埌鏁版嵁';
+		return;
+	} else {
+		loading.value = false;
+		isSuccess.value = '';
+		ElMessage.warning('缃戠粶寮傚父 璇锋眰澶辫触');
 		return;
 	}
-	tableData.value = res.data.result[0] ?? [];
-	loading.value = false;
-};
-
-// 鍒楁帓搴�
-const sortChange = async (column: any) => {
-	queryParams.value.field = column.prop;
-	queryParams.value.order = column.order;
-	await handleQuery();
-};
-
-// 鎵撳紑鏂板椤甸潰
-const openAddWmsSubstituteGood = () => {
-	editWmsSubstituteGoodTitle.value = '娣诲姞鏇夸唬鍝佺鐞�';
-	editDialogRef.value.openDialog({});
-};
-
-// 鎵撳紑鎵撳嵃椤甸潰
-const openPrintWmsSubstituteGood = async (row: any) => {
-	printWmsSubstituteGoodTitle.value = '鎵撳嵃鏇夸唬鍝佺鐞�';
-};
-
-// 鎵撳紑缂栬緫椤甸潰
-const openEditWmsSubstituteGood = (row: any) => {
-	editWmsSubstituteGoodTitle.value = '缂栬緫鏇夸唬鍝佺鐞�';
-	editDialogRef.value.openDialog(row);
-};
-
-// 鍒犻櫎
-const delWmsSubstituteGood = (row: any) => {
-	ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, '鎻愮ず', {
-		confirmButtonText: '纭畾',
-		cancelButtonText: '鍙栨秷',
-		type: 'warning',
-	})
-		.then(async () => {
-			var ret = await deleteWmsSubstituteGood(row);
-			if (ret.data.type == 'success') {
-				handleQuery();
-				ElMessage.success('鍒犻櫎鎴愬姛');
-			}
-		})
-		.catch(() => {});
-};
-
-// 鏀瑰彉椤甸潰瀹归噺
-const handleSizeChange = (val: number) => {
-	tableParams.value.pageSize = val;
-	handleQuery();
-};
-
-// 鏀瑰彉椤电爜搴忓彿
-const handleCurrentChange = (val: number) => {
-	tableParams.value.page = val;
-	handleQuery();
-};
-
-// handleQuery();
-
-const rules = {
-	// 杩欓噷瀹氫箟琛ㄥ崟楠岃瘉瑙勫垯
-	completeSet: [{ required: true, message: '璇烽�夋嫨榻愬', trigger: 'change' }],
-	packageSetup: [{ required: true, message: '璇疯緭鍏ラ綈鍖呰缃�', trigger: 'blur' }],
-	ngPackage: [{ required: true, message: '璇疯緭鍏g鍖�', trigger: 'blur' }],
-};
-
-const ruleForm = ref({
-	id: '',
-	completeSet: '',
-	packageSetup: '',
-	ngPackage: '',
-});
-
-const sourceEnum: any = ref([
-	{
-		value: 'id',
-		text: 'ID',
-	},
-]);
-
-const handleChange = (event: Event) => {
-	console.log('77777777777');
-	handleQuery();
-};
+}
 
 const handleEnter = (event: Event) => {
 	event.preventDefault(); // 闃绘榛樿浜嬩欢
@@ -301,7 +295,8 @@
 			line-height: 30px;
 			text-align: left;
 			list-style-type: none;
-			width: 25%;
+			width: 48%;
+			display: inline-block;
 			word-wrap: break-word;
 		}
 	}
@@ -309,4 +304,15 @@
 .text_left {
 	font-weight: 700;
 }
+.my-icon {
+	font-size: 36px; /* 璋冩暣瀛椾綋澶у皬 */
+	color: #00ff11; /* 璁剧疆鍥炬爣棰滆壊 */
+}
+.titleTip {
+	text-align: center;
+	font-size: 36px; /* 璋冩暣瀛椾綋澶у皬 */
+	.okText {
+		margin-bottom: 20px;
+	}
+}
 </style>
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue
index 55d7381..780da9e 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue
@@ -4,13 +4,13 @@
 			<el-form :model="queryParams" @submit.native.prevent ref="queryForm" labelWidth="100">
 				<el-row>
 					<el-col :xs="24" :sm="12" :md="12" :lg="10" :xl="4" class="mb10">
-						<el-form-item label="閮ㄤ欢鏉$爜" size="large">
+						<el-form-item label="鍖呰鍙�" size="large">
 							<el-input
 								size="large"
-								v-model="queryParams.upi"
+								v-model="queryParams.packageCode"
 								ref="materialCodeInput"
 								clearable=""
-								placeholder="璇锋壂閮ㄤ欢鏉$爜"
+								placeholder="璇锋壂鍖呰鍙�"
 								@input="handleChange"
 								@keyup.enter.prevent="handleEnter"
 								@confirm.enter.prevent="handleEnter"
@@ -33,17 +33,30 @@
 				</el-row>
 			</el-form>
 			<br />
-			<div class="detailBox">
+			<div class="detailBox" style="height: calc(65vh)">
+				<div class="titleTip">
+					<div class="" v-show="isSuccess == '鎴愬姛'">
+						<svg t="1732788314050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11359" width="100" height="100">
+							<path
+								d="M874.119618 149.859922A510.816461 510.816461 0 0 0 511.997 0.00208a509.910462 509.910462 0 0 0-362.119618 149.857842c-199.817789 199.679789-199.817789 524.581447 0 724.260236a509.969462 509.969462 0 0 0 362.119618 149.857842A508.872463 508.872463 0 0 0 874.119618 874.120158c199.836789-199.679789 199.836789-524.581447 0-724.260236zM814.94268 378.210681L470.999043 744.132295a15.359984 15.359984 0 0 1-5.887994 4.095996c-1.751998 1.180999-2.913997 2.362998-5.276994 2.913997a34.499964 34.499964 0 0 1-13.469986 2.914997 45.547952 45.547952 0 0 1-12.897986-2.303998l-4.095996-2.363997a45.291952 45.291952 0 0 1-7.009992-4.095996l-196.902793-193.789796a34.126964 34.126964 0 0 1-10.555989-25.186973c0-9.37399 3.583996-18.74698 9.98399-25.186974a36.429962 36.429962 0 0 1 50.372947 0l169.98382 167.423824L763.389735 330.220732a37.059961 37.059961 0 0 1 50.371947-1.732998 33.647965 33.647965 0 0 1 11.165988 25.186973 35.544963 35.544963 0 0 1-9.98399 24.575974v-0.04z m0 0"
+								fill="#52C41A"
+								p-id="11360"
+							></path>
+						</svg>
+						<p class="okText">鑾峰彇鏍囩淇℃伅鎴愬姛锛�</p>
+					</div>
+					<div class="" v-show="isSuccess && isSuccess != '鎴愬姛'">
+						<svg t="1732842594517" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4303" width="100" height="100">
+							<path
+								d="M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z"
+								fill="#E84335"
+								p-id="4304"
+							></path>
+						</svg>
+						<p class="okText">{{ isSuccess }}</p>
+					</div>
+				</div>
 				<ul>
-					<!-- <li>
-						<span class="text_left">鏄惁榻愬寘:</span>
-						<span class="text_rt"></span>
-					</li>
-					<li>
-						<span class="text_left">鏄惁榻愬:</span>
-						<span class="text_rt"></span>
-					</li> -->
-
 					<li>
 						<span class="text_left">閮ㄤ欢鏉$爜:</span>
 						<span class="text_rt">{{ tableData.upi }}</span>
@@ -62,40 +75,52 @@
 						<span class="text_left">璁㈠崟鍙�:</span>
 						<span class="text_rt">{{ tableData.orderId }}</span>
 					</li>
-					<br />	<br />	<br />	<br />	<br />	<br />
-						<br />	<br />	<br />	<br />	<br />
-					<br />	<br />	<br />	<br />	<br />	<br />	
+					<li>
+						<span class="text_left">绾哥闀�:</span>
+						<span class="text_rt">{{ tableData.info1 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绾哥瀹�:</span>
+						<span class="text_rt">{{ tableData.info2 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绾哥楂�:</span>
+						<span class="text_rt">{{ tableData.info3 }}</span>
+					</li>
 
-
-					<!-- <li>
+					<li>
+						<span class="text_left">閿�鍞悎鍚屽崟鍙�:</span>
+						<span class="text_rt">{{ tableData.info4 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绗嚑鍖�:</span>
+						<span class="text_rt">{{ tableData.info6 }}</span>
+					</li>
+					<li>
+						<span class="text_left">缁忛攢搴楀悕绉�:</span>
+						<span class="text_rt">{{ tableData.info7 }}</span>
+					</li>
+					<li>
+						<span class="text_left">浜у搧鍚嶇О:</span>
+						<span class="text_rt">{{ tableData.info8 }}</span>
+					</li>
+					<li>
 						<span class="text_left">瀹㈡埛鍚嶇О:</span>
-						<span class="text_rt">{{ tableData.Info10 }}</span>
-					</li> -->
-
-					<!-- <li>
-						<span class="text_left">闀�:</span>
-						<span class="text_rt">{{ tableData.length }}</span>
+						<span class="text_rt">{{ tableData.info10 }}</span>
 					</li>
 					<li>
-						<span class="text_left">瀹�:</span>
-						<span class="text_rt">{{ tableData.width }}</span>
+						<span class="text_left">鑷彁鎴栧彂璐�:</span>
+						<span class="text_rt">{{ tableData.info11 }}</span>
 					</li>
 					<li>
-						<span class="text_left">鍘�:</span>
-						<span class="text_rt">{{ tableData.thk }}</span>
+						<span class="text_left">鍖呰閮ㄤ欢鎬绘暟閲�:</span>
+						<span class="text_rt">{{ tableData.info12 }}</span>
 					</li>
 					<li>
-						<span class="text_left">閮ㄤ欢绾圭悊:</span>
-						<span class="text_rt">{{ tableData.matgrid }}</span>
+						<span class="text_left">鍖呰闈㈢Н:</span>
+						<span class="text_rt">{{ tableData.info13 }}</span>
 					</li>
-					<li>
-						<span class="text_left">鏄惁灏佽竟:</span>
-						<span class="text_rt">{{ tableData.isEB }}</span>
-					</li>
-					<li>
-						<span class="text_left">鎵撳瓟璁惧缂栧彿:</span>
-						<span class="text_rt">{{ tableData.dRNum }}</span>
-					</li> -->
+				
 				</ul>
 			</div>
 			<!-- 鐢熸垚form 榻愬 榻愬寘 璁剧疆ng鍖� -->
@@ -128,7 +153,7 @@
 </template>
 
 <script lang="ts" setup="" name="wmsSubstituteGood">
-import { onMounted, ref } from 'vue';
+import { onBeforeUnmount, onMounted, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import { auth } from '/@/utils/authFunction';
 import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
@@ -137,7 +162,7 @@
 import printDialog from '/@/views/system/print/component/hiprint/preview.vue';
 import editDialog from '/@/views/main/WmsBase/wmsSubstituteGood/component/editDialog.vue';
 import { pageWmsSubstituteGood, deleteWmsSubstituteGood } from '/@/api/main/WmsBase/wmsSubstituteGood';
-import { ShortageList } from '/@/api/main/ReportCenter/wmsStockQuan';
+import { ShortageList, ValdateQiTao } from '/@/api/main/ReportCenter/wmsStockQuan';
 
 const showAdvanceQueryUI = ref(false);
 const printDialogRef = ref();
@@ -145,7 +170,7 @@
 const loading = ref(false);
 const tableData = ref<any>([]);
 const queryParams = ref<any>({
-	upi: '',
+	packageCode: '',
 });
 const tableParams = ref({
 	page: 1,
@@ -169,31 +194,68 @@
 const changeAdvanceQueryUI = () => {
 	showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
 };
-// 鐢ㄤ簬寮曠敤杈撳叆妗�
-const materialCodeInput = ref(null);
+
+//=======================榧犳爣瀹氫綅 鐢ㄤ簬寮曠敤杈撳叆妗�=====================
+let materialCodeInput = ref(null);
+let inactivityTimer = null;
+
+// 澶勭悊鐢ㄦ埛娲诲姩鐨勫嚱鏁�
+const handleUserActivity = () => {
+	if (inactivityTimer) {
+		clearTimeout(inactivityTimer);
+	}
+	inactivityTimer = setTimeout(() => {
+		// 娓呯┖杈撳叆妗嗙殑鍊�
+		materialCodeInput.value.$el.querySelector('input').value = '';
+		materialCodeInput.value.$el.querySelector('input').focus();
+	}, 2000); // 璁惧畾2绉掓湭鎿嶄綔鍒欒嚜鍔ㄨ仛鐒�
+};
 
 onMounted(() => {
 	// 鍦ㄧ粍浠舵寕杞藉悗杩涜鑱氱劍
 	materialCodeInput.value.$el.querySelector('input').focus();
+	document.addEventListener('mousemove', handleUserActivity);
+	document.addEventListener('keydown', handleUserActivity);
 });
 
+onBeforeUnmount(() => {
+	clearTimeout(inactivityTimer);
+	document.removeEventListener('mousemove', handleUserActivity);
+	document.removeEventListener('keydown', handleUserActivity);
+});
+
+//=======================end榧犳爣瀹氫綅 鐢ㄤ簬寮曠敤杈撳叆妗�=====================
+const isSuccess = ref('');
 // 鏌ヨ鎿嶄綔 888888888
 const handleQuery = async () => {
 	console.log('8888888杩涘叆鏂规硶', queryParams.value);
-	if (!queryParams.value.upi) {
+	if (!queryParams.value.packageCode) {
 		return;
 	}
 	console.log('鏌ヨ');
 	loading.value = true;
-	var res = await ShortageList(Object.assign(queryParams.value, tableParams.value));
-	if (res.data.result.length != 1) {
-		ElMessage.warning('姝ゆ潯鐮佷笉瀛樺湪鎴栦笉鍦ㄧ己鏂欐竻鍗曚腑锛�');
-		tableData.value = [];
+	var res = await ValdateQiTao(Object.assign(queryParams.value, tableParams.value));
+	queryParams.value.packageCode = '';
+	handleResponse(res);
+
+};
+function handleResponse(res: any) {
+	tableData.value = res.data.result ?? {};
+	materialCodeInput.value.$el.querySelector('input').value = '';
+	materialCodeInput.value.$el.querySelector('input').focus();
+	if (res.data.code == 200) {
+		isSuccess.value = res.data.result ? '鎴愬姛' : res.data.message || '鏈煡璇㈠埌鏁版嵁';
+	} else if (res.data.code == 400) {
+		loading.value = false;
+		isSuccess.value = res.data.message || '鏈煡璇㈠埌鏁版嵁';
+		return;
+	} else {
+		loading.value = false;
+		isSuccess.value = '';
+		ElMessage.warning('缃戠粶寮傚父 璇锋眰澶辫触');
 		return;
 	}
-	tableData.value = res.data.result[0] ?? [];
-	loading.value = false;
-};
+}
 
 // 鍒楁帓搴�
 const sortChange = async (column: any) => {
@@ -301,7 +363,8 @@
 			line-height: 30px;
 			text-align: left;
 			list-style-type: none;
-			width: 25%;
+			width: 48%;
+			display: inline-block;
 			word-wrap: break-word;
 		}
 	}
@@ -309,4 +372,15 @@
 .text_left {
 	font-weight: 700;
 }
+.my-icon {
+	font-size: 36px; /* 璋冩暣瀛椾綋澶у皬 */
+	color: #00ff11; /* 璁剧疆鍥炬爣棰滆壊 */
+}
+.titleTip {
+	text-align: center;
+	font-size: 36px; /* 璋冩暣瀛椾綋澶у皬 */
+	.okText {
+		margin-bottom: 20px;
+	}
+}
 </style>
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
index ca29f88..8b9ab34 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
@@ -280,7 +280,7 @@
 							<el-col :span="4">
 								<el-form-item label-width="20px">
 									<el-button type="primary" icon="el-icon-search" @click="getDetail">鏌ヨ</el-button>
-									<el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> 鎵撳嵃 </el-button>
+									<!-- <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> 鎵撳嵃 </el-button> -->
 								</el-form-item>
 							</el-col>
 						</el-row>
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
index 346ab9f..1671ea0 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
@@ -80,16 +80,17 @@
 							<el-input v-model="queryParams.projectNo" clearable="" placeholder="璇疯緭鍏ラ」鐩彿" />
 						</el-form-item>
 					</el-col> -->
-		
 
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
 						<el-form-item>
 							<el-button-group style="display: flex; align-items: center">
 								<el-button type="primary" icon="ele-Search" @click="handleQuery"> 鏌ヨ </el-button>
 								<el-button icon="ele-Refresh" @click="() => (queryParams = {})"> 閲嶇疆 </el-button>
+
+								<el-button icon="ele-Finished" @click="clickOut"> 寮哄埗鍑哄簱 </el-button>
+
 								<!-- <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left: 5px"> 楂樼骇鏌ヨ </el-button>
 								<el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left: 5px"> 闅愯棌 </el-button> -->
-					
 							</el-button-group>
 						</el-form-item>
 					</el-col>
@@ -112,7 +113,7 @@
 								</span>
 							</template>
 						</el-table-column>
-						
+
 						<el-table-column prop="mesTotalCount" label="鎬绘暟" show-overflow-tooltip="" />
 						<el-table-column prop="count" label="宸叉湁鏁伴噺" show-overflow-tooltip="" />
 
@@ -140,8 +141,11 @@
 						row-key="newId"
 						@sort-change="newSortChange"
 						:summary-method="getNewExportTitle"
+						@selection-change="handleSelectionChange"
 						border=""
 					>
+						<el-table-column align="center" width="60" type="selection" />
+
 						<el-table-column type="index" label="搴忓彿" width="55" align="center" />
 						<!-- <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> -->
 						<el-table-column label="鍖呰鍙�" prop="packageCode" width="150" align="left" show-overflow-tooltip>
@@ -151,7 +155,7 @@
 								</span>
 							</template>
 						</el-table-column>
-		
+
 						<el-table-column prop="mesTotalCount" label="鎬绘暟" show-overflow-tooltip="" />
 						<el-table-column prop="count" label="宸叉湁鏁伴噺" show-overflow-tooltip="" />
 						<el-table-column prop="lackCount" label="缂哄皯鏁伴噺" show-overflow-tooltip="" />
@@ -169,8 +173,6 @@
 				</div>
 			</div>
 		</el-card>
-
-
 
 		<editDialogWmsOrderDeliver ref="editDialogRefWmsOrderDeliver" :title="editWmsOrderDeliverTitle" @reloadTable="handleQuery" />
 		<importExcelDialog
@@ -202,6 +204,7 @@
 	downloadExcelTemplateWmsOrderPurchase,
 	downloadExcelTemplateWmsOrderPurchaseAll,
 	packList,
+	ForceOutbound,
 } from '/@/api/main/WmsOrder/wmsOrderPurchase';
 import { handleSlectDataWmsBusinessType } from '/@/utils/selectData';
 import { getAPI } from '/@/utils/axios-utils';
@@ -294,23 +297,22 @@
 // 88888888鏌ヨ鎿嶄綔
 const handleQuery = async () => {
 	loading.value = true;
-	var res = await packList(Object.assign(queryParams.value, {
-		...tableParams.value,
-		IsPack:true
-	}));
+	var res = await packList(
+		Object.assign(queryParams.value, {
+			...tableParams.value,
+			IsPack: true,
+		})
+	);
 	tableData.value = res.data.result ?? [];
-	var res2 = await packList(Object.assign(queryParams.value, {
-		...tableParams.value,
-		IsPack:false
-	}));
-
+	var res2 = await packList(
+		Object.assign(queryParams.value, {
+			...tableParams.value,
+			IsPack: false,
+		})
+	);
 	newTableData.value = res2.data.result ?? [];
-
-	// tableParams.value.total = res.data.result?.total;
 	loading.value = false;
 	// getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? [];
-
-	// getEnumPoStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? [];
 };
 
 // 鍒楁帓搴�
@@ -462,6 +464,39 @@
 		}
 	});
 };
+
+//閫変腑鐨勮
+const checkRows = ref<{ id: number }[]>([]);
+
+// 閫夋嫨
+const handleSelectionChange = (val: any) => {
+	checkRows.value = val;
+};
+
+const clickOut = () => {
+	var PackageCodeList = checkRows.value.map((x: any) => x.packageCode);
+	if (PackageCodeList.length == 0) {
+		ElMessage.error('璇烽�夋嫨闇�瑕佸嚭搴撶殑璁㈠崟锛�');
+		return;
+	}
+	ElMessageBox.confirm('鏄惁纭寮哄埗鍑哄簱锛�', '鎻愮ず', {
+		confirmButtonText: '纭',
+		cancelButtonText: '鍙栨秷',
+		type: 'warning',
+	})
+		.then(async () => {
+			loading.value = true;
+			var res = await ForceOutbound(
+				{
+					"PackageCodeList": PackageCodeList
+				}
+			);
+			handleQuery();
+			ElMessage.success('寮哄埗鍑哄簱鎴愬姛');
+			loading.value = false;
+		})
+		.catch(() => ElMessage.info('宸插彇娑�'));
+};
 </script>
 <style scoped>
 :deep(.el-input),
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/component/editDialog.vue
new file mode 100644
index 0000000..15fdbf0
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/component/editDialog.vue
@@ -0,0 +1,120 @@
+锘�<template>
+	<div class="wmsSubstituteGood-container">
+		<el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
+			<template #header>
+				<div style="color: #fff">
+					<!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
+					<span>{{ props.title }}</span>
+				</div>
+			</template>
+			<el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules">
+				<el-row :gutter="35">
+					<el-form-item v-show="false">
+						<el-input v-model="ruleForm.id" />
+					</el-form-item>
+				</el-row>
+			</el-form>
+			<template #footer>
+				<span class="dialog-footer">
+					<el-button @click="cancel">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submit">纭� 瀹�</el-button>
+				</span>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+<style scoped>
+:deep(.el-select),
+:deep(.el-input-number) {
+	width: 100%;
+}
+</style>
+<script lang="ts" setup>
+	import { ref,onMounted } from "vue";
+	import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
+	import { ElMessage } from "element-plus";
+	import type { FormRules } from "element-plus";
+	import { addWmsSubstituteGood, updateWmsSubstituteGood, detailWmsSubstituteGood } from "/@/api/main/WmsBase/wmsSubstituteGood";
+
+	//鐖剁骇浼犻�掓潵鐨勫弬鏁�
+	var props = defineProps({
+		title: {
+		type: String,
+		default: "",
+	},
+	});
+	//鐖剁骇浼犻�掓潵鐨勫嚱鏁帮紝鐢ㄤ簬鍥炶皟
+	const emit = defineEmits(["reloadTable"]);
+	const ruleFormRef = ref();
+	const isShowDialog = ref(false);
+	const ruleForm = ref<any>({});
+	//鑷娣诲姞鍏朵粬瑙勫垯
+	const rules = ref<FormRules>({
+		substituteCode: [{required: true, message: '璇疯緭鍏ユ浛浠g紪鍙凤紒', trigger: 'blur',},],
+		materialCode: [{required: true, message: '璇烽�夋嫨鐗╂枡缂栧彿锛�', trigger: 'change',},],
+		materialName: [{required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒', trigger: 'blur',},],
+		substituteMaterialCode: [{required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿锛�', trigger: 'blur',},],
+		substituteMaterialName: [{required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О锛�', trigger: 'blur',},],
+		substituteIndex: [{required: true, message: '璇疯緭鍏ユ浛浠f搴忥紒', trigger: 'blur',},],
+	});
+
+	// 鎵撳紑寮圭獥
+	const openDialog = async (row: any) => {
+		// ruleForm.value = JSON.parse(JSON.stringify(row));
+		// 鏀圭敤detail鑾峰彇鏈�鏂版暟鎹潵缂栬緫
+		let rowData = JSON.parse(JSON.stringify(row));
+		if (rowData.id)
+			ruleForm.value = (await detailWmsSubstituteGood(rowData.id)).data.result;
+		else
+			ruleForm.value = rowData;
+		isShowDialog.value = true;
+	};
+
+	// 鍏抽棴寮圭獥
+	const closeDialog = () => {
+		emit("reloadTable");
+		isShowDialog.value = false;
+	};
+
+	// 鍙栨秷
+	const cancel = () => {
+		isShowDialog.value = false;
+	};
+
+	// 鎻愪氦
+	const submit = async () => {
+		ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
+			if (isValid) {
+				let values = ruleForm.value;
+				if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
+					await addWmsSubstituteGood(values);
+				} else {
+					await updateWmsSubstituteGood(values);
+				}
+				closeDialog();
+			} else {
+				ElMessage({
+					message: `琛ㄥ崟鏈�${Object.keys(fields).length}澶勯獙璇佸け璐ワ紝璇蜂慨鏀瑰悗鍐嶆彁浜,
+					type: "error",
+				});
+			}
+		});
+	};
+
+
+
+
+
+
+
+	// 椤甸潰鍔犺浇鏃�
+	onMounted(async () => {
+	});
+
+	//灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠�
+	defineExpose({ openDialog });
+</script>
+
+
+
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/index.vue
new file mode 100644
index 0000000..0cd46da
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/index.vue
@@ -0,0 +1,315 @@
+锘�<template>
+	<div class="wmsSubstituteGood-container">
+		<el-card class="full-table" shadow="hover" style="margin-top: 5px">
+			<el-form :model="queryParams" @submit.native.prevent ref="queryForm" labelWidth="100">
+				<el-row>
+					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
+						<el-form-item label="鍖呰鍙�" size="large">
+							<el-input size="large" v-model="queryParams.packageCode" ref="materialCodeInput" clearable="" placeholder="璇锋壂鍖呰鍙�" />
+						</el-form-item>
+					</el-col>
+
+					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
+						<el-form-item label="閮ㄤ欢鏉$爜" size="large">
+							<el-input
+								size="large"
+								v-model="queryParams.upi"
+								ref="materialCodeInputupi"
+								clearable=""
+								placeholder="璇锋壂閮ㄤ欢鏉$爜"
+								@keyup.enter.prevent="handleEnterUip"
+								@confirm.enter.prevent="handleEnterUip"
+							/>
+						</el-form-item>
+					</el-col>
+
+					<el-col :xs="24" :sm="12" :md="12" :lg="3" :xl="3" class="mb10">
+						<el-form-item>
+							<el-button-group style="display: flex; align-items: center">
+								<el-button size="large" type="primary" icon="ele-Search" @click="handleQuery"> 鏌ヨ </el-button>
+								<el-button size="large" icon="ele-Refresh" @click="() => (queryParams = {})"> 閲嶇疆 </el-button>
+								<!-- 
+                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button>
+                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 闅愯棌 </el-button> -->
+								<!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsSubstituteGood" v-auth="'wmsSubstituteGood:add'"> 鏂板 </el-button> -->
+							</el-button-group>
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+			<br />
+			<div class="detailBox"  style="height: calc(65vh);">
+				<div class="titleTip">
+					<div class="" v-show="isSuccess == '鎴愬姛'">
+						<svg t="1732788314050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11359" width="100" height="100">
+							<path
+								d="M874.119618 149.859922A510.816461 510.816461 0 0 0 511.997 0.00208a509.910462 509.910462 0 0 0-362.119618 149.857842c-199.817789 199.679789-199.817789 524.581447 0 724.260236a509.969462 509.969462 0 0 0 362.119618 149.857842A508.872463 508.872463 0 0 0 874.119618 874.120158c199.836789-199.679789 199.836789-524.581447 0-724.260236zM814.94268 378.210681L470.999043 744.132295a15.359984 15.359984 0 0 1-5.887994 4.095996c-1.751998 1.180999-2.913997 2.362998-5.276994 2.913997a34.499964 34.499964 0 0 1-13.469986 2.914997 45.547952 45.547952 0 0 1-12.897986-2.303998l-4.095996-2.363997a45.291952 45.291952 0 0 1-7.009992-4.095996l-196.902793-193.789796a34.126964 34.126964 0 0 1-10.555989-25.186973c0-9.37399 3.583996-18.74698 9.98399-25.186974a36.429962 36.429962 0 0 1 50.372947 0l169.98382 167.423824L763.389735 330.220732a37.059961 37.059961 0 0 1 50.371947-1.732998 33.647965 33.647965 0 0 1 11.165988 25.186973 35.544963 35.544963 0 0 1-9.98399 24.575974v-0.04z m0 0"
+								fill="#52C41A"
+								p-id="11360"
+							></path>
+						</svg>
+						<p class="okText">鏍稿鏍囩鎴愬姛锛�</p>
+					</div>
+					<div class="" v-show="isSuccess && isSuccess != '鎴愬姛'">
+						<svg t="1732842594517" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4303" width="100" height="100">
+							<path
+								d="M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z"
+								fill="#E84335"
+								p-id="4304"
+							></path>
+						</svg>
+						<p class="okText">{{ isSuccess }}</p>
+					</div>
+				</div>
+				<ul>
+					<li>
+						<span class="text_left">鎵规:</span>
+						<span class="text_rt">{{ tableData.planNo }}</span>
+					</li>
+					<li>
+						<span class="text_left">璁㈠崟鍙�:</span>
+						<span class="text_rt">{{ tableData.orderId }}</span>
+					</li>
+					<li>
+						<span class="text_left">鐢熶骇鍗曞彿:</span>
+						<span class="text_rt">{{ tableData.info5 }}</span>
+					</li>
+
+					<li>
+						<span class="text_left">鍖呰鍙�:</span>
+						<span class="text_rt">{{ tableData.packageCode }}</span>
+					</li>
+
+					<!-- <li>
+						<span class="text_left">鍖哄煙浠g爜:</span>
+						<span class="text_rt">{{ tableData.areaCode }}</span>
+					</li> -->
+
+					<li>
+						<span class="text_left">绾哥闀�:</span>
+						<span class="text_rt">{{ tableData.info1 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绾哥瀹�:</span>
+						<span class="text_rt">{{ tableData.info2 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绾哥楂�:</span>
+						<span class="text_rt">{{ tableData.info3 }}</span>
+					</li>
+
+					<li>
+						<span class="text_left">閿�鍞悎鍚屽崟鍙�:</span>
+						<span class="text_rt">{{ tableData.info4 }}</span>
+					</li>
+					<li>
+						<span class="text_left">绗嚑鍖�:</span>
+						<span class="text_rt">{{ tableData.info6 }}</span>
+					</li>
+					<li>
+						<span class="text_left">缁忛攢搴楀悕绉�:</span>
+						<span class="text_rt">{{ tableData.info7 }}</span>
+					</li>
+					<li>
+						<span class="text_left">浜у搧鍚嶇О:</span>
+						<span class="text_rt">{{ tableData.info8 }}</span>
+					</li>
+					<li>
+						<span class="text_left">瀹㈡埛鍚嶇О:</span>
+						<span class="text_rt">{{ tableData.info10 }}</span>
+					</li>
+					<li>
+						<span class="text_left">鑷彁鎴栧彂璐�:</span>
+						<span class="text_rt">{{ tableData.info11 }}</span>
+					</li>
+					<li>
+						<span class="text_left">鍖呰閮ㄤ欢鎬绘暟閲�:</span>
+						<span class="text_rt">{{ tableData.info12 }}</span>
+					</li>
+					<li>
+						<span class="text_left">鍖呰闈㈢Н:</span>
+						<span class="text_rt">{{ tableData.info13 }}</span>
+					</li>
+
+				</ul>
+			</div>
+		</el-card>
+	</div>
+</template>
+
+<script lang="ts" setup="" name="wmsSubstituteGood">
+import { onBeforeUnmount, onMounted, ref } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import { auth } from '/@/utils/authFunction';
+import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
+import { formatDate } from '/@/utils/formatTime';
+import { listMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New, importExcelMes_BatchOrderUPI_New, downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New';
+import { ShortageList, ValdateLabel } from '/@/api/main/ReportCenter/wmsStockQuan';
+const loading = ref(false);
+const tableData = ref<any>({});
+const queryParams = ref<any>({
+	upi: '',
+	packageCode: '',
+});
+
+// 瀹氫箟鍒楃殑鎺ュ彛
+interface Column {
+	ColumnName: string;
+	ColumnDescription: string;
+}
+
+// 鍒楄〃鏁版嵁
+const arrList = ref<Column[]>([
+	{ ColumnName: 'info1', ColumnDescription: '绾哥闀�' },
+	{ ColumnName: 'info2', ColumnDescription: '绾哥瀹�' },
+	{ ColumnName: 'info3', ColumnDescription: '绾哥楂�' },
+	{ ColumnName: 'info4', ColumnDescription: '閿�鍞悎鍚屽崟鍙�' },
+	{ ColumnName: 'info5', ColumnDescription: '鐢熶骇鍗曞彿' },
+	{ ColumnName: 'info6', ColumnDescription: '绗嚑鍖�' },
+	{ ColumnName: 'info7', ColumnDescription: '缁忛攢搴楀悕绉�' },
+	{ ColumnName: 'info8', ColumnDescription: '浜у搧鍚嶇О' },
+	{ ColumnName: 'info9', ColumnDescription: '鍖呰缂栫爜' },
+	{ ColumnName: 'info10', ColumnDescription: '瀹㈡埛鍚嶇О' },
+	{ ColumnName: 'info11', ColumnDescription: '鑷彁or鍙戣揣' },
+	{ ColumnName: 'info12', ColumnDescription: '鍖呰閮ㄤ欢鎬绘暟閲�' },
+	{ ColumnName: 'info13', ColumnDescription: '鍖呰闈㈢Н' },
+	{ ColumnName: 'info14', ColumnDescription: '閮ㄤ欢鍚嶇О' },
+	{ ColumnName: 'info15', ColumnDescription: '閮ㄤ欢鏁伴噺' },
+	{ ColumnName: 'info16', ColumnDescription: '閮ㄤ欢灏哄' },
+	{ ColumnName: 'info17', ColumnDescription: '鏈烘鑷傛槸鍚︽棆杞�' },
+]);
+
+//=======================榧犳爣瀹氫綅 鐢ㄤ簬寮曠敤杈撳叆妗�=====================
+let materialCodeInput = ref(null);
+let materialCodeInputupi = ref(null);
+
+let inactivityTimer = null;
+
+// 澶勭悊鐢ㄦ埛娲诲姩鐨勫嚱鏁�
+const handleUserActivity = () => {
+	if (inactivityTimer) {
+		clearTimeout(inactivityTimer);
+	}
+	inactivityTimer = setTimeout(() => {
+		//1娌″�煎氨鑱氱劍
+		if (!materialCodeInput.value.$el.querySelector('input').value) {
+			materialCodeInput.value.$el.querySelector('input').focus();
+			return;
+		}
+//閮芥湁鍊煎氨杩斿洖 涓轰簡鏂逛究璇锋眰鎺ュ彛
+		if (materialCodeInput.value.$el.querySelector('input').value && materialCodeInputupi.value.$el.querySelector('input').value) {
+			return;
+		}
+
+		// 娓呯┖杈撳叆妗嗙殑鍊�
+		if (materialCodeInput.value.$el.querySelector('input').value) {
+			console.log('鏈夊��');
+			materialCodeInputupi.value.$el.querySelector('input').value = '';
+			materialCodeInputupi.value.$el.querySelector('input').focus();
+			isSuccess.value = '';
+			tableData.value =  {};
+		} else {
+			materialCodeInput.value.$el.querySelector('input').value = '';
+			materialCodeInputupi.value.$el.querySelector('input').value = '';
+			materialCodeInput.value.$el.querySelector('input').focus();
+		}
+	}, 1000); // 璁惧畾2绉掓湭鎿嶄綔鍒欒嚜鍔ㄨ仛鐒�
+};
+
+onMounted(() => {
+	// 鍦ㄧ粍浠舵寕杞藉悗杩涜鑱氱劍
+	materialCodeInput.value.$el.querySelector('input').focus();
+	document.addEventListener('mousemove', handleUserActivity);
+	document.addEventListener('keydown', handleUserActivity);
+});
+
+onBeforeUnmount(() => {
+	clearTimeout(inactivityTimer);
+	document.removeEventListener('mousemove', handleUserActivity);
+	document.removeEventListener('keydown', handleUserActivity);
+});
+
+//=======================end榧犳爣瀹氫綅 鐢ㄤ簬寮曠敤杈撳叆妗�=====================
+
+const isSuccess = ref(''); 
+// 鏌ヨ鎿嶄綔 888888888
+const handleQuery = async () => {
+	console.log('8888888杩涘叆鏂规硶', queryParams.value);
+	if (!queryParams.value.upi && !queryParams.value.packageCode) {
+		return;
+	}
+	loading.value = true;
+	var res = await ValdateLabel({
+		PackageCode: queryParams.value.packageCode,
+		Upi: queryParams.value.upi,
+	});
+	handleResponse(res);
+};
+
+
+function handleResponse(res:any) {
+    tableData.value = res.data.result ?? {};
+    materialCodeInput.value.$el.querySelector('input').value = '';
+    materialCodeInputupi.value.$el.querySelector('input').value = '';
+    materialCodeInput.value.$el.querySelector('input').focus();
+
+    if (res.data.code == 200) {
+        isSuccess.value = res.data.result.packageCode ? '鎴愬姛' : res.data.message || '鏈煡璇㈠埌鏁版嵁';
+    } else if (res.data.code == 400) {
+        loading.value = false;
+        isSuccess.value = res.data.message || '鏈煡璇㈠埌鏁版嵁';
+        return;
+    } else {
+        loading.value = false;
+        isSuccess.value = '';
+        ElMessage.warning('缃戠粶寮傚父 璇锋眰澶辫触');
+        return;
+    }
+}
+
+const handleEnterUip = (event: Event) => {
+	event.preventDefault(); // 闃绘榛樿浜嬩欢
+	handleQuery();
+};
+</script>
+<style scoped>
+:deep(.el-input),
+:deep(.el-select),
+:deep(.el-input-number) {
+	width: 100%;
+}
+
+.detailBox {
+	width: 90%;
+	margin: 0 auto;
+	display: block;
+	padding-bottom: 10px;
+	ul {
+		margin: 0;
+		padding: 0;
+		li {
+			display: block;
+			line-height: 30px;
+			text-align: left;
+			list-style-type: none;
+			width: 48%;
+			display: inline-block;
+			word-wrap: break-word;
+		}
+	}
+}
+.text_left {
+	font-weight: 700;
+}
+.my-icon {
+	font-size: 36px; /* 璋冩暣瀛椾綋澶у皬 */
+	color: #00ff11; /* 璁剧疆鍥炬爣棰滆壊 */
+}
+.titleTip {
+	text-align: center;
+	font-size: 36px; /* 璋冩暣瀛椾綋澶у皬 */
+	.okText {
+		margin-bottom: 20px;
+	}
+}
+</style>
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
index 32d8dac..591c125 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
@@ -329,16 +329,17 @@
     ///  [HttpGet]
     [ApiDescriptionSettings(Name = "ShortageList")]
     [Description("WmsStockQuan/ShortageList")]
-    public async Task<List<WmsShortageListOutput>> ShortageList(KittingListInput input)
+    public async Task<WmsShortageListOutput> ShortageList(KittingListInput input)
     {
         var listRes = await GetShortageListCore(input);
-
+        var resJson = new WmsShortageListOutput();
         if (!string.IsNullOrWhiteSpace(input.UPI))
         {
-            listRes = listRes.Where(u => u.UPI == input.UPI).ToList();
+            resJson = listRes.FirstOrDefault(u => u.UPI == input.UPI);
+            //var filteredResult = listRes.FirstOrDefault(u => u.UPI == input.UPI);
         }
 
-        return listRes;
+        return resJson;
     }
 
     /// <summary>
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs
index 8b49684..c503936 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs
@@ -119,7 +119,7 @@
         {
             throw Oops.Oh($"娌℃湁閰嶇疆 鍒ゆ柇榻愬 鍊�");
         }
-        if (!string.IsNullOrEmpty(sysConfig.Value))
+        if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value!="鏃�")
         {
             throw Oops.Oh($"鍒ゆ柇榻愬鍊煎凡缁忓瓨鍦ㄥ�納sysConfig.Value},涓嶅厑璁告搷浣�");
         }

--
Gitblit v1.9.3