From ab113ce9156d8ab54b3a4da9da6b3939875a928f Mon Sep 17 00:00:00 2001
From: zongzhibin <zongzhibin@weben-smart.com>
Date: 周五, 22 11月 2024 13:11:12 +0800
Subject: [PATCH] add

---
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/component/editDialog.vue                       |  171 ++++++++
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/index.vue                                      |  289 ++++++++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/MesPushPackageCode.cs                               |   49 ++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/MesPushPackageCodeService.cs    |  331 ++++++++++++++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Core/Service/Auth/SysAuthService.cs                                             |   12 
 LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/推送mes包装号导入模板.xlsx                           |    0 
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeOutput.cs |   80 ++++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeInput.cs  |  172 ++++++++
 LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mesPushPackageCode.ts                                               |   78 +++
 9 files changed, 1,176 insertions(+), 6 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mesPushPackageCode.ts b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mesPushPackageCode.ts
new file mode 100644
index 0000000..7798b9b
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mesPushPackageCode.ts
@@ -0,0 +1,78 @@
+锘縤mport request from '/@/utils/request';
+enum Api {
+  AddMesPushPackageCode = '/api/mesPushPackageCode/add',
+  DeleteMesPushPackageCode = '/api/mesPushPackageCode/delete',
+  UpdateMesPushPackageCode = '/api/mesPushPackageCode/update',
+  PageMesPushPackageCode = '/api/mesPushPackageCode/page',
+  ListMesPushPackageCode = '/api/mesPushPackageCode/list',
+  DetailMesPushPackageCode = '/api/mesPushPackageCode/detail',
+  ImportExcelMesPushPackageCode = '/api/mesPushPackageCode/importExcel',
+  DownloadExcelTemplateMesPushPackageCode = '/api/mesPushPackageCode/downloadExcelTemplate',
+}
+
+// 澧炲姞鎺ㄩ�乵es鍖呰鍙�
+export const addMesPushPackageCode = (params?: any) =>
+	request({
+		url: Api.AddMesPushPackageCode,
+		method: 'post',
+		data: params
+	});
+
+// 鍒犻櫎鎺ㄩ�乵es鍖呰鍙�
+export const deleteMesPushPackageCode = (params?: any) => 
+	request({
+			url: Api.DeleteMesPushPackageCode,
+			method: 'post',
+			data: params
+		});
+
+// 缂栬緫鎺ㄩ�乵es鍖呰鍙�
+export const updateMesPushPackageCode = (params?: any) => 
+	request({
+			url: Api.UpdateMesPushPackageCode,
+			method: 'post',
+			data: params
+		});
+
+// 瀵煎叆鎺ㄩ�乵es鍖呰鍙�
+export const importExcelMesPushPackageCode = (params?: any) =>
+	request({
+		url: Api.ImportExcelMesPushPackageCode,
+		method: 'post',
+		data: params
+	});
+
+// 涓嬭浇瀵煎叆鎺ㄩ�乵es鍖呰鍙锋ā鏉�
+export const downloadExcelTemplateMesPushPackageCode = (params?: any) => 
+	request({
+			url: Api.DownloadExcelTemplateMesPushPackageCode,
+			method: 'get',
+			data: params,
+			responseType: 'blob'
+		});
+
+
+// 鍒嗛〉鏌ヨ鎺ㄩ�乵es鍖呰鍙�
+export const pageMesPushPackageCode = (params?: any) => 
+	request({
+			url: Api.PageMesPushPackageCode,
+			method: 'post',
+			data: params
+		});
+
+// 涓嶅垎椤垫煡璇㈡帹閫乵es鍖呰鍙�
+export const listMesPushPackageCode = (params?: any) => 
+	request({
+			url: Api.ListMesPushPackageCode,
+			method: 'get',
+			data: params
+		});
+
+// 璇︽儏鎺ㄩ�乵es鍖呰鍙�
+export const detailMesPushPackageCode = (id: any) => 
+	request({
+			url: Api.DetailMesPushPackageCode,
+			method: 'get',
+			data: { id }
+		});
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/component/editDialog.vue
new file mode 100644
index 0000000..d8d96f0
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/component/editDialog.vue
@@ -0,0 +1,171 @@
+锘�<template>
+	<div class="mesPushPackageCode-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="pushStatus">
+							<el-input-number v-model="ruleForm.pushStatus" 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="pushNum">
+							<el-input-number v-model="ruleForm.pushNum" 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="apiMessage">
+							<el-input v-model="ruleForm.apiMessage" placeholder="璇疯緭鍏ユ帴鍙h繑鍥炲弬鏁�" 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="createOrgName">
+							<el-input v-model="ruleForm.createOrgName" placeholder="璇疯緭鍏ュ垱寤鸿�呴儴闂ㄥ悕绉�" maxlength="64" 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 { addMesPushPackageCode, updateMesPushPackageCode, detailMesPushPackageCode } from "/@/api/main/WmsOrder/mesPushPackageCode";
+
+	//鐖剁骇浼犻�掓潵鐨勫弬鏁�
+	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',},],
+		pushStatus: [{required: true, message: '璇疯緭鍏ユ帹閫佺姸鎬侊紒', trigger: 'blur',},],
+		pushNum: [{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 detailMesPushPackageCode(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 addMesPushPackageCode(values);
+				} else {
+					title='缂栬緫';
+					ret = await updateMesPushPackageCode(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 () => {
+	});
+
+	//灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠�
+	defineExpose({ openDialog });
+</script>
+
+
+
+
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/index.vue
new file mode 100644
index 0000000..17c6b20
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mesPushPackageCode/index.vue
@@ -0,0 +1,289 @@
+锘�<template>
+  <div class="mesPushPackageCode-container">
+    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> 
+      <el-form :model="queryParamsMesPushPackageCode" 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="queryParamsMesPushPackageCode.searchKey" clearable="" placeholder="鍖呰鍙�,鎺ュ彛杩斿洖鍙傛暟,鍒涘缓浜�,淇敼浜�,鍒涘缓鑰呴儴闂ㄥ悕绉�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPackageCode">
+            <el-form-item label="鍖呰鍙�">
+              <el-input v-model="queryParamsMesPushPackageCode.packageCode" clearable="" placeholder="璇疯緭鍏ュ寘瑁呭彿"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPackageCode">
+            <el-form-item label="鎺ㄩ�佺姸鎬�">
+              <el-input-number v-model="queryParamsMesPushPackageCode.pushStatus"  clearable="" placeholder="璇疯緭鍏ユ帹閫佺姸鎬�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPackageCode">
+            <el-form-item label="鎺ㄩ�佹鏁�">
+              <el-input-number v-model="queryParamsMesPushPackageCode.pushNum"  clearable="" placeholder="璇疯緭鍏ユ帹閫佹鏁�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPackageCode">
+            <el-form-item label="鎺ュ彛杩斿洖鍙傛暟">
+              <el-input v-model="queryParamsMesPushPackageCode.apiMessage" clearable="" placeholder="璇疯緭鍏ユ帴鍙h繑鍥炲弬鏁�"/>
+              
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPackageCode">
+            <el-form-item label="鍒涘缓鑰呴儴闂ㄥ悕绉�">
+              <el-input v-model="queryParamsMesPushPackageCode.createOrgName" 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="handleQueryMesPushPackageCode" v-auth="'mesPushPackageCode:page'" :disabled="disabled_btnMesPushPackageCode"> 鏌ヨ </el-button>
+                      <el-button icon="ele-Refresh" @click="resetMesPushPackageCode"> 閲嶇疆 </el-button>
+                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIMesPushPackageCode" v-if="!showAdvanceQueryUIMesPushPackageCode" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button>
+                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIMesPushPackageCode" v-if="showAdvanceQueryUIMesPushPackageCode" style="margin-left:5px;"> 闅愯棌 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddMesPushPackageCode" v-auth="'mesPushPackageCode:add'"> 鏂板 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Upload" @click="openImportExcelMesPushPackageCode"  v-auth="'mesPushPackageCode:importExcel'" > 瀵煎叆 </el-button>
+                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelMesPushPackageCode"  v-auth="'mesPushPackageCode: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="tableRefMesPushPackageCode"
+				:data="tableDataMesPushPackageCode"
+				style="width: 100%"
+				v-loading="loadingMesPushPackageCode"
+				tooltip-effect="light"
+                				row-key="id"
+                @sort-change="sortChangeMesPushPackageCode"
+				border="">
+        <el-table-column type="index" label="搴忓彿" width="55" align="center"/>
+        <el-table-column prop="packageCode" label="鍖呰鍙�"  show-overflow-tooltip="" />
+        <el-table-column prop="pushStatus" label="鎺ㄩ�佺姸鎬�"  show-overflow-tooltip="" />
+        <el-table-column prop="pushNum" label="鎺ㄩ�佹鏁�"  show-overflow-tooltip="" />
+        <el-table-column prop="apiMessage" 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 prop="createOrgName" label="鍒涘缓鑰呴儴闂ㄥ悕绉�"  show-overflow-tooltip="" />
+        <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('mesPushPackageCode:update') || auth('mesPushPackageCode:delete')">
+          <template #default="scope">
+            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditMesPushPackageCode(scope.row)" v-auth="'mesPushPackageCode:update'"> 缂栬緫 </el-button>
+            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delMesPushPackageCode(scope.row)" v-auth="'mesPushPackageCode:delete'"> 鍒犻櫎 </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+				v-model:currentPage="tableParamsMesPushPackageCode.page"
+				v-model:page-size="tableParamsMesPushPackageCode.pageSize"
+				:total="tableParamsMesPushPackageCode.total"
+				:page-sizes="[10, 20, 50, 100, 200, 500]"
+				small=""
+				background=""
+				@size-change="handleSizeChangeMesPushPackageCode"
+				@current-change="handleCurrentChangeMesPushPackageCode"
+				layout="total, sizes, prev, pager, next, jumper"
+	/>
+      <printDialogMesPushPackageCode
+        ref="printDialogRefMesPushPackageCode"
+        :title="printMesPushPackageCodeTitle"
+        @reloadTable="handleQueryMesPushPackageCode" />
+      <editDialogMesPushPackageCode
+        ref="editDialogRefMesPushPackageCode"
+        :title="editMesPushPackageCodeTitle"
+        @reloadTable="handleQueryMesPushPackageCode"
+      />
+      <importExcelDialog
+        ref="importExcelDialogRefMesPushPackageCode"
+        :title="importExcelTitleMesPushPackageCode"
+        @parentUploadFun="handleImportExcelMesPushPackageCode"
+        @parentDownFun="handleDownExcelMesPushPackageCode"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script lang="ts" setup="" name="mesPushPackageCode">
+  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 printDialogMesPushPackageCode from '/@/views/system/print/component/hiprint/preview.vue'
+  import editDialogMesPushPackageCode from '/@/views/main/WmsOrder/mesPushPackageCode/component/editDialog.vue'
+  import { pageMesPushPackageCode, deleteMesPushPackageCode,importExcelMesPushPackageCode,downloadExcelTemplateMesPushPackageCode } from '/@/api/main/WmsOrder/mesPushPackageCode';
+
+
+  
+  /***************************************************[鎺ㄩ�乵es鍖呰鍙锋搷浣淽寮�濮�***************************************************/
+  const showAdvanceQueryUIMesPushPackageCode = ref(false);
+  const tableRefMesPushPackageCode = ref(null);
+  const printDialogRefMesPushPackageCode = ref();
+  const editDialogRefMesPushPackageCode = ref();
+  const loadingMesPushPackageCode = ref(false);
+  const disabled_btnMesPushPackageCode = ref(false);
+  const tableDataMesPushPackageCode = ref<any>([]);
+  const queryParamsMesPushPackageCode = ref<any>({});
+  const tableParamsMesPushPackageCode = ref({
+    page: 1,
+    pageSize: 10,
+    total: 0,
+  });
+
+  const printMesPushPackageCodeTitle = ref("");
+  const editMesPushPackageCodeTitle = ref("");
+
+  // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
+  const changeAdvanceQueryUIMesPushPackageCode = () => {
+    showAdvanceQueryUIMesPushPackageCode.value = !showAdvanceQueryUIMesPushPackageCode.value;
+  }
+
+  // 鏌ヨ鎺ㄩ�乵es鍖呰鍙�
+  const handleQueryMesPushPackageCode = async () => {
+    loadingMesPushPackageCode.value = true;
+    disabled_btnMesPushPackageCode.value = true;
+    var res = await pageMesPushPackageCode(Object.assign(queryParamsMesPushPackageCode.value, tableParamsMesPushPackageCode.value));
+    if(res.data.type=="success"){
+      tableDataMesPushPackageCode.value = res.data.result?.items ?? [];
+      tableParamsMesPushPackageCode.value.total = res.data.result?.total;
+    }
+    loadingMesPushPackageCode.value = false;
+    disabled_btnMesPushPackageCode.value = false;
+  };
+
+  // 閲嶇疆鎺ㄩ�乵es鍖呰鍙锋煡璇�
+  const resetMesPushPackageCode = async () => {
+    queryParamsMesPushPackageCode.value = {}
+  };
+
+  // 鎺ㄩ�乵es鍖呰鍙峰垪鎺掑簭
+  const sortChangeMesPushPackageCode = async (column: any) => {
+	queryParamsMesPushPackageCode.value.field = column.prop;
+	queryParamsMesPushPackageCode.value.order = column.order;
+	await handleQueryMesPushPackageCode();
+  };
+
+  // 鎵撳紑鏂板鎺ㄩ�乵es鍖呰鍙烽〉闈�
+  const openAddMesPushPackageCode = () => {
+    editMesPushPackageCodeTitle.value = '娣诲姞鎺ㄩ�乵es鍖呰鍙�';
+    editDialogRefMesPushPackageCode.value.openDialog(1,{});
+  };
+
+  // 鎵撳紑鎵撳嵃鎺ㄩ�乵es鍖呰鍙烽〉闈�
+  const openPrintMesPushPackageCode = async (row: any) => {
+    printMesPushPackageCodeTitle.value = '鎵撳嵃鎺ㄩ�乵es鍖呰鍙�';
+  }
+  
+  // 鎵撳紑缂栬緫鎺ㄩ�乵es鍖呰鍙烽〉闈�
+  const openEditMesPushPackageCode = (row: any) => {
+    editMesPushPackageCodeTitle.value = '缂栬緫鎺ㄩ�乵es鍖呰鍙�';
+    editDialogRefMesPushPackageCode.value.openDialog(2,row);
+  };
+
+  // 鍒犻櫎鎺ㄩ�乵es鍖呰鍙�
+  const delMesPushPackageCode = (row: any) => {
+    ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", {
+    confirmButtonText: "纭畾",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+  .then(async () => {
+    loadingMesPushPackageCode.value = true;
+    var ret = await deleteMesPushPackageCode(row);
+    if(ret.data.type=="success"){
+        ElMessage.success("鍒犻櫎鎴愬姛");
+	}
+    loadingMesPushPackageCode.value = false;
+    handleQueryMesPushPackageCode();
+  })
+  .catch(() => {});
+  };
+
+  // 鏀瑰彉鎺ㄩ�乵es鍖呰鍙烽〉闈㈠閲�
+  const handleSizeChangeMesPushPackageCode = (val: number) => {
+    tableParamsMesPushPackageCode.value.pageSize = val;
+    handleQueryMesPushPackageCode();
+  };
+
+  // 鏀瑰彉鎺ㄩ�乵es鍖呰鍙烽〉鐮佸簭鍙�
+  const handleCurrentChangeMesPushPackageCode = (val: number) => {
+    tableParamsMesPushPackageCode.value.page = val;
+    handleQueryMesPushPackageCode();
+  };
+
+/***************************************************[鎺ㄩ�乵es鍖呰鍙锋搷浣淽缁撴潫***************************************************/
+/***************************************************[鎺ㄩ�乵es鍖呰鍙峰鍏寮�濮�***************************************************/
+const importExcelTitleMesPushPackageCode = ref("");
+const importExcelDialogRefMesPushPackageCode = ref();
+//鎵撳紑瀵煎叆鐣岄潰
+const openImportExcelMesPushPackageCode = () => {
+    importExcelTitleMesPushPackageCode.value = '瀵煎叆鎺ㄩ�乵es鍖呰鍙�';
+    importExcelDialogRefMesPushPackageCode.value.openDialog({});
+};
+//瀵煎叆鏁版嵁
+const handleImportExcelMesPushPackageCode = async (formData:Blob) => {
+   var result = await importExcelMesPushPackageCode(formData);
+   importExcelDialogRefMesPushPackageCode.value.callBackUploadFun(result.data);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶
+   if(result.data.type=="success"){
+    handleQueryMesPushPackageCode();
+   }
+};
+//涓嬭浇瀵煎叆妯℃澘
+const handleDownExcelMesPushPackageCode = async () => {
+   var result = await downloadExcelTemplateMesPushPackageCode();
+   importExcelDialogRefMesPushPackageCode.value.callBackDownFun(result);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶
+};
+/***************************************************[鎺ㄩ�乵es鍖呰鍙峰鍏缁撴潫***************************************************/
+/***************************************************[鎺ㄩ�乵es鍖呰鍙峰鍑篯寮�濮�***************************************************/
+//瀹氫箟褰撳墠椤甸潰鐨勬柟娉曠粍
+const functionMapMesPushPackageCode = {
+      formatDate_T_Date,
+      formatDate_T_Time
+};
+//鐐瑰嚮瀵煎嚭鎸夐挳
+const handleExportExcelMesPushPackageCode = async (formData:Blob) => {
+    loadingMesPushPackageCode.value = true;
+    disabled_btnMesPushPackageCode.value = true;
+    var new_tableParamsMesPushPackageCode=JSON.parse(JSON.stringify(tableParamsMesPushPackageCode.value));
+    new_tableParamsMesPushPackageCode.page = 1;
+    new_tableParamsMesPushPackageCode.pageSize = 100000;
+    var res = await pageMesPushPackageCode(Object.assign(queryParamsMesPushPackageCode.value, new_tableParamsMesPushPackageCode));
+    if(res.data.type=="success"){
+      exportExcelMesPushPackageCode(res.data.result?.items ?? []);
+    }
+    loadingMesPushPackageCode.value = false;
+    disabled_btnMesPushPackageCode.value = false;
+};
+//瀵煎嚭
+const exportExcelMesPushPackageCode  = async (exportDataList:Array) => {
+  exportPageExcel(exportDataList, tableRefMesPushPackageCode,"鎺ㄩ�乵es鍖呰鍙�",functionMapMesPushPackageCode);
+};
+/***************************************************[鎺ㄩ�乵es鍖呰鍙峰鍑篯缁撴潫***************************************************/
+  // 鎺ㄩ�乵es鍖呰鍙烽〉闈㈠姞杞芥椂
+  onMounted(async () => {
+  });
+
+  handleQueryMesPushPackageCode();
+</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/Entity/WmsOrder/MesPushPackageCode.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/MesPushPackageCode.cs
new file mode 100644
index 0000000..d1050ba
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/MesPushPackageCode.cs
@@ -0,0 +1,49 @@
+锘縰sing Admin.NET.Core;
+namespace Admin.NET.Application.Entity;
+
+/// <summary>
+/// 鎺ㄩ�乵es鍖呰鍙疯〃
+/// </summary>
+[SugarTable("mes_PushPackageCode", "鎺ㄩ�乵es鍖呰鍙疯〃")]
+public class MesPushPackageCode : EntityBase
+{
+    /// <summary>
+    /// 鍖呰鍙�
+    /// </summary>
+    [Required]
+    [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "鍖呰鍙�", Length = 50)]
+    public string PackageCode { get; set; }
+
+    /// <summary>
+    /// 鎺ㄩ�佺姸鎬�
+    /// </summary>
+    [Required]
+    [SugarColumn(ColumnName = "PushStatus", ColumnDescription = "鎺ㄩ�佺姸鎬�")]
+    public int PushStatus { get; set; }
+
+    /// <summary>
+    /// 鎺ㄩ�佹鏁�
+    /// </summary>
+    [Required]
+    [SugarColumn(ColumnName = "PushNum", ColumnDescription = "鎺ㄩ�佹鏁�")]
+    public int PushNum { get; set; }
+
+    /// <summary>
+    /// 鎺ュ彛杩斿洖鍙傛暟
+    /// </summary>
+    [SugarColumn(ColumnName = "ApiMessage", ColumnDescription = "鎺ュ彛杩斿洖鍙傛暟", Length = 50)]
+    public string ApiMessage { get; set; }
+
+    /// <summary>
+    /// 鍒涘缓鑰呴儴闂↖d
+    /// </summary>
+    [SugarColumn(ColumnName = "CreateOrgId", ColumnDescription = "鍒涘缓鑰呴儴闂↖d")]
+    public long? CreateOrgId { get; set; }
+
+    /// <summary>
+    /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+    /// </summary>
+    [SugarColumn(ColumnName = "CreateOrgName", ColumnDescription = "鍒涘缓鑰呴儴闂ㄥ悕绉�", Length = 64)]
+    public string CreateOrgName { get; set; }
+
+}
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeInput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeInput.cs
new file mode 100644
index 0000000..5e1c6fa
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeInput.cs
@@ -0,0 +1,172 @@
+锘縰sing Admin.NET.Core;
+using System.ComponentModel.DataAnnotations;
+
+namespace Admin.NET.Application;
+
+    /// <summary>
+    /// 鎺ㄩ�乵es鍖呰鍙峰熀纭�杈撳叆鍙傛暟
+    /// </summary>
+    public class MesPushPackageCodeBaseInput
+    {
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public virtual string PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鎺ㄩ�佺姸鎬�
+        /// </summary>
+        public virtual int PushStatus { get; set; }
+        
+        /// <summary>
+        /// 鎺ㄩ�佹鏁�
+        /// </summary>
+        public virtual int PushNum { get; set; }
+        
+        /// <summary>
+        /// 鎺ュ彛杩斿洖鍙傛暟
+        /// </summary>
+        public virtual string ApiMessage { 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>
+        /// 鍒涘缓鑰呴儴闂↖d
+        /// </summary>
+        public virtual long? CreateOrgId { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+        /// </summary>
+        public virtual string CreateOrgName { get; set; }
+        
+        /// <summary>
+        /// 杞垹闄�
+        /// </summary>
+        public virtual bool IsDelete { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎺ㄩ�乵es鍖呰鍙峰垎椤垫煡璇㈣緭鍏ュ弬鏁�
+    /// </summary>
+    public class MesPushPackageCodeInput : BasePageInput
+    {
+        /// <summary>
+        /// 鍏抽敭瀛楁煡璇�
+        /// </summary>
+        public string? SearchKey { get; set; }
+
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        public string? PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鎺ㄩ�佺姸鎬�
+        /// </summary>
+        public int? PushStatus { get; set; }
+        
+        /// <summary>
+        /// 鎺ㄩ�佹鏁�
+        /// </summary>
+        public int? PushNum { get; set; }
+        
+        /// <summary>
+        /// 鎺ュ彛杩斿洖鍙傛暟
+        /// </summary>
+        public string? ApiMessage { get; set; }
+        
+        /// <summary>
+        /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+        /// </summary>
+        public string? CreateOrgName { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎺ㄩ�乵es鍖呰鍙峰鍔犺緭鍏ュ弬鏁�
+    /// </summary>
+    public class AddMesPushPackageCodeInput : MesPushPackageCodeBaseInput
+    {
+        /// <summary>
+        /// 鍖呰鍙�
+        /// </summary>
+        [Required(ErrorMessage = "鍖呰鍙蜂笉鑳戒负绌�")]
+        public override string PackageCode { get; set; }
+        
+        /// <summary>
+        /// 鎺ㄩ�佺姸鎬�
+        /// </summary>
+        [Required(ErrorMessage = "鎺ㄩ�佺姸鎬佷笉鑳戒负绌�")]
+        public override int PushStatus { get; set; }
+        
+        /// <summary>
+        /// 鎺ㄩ�佹鏁�
+        /// </summary>
+        [Required(ErrorMessage = "鎺ㄩ�佹鏁颁笉鑳戒负绌�")]
+        public override int PushNum { get; set; }
+        
+        /// <summary>
+        /// 杞垹闄�
+        /// </summary>
+        [Required(ErrorMessage = "杞垹闄や笉鑳戒负绌�")]
+        public override bool IsDelete { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎺ㄩ�乵es鍖呰鍙峰垹闄よ緭鍏ュ弬鏁�
+    /// </summary>
+    public class DeleteMesPushPackageCodeInput : BaseIdInput
+    {
+    }
+
+    /// <summary>
+    /// 鎺ㄩ�乵es鍖呰鍙锋洿鏂拌緭鍏ュ弬鏁�
+    /// </summary>
+    public class UpdateMesPushPackageCodeInput : AddMesPushPackageCodeInput
+    {
+        /// <summary>
+        /// 涓婚敭Id
+        /// </summary>
+        [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")]
+        public long Id { get; set; }
+        
+    }
+
+    /// <summary>
+    /// 鎺ㄩ�乵es鍖呰鍙蜂富閿煡璇㈣緭鍏ュ弬鏁�
+    /// </summary>
+    public class QueryByIdMesPushPackageCodeInput : DeleteMesPushPackageCodeInput
+    {
+
+    }
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeOutput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeOutput.cs
new file mode 100644
index 0000000..16b8c23
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeOutput.cs
@@ -0,0 +1,80 @@
+锘縩amespace Admin.NET.Application;
+
+/// <summary>
+/// 鎺ㄩ�乵es鍖呰鍙疯緭鍑哄弬鏁�
+/// </summary>
+public class MesPushPackageCodeOutput
+{
+    /// <summary>
+    /// 涓婚敭Id
+    /// </summary>
+    public long? Id { get; set; }
+    
+    /// <summary>
+    /// 鍖呰鍙�
+    /// </summary>
+    public string PackageCode { get; set; }
+    
+    /// <summary>
+    /// 鎺ㄩ�佺姸鎬�
+    /// </summary>
+    public int PushStatus { get; set; }
+    
+    /// <summary>
+    /// 鎺ㄩ�佹鏁�
+    /// </summary>
+    public int PushNum { get; set; }
+    
+    /// <summary>
+    /// 鎺ュ彛杩斿洖鍙傛暟
+    /// </summary>
+    public string ApiMessage { 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>
+    /// 鍒涘缓鑰呴儴闂↖d
+    /// </summary>
+    public long? CreateOrgId { get; set; }
+    
+    /// <summary>
+    /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+    /// </summary>
+    public string CreateOrgName { get; set; }
+    
+    /// <summary>
+    /// 杞垹闄�
+    /// </summary>
+    public bool IsDelete { get; set; }
+    
+    }
+ 
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/MesPushPackageCodeService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/MesPushPackageCodeService.cs
new file mode 100644
index 0000000..328032f
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/MesPushPackageCodeService.cs
@@ -0,0 +1,331 @@
+锘縰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>
+/// 鎺ㄩ�乵es鍖呰鍙锋湇鍔�
+/// </summary>
+[ApiDescriptionSettings(ApplicationConst.WmsOrderGroupName, Order = 100)]
+public class MesPushPackageCodeService : IDynamicApiController, ITransient
+{
+    private readonly SqlSugarRepository<MesPushPackageCode> _rep;
+    public MesPushPackageCodeService(SqlSugarRepository<MesPushPackageCode> rep)
+    {
+        _rep = rep;
+    }
+
+    /// <summary>
+    /// 鍒嗛〉鏌ヨ鎺ㄩ�乵es鍖呰鍙�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Page")]
+    [Description("MesPushPackageCode/Page")]
+    public async Task<SqlSugarPagedList<MesPushPackageCodeOutput>> Page(MesPushPackageCodeInput input)
+    {
+        var query = CommonPageFilter(input);
+        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
+    }
+
+    /// <summary>
+    /// 涓嶅垎椤垫煡璇㈡帹閫乵es鍖呰鍙�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "List")]
+    [Description("MesPushPackageCode/List")]
+    public async Task<List<MesPushPackageCodeOutput>> List([FromQuery] MesPushPackageCodeInput input)
+    {
+        var query = CommonPageFilter(input);
+        return await query.OrderBuilder(input, "", "Id").Select<MesPushPackageCodeOutput>().ToListAsync();
+    }
+
+    /// <summary>
+    /// 澧炲姞鎺ㄩ�乵es鍖呰鍙�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Add")]
+    [Description("MesPushPackageCode/Add")]
+    public async Task<long> Add(AddMesPushPackageCodeInput input)
+    {
+        var entity = input.Adapt<MesPushPackageCode>();
+
+        //閲嶅鎬ч獙璇�
+        await CheckExist(entity);
+
+        await _rep.InsertAsync(entity);
+        return entity.Id;
+    }
+
+    /// <summary>
+    /// 鍒犻櫎鎺ㄩ�乵es鍖呰鍙�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Delete")]
+    [Description("MesPushPackageCode/Delete")]
+    public async Task Delete(DeleteMesPushPackageCodeInput 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>
+    /// 鏇存柊鎺ㄩ�乵es鍖呰鍙�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "Update")]
+    [Description("MesPushPackageCode/Update")]
+    public async Task Update(UpdateMesPushPackageCodeInput input)
+    {
+        var entity = input.Adapt<MesPushPackageCode>();
+
+        //閲嶅鎬ч獙璇�
+        await CheckExist(entity,true);
+
+        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+    }
+
+    /// <summary>
+    /// 鑾峰彇鎺ㄩ�乵es鍖呰鍙�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "Detail")]
+    [Description("MesPushPackageCode/Detail")]
+    public async Task<MesPushPackageCode> Detail([FromQuery] QueryByIdMesPushPackageCodeInput input)
+    {
+        return await _rep.GetFirstAsync(u => u.Id == input.Id);
+    }
+
+
+
+
+
+    #region 瀵煎叆
+    
+    /// <summary>
+    /// Excel妯℃澘瀵煎叆鎺ㄩ�乵es鍖呰鍙峰姛鑳�
+    /// </summary>
+    /// <param name="file">Excel妯℃澘鏂囦欢</param>
+    /// <returns>瀵煎叆鐨勮褰曟暟</returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "ImportExcel")]
+    [Description("MesPushPackageCode/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<MesPushPackageCode>> CommonImport(DataTable dataTable, int dataStartLine)
+    {
+        var details = new List<MesPushPackageCode>();
+        int index = dataStartLine;//妯$増鍒楀悕寮�濮嬭
+        foreach (System.Data.DataRow row in dataTable.Rows)
+        {
+            index++;
+            //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛�
+                                      
+                           var addItem = new MesPushPackageCode();
+                          #region 瀹氫箟鍙橀噺
+                           var _PackageCode = "";//鍖呰鍙�
+                           var _PushStatus = "";//鎺ㄩ�佺姸鎬�
+                           var _PushNum = "";//鎺ㄩ�佹鏁�
+                           var _ApiMessage = "";//鎺ュ彛杩斿洖鍙傛暟
+                           var _CreateOrgName = "";//鍒涘缓鑰呴儴闂ㄥ悕绉�
+                          #endregion
+                          
+                          
+                          #region 鍙栧��
+                           _PackageCode = row["鍖呰鍙�"]?.ToString() ;
+                           _PushStatus = row["鎺ㄩ�佺姸鎬�"]?.ToString() ;
+                           _PushNum = row["鎺ㄩ�佹鏁�"]?.ToString() ;
+                           _ApiMessage = row["鎺ュ彛杩斿洖鍙傛暟"]?.ToString() ;
+                           _CreateOrgName = row["鍒涘缓鑰呴儴闂ㄥ悕绉�"]?.ToString() ;
+                          #endregion
+                          
+                          
+                          #region 楠岃瘉
+                          
+                          if (string.IsNullOrEmpty(_PackageCode))
+                          {
+                            throw Oops.Oh($"绗瑊index}琛孾鍖呰鍙穄{_PackageCode}涓嶈兘涓虹┖锛�");
+                          }
+                          
+                          if(!string.IsNullOrEmpty(_PackageCode))
+                          {
+                                addItem.PackageCode = (string)(_PackageCode.Trim());
+                           }
+                          
+                          if (string.IsNullOrEmpty(_PushStatus))
+                          {
+                            throw Oops.Oh($"绗瑊index}琛孾鎺ㄩ�佺姸鎬乚{_PushStatus}涓嶈兘涓虹┖锛�");
+                          }
+                          
+                          if(!string.IsNullOrEmpty(_PushStatus))
+                          {
+                              if (!int.TryParse(_PushStatus, out int outPushStatus)&&!string.IsNullOrEmpty(_PushStatus))
+                              {
+                                 throw Oops.Oh($"绗瑊index}琛孾鎺ㄩ�佺姸鎬乚{_PushStatus}鍊间笉姝g‘锛�");
+                              }
+                              if (outPushStatus <= 0&&!string.IsNullOrEmpty(_PushStatus))
+                              {
+                                 throw Oops.Oh($"绗瑊index}琛孾鎺ㄩ�佺姸鎬乚{_PushStatus}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                              }
+                              else
+                              {
+                                 addItem.PushStatus = outPushStatus;
+                              }
+                          
+                          }
+                          
+                          if (string.IsNullOrEmpty(_PushNum))
+                          {
+                            throw Oops.Oh($"绗瑊index}琛孾鎺ㄩ�佹鏁癩{_PushNum}涓嶈兘涓虹┖锛�");
+                          }
+                          
+                          if(!string.IsNullOrEmpty(_PushNum))
+                          {
+                              if (!int.TryParse(_PushNum, out int outPushNum)&&!string.IsNullOrEmpty(_PushNum))
+                              {
+                                 throw Oops.Oh($"绗瑊index}琛孾鎺ㄩ�佹鏁癩{_PushNum}鍊间笉姝g‘锛�");
+                              }
+                              if (outPushNum <= 0&&!string.IsNullOrEmpty(_PushNum))
+                              {
+                                 throw Oops.Oh($"绗瑊index}琛孾鎺ㄩ�佹鏁癩{_PushNum}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                              }
+                              else
+                              {
+                                 addItem.PushNum = outPushNum;
+                              }
+                          
+                          }
+                          if(!string.IsNullOrEmpty(_ApiMessage))
+                          {
+                                addItem.ApiMessage = (string)(_ApiMessage.Trim());
+                           }
+                          if(!string.IsNullOrEmpty(_CreateOrgName))
+                          {
+                                addItem.CreateOrgName = (string)(_CreateOrgName.Trim());
+                           }
+                          #endregion
+                          
+
+            details.Add(addItem);
+        }
+        //楠岄噸
+        await CheckExisitForImport(details);
+        return details;
+    }
+    
+    /// <summary>
+    /// 鏍规嵁鐗堟湰涓嬭浇鎺ㄩ�乵es鍖呰鍙风殑Excel瀵煎叆妯℃澘
+    /// </summary>
+    /// <returns>涓嬭浇鐨勬ā鏉挎枃浠�</returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "DownloadExcelTemplate")]
+    [Description("MesPushPackageCode/DownloadExcelTemplate")]
+    public IActionResult DownloadExcelTemplate()
+    {
+        string _path = TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増璺緞 + $"\\鎺ㄩ�乵es鍖呰鍙穥TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増鍚嶇О鍚庣紑}.xlsx";
+        var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鎺ㄩ�乵es鍖呰鍙�).xlsx", Encoding.GetEncoding("UTF-8"));
+        return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
+    }
+    
+    #endregion
+
+    #region 绉佹湁鏂规硶
+
+    /// <summary>
+    /// 鍏叡鏌ヨ鎺ㄩ�乵es鍖呰鍙锋潯浠�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    private ISugarQueryable<MesPushPackageCodeOutput> CommonPageFilter(MesPushPackageCodeInput input)
+    {
+        var query = _rep.AsQueryable()
+            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
+                u.PackageCode.Contains(input.SearchKey.Trim())
+                || u.ApiMessage.Contains(input.SearchKey.Trim())
+                || u.CreateUserName.Contains(input.SearchKey.Trim())
+                || u.UpdateUserName.Contains(input.SearchKey.Trim())
+                || u.CreateOrgName.Contains(input.SearchKey.Trim())
+            )
+            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
+            .WhereIF(input.PushStatus>0, u => u.PushStatus == input.PushStatus)
+            .WhereIF(input.PushNum>0, u => u.PushNum == input.PushNum)
+            .WhereIF(!string.IsNullOrWhiteSpace(input.ApiMessage), u => u.ApiMessage.Contains(input.ApiMessage.Trim()))
+            .WhereIF(!string.IsNullOrWhiteSpace(input.CreateOrgName), u => u.CreateOrgName.Contains(input.CreateOrgName.Trim()))
+            .Select<MesPushPackageCodeOutput>();
+        return query;
+       }
+
+        /// <summary>
+        /// 閲嶅鎬ч獙璇�
+        /// </summary>
+        /// <param name="input">楠岃瘉瀵硅薄</param>
+        /// <param name="isEdit">鏄惁鏄紪杈�</param>
+        /// <returns></returns>
+        private async Task CheckExist( MesPushPackageCode input,bool isEdit=false)
+        {
+           
+
+
+            //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲�
+
+           
+            //娌℃湁閰嶇疆鍗曠嫭鏍¢獙锛屼笉闇�瑕侀獙閲�
+       }
+
+       /// <summary>
+        /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇�
+        /// </summary>
+        /// <param name="inputs"></param>
+        /// <returns></returns>
+        private async Task CheckExisitForImport(List<MesPushPackageCode> inputs)
+        { 
+            if (inputs?.Count <= 0)
+            {
+                throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+            }
+            //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+                      
+
+
+
+
+
+
+          
+           //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+           
+           
+           
+        }
+     #endregion
+
+}
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Core/Service/Auth/SysAuthService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Core/Service/Auth/SysAuthService.cs
index 7df3874..f163b10 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Core/Service/Auth/SysAuthService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Core/Service/Auth/SysAuthService.cs
@@ -69,12 +69,12 @@
             throw Oops.Oh(ErrorCodeEnum.D1027);
 
         // 鏄惁寮�鍚獙璇佺爜
-        if (await _sysConfigService.GetConfigValue<bool>(CommonConst.SysCaptcha))
-        {
-            // 鍒ゆ柇楠岃瘉鐮�
-            if (!_captcha.Validate(input.CodeId.ToString(), input.Code))
-                throw Oops.Oh(ErrorCodeEnum.D0008);
-        }
+        //if (await _sysConfigService.GetConfigValue<bool>(CommonConst.SysCaptcha))
+        //{
+        //    // 鍒ゆ柇楠岃瘉鐮�
+        //    if (!_captcha.Validate(input.CodeId.ToString(), input.Code))
+        //        throw Oops.Oh(ErrorCodeEnum.D0008);
+        //}
 
         // 璐﹀彿鏄惁瀛樺湪
         var user = await _sysUserRep.AsQueryable().Includes(t => t.SysOrg).ClearFilter().FirstAsync(u => u.Account.Equals(input.Account));
diff --git "a/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\216\250\351\200\201mes\345\214\205\350\243\205\345\217\267\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\216\250\351\200\201mes\345\214\205\350\243\205\345\217\267\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..89c9d16
--- /dev/null
+++ "b/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\216\250\351\200\201mes\345\214\205\350\243\205\345\217\267\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ

--
Gitblit v1.9.3