From 1ae8669338989e827bd38237b7322306332e3b29 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 21 11月 2024 16:55:25 +0800
Subject: [PATCH] 2

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewOutput.cs |  170 +++++
 LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_BatchOrderUPI_New.ts                                                  |   78 ++
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/index.vue                                         |  446 +++++++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewInput.cs  |  393 +++++++++++
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/component/editDialog.vue                          |  322 +++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Mes_BatchOrderUPI_NewService.cs    |  561 +++++++++++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/批次数据导入模板.xlsx                                     |    0 
 7 files changed, 1,970 insertions(+), 0 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_BatchOrderUPI_New.ts b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_BatchOrderUPI_New.ts
new file mode 100644
index 0000000..88f458a
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_BatchOrderUPI_New.ts
@@ -0,0 +1,78 @@
+锘縤mport request from '/@/utils/request';
+enum Api {
+  AddMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/add',
+  DeleteMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/delete',
+  UpdateMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/update',
+  PageMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/page',
+  ListMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/list',
+  DetailMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/detail',
+  ImportExcelMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/importExcel',
+  DownloadExcelTemplateMes_BatchOrderUPI_New = '/api/mes_BatchOrderUPI_New/downloadExcelTemplate',
+}
+
+// 澧炲姞鎵规鏁版嵁
+export const addMes_BatchOrderUPI_New = (params?: any) =>
+	request({
+		url: Api.AddMes_BatchOrderUPI_New,
+		method: 'post',
+		data: params
+	});
+
+// 鍒犻櫎鎵规鏁版嵁
+export const deleteMes_BatchOrderUPI_New = (params?: any) => 
+	request({
+			url: Api.DeleteMes_BatchOrderUPI_New,
+			method: 'post',
+			data: params
+		});
+
+// 缂栬緫鎵规鏁版嵁
+export const updateMes_BatchOrderUPI_New = (params?: any) => 
+	request({
+			url: Api.UpdateMes_BatchOrderUPI_New,
+			method: 'post',
+			data: params
+		});
+
+// 瀵煎叆鎵规鏁版嵁
+export const importExcelMes_BatchOrderUPI_New = (params?: any) =>
+	request({
+		url: Api.ImportExcelMes_BatchOrderUPI_New,
+		method: 'post',
+		data: params
+	});
+
+// 涓嬭浇瀵煎叆鎵规鏁版嵁妯℃澘
+export const downloadExcelTemplateMes_BatchOrderUPI_New = (params?: any) => 
+	request({
+			url: Api.DownloadExcelTemplateMes_BatchOrderUPI_New,
+			method: 'get',
+			data: params,
+			responseType: 'blob'
+		});
+
+
+// 鍒嗛〉鏌ヨ鎵规鏁版嵁
+export const pageMes_BatchOrderUPI_New = (params?: any) => 
+	request({
+			url: Api.PageMes_BatchOrderUPI_New,
+			method: 'post',
+			data: params
+		});
+
+// 涓嶅垎椤垫煡璇㈡壒娆℃暟鎹�
+export const listMes_BatchOrderUPI_New = (params?: any) => 
+	request({
+			url: Api.ListMes_BatchOrderUPI_New,
+			method: 'get',
+			data: params
+		});
+
+// 璇︽儏鎵规鏁版嵁
+export const detailMes_BatchOrderUPI_New = (id: any) => 
+	request({
+			url: Api.DetailMes_BatchOrderUPI_New,
+			method: 'get',
+			data: { id }
+		});
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/component/editDialog.vue
new file mode 100644
index 0000000..3393d9a
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/component/editDialog.vue
@@ -0,0 +1,322 @@
+锘�<template>
+	<div class="mes_BatchOrderUPI_New-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" v-loading="loading">
+				<el-row :gutter="35">
+					<el-form-item v-show="false">
+						<el-input v-model="ruleForm.id" />
+					</el-form-item>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鎵�鍦ㄥ尯鍩�" prop="areaCode">
+							<el-select clearable v-model="ruleForm.areaCode" placeholder="璇烽�夋嫨鎵�鍦ㄥ尯鍩�">
+								<el-option v-for="(item,index) in  getEnumAreaCodeData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
+								
+							</el-select>
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鏉挎枡鐘舵��" prop="upiStatus">
+							<el-select clearable v-model="ruleForm.upiStatus" placeholder="璇烽�夋嫨鏉挎枡鐘舵��">
+								<el-option v-for="(item,index) in  getEnumUpiStatusData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
+								
+							</el-select>
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鎵规鍙�" prop="planNo">
+							<el-input v-model="ruleForm.planNo" placeholder="璇疯緭鍏ユ壒娆″彿" maxlength="50" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="璁㈠崟鍙�" prop="orderId">
+							<el-input v-model="ruleForm.orderId" placeholder="璇疯緭鍏ヨ鍗曞彿" maxlength="50" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="閮ㄤ欢鏉$爜" prop="uPI">
+							<el-input v-model="ruleForm.uPI" placeholder="璇疯緭鍏ラ儴浠舵潯鐮�" maxlength="50" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="閮ㄤ欢鍚嶇О" prop="detailName">
+							<el-input v-model="ruleForm.detailName" placeholder="璇疯緭鍏ラ儴浠跺悕绉�" maxlength="50" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="闀�" prop="length">
+							<el-input v-model="ruleForm.length" placeholder="璇疯緭鍏ラ暱" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="瀹�" prop="width">
+							<el-input v-model="ruleForm.width" placeholder="璇疯緭鍏ュ" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鍘�" prop="thk">
+							<el-input v-model="ruleForm.thk" placeholder="璇疯緭鍏ュ帤" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="閮ㄤ欢绾圭悊" prop="matgrid">
+							<el-input v-model="ruleForm.matgrid" placeholder="璇疯緭鍏ラ儴浠剁汗鐞�" maxlength="50" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鏄惁灏佽竟" prop="isEB">
+							<el-input-number v-model="ruleForm.isEB" placeholder="璇疯緭鍏ユ槸鍚﹀皝杈�" clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鎵撳瓟璁惧缂栧彿" prop="dRNum">
+							<el-input-number v-model="ruleForm.dRNum" placeholder="璇疯緭鍏ユ墦瀛旇澶囩紪鍙�" clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鏄惁浼樺寲鍖呰" prop="isPA">
+							<el-input-number v-model="ruleForm.isPA" placeholder="璇疯緭鍏ユ槸鍚︿紭鍖栧寘瑁�" clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="閿垏鍥惧彿" prop="materialIndeX">
+							<el-input-number v-model="ruleForm.materialIndeX" placeholder="璇疯緭鍏ラ敮鍒囧浘鍙�" clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鍖呰鍙�" prop="packageCode">
+							<el-input v-model="ruleForm.packageCode" placeholder="璇疯緭鍏ュ寘瑁呭彿" maxlength="50" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鍖呰X鍧愭爣" prop="machineXCenter">
+							<el-input v-model="ruleForm.machineXCenter" placeholder="璇疯緭鍏ュ寘瑁匵鍧愭爣" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鍖呰Y鍧愭爣" prop="machineYCenter">
+							<el-input v-model="ruleForm.machineYCenter" placeholder="璇疯緭鍏ュ寘瑁匶鍧愭爣" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="鍖呰Z鍧愭爣" prop="machineZCenter">
+							<el-input v-model="ruleForm.machineZCenter" placeholder="璇疯緭鍏ュ寘瑁匷鍧愭爣" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="灞傛暟" prop="sequence">
+							<el-input-number v-model="ruleForm.sequence" placeholder="璇疯緭鍏ュ眰鏁�" clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="娆″簭" prop="shelf">
+							<el-input-number v-model="ruleForm.shelf" placeholder="璇疯緭鍏ユ搴�" clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="杞悜瑙掑害" prop="rotation">
+							<el-input v-model="ruleForm.rotation" placeholder="璇疯緭鍏ヨ浆鍚戣搴�" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="绾哥闀�" prop="info1">
+							<el-input v-model="ruleForm.info1" placeholder="璇疯緭鍏ョ焊绠遍暱" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="绾哥瀹�" prop="info2">
+							<el-input v-model="ruleForm.info2" placeholder="璇疯緭鍏ョ焊绠卞" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="绾哥楂�" prop="info3">
+							<el-input v-model="ruleForm.info3" placeholder="璇疯緭鍏ョ焊绠遍珮" maxlength="53" show-word-limit clearable />
+							
+						</el-form-item>
+						
+					</el-col>
+				</el-row>
+			</el-form>
+			<template #footer>
+				<span class="dialog-footer">
+					<el-button @click="cancel">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submit" :disabled="disabled_btn">纭� 瀹�</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 { addMes_BatchOrderUPI_New, updateMes_BatchOrderUPI_New, detailMes_BatchOrderUPI_New } from "/@/api/main/WmsOrder/mes_BatchOrderUPI_New";
+	import { getAPI } from '/@/utils/axios-utils';
+	import { SysEnumApi } from '/@/api-services/api';
+
+	const getEnumAreaCodeData = ref<any>([]);
+	const getEnumUpiStatusData = ref<any>([]);
+	//鐖剁骇浼犻�掓潵鐨勫弬鏁�
+	var props = defineProps({
+		title: {
+		type: String,
+		default: "",
+	},
+	});
+	//鐖剁骇浼犻�掓潵鐨勫嚱鏁帮紝鐢ㄤ簬鍥炶皟
+	const emit = defineEmits(["reloadTable"]);
+	const ruleFormRef = ref();
+	const isShowDialog = ref(false);
+	const loading = ref(false);
+	const disabled_btn = ref(false);
+	const ruleForm = ref<any>({});
+	//鑷娣诲姞鍏朵粬瑙勫垯
+	const rules = ref<FormRules>({
+		upiStatus: [{required: true, message: '璇烽�夋嫨鏉挎枡鐘舵�侊紒', trigger: 'change',},],
+		planNo: [{required: true, message: '璇疯緭鍏ユ壒娆″彿锛�', trigger: 'blur',},],
+		orderId: [{required: true, message: '璇疯緭鍏ヨ鍗曞彿锛�', trigger: 'blur',},],
+		uPI: [{required: true, message: '璇疯緭鍏ラ儴浠舵潯鐮侊紒', trigger: 'blur',},],
+		detailName: [{required: true, message: '璇疯緭鍏ラ儴浠跺悕绉帮紒', trigger: 'blur',},],
+		length: [{required: true, message: '璇疯緭鍏ラ暱锛�', trigger: 'blur',},],
+		width: [{required: true, message: '璇疯緭鍏ュ锛�', trigger: 'blur',},],
+		thk: [{required: true, message: '璇疯緭鍏ュ帤锛�', trigger: 'blur',},],
+		packageCode: [{required: true, message: '璇疯緭鍏ュ寘瑁呭彿锛�', trigger: 'blur',},],
+		isDelete: [{required: true, message: '璇烽�夋嫨杞垹闄わ紒', trigger: 'change',},],
+	});
+
+	/*
+	 * 鎵撳紑寮圭獥
+	 * @param flag 鏍囪锛�1鏂板 2缂栬緫 3鏌ョ湅锛�
+	 * @param row  琛屾暟鎹�
+	 */
+	const openDialog = async (flag: number,row: any) => {
+		// ruleForm.value = JSON.parse(JSON.stringify(row));
+		// 鏀圭敤detail鑾峰彇鏈�鏂版暟鎹潵缂栬緫
+		let rowData = JSON.parse(JSON.stringify(row));
+		if (rowData.id)
+			ruleForm.value = (await detailMes_BatchOrderUPI_New(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 () => {
+	    disabled_btn.value = true;
+		ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
+			if (isValid) {
+			    loading.value = true;
+				let values = ruleForm.value;
+				let ret={};
+				let title='鏂板';
+				if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
+					ret = await addMes_BatchOrderUPI_New(values);
+				} else {
+					title='缂栬緫';
+					ret = await updateMes_BatchOrderUPI_New(values);
+				}
+				loading.value = false;
+				disabled_btn.value = false;
+				if(ret.data.type=="success"){
+					ElMessage.success(title+'鎴愬姛');
+					closeDialog();
+				}
+			} else {
+			    disabled_btn.value = false;
+				ElMessage({
+					message: `琛ㄥ崟鏈�${Object.keys(fields).length}澶勯獙璇佸け璐ワ紝璇蜂慨鏀瑰悗鍐嶆彁浜,
+					type: "error",
+				});
+			}
+		});
+	};
+
+	
+
+
+
+
+
+	// 椤甸潰鍔犺浇鏃�
+	onMounted(async () => {
+			getEnumAreaCodeData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
+			getEnumUpiStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
+	});
+
+	//灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠�
+	defineExpose({ openDialog });
+</script>
+
+
+
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/index.vue
new file mode 100644
index 0000000..42ad58c
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/index.vue
@@ -0,0 +1,446 @@
+锘�<template>
+  <div class="mes_BatchOrderUPI_New-container">
+    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> 
+      <el-form :model="queryParamsMes_BatchOrderUPI_New" ref="queryForm" labelWidth="90">
+        <el-row>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
+            <el-form-item label="鍏抽敭瀛�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.searchKey" clearable="" placeholder="鎵规鍙�,璁㈠崟鍙�,閮ㄤ欢鏉$爜,閮ㄤ欢鍚嶇О,閮ㄤ欢绾圭悊,鍖呰鍙�,鍒涘缓浜�,淇敼浜�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鎵�鍦ㄥ尯鍩�">
+              <el-select clearable="" v-model="queryParamsMes_BatchOrderUPI_New.areaCode" placeholder="璇烽�夋嫨鎵�鍦ㄥ尯鍩�">
+                <el-option v-for="(item,index) in getEnumAreaCodeData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
+                
+              </el-select>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鏉挎枡鐘舵��">
+              <el-select clearable="" v-model="queryParamsMes_BatchOrderUPI_New.upiStatus" placeholder="璇烽�夋嫨鏉挎枡鐘舵��">
+                <el-option v-for="(item,index) in getEnumUpiStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
+                
+              </el-select>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鎵规鍙�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.planNo" clearable="" placeholder="璇疯緭鍏ユ壒娆″彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="璁㈠崟鍙�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.orderId" clearable="" placeholder="璇疯緭鍏ヨ鍗曞彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="閮ㄤ欢鏉$爜">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.uPI" clearable="" placeholder="璇疯緭鍏ラ儴浠舵潯鐮�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="閮ㄤ欢鍚嶇О">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.detailName" clearable="" placeholder="璇疯緭鍏ラ儴浠跺悕绉�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="闀�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.length" clearable="" placeholder="璇疯緭鍏ラ暱"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="瀹�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.width" clearable="" placeholder="璇疯緭鍏ュ"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鍘�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.thk" clearable="" placeholder="璇疯緭鍏ュ帤"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="閮ㄤ欢绾圭悊">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.matgrid" clearable="" placeholder="璇疯緭鍏ラ儴浠剁汗鐞�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鏄惁灏佽竟">
+              <el-input-number v-model="queryParamsMes_BatchOrderUPI_New.isEB"  clearable="" placeholder="璇疯緭鍏ユ槸鍚﹀皝杈�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鎵撳瓟璁惧缂栧彿">
+              <el-input-number v-model="queryParamsMes_BatchOrderUPI_New.dRNum"  clearable="" placeholder="璇疯緭鍏ユ墦瀛旇澶囩紪鍙�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鏄惁浼樺寲鍖呰">
+              <el-input-number v-model="queryParamsMes_BatchOrderUPI_New.isPA"  clearable="" placeholder="璇疯緭鍏ユ槸鍚︿紭鍖栧寘瑁�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="閿垏鍥惧彿">
+              <el-input-number v-model="queryParamsMes_BatchOrderUPI_New.materialIndeX"  clearable="" placeholder="璇疯緭鍏ラ敮鍒囧浘鍙�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鍖呰鍙�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.packageCode" clearable="" placeholder="璇疯緭鍏ュ寘瑁呭彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鍖呰X鍧愭爣">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.machineXCenter" clearable="" placeholder="璇疯緭鍏ュ寘瑁匵鍧愭爣"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鍖呰Y鍧愭爣">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.machineYCenter" clearable="" placeholder="璇疯緭鍏ュ寘瑁匶鍧愭爣"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="鍖呰Z鍧愭爣">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.machineZCenter" clearable="" placeholder="璇疯緭鍏ュ寘瑁匷鍧愭爣"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="灞傛暟">
+              <el-input-number v-model="queryParamsMes_BatchOrderUPI_New.sequence"  clearable="" placeholder="璇疯緭鍏ュ眰鏁�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="娆″簭">
+              <el-input-number v-model="queryParamsMes_BatchOrderUPI_New.shelf"  clearable="" placeholder="璇疯緭鍏ユ搴�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="杞悜瑙掑害">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.rotation" clearable="" placeholder="璇疯緭鍏ヨ浆鍚戣搴�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="绾哥闀�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.info1" clearable="" placeholder="璇疯緭鍏ョ焊绠遍暱"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="绾哥瀹�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.info2" clearable="" placeholder="璇疯緭鍏ョ焊绠卞"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New">
+            <el-form-item label="绾哥楂�">
+              <el-input v-model="queryParamsMes_BatchOrderUPI_New.info3" 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="handleQueryMes_BatchOrderUPI_New" v-auth="'mes_BatchOrderUPI_New:page'" :disabled="disabled_btnMes_BatchOrderUPI_New"> 鏌ヨ </el-button>
+                      <el-button icon="ele-Refresh" @click="resetMes_BatchOrderUPI_New"> 閲嶇疆 </el-button>
+                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIMes_BatchOrderUPI_New" v-if="!showAdvanceQueryUIMes_BatchOrderUPI_New" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button>
+                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIMes_BatchOrderUPI_New" v-if="showAdvanceQueryUIMes_BatchOrderUPI_New" style="margin-left:5px;"> 闅愯棌 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddMes_BatchOrderUPI_New" v-auth="'mes_BatchOrderUPI_New:add'"> 鏂板 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Upload" @click="openImportExcelMes_BatchOrderUPI_New"  v-auth="'mes_BatchOrderUPI_New:importExcel'" > 瀵煎叆 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelMes_BatchOrderUPI_New"  v-auth="'mes_BatchOrderUPI_New:exportExcel'" > 瀵煎嚭 </el-button>
+              </el-button-group>
+            </el-form-item>
+            
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
+    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
+      <el-table
+                ref="tableRefMes_BatchOrderUPI_New"
+				:data="tableDataMes_BatchOrderUPI_New"
+				style="width: 100%"
+				v-loading="loadingMes_BatchOrderUPI_New"
+				tooltip-effect="light"
+                				row-key="id"
+                @sort-change="sortChangeMes_BatchOrderUPI_New"
+				border="">
+        <el-table-column type="index" label="搴忓彿" width="55" align="center"/>
+          <el-table-column prop="areaCode" label="鎵�鍦ㄥ尯鍩�"  show-overflow-tooltip="" >
+            <template #default="scope">
+              <el-tag>{{ getEnumDesc(scope.row.areaCode, getEnumAreaCodeData_Index)}}</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column prop="upiStatus" label="鏉挎枡鐘舵��"  show-overflow-tooltip="" >
+            <template #default="scope">
+              <el-tag>{{ getEnumDesc(scope.row.upiStatus, getEnumUpiStatusData_Index)}}</el-tag>
+            </template>
+          </el-table-column>
+        <el-table-column prop="planNo" label="鎵规鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="orderId" label="璁㈠崟鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="uPI" label="閮ㄤ欢鏉$爜"  show-overflow-tooltip="" />
+        <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О"  show-overflow-tooltip="" />
+        <el-table-column prop="length" label="闀�"  show-overflow-tooltip="" />
+        <el-table-column prop="width" label="瀹�"  show-overflow-tooltip="" />
+        <el-table-column prop="thk" label="鍘�"  show-overflow-tooltip="" />
+        <el-table-column prop="matgrid" label="閮ㄤ欢绾圭悊"  show-overflow-tooltip="" />
+        <el-table-column prop="isEB" label="鏄惁灏佽竟"  show-overflow-tooltip="" />
+        <el-table-column prop="dRNum" label="鎵撳瓟璁惧缂栧彿"  show-overflow-tooltip="" />
+        <el-table-column prop="isPA" label="鏄惁浼樺寲鍖呰"  show-overflow-tooltip="" />
+        <el-table-column prop="materialIndeX" label="閿垏鍥惧彿"  show-overflow-tooltip="" />
+        <el-table-column prop="packageCode" label="鍖呰鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="machineXCenter" label="鍖呰X鍧愭爣"  show-overflow-tooltip="" />
+        <el-table-column prop="machineYCenter" label="鍖呰Y鍧愭爣"  show-overflow-tooltip="" />
+        <el-table-column prop="machineZCenter" label="鍖呰Z鍧愭爣"  show-overflow-tooltip="" />
+        <el-table-column prop="sequence" label="灞傛暟"  show-overflow-tooltip="" />
+        <el-table-column prop="shelf" label="娆″簭"  show-overflow-tooltip="" />
+        <el-table-column prop="rotation" label="杞悜瑙掑害"  show-overflow-tooltip="" />
+        <el-table-column prop="info1" label="绾哥闀�"  show-overflow-tooltip="" />
+        <el-table-column prop="info2" label="绾哥瀹�"  show-overflow-tooltip="" />
+        <el-table-column prop="info3" label="绾哥楂�"  show-overflow-tooltip="" />
+         <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
+         <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
+        <el-table-column prop="createUserName" label="鍒涘缓浜�"  show-overflow-tooltip="" />
+        <el-table-column prop="updateUserName" label="淇敼浜�"  show-overflow-tooltip="" />
+        <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('mes_BatchOrderUPI_New:update') || auth('mes_BatchOrderUPI_New:delete')">
+          <template #default="scope">
+            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditMes_BatchOrderUPI_New(scope.row)" v-auth="'mes_BatchOrderUPI_New:update'"> 缂栬緫 </el-button>
+            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delMes_BatchOrderUPI_New(scope.row)" v-auth="'mes_BatchOrderUPI_New:delete'"> 鍒犻櫎 </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+				v-model:currentPage="tableParamsMes_BatchOrderUPI_New.page"
+				v-model:page-size="tableParamsMes_BatchOrderUPI_New.pageSize"
+				:total="tableParamsMes_BatchOrderUPI_New.total"
+				:page-sizes="[10, 20, 50, 100, 200, 500]"
+				small=""
+				background=""
+				@size-change="handleSizeChangeMes_BatchOrderUPI_New"
+				@current-change="handleCurrentChangeMes_BatchOrderUPI_New"
+				layout="total, sizes, prev, pager, next, jumper"
+	/>
+      <printDialogMes_BatchOrderUPI_New
+        ref="printDialogRefMes_BatchOrderUPI_New"
+        :title="printMes_BatchOrderUPI_NewTitle"
+        @reloadTable="handleQueryMes_BatchOrderUPI_New" />
+      <editDialogMes_BatchOrderUPI_New
+        ref="editDialogRefMes_BatchOrderUPI_New"
+        :title="editMes_BatchOrderUPI_NewTitle"
+        @reloadTable="handleQueryMes_BatchOrderUPI_New"
+      />
+      <importExcelDialog
+        ref="importExcelDialogRefMes_BatchOrderUPI_New"
+        :title="importExcelTitleMes_BatchOrderUPI_New"
+        @parentUploadFun="handleImportExcelMes_BatchOrderUPI_New"
+        @parentDownFun="handleDownExcelMes_BatchOrderUPI_New"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script lang="ts" setup="" name="mes_BatchOrderUPI_New">
+  import { ref,onMounted } 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,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime';
+  import importExcelDialog from '/@/components/importExcel/index.vue' //寮曞叆瀵煎叆缁勪欢
+  import { exportPageExcel } from '/@/utils/exportPageExcel' //寮曞叆瀵煎嚭鏂规硶
+
+
+  import printDialogMes_BatchOrderUPI_New from '/@/views/system/print/component/hiprint/preview.vue'
+  import editDialogMes_BatchOrderUPI_New from '/@/views/main/WmsOrder/mes_BatchOrderUPI_New/component/editDialog.vue'
+  import { pageMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New,importExcelMes_BatchOrderUPI_New,downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New';
+	import { getAPI } from '/@/utils/axios-utils';
+	import { SysEnumApi } from '/@/api-services/api';
+  import commonFunction from '/@/utils/commonFunction';
+
+  const getEnumAreaCodeData_Index = ref<any>([]);
+  const getEnumUpiStatusData_Index = ref<any>([]);
+
+	const { getEnumDesc } = commonFunction();
+  
+  /***************************************************[鎵规鏁版嵁鎿嶄綔]寮�濮�***************************************************/
+  const showAdvanceQueryUIMes_BatchOrderUPI_New = ref(false);
+  const tableRefMes_BatchOrderUPI_New = ref(null);
+  const printDialogRefMes_BatchOrderUPI_New = ref();
+  const editDialogRefMes_BatchOrderUPI_New = ref();
+  const loadingMes_BatchOrderUPI_New = ref(false);
+  const disabled_btnMes_BatchOrderUPI_New = ref(false);
+  const tableDataMes_BatchOrderUPI_New = ref<any>([]);
+  const queryParamsMes_BatchOrderUPI_New = ref<any>({});
+  const tableParamsMes_BatchOrderUPI_New = ref({
+    page: 1,
+    pageSize: 10,
+    total: 0,
+  });
+
+  const printMes_BatchOrderUPI_NewTitle = ref("");
+  const editMes_BatchOrderUPI_NewTitle = ref("");
+
+  // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
+  const changeAdvanceQueryUIMes_BatchOrderUPI_New = () => {
+    showAdvanceQueryUIMes_BatchOrderUPI_New.value = !showAdvanceQueryUIMes_BatchOrderUPI_New.value;
+  }
+
+  // 鏌ヨ鎵规鏁版嵁
+  const handleQueryMes_BatchOrderUPI_New = async () => {
+    loadingMes_BatchOrderUPI_New.value = true;
+    disabled_btnMes_BatchOrderUPI_New.value = true;
+    var res = await pageMes_BatchOrderUPI_New(Object.assign(queryParamsMes_BatchOrderUPI_New.value, tableParamsMes_BatchOrderUPI_New.value));
+    if(res.data.type=="success"){
+      tableDataMes_BatchOrderUPI_New.value = res.data.result?.items ?? [];
+      tableParamsMes_BatchOrderUPI_New.value.total = res.data.result?.total;
+    }
+    loadingMes_BatchOrderUPI_New.value = false;
+    disabled_btnMes_BatchOrderUPI_New.value = false;
+  };
+
+  // 閲嶇疆鎵规鏁版嵁鏌ヨ
+  const resetMes_BatchOrderUPI_New = async () => {
+    queryParamsMes_BatchOrderUPI_New.value = {}
+  };
+
+  // 鎵规鏁版嵁鍒楁帓搴�
+  const sortChangeMes_BatchOrderUPI_New = async (column: any) => {
+	queryParamsMes_BatchOrderUPI_New.value.field = column.prop;
+	queryParamsMes_BatchOrderUPI_New.value.order = column.order;
+	await handleQueryMes_BatchOrderUPI_New();
+  };
+
+  // 鎵撳紑鏂板鎵规鏁版嵁椤甸潰
+  const openAddMes_BatchOrderUPI_New = () => {
+    editMes_BatchOrderUPI_NewTitle.value = '娣诲姞鎵规鏁版嵁';
+    editDialogRefMes_BatchOrderUPI_New.value.openDialog(1,{});
+  };
+
+  // 鎵撳紑鎵撳嵃鎵规鏁版嵁椤甸潰
+  const openPrintMes_BatchOrderUPI_New = async (row: any) => {
+    printMes_BatchOrderUPI_NewTitle.value = '鎵撳嵃鎵规鏁版嵁';
+  }
+  
+  // 鎵撳紑缂栬緫鎵规鏁版嵁椤甸潰
+  const openEditMes_BatchOrderUPI_New = (row: any) => {
+    editMes_BatchOrderUPI_NewTitle.value = '缂栬緫鎵规鏁版嵁';
+    editDialogRefMes_BatchOrderUPI_New.value.openDialog(2,row);
+  };
+
+  // 鍒犻櫎鎵规鏁版嵁
+  const delMes_BatchOrderUPI_New = (row: any) => {
+    ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", {
+    confirmButtonText: "纭畾",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+  .then(async () => {
+    loadingMes_BatchOrderUPI_New.value = true;
+    var ret = await deleteMes_BatchOrderUPI_New(row);
+    if(ret.data.type=="success"){
+        ElMessage.success("鍒犻櫎鎴愬姛");
+	}
+    loadingMes_BatchOrderUPI_New.value = false;
+    handleQueryMes_BatchOrderUPI_New();
+  })
+  .catch(() => {});
+  };
+
+  // 鏀瑰彉鎵规鏁版嵁椤甸潰瀹归噺
+  const handleSizeChangeMes_BatchOrderUPI_New = (val: number) => {
+    tableParamsMes_BatchOrderUPI_New.value.pageSize = val;
+    handleQueryMes_BatchOrderUPI_New();
+  };
+
+  // 鏀瑰彉鎵规鏁版嵁椤电爜搴忓彿
+  const handleCurrentChangeMes_BatchOrderUPI_New = (val: number) => {
+    tableParamsMes_BatchOrderUPI_New.value.page = val;
+    handleQueryMes_BatchOrderUPI_New();
+  };
+
+/***************************************************[鎵规鏁版嵁鎿嶄綔]缁撴潫***************************************************/
+/***************************************************[鎵规鏁版嵁瀵煎叆]寮�濮�***************************************************/
+const importExcelTitleMes_BatchOrderUPI_New = ref("");
+const importExcelDialogRefMes_BatchOrderUPI_New = ref();
+//鎵撳紑瀵煎叆鐣岄潰
+const openImportExcelMes_BatchOrderUPI_New = () => {
+    importExcelTitleMes_BatchOrderUPI_New.value = '瀵煎叆鎵规鏁版嵁';
+    importExcelDialogRefMes_BatchOrderUPI_New.value.openDialog({});
+};
+//瀵煎叆鏁版嵁
+const handleImportExcelMes_BatchOrderUPI_New = async (formData:Blob) => {
+   var result = await importExcelMes_BatchOrderUPI_New(formData);
+   importExcelDialogRefMes_BatchOrderUPI_New.value.callBackUploadFun(result.data);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶
+   if(result.data.type=="success"){
+    handleQueryMes_BatchOrderUPI_New();
+   }
+};
+//涓嬭浇瀵煎叆妯℃澘
+const handleDownExcelMes_BatchOrderUPI_New = async () => {
+   var result = await downloadExcelTemplateMes_BatchOrderUPI_New();
+   importExcelDialogRefMes_BatchOrderUPI_New.value.callBackDownFun(result);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶
+};
+/***************************************************[鎵规鏁版嵁瀵煎叆]缁撴潫***************************************************/
+/***************************************************[鎵规鏁版嵁瀵煎嚭]寮�濮�***************************************************/
+//瀹氫箟褰撳墠椤甸潰鐨勬柟娉曠粍
+const functionMapMes_BatchOrderUPI_New = {
+      getEnumAreaCodeData_Index,
+      getEnumUpiStatusData_Index,
+      formatDate_T_Date,
+      formatDate_T_Time
+};
+//鐐瑰嚮瀵煎嚭鎸夐挳
+const handleExportExcelMes_BatchOrderUPI_New = async (formData:Blob) => {
+    loadingMes_BatchOrderUPI_New.value = true;
+    disabled_btnMes_BatchOrderUPI_New.value = true;
+    var new_tableParamsMes_BatchOrderUPI_New=JSON.parse(JSON.stringify(tableParamsMes_BatchOrderUPI_New.value));
+    new_tableParamsMes_BatchOrderUPI_New.page = 1;
+    new_tableParamsMes_BatchOrderUPI_New.pageSize = 100000;
+    var res = await pageMes_BatchOrderUPI_New(Object.assign(queryParamsMes_BatchOrderUPI_New.value, new_tableParamsMes_BatchOrderUPI_New));
+    if(res.data.type=="success"){
+      exportExcelMes_BatchOrderUPI_New(res.data.result?.items ?? []);
+    }
+    loadingMes_BatchOrderUPI_New.value = false;
+    disabled_btnMes_BatchOrderUPI_New.value = false;
+};
+//瀵煎嚭
+const exportExcelMes_BatchOrderUPI_New  = async (exportDataList:Array) => {
+  exportPageExcel(exportDataList, tableRefMes_BatchOrderUPI_New,"鎵规鏁版嵁",functionMapMes_BatchOrderUPI_New);
+};
+/***************************************************[鎵规鏁版嵁瀵煎嚭]缁撴潫***************************************************/
+  // 鎵规鏁版嵁椤甸潰鍔犺浇鏃�
+  onMounted(async () => {
+    getEnumAreaCodeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
+    getEnumUpiStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
+  });
+
+  handleQueryMes_BatchOrderUPI_New();
+</script>
+<style scoped>
+:deep(.el-input),
+:deep(.el-select),
+:deep(.el-input-number) {
+	width: 100%;
+}
+</style>
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewInput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewInput.cs
new file mode 100644
index 0000000..7f0b613
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewInput.cs
@@ -0,0 +1,393 @@
+锘縰sing Admin.NET.Core;
+using System.ComponentModel.DataAnnotations;
+
+namespace Admin.NET.Application;
+
+    /// <summary>
+    /// 鎵规鏁版嵁鍩虹杈撳叆鍙傛暟
+    /// </summary>
+    public class Mes_BatchOrderUPI_NewBaseInput
+    {
+        /// <summary>
+        /// 鎵�鍦ㄥ尯鍩�
+        /// </summary>
+        public virtual Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
+        
+        /// <summary>
+        /// 鏉挎枡鐘舵��
+        /// </summary>
+        public virtual Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public virtual string PlanNo { get; set; }
+        
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public virtual string OrderId { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鏉$爜
+        /// </summary>
+        public virtual string UPI { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鍚嶇О
+        /// </summary>
+        public virtual string DetailName { get; set; }
+        
+        /// <summary>
+        /// 闀�
+        /// </summary>
+        public virtual float Length { get; set; }
+        
+        /// <summary>
+        /// 瀹�
+        /// </summary>
+        public virtual float Width { get; set; }
+        
+        /// <summary>
+        /// 鍘�
+        /// </summary>
+        public virtual float Thk { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢绾圭悊
+        /// </summary>
+        public virtual string Matgrid { get; set; }
+        
+        /// <summary>
+        /// 鏄惁灏佽竟
+        /// </summary>
+        public virtual int? IsEB { get; set; }
+        
+        /// <summary>
+        /// 鎵撳瓟璁惧缂栧彿
+        /// </summary>
+        public virtual int? DRNum { get; set; }
+        
+        /// <summary>
+        /// 鏄惁浼樺寲鍖呰
+        /// </summary>
+        public virtual int? IsPA { get; set; }
+        
+        /// <summary>
+        /// 閿垏鍥惧彿
+        /// </summary>
+        public virtual int? MaterialIndeX { get; set; }
+        
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public virtual string PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鍖呰X鍧愭爣
+        /// </summary>
+        public virtual float? MachineXCenter { get; set; }
+        
+        /// <summary>
+        /// 鍖呰Y鍧愭爣
+        /// </summary>
+        public virtual float? MachineYCenter { get; set; }
+        
+        /// <summary>
+        /// 鍖呰Z鍧愭爣
+        /// </summary>
+        public virtual float? MachineZCenter { get; set; }
+        
+        /// <summary>
+        /// 灞傛暟
+        /// </summary>
+        public virtual int? Sequence { get; set; }
+        
+        /// <summary>
+        /// 娆″簭
+        /// </summary>
+        public virtual int? Shelf { get; set; }
+        
+        /// <summary>
+        /// 杞悜瑙掑害
+        /// </summary>
+        public virtual float? Rotation { get; set; }
+        
+        /// <summary>
+        /// 绾哥闀�
+        /// </summary>
+        public virtual float? Info1 { get; set; }
+        
+        /// <summary>
+        /// 绾哥瀹�
+        /// </summary>
+        public virtual float? Info2 { get; set; }
+        
+        /// <summary>
+        /// 绾哥楂�
+        /// </summary>
+        public virtual float? Info3 { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public virtual DateTime? CreateTime { get; set; }
+        
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public virtual DateTime? UpdateTime { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓浜篒d
+        /// </summary>
+        public virtual long? CreateUserId { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public virtual string CreateUserName { get; set; }
+        
+        /// <summary>
+        /// 淇敼浜篒d
+        /// </summary>
+        public virtual long? UpdateUserId { get; set; }
+        
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public virtual string UpdateUserName { get; set; }
+        
+        /// <summary>
+        /// 杞垹闄�
+        /// </summary>
+        public virtual bool IsDelete { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎵规鏁版嵁鍒嗛〉鏌ヨ杈撳叆鍙傛暟
+    /// </summary>
+    public class Mes_BatchOrderUPI_NewInput : BasePageInput
+    {
+        /// <summary>
+        /// 鍏抽敭瀛楁煡璇�
+        /// </summary>
+        public string? SearchKey { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄥ尯鍩�
+        /// </summary>
+        public Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
+        
+        /// <summary>
+        /// 鏉挎枡鐘舵��
+        /// </summary>
+        public Admin.NET.Application.UpiStatusEnum? UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public string? PlanNo { get; set; }
+        
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public string? OrderId { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鏉$爜
+        /// </summary>
+        public string? UPI { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鍚嶇О
+        /// </summary>
+        public string? DetailName { get; set; }
+        
+        /// <summary>
+        /// 闀�
+        /// </summary>
+        public float? Length { get; set; }
+        
+        /// <summary>
+        /// 瀹�
+        /// </summary>
+        public float? Width { get; set; }
+        
+        /// <summary>
+        /// 鍘�
+        /// </summary>
+        public float? Thk { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢绾圭悊
+        /// </summary>
+        public string? Matgrid { get; set; }
+        
+        /// <summary>
+        /// 鏄惁灏佽竟
+        /// </summary>
+        public int? IsEB { get; set; }
+        
+        /// <summary>
+        /// 鎵撳瓟璁惧缂栧彿
+        /// </summary>
+        public int? DRNum { get; set; }
+        
+        /// <summary>
+        /// 鏄惁浼樺寲鍖呰
+        /// </summary>
+        public int? IsPA { get; set; }
+        
+        /// <summary>
+        /// 閿垏鍥惧彿
+        /// </summary>
+        public int? MaterialIndeX { get; set; }
+        
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public string? PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鍖呰X鍧愭爣
+        /// </summary>
+        public float? MachineXCenter { get; set; }
+        
+        /// <summary>
+        /// 鍖呰Y鍧愭爣
+        /// </summary>
+        public float? MachineYCenter { get; set; }
+        
+        /// <summary>
+        /// 鍖呰Z鍧愭爣
+        /// </summary>
+        public float? MachineZCenter { get; set; }
+        
+        /// <summary>
+        /// 灞傛暟
+        /// </summary>
+        public int? Sequence { get; set; }
+        
+        /// <summary>
+        /// 娆″簭
+        /// </summary>
+        public int? Shelf { get; set; }
+        
+        /// <summary>
+        /// 杞悜瑙掑害
+        /// </summary>
+        public float? Rotation { get; set; }
+        
+        /// <summary>
+        /// 绾哥闀�
+        /// </summary>
+        public float? Info1 { get; set; }
+        
+        /// <summary>
+        /// 绾哥瀹�
+        /// </summary>
+        public float? Info2 { get; set; }
+        
+        /// <summary>
+        /// 绾哥楂�
+        /// </summary>
+        public float? Info3 { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎵规鏁版嵁澧炲姞杈撳叆鍙傛暟
+    /// </summary>
+    public class AddMes_BatchOrderUPI_NewInput : Mes_BatchOrderUPI_NewBaseInput
+    {
+        /// <summary>
+        /// 鏉挎枡鐘舵��
+        /// </summary>
+        [Required(ErrorMessage = "鏉挎枡鐘舵�佷笉鑳戒负绌�")]
+        public override Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        [Required(ErrorMessage = "鎵规鍙蜂笉鑳戒负绌�")]
+        public override string PlanNo { get; set; }
+        
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        [Required(ErrorMessage = "璁㈠崟鍙蜂笉鑳戒负绌�")]
+        public override string OrderId { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鏉$爜
+        /// </summary>
+        [Required(ErrorMessage = "閮ㄤ欢鏉$爜涓嶈兘涓虹┖")]
+        public override string UPI { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鍚嶇О
+        /// </summary>
+        [Required(ErrorMessage = "閮ㄤ欢鍚嶇О涓嶈兘涓虹┖")]
+        public override string DetailName { get; set; }
+        
+        /// <summary>
+        /// 闀�
+        /// </summary>
+        [Required(ErrorMessage = "闀夸笉鑳戒负绌�")]
+        public override float Length { get; set; }
+        
+        /// <summary>
+        /// 瀹�
+        /// </summary>
+        [Required(ErrorMessage = "瀹戒笉鑳戒负绌�")]
+        public override float Width { get; set; }
+        
+        /// <summary>
+        /// 鍘�
+        /// </summary>
+        [Required(ErrorMessage = "鍘氫笉鑳戒负绌�")]
+        public override float Thk { get; set; }
+        
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        [Required(ErrorMessage = "鍖呰鍙蜂笉鑳戒负绌�")]
+        public override string PackageCode { get; set; }
+        
+        /// <summary>
+        /// 杞垹闄�
+        /// </summary>
+        [Required(ErrorMessage = "杞垹闄や笉鑳戒负绌�")]
+        public override bool IsDelete { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎵规鏁版嵁鍒犻櫎杈撳叆鍙傛暟
+    /// </summary>
+    public class DeleteMes_BatchOrderUPI_NewInput : BaseIdInput
+    {
+    }
+
+    /// <summary>
+    /// 鎵规鏁版嵁鏇存柊杈撳叆鍙傛暟
+    /// </summary>
+    public class UpdateMes_BatchOrderUPI_NewInput : AddMes_BatchOrderUPI_NewInput
+    {
+        /// <summary>
+        /// 涓婚敭Id
+        /// </summary>
+        [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")]
+        public long Id { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎵规鏁版嵁涓婚敭鏌ヨ杈撳叆鍙傛暟
+    /// </summary>
+    public class QueryByIdMes_BatchOrderUPI_NewInput : DeleteMes_BatchOrderUPI_NewInput
+    {
+
+    }
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewOutput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewOutput.cs
new file mode 100644
index 0000000..4f77f0e
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewOutput.cs
@@ -0,0 +1,170 @@
+锘縩amespace Admin.NET.Application;
+
+/// <summary>
+/// 鎵规鏁版嵁杈撳嚭鍙傛暟
+/// </summary>
+public class Mes_BatchOrderUPI_NewOutput
+{
+    /// <summary>
+    /// 涓婚敭Id
+    /// </summary>
+    public long? Id { get; set; }
+    
+    /// <summary>
+    /// 鎵�鍦ㄥ尯鍩�
+    /// </summary>
+    public Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
+    
+    /// <summary>
+    /// 鏉挎枡鐘舵��
+    /// </summary>
+    public Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+    
+    /// <summary>
+    /// 鎵规鍙�
+    /// </summary>
+    public string PlanNo { get; set; }
+    
+    /// <summary>
+    /// 璁㈠崟鍙�
+    /// </summary>
+    public string OrderId { get; set; }
+    
+    /// <summary>
+    /// 閮ㄤ欢鏉$爜
+    /// </summary>
+    public string UPI { get; set; }
+    
+    /// <summary>
+    /// 閮ㄤ欢鍚嶇О
+    /// </summary>
+    public string DetailName { get; set; }
+    
+    /// <summary>
+    /// 闀�
+    /// </summary>
+    public float Length { get; set; }
+    
+    /// <summary>
+    /// 瀹�
+    /// </summary>
+    public float Width { get; set; }
+    
+    /// <summary>
+    /// 鍘�
+    /// </summary>
+    public float Thk { get; set; }
+    
+    /// <summary>
+    /// 閮ㄤ欢绾圭悊
+    /// </summary>
+    public string Matgrid { get; set; }
+    
+    /// <summary>
+    /// 鏄惁灏佽竟
+    /// </summary>
+    public int? IsEB { get; set; }
+    
+    /// <summary>
+    /// 鎵撳瓟璁惧缂栧彿
+    /// </summary>
+    public int? DRNum { get; set; }
+    
+    /// <summary>
+    /// 鏄惁浼樺寲鍖呰
+    /// </summary>
+    public int? IsPA { get; set; }
+    
+    /// <summary>
+    /// 閿垏鍥惧彿
+    /// </summary>
+    public int? MaterialIndeX { get; set; }
+    
+    /// <summary>
+    /// 鍖呰鍙�
+    /// </summary>
+    public string PackageCode { get; set; }
+    
+    /// <summary>
+    /// 鍖呰X鍧愭爣
+    /// </summary>
+    public float? MachineXCenter { get; set; }
+    
+    /// <summary>
+    /// 鍖呰Y鍧愭爣
+    /// </summary>
+    public float? MachineYCenter { get; set; }
+    
+    /// <summary>
+    /// 鍖呰Z鍧愭爣
+    /// </summary>
+    public float? MachineZCenter { get; set; }
+    
+    /// <summary>
+    /// 灞傛暟
+    /// </summary>
+    public int? Sequence { get; set; }
+    
+    /// <summary>
+    /// 娆″簭
+    /// </summary>
+    public int? Shelf { get; set; }
+    
+    /// <summary>
+    /// 杞悜瑙掑害
+    /// </summary>
+    public float? Rotation { get; set; }
+    
+    /// <summary>
+    /// 绾哥闀�
+    /// </summary>
+    public float? Info1 { get; set; }
+    
+    /// <summary>
+    /// 绾哥瀹�
+    /// </summary>
+    public float? Info2 { get; set; }
+    
+    /// <summary>
+    /// 绾哥楂�
+    /// </summary>
+    public float? Info3 { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓鏃堕棿
+    /// </summary>
+    public DateTime? CreateTime { get; set; }
+    
+    /// <summary>
+    /// 淇敼鏃堕棿
+    /// </summary>
+    public DateTime? UpdateTime { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓浜篒d
+    /// </summary>
+    public long? CreateUserId { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓浜�
+    /// </summary>
+    public string CreateUserName { get; set; }
+    
+    /// <summary>
+    /// 淇敼浜篒d
+    /// </summary>
+    public long? UpdateUserId { get; set; }
+    
+    /// <summary>
+    /// 淇敼浜�
+    /// </summary>
+    public string UpdateUserName { get; set; }
+    
+    /// <summary>
+    /// 杞垹闄�
+    /// </summary>
+    public bool IsDelete { get; set; }
+    
+    }
+ 
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Mes_BatchOrderUPI_NewService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Mes_BatchOrderUPI_NewService.cs
new file mode 100644
index 0000000..b366b3e
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Mes_BatchOrderUPI_NewService.cs
@@ -0,0 +1,561 @@
+锘縰sing Admin.NET.Core.Service;
+using Admin.NET.Application.Entity;
+using Microsoft.AspNetCore.Http;
+using System.Data;
+using System.Web;
+using System.Text;
+namespace Admin.NET.Application;
+/// <summary>
+/// 鎵规鏁版嵁鏈嶅姟
+/// </summary>
+[ApiDescriptionSettings(ApplicationConst.WmsOrderGroupName, Order = 100)]
+public class Mes_BatchOrderUPI_NewService : IDynamicApiController, ITransient
+{
+    private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _rep;
+    public Mes_BatchOrderUPI_NewService(SqlSugarRepository<Mes_BatchOrderUPI_New> rep)
+    {
+        _rep = rep;
+    }
+
+    /// <summary>
+    /// 鍒嗛〉鏌ヨ鎵规鏁版嵁
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Page")]
+    [Description("Mes_BatchOrderUPI_New/Page")]
+    public async Task<SqlSugarPagedList<Mes_BatchOrderUPI_NewOutput>> Page(Mes_BatchOrderUPI_NewInput input)
+    {
+        var query = CommonPageFilter(input);
+        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
+    }
+
+    /// <summary>
+    /// 涓嶅垎椤垫煡璇㈡壒娆℃暟鎹�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "List")]
+    [Description("Mes_BatchOrderUPI_New/List")]
+    public async Task<List<Mes_BatchOrderUPI_NewOutput>> List([FromQuery] Mes_BatchOrderUPI_NewInput input)
+    {
+        var query = CommonPageFilter(input);
+        return await query.OrderBuilder(input, "", "Id").Select<Mes_BatchOrderUPI_NewOutput>().ToListAsync();
+    }
+
+    /// <summary>
+    /// 澧炲姞鎵规鏁版嵁
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Add")]
+    [Description("Mes_BatchOrderUPI_New/Add")]
+    public async Task<long> Add(AddMes_BatchOrderUPI_NewInput input)
+    {
+        var entity = input.Adapt<Mes_BatchOrderUPI_New>();
+
+        //閲嶅鎬ч獙璇�
+        await CheckExist(entity);
+
+        await _rep.InsertAsync(entity);
+        return entity.Id;
+    }
+
+    /// <summary>
+    /// 鍒犻櫎鎵规鏁版嵁
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Delete")]
+    [Description("Mes_BatchOrderUPI_New/Delete")]
+    public async Task Delete(DeleteMes_BatchOrderUPI_NewInput input)
+    {
+        var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
+        //await _rep.FakeDeleteAsync(entity);   //鍋囧垹闄�
+        await _rep.DeleteAsync(entity);   //鐪熷垹闄�
+    }
+
+    /// <summary>
+    /// 鏇存柊鎵规鏁版嵁
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Update")]
+    [Description("Mes_BatchOrderUPI_New/Update")]
+    public async Task Update(UpdateMes_BatchOrderUPI_NewInput input)
+    {
+        var entity = input.Adapt<Mes_BatchOrderUPI_New>();
+
+        //閲嶅鎬ч獙璇�
+        await CheckExist(entity, true);
+
+        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+    }
+
+    /// <summary>
+    /// 鑾峰彇鎵规鏁版嵁
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "Detail")]
+    [Description("Mes_BatchOrderUPI_New/Detail")]
+    public async Task<Mes_BatchOrderUPI_New> Detail([FromQuery] QueryByIdMes_BatchOrderUPI_NewInput input)
+    {
+        return await _rep.GetFirstAsync(u => u.Id == input.Id);
+    }
+
+
+
+
+
+    #region 瀵煎叆
+
+    /// <summary>
+    /// Excel妯℃澘瀵煎叆鎵规鏁版嵁鍔熻兘
+    /// </summary>
+    /// <param name="file">Excel妯℃澘鏂囦欢</param>
+    /// <returns>瀵煎叆鐨勮褰曟暟</returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "ImportExcel")]
+    [Description("Mes_BatchOrderUPI_New/ImportExcel")]
+    public async Task<int> ImportExcelAsync(IFormFile file)
+    {
+        int _HeadStartLine = 2;//绗�1琛屾槸璇存槑,绗�2琛屾槸鍒楀悕
+        int _DataStartLine = 3;//绗�3琛屽紑濮嬫槸鏁版嵁
+        DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine);
+        var addList = await CommonImport(importDataTable, _DataStartLine);
+        await _rep.InsertRangeAsync(addList);
+        return addList.Count;
+    }
+
+    /// <summary>
+    ///  DataTable杞崲瀹炰綋瀵硅薄鍒楄〃
+    /// </summary>
+    /// <param name="dataTable"></param>
+    /// <param name="dataStartLine">妯$増鍒楀悕寮�濮嬭</param>
+    /// <returns></returns>
+    private async Task<List<Mes_BatchOrderUPI_New>> CommonImport(DataTable dataTable, int dataStartLine)
+    {
+        var details = new List<Mes_BatchOrderUPI_New>();
+        int index = dataStartLine;//妯$増鍒楀悕寮�濮嬭
+        foreach (System.Data.DataRow row in dataTable.Rows)
+        {
+            index++;
+            //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛�
+
+            var addItem = new Mes_BatchOrderUPI_New();
+            #region 瀹氫箟鍙橀噺
+            var _AreaCode = "";//鎵�鍦ㄥ尯鍩�
+            var _UpiStatus = "";//鏉挎枡鐘舵��
+            var _PlanNo = "";//鎵规鍙�
+            var _OrderId = "";//璁㈠崟鍙�
+            var _UPI = "";//閮ㄤ欢鏉$爜
+            var _DetailName = "";//閮ㄤ欢鍚嶇О
+            var _Length = "";//闀�
+            var _Width = "";//瀹�
+            var _Thk = "";//鍘�
+            var _Matgrid = "";//閮ㄤ欢绾圭悊
+            var _IsEB = "";//鏄惁灏佽竟
+            var _DRNum = "";//鎵撳瓟璁惧缂栧彿
+            var _IsPA = "";//鏄惁浼樺寲鍖呰
+            var _MaterialIndeX = "";//閿垏鍥惧彿
+            var _PackageCode = "";//鍖呰鍙�
+            var _MachineXCenter = "";//鍖呰X鍧愭爣
+            var _MachineYCenter = "";//鍖呰Y鍧愭爣
+            var _MachineZCenter = "";//鍖呰Z鍧愭爣
+            var _Sequence = "";//灞傛暟
+            var _Shelf = "";//娆″簭
+            var _Rotation = "";//杞悜瑙掑害
+            var _Info1 = "";//绾哥闀�
+            var _Info2 = "";//绾哥瀹�
+            var _Info3 = "";//绾哥楂�
+            #endregion
+
+
+            #region 鍙栧��
+            _AreaCode = row["鎵�鍦ㄥ尯鍩�"]?.ToString();
+            _UpiStatus = row["鏉挎枡鐘舵��"]?.ToString();
+            _PlanNo = row["鎵规鍙�"]?.ToString();
+            _OrderId = row["璁㈠崟鍙�"]?.ToString();
+            _UPI = row["閮ㄤ欢鏉$爜"]?.ToString();
+            _DetailName = row["閮ㄤ欢鍚嶇О"]?.ToString();
+            _Length = row["闀�"]?.ToString();
+            _Width = row["瀹�"]?.ToString();
+            _Thk = row["鍘�"]?.ToString();
+            _Matgrid = row["閮ㄤ欢绾圭悊"]?.ToString();
+            _IsEB = row["鏄惁灏佽竟"]?.ToString();
+            _DRNum = row["鎵撳瓟璁惧缂栧彿"]?.ToString();
+            _IsPA = row["鏄惁浼樺寲鍖呰"]?.ToString();
+            _MaterialIndeX = row["閿垏鍥惧彿"]?.ToString();
+            _PackageCode = row["鍖呰鍙�"]?.ToString();
+            _MachineXCenter = row["鍖呰X鍧愭爣"]?.ToString();
+            _MachineYCenter = row["鍖呰Y鍧愭爣"]?.ToString();
+            _MachineZCenter = row["鍖呰Z鍧愭爣"]?.ToString();
+            _Sequence = row["灞傛暟"]?.ToString();
+            _Shelf = row["娆″簭"]?.ToString();
+            _Rotation = row["杞悜瑙掑害"]?.ToString();
+            _Info1 = row["绾哥闀�"]?.ToString();
+            _Info2 = row["绾哥瀹�"]?.ToString();
+            _Info3 = row["绾哥楂�"]?.ToString();
+            #endregion
+
+
+            #region 楠岃瘉
+            if (!string.IsNullOrEmpty(_AreaCode))
+            {
+                Admin.NET.Application.AreaCodeEnum enumAreaCode = default(Admin.NET.Application.AreaCodeEnum);
+
+                if (!Enum.TryParse<Admin.NET.Application.AreaCodeEnum>(_AreaCode, out enumAreaCode) && !string.IsNullOrEmpty(_AreaCode))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鎵�鍦ㄥ尯鍩焆{_AreaCode}鍊间笉姝g‘锛�");
+                }
+                else
+                {
+                    addItem.AreaCode = enumAreaCode;
+                }
+
+            }
+
+            if (string.IsNullOrEmpty(_UpiStatus))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾鏉挎枡鐘舵�乚{_UpiStatus}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_UpiStatus))
+            {
+                Admin.NET.Application.UpiStatusEnum enumUpiStatus = default(Admin.NET.Application.UpiStatusEnum);
+
+                if (!Enum.TryParse<Admin.NET.Application.UpiStatusEnum>(_UpiStatus, out enumUpiStatus) && !string.IsNullOrEmpty(_UpiStatus))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鏉挎枡鐘舵�乚{_UpiStatus}鍊间笉姝g‘锛�");
+                }
+                else
+                {
+                    addItem.UpiStatus = enumUpiStatus;
+                }
+
+            }
+
+            if (string.IsNullOrEmpty(_PlanNo))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾鎵规鍙穄{_PlanNo}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_PlanNo))
+            {
+                addItem.PlanNo = (string)(_PlanNo.Trim());
+            }
+
+            if (string.IsNullOrEmpty(_OrderId))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾璁㈠崟鍙穄{_OrderId}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_OrderId))
+            {
+                addItem.OrderId = (string)(_OrderId.Trim());
+            }
+
+            if (string.IsNullOrEmpty(_UPI))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾閮ㄤ欢鏉$爜]{_UPI}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_UPI))
+            {
+                addItem.UPI = (string)(_UPI.Trim());
+            }
+
+            if (string.IsNullOrEmpty(_DetailName))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾閮ㄤ欢鍚嶇О]{_DetailName}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_DetailName))
+            {
+                addItem.DetailName = (string)(_DetailName.Trim());
+            }
+
+            if (string.IsNullOrEmpty(_Length))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾闀縘{_Length}涓嶈兘涓虹┖锛�");
+            }
+
+            //if(!string.IsNullOrEmpty(_Length))
+            //{
+            //      addItem.Length = (float)(_Length.Trim());
+            // }
+
+            //if (string.IsNullOrEmpty(_Width))
+            //{
+            //  throw Oops.Oh($"绗瑊index}琛孾瀹絔{_Width}涓嶈兘涓虹┖锛�");
+            //}
+
+            //if(!string.IsNullOrEmpty(_Width))
+            //{
+            //      addItem.Width = (float)(_Width.Trim());
+            // }
+
+            //if (string.IsNullOrEmpty(_Thk))
+            //{
+            //  throw Oops.Oh($"绗瑊index}琛孾鍘歖{_Thk}涓嶈兘涓虹┖锛�");
+            //}
+
+            //if(!string.IsNullOrEmpty(_Thk))
+            //{
+            //      addItem.Thk = (float)(_Thk.Trim());
+            // }
+            if (!string.IsNullOrEmpty(_Matgrid))
+            {
+                addItem.Matgrid = (string)(_Matgrid.Trim());
+            }
+            if (!string.IsNullOrEmpty(_IsEB))
+            {
+                if (!int.TryParse(_IsEB, out int outIsEB) && !string.IsNullOrEmpty(_IsEB))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鏄惁灏佽竟]{_IsEB}鍊间笉姝g‘锛�");
+                }
+                if (outIsEB <= 0 && !string.IsNullOrEmpty(_IsEB))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鏄惁灏佽竟]{_IsEB}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                }
+                else
+                {
+                    addItem.IsEB = outIsEB;
+                }
+
+            }
+            if (!string.IsNullOrEmpty(_DRNum))
+            {
+                if (!int.TryParse(_DRNum, out int outDRNum) && !string.IsNullOrEmpty(_DRNum))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鎵撳瓟璁惧缂栧彿]{_DRNum}鍊间笉姝g‘锛�");
+                }
+                if (outDRNum <= 0 && !string.IsNullOrEmpty(_DRNum))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鎵撳瓟璁惧缂栧彿]{_DRNum}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                }
+                else
+                {
+                    addItem.DRNum = outDRNum;
+                }
+
+            }
+            if (!string.IsNullOrEmpty(_IsPA))
+            {
+                if (!int.TryParse(_IsPA, out int outIsPA) && !string.IsNullOrEmpty(_IsPA))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鏄惁浼樺寲鍖呰]{_IsPA}鍊间笉姝g‘锛�");
+                }
+                if (outIsPA <= 0 && !string.IsNullOrEmpty(_IsPA))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鏄惁浼樺寲鍖呰]{_IsPA}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                }
+                else
+                {
+                    addItem.IsPA = outIsPA;
+                }
+
+            }
+            if (!string.IsNullOrEmpty(_MaterialIndeX))
+            {
+                if (!int.TryParse(_MaterialIndeX, out int outMaterialIndeX) && !string.IsNullOrEmpty(_MaterialIndeX))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾閿垏鍥惧彿]{_MaterialIndeX}鍊间笉姝g‘锛�");
+                }
+                if (outMaterialIndeX <= 0 && !string.IsNullOrEmpty(_MaterialIndeX))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾閿垏鍥惧彿]{_MaterialIndeX}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                }
+                else
+                {
+                    addItem.MaterialIndeX = outMaterialIndeX;
+                }
+
+            }
+
+            if (string.IsNullOrEmpty(_PackageCode))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾鍖呰鍙穄{_PackageCode}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_PackageCode))
+            {
+                addItem.PackageCode = (string)(_PackageCode.Trim());
+            }
+            //if(!string.IsNullOrEmpty(_MachineXCenter))
+            //{
+            //      addItem.MachineXCenter = (float)(_MachineXCenter.Trim());
+            // }
+            //if(!string.IsNullOrEmpty(_MachineYCenter))
+            //{
+            //      addItem.MachineYCenter = (float)(_MachineYCenter.Trim());
+            // }
+            //if(!string.IsNullOrEmpty(_MachineZCenter))
+            //{
+            //      addItem.MachineZCenter = (float)(_MachineZCenter.Trim());
+            // }
+            if (!string.IsNullOrEmpty(_Sequence))
+            {
+                if (!int.TryParse(_Sequence, out int outSequence) && !string.IsNullOrEmpty(_Sequence))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾灞傛暟]{_Sequence}鍊间笉姝g‘锛�");
+                }
+                if (outSequence <= 0 && !string.IsNullOrEmpty(_Sequence))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾灞傛暟]{_Sequence}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                }
+                else
+                {
+                    addItem.Sequence = outSequence;
+                }
+
+            }
+            if (!string.IsNullOrEmpty(_Shelf))
+            {
+                if (!int.TryParse(_Shelf, out int outShelf) && !string.IsNullOrEmpty(_Shelf))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾娆″簭]{_Shelf}鍊间笉姝g‘锛�");
+                }
+                if (outShelf <= 0 && !string.IsNullOrEmpty(_Shelf))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾娆″簭]{_Shelf}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                }
+                else
+                {
+                    addItem.Shelf = outShelf;
+                }
+
+            }
+            //if(!string.IsNullOrEmpty(_Rotation))
+            //{
+            //      addItem.Rotation = (float)(_Rotation.Trim());
+            // }
+            //if(!string.IsNullOrEmpty(_Info1))
+            //{
+            //      addItem.Info1 = (float)(_Info1.Trim());
+            // }
+            //if(!string.IsNullOrEmpty(_Info2))
+            //{
+            //      addItem.Info2 = (float)(_Info2.Trim());
+            // }
+            //if(!string.IsNullOrEmpty(_Info3))
+            //{
+            //      addItem.Info3 = (float)(_Info3.Trim());
+            // }
+            #endregion
+
+
+            details.Add(addItem);
+        }
+        //楠岄噸
+        await CheckExisitForImport(details);
+        return details;
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐗堟湰涓嬭浇鎵规鏁版嵁鐨凟xcel瀵煎叆妯℃澘
+    /// </summary>
+    /// <returns>涓嬭浇鐨勬ā鏉挎枃浠�</returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "DownloadExcelTemplate")]
+    [Description("Mes_BatchOrderUPI_New/DownloadExcelTemplate")]
+    public IActionResult DownloadExcelTemplate()
+    {
+        string _path = TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増璺緞 + $"\\鎵规鏁版嵁{TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増鍚嶇О鍚庣紑}.xlsx";
+        var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鎵规鏁版嵁).xlsx", Encoding.GetEncoding("UTF-8"));
+        return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
+    }
+
+    #endregion
+
+    #region 绉佹湁鏂规硶
+
+    /// <summary>
+    /// 鍏叡鏌ヨ鎵规鏁版嵁鏉′欢
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    private ISugarQueryable<Mes_BatchOrderUPI_NewOutput> CommonPageFilter(Mes_BatchOrderUPI_NewInput input)
+    {
+        var query = _rep.AsQueryable()
+            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
+                u.PlanNo.Contains(input.SearchKey.Trim())
+                || u.OrderId.Contains(input.SearchKey.Trim())
+                || u.UPI.Contains(input.SearchKey.Trim())
+                || u.DetailName.Contains(input.SearchKey.Trim())
+                || u.Matgrid.Contains(input.SearchKey.Trim())
+                || u.PackageCode.Contains(input.SearchKey.Trim())
+                || u.CreateUserName.Contains(input.SearchKey.Trim())
+                || u.UpdateUserName.Contains(input.SearchKey.Trim())
+            )
+            .WhereIF(input.AreaCode.HasValue, u => u.AreaCode == input.AreaCode)
+            .WhereIF(input.UpiStatus.HasValue, u => u.UpiStatus == input.UpiStatus)
+            .WhereIF(!string.IsNullOrWhiteSpace(input.PlanNo), u => u.PlanNo.Contains(input.PlanNo.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.OrderId), u => u.OrderId.Contains(input.OrderId.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.UPI), u => u.UPI.Contains(input.UPI.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.DetailName.Contains(input.DetailName.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.Matgrid), u => u.Matgrid.Contains(input.Matgrid.Trim()))
+            .WhereIF(input.IsEB > 0, u => u.IsEB == input.IsEB)
+            .WhereIF(input.DRNum > 0, u => u.DRNum == input.DRNum)
+            .WhereIF(input.IsPA > 0, u => u.IsPA == input.IsPA)
+            .WhereIF(input.MaterialIndeX > 0, u => u.MaterialIndeX == input.MaterialIndeX)
+            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
+            .WhereIF(input.Sequence > 0, u => u.Sequence == input.Sequence)
+            .WhereIF(input.Shelf > 0, u => u.Shelf == input.Shelf)
+            .Select<Mes_BatchOrderUPI_NewOutput>();
+        return query;
+    }
+
+    /// <summary>
+    /// 閲嶅鎬ч獙璇�
+    /// </summary>
+    /// <param name="input">楠岃瘉瀵硅薄</param>
+    /// <param name="isEdit">鏄惁鏄紪杈�</param>
+    /// <returns></returns>
+    private async Task CheckExist(Mes_BatchOrderUPI_New input, bool isEdit = false)
+    {
+
+
+
+        //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲�
+
+
+        //娌℃湁閰嶇疆鍗曠嫭鏍¢獙锛屼笉闇�瑕侀獙閲�
+    }
+
+    /// <summary>
+    /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇�
+    /// </summary>
+    /// <param name="inputs"></param>
+    /// <returns></returns>
+    private async Task CheckExisitForImport(List<Mes_BatchOrderUPI_New> inputs)
+    {
+        if (inputs?.Count <= 0)
+        {
+            throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+        }
+        //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+
+
+
+
+
+
+
+
+        //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+
+
+
+    }
+    #endregion
+
+}
+
diff --git "a/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\211\271\346\254\241\346\225\260\346\215\256\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\211\271\346\254\241\346\225\260\346\215\256\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..4dc5348
--- /dev/null
+++ "b/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\211\271\346\254\241\346\225\260\346\215\256\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ

--
Gitblit v1.9.3