From aef846861811f23b81efaf22f058a4da6b8d92ec Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 02 12月 2024 16:03:35 +0800
Subject: [PATCH] 11

---
 LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordPackageProcess.ts                                                    |   78 ++
 LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/component/editDialog.vue                            |  204 +++++
 LA24030_LuLiPackageLine_Web/public/config.js                                                                                        |    4 
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessInput.cs          |  219 ++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessOutput.cs         |   85 ++
 LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/index.vue                                           |  301 ++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/WmsRecordUpiProcessService.cs            |  200 +++++
 LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiProcess.ts                                                        |   78 ++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessInput.cs  |  177 ++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessOutput.cs |   70 +
 LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/component/editDialog.vue                                |  227 ++++++
 LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/index.vue                                               |  322 ++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/WmsRecordPackageProcessService.cs    |  194 +++++
 13 files changed, 2,157 insertions(+), 2 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Web/public/config.js b/LA24030_LuLiPackageLine_Web/public/config.js
index 086194f..e888e9b 100644
--- a/LA24030_LuLiPackageLine_Web/public/config.js
+++ b/LA24030_LuLiPackageLine_Web/public/config.js
@@ -4,6 +4,6 @@
   "VITE_OPEN_CDN": "false",
   "VITE_PUBLIC_PATH": "",
   "VITE_SM_PUBLIC_KEY": "0484C7466D950E120E5ECE5DD85D0C90EAA85081A3A2BD7C57AE6DC822EFCCBD66620C67B0103FC8DD280E36C3B282977B722AAEC3C56518EDCEBAFB72C5A05312",
-  //"VITE_API_URL": "http://localhost:5005"
-  "VITE_API_URL": "http://172.17.1.111:5005"  //姝e紡鍦板潃
+  "VITE_API_URL": "http://localhost:5005"
+  //"VITE_API_URL": "http://172.17.1.111:5005"  //姝e紡鍦板潃
 } 
