Skip to content

Commit 043b4f1

Browse files
authored
Merge pull request #742 from actiontech/fix/issue-3143-2505.x
[fix](SqlExecWorkflow): Process optimization after workflow execute failed
2 parents dd1f285 + 26980dd commit 043b4f1

File tree

13 files changed

+96
-32
lines changed

13 files changed

+96
-32
lines changed

packages/sqle/src/locale/zh-CN/versionManagement.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export default {
7979
stageNode: {
8080
workflowDesc: '工单描述',
8181
executeTime: '上线时间',
82-
retry: '重试',
82+
updateInfo: '修改工单',
8383
offlineExecuted: '已线下执行',
8484
addExistingWorkflow: '添加已有工单',
8585
createWorkflow: '创建新工单'

packages/sqle/src/page/SqlExecWorkflow/Detail/__tests__/__snapshots__/index.test.tsx.snap

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ exports[`sqle/ExecWorkflow/Detail render current workflow status is wait for exe
7575
type="button"
7676
>
7777
<span>
78-
重 试
78+
修改工单
7979
</span>
8080
</button>
8181
<button
@@ -829,7 +829,7 @@ exports[`sqle/ExecWorkflow/Detail render snap detail 1`] = `
829829
type="button"
830830
>
831831
<span>
832-
重 试
832+
修改工单
833833
</span>
834834
</button>
835835
<button
@@ -1385,7 +1385,7 @@ exports[`sqle/ExecWorkflow/Detail render snap detail 2`] = `
13851385
type="button"
13861386
>
13871387
<span>
1388-
重 试
1388+
修改工单
13891389
</span>
13901390
</button>
13911391
<button
@@ -2262,7 +2262,7 @@ exports[`sqle/ExecWorkflow/Detail render snap detail 3`] = `
22622262
type="button"
22632263
>
22642264
<span>
2265-
重 试
2265+
修改工单
22662266
</span>
22672267
</button>
22682268
<button
@@ -3185,7 +3185,7 @@ exports[`sqle/ExecWorkflow/Detail render snap detail when have multiple states 1
31853185
type="button"
31863186
>
31873187
<span>
3188-
重 试
3188+
修改工单
31893189
</span>
31903190
</button>
31913191
<button

packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/__test__/__snapshots__/index.ce.test.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra ce render rol
2828
type="button"
2929
>
3030
<span>
31-
重 试
31+
修改工单
3232
</span>
3333
</button>
3434
<button

packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/__test__/__snapshots__/index.test.tsx.snap

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra render batch
2626
type="button"
2727
>
2828
<span>
29-
重 试
29+
修改工单
3030
</span>
3131
</button>
3232
<button
@@ -75,6 +75,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra render batch
7575
</button>
7676
<button
7777
class="ant-btn ant-btn-primary basic-button-wrapper css-geipcv"
78+
hidden=""
7879
tooltip="[object Object]"
7980
type="button"
8081
>
@@ -246,7 +247,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra render batch
246247
type="button"
247248
>
248249
<span>
249-
重 试
250+
修改工单
250251
</span>
251252
</button>
252253
<button
@@ -312,6 +313,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra render batch
312313
class="ant-btn ant-btn-primary basic-button-wrapper css-geipcv"
313314
confirm="[object Object]"
314315
disabled=""
316+
hidden=""
315317
type="button"
316318
>
317319
<span>
@@ -420,7 +422,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra render execut
420422
type="button"
421423
>
422424
<span>
423-
重 试
425+
修改工单
424426
</span>
425427
</button>
426428
<button
@@ -558,7 +560,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra render snap 1
558560
type="button"
559561
>
560562
<span>
561-
重 试
563+
修改工单
562564
</span>
563565
</button>
564566
<button
@@ -694,7 +696,7 @@ exports[`sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra render snap w
694696
type="button"
695697
>
696698
<span>
697-
重 试
699+
修改工单
698700
</span>
699701
</button>
700702
<button

packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/__test__/index.test.tsx

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,47 @@ describe('sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra', () => {
348348
workflow_step_list: [
349349
{
350350
number: 1,
351-
type: WorkflowStepResV2TypeEnum.create_workflow,
351+
type: WorkflowStepResV2TypeEnum.sql_execute,
352+
assignee_user_name_list: ['admin'],
353+
operation_time: '2024-02-22T18:08:00+08:00'
354+
}
355+
]
356+
}
357+
},
358+
maintenanceTimeInfo: []
359+
});
360+
expect(
361+
screen.getByText('标记为人工上线').closest('button')
362+
).not.toHaveAttribute('hidden');
363+
await act(async () => {
364+
fireEvent.click(screen.getByText('标记为人工上线'));
365+
await jest.advanceTimersByTime(100);
366+
});
367+
expect(
368+
screen.getByText(
369+
'当前操作仅修改工单状态,而不对数据源产生操作,是否确认标记为人工上线?'
370+
)
371+
).toBeInTheDocument();
372+
await act(async () => {
373+
fireEvent.click(screen.getByText('确 认'));
374+
await jest.advanceTimersByTime(100);
375+
});
376+
});
377+
378+
it('render manual execute button when status is exec_failed and executable is false', async () => {
379+
mockUseCurrentProject({ projectArchive: false });
380+
381+
customRender({
382+
workflowStepsVisibility: true,
383+
workflowInfo: {
384+
workflow_id: '1',
385+
record: {
386+
status: WorkflowRecordResV2StatusEnum.exec_failed,
387+
executable: false,
388+
workflow_step_list: [
389+
{
390+
number: 1,
391+
type: WorkflowStepResV2TypeEnum.sql_execute,
352392
assignee_user_name_list: ['admin'],
353393
operation_time: '2024-02-22T18:08:00+08:00'
354394
}
@@ -511,8 +551,8 @@ describe('sqle/SqlExecWorkflow/Detail/WorkflowDetailPageHeaderExtra', () => {
511551
}
512552
}
513553
});
514-
expect(screen.getByText('重 试')).toBeVisible();
515-
fireEvent.click(screen.getByText('重 试'));
554+
expect(screen.getByText('修改工单')).toBeVisible();
555+
fireEvent.click(screen.getByText('修改工单'));
516556
await act(async () => jest.advanceTimersByTime(0));
517557
expect(showModifySqlStatementStep).toHaveBeenCalledTimes(1);
518558
});

packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/action.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ export const RetryWorkflowAction = (
200200
permission={PERMISSIONS.ACTIONS.SQLE.SQL_EXEC_WORKFLOW.RETRY}
201201
>
202202
<ActionButton
203-
text={t('execWorkflow.detail.operator.retry')}
203+
text={t('execWorkflow.create.auditResult.updateInfo')}
204204
hidden={retryWorkflowButtonMeta.hidden}
205205
onClick={() => retryWorkflowButtonMeta.action()}
206206
loading={retryWorkflowButtonMeta.loading}

packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/hooks/useWorkflowDetailAction.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,23 @@ const useWorkflowDetailAction = ({
203203
username
204204
]);
205205

206+
const manualExecuteButtonVisibility = useMemo(() => {
207+
if (!workflowInfo?.record?.status) {
208+
return false;
209+
}
210+
const isAssigneeUser = workflowInfo.record.workflow_step_list
211+
?.find((v) => v.type === WorkflowStepResV2TypeEnum.sql_execute)
212+
?.assignee_user_name_list?.includes(username);
213+
return (
214+
[
215+
WorkflowRecordResV2StatusEnum.wait_for_execution,
216+
WorkflowRecordResV2StatusEnum.exec_failed
217+
].includes(workflowInfo.record.status) &&
218+
isAssigneeUser &&
219+
checkInTimeWithMaintenanceTimeInfo(dayjs())
220+
);
221+
}, [checkInTimeWithMaintenanceTimeInfo, workflowInfo, username]);
222+
206223
const executingWorkflow = () => {
207224
if (!executingButtonVisibility) {
208225
return;
@@ -219,7 +236,7 @@ const useWorkflowDetailAction = ({
219236
] = useBoolean();
220237

221238
const completeWorkflow = () => {
222-
if (!executingButtonVisibility) {
239+
if (!manualExecuteButtonVisibility) {
223240
return;
224241
}
225242
completeStart();
@@ -333,7 +350,7 @@ const useWorkflowDetailAction = ({
333350
manualExecuteWorkflowButtonMeta: {
334351
action: completeWorkflow,
335352
loading: completeLoading,
336-
hidden: !executingButtonVisibility
353+
hidden: !manualExecuteButtonVisibility
337354
},
338355
terminateWorkflowButtonMeta: {
339356
action: terminateWorkflow,

packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/index.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
RollbackWorkflowAction,
2020
RetryWorkflowAction
2121
} from './action';
22+
import { WorkflowRecordResV2StatusEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum';
2223

2324
const WorkflowDetailPageHeaderExtra: React.FC<
2425
WorkflowDetailPageHeaderExtraProps
@@ -45,7 +46,10 @@ const WorkflowDetailPageHeaderExtra: React.FC<
4546
executable,
4647
executable_reason
4748
} = useWorkflowDetailAction({ projectName, ...props });
48-
49+
// console.log(
50+
// 'manualExecuteWorkflowButtonMeta',
51+
// manualExecuteWorkflowButtonMeta
52+
// );
4953
return (
5054
<WorkflowPageHeaderExtraStyleWrapper>
5155
{messageContextHolder}
@@ -72,7 +76,8 @@ const WorkflowDetailPageHeaderExtra: React.FC<
7276
)}
7377
{MarkManuallyExecWorkflowAction(
7478
manualExecuteWorkflowButtonMeta,
75-
executable,
79+
props.workflowInfo?.record?.status ===
80+
WorkflowRecordResV2StatusEnum.exec_failed || executable,
7681
executable_reason
7782
)}
7883

packages/sqle/src/page/VersionManagement/Detail/__tests__/__snapshots__/index.test.tsx.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ exports[`sqle/VersionManagement/Detail render init snap 1`] = `
537537
type="button"
538538
>
539539
<span>
540-
重 试
540+
修改工单
541541
</span>
542542
</button>
543543
</div>
@@ -714,7 +714,7 @@ exports[`sqle/VersionManagement/Detail render init snap 1`] = `
714714
type="button"
715715
>
716716
<span>
717-
重 试
717+
修改工单
718718
</span>
719719
</button>
720720
</div>
@@ -1551,7 +1551,7 @@ exports[`sqle/VersionManagement/Detail render offline executed 1`] = `
15511551
type="button"
15521552
>
15531553
<span>
1554-
重 试
1554+
修改工单
15551555
</span>
15561556
</button>
15571557
</div>

packages/sqle/src/page/VersionManagement/Detail/__tests__/index.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ describe('sqle/VersionManagement/Detail', () => {
150150
await act(async () => jest.advanceTimersByTime(3000));
151151
expect(baseElement).toMatchSnapshot();
152152
expect(screen.getByText('上线失败')).toBeInTheDocument();
153-
expect(screen.getByText('重 试')).toBeInTheDocument();
153+
expect(screen.getByText('修改工单')).toBeInTheDocument();
154154
expect(screen.getByText('已线下执行')).toBeInTheDocument();
155155

156156
fireEvent.click(screen.getByText('已线下执行'));
@@ -178,7 +178,7 @@ describe('sqle/VersionManagement/Detail', () => {
178178
);
179179
const { baseElement } = sqleSuperRender(<VersionDetail />);
180180
await act(async () => jest.advanceTimersByTime(3000));
181-
fireEvent.click(screen.getByText('重 试'));
181+
fireEvent.click(screen.getByText('修改工单'));
182182
await act(async () => jest.advanceTimersByTime(0));
183183
expect(dispatchSpy).toHaveBeenCalledTimes(2);
184184
expect(dispatchSpy).toHaveBeenNthCalledWith(2, {

0 commit comments

Comments
 (0)