LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mesPushPackageCode.ts
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ import 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', } // å¢å æ¨émeså è£ å· export const addMesPushPackageCode = (params?: any) => request({ url: Api.AddMesPushPackageCode, method: 'post', data: params }); // å 餿¨émeså è£ å· export const deleteMesPushPackageCode = (params?: any) => request({ url: Api.DeleteMesPushPackageCode, method: 'post', data: params }); // ç¼è¾æ¨émeså è£ å· export const updateMesPushPackageCode = (params?: any) => request({ url: Api.UpdateMesPushPackageCode, method: 'post', data: params }); // å¯¼å ¥æ¨émeså è£ å· export const importExcelMesPushPackageCode = (params?: any) => request({ url: Api.ImportExcelMesPushPackageCode, method: 'post', data: params }); // ä¸è½½å¯¼å ¥æ¨émeså è£ å·æ¨¡æ¿ export const downloadExcelTemplateMesPushPackageCode = (params?: any) => request({ url: Api.DownloadExcelTemplateMesPushPackageCode, method: 'get', data: params, responseType: 'blob' }); // å页æ¥è¯¢æ¨émeså è£ å· export const pageMesPushPackageCode = (params?: any) => request({ url: Api.PageMesPushPackageCode, method: 'post', data: params }); // ä¸å页æ¥è¯¢æ¨émeså è£ å· export const listMesPushPackageCode = (params?: any) => request({ url: Api.ListMesPushPackageCode, method: 'get', data: params }); // è¯¦æ æ¨émeså è£ å· export const detailMesPushPackageCode = (id: any) => request({ url: Api.DetailMesPushPackageCode, method: 'get', data: { id } }); 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="请è¾å ¥æ¥å£è¿ååæ°" 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> 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="请è¾å ¥æ¥å£è¿ååæ°"/> </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'; /***************************************************[æ¨émeså è£ å·æä½]å¼å§***************************************************/ 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; } // æ¥è¯¢æ¨émeså è£ å· 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; }; // éç½®æ¨émeså è£ å·æ¥è¯¢ const resetMesPushPackageCode = async () => { queryParamsMesPushPackageCode.value = {} }; // æ¨émeså è£ å·åæåº const sortChangeMesPushPackageCode = async (column: any) => { queryParamsMesPushPackageCode.value.field = column.prop; queryParamsMesPushPackageCode.value.order = column.order; await handleQueryMesPushPackageCode(); }; // æå¼æ°å¢æ¨émeså è£ å·é¡µé¢ const openAddMesPushPackageCode = () => { editMesPushPackageCodeTitle.value = 'æ·»å æ¨émeså è£ å·'; editDialogRefMesPushPackageCode.value.openDialog(1,{}); }; // æå¼æå°æ¨émeså è£ å·é¡µé¢ const openPrintMesPushPackageCode = async (row: any) => { printMesPushPackageCodeTitle.value = 'æå°æ¨émeså è£ å·'; } // æå¼ç¼è¾æ¨émeså è£ å·é¡µé¢ const openEditMesPushPackageCode = (row: any) => { editMesPushPackageCodeTitle.value = 'ç¼è¾æ¨émeså è£ å·'; editDialogRefMesPushPackageCode.value.openDialog(2,row); }; // å 餿¨émeså è£ å· 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(() => {}); }; // æ¹åæ¨émeså è£ å·é¡µé¢å®¹é const handleSizeChangeMesPushPackageCode = (val: number) => { tableParamsMesPushPackageCode.value.pageSize = val; handleQueryMesPushPackageCode(); }; // æ¹åæ¨émeså è£ å·é¡µç åºå· const handleCurrentChangeMesPushPackageCode = (val: number) => { tableParamsMesPushPackageCode.value.page = val; handleQueryMesPushPackageCode(); }; /***************************************************[æ¨émeså è£ å·æä½]ç»æ***************************************************/ /***************************************************[æ¨émeså è£ å·å¯¼å ¥]å¼å§***************************************************/ const importExcelTitleMesPushPackageCode = ref(""); const importExcelDialogRefMesPushPackageCode = ref(); //æå¼å¯¼å ¥çé¢ const openImportExcelMesPushPackageCode = () => { importExcelTitleMesPushPackageCode.value = 'å¯¼å ¥æ¨émeså è£ å·'; 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);//åè°å¯¼å ¥å页é¢çæ¹æ³ }; /***************************************************[æ¨émeså è£ å·å¯¼å ¥]ç»æ***************************************************/ /***************************************************[æ¨émeså è£ å·å¯¼åº]å¼å§***************************************************/ //å®ä¹å½å页é¢çæ¹æ³ç» 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,"æ¨émeså è£ å·",functionMapMesPushPackageCode); }; /***************************************************[æ¨émeså è£ å·å¯¼åº]ç»æ***************************************************/ // æ¨émeså è£ å·é¡µé¢å è½½æ¶ onMounted(async () => { }); handleQueryMesPushPackageCode(); </script> <style scoped> :deep(.el-input), :deep(.el-select), :deep(.el-input-number) { width: 100%; } </style> LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/MesPushPackageCode.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ using Admin.NET.Core; namespace Admin.NET.Application.Entity; /// <summary> /// æ¨émeså è£ å·è¡¨ /// </summary> [SugarTable("mes_PushPackageCode", "æ¨émeså è£ å·è¡¨")] 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> /// å建è é¨é¨Id /// </summary> [SugarColumn(ColumnName = "CreateOrgId", ColumnDescription = "å建è é¨é¨Id")] public long? CreateOrgId { get; set; } /// <summary> /// å建è é¨é¨åç§° /// </summary> [SugarColumn(ColumnName = "CreateOrgName", ColumnDescription = "å建è é¨é¨åç§°", Length = 64)] public string CreateOrgName { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,172 @@ using Admin.NET.Core; using System.ComponentModel.DataAnnotations; namespace Admin.NET.Application; /// <summary> /// æ¨émeså è£ å·åºç¡è¾å ¥åæ° /// </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> /// å建人Id /// </summary> public virtual long? CreateUserId { get; set; } /// <summary> /// å建人 /// </summary> public virtual string CreateUserName { get; set; } /// <summary> /// ä¿®æ¹äººId /// </summary> public virtual long? UpdateUserId { get; set; } /// <summary> /// ä¿®æ¹äºº /// </summary> public virtual string UpdateUserName { get; set; } /// <summary> /// å建è é¨é¨Id /// </summary> public virtual long? CreateOrgId { get; set; } /// <summary> /// å建è é¨é¨åç§° /// </summary> public virtual string CreateOrgName { get; set; } /// <summary> /// 软å é¤ /// </summary> public virtual bool IsDelete { get; set; } } /// <summary> /// æ¨émeså è£ å·å页æ¥è¯¢è¾å ¥åæ° /// </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> /// æ¨émeså è£ å·å¢å è¾å ¥åæ° /// </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> /// æ¨émeså è£ å·å é¤è¾å ¥åæ° /// </summary> public class DeleteMesPushPackageCodeInput : BaseIdInput { } /// <summary> /// æ¨émeså è£ å·æ´æ°è¾å ¥åæ° /// </summary> public class UpdateMesPushPackageCodeInput : AddMesPushPackageCodeInput { /// <summary> /// 主é®Id /// </summary> [Required(ErrorMessage = "主é®Idä¸è½ä¸ºç©º")] public long Id { get; set; } } /// <summary> /// æ¨émeså è£ å·ä¸»é®æ¥è¯¢è¾å ¥åæ° /// </summary> public class QueryByIdMesPushPackageCodeInput : DeleteMesPushPackageCodeInput { } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeOutput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,80 @@ namespace Admin.NET.Application; /// <summary> /// æ¨émeså è£ å·è¾åºåæ° /// </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> /// å建人Id /// </summary> public long? CreateUserId { get; set; } /// <summary> /// å建人 /// </summary> public string CreateUserName { get; set; } /// <summary> /// ä¿®æ¹äººId /// </summary> public long? UpdateUserId { get; set; } /// <summary> /// ä¿®æ¹äºº /// </summary> public string UpdateUserName { get; set; } /// <summary> /// å建è é¨é¨Id /// </summary> public long? CreateOrgId { get; set; } /// <summary> /// å建è é¨é¨åç§° /// </summary> public string CreateOrgName { get; set; } /// <summary> /// 软å é¤ /// </summary> public bool IsDelete { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/MesPushPackageCodeService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,331 @@ using 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> /// æ¨émeså è£ å·æå¡ /// </summary> [ApiDescriptionSettings(ApplicationConst.WmsOrderGroupName, Order = 100)] public class MesPushPackageCodeService : IDynamicApiController, ITransient { private readonly SqlSugarRepository<MesPushPackageCode> _rep; public MesPushPackageCodeService(SqlSugarRepository<MesPushPackageCode> rep) { _rep = rep; } /// <summary> /// å页æ¥è¯¢æ¨émeså è£ å· /// </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> /// ä¸å页æ¥è¯¢æ¨émeså è£ å· /// </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> /// å¢å æ¨émeså è£ å· /// </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> /// å 餿¨émeså è£ å· /// </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> /// æ´æ°æ¨émeså è£ å· /// </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> /// è·åæ¨émeså è£ å· /// </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模æ¿å¯¼å ¥æ¨émeså è£ å·åè½ /// </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}å¼ä¸æ£ç¡®ï¼"); } 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}å¼ä¸æ£ç¡®ï¼"); } 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> /// æ ¹æ®çæ¬ä¸è½½æ¨émeså è£ å·çExcelå¯¼å ¥æ¨¡æ¿ /// </summary> /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> [HttpGet] [ApiDescriptionSettings(Name = "DownloadExcelTemplate")] [Description("MesPushPackageCode/DownloadExcelTemplate")] public IActionResult DownloadExcelTemplate() { string _path = TemplateConst.EXCEL_TEMPLATEFILE_å¯¼å ¥æ¨¡çè·¯å¾ + $"\\æ¨émeså è£ å·{TemplateConst.EXCEL_TEMPLATEFILE_å¯¼å ¥æ¨¡çåç§°åç¼}.xlsx"; var fileName = HttpUtility.UrlEncode($"å¯¼å ¥æ¨¡æ¿(æ¨émeså è£ å·).xlsx", Encoding.GetEncoding("UTF-8")); return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; } #endregion #region ç§ææ¹æ³ /// <summary> /// å ¬å ±æ¥è¯¢æ¨émeså è£ å·æ¡ä»¶ /// </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 } 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)); LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/ÍÆËÍmes°ü×°ºÅµ¼ÈëÄ£°å.xlsxBinary files differ