\ No newline at end of file
diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordPackageProcess.ts b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordPackageProcess.ts
new file mode 100644
index 0000000..cb30d59
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordPackageProcess.ts
@@ -0,0 +1,78 @@
+锘縤mport request from '/@/utils/request';
+enum Api {
+  AddWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/add',
+  DeleteWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/delete',
+  UpdateWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/update',
+  PageWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/page',
+  ListWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/list',
+  DetailWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/detail',
+  ImportExcelWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/importExcel',
+  DownloadExcelTemplateWmsRecordPackageProcess = '/api/wmsRecordPackageProcess/downloadExcelTemplate',
+}
+
+// 澧炲姞鍖呰繃绋嬪饱鍘�
+export const addWmsRecordPackageProcess = (params?: any) =>
+	request({
+		url: Api.AddWmsRecordPackageProcess,
+		method: 'post',
+		data: params
+	});
+
+// 鍒犻櫎鍖呰繃绋嬪饱鍘�
+export const deleteWmsRecordPackageProcess = (params?: any) => 
+	request({
+			url: Api.DeleteWmsRecordPackageProcess,
+			method: 'post',
+			data: params
+		});
+
+// 缂栬緫鍖呰繃绋嬪饱鍘�
+export const updateWmsRecordPackageProcess = (params?: any) => 
+	request({
+			url: Api.UpdateWmsRecordPackageProcess,
+			method: 'post',
+			data: params
+		});
+
+// 瀵煎叆鍖呰繃绋嬪饱鍘�
+export const importExcelWmsRecordPackageProcess = (params?: any) =>
+	request({
+		url: Api.ImportExcelWmsRecordPackageProcess,
+		method: 'post',
+		data: params
+	});
+
+// 涓嬭浇瀵煎叆鍖呰繃绋嬪饱鍘嗘ā鏉�
+export const downloadExcelTemplateWmsRecordPackageProcess = (params?: any) => 
+	request({
+			url: Api.DownloadExcelTemplateWmsRecordPackageProcess,
+			method: 'get',
+			data: params,
+			responseType: 'blob'
+		});
+
+
+// 鍒嗛〉鏌ヨ鍖呰繃绋嬪饱鍘�
+export const pageWmsRecordPackageProcess = (params?: any) => 
+	request({
+			url: Api.PageWmsRecordPackageProcess,
+			method: 'post',
+			data: params
+		});
+
+// 涓嶅垎椤垫煡璇㈠寘杩囩▼灞ュ巻
+export const listWmsRecordPackageProcess = (params?: any) => 
+	request({
+			url: Api.ListWmsRecordPackageProcess,
+			method: 'get',
+			data: params
+		});
+
+// 璇︽儏鍖呰繃绋嬪饱鍘�
+export const detailWmsRecordPackageProcess = (id: any) => 
+	request({
+			url: Api.DetailWmsRecordPackageProcess,
+			method: 'get',
+			data: { id }
+		});
+
diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiProcess.ts b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiProcess.ts
new file mode 100644
index 0000000..c1a5789
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiProcess.ts
@@ -0,0 +1,78 @@
+锘縤mport request from '/@/utils/request';
+enum Api {
+  AddWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/add',
+  DeleteWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/delete',
+  UpdateWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/update',
+  PageWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/page',
+  ListWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/list',
+  DetailWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/detail',
+  ImportExcelWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/importExcel',
+  DownloadExcelTemplateWmsRecordUpiProcess = '/api/wmsRecordUpiProcess/downloadExcelTemplate',
+}
+
+// 澧炲姞鏉夸欢杩囩▼灞ュ巻
+export const addWmsRecordUpiProcess = (params?: any) =>
+	request({
+		url: Api.AddWmsRecordUpiProcess,
+		method: 'post',
+		data: params
+	});
+
+// 鍒犻櫎鏉夸欢杩囩▼灞ュ巻
+export const deleteWmsRecordUpiProcess = (params?: any) => 
+	request({
+			url: Api.DeleteWmsRecordUpiProcess,
+			method: 'post',
+			data: params
+		});
+
+// 缂栬緫鏉夸欢杩囩▼灞ュ巻
+export const updateWmsRecordUpiProcess = (params?: any) => 
+	request({
+			url: Api.UpdateWmsRecordUpiProcess,
+			method: 'post',
+			data: params
+		});
+
+// 瀵煎叆鏉夸欢杩囩▼灞ュ巻
+export const importExcelWmsRecordUpiProcess = (params?: any) =>
+	request({
+		url: Api.ImportExcelWmsRecordUpiProcess,
+		method: 'post',
+		data: params
+	});
+
+// 涓嬭浇瀵煎叆鏉夸欢杩囩▼灞ュ巻妯℃澘
+export const downloadExcelTemplateWmsRecordUpiProcess = (params?: any) => 
+	request({
+			url: Api.DownloadExcelTemplateWmsRecordUpiProcess,
+			method: 'get',
+			data: params,
+			responseType: 'blob'
+		});
+
+
+// 鍒嗛〉鏌ヨ鏉夸欢杩囩▼灞ュ巻
+export const pageWmsRecordUpiProcess = (params?: any) => 
+	request({
+			url: Api.PageWmsRecordUpiProcess,
+			method: 'post',
+			data: params
+		});
+
+// 涓嶅垎椤垫煡璇㈡澘浠惰繃绋嬪饱鍘�
+export const listWmsRecordUpiProcess = (params?: any) => 
+	request({
+			url: Api.ListWmsRecordUpiProcess,
+			method: 'get',
+			data: params
+		});
+
+// 璇︽儏鏉夸欢杩囩▼灞ュ巻
+export const detailWmsRecordUpiProcess = (id: any) => 
+	request({
+			url: Api.DetailWmsRecordUpiProcess,
+			method: 'get',
+			data: { id }
+		});
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/component/editDialog.vue
new file mode 100644
index 0000000..3d6ba72
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/component/editDialog.vue
@@ -0,0 +1,204 @@
+锘�<template>
+	<div class="wmsRecordPackageProcess-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="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="鐢熶骇鍗曞彿" prop="info5">
+							<el-input v-model="ruleForm.info5" placeholder="璇疯緭鍏ョ敓浜у崟鍙�" maxlength="60" 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="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="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="upiFlag">
+							<el-select clearable v-model="ruleForm.upiFlag" placeholder="璇烽�夋嫨鏍囪">
+								<el-option v-for="(item,index) in  getEnumUpiFlagData" :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="location">
+							<el-input v-model="ruleForm.location" placeholder="璇疯緭鍏ヤ綅缃�" maxlength="255" 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="operRemark">
+							<el-input v-model="ruleForm.operRemark" placeholder="璇疯緭鍏ュ娉�" maxlength="100" 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 { addWmsRecordPackageProcess, updateWmsRecordPackageProcess, detailWmsRecordPackageProcess } from "/@/api/main/ReportCenter/wmsRecordPackageProcess";
+	import { getAPI } from '/@/utils/axios-utils';
+	import { SysEnumApi } from '/@/api-services/api';
+
+	const getEnumUpiStatusData = ref<any>([]);
+	const getEnumUpiFlagData = 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>({
+		packageCode: [{required: true, message: '璇疯緭鍏ュ寘瑁呭彿锛�', trigger: 'blur',},],
+		planNo: [{required: true, message: '璇疯緭鍏ユ壒娆″彿锛�', trigger: 'blur',},],
+		orderId: [{required: true, message: '璇疯緭鍏ヨ鍗曞彿锛�', trigger: 'blur',},],
+		upiStatus: [{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 detailWmsRecordPackageProcess(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 addWmsRecordPackageProcess(values);
+				} else {
+					title='缂栬緫';
+					ret = await updateWmsRecordPackageProcess(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 () => {
+			getEnumUpiStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
+			getEnumUpiFlagData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiFlagEnum')).data.result ?? [];
+	});
+
+	//灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠�
+	defineExpose({ openDialog });
+</script>
+
+
+
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/index.vue
new file mode 100644
index 0000000..8dda1d4
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordPackageProcess/index.vue
@@ -0,0 +1,301 @@
+锘�<template>
+  <div class="wmsRecordPackageProcess-container">
+    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> 
+      <el-form :model="queryParamsWmsRecordPackageProcess" 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="queryParamsWmsRecordPackageProcess.searchKey" clearable="" placeholder="鍖呰鍙�,鐢熶骇鍗曞彿,鎵规鍙�,璁㈠崟鍙�,浣嶇疆,澶囨敞,鍒涘缓浜�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="鍖呰鍙�">
+              <el-input v-model="queryParamsWmsRecordPackageProcess.packageCode" clearable="" placeholder="璇疯緭鍏ュ寘瑁呭彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="鐢熶骇鍗曞彿">
+              <el-input v-model="queryParamsWmsRecordPackageProcess.info5" clearable="" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="鎵规鍙�">
+              <el-input v-model="queryParamsWmsRecordPackageProcess.planNo" clearable="" placeholder="璇疯緭鍏ユ壒娆″彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="璁㈠崟鍙�">
+              <el-input v-model="queryParamsWmsRecordPackageProcess.orderId" clearable="" placeholder="璇疯緭鍏ヨ鍗曞彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="鍖呯姸鎬�">
+              <el-select clearable="" v-model="queryParamsWmsRecordPackageProcess.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="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="鏍囪">
+              <el-select clearable="" v-model="queryParamsWmsRecordPackageProcess.upiFlag" placeholder="璇烽�夋嫨鏍囪">
+                <el-option v-for="(item,index) in getEnumUpiFlagData_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="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="浣嶇疆">
+              <el-input v-model="queryParamsWmsRecordPackageProcess.location" clearable="" placeholder="璇疯緭鍏ヤ綅缃�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordPackageProcess">
+            <el-form-item label="澶囨敞">
+              <el-input v-model="queryParamsWmsRecordPackageProcess.operRemark" 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="handleQueryWmsRecordPackageProcess" v-auth="'wmsRecordPackageProcess:page'" :disabled="disabled_btnWmsRecordPackageProcess"> 鏌ヨ </el-button>
+                      <el-button icon="ele-Refresh" @click="resetWmsRecordPackageProcess"> 閲嶇疆 </el-button>
+                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsRecordPackageProcess" v-if="!showAdvanceQueryUIWmsRecordPackageProcess" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button>
+                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsRecordPackageProcess" v-if="showAdvanceQueryUIWmsRecordPackageProcess" style="margin-left:5px;"> 闅愯棌 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsRecordPackageProcess" v-auth="'wmsRecordPackageProcess:add'"> 鏂板 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelWmsRecordPackageProcess"  v-auth="'wmsRecordPackageProcess: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="tableRefWmsRecordPackageProcess"
+				:data="tableDataWmsRecordPackageProcess"
+				style="width: 100%"
+				v-loading="loadingWmsRecordPackageProcess"
+				tooltip-effect="light"
+                				row-key="id"
+                @sort-change="sortChangeWmsRecordPackageProcess"
+				border="">
+        <el-table-column type="index" label="搴忓彿" width="55" align="center"/>
+        <el-table-column prop="packageCode" label="鍖呰鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="info5" label="鐢熶骇鍗曞彿"  show-overflow-tooltip="" />
+        <el-table-column prop="planNo" label="鎵规鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="orderId" label="璁㈠崟鍙�"  show-overflow-tooltip="" />
+          <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="upiFlag" label="鏍囪"  show-overflow-tooltip="" >
+            <template #default="scope">
+              <el-tag>{{ getEnumDesc(scope.row.upiFlag, getEnumUpiFlagData_Index)}}</el-tag>
+            </template>
+          </el-table-column>
+        <el-table-column prop="location" label="浣嶇疆"  show-overflow-tooltip="" />
+        <el-table-column prop="operRemark" label="澶囨敞"  show-overflow-tooltip="" />
+         <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
+        <el-table-column prop="createUserName" label="鍒涘缓浜�"  show-overflow-tooltip="" />
+        <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsRecordPackageProcess:update') || auth('wmsRecordPackageProcess:delete')">
+          <template #default="scope">
+            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsRecordPackageProcess(scope.row)" v-auth="'wmsRecordPackageProcess:update'"> 缂栬緫 </el-button>
+            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsRecordPackageProcess(scope.row)" v-auth="'wmsRecordPackageProcess:delete'"> 鍒犻櫎 </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+				v-model:currentPage="tableParamsWmsRecordPackageProcess.page"
+				v-model:page-size="tableParamsWmsRecordPackageProcess.pageSize"
+				:total="tableParamsWmsRecordPackageProcess.total"
+				:page-sizes="[10, 20, 50, 100, 200, 500]"
+				small=""
+				background=""
+				@size-change="handleSizeChangeWmsRecordPackageProcess"
+				@current-change="handleCurrentChangeWmsRecordPackageProcess"
+				layout="total, sizes, prev, pager, next, jumper"
+	/>
+      <printDialogWmsRecordPackageProcess
+        ref="printDialogRefWmsRecordPackageProcess"
+        :title="printWmsRecordPackageProcessTitle"
+        @reloadTable="handleQueryWmsRecordPackageProcess" />
+      <editDialogWmsRecordPackageProcess
+        ref="editDialogRefWmsRecordPackageProcess"
+        :title="editWmsRecordPackageProcessTitle"
+        @reloadTable="handleQueryWmsRecordPackageProcess"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script lang="ts" setup="" name="wmsRecordPackageProcess">
+  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 { exportPageExcel } from '/@/utils/exportPageExcel' //寮曞叆瀵煎嚭鏂规硶
+
+
+  import printDialogWmsRecordPackageProcess from '/@/views/system/print/component/hiprint/preview.vue'
+  import { pageWmsRecordPackageProcess, deleteWmsRecordPackageProcess,importExcelWmsRecordPackageProcess,downloadExcelTemplateWmsRecordPackageProcess } from '/@/api/main/ReportCenter/wmsRecordPackageProcess';
+	import { getAPI } from '/@/utils/axios-utils';
+	import { SysEnumApi } from '/@/api-services/api';
+  import commonFunction from '/@/utils/commonFunction';
+
+  const getEnumUpiStatusData_Index = ref<any>([]);
+  const getEnumUpiFlagData_Index = ref<any>([]);
+
+	const { getEnumDesc } = commonFunction();
+  
+  /***************************************************[鍖呰繃绋嬪饱鍘嗘搷浣淽寮�濮�***************************************************/
+  const showAdvanceQueryUIWmsRecordPackageProcess = ref(false);
+  const tableRefWmsRecordPackageProcess = ref(null);
+  const printDialogRefWmsRecordPackageProcess = ref();
+  const editDialogRefWmsRecordPackageProcess = ref();
+  const loadingWmsRecordPackageProcess = ref(false);
+  const disabled_btnWmsRecordPackageProcess = ref(false);
+  const tableDataWmsRecordPackageProcess = ref<any>([]);
+  const queryParamsWmsRecordPackageProcess = ref<any>({});
+  const tableParamsWmsRecordPackageProcess = ref({
+    page: 1,
+    pageSize: 10,
+    total: 0,
+  });
+
+  const printWmsRecordPackageProcessTitle = ref("");
+  const editWmsRecordPackageProcessTitle = ref("");
+
+  // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
+  const changeAdvanceQueryUIWmsRecordPackageProcess = () => {
+    showAdvanceQueryUIWmsRecordPackageProcess.value = !showAdvanceQueryUIWmsRecordPackageProcess.value;
+  }
+
+  // 鏌ヨ鍖呰繃绋嬪饱鍘�
+  const handleQueryWmsRecordPackageProcess = async () => {
+    loadingWmsRecordPackageProcess.value = true;
+    disabled_btnWmsRecordPackageProcess.value = true;
+    var res = await pageWmsRecordPackageProcess(Object.assign(queryParamsWmsRecordPackageProcess.value, tableParamsWmsRecordPackageProcess.value));
+    if(res.data.type=="success"){
+      tableDataWmsRecordPackageProcess.value = res.data.result?.items ?? [];
+      tableParamsWmsRecordPackageProcess.value.total = res.data.result?.total;
+    }
+    loadingWmsRecordPackageProcess.value = false;
+    disabled_btnWmsRecordPackageProcess.value = false;
+  };
+
+  // 閲嶇疆鍖呰繃绋嬪饱鍘嗘煡璇�
+  const resetWmsRecordPackageProcess = async () => {
+    queryParamsWmsRecordPackageProcess.value = {}
+  };
+
+  // 鍖呰繃绋嬪饱鍘嗗垪鎺掑簭
+  const sortChangeWmsRecordPackageProcess = async (column: any) => {
+	queryParamsWmsRecordPackageProcess.value.field = column.prop;
+	queryParamsWmsRecordPackageProcess.value.order = column.order;
+	await handleQueryWmsRecordPackageProcess();
+  };
+
+  // 鎵撳紑鏂板鍖呰繃绋嬪饱鍘嗛〉闈�
+  const openAddWmsRecordPackageProcess = () => {
+    editWmsRecordPackageProcessTitle.value = '娣诲姞鍖呰繃绋嬪饱鍘�';
+    editDialogRefWmsRecordPackageProcess.value.openDialog(1,{});
+  };
+
+  // 鎵撳紑鎵撳嵃鍖呰繃绋嬪饱鍘嗛〉闈�
+  const openPrintWmsRecordPackageProcess = async (row: any) => {
+    printWmsRecordPackageProcessTitle.value = '鎵撳嵃鍖呰繃绋嬪饱鍘�';
+  }
+  
+  // 鎵撳紑缂栬緫鍖呰繃绋嬪饱鍘嗛〉闈�
+  const openEditWmsRecordPackageProcess = (row: any) => {
+    editWmsRecordPackageProcessTitle.value = '缂栬緫鍖呰繃绋嬪饱鍘�';
+    editDialogRefWmsRecordPackageProcess.value.openDialog(2,row);
+  };
+
+  // 鍒犻櫎鍖呰繃绋嬪饱鍘�
+  const delWmsRecordPackageProcess = (row: any) => {
+    ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", {
+    confirmButtonText: "纭畾",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+  .then(async () => {
+    loadingWmsRecordPackageProcess.value = true;
+    var ret = await deleteWmsRecordPackageProcess(row);
+    if(ret.data.type=="success"){
+        ElMessage.success("鍒犻櫎鎴愬姛");
+	}
+    loadingWmsRecordPackageProcess.value = false;
+    handleQueryWmsRecordPackageProcess();
+  })
+  .catch(() => {});
+  };
+
+  // 鏀瑰彉鍖呰繃绋嬪饱鍘嗛〉闈㈠閲�
+  const handleSizeChangeWmsRecordPackageProcess = (val: number) => {
+    tableParamsWmsRecordPackageProcess.value.pageSize = val;
+    handleQueryWmsRecordPackageProcess();
+  };
+
+  // 鏀瑰彉鍖呰繃绋嬪饱鍘嗛〉鐮佸簭鍙�
+  const handleCurrentChangeWmsRecordPackageProcess = (val: number) => {
+    tableParamsWmsRecordPackageProcess.value.page = val;
+    handleQueryWmsRecordPackageProcess();
+  };
+
+/***************************************************[鍖呰繃绋嬪饱鍘嗘搷浣淽缁撴潫***************************************************/
+/***************************************************[鍖呰繃绋嬪饱鍘嗗鍑篯寮�濮�***************************************************/
+//瀹氫箟褰撳墠椤甸潰鐨勬柟娉曠粍
+const functionMapWmsRecordPackageProcess = {
+      getEnumUpiStatusData_Index,
+      getEnumUpiFlagData_Index,
+      formatDate_T_Date,
+      formatDate_T_Time
+};
+//鐐瑰嚮瀵煎嚭鎸夐挳
+const handleExportExcelWmsRecordPackageProcess = async (formData:Blob) => {
+    loadingWmsRecordPackageProcess.value = true;
+    disabled_btnWmsRecordPackageProcess.value = true;
+    var new_tableParamsWmsRecordPackageProcess=JSON.parse(JSON.stringify(tableParamsWmsRecordPackageProcess.value));
+    new_tableParamsWmsRecordPackageProcess.page = 1;
+    new_tableParamsWmsRecordPackageProcess.pageSize = 100000;
+    var res = await pageWmsRecordPackageProcess(Object.assign(queryParamsWmsRecordPackageProcess.value, new_tableParamsWmsRecordPackageProcess));
+    if(res.data.type=="success"){
+      exportExcelWmsRecordPackageProcess(res.data.result?.items ?? []);
+    }
+    loadingWmsRecordPackageProcess.value = false;
+    disabled_btnWmsRecordPackageProcess.value = false;
+};
+//瀵煎嚭
+const exportExcelWmsRecordPackageProcess  = async (exportDataList:Array) => {
+  exportPageExcel(exportDataList, tableRefWmsRecordPackageProcess,"鍖呰繃绋嬪饱鍘�",functionMapWmsRecordPackageProcess);
+};
+/***************************************************[鍖呰繃绋嬪饱鍘嗗鍑篯缁撴潫***************************************************/
+  // 鍖呰繃绋嬪饱鍘嗛〉闈㈠姞杞芥椂
+  onMounted(async () => {
+    getEnumUpiStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
+    getEnumUpiFlagData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiFlagEnum')).data.result ?? [];
+  });
+
+  handleQueryWmsRecordPackageProcess();
+</script>
+<style scoped>
+:deep(.el-input),
+:deep(.el-select),
+:deep(.el-input-number) {
+	width: 100%;
+}
+</style>
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/component/editDialog.vue
new file mode 100644
index 0000000..3aab986
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/component/editDialog.vue
@@ -0,0 +1,227 @@
+锘�<template>
+	<div class="wmsRecordUpiProcess-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="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="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="鐢熶骇鍗曞彿" prop="info5">
+							<el-input v-model="ruleForm.info5" placeholder="璇疯緭鍏ョ敓浜у崟鍙�" maxlength="60" 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="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="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="upiFlag">
+							<el-select clearable v-model="ruleForm.upiFlag" placeholder="璇烽�夋嫨鏍囪">
+								<el-option v-for="(item,index) in  getEnumUpiFlagData" :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="location">
+							<el-input v-model="ruleForm.location" placeholder="璇疯緭鍏ヤ綅缃�" maxlength="255" 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="info18">
+							<el-input v-model="ruleForm.info18" placeholder="璇疯緭鍏ユ潗鏂�" maxlength="60" 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="operRemark">
+							<el-input v-model="ruleForm.operRemark" placeholder="璇疯緭鍏ュ娉�" maxlength="100" 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 { addWmsRecordUpiProcess, updateWmsRecordUpiProcess, detailWmsRecordUpiProcess } from "/@/api/main/ReportCenter/wmsRecordUpiProcess";
+	import { getAPI } from '/@/utils/axios-utils';
+	import { SysEnumApi } from '/@/api-services/api';
+
+	const getEnumUpiStatusData = ref<any>([]);
+	const getEnumUpiFlagData = 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>({
+		upi: [{required: true, message: '璇疯緭鍏ラ儴浠舵潯鐮侊紒', trigger: 'blur',},],
+		packageCode: [{required: true, message: '璇疯緭鍏ュ寘瑁呭彿锛�', trigger: 'blur',},],
+		planNo: [{required: true, message: '璇疯緭鍏ユ壒娆″彿锛�', trigger: 'blur',},],
+		orderId: [{required: true, message: '璇疯緭鍏ヨ鍗曞彿锛�', trigger: 'blur',},],
+		upiStatus: [{required: true, message: '璇烽�夋嫨鏉挎枡鐘舵�侊紒', trigger: 'change',},],
+		detailName: [{required: true, message: '璇疯緭鍏ラ儴浠跺悕绉帮紒', trigger: 'blur',},],
+	});
+
+	/*
+	 * 鎵撳紑寮圭獥
+	 * @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 detailWmsRecordUpiProcess(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 addWmsRecordUpiProcess(values);
+				} else {
+					title='缂栬緫';
+					ret = await updateWmsRecordUpiProcess(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 () => {
+			getEnumUpiStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
+			getEnumUpiFlagData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiFlagEnum')).data.result ?? [];
+	});
+
+	//灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠�
+	defineExpose({ openDialog });
+</script>
+
+
+
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/index.vue
new file mode 100644
index 0000000..46a57c7
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiProcess/index.vue
@@ -0,0 +1,322 @@
+锘�<template>
+  <div class="wmsRecordUpiProcess-container">
+    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> 
+      <el-form :model="queryParamsWmsRecordUpiProcess" 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="queryParamsWmsRecordUpiProcess.searchKey" clearable="" placeholder="閮ㄤ欢鏉$爜,鍖呰鍙�,鐢熶骇鍗曞彿,鎵规鍙�,璁㈠崟鍙�,浣嶇疆,閮ㄤ欢鍚嶇О,鏉愭枡,澶囨敞,鍒涘缓浜�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="閮ㄤ欢鏉$爜">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.upi" clearable="" placeholder="璇疯緭鍏ラ儴浠舵潯鐮�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="鍖呰鍙�">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.packageCode" clearable="" placeholder="璇疯緭鍏ュ寘瑁呭彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="鐢熶骇鍗曞彿">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.info5" clearable="" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="鎵规鍙�">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.planNo" clearable="" placeholder="璇疯緭鍏ユ壒娆″彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="璁㈠崟鍙�">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.orderId" clearable="" placeholder="璇疯緭鍏ヨ鍗曞彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="鏉挎枡鐘舵��">
+              <el-select clearable="" v-model="queryParamsWmsRecordUpiProcess.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="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="鏍囪">
+              <el-select clearable="" v-model="queryParamsWmsRecordUpiProcess.upiFlag" placeholder="璇烽�夋嫨鏍囪">
+                <el-option v-for="(item,index) in getEnumUpiFlagData_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="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="浣嶇疆">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.location" clearable="" placeholder="璇疯緭鍏ヤ綅缃�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="閮ㄤ欢鍚嶇О">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.detailName" clearable="" placeholder="璇疯緭鍏ラ儴浠跺悕绉�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="鏉愭枡">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.info18" clearable="" placeholder="璇疯緭鍏ユ潗鏂�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiProcess">
+            <el-form-item label="澶囨敞">
+              <el-input v-model="queryParamsWmsRecordUpiProcess.operRemark" 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="handleQueryWmsRecordUpiProcess" v-auth="'wmsRecordUpiProcess:page'" :disabled="disabled_btnWmsRecordUpiProcess"> 鏌ヨ </el-button>
+                      <el-button icon="ele-Refresh" @click="resetWmsRecordUpiProcess"> 閲嶇疆 </el-button>
+                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsRecordUpiProcess" v-if="!showAdvanceQueryUIWmsRecordUpiProcess" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button>
+                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsRecordUpiProcess" v-if="showAdvanceQueryUIWmsRecordUpiProcess" style="margin-left:5px;"> 闅愯棌 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsRecordUpiProcess" v-auth="'wmsRecordUpiProcess:add'"> 鏂板 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelWmsRecordUpiProcess"  v-auth="'wmsRecordUpiProcess: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="tableRefWmsRecordUpiProcess"
+				:data="tableDataWmsRecordUpiProcess"
+				style="width: 100%"
+				v-loading="loadingWmsRecordUpiProcess"
+				tooltip-effect="light"
+                				row-key="id"
+                @sort-change="sortChangeWmsRecordUpiProcess"
+				border="">
+        <el-table-column type="index" label="搴忓彿" width="55" align="center"/>
+        <el-table-column prop="upi" label="閮ㄤ欢鏉$爜"  show-overflow-tooltip="" />
+        <el-table-column prop="packageCode" label="鍖呰鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="info5" label="鐢熶骇鍗曞彿"  show-overflow-tooltip="" />
+        <el-table-column prop="planNo" label="鎵规鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="orderId" label="璁㈠崟鍙�"  show-overflow-tooltip="" />
+          <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="upiFlag" label="鏍囪"  show-overflow-tooltip="" >
+            <template #default="scope">
+              <el-tag>{{ getEnumDesc(scope.row.upiFlag, getEnumUpiFlagData_Index)}}</el-tag>
+            </template>
+          </el-table-column>
+        <el-table-column prop="location" label="浣嶇疆"  show-overflow-tooltip="" />
+        <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О"  show-overflow-tooltip="" />
+        <el-table-column prop="info18" label="鏉愭枡"  show-overflow-tooltip="" />
+        <el-table-column prop="operRemark" label="澶囨敞"  show-overflow-tooltip="" />
+         <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
+        <el-table-column prop="createUserName" label="鍒涘缓浜�"  show-overflow-tooltip="" />
+        <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsRecordUpiProcess:update') || auth('wmsRecordUpiProcess:delete')">
+          <template #default="scope">
+            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsRecordUpiProcess(scope.row)" v-auth="'wmsRecordUpiProcess:update'"> 缂栬緫 </el-button>
+            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsRecordUpiProcess(scope.row)" v-auth="'wmsRecordUpiProcess:delete'"> 鍒犻櫎 </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+				v-model:currentPage="tableParamsWmsRecordUpiProcess.page"
+				v-model:page-size="tableParamsWmsRecordUpiProcess.pageSize"
+				:total="tableParamsWmsRecordUpiProcess.total"
+				:page-sizes="[10, 20, 50, 100, 200, 500]"
+				small=""
+				background=""
+				@size-change="handleSizeChangeWmsRecordUpiProcess"
+				@current-change="handleCurrentChangeWmsRecordUpiProcess"
+				layout="total, sizes, prev, pager, next, jumper"
+	/>
+      <printDialogWmsRecordUpiProcess
+        ref="printDialogRefWmsRecordUpiProcess"
+        :title="printWmsRecordUpiProcessTitle"
+        @reloadTable="handleQueryWmsRecordUpiProcess" />
+      <editDialogWmsRecordUpiProcess
+        ref="editDialogRefWmsRecordUpiProcess"
+        :title="editWmsRecordUpiProcessTitle"
+        @reloadTable="handleQueryWmsRecordUpiProcess"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script lang="ts" setup="" name="wmsRecordUpiProcess">
+  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 { exportPageExcel } from '/@/utils/exportPageExcel' //寮曞叆瀵煎嚭鏂规硶
+
+
+  import printDialogWmsRecordUpiProcess from '/@/views/system/print/component/hiprint/preview.vue'
+  import { pageWmsRecordUpiProcess, deleteWmsRecordUpiProcess,importExcelWmsRecordUpiProcess,downloadExcelTemplateWmsRecordUpiProcess } from '/@/api/main/ReportCenter/wmsRecordUpiProcess';
+	import { getAPI } from '/@/utils/axios-utils';
+	import { SysEnumApi } from '/@/api-services/api';
+  import commonFunction from '/@/utils/commonFunction';
+
+  const getEnumUpiStatusData_Index = ref<any>([]);
+  const getEnumUpiFlagData_Index = ref<any>([]);
+
+	const { getEnumDesc } = commonFunction();
+  
+  /***************************************************[鏉夸欢杩囩▼灞ュ巻鎿嶄綔]寮�濮�***************************************************/
+  const showAdvanceQueryUIWmsRecordUpiProcess = ref(false);
+  const tableRefWmsRecordUpiProcess = ref(null);
+  const printDialogRefWmsRecordUpiProcess = ref();
+  const editDialogRefWmsRecordUpiProcess = ref();
+  const loadingWmsRecordUpiProcess = ref(false);
+  const disabled_btnWmsRecordUpiProcess = ref(false);
+  const tableDataWmsRecordUpiProcess = ref<any>([]);
+  const queryParamsWmsRecordUpiProcess = ref<any>({});
+  const tableParamsWmsRecordUpiProcess = ref({
+    page: 1,
+    pageSize: 10,
+    total: 0,
+  });
+
+  const printWmsRecordUpiProcessTitle = ref("");
+  const editWmsRecordUpiProcessTitle = ref("");
+
+  // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
+  const changeAdvanceQueryUIWmsRecordUpiProcess = () => {
+    showAdvanceQueryUIWmsRecordUpiProcess.value = !showAdvanceQueryUIWmsRecordUpiProcess.value;
+  }
+
+  // 鏌ヨ鏉夸欢杩囩▼灞ュ巻
+  const handleQueryWmsRecordUpiProcess = async () => {
+    loadingWmsRecordUpiProcess.value = true;
+    disabled_btnWmsRecordUpiProcess.value = true;
+    var res = await pageWmsRecordUpiProcess(Object.assign(queryParamsWmsRecordUpiProcess.value, tableParamsWmsRecordUpiProcess.value));
+    if(res.data.type=="success"){
+      tableDataWmsRecordUpiProcess.value = res.data.result?.items ?? [];
+      tableParamsWmsRecordUpiProcess.value.total = res.data.result?.total;
+    }
+    loadingWmsRecordUpiProcess.value = false;
+    disabled_btnWmsRecordUpiProcess.value = false;
+  };
+
+  // 閲嶇疆鏉夸欢杩囩▼灞ュ巻鏌ヨ
+  const resetWmsRecordUpiProcess = async () => {
+    queryParamsWmsRecordUpiProcess.value = {}
+  };
+
+  // 鏉夸欢杩囩▼灞ュ巻鍒楁帓搴�
+  const sortChangeWmsRecordUpiProcess = async (column: any) => {
+	queryParamsWmsRecordUpiProcess.value.field = column.prop;
+	queryParamsWmsRecordUpiProcess.value.order = column.order;
+	await handleQueryWmsRecordUpiProcess();
+  };
+
+  // 鎵撳紑鏂板鏉夸欢杩囩▼灞ュ巻椤甸潰
+  const openAddWmsRecordUpiProcess = () => {
+    editWmsRecordUpiProcessTitle.value = '娣诲姞鏉夸欢杩囩▼灞ュ巻';
+    editDialogRefWmsRecordUpiProcess.value.openDialog(1,{});
+  };
+
+  // 鎵撳紑鎵撳嵃鏉夸欢杩囩▼灞ュ巻椤甸潰
+  const openPrintWmsRecordUpiProcess = async (row: any) => {
+    printWmsRecordUpiProcessTitle.value = '鎵撳嵃鏉夸欢杩囩▼灞ュ巻';
+  }
+  
+  // 鎵撳紑缂栬緫鏉夸欢杩囩▼灞ュ巻椤甸潰
+  const openEditWmsRecordUpiProcess = (row: any) => {
+    editWmsRecordUpiProcessTitle.value = '缂栬緫鏉夸欢杩囩▼灞ュ巻';
+    editDialogRefWmsRecordUpiProcess.value.openDialog(2,row);
+  };
+
+  // 鍒犻櫎鏉夸欢杩囩▼灞ュ巻
+  const delWmsRecordUpiProcess = (row: any) => {
+    ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", {
+    confirmButtonText: "纭畾",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+  .then(async () => {
+    loadingWmsRecordUpiProcess.value = true;
+    var ret = await deleteWmsRecordUpiProcess(row);
+    if(ret.data.type=="success"){
+        ElMessage.success("鍒犻櫎鎴愬姛");
+	}
+    loadingWmsRecordUpiProcess.value = false;
+    handleQueryWmsRecordUpiProcess();
+  })
+  .catch(() => {});
+  };
+
+  // 鏀瑰彉鏉夸欢杩囩▼灞ュ巻椤甸潰瀹归噺
+  const handleSizeChangeWmsRecordUpiProcess = (val: number) => {
+    tableParamsWmsRecordUpiProcess.value.pageSize = val;
+    handleQueryWmsRecordUpiProcess();
+  };
+
+  // 鏀瑰彉鏉夸欢杩囩▼灞ュ巻椤电爜搴忓彿
+  const handleCurrentChangeWmsRecordUpiProcess = (val: number) => {
+    tableParamsWmsRecordUpiProcess.value.page = val;
+    handleQueryWmsRecordUpiProcess();
+  };
+
+/***************************************************[鏉夸欢杩囩▼灞ュ巻鎿嶄綔]缁撴潫***************************************************/
+/***************************************************[鏉夸欢杩囩▼灞ュ巻瀵煎嚭]寮�濮�***************************************************/
+//瀹氫箟褰撳墠椤甸潰鐨勬柟娉曠粍
+const functionMapWmsRecordUpiProcess = {
+      getEnumUpiStatusData_Index,
+      getEnumUpiFlagData_Index,
+      formatDate_T_Date,
+      formatDate_T_Time
+};
+//鐐瑰嚮瀵煎嚭鎸夐挳
+const handleExportExcelWmsRecordUpiProcess = async (formData:Blob) => {
+    loadingWmsRecordUpiProcess.value = true;
+    disabled_btnWmsRecordUpiProcess.value = true;
+    var new_tableParamsWmsRecordUpiProcess=JSON.parse(JSON.stringify(tableParamsWmsRecordUpiProcess.value));
+    new_tableParamsWmsRecordUpiProcess.page = 1;
+    new_tableParamsWmsRecordUpiProcess.pageSize = 100000;
+    var res = await pageWmsRecordUpiProcess(Object.assign(queryParamsWmsRecordUpiProcess.value, new_tableParamsWmsRecordUpiProcess));
+    if(res.data.type=="success"){
+      exportExcelWmsRecordUpiProcess(res.data.result?.items ?? []);
+    }
+    loadingWmsRecordUpiProcess.value = false;
+    disabled_btnWmsRecordUpiProcess.value = false;
+};
+//瀵煎嚭
+const exportExcelWmsRecordUpiProcess  = async (exportDataList:Array) => {
+  exportPageExcel(exportDataList, tableRefWmsRecordUpiProcess,"鏉夸欢杩囩▼灞ュ巻",functionMapWmsRecordUpiProcess);
+};
+/***************************************************[鏉夸欢杩囩▼灞ュ巻瀵煎嚭]缁撴潫***************************************************/
+  // 鏉夸欢杩囩▼灞ュ巻椤甸潰鍔犺浇鏃�
+  onMounted(async () => {
+    getEnumUpiStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
+    getEnumUpiFlagData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiFlagEnum')).data.result ?? [];
+  });
+
+  handleQueryWmsRecordUpiProcess();
+</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/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessInput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessInput.cs
new file mode 100644
index 0000000..b9db89c
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessInput.cs
@@ -0,0 +1,177 @@
+锘縰sing Admin.NET.Core;
+using System.ComponentModel.DataAnnotations;
+
+namespace Admin.NET.Application;
+
+    /// <summary>
+    /// 鍖呰繃绋嬪饱鍘嗗熀纭�杈撳叆鍙傛暟
+    /// </summary>
+    public class WmsRecordPackageProcessBaseInput
+    {
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public virtual string PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鐢熶骇鍗曞彿
+        /// </summary>
+        public virtual string Info5 { get; set; }
+        
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public virtual string PlanNo { get; set; }
+        
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public virtual string OrderId { get; set; }
+        
+        /// <summary>
+        /// 鍖呯姸鎬�
+        /// </summary>
+        public virtual Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 鏍囪
+        /// </summary>
+        public virtual Admin.NET.Application.UpiFlagEnum? UpiFlag { get; set; }
+        
+        /// <summary>
+        /// 浣嶇疆
+        /// </summary>
+        public virtual string Location { get; set; }
+        
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public virtual string OperRemark { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public virtual DateTime? CreateTime { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓浜篒d
+        /// </summary>
+        public virtual long? CreateUserId { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public virtual string CreateUserName { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鍖呰繃绋嬪饱鍘嗗垎椤垫煡璇㈣緭鍏ュ弬鏁�
+    /// </summary>
+    public class WmsRecordPackageProcessInput : BasePageInput
+    {
+        /// <summary>
+        /// 鍏抽敭瀛楁煡璇�
+        /// </summary>
+        public string? SearchKey { get; set; }
+
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public string? PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鐢熶骇鍗曞彿
+        /// </summary>
+        public string? Info5 { get; set; }
+        
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public string? PlanNo { get; set; }
+        
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public string? OrderId { get; set; }
+        
+        /// <summary>
+        /// 鍖呯姸鎬�
+        /// </summary>
+        public Admin.NET.Application.UpiStatusEnum? UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 鏍囪
+        /// </summary>
+        public Admin.NET.Application.UpiFlagEnum? UpiFlag { get; set; }
+        
+        /// <summary>
+        /// 浣嶇疆
+        /// </summary>
+        public string? Location { get; set; }
+        
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? OperRemark { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鍖呰繃绋嬪饱鍘嗗鍔犺緭鍏ュ弬鏁�
+    /// </summary>
+    public class AddWmsRecordPackageProcessInput : WmsRecordPackageProcessBaseInput
+    {
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        [Required(ErrorMessage = "鍖呰鍙蜂笉鑳戒负绌�")]
+        public override string PackageCode { 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 Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鍖呰繃绋嬪饱鍘嗗垹闄よ緭鍏ュ弬鏁�
+    /// </summary>
+    public class DeleteWmsRecordPackageProcessInput : BaseIdInput
+    {
+    }
+
+    /// <summary>
+    /// 鍖呰繃绋嬪饱鍘嗘洿鏂拌緭鍏ュ弬鏁�
+    /// </summary>
+    public class UpdateWmsRecordPackageProcessInput : AddWmsRecordPackageProcessInput
+    {
+        /// <summary>
+        /// 涓婚敭Id
+        /// </summary>
+        [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")]
+        public long Id { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鍖呰繃绋嬪饱鍘嗕富閿煡璇㈣緭鍏ュ弬鏁�
+    /// </summary>
+    public class QueryByIdWmsRecordPackageProcessInput : DeleteWmsRecordPackageProcessInput
+    {
+
+    }
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessOutput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessOutput.cs
new file mode 100644
index 0000000..0806f53
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/Dto/WmsRecordPackageProcessOutput.cs
@@ -0,0 +1,70 @@
+锘縩amespace Admin.NET.Application;
+
+/// <summary>
+/// 鍖呰繃绋嬪饱鍘嗚緭鍑哄弬鏁�
+/// </summary>
+public class WmsRecordPackageProcessOutput
+{
+    /// <summary>
+    /// 涓婚敭Id
+    /// </summary>
+    public long? Id { get; set; }
+    
+    /// <summary>
+    /// 鍖呰鍙�
+    /// </summary>
+    public string PackageCode { get; set; }
+    
+    /// <summary>
+    /// 鐢熶骇鍗曞彿
+    /// </summary>
+    public string Info5 { get; set; }
+    
+    /// <summary>
+    /// 鎵规鍙�
+    /// </summary>
+    public string PlanNo { get; set; }
+    
+    /// <summary>
+    /// 璁㈠崟鍙�
+    /// </summary>
+    public string OrderId { get; set; }
+    
+    /// <summary>
+    /// 鍖呯姸鎬�
+    /// </summary>
+    public Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+    
+    /// <summary>
+    /// 鏍囪
+    /// </summary>
+    public Admin.NET.Application.UpiFlagEnum? UpiFlag { get; set; }
+    
+    /// <summary>
+    /// 浣嶇疆
+    /// </summary>
+    public string Location { get; set; }
+    
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    public string OperRemark { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓鏃堕棿
+    /// </summary>
+    public DateTime? CreateTime { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓浜篒d
+    /// </summary>
+    public long? CreateUserId { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓浜�
+    /// </summary>
+    public string CreateUserName { get; set; }
+    
+    }
+ 
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/WmsRecordPackageProcessService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/WmsRecordPackageProcessService.cs
new file mode 100644
index 0000000..cf0b48a
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordPackageProcess/WmsRecordPackageProcessService.cs
@@ -0,0 +1,194 @@
+锘縰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.ReportCenterGroupName, Order = 100)]
+public class WmsRecordPackageProcessService : IDynamicApiController, ITransient
+{
+    private readonly SqlSugarRepository<WmsRecordPackageProcess> _rep;
+    public WmsRecordPackageProcessService(SqlSugarRepository<WmsRecordPackageProcess> rep)
+    {
+        _rep = rep;
+    }
+
+    /// <summary>
+    /// 鍒嗛〉鏌ヨ鍖呰繃绋嬪饱鍘�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Page")]
+    [Description("WmsRecordPackageProcess/Page")]
+    public async Task<SqlSugarPagedList<WmsRecordPackageProcessOutput>> Page(WmsRecordPackageProcessInput 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("WmsRecordPackageProcess/List")]
+    public async Task<List<WmsRecordPackageProcessOutput>> List([FromQuery] WmsRecordPackageProcessInput input)
+    {
+        var query = CommonPageFilter(input);
+        return await query.OrderBuilder(input, "", "Id").Select<WmsRecordPackageProcessOutput>().ToListAsync();
+    }
+
+    /// <summary>
+    /// 澧炲姞鍖呰繃绋嬪饱鍘�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Add")]
+    [Description("WmsRecordPackageProcess/Add")]
+    public async Task<long> Add(AddWmsRecordPackageProcessInput input)
+    {
+        var entity = input.Adapt<WmsRecordPackageProcess>();
+
+        //閲嶅鎬ч獙璇�
+        await CheckExist(entity);
+
+        await _rep.InsertAsync(entity);
+        return entity.Id;
+    }
+
+    /// <summary>
+    /// 鍒犻櫎鍖呰繃绋嬪饱鍘�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Delete")]
+    [Description("WmsRecordPackageProcess/Delete")]
+    public async Task Delete(DeleteWmsRecordPackageProcessInput 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("WmsRecordPackageProcess/Update")]
+    public async Task Update(UpdateWmsRecordPackageProcessInput input)
+    {
+        var entity = input.Adapt<WmsRecordPackageProcess>();
+
+        //閲嶅鎬ч獙璇�
+        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("WmsRecordPackageProcess/Detail")]
+    public async Task<WmsRecordPackageProcess> Detail([FromQuery] QueryByIdWmsRecordPackageProcessInput input)
+    {
+        return await _rep.GetFirstAsync(u => u.Id == input.Id);
+    }
+
+
+
+
+
+
+    #region 绉佹湁鏂规硶
+
+    /// <summary>
+    /// 鍏叡鏌ヨ鍖呰繃绋嬪饱鍘嗘潯浠�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    private ISugarQueryable<WmsRecordPackageProcessOutput> CommonPageFilter(WmsRecordPackageProcessInput input)
+    {
+        var query = _rep.AsQueryable()
+            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
+                u.PackageCode.Contains(input.SearchKey.Trim())
+                || u.Info5.Contains(input.SearchKey.Trim())
+                || u.PlanNo.Contains(input.SearchKey.Trim())
+                || u.OrderId.Contains(input.SearchKey.Trim())
+                || u.Location.Contains(input.SearchKey.Trim())
+                || u.OperRemark.Contains(input.SearchKey.Trim())
+                || u.CreateUserName.Contains(input.SearchKey.Trim())
+            )
+            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
+            .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(input.UpiStatus.HasValue, u => u.UpiStatus == input.UpiStatus)
+            .WhereIF(input.UpiFlag.HasValue, u => u.UpiFlag == input.UpiFlag)
+            .WhereIF(!string.IsNullOrWhiteSpace(input.Location), u => u.Location.Contains(input.Location.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.OperRemark), u => u.OperRemark.Contains(input.OperRemark.Trim()))
+            .Select<WmsRecordPackageProcessOutput>();
+        return query;
+       }
+
+        /// <summary>
+        /// 閲嶅鎬ч獙璇�
+        /// </summary>
+        /// <param name="input">楠岃瘉瀵硅薄</param>
+        /// <param name="isEdit">鏄惁鏄紪杈�</param>
+        /// <returns></returns>
+        private async Task CheckExist( WmsRecordPackageProcess input,bool isEdit=false)
+        {
+           
+
+
+            //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲�
+
+           
+            //娌℃湁閰嶇疆鍗曠嫭鏍¢獙锛屼笉闇�瑕侀獙閲�
+       }
+
+       /// <summary>
+        /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇�
+        /// </summary>
+        /// <param name="inputs"></param>
+        /// <returns></returns>
+        private async Task CheckExisitForImport(List<WmsRecordPackageProcess> inputs)
+        { 
+            if (inputs?.Count <= 0)
+            {
+                throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+            }
+            //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+                      
+
+
+
+
+
+
+          
+           //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+           
+           
+           
+        }
+     #endregion
+
+}
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessInput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessInput.cs
new file mode 100644
index 0000000..d85e8d5
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessInput.cs
@@ -0,0 +1,219 @@
+锘縰sing Admin.NET.Core;
+using System.ComponentModel.DataAnnotations;
+
+namespace Admin.NET.Application;
+
+    /// <summary>
+    /// 鏉夸欢杩囩▼灞ュ巻鍩虹杈撳叆鍙傛暟
+    /// </summary>
+    public class WmsRecordUpiProcessBaseInput
+    {
+        /// <summary>
+        /// 閮ㄤ欢鏉$爜
+        /// </summary>
+        public virtual string Upi { get; set; }
+        
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public virtual string PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鐢熶骇鍗曞彿
+        /// </summary>
+        public virtual string Info5 { get; set; }
+        
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public virtual string PlanNo { get; set; }
+        
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public virtual string OrderId { get; set; }
+        
+        /// <summary>
+        /// 鏉挎枡鐘舵��
+        /// </summary>
+        public virtual Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 鏍囪
+        /// </summary>
+        public virtual Admin.NET.Application.UpiFlagEnum? UpiFlag { get; set; }
+        
+        /// <summary>
+        /// 浣嶇疆
+        /// </summary>
+        public virtual string Location { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鍚嶇О
+        /// </summary>
+        public virtual string DetailName { get; set; }
+        
+        /// <summary>
+        /// 鏉愭枡
+        /// </summary>
+        public virtual string Info18 { get; set; }
+        
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public virtual string OperRemark { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public virtual DateTime? CreateTime { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓浜篒d
+        /// </summary>
+        public virtual long? CreateUserId { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public virtual string CreateUserName { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鏉夸欢杩囩▼灞ュ巻鍒嗛〉鏌ヨ杈撳叆鍙傛暟
+    /// </summary>
+    public class WmsRecordUpiProcessInput : BasePageInput
+    {
+        /// <summary>
+        /// 鍏抽敭瀛楁煡璇�
+        /// </summary>
+        public string? SearchKey { get; set; }
+
+        /// <summary>
+        /// 閮ㄤ欢鏉$爜
+        /// </summary>
+        public string? Upi { get; set; }
+        
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public string? PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鐢熶骇鍗曞彿
+        /// </summary>
+        public string? Info5 { get; set; }
+        
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public string? PlanNo { get; set; }
+        
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public string? OrderId { get; set; }
+        
+        /// <summary>
+        /// 鏉挎枡鐘舵��
+        /// </summary>
+        public Admin.NET.Application.UpiStatusEnum? UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 鏍囪
+        /// </summary>
+        public Admin.NET.Application.UpiFlagEnum? UpiFlag { get; set; }
+        
+        /// <summary>
+        /// 浣嶇疆
+        /// </summary>
+        public string? Location { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鍚嶇О
+        /// </summary>
+        public string? DetailName { get; set; }
+        
+        /// <summary>
+        /// 鏉愭枡
+        /// </summary>
+        public string? Info18 { get; set; }
+        
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? OperRemark { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鏉夸欢杩囩▼灞ュ巻澧炲姞杈撳叆鍙傛暟
+    /// </summary>
+    public class AddWmsRecordUpiProcessInput : WmsRecordUpiProcessBaseInput
+    {
+        /// <summary>
+        /// 閮ㄤ欢鏉$爜
+        /// </summary>
+        [Required(ErrorMessage = "閮ㄤ欢鏉$爜涓嶈兘涓虹┖")]
+        public override string Upi { get; set; }
+        
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        [Required(ErrorMessage = "鍖呰鍙蜂笉鑳戒负绌�")]
+        public override string PackageCode { 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 Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+        
+        /// <summary>
+        /// 閮ㄤ欢鍚嶇О
+        /// </summary>
+        [Required(ErrorMessage = "閮ㄤ欢鍚嶇О涓嶈兘涓虹┖")]
+        public override string DetailName { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鏉夸欢杩囩▼灞ュ巻鍒犻櫎杈撳叆鍙傛暟
+    /// </summary>
+    public class DeleteWmsRecordUpiProcessInput : BaseIdInput
+    {
+    }
+
+    /// <summary>
+    /// 鏉夸欢杩囩▼灞ュ巻鏇存柊杈撳叆鍙傛暟
+    /// </summary>
+    public class UpdateWmsRecordUpiProcessInput : AddWmsRecordUpiProcessInput
+    {
+        /// <summary>
+        /// 涓婚敭Id
+        /// </summary>
+        [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")]
+        public long Id { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鏉夸欢杩囩▼灞ュ巻涓婚敭鏌ヨ杈撳叆鍙傛暟
+    /// </summary>
+    public class QueryByIdWmsRecordUpiProcessInput : DeleteWmsRecordUpiProcessInput
+    {
+
+    }
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessOutput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessOutput.cs
new file mode 100644
index 0000000..fde1938
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/Dto/WmsRecordUpiProcessOutput.cs
@@ -0,0 +1,85 @@
+锘縩amespace Admin.NET.Application;
+
+/// <summary>
+/// 鏉夸欢杩囩▼灞ュ巻杈撳嚭鍙傛暟
+/// </summary>
+public class WmsRecordUpiProcessOutput
+{
+    /// <summary>
+    /// 涓婚敭Id
+    /// </summary>
+    public long? Id { get; set; }
+    
+    /// <summary>
+    /// 閮ㄤ欢鏉$爜
+    /// </summary>
+    public string Upi { get; set; }
+    
+    /// <summary>
+    /// 鍖呰鍙�
+    /// </summary>
+    public string PackageCode { get; set; }
+    
+    /// <summary>
+    /// 鐢熶骇鍗曞彿
+    /// </summary>
+    public string Info5 { get; set; }
+    
+    /// <summary>
+    /// 鎵规鍙�
+    /// </summary>
+    public string PlanNo { get; set; }
+    
+    /// <summary>
+    /// 璁㈠崟鍙�
+    /// </summary>
+    public string OrderId { get; set; }
+    
+    /// <summary>
+    /// 鏉挎枡鐘舵��
+    /// </summary>
+    public Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
+    
+    /// <summary>
+    /// 鏍囪
+    /// </summary>
+    public Admin.NET.Application.UpiFlagEnum? UpiFlag { get; set; }
+    
+    /// <summary>
+    /// 浣嶇疆
+    /// </summary>
+    public string Location { get; set; }
+    
+    /// <summary>
+    /// 閮ㄤ欢鍚嶇О
+    /// </summary>
+    public string DetailName { get; set; }
+    
+    /// <summary>
+    /// 鏉愭枡
+    /// </summary>
+    public string Info18 { get; set; }
+    
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    public string OperRemark { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓鏃堕棿
+    /// </summary>
+    public DateTime? CreateTime { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓浜篒d
+    /// </summary>
+    public long? CreateUserId { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓浜�
+    /// </summary>
+    public string CreateUserName { get; set; }
+    
+    }
+ 
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/WmsRecordUpiProcessService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/WmsRecordUpiProcessService.cs
new file mode 100644
index 0000000..af9b009
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiProcess/WmsRecordUpiProcessService.cs
@@ -0,0 +1,200 @@
+锘縰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.ReportCenterGroupName, Order = 100)]
+public class WmsRecordUpiProcessService : IDynamicApiController, ITransient
+{
+    private readonly SqlSugarRepository<WmsRecordUpiProcess> _rep;
+    public WmsRecordUpiProcessService(SqlSugarRepository<WmsRecordUpiProcess> rep)
+    {
+        _rep = rep;
+    }
+
+    /// <summary>
+    /// 鍒嗛〉鏌ヨ鏉夸欢杩囩▼灞ュ巻
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Page")]
+    [Description("WmsRecordUpiProcess/Page")]
+    public async Task<SqlSugarPagedList<WmsRecordUpiProcessOutput>> Page(WmsRecordUpiProcessInput 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("WmsRecordUpiProcess/List")]
+    public async Task<List<WmsRecordUpiProcessOutput>> List([FromQuery] WmsRecordUpiProcessInput input)
+    {
+        var query = CommonPageFilter(input);
+        return await query.OrderBuilder(input, "", "Id").Select<WmsRecordUpiProcessOutput>().ToListAsync();
+    }
+
+    /// <summary>
+    /// 澧炲姞鏉夸欢杩囩▼灞ュ巻
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Add")]
+    [Description("WmsRecordUpiProcess/Add")]
+    public async Task<long> Add(AddWmsRecordUpiProcessInput input)
+    {
+        var entity = input.Adapt<WmsRecordUpiProcess>();
+
+        //閲嶅鎬ч獙璇�
+        await CheckExist(entity);
+
+        await _rep.InsertAsync(entity);
+        return entity.Id;
+    }
+
+    /// <summary>
+    /// 鍒犻櫎鏉夸欢杩囩▼灞ュ巻
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Delete")]
+    [Description("WmsRecordUpiProcess/Delete")]
+    public async Task Delete(DeleteWmsRecordUpiProcessInput 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("WmsRecordUpiProcess/Update")]
+    public async Task Update(UpdateWmsRecordUpiProcessInput input)
+    {
+        var entity = input.Adapt<WmsRecordUpiProcess>();
+
+        //閲嶅鎬ч獙璇�
+        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("WmsRecordUpiProcess/Detail")]
+    public async Task<WmsRecordUpiProcess> Detail([FromQuery] QueryByIdWmsRecordUpiProcessInput input)
+    {
+        return await _rep.GetFirstAsync(u => u.Id == input.Id);
+    }
+
+
+
+
+
+
+    #region 绉佹湁鏂规硶
+
+    /// <summary>
+    /// 鍏叡鏌ヨ鏉夸欢杩囩▼灞ュ巻鏉′欢
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    private ISugarQueryable<WmsRecordUpiProcessOutput> CommonPageFilter(WmsRecordUpiProcessInput input)
+    {
+        var query = _rep.AsQueryable()
+            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
+                u.Upi.Contains(input.SearchKey.Trim())
+                || u.PackageCode.Contains(input.SearchKey.Trim())
+                || u.Info5.Contains(input.SearchKey.Trim())
+                || u.PlanNo.Contains(input.SearchKey.Trim())
+                || u.OrderId.Contains(input.SearchKey.Trim())
+                || u.Location.Contains(input.SearchKey.Trim())
+                || u.DetailName.Contains(input.SearchKey.Trim())
+                || u.Info18.Contains(input.SearchKey.Trim())
+                || u.OperRemark.Contains(input.SearchKey.Trim())
+                || u.CreateUserName.Contains(input.SearchKey.Trim())
+            )
+            .WhereIF(!string.IsNullOrWhiteSpace(input.Upi), u => u.Upi.Contains(input.Upi.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
+            .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(input.UpiStatus.HasValue, u => u.UpiStatus == input.UpiStatus)
+            .WhereIF(input.UpiFlag.HasValue, u => u.UpiFlag == input.UpiFlag)
+            .WhereIF(!string.IsNullOrWhiteSpace(input.Location), u => u.Location.Contains(input.Location.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.DetailName.Contains(input.DetailName.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.Info18), u => u.Info18.Contains(input.Info18.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.OperRemark), u => u.OperRemark.Contains(input.OperRemark.Trim()))
+            .Select<WmsRecordUpiProcessOutput>();
+        return query;
+       }
+
+        /// <summary>
+        /// 閲嶅鎬ч獙璇�
+        /// </summary>
+        /// <param name="input">楠岃瘉瀵硅薄</param>
+        /// <param name="isEdit">鏄惁鏄紪杈�</param>
+        /// <returns></returns>
+        private async Task CheckExist( WmsRecordUpiProcess input,bool isEdit=false)
+        {
+           
+
+
+            //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲�
+
+           
+            //娌℃湁閰嶇疆鍗曠嫭鏍¢獙锛屼笉闇�瑕侀獙閲�
+       }
+
+       /// <summary>
+        /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇�
+        /// </summary>
+        /// <param name="inputs"></param>
+        /// <returns></returns>
+        private async Task CheckExisitForImport(List<WmsRecordUpiProcess> inputs)
+        { 
+            if (inputs?.Count <= 0)
+            {
+                throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+            }
+            //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+                      
+
+
+
+
+
+
+          
+           //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+           
+           
+           
+        }
+     #endregion
+
+}
+

--
Gitblit v1.9.3