fix:任务执行优化,文件上传优化

This commit is contained in:
2026-01-21 17:22:32 +08:00
parent ebb021a35f
commit 3abf414c02
5 changed files with 62 additions and 11 deletions

View File

@@ -31,7 +31,9 @@ export const checklocalresourceApi = async (params: any) => {
/**
* 本地任务提交接口
* @param params taskName任务名称 taskId任务id taskCmd启动软件路径 taskPreCmd任务前处理命令 taskPostCmd任务后处理命令 taskCmdParam任务命令参数 taskPreCmdParam任务前处理命令参数 taskPostCmdParam任务后处理命令参数 fileIds[输入文件id] fileNames[输入文件名称] fileType文件类型分类 owner任务所有人 tenantIdid userId用户id appName应用名称 uploadId回传文件夹id
* @param params --subRunId 当前提交的节点id --taskName 工况名 --taskId 工况id --runId 算例id --runName 算例名 --asyncTaskId 节点同步的任务id --taskCmd 本地应用的地址 --taskPreCmd 任务前处理命令 --taskPostCmd 任务后处理命令
* --taskCmdParam 任务命令参数 --taskPreCmdParam 任务前处理参数 --taskPostCmdParam --fileIds 下载文件的id列表 --fileNames 下载文件的名称列表 --fileType 关闭应用后回传的文件类型
* --owner 任务发起人 --tenantId 团队id --userId 用户id --localAppName 本地应用名称 --localAppVersion 本地应用版本 --uploadId 回传文件夹的id
* @returns
*/
export const submittaskApi = async (params: any) => {

View File

@@ -94,16 +94,17 @@ const initFun = (data: any) => {
if (uploading.value) {
return;
}
const isSaveLocal = data.data?.isSaveLocal || 'N';
listData.value.some((item: any, index: number) => {
if (item.data.status === '0') {
sliceFileFun(index);
sliceFileFun(index, isSaveLocal);
return true;
}
});
};
// 分片并上传
const sliceFileFun = async (fileIndex: number) => {
const sliceFileFun = async (fileIndex: number, isSaveLocal?: any) => {
uploading.value = true;
const fileObj = listData.value[fileIndex];
const file = fileObj.file;
@@ -123,6 +124,7 @@ const sliceFileFun = async (fileIndex: number) => {
chunk: chunkIndex + 1,
chunkTotal: totalChunks,
file: chunkFile,
isSaveLocal,
};
if (fileTempPath) {
params.fileTempPath = fileTempPath;

View File

@@ -184,6 +184,8 @@ import parameterReference from '@/views/task/execution/components/runDetailPage/
import { ElMessage } from 'element-plus';
import emitter from '@/utils/eventBus';
import { fileUploadAllocationTypeFun } from '@/utils/file';
import { getUserData } from '@/utils/user';
import dayjs from 'dayjs';
const props = defineProps({
nodeParams: {
@@ -262,6 +264,10 @@ const saveNodeParamFun = async () => {
if (runNodeData.nodeType === 'HPC') {
setSpecialParamData(inputParams, runNodeData);
}
if (runNodeData.nodeType === '脚本节点' && runNodeData.label.includes('报告')) {
setReportSpecialParamDataFun(inputParams);
}
const params: any = {
nodeUuid: runNodeInfo.uuid,
runId: runNodeInfo.runId,
@@ -363,6 +369,7 @@ const runUploadRunFilesFun = async (list: any) => {
...item,
isApprove: 0, // 0否 1是
taskType: 4, // 4交付物
isSaveLocal: 'Y',
},
});
});
@@ -455,6 +462,24 @@ const setSpecialParamData = (param: any, data: any) => {
}
};
// 报告脚本生成参数填写
const setReportSpecialParamDataFun = (param: any) => {
const projectInfo = JSON.parse(
localStorage.getItem('CURRENT_FILTER_RUN_TASK_TREE_PARAM') as string
);
param.reportName = '算例报告_' + dayjs().format('YYYY_MM_DD_HH_mm');
param.applicants = getUserData().nickname;
param.date = dayjs().format('YYYY-MM-DD HH:mm:ss');
param.loadcaseName = props.runInfo.parentName;
param.projectNum = projectInfo?.projectCode;
param.formulateTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
param.checkTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
param.approveTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
param.workspace = '';
param.workspaceNum = '';
};
const updateRowInfo = (data: any) => {
for (let i = 0; i < tableData.value.length; i++) {
if (
@@ -481,6 +506,9 @@ watch(
if (tableData.value[i].englishLabel === 'jobName') {
tableData.value[i].defaultValue = '测试任务' + new Date().getTime();
}
if (tableData.value[i].englishLabel === 'reportName') {
tableData.value[i].defaultValue = '报告_' + new Date().getTime();
}
}
formatDataFun(tableData.value, 0);

View File

@@ -591,7 +591,7 @@ const createRunFun = async (data: any) => {
// info.label = info.runNames;
runInfo.nodeType = NODE_TYPE.RUN;
// info.id = new Date().getTime();
ElMessage.success('创建成功');
if (flag != 'createRun') {
taskTreeRef.value.insertAfter(runInfo, rightClickNode.value);
} else {

View File

@@ -62,7 +62,24 @@
</div>
</div>
<div class="task-operate">
<el-button
<el-dropdown placement="bottom-end">
<el-button type="primary">
操作 <el-icon class="el-icon--right"><ArrowDown /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
v-if="runInfo.status === RUN_STATUS.UNSTART"
@click="startTaskRunJobFun"
>开始</el-dropdown-item
>
<el-dropdown-item v-if="runInfo.status === RUN_STATUS.RUNNING">暂停</el-dropdown-item>
<el-dropdown-item @click="refreshFun">刷新</el-dropdown-item>
<el-dropdown-item @click="visible = true">查看所有活动</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<!-- <el-button
size="small"
type="primary"
v-if="runInfo.status === RUN_STATUS.UNSTART"
@@ -74,10 +91,10 @@
>暂停</el-button
>
<!-- <el-button size="small" type="primary">完成</el-button> -->
<el-button size="small" type="primary">完成</el-button>
<el-button size="small" @click="refreshFun">刷新</el-button>
<el-button size="small" @click="visible = true">查看所有活动</el-button>
<el-button size="small" @click="visible = true">查看所有活动</el-button> -->
</div>
</div>
@@ -148,7 +165,7 @@
<el-button
type="primary"
@click="skipCurrentNodeFlowFun"
v-if="flowNodeParamData.value?.nodeTypeValue === '1'"
v-if="flowNodeParamData?.nodeTypeValue === '1'"
>跳过当前本地节点</el-button
>
</div>
@@ -633,7 +650,6 @@ const startLocalAppFun = async () => {
if (uuid) {
const result: any = await checklocalresourceFun(appPath);
if (result) {
const params = await getSubmitParamFun();
const res: any = await submittaskApi(params);
@@ -694,10 +710,11 @@ const getSubmitParamFun = async () => {
const owner = getUserData()?.nickname;
const tenantId = getUserTenantId().toString();
const userId = getUserId().toString();
const localAppName = flowNodeParamData.value.label;
const localAppName = flowNodeData.value.nodeName;
const localAppVersion = '';
const creatorId = getUserId().toString();
const subRunId = flowNodeData.value.nodeId;
const asyncTaskId = flowNodeData.value.nodeDetailInfo?.asyncTaskId;
return {
runId,
runName,
@@ -719,6 +736,8 @@ const getSubmitParamFun = async () => {
localAppName,
localAppVersion,
creatorId,
subRunId,
asyncTaskId,
};
};