[Fix-14907]Fix click to view the history in the task node of the workflow instance (#14909)
This commit is contained in:
parent
a070aa93a7
commit
4938470d20
|
|
@ -24,7 +24,7 @@ Click "View Log", a log window pops up, as shown in the figure below, you can al
|
|||
|
||||
Click `Project Management -> Workflow -> Workflow Instance` to enter the workflow instance page, click the workflow name to enter the workflow DAG page;
|
||||
|
||||
Double-click the task node, click `View History` to jump to the task instance page, and display the list of task instances run by the workflow instance.
|
||||
Double-click the task node, click `View History` to jump to the task instance page, and display the list of task instances run by the task definition.
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
## 查看任务历史记录
|
||||
|
||||
- 点击项目管理->工作流->工作流实例,进入工作流实例页面,点击工作流名称,进入工作流 DAG 页面;
|
||||
- 双击任务节点,如下图所示,点击"查看历史",跳转到任务实例页面,并展示该工作流实例运行的任务实例列表
|
||||
- 双击任务节点,如下图所示,点击"查看历史",跳转到任务实例页面,并展示该任务定义运行的任务实例列表
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -81,16 +81,17 @@ public class TaskInstanceController extends BaseController {
|
|||
*/
|
||||
@Operation(summary = "queryTaskListPaging", description = "QUERY_TASK_INSTANCE_LIST_PAGING_NOTES")
|
||||
@Parameters({
|
||||
@Parameter(name = "processInstanceId", description = "PROCESS_INSTANCE_ID", required = false, schema = @Schema(implementation = int.class, example = "100")),
|
||||
@Parameter(name = "processInstanceName", description = "PROCESS_INSTANCE_NAME", required = false, schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "processInstanceId", description = "PROCESS_INSTANCE_ID", schema = @Schema(implementation = int.class, example = "100")),
|
||||
@Parameter(name = "processInstanceName", description = "PROCESS_INSTANCE_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "searchVal", description = "SEARCH_VAL", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "taskName", description = "TASK_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "taskCode", description = "TASK_CODE", schema = @Schema(implementation = Long.class)),
|
||||
@Parameter(name = "executorName", description = "EXECUTOR_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "stateType", description = "EXECUTION_STATUS", schema = @Schema(implementation = TaskExecutionStatus.class)),
|
||||
@Parameter(name = "host", description = "HOST", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "startDate", description = "START_DATE", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "endDate", description = "END_DATE", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "taskExecuteType", description = "TASK_EXECUTE_TYPE", required = false, schema = @Schema(implementation = TaskExecuteType.class, example = "STREAM")),
|
||||
@Parameter(name = "taskExecuteType", description = "TASK_EXECUTE_TYPE", schema = @Schema(implementation = TaskExecuteType.class, example = "STREAM")),
|
||||
@Parameter(name = "pageNo", description = "PAGE_NO", required = true, schema = @Schema(implementation = int.class, example = "1")),
|
||||
@Parameter(name = "pageSize", description = "PAGE_SIZE", required = true, schema = @Schema(implementation = int.class, example = "20")),
|
||||
})
|
||||
|
|
@ -104,6 +105,7 @@ public class TaskInstanceController extends BaseController {
|
|||
@RequestParam(value = "processDefinitionName", required = false) String processDefinitionName,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam(value = "taskName", required = false) String taskName,
|
||||
@RequestParam(value = "taskCode", required = false) Long taskCode,
|
||||
@RequestParam(value = "executorName", required = false) String executorName,
|
||||
@RequestParam(value = "stateType", required = false) TaskExecutionStatus stateType,
|
||||
@RequestParam(value = "host", required = false) String host,
|
||||
|
|
@ -124,6 +126,7 @@ public class TaskInstanceController extends BaseController {
|
|||
processInstanceName,
|
||||
processDefinitionName,
|
||||
taskName,
|
||||
taskCode,
|
||||
executorName,
|
||||
startTime,
|
||||
endTime,
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ public class TaskInstanceV2Controller extends BaseController {
|
|||
@Parameter(name = "processInstanceName", description = "PROCESS_INSTANCE_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "searchVal", description = "SEARCH_VAL", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "taskName", description = "TASK_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "taskCode", description = "TASK_CODE", schema = @Schema(implementation = Long.class)),
|
||||
@Parameter(name = "executorName", description = "EXECUTOR_NAME", schema = @Schema(implementation = String.class)),
|
||||
@Parameter(name = "stateType", description = "EXECUTION_STATUS", schema = @Schema(implementation = TaskExecutionStatus.class)),
|
||||
@Parameter(name = "host", description = "HOST", schema = @Schema(implementation = String.class)),
|
||||
|
|
@ -100,7 +101,8 @@ public class TaskInstanceV2Controller extends BaseController {
|
|||
result = taskInstanceService.queryTaskListPaging(loginUser, projectCode,
|
||||
taskInstanceQueryReq.getProcessInstanceId(), taskInstanceQueryReq.getProcessInstanceName(),
|
||||
taskInstanceQueryReq.getProcessDefinitionName(),
|
||||
taskInstanceQueryReq.getTaskName(), taskInstanceQueryReq.getExecutorName(),
|
||||
taskInstanceQueryReq.getTaskName(), taskInstanceQueryReq.getTaskCode(),
|
||||
taskInstanceQueryReq.getExecutorName(),
|
||||
taskInstanceQueryReq.getStartTime(), taskInstanceQueryReq.getEndTime(), searchVal,
|
||||
taskInstanceQueryReq.getStateType(), taskInstanceQueryReq.getHost(),
|
||||
taskInstanceQueryReq.getTaskExecuteType(), taskInstanceQueryReq.getPageNo(),
|
||||
|
|
|
|||
|
|
@ -50,6 +50,9 @@ public class TaskInstanceQueryRequest extends PageQueryDto {
|
|||
@Schema(name = "taskName", example = "TASK-NAME")
|
||||
String taskName;
|
||||
|
||||
@Schema(name = "taskCode", example = "TASK-CODE")
|
||||
Long taskCode;
|
||||
|
||||
@Schema(name = "executorName", example = "EXECUTOR-NAME")
|
||||
String executorName;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ public interface TaskInstanceService {
|
|||
* @param processInstanceId process instance id
|
||||
* @param searchVal search value
|
||||
* @param taskName task name
|
||||
* @param taskCode task code
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
* @param startDate start time
|
||||
|
|
@ -52,6 +53,7 @@ public interface TaskInstanceService {
|
|||
String processInstanceName,
|
||||
String processDefinitionName,
|
||||
String taskName,
|
||||
Long taskCode,
|
||||
String executorName,
|
||||
String startDate,
|
||||
String endDate,
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
* @param processInstanceId process instance id
|
||||
* @param searchVal search value
|
||||
* @param taskName task name
|
||||
* @param taskCode task code
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
* @param startDate start time
|
||||
|
|
@ -132,6 +133,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
String processInstanceName,
|
||||
String processDefinitionName,
|
||||
String taskName,
|
||||
Long taskCode,
|
||||
String executorName,
|
||||
String startDate,
|
||||
String endDate,
|
||||
|
|
@ -162,6 +164,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
processDefinitionName,
|
||||
searchVal,
|
||||
taskName,
|
||||
taskCode,
|
||||
executorName,
|
||||
statusArray,
|
||||
host,
|
||||
|
|
@ -176,6 +179,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
processInstanceName,
|
||||
searchVal,
|
||||
taskName,
|
||||
taskCode,
|
||||
executorName,
|
||||
statusArray,
|
||||
host,
|
||||
|
|
|
|||
|
|
@ -66,11 +66,12 @@ public class TaskInstanceControllerTest extends AbstractControllerTest {
|
|||
result.setCode(Status.SUCCESS.getCode());
|
||||
result.setMsg(Status.SUCCESS.getMsg());
|
||||
|
||||
when(taskInstanceService.queryTaskListPaging(any(), eq(1L), eq(1), eq(""), eq(""), eq(""), eq(""), any(), any(),
|
||||
when(taskInstanceService.queryTaskListPaging(any(), eq(1L), eq(1), eq(""), eq(""), eq(""), any(), eq(""), any(),
|
||||
any(),
|
||||
eq(""), Mockito.any(), eq("192.168.xx.xx"), eq(TaskExecuteType.BATCH), any(), any()))
|
||||
.thenReturn(result);
|
||||
Result taskResult = taskInstanceController.queryTaskListPaging(null, 1L, 1, "", "", "",
|
||||
"", "", TaskExecutionStatus.SUCCESS, "192.168.xx.xx", "2020-01-01 00:00:00", "2020-01-02 00:00:00",
|
||||
"", 1L, "", TaskExecutionStatus.SUCCESS, "192.168.xx.xx", "2020-01-01 00:00:00", "2020-01-02 00:00:00",
|
||||
TaskExecuteType.BATCH, pageNo, pageSize);
|
||||
Assertions.assertEquals(Integer.valueOf(Status.SUCCESS.getCode()), taskResult.getCode());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,8 @@ public class TaskInstanceV2ControllerTest extends AbstractControllerTest {
|
|||
|
||||
when(taskInstanceService.queryTaskListPaging(any(), eq(1L), eq(taskInstanceQueryReq.getProcessInstanceId()),
|
||||
eq(taskInstanceQueryReq.getProcessInstanceName()), eq(taskInstanceQueryReq.getProcessInstanceName()),
|
||||
eq(taskInstanceQueryReq.getTaskName()), eq(taskInstanceQueryReq.getExecutorName()), any(), any(),
|
||||
eq(taskInstanceQueryReq.getTaskName()), Mockito.any(), eq(taskInstanceQueryReq.getExecutorName()),
|
||||
any(), any(),
|
||||
eq(taskInstanceQueryReq.getSearchVal()), Mockito.any(), eq(taskInstanceQueryReq.getHost()),
|
||||
eq(taskInstanceQueryReq.getTaskExecuteType()), any(), any())).thenReturn(result);
|
||||
Result taskResult = taskInstanceV2Controller.queryTaskListPaging(null, 1L, taskInstanceQueryReq);
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ public class TaskInstanceServiceTest {
|
|||
"",
|
||||
"",
|
||||
"",
|
||||
null,
|
||||
"test_user",
|
||||
"2019-02-26 19:48:00",
|
||||
"2019-02-26 19:48:22",
|
||||
|
|
@ -137,6 +138,7 @@ public class TaskInstanceServiceTest {
|
|||
"",
|
||||
"",
|
||||
"",
|
||||
null,
|
||||
"test_user",
|
||||
"20200101 00:00:00",
|
||||
"2020-01-02 00:00:00",
|
||||
|
|
@ -174,6 +176,7 @@ public class TaskInstanceServiceTest {
|
|||
Mockito.any(),
|
||||
Mockito.any(),
|
||||
Mockito.any(),
|
||||
Mockito.any(),
|
||||
Mockito.any()))
|
||||
.thenReturn(pageReturn);
|
||||
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
|
||||
|
|
@ -181,18 +184,19 @@ public class TaskInstanceServiceTest {
|
|||
.thenReturn(Optional.of(processInstance));
|
||||
|
||||
Result successRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "", "",
|
||||
"test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", TaskExecutionStatus.SUCCESS,
|
||||
null, "test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", TaskExecutionStatus.SUCCESS,
|
||||
"192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
|
||||
Assertions.assertEquals(Status.SUCCESS.getCode(), (int) successRes.getCode());
|
||||
|
||||
// executor name empty
|
||||
when(taskInstanceMapper.queryTaskInstanceListPaging(
|
||||
Mockito.any(Page.class), eq(project.getCode()), eq(1),
|
||||
eq(""), eq(""), eq(""),
|
||||
eq(""), eq(""), eq(""), eq(null),
|
||||
eq(""), Mockito.any(), eq("192.168.xx.xx"), eq(TaskExecuteType.BATCH), eq(start), eq(end)))
|
||||
.thenReturn(pageReturn);
|
||||
Result executorEmptyRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "", "",
|
||||
"", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", TaskExecutionStatus.SUCCESS, "192.168.xx.xx",
|
||||
null, "", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", TaskExecutionStatus.SUCCESS,
|
||||
"192.168.xx.xx",
|
||||
TaskExecuteType.BATCH, 1, 20);
|
||||
Assertions.assertEquals(Status.SUCCESS.getCode(), (int) executorEmptyRes.getCode());
|
||||
|
||||
|
|
@ -201,22 +205,22 @@ public class TaskInstanceServiceTest {
|
|||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(-1);
|
||||
|
||||
Result executorNullRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "", "",
|
||||
"test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", TaskExecutionStatus.SUCCESS,
|
||||
null, "test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", TaskExecutionStatus.SUCCESS,
|
||||
"192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
|
||||
Assertions.assertEquals(Status.SUCCESS.getCode(), (int) executorNullRes.getCode());
|
||||
|
||||
// start/end date null
|
||||
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1),
|
||||
eq(""), eq(""), eq(""),
|
||||
eq(""), eq(""), eq(""), eq(null),
|
||||
eq(""), Mockito.any(), eq("192.168.xx.xx"), eq(TaskExecuteType.BATCH), any(), any()))
|
||||
.thenReturn(pageReturn);
|
||||
Result executorNullDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "", "",
|
||||
"", null, null, "", TaskExecutionStatus.SUCCESS, "192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
|
||||
null, "", null, null, "", TaskExecutionStatus.SUCCESS, "192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
|
||||
Assertions.assertEquals(Status.SUCCESS.getCode(), (int) executorNullDateRes.getCode());
|
||||
|
||||
// start date error format
|
||||
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1),
|
||||
eq(""), eq(""), eq(""),
|
||||
eq(""), eq(""), eq(""), eq(null),
|
||||
eq(""), Mockito.any(), eq("192.168.xx.xx"), eq(TaskExecuteType.BATCH), any(), any()))
|
||||
.thenReturn(pageReturn);
|
||||
|
||||
|
|
@ -227,6 +231,7 @@ public class TaskInstanceServiceTest {
|
|||
"",
|
||||
"",
|
||||
"",
|
||||
null,
|
||||
"",
|
||||
"error date",
|
||||
null,
|
||||
|
|
@ -244,6 +249,7 @@ public class TaskInstanceServiceTest {
|
|||
"",
|
||||
"",
|
||||
"",
|
||||
null,
|
||||
"",
|
||||
null,
|
||||
"error date",
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@ public interface TaskInstanceMapper extends BaseMapper<TaskInstance> {
|
|||
@Param("processInstanceName") String processInstanceName,
|
||||
@Param("searchVal") String searchVal,
|
||||
@Param("taskName") String taskName,
|
||||
@Param("taskCode") Long taskCode,
|
||||
@Param("executorName") String executorName,
|
||||
@Param("states") int[] statusArray,
|
||||
@Param("host") String host,
|
||||
|
|
@ -148,6 +149,7 @@ public interface TaskInstanceMapper extends BaseMapper<TaskInstance> {
|
|||
@Param("processDefinitionName") String processDefinitionName,
|
||||
@Param("searchVal") String searchVal,
|
||||
@Param("taskName") String taskName,
|
||||
@Param("taskCode") Long taskCode,
|
||||
@Param("executorName") String executorName,
|
||||
@Param("states") int[] statusArray,
|
||||
@Param("host") String host,
|
||||
|
|
|
|||
|
|
@ -267,6 +267,9 @@
|
|||
<if test="taskName != null and taskName != ''">
|
||||
and name = #{taskName}
|
||||
</if>
|
||||
<if test="taskCode != null">
|
||||
and task_code = #{taskCode}
|
||||
</if>
|
||||
<if test="states != null and states.length != 0">
|
||||
and state in
|
||||
<foreach collection="states" index="index" item="i" open="(" separator="," close=")">
|
||||
|
|
@ -304,6 +307,9 @@
|
|||
<if test="taskName != null and taskName != ''">
|
||||
and name=#{taskName}
|
||||
</if>
|
||||
<if test="taskCode != null">
|
||||
and task_code = #{taskCode}
|
||||
</if>
|
||||
<if test="states != null and states.length != 0">
|
||||
and state in
|
||||
<foreach collection="states" index="index" item="i" open="(" separator="," close=")">
|
||||
|
|
|
|||
|
|
@ -375,6 +375,7 @@ public class TaskInstanceMapperTest extends BaseDaoTest {
|
|||
"",
|
||||
"",
|
||||
"",
|
||||
null,
|
||||
"",
|
||||
new int[0],
|
||||
"",
|
||||
|
|
|
|||
|
|
@ -243,6 +243,7 @@ export default {
|
|||
online: 'Online',
|
||||
offline: 'Offline',
|
||||
task_name: 'Task Name',
|
||||
task_code: 'Task Code',
|
||||
task_type: 'Task Type',
|
||||
create_task: 'Create Task',
|
||||
workflow_instance: 'Workflow Instance',
|
||||
|
|
|
|||
|
|
@ -241,6 +241,7 @@ export default {
|
|||
online: '已上线',
|
||||
offline: '已下线',
|
||||
task_name: '任务名称',
|
||||
task_code: '任务编码',
|
||||
task_type: '任务类型',
|
||||
task_instance: '任务实例',
|
||||
create_task: '创建任务',
|
||||
|
|
|
|||
|
|
@ -158,9 +158,8 @@ const NodeDetailModal = defineComponent({
|
|||
action: () => {
|
||||
router.push({
|
||||
name: 'task-instance',
|
||||
params: {
|
||||
processInstanceId: processInstance.id,
|
||||
taskName: props.data.name
|
||||
query: {
|
||||
taskCode: props.data.code
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ const BatchTaskInstance = defineComponent({
|
|||
pageSize: variables.pageSize,
|
||||
pageNo: variables.page,
|
||||
searchVal: variables.searchVal,
|
||||
taskCode: variables.taskCode,
|
||||
processInstanceId: variables.processInstanceId,
|
||||
host: variables.host,
|
||||
stateType: variables.stateType,
|
||||
|
|
@ -73,6 +74,11 @@ const BatchTaskInstance = defineComponent({
|
|||
requestTableData()
|
||||
}
|
||||
|
||||
const onClearSearchTaskCode = () => {
|
||||
variables.taskCode = null
|
||||
onSearch()
|
||||
}
|
||||
|
||||
const onClearSearchTaskName = () => {
|
||||
variables.searchVal = ''
|
||||
onSearch()
|
||||
|
|
@ -182,6 +188,7 @@ const BatchTaskInstance = defineComponent({
|
|||
requestTableData,
|
||||
onUpdatePageSize,
|
||||
onSearch,
|
||||
onClearSearchTaskCode,
|
||||
onClearSearchTaskName,
|
||||
onClearSearchProcessInstanceName,
|
||||
onClearSearchExecutorName,
|
||||
|
|
@ -208,6 +215,14 @@ const BatchTaskInstance = defineComponent({
|
|||
<NSpace vertical>
|
||||
<Card>
|
||||
<NSpace justify='end' wrap={false}>
|
||||
<NInput
|
||||
allowInput={this.trim}
|
||||
v-model={[this.taskCode, 'value']}
|
||||
size='small'
|
||||
placeholder={t('project.task.task_code')}
|
||||
clearable
|
||||
onClear={this.onClearSearchTaskCode}
|
||||
/>
|
||||
<NInput
|
||||
allowInput={this.trim}
|
||||
v-model={[this.searchVal, 'value']}
|
||||
|
|
|
|||
|
|
@ -44,9 +44,11 @@ export function useTable() {
|
|||
const { t } = useI18n()
|
||||
const route = useRoute()
|
||||
const router: Router = useRouter()
|
||||
|
||||
const projectCode = Number(route.params.projectCode)
|
||||
const processInstanceId = Number(route.params.processInstanceId)
|
||||
const taskName = route.params.taskName
|
||||
const processInstanceId = Number(route.query.processInstanceId)
|
||||
const taskName = route.query.taskName
|
||||
const taskCode = route.query.taskCode
|
||||
|
||||
const variables = reactive({
|
||||
columns: [],
|
||||
|
|
@ -55,6 +57,7 @@ export function useTable() {
|
|||
page: ref(1),
|
||||
pageSize: ref(10),
|
||||
searchVal: ref(taskName || null),
|
||||
taskCode: ref(taskCode || null),
|
||||
processInstanceId: ref(processInstanceId ? processInstanceId : null),
|
||||
host: ref(null),
|
||||
stateType: ref(null),
|
||||
|
|
@ -293,6 +296,7 @@ export function useTable() {
|
|||
? variables.page - 1
|
||||
: variables.page,
|
||||
searchVal: variables.searchVal,
|
||||
taskCode: variables.taskCode,
|
||||
processInstanceId: variables.processInstanceId,
|
||||
host: variables.host,
|
||||
stateType: variables.stateType,
|
||||
|
|
@ -310,6 +314,7 @@ export function useTable() {
|
|||
pageSize: params.pageSize,
|
||||
pageNo: params.pageNo,
|
||||
searchVal: params.searchVal,
|
||||
taskCode: params.taskCode,
|
||||
processInstanceId: params.processInstanceId,
|
||||
host: params.host,
|
||||
stateType: params.stateType,
|
||||
|
|
|
|||
Loading…
Reference in New Issue