From 6fb9acd1a65da4cb57408a4832d4bee4203f3bb4 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周五, 22 11月 2024 13:18:36 +0800 Subject: [PATCH] 增加 任务表 --- LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskInput.cs | 369 +++++++++++ LA24030_LuLiPackageLine_Web/src/api/main/WmsTask/wmsRbLineTask.ts | 78 ++ LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/机器人任务表导入模板.xlsx | 0 LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/index.vue | 424 +++++++++++++ LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskOutput.cs | 145 ++++ LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/WmsRbLineTaskService.cs | 511 ++++++++++++++++ LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/component/editDialog.vue | 291 +++++++++ 7 files changed, 1,818 insertions(+), 0 deletions(-) diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/WmsTask/wmsRbLineTask.ts b/LA24030_LuLiPackageLine_Web/src/api/main/WmsTask/wmsRbLineTask.ts new file mode 100644 index 0000000..18b7337 --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/api/main/WmsTask/wmsRbLineTask.ts @@ -0,0 +1,78 @@ +锘縤mport request from '/@/utils/request'; +enum Api { + AddWmsRbLineTask = '/api/wmsRbLineTask/add', + DeleteWmsRbLineTask = '/api/wmsRbLineTask/delete', + UpdateWmsRbLineTask = '/api/wmsRbLineTask/update', + PageWmsRbLineTask = '/api/wmsRbLineTask/page', + ListWmsRbLineTask = '/api/wmsRbLineTask/list', + DetailWmsRbLineTask = '/api/wmsRbLineTask/detail', + ImportExcelWmsRbLineTask = '/api/wmsRbLineTask/importExcel', + DownloadExcelTemplateWmsRbLineTask = '/api/wmsRbLineTask/downloadExcelTemplate', +} + +// 澧炲姞鏈哄櫒浜轰换鍔¤〃 +export const addWmsRbLineTask = (params?: any) => + request({ + url: Api.AddWmsRbLineTask, + method: 'post', + data: params + }); + +// 鍒犻櫎鏈哄櫒浜轰换鍔¤〃 +export const deleteWmsRbLineTask = (params?: any) => + request({ + url: Api.DeleteWmsRbLineTask, + method: 'post', + data: params + }); + +// 缂栬緫鏈哄櫒浜轰换鍔¤〃 +export const updateWmsRbLineTask = (params?: any) => + request({ + url: Api.UpdateWmsRbLineTask, + method: 'post', + data: params + }); + +// 瀵煎叆鏈哄櫒浜轰换鍔¤〃 +export const importExcelWmsRbLineTask = (params?: any) => + request({ + url: Api.ImportExcelWmsRbLineTask, + method: 'post', + data: params + }); + +// 涓嬭浇瀵煎叆鏈哄櫒浜轰换鍔¤〃妯℃澘 +export const downloadExcelTemplateWmsRbLineTask = (params?: any) => + request({ + url: Api.DownloadExcelTemplateWmsRbLineTask, + method: 'get', + data: params, + responseType: 'blob' + }); + + +// 鍒嗛〉鏌ヨ鏈哄櫒浜轰换鍔¤〃 +export const pageWmsRbLineTask = (params?: any) => + request({ + url: Api.PageWmsRbLineTask, + method: 'post', + data: params + }); + +// 涓嶅垎椤垫煡璇㈡満鍣ㄤ汉浠诲姟琛� +export const listWmsRbLineTask = (params?: any) => + request({ + url: Api.ListWmsRbLineTask, + method: 'get', + data: params + }); + +// 璇︽儏鏈哄櫒浜轰换鍔¤〃 +export const detailWmsRbLineTask = (id: any) => + request({ + url: Api.DetailWmsRbLineTask, + method: 'get', + data: { id } + }); + diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/component/editDialog.vue new file mode 100644 index 0000000..500304c --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/component/editDialog.vue @@ -0,0 +1,291 @@ +锘�<template> + <div class="wmsRbLineTask-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="taskNo"> + <el-input v-model="ruleForm.taskNo" 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="taskName"> + <el-input v-model="ruleForm.taskName" placeholder="璇疯緭鍏ヤ换鍔″悕绉�" maxlength="50" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="閮ㄤ欢鏉$爜" prop="upi"> + <el-input v-model="ruleForm.upi" placeholder="璇疯緭鍏ラ儴浠舵潯鐮�" maxlength="50" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="闀�" prop="length"> + <el-input v-model="ruleForm.length" placeholder="璇疯緭鍏ラ暱" maxlength="53" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="瀹�" prop="width"> + <el-input v-model="ruleForm.width" placeholder="璇疯緭鍏ュ" maxlength="53" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鍘�" prop="thk"> + <el-input v-model="ruleForm.thk" placeholder="璇疯緭鍏ュ帤" maxlength="53" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鎵规鍙�" prop="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="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="placeCode"> + <el-input v-model="ruleForm.placeCode" 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="rbTaskType"> + <el-select clearable v-model="ruleForm.rbTaskType" placeholder="璇烽�夋嫨浠诲姟绫诲瀷"> + <el-option v-for="(item,index) in getEnumRbTaskTypeData" :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="rbTaskTypeEnumName"> + <el-input v-model="ruleForm.rbTaskTypeEnumName" 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="taskStatus"> + <el-select clearable v-model="ruleForm.taskStatus" placeholder="璇烽�夋嫨浠诲姟鐘舵��"> + <el-option v-for="(item,index) in getEnumTaskStatusData" :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="taskStatusName"> + <el-input v-model="ruleForm.taskStatusName" 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="taskDescribe"> + <el-input v-model="ruleForm.taskDescribe" 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="taskMsg"> + <el-input v-model="ruleForm.taskMsg" 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="issueTime"> + <el-date-picker v-model="ruleForm.issueTime" type="date" placeholder="涓嬪彂鏃堕棿" /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="浠诲姟瀹屾垚鏃堕棿" prop="finishedTime"> + <el-date-picker v-model="ruleForm.finishedTime" type="date" placeholder="浠诲姟瀹屾垚鏃堕棿" /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鏄惁鏍囪寮哄埗瀹屾垚" prop="isFlagFinish"> + <el-switch v-model="ruleForm.isFlagFinish" active-text="鏄�" inactive-text="鍚�" /> + + </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 { addWmsRbLineTask, updateWmsRbLineTask, detailWmsRbLineTask } from "/@/api/main/WmsTask/wmsRbLineTask"; + import { getAPI } from '/@/utils/axios-utils'; + import { SysEnumApi } from '/@/api-services/api'; + + const getEnumRbTaskTypeData = ref<any>([]); + const getEnumTaskStatusData = 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>({ + taskNo: [{required: true, message: '璇疯緭鍏ヤ换鍔″彿锛�', trigger: 'blur',},], + upi: [{required: true, message: '璇疯緭鍏ラ儴浠舵潯鐮侊紒', trigger: 'blur',},], + length: [{required: true, message: '璇疯緭鍏ラ暱锛�', trigger: 'blur',},], + width: [{required: true, message: '璇疯緭鍏ュ锛�', trigger: 'blur',},], + thk: [{required: true, message: '璇疯緭鍏ュ帤锛�', trigger: 'blur',},], + planNo: [{required: true, message: '璇疯緭鍏ユ壒娆″彿锛�', trigger: 'blur',},], + orderId: [{required: true, message: '璇疯緭鍏ヨ鍗曞彿锛�', trigger: 'blur',},], + packageCode: [{required: true, message: '璇疯緭鍏ュ寘瑁呭彿锛�', trigger: 'blur',},], + placeCode: [{required: true, message: '璇疯緭鍏ュ簱浣嶇紪鐮侊紒', trigger: 'blur',},], + taskStatus: [{required: true, message: '璇烽�夋嫨浠诲姟鐘舵�侊紒', trigger: 'change',},], + taskStatusName: [{required: true, message: '璇疯緭鍏ヤ换鍔$姸鎬佸悕绉帮紒', trigger: 'blur',},], + isFlagFinish: [{required: true, message: '璇烽�夋嫨鏄惁鏍囪寮哄埗瀹屾垚锛�', trigger: 'change',},], + 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 detailWmsRbLineTask(rowData.id)).data.result; + else { + ruleForm.value = rowData; + ruleForm.value.isFlagFinish = false;//蹇呭~锛岃祴鍊奸粯璁ゅ�� + } + 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 addWmsRbLineTask(values); + } else { + title='缂栬緫'; + ret = await updateWmsRbLineTask(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 () => { + getEnumRbTaskTypeData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('RbTaskTypeEnum')).data.result ?? []; + getEnumTaskStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('TaskStatusEnum')).data.result ?? []; + }); + + //灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠� + defineExpose({ openDialog }); +</script> + + + + diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/index.vue new file mode 100644 index 0000000..d10b29e --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsTask/wmsRbLineTask/index.vue @@ -0,0 +1,424 @@ +锘�<template> + <div class="wmsRbLineTask-container"> + <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> + <el-form :model="queryParamsWmsRbLineTask" 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="queryParamsWmsRbLineTask.searchKey" clearable="" placeholder="浠诲姟鍙�,浠诲姟鍚嶇О,閮ㄤ欢鏉$爜,鎵规鍙�,璁㈠崟鍙�,鍖呰鍙�,搴撲綅缂栫爜,浠诲姟绫诲瀷鍚嶇О,浠诲姟鐘舵�佸悕绉�,浠诲姟鎻忚堪,浠诲姟娑堟伅,鍒涘缓浜�,淇敼浜�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟鍙�"> + <el-input v-model="queryParamsWmsRbLineTask.taskNo" clearable="" placeholder="璇疯緭鍏ヤ换鍔″彿"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟鍚嶇О"> + <el-input v-model="queryParamsWmsRbLineTask.taskName" clearable="" placeholder="璇疯緭鍏ヤ换鍔″悕绉�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="閮ㄤ欢鏉$爜"> + <el-input v-model="queryParamsWmsRbLineTask.upi" clearable="" placeholder="璇疯緭鍏ラ儴浠舵潯鐮�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="闀�"> + <el-input v-model="queryParamsWmsRbLineTask.length" clearable="" placeholder="璇疯緭鍏ラ暱"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="瀹�"> + <el-input v-model="queryParamsWmsRbLineTask.width" clearable="" placeholder="璇疯緭鍏ュ"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="鍘�"> + <el-input v-model="queryParamsWmsRbLineTask.thk" clearable="" placeholder="璇疯緭鍏ュ帤"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="鎵规鍙�"> + <el-input v-model="queryParamsWmsRbLineTask.planNo" clearable="" placeholder="璇疯緭鍏ユ壒娆″彿"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="璁㈠崟鍙�"> + <el-input v-model="queryParamsWmsRbLineTask.orderId" clearable="" placeholder="璇疯緭鍏ヨ鍗曞彿"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="鍖呰鍙�"> + <el-input v-model="queryParamsWmsRbLineTask.packageCode" clearable="" placeholder="璇疯緭鍏ュ寘瑁呭彿"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="搴撲綅缂栫爜"> + <el-input v-model="queryParamsWmsRbLineTask.placeCode" clearable="" placeholder="璇疯緭鍏ュ簱浣嶇紪鐮�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟绫诲瀷"> + <el-select clearable="" v-model="queryParamsWmsRbLineTask.rbTaskType" placeholder="璇烽�夋嫨浠诲姟绫诲瀷"> + <el-option v-for="(item,index) in getEnumRbTaskTypeData_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="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟绫诲瀷鍚嶇О"> + <el-input v-model="queryParamsWmsRbLineTask.rbTaskTypeEnumName" clearable="" placeholder="璇疯緭鍏ヤ换鍔$被鍨嬪悕绉�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟鐘舵��"> + <el-select clearable="" v-model="queryParamsWmsRbLineTask.taskStatus" placeholder="璇烽�夋嫨浠诲姟鐘舵��"> + <el-option v-for="(item,index) in getEnumTaskStatusData_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="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟鐘舵�佸悕绉�"> + <el-input v-model="queryParamsWmsRbLineTask.taskStatusName" clearable="" placeholder="璇疯緭鍏ヤ换鍔$姸鎬佸悕绉�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟鎻忚堪"> + <el-input v-model="queryParamsWmsRbLineTask.taskDescribe" clearable="" placeholder="璇疯緭鍏ヤ换鍔℃弿杩�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟娑堟伅"> + <el-input v-model="queryParamsWmsRbLineTask.taskMsg" clearable="" placeholder="璇疯緭鍏ヤ换鍔℃秷鎭�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="涓嬪彂鏃堕棿"> + <el-date-picker placeholder="璇烽�夋嫨涓嬪彂鏃堕棿" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsWmsRbLineTask.issueTimeRange" /> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="浠诲姟瀹屾垚鏃堕棿"> + <el-date-picker placeholder="璇烽�夋嫨浠诲姟瀹屾垚鏃堕棿" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsWmsRbLineTask.finishedTimeRange" /> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRbLineTask"> + <el-form-item label="鏄惁鏍囪寮哄埗瀹屾垚"> + <el-select clearable="" v-model="queryParamsWmsRbLineTask.isFlagFinish" placeholder="璇烽�夋嫨鏄惁鏍囪寮哄埗瀹屾垚"> + <el-option v-for="(item,index) in getEnumIsFlagFinishData_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="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="handleQueryWmsRbLineTask" v-auth="'wmsRbLineTask:page'" :disabled="disabled_btnWmsRbLineTask"> 鏌ヨ </el-button> + <el-button icon="ele-Refresh" @click="resetWmsRbLineTask"> 閲嶇疆 </el-button> + <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsRbLineTask" v-if="!showAdvanceQueryUIWmsRbLineTask" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button> + <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsRbLineTask" v-if="showAdvanceQueryUIWmsRbLineTask" style="margin-left:5px;"> 闅愯棌 </el-button> + <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsRbLineTask" v-auth="'wmsRbLineTask:add'"> 鏂板 </el-button> + <el-button type="primary" style="margin-left:5px;" icon="ele-Upload" @click="openImportExcelWmsRbLineTask" v-auth="'wmsRbLineTask:importExcel'" > 瀵煎叆 </el-button> + <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelWmsRbLineTask" v-auth="'wmsRbLineTask: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="tableRefWmsRbLineTask" + :data="tableDataWmsRbLineTask" + style="width: 100%" + v-loading="loadingWmsRbLineTask" + tooltip-effect="light" + row-key="id" + @sort-change="sortChangeWmsRbLineTask" + border=""> + <el-table-column type="index" label="搴忓彿" width="55" align="center"/> + <el-table-column prop="taskNo" label="浠诲姟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="taskName" label="浠诲姟鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规鍙�" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="rbTaskType" label="浠诲姟绫诲瀷" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.rbTaskType, getEnumRbTaskTypeData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="rbTaskTypeEnumName" label="浠诲姟绫诲瀷鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="taskStatus" label="浠诲姟鐘舵��" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.taskStatus, getEnumTaskStatusData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="taskStatusName" label="浠诲姟鐘舵�佸悕绉�" show-overflow-tooltip="" /> + <el-table-column prop="taskDescribe" label="浠诲姟鎻忚堪" show-overflow-tooltip="" /> + <el-table-column prop="taskMsg" label="浠诲姟娑堟伅" show-overflow-tooltip="" /> + <el-table-column prop="issueTime" label="涓嬪彂鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="finishedTime" label="浠诲姟瀹屾垚鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="isFlagFinish" label="鏄惁鏍囪寮哄埗瀹屾垚" show-overflow-tooltip=""> + <template #default="scope"> + <el-tag v-if="scope.row.isFlagFinish"> 鏄� </el-tag> + <el-tag type="danger" v-else> 鍚� </el-tag> + + </template> + + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> + <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> + <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsRbLineTask:update') || auth('wmsRbLineTask:delete')"> + <template #default="scope"> + <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsRbLineTask(scope.row)" v-auth="'wmsRbLineTask:update'"> 缂栬緫 </el-button> + <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsRbLineTask(scope.row)" v-auth="'wmsRbLineTask:delete'"> 鍒犻櫎 </el-button> + </template> + </el-table-column> + </el-table> + <el-pagination + v-model:currentPage="tableParamsWmsRbLineTask.page" + v-model:page-size="tableParamsWmsRbLineTask.pageSize" + :total="tableParamsWmsRbLineTask.total" + :page-sizes="[10, 20, 50, 100, 200, 500]" + small="" + background="" + @size-change="handleSizeChangeWmsRbLineTask" + @current-change="handleCurrentChangeWmsRbLineTask" + layout="total, sizes, prev, pager, next, jumper" + /> + <printDialogWmsRbLineTask + ref="printDialogRefWmsRbLineTask" + :title="printWmsRbLineTaskTitle" + @reloadTable="handleQueryWmsRbLineTask" /> + <editDialogWmsRbLineTask + ref="editDialogRefWmsRbLineTask" + :title="editWmsRbLineTaskTitle" + @reloadTable="handleQueryWmsRbLineTask" + /> + <importExcelDialog + ref="importExcelDialogRefWmsRbLineTask" + :title="importExcelTitleWmsRbLineTask" + @parentUploadFun="handleImportExcelWmsRbLineTask" + @parentDownFun="handleDownExcelWmsRbLineTask" + /> + </el-card> + </div> +</template> + +<script lang="ts" setup="" name="wmsRbLineTask"> + 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 printDialogWmsRbLineTask from '/@/views/system/print/component/hiprint/preview.vue' + import editDialogWmsRbLineTask from '/@/views/main/WmsTask/wmsRbLineTask/component/editDialog.vue' + import { pageWmsRbLineTask, deleteWmsRbLineTask,importExcelWmsRbLineTask,downloadExcelTemplateWmsRbLineTask } from '/@/api/main/WmsTask/wmsRbLineTask'; + import { getAPI } from '/@/utils/axios-utils'; + import { SysEnumApi } from '/@/api-services/api'; + import commonFunction from '/@/utils/commonFunction'; + + const getEnumRbTaskTypeData_Index = ref<any>([]); + const getEnumTaskStatusData_Index = ref<any>([]); + const getEnumIsFlagFinishData_Index = ref<any>([]); + + const { getEnumDesc } = commonFunction(); + + /***************************************************[鏈哄櫒浜轰换鍔¤〃鎿嶄綔]寮�濮�***************************************************/ + const showAdvanceQueryUIWmsRbLineTask = ref(false); + const tableRefWmsRbLineTask = ref(null); + const printDialogRefWmsRbLineTask = ref(); + const editDialogRefWmsRbLineTask = ref(); + const loadingWmsRbLineTask = ref(false); + const disabled_btnWmsRbLineTask = ref(false); + const tableDataWmsRbLineTask = ref<any>([]); + const queryParamsWmsRbLineTask = ref<any>({}); + const tableParamsWmsRbLineTask = ref({ + page: 1, + pageSize: 10, + total: 0, + }); + + const printWmsRbLineTaskTitle = ref(""); + const editWmsRbLineTaskTitle = ref(""); + + // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� + const changeAdvanceQueryUIWmsRbLineTask = () => { + showAdvanceQueryUIWmsRbLineTask.value = !showAdvanceQueryUIWmsRbLineTask.value; + } + + // 鏌ヨ鏈哄櫒浜轰换鍔¤〃 + const handleQueryWmsRbLineTask = async () => { + loadingWmsRbLineTask.value = true; + disabled_btnWmsRbLineTask.value = true; + var res = await pageWmsRbLineTask(Object.assign(queryParamsWmsRbLineTask.value, tableParamsWmsRbLineTask.value)); + if(res.data.type=="success"){ + tableDataWmsRbLineTask.value = res.data.result?.items ?? []; + tableParamsWmsRbLineTask.value.total = res.data.result?.total; + } + loadingWmsRbLineTask.value = false; + disabled_btnWmsRbLineTask.value = false; + }; + + // 閲嶇疆鏈哄櫒浜轰换鍔¤〃鏌ヨ + const resetWmsRbLineTask = async () => { + queryParamsWmsRbLineTask.value = {} + }; + + // 鏈哄櫒浜轰换鍔¤〃鍒楁帓搴� + const sortChangeWmsRbLineTask = async (column: any) => { + queryParamsWmsRbLineTask.value.field = column.prop; + queryParamsWmsRbLineTask.value.order = column.order; + await handleQueryWmsRbLineTask(); + }; + + // 鎵撳紑鏂板鏈哄櫒浜轰换鍔¤〃椤甸潰 + const openAddWmsRbLineTask = () => { + editWmsRbLineTaskTitle.value = '娣诲姞鏈哄櫒浜轰换鍔¤〃'; + editDialogRefWmsRbLineTask.value.openDialog(1,{}); + }; + + // 鎵撳紑鎵撳嵃鏈哄櫒浜轰换鍔¤〃椤甸潰 + const openPrintWmsRbLineTask = async (row: any) => { + printWmsRbLineTaskTitle.value = '鎵撳嵃鏈哄櫒浜轰换鍔¤〃'; + } + + // 鎵撳紑缂栬緫鏈哄櫒浜轰换鍔¤〃椤甸潰 + const openEditWmsRbLineTask = (row: any) => { + editWmsRbLineTaskTitle.value = '缂栬緫鏈哄櫒浜轰换鍔¤〃'; + editDialogRefWmsRbLineTask.value.openDialog(2,row); + }; + + // 鍒犻櫎鏈哄櫒浜轰换鍔¤〃 + const delWmsRbLineTask = (row: any) => { + ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(async () => { + loadingWmsRbLineTask.value = true; + var ret = await deleteWmsRbLineTask(row); + if(ret.data.type=="success"){ + ElMessage.success("鍒犻櫎鎴愬姛"); + } + loadingWmsRbLineTask.value = false; + handleQueryWmsRbLineTask(); + }) + .catch(() => {}); + }; + + // 鏀瑰彉鏈哄櫒浜轰换鍔¤〃椤甸潰瀹归噺 + const handleSizeChangeWmsRbLineTask = (val: number) => { + tableParamsWmsRbLineTask.value.pageSize = val; + handleQueryWmsRbLineTask(); + }; + + // 鏀瑰彉鏈哄櫒浜轰换鍔¤〃椤电爜搴忓彿 + const handleCurrentChangeWmsRbLineTask = (val: number) => { + tableParamsWmsRbLineTask.value.page = val; + handleQueryWmsRbLineTask(); + }; + +/***************************************************[鏈哄櫒浜轰换鍔¤〃鎿嶄綔]缁撴潫***************************************************/ +/***************************************************[鏈哄櫒浜轰换鍔¤〃瀵煎叆]寮�濮�***************************************************/ +const importExcelTitleWmsRbLineTask = ref(""); +const importExcelDialogRefWmsRbLineTask = ref(); +//鎵撳紑瀵煎叆鐣岄潰 +const openImportExcelWmsRbLineTask = () => { + importExcelTitleWmsRbLineTask.value = '瀵煎叆鏈哄櫒浜轰换鍔¤〃'; + importExcelDialogRefWmsRbLineTask.value.openDialog({}); +}; +//瀵煎叆鏁版嵁 +const handleImportExcelWmsRbLineTask = async (formData:Blob) => { + var result = await importExcelWmsRbLineTask(formData); + importExcelDialogRefWmsRbLineTask.value.callBackUploadFun(result.data);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 + if(result.data.type=="success"){ + handleQueryWmsRbLineTask(); + } +}; +//涓嬭浇瀵煎叆妯℃澘 +const handleDownExcelWmsRbLineTask = async () => { + var result = await downloadExcelTemplateWmsRbLineTask(); + importExcelDialogRefWmsRbLineTask.value.callBackDownFun(result);//鍥炶皟瀵煎叆瀛愰〉闈㈢殑鏂规硶 +}; +/***************************************************[鏈哄櫒浜轰换鍔¤〃瀵煎叆]缁撴潫***************************************************/ +/***************************************************[鏈哄櫒浜轰换鍔¤〃瀵煎嚭]寮�濮�***************************************************/ +//瀹氫箟褰撳墠椤甸潰鐨勬柟娉曠粍 +const functionMapWmsRbLineTask = { + getEnumRbTaskTypeData_Index, + getEnumTaskStatusData_Index, + getEnumIsFlagFinishData_Index, + formatDate_T_Date, + formatDate_T_Time +}; +//鐐瑰嚮瀵煎嚭鎸夐挳 +const handleExportExcelWmsRbLineTask = async (formData:Blob) => { + loadingWmsRbLineTask.value = true; + disabled_btnWmsRbLineTask.value = true; + var new_tableParamsWmsRbLineTask=JSON.parse(JSON.stringify(tableParamsWmsRbLineTask.value)); + new_tableParamsWmsRbLineTask.page = 1; + new_tableParamsWmsRbLineTask.pageSize = 100000; + var res = await pageWmsRbLineTask(Object.assign(queryParamsWmsRbLineTask.value, new_tableParamsWmsRbLineTask)); + if(res.data.type=="success"){ + exportExcelWmsRbLineTask(res.data.result?.items ?? []); + } + loadingWmsRbLineTask.value = false; + disabled_btnWmsRbLineTask.value = false; +}; +//瀵煎嚭 +const exportExcelWmsRbLineTask = async (exportDataList:Array) => { + exportPageExcel(exportDataList, tableRefWmsRbLineTask,"鏈哄櫒浜轰换鍔¤〃",functionMapWmsRbLineTask); +}; +/***************************************************[鏈哄櫒浜轰换鍔¤〃瀵煎嚭]缁撴潫***************************************************/ + // 鏈哄櫒浜轰换鍔¤〃椤甸潰鍔犺浇鏃� + onMounted(async () => { + getEnumRbTaskTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('RbTaskTypeEnum')).data.result ?? []; + getEnumTaskStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('TaskStatusEnum')).data.result ?? []; + getEnumIsFlagFinishData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('TrueFalseEnum')).data.result ?? []; + }); + + handleQueryWmsRbLineTask(); +</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/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskInput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskInput.cs new file mode 100644 index 0000000..727817e --- /dev/null +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskInput.cs @@ -0,0 +1,369 @@ +锘縰sing Admin.NET.Core; +using System.ComponentModel.DataAnnotations; + +namespace Admin.NET.Application; + + /// <summary> + /// 鏈哄櫒浜轰换鍔¤〃鍩虹杈撳叆鍙傛暟 + /// </summary> + public class WmsRbLineTaskBaseInput + { + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public virtual string TaskNo { get; set; } + + /// <summary> + /// 浠诲姟鍚嶇О + /// </summary> + public virtual string TaskName { get; set; } + + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + public virtual string UPI { get; set; } + + /// <summary> + /// 闀� + /// </summary> + public virtual float Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + public virtual float Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + public virtual float Thk { get; set; } + + /// <summary> + /// 鎵规鍙� + /// </summary> + public virtual string PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + public virtual string OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + public virtual string PackageCode { get; set; } + + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + public virtual string PlaceCode { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> + public virtual Admin.NET.Application.RbTaskTypeEnum? RbTaskType { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷鍚嶇О + /// </summary> + public virtual string RbTaskTypeEnumName { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�� + /// </summary> + public virtual Admin.NET.Application.TaskStatusEnum TaskStatus { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�佸悕绉� + /// </summary> + public virtual string TaskStatusName { get; set; } + + /// <summary> + /// 浠诲姟鎻忚堪 + /// </summary> + public virtual string TaskDescribe { get; set; } + + /// <summary> + /// 浠诲姟娑堟伅 + /// </summary> + public virtual string TaskMsg { get; set; } + + /// <summary> + /// 涓嬪彂鏃堕棿 + /// </summary> + public virtual DateTime? IssueTime { get; set; } + + /// <summary> + /// 浠诲姟瀹屾垚鏃堕棿 + /// </summary> + public virtual DateTime? FinishedTime { get; set; } + + /// <summary> + /// 鏄惁鏍囪寮哄埗瀹屾垚 + /// </summary> + public virtual bool IsFlagFinish { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public virtual DateTime? CreateTime { get; set; } + + /// <summary> + /// 淇敼鏃堕棿 + /// </summary> + public virtual DateTime? UpdateTime { get; set; } + + /// <summary> + /// 鍒涘缓浜篒d + /// </summary> + public virtual long? CreateUserId { get; set; } + + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public virtual string CreateUserName { get; set; } + + /// <summary> + /// 淇敼浜篒d + /// </summary> + public virtual long? UpdateUserId { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + public virtual string UpdateUserName { get; set; } + + /// <summary> + /// 杞垹闄� + /// </summary> + public virtual bool IsDelete { get; set; } + + } + + /// <summary> + /// 鏈哄櫒浜轰换鍔¤〃鍒嗛〉鏌ヨ杈撳叆鍙傛暟 + /// </summary> + public class WmsRbLineTaskInput : BasePageInput + { + /// <summary> + /// 鍏抽敭瀛楁煡璇� + /// </summary> + public string? SearchKey { get; set; } + + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string? TaskNo { get; set; } + + /// <summary> + /// 浠诲姟鍚嶇О + /// </summary> + public string? TaskName { get; set; } + + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + public string? UPI { get; set; } + + /// <summary> + /// 闀� + /// </summary> + public float? Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + public float? Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + public float? Thk { get; set; } + + /// <summary> + /// 鎵规鍙� + /// </summary> + public string? PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + public string? OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + public string? PackageCode { get; set; } + + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + public string? PlaceCode { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> + public Admin.NET.Application.RbTaskTypeEnum? RbTaskType { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷鍚嶇О + /// </summary> + public string? RbTaskTypeEnumName { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�� + /// </summary> + public Admin.NET.Application.TaskStatusEnum? TaskStatus { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�佸悕绉� + /// </summary> + public string? TaskStatusName { get; set; } + + /// <summary> + /// 浠诲姟鎻忚堪 + /// </summary> + public string? TaskDescribe { get; set; } + + /// <summary> + /// 浠诲姟娑堟伅 + /// </summary> + public string? TaskMsg { get; set; } + + /// <summary> + /// 涓嬪彂鏃堕棿 + /// </summary> + public DateTime? IssueTime { get; set; } + + /// <summary> + /// 涓嬪彂鏃堕棿鑼冨洿 + /// </summary> + public List<DateTime?> IssueTimeRange { get; set; } + /// <summary> + /// 浠诲姟瀹屾垚鏃堕棿 + /// </summary> + public DateTime? FinishedTime { get; set; } + + /// <summary> + /// 浠诲姟瀹屾垚鏃堕棿鑼冨洿 + /// </summary> + public List<DateTime?> FinishedTimeRange { get; set; } + /// <summary> + /// 鏄惁鏍囪寮哄埗瀹屾垚 + /// </summary> + public bool? IsFlagFinish { get; set; } + + } + + /// <summary> + /// 鏈哄櫒浜轰换鍔¤〃澧炲姞杈撳叆鍙傛暟 + /// </summary> + public class AddWmsRbLineTaskInput : WmsRbLineTaskBaseInput + { + /// <summary> + /// 浠诲姟鍙� + /// </summary> + [Required(ErrorMessage = "浠诲姟鍙蜂笉鑳戒负绌�")] + public override string TaskNo { get; set; } + + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + [Required(ErrorMessage = "閮ㄤ欢鏉$爜涓嶈兘涓虹┖")] + public override string UPI { get; set; } + + /// <summary> + /// 闀� + /// </summary> + [Required(ErrorMessage = "闀夸笉鑳戒负绌�")] + public override float Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + [Required(ErrorMessage = "瀹戒笉鑳戒负绌�")] + public override float Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + [Required(ErrorMessage = "鍘氫笉鑳戒负绌�")] + public override float Thk { get; set; } + + /// <summary> + /// 鎵规鍙� + /// </summary> + [Required(ErrorMessage = "鎵规鍙蜂笉鑳戒负绌�")] + public override string PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + [Required(ErrorMessage = "璁㈠崟鍙蜂笉鑳戒负绌�")] + public override string OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + [Required(ErrorMessage = "鍖呰鍙蜂笉鑳戒负绌�")] + public override string PackageCode { get; set; } + + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + [Required(ErrorMessage = "搴撲綅缂栫爜涓嶈兘涓虹┖")] + public override string PlaceCode { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�� + /// </summary> + [Required(ErrorMessage = "浠诲姟鐘舵�佷笉鑳戒负绌�")] + public override Admin.NET.Application.TaskStatusEnum TaskStatus { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�佸悕绉� + /// </summary> + [Required(ErrorMessage = "浠诲姟鐘舵�佸悕绉颁笉鑳戒负绌�")] + public override string TaskStatusName { get; set; } + + /// <summary> + /// 鏄惁鏍囪寮哄埗瀹屾垚 + /// </summary> + [Required(ErrorMessage = "鏄惁鏍囪寮哄埗瀹屾垚涓嶈兘涓虹┖")] + public override bool IsFlagFinish { get; set; } + + /// <summary> + /// 杞垹闄� + /// </summary> + [Required(ErrorMessage = "杞垹闄や笉鑳戒负绌�")] + public override bool IsDelete { get; set; } + + } + + /// <summary> + /// 鏈哄櫒浜轰换鍔¤〃鍒犻櫎杈撳叆鍙傛暟 + /// </summary> + public class DeleteWmsRbLineTaskInput : BaseIdInput + { + } + + /// <summary> + /// 鏈哄櫒浜轰换鍔¤〃鏇存柊杈撳叆鍙傛暟 + /// </summary> + public class UpdateWmsRbLineTaskInput : AddWmsRbLineTaskInput + { + /// <summary> + /// 涓婚敭Id + /// </summary> + [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")] + public long Id { get; set; } + + } + + /// <summary> + /// 鏈哄櫒浜轰换鍔¤〃涓婚敭鏌ヨ杈撳叆鍙傛暟 + /// </summary> + public class QueryByIdWmsRbLineTaskInput : DeleteWmsRbLineTaskInput + { + + } diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskOutput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskOutput.cs new file mode 100644 index 0000000..b0771a4 --- /dev/null +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/WmsRbLineTaskOutput.cs @@ -0,0 +1,145 @@ +锘縩amespace Admin.NET.Application; + +/// <summary> +/// 鏈哄櫒浜轰换鍔¤〃杈撳嚭鍙傛暟 +/// </summary> +public class WmsRbLineTaskOutput +{ + /// <summary> + /// 涓婚敭Id + /// </summary> + public long? Id { get; set; } + + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string TaskNo { get; set; } + + /// <summary> + /// 浠诲姟鍚嶇О + /// </summary> + public string TaskName { get; set; } + + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + public string UPI { get; set; } + + /// <summary> + /// 闀� + /// </summary> + public float Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + public float Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + public float Thk { get; set; } + + /// <summary> + /// 鎵规鍙� + /// </summary> + public string PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + public string OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + public string PackageCode { get; set; } + + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + public string PlaceCode { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> + public Admin.NET.Application.RbTaskTypeEnum? RbTaskType { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷鍚嶇О + /// </summary> + public string RbTaskTypeEnumName { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�� + /// </summary> + public Admin.NET.Application.TaskStatusEnum TaskStatus { get; set; } + + /// <summary> + /// 浠诲姟鐘舵�佸悕绉� + /// </summary> + public string TaskStatusName { get; set; } + + /// <summary> + /// 浠诲姟鎻忚堪 + /// </summary> + public string TaskDescribe { get; set; } + + /// <summary> + /// 浠诲姟娑堟伅 + /// </summary> + public string TaskMsg { get; set; } + + /// <summary> + /// 涓嬪彂鏃堕棿 + /// </summary> + public DateTime? IssueTime { get; set; } + + /// <summary> + /// 浠诲姟瀹屾垚鏃堕棿 + /// </summary> + public DateTime? FinishedTime { get; set; } + + /// <summary> + /// 鏄惁鏍囪寮哄埗瀹屾垚 + /// </summary> + public bool IsFlagFinish { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public DateTime? CreateTime { get; set; } + + /// <summary> + /// 淇敼鏃堕棿 + /// </summary> + public DateTime? UpdateTime { get; set; } + + /// <summary> + /// 鍒涘缓浜篒d + /// </summary> + public long? CreateUserId { get; set; } + + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public string CreateUserName { get; set; } + + /// <summary> + /// 淇敼浜篒d + /// </summary> + public long? UpdateUserId { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + public string UpdateUserName { get; set; } + + /// <summary> + /// 杞垹闄� + /// </summary> + public bool IsDelete { get; set; } + + } + + diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/WmsRbLineTaskService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/WmsRbLineTaskService.cs new file mode 100644 index 0000000..a007bc2 --- /dev/null +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/WmsRbLineTaskService.cs @@ -0,0 +1,511 @@ +锘縰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.WmsTaskGroupName, Order = 100)] +public class WmsRbLineTaskService : IDynamicApiController, ITransient +{ + private readonly SqlSugarRepository<WmsRbLineTask> _rep; + public WmsRbLineTaskService(SqlSugarRepository<WmsRbLineTask> rep) + { + _rep = rep; + } + + /// <summary> + /// 鍒嗛〉鏌ヨ鏈哄櫒浜轰换鍔¤〃 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "Page")] + [Description("WmsRbLineTask/Page")] + public async Task<SqlSugarPagedList<WmsRbLineTaskOutput>> Page(WmsRbLineTaskInput 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("WmsRbLineTask/List")] + public async Task<List<WmsRbLineTaskOutput>> List([FromQuery] WmsRbLineTaskInput input) + { + var query = CommonPageFilter(input); + return await query.OrderBuilder(input, "", "Id").Select<WmsRbLineTaskOutput>().ToListAsync(); + } + + /// <summary> + /// 澧炲姞鏈哄櫒浜轰换鍔¤〃 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "Add")] + [Description("WmsRbLineTask/Add")] + public async Task<long> Add(AddWmsRbLineTaskInput input) + { + var entity = input.Adapt<WmsRbLineTask>(); + + //閲嶅鎬ч獙璇� + await CheckExist(entity); + + await _rep.InsertAsync(entity); + return entity.Id; + } + + /// <summary> + /// 鍒犻櫎鏈哄櫒浜轰换鍔¤〃 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "Delete")] + [Description("WmsRbLineTask/Delete")] + public async Task Delete(DeleteWmsRbLineTaskInput 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("WmsRbLineTask/Update")] + public async Task Update(UpdateWmsRbLineTaskInput input) + { + var entity = input.Adapt<WmsRbLineTask>(); + + //閲嶅鎬ч獙璇� + 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("WmsRbLineTask/Detail")] + public async Task<WmsRbLineTask> Detail([FromQuery] QueryByIdWmsRbLineTaskInput input) + { + return await _rep.GetFirstAsync(u => u.Id == input.Id); + } + + + + + + #region 瀵煎叆 + + /// <summary> + /// Excel妯℃澘瀵煎叆鏈哄櫒浜轰换鍔¤〃鍔熻兘 + /// </summary> + /// <param name="file">Excel妯℃澘鏂囦欢</param> + /// <returns>瀵煎叆鐨勮褰曟暟</returns> + [HttpPost] + [ApiDescriptionSettings(Name = "ImportExcel")] + [Description("WmsRbLineTask/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<WmsRbLineTask>> CommonImport(DataTable dataTable, int dataStartLine) + { + var details = new List<WmsRbLineTask>(); + int index = dataStartLine;//妯$増鍒楀悕寮�濮嬭 + foreach (System.Data.DataRow row in dataTable.Rows) + { + index++; + //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛� + + var addItem = new WmsRbLineTask(); + #region 瀹氫箟鍙橀噺 + var _TaskNo = "";//浠诲姟鍙� + var _TaskName = "";//浠诲姟鍚嶇О + var _UPI = "";//閮ㄤ欢鏉$爜 + var _Length = "";//闀� + var _Width = "";//瀹� + var _Thk = "";//鍘� + var _PlanNo = "";//鎵规鍙� + var _OrderId = "";//璁㈠崟鍙� + var _PackageCode = "";//鍖呰鍙� + var _PlaceCode = "";//搴撲綅缂栫爜 + var _RbTaskType = "";//浠诲姟绫诲瀷 + var _RbTaskTypeEnumName = "";//浠诲姟绫诲瀷鍚嶇О + var _TaskStatus = "";//浠诲姟鐘舵�� + var _TaskStatusName = "";//浠诲姟鐘舵�佸悕绉� + var _TaskDescribe = "";//浠诲姟鎻忚堪 + var _TaskMsg = "";//浠诲姟娑堟伅 + var _IssueTime = "";//涓嬪彂鏃堕棿 + var _FinishedTime = "";//浠诲姟瀹屾垚鏃堕棿 + var _IsFlagFinish = "";//鏄惁鏍囪寮哄埗瀹屾垚 + #endregion + + + #region 鍙栧�� + _TaskNo = row["浠诲姟鍙�"]?.ToString(); + _TaskName = row["浠诲姟鍚嶇О"]?.ToString(); + _UPI = row["閮ㄤ欢鏉$爜"]?.ToString(); + _Length = row["闀�"]?.ToString(); + _Width = row["瀹�"]?.ToString(); + _Thk = row["鍘�"]?.ToString(); + _PlanNo = row["鎵规鍙�"]?.ToString(); + _OrderId = row["璁㈠崟鍙�"]?.ToString(); + _PackageCode = row["鍖呰鍙�"]?.ToString(); + _PlaceCode = row["搴撲綅缂栫爜"]?.ToString(); + _RbTaskType = row["浠诲姟绫诲瀷"]?.ToString(); + _RbTaskTypeEnumName = row["浠诲姟绫诲瀷鍚嶇О"]?.ToString(); + _TaskStatus = row["浠诲姟鐘舵��"]?.ToString(); + _TaskStatusName = row["浠诲姟鐘舵�佸悕绉�"]?.ToString(); + _TaskDescribe = row["浠诲姟鎻忚堪"]?.ToString(); + _TaskMsg = row["浠诲姟娑堟伅"]?.ToString(); + _IssueTime = row["涓嬪彂鏃堕棿"]?.ToString(); + _FinishedTime = row["浠诲姟瀹屾垚鏃堕棿"]?.ToString(); + _IsFlagFinish = row["鏄惁鏍囪寮哄埗瀹屾垚"]?.ToString(); + #endregion + + + #region 楠岃瘉 + + if (string.IsNullOrEmpty(_TaskNo)) + { + throw Oops.Oh($"绗瑊index}琛孾浠诲姟鍙穄{_TaskNo}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_TaskNo)) + { + addItem.TaskNo = (string)(_TaskNo.Trim()); + } + if (!string.IsNullOrEmpty(_TaskName)) + { + addItem.TaskName = (string)(_TaskName.Trim()); + } + + if (string.IsNullOrEmpty(_UPI)) + { + throw Oops.Oh($"绗瑊index}琛孾閮ㄤ欢鏉$爜]{_UPI}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_UPI)) + { + addItem.UPI = (string)(_UPI.Trim()); + } + + if (string.IsNullOrEmpty(_Length)) + { + throw Oops.Oh($"绗瑊index}琛孾闀縘{_Length}涓嶈兘涓虹┖锛�"); + } + + //if(!string.IsNullOrEmpty(_Length)) + //{ + // addItem.Length = (float)(_Length.Trim()); + // } + + //if (string.IsNullOrEmpty(_Width)) + //{ + // throw Oops.Oh($"绗瑊index}琛孾瀹絔{_Width}涓嶈兘涓虹┖锛�"); + //} + + //if(!string.IsNullOrEmpty(_Width)) + //{ + // addItem.Width = (float)(_Width.Trim()); + // } + + if (string.IsNullOrEmpty(_Thk)) + { + throw Oops.Oh($"绗瑊index}琛孾鍘歖{_Thk}涓嶈兘涓虹┖锛�"); + } + + //if(!string.IsNullOrEmpty(_Thk)) + //{ + // addItem.Thk = (float)(_Thk.Trim()); + // } + + if (string.IsNullOrEmpty(_PlanNo)) + { + throw Oops.Oh($"绗瑊index}琛孾鎵规鍙穄{_PlanNo}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_PlanNo)) + { + addItem.PlanNo = (string)(_PlanNo.Trim()); + } + + if (string.IsNullOrEmpty(_OrderId)) + { + throw Oops.Oh($"绗瑊index}琛孾璁㈠崟鍙穄{_OrderId}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_OrderId)) + { + addItem.OrderId = (string)(_OrderId.Trim()); + } + + if (string.IsNullOrEmpty(_PackageCode)) + { + throw Oops.Oh($"绗瑊index}琛孾鍖呰鍙穄{_PackageCode}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_PackageCode)) + { + addItem.PackageCode = (string)(_PackageCode.Trim()); + } + + if (string.IsNullOrEmpty(_PlaceCode)) + { + throw Oops.Oh($"绗瑊index}琛孾搴撲綅缂栫爜]{_PlaceCode}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_PlaceCode)) + { + addItem.PlaceCode = (string)(_PlaceCode.Trim()); + } + if (!string.IsNullOrEmpty(_RbTaskType)) + { + Admin.NET.Application.RbTaskTypeEnum enumRbTaskType = default(Admin.NET.Application.RbTaskTypeEnum); + + if (!Enum.TryParse<Admin.NET.Application.RbTaskTypeEnum>(_RbTaskType, out enumRbTaskType) && !string.IsNullOrEmpty(_RbTaskType)) + { + throw Oops.Oh($"绗瑊index}琛孾浠诲姟绫诲瀷]{_RbTaskType}鍊间笉姝g‘锛�"); + } + else + { + addItem.RbTaskType = enumRbTaskType; + } + + } + if (!string.IsNullOrEmpty(_RbTaskTypeEnumName)) + { + addItem.RbTaskTypeEnumName = (string)(_RbTaskTypeEnumName.Trim()); + } + + if (string.IsNullOrEmpty(_TaskStatus)) + { + throw Oops.Oh($"绗瑊index}琛孾浠诲姟鐘舵�乚{_TaskStatus}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_TaskStatus)) + { + Admin.NET.Application.TaskStatusEnum enumTaskStatus = default(Admin.NET.Application.TaskStatusEnum); + + if (!Enum.TryParse<Admin.NET.Application.TaskStatusEnum>(_TaskStatus, out enumTaskStatus) && !string.IsNullOrEmpty(_TaskStatus)) + { + throw Oops.Oh($"绗瑊index}琛孾浠诲姟鐘舵�乚{_TaskStatus}鍊间笉姝g‘锛�"); + } + else + { + addItem.TaskStatus = enumTaskStatus; + } + + } + + if (string.IsNullOrEmpty(_TaskStatusName)) + { + throw Oops.Oh($"绗瑊index}琛孾浠诲姟鐘舵�佸悕绉癩{_TaskStatusName}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_TaskStatusName)) + { + addItem.TaskStatusName = (string)(_TaskStatusName.Trim()); + } + if (!string.IsNullOrEmpty(_TaskDescribe)) + { + addItem.TaskDescribe = (string)(_TaskDescribe.Trim()); + } + if (!string.IsNullOrEmpty(_TaskMsg)) + { + addItem.TaskMsg = (string)(_TaskMsg.Trim()); + } + if (!string.IsNullOrEmpty(_IssueTime)) + { + addItem.IssueTime = Convert.ToDateTime(Convert.ToDateTime(_IssueTime.Trim()).ToShortDateString()); + } + if (!string.IsNullOrEmpty(_FinishedTime)) + { + addItem.FinishedTime = Convert.ToDateTime(Convert.ToDateTime(_FinishedTime.Trim()).ToShortDateString()); + } + + if (string.IsNullOrEmpty(_IsFlagFinish)) + { + throw Oops.Oh($"绗瑊index}琛孾鏄惁鏍囪寮哄埗瀹屾垚]{_IsFlagFinish}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_IsFlagFinish)) + { + if (!_IsFlagFinish.Equals("鏄�") && !_IsFlagFinish.Equals("鍚�")) + { + throw Oops.Oh($"绗瑊index}琛孾鏄惁鏍囪寮哄埗瀹屾垚]{_IsFlagFinish}鍊间笉姝g‘锛�"); + } + else + { + bool outIsFlagFinish = _IsFlagFinish.Equals("鏄�") ? true : false; + addItem.IsFlagFinish = outIsFlagFinish; + } + } + + #endregion + + + details.Add(addItem); + } + //楠岄噸 + await CheckExisitForImport(details); + return details; + } + + /// <summary> + /// 鏍规嵁鐗堟湰涓嬭浇鏈哄櫒浜轰换鍔¤〃鐨凟xcel瀵煎叆妯℃澘 + /// </summary> + /// <returns>涓嬭浇鐨勬ā鏉挎枃浠�</returns> + [HttpGet] + [ApiDescriptionSettings(Name = "DownloadExcelTemplate")] + [Description("WmsRbLineTask/DownloadExcelTemplate")] + public IActionResult DownloadExcelTemplate() + { + string _path = TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増璺緞 + $"\\鏈哄櫒浜轰换鍔¤〃{TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増鍚嶇О鍚庣紑}.xlsx"; + var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鏈哄櫒浜轰换鍔¤〃).xlsx", Encoding.GetEncoding("UTF-8")); + return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; + } + + #endregion + + #region 绉佹湁鏂规硶 + + /// <summary> + /// 鍏叡鏌ヨ鏈哄櫒浜轰换鍔¤〃鏉′欢 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + private ISugarQueryable<WmsRbLineTaskOutput> CommonPageFilter(WmsRbLineTaskInput input) + { + var query = _rep.AsQueryable() + .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u => + u.TaskNo.Contains(input.SearchKey.Trim()) + || u.TaskName.Contains(input.SearchKey.Trim()) + || u.UPI.Contains(input.SearchKey.Trim()) + || u.PlanNo.Contains(input.SearchKey.Trim()) + || u.OrderId.Contains(input.SearchKey.Trim()) + || u.PackageCode.Contains(input.SearchKey.Trim()) + || u.PlaceCode.Contains(input.SearchKey.Trim()) + || u.RbTaskTypeEnumName.Contains(input.SearchKey.Trim()) + || u.TaskStatusName.Contains(input.SearchKey.Trim()) + || u.TaskDescribe.Contains(input.SearchKey.Trim()) + || u.TaskMsg.Contains(input.SearchKey.Trim()) + || u.CreateUserName.Contains(input.SearchKey.Trim()) + || u.UpdateUserName.Contains(input.SearchKey.Trim()) + ) + .WhereIF(!string.IsNullOrWhiteSpace(input.TaskNo), u => u.TaskNo.Contains(input.TaskNo.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.TaskName), u => u.TaskName.Contains(input.TaskName.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.UPI), u => u.UPI.Contains(input.UPI.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(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.PlaceCode), u => u.PlaceCode.Contains(input.PlaceCode.Trim())) + .WhereIF(input.RbTaskType.HasValue, u => u.RbTaskType == input.RbTaskType) + .WhereIF(!string.IsNullOrWhiteSpace(input.RbTaskTypeEnumName), u => u.RbTaskTypeEnumName.Contains(input.RbTaskTypeEnumName.Trim())) + .WhereIF(input.TaskStatus.HasValue, u => u.TaskStatus == input.TaskStatus) + .WhereIF(!string.IsNullOrWhiteSpace(input.TaskStatusName), u => u.TaskStatusName.Contains(input.TaskStatusName.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.TaskDescribe), u => u.TaskDescribe.Contains(input.TaskDescribe.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.TaskMsg), u => u.TaskMsg.Contains(input.TaskMsg.Trim())) + .WhereIF(input.IsFlagFinish.HasValue, u => u.IsFlagFinish == input.IsFlagFinish) + .Select<WmsRbLineTaskOutput>(); + if (input.IssueTimeRange != null && input.IssueTimeRange.Count > 0) + { + DateTime? start = input.IssueTimeRange[0].Value.AddDays(-1); + query = query.WhereIF(start.HasValue, u => u.IssueTime > start); + if (input.IssueTimeRange.Count > 1 && input.IssueTimeRange[1].HasValue) + { + var end = input.IssueTimeRange[1].Value.AddDays(1); + query = query.Where(u => u.IssueTime < end); + } + } + if (input.FinishedTimeRange != null && input.FinishedTimeRange.Count > 0) + { + DateTime? start = input.FinishedTimeRange[0].Value.AddDays(-1); + query = query.WhereIF(start.HasValue, u => u.FinishedTime > start); + if (input.FinishedTimeRange.Count > 1 && input.FinishedTimeRange[1].HasValue) + { + var end = input.FinishedTimeRange[1].Value.AddDays(1); + query = query.Where(u => u.FinishedTime < end); + } + } + return query; + } + + /// <summary> + /// 閲嶅鎬ч獙璇� + /// </summary> + /// <param name="input">楠岃瘉瀵硅薄</param> + /// <param name="isEdit">鏄惁鏄紪杈�</param> + /// <returns></returns> + private async Task CheckExist(WmsRbLineTask input, bool isEdit = false) + { + + + + //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲� + + + //娌℃湁閰嶇疆鍗曠嫭鏍¢獙锛屼笉闇�瑕侀獙閲� + } + + /// <summary> + /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇� + /// </summary> + /// <param name="inputs"></param> + /// <returns></returns> + private async Task CheckExisitForImport(List<WmsRbLineTask> inputs) + { + if (inputs?.Count <= 0) + { + throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖"); + } + //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� + + + + + + + + + //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� + + + + } + #endregion + +} + diff --git "a/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\234\272\345\231\250\344\272\272\344\273\273\345\212\241\350\241\250\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\234\272\345\231\250\344\272\272\344\273\273\345\212\241\350\241\250\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" new file mode 100644 index 0000000..573b7e2 --- /dev/null +++ "b/LA24030_LuLiPackageLine_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/\346\234\272\345\231\250\344\272\272\344\273\273\345\212\241\350\241\250\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" Binary files differ -- Gitblit v1.9.3