feat: 2.6.0

1. 工作流页面新增工作流名称列表
2. 工作流任务节点显示任务名称
This commit is contained in:
byteblogs168 2024-01-15 23:25:59 +08:00
parent 3c35dd014e
commit e8bb418382
11 changed files with 99 additions and 66 deletions

View File

@ -29,7 +29,7 @@ public class WorkflowController {
private final WorkflowService workflowService; private final WorkflowService workflowService;
@PostMapping @PostMapping
@LoginRequired(role = RoleEnum.USER) @LoginRequired(role = RoleEnum.ADMIN)
public Boolean saveWorkflow(@RequestBody @Validated WorkflowRequestVO workflowRequestVO) { public Boolean saveWorkflow(@RequestBody @Validated WorkflowRequestVO workflowRequestVO) {
return workflowService.saveWorkflow(workflowRequestVO); return workflowService.saveWorkflow(workflowRequestVO);
} }
@ -41,7 +41,7 @@ public class WorkflowController {
} }
@PutMapping @PutMapping
@LoginRequired(role = RoleEnum.USER) @LoginRequired(role = RoleEnum.ADMIN)
public Boolean updateWorkflow(@RequestBody @Validated WorkflowRequestVO workflowRequestVO) { public Boolean updateWorkflow(@RequestBody @Validated WorkflowRequestVO workflowRequestVO) {
return workflowService.updateWorkflow(workflowRequestVO); return workflowService.updateWorkflow(workflowRequestVO);
} }
@ -53,19 +53,29 @@ public class WorkflowController {
} }
@PutMapping("/update/status/{id}") @PutMapping("/update/status/{id}")
@LoginRequired(role = RoleEnum.ADMIN)
public Boolean updateStatus(@PathVariable("id") Long id) { public Boolean updateStatus(@PathVariable("id") Long id) {
return workflowService.updateStatus(id); return workflowService.updateStatus(id);
} }
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@LoginRequired(role = RoleEnum.ADMIN)
public Boolean deleteById(@PathVariable("id") Long id) { public Boolean deleteById(@PathVariable("id") Long id) {
return workflowService.deleteById(id); return workflowService.deleteById(id);
} }
@PostMapping("/trigger/{id}") @PostMapping("/trigger/{id}")
@LoginRequired(role = RoleEnum.USER)
public Boolean trigger(@PathVariable("id") Long id) { public Boolean trigger(@PathVariable("id") Long id) {
return workflowService.trigger(id); return workflowService.trigger(id);
} }
@GetMapping("/workflow-name/list")
@LoginRequired(role = RoleEnum.USER)
public List<WorkflowResponseVO> getWorkflowNameList(
@RequestParam(value = "keywords", required = false) String keywords,
@RequestParam(value = "workflowId", required = false) Long workflowId) {
return workflowService.getWorkflowNameList(keywords, workflowId);
}
} }

View File

@ -29,4 +29,6 @@ public interface WorkflowService {
Boolean deleteById(Long id); Boolean deleteById(Long id);
Boolean trigger(Long id); Boolean trigger(Long id);
List<WorkflowResponseVO> getWorkflowNameList(String keywords, Long workflowId);
} }

View File

@ -277,4 +277,24 @@ public class WorkflowServiceImpl implements WorkflowService {
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override
public List<WorkflowResponseVO> getWorkflowNameList(String keywords, Long workflowId) {
LambdaQueryWrapper<Workflow> queryWrapper = new LambdaQueryWrapper<Workflow>()
.select(Workflow::getId, Workflow::getWorkflowName);
if (StrUtil.isNotBlank(keywords)) {
queryWrapper.like(Workflow::getWorkflowName, keywords.trim() + "%");
}
if (Objects.nonNull(workflowId)) {
queryWrapper.eq(Workflow::getId, workflowId);
}
queryWrapper.eq(Workflow::getDeleted, StatusEnum.NO.getStatus());
PageDTO<Workflow> pageDTO = new PageDTO<>(1, 20);
PageDTO<Workflow> selectPage = workflowMapper.selectPage(pageDTO, queryWrapper);
return WorkflowConverter.INSTANCE.toWorkflowResponseVO(selectPage.getRecords());
}
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,8 +5,8 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Easy Retry</title> <title>Easy Retry</title>
<script type="module" crossorigin src="./assets/eCMYxQqR.js"></script> <script type="module" crossorigin src="./assets/HIb6OPZi.js"></script>
<link rel="stylesheet" crossorigin href="./assets/tWxQPn1H.css"> <link rel="stylesheet" crossorigin href="./assets/kNnuTekB.css">
</head> </head>
<body> <body>

View File

@ -39,11 +39,20 @@ const jobApi = {
updateStatus: '/workflow/update/status/', updateStatus: '/workflow/update/status/',
delWorkflow: '/workflow/', delWorkflow: '/workflow/',
triggerWorkflow: '/workflow/trigger/', triggerWorkflow: '/workflow/trigger/',
stopWorkflowBatch: '/workflow/batch/stop/' stopWorkflowBatch: '/workflow/batch/stop/',
workflowNameList: '/workflow/workflow-name/list'
} }
export default jobApi export default jobApi
export function workflowNameList (parameter) {
return request({
url: jobApi.workflowNameList,
method: 'get',
params: parameter
})
}
export function stopWorkflowBatch (id) { export function stopWorkflowBatch (id) {
return request({ return request({
url: jobApi.stopWorkflowBatch + id, url: jobApi.stopWorkflowBatch + id,

View File

@ -44,21 +44,6 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<template v-if="advanced"> <template v-if="advanced">
<!-- <a-col :md="8" :sm="24">-->
<!-- <a-form-item label="业务编号">-->
<!-- <a-input v-model="queryParam.bizNo" placeholder="请输入业务编号" allowClear />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :md="8" :sm="24">-->
<!-- <a-form-item label="幂等id">-->
<!-- <a-input v-model="queryParam.idempotentId" placeholder="请输入幂等id" allowClear />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :md="8" :sm="24">-->
<!-- <a-form-item label="UniqueId">-->
<!-- <a-input v-model="queryParam.uniqueId" placeholder="请输入唯一id" allowClear/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
</template> </template>
<a-col :md="(!advanced && 8) || 24" :sm="24"> <a-col :md="(!advanced && 8) || 24" :sm="24">
<span <span
@ -215,7 +200,6 @@ export default {
], ],
// Promise // Promise
loadData: (parameter) => { loadData: (parameter) => {
// this.queryParam['jobId'] = this.$route.query.jobId
return jobBatchList(Object.assign(parameter, this.queryParam)).then((res) => { return jobBatchList(Object.assign(parameter, this.queryParam)).then((res) => {
return res return res
}) })
@ -251,7 +235,6 @@ export default {
const jobId = this.$route.query.jobId const jobId = this.$route.query.jobId
jobNameList({ jobId: jobId }).then(res => { jobNameList({ jobId: jobId }).then(res => {
this.jobNameList = res.data this.jobNameList = res.data
console.log(jobId)
if (jobId) { if (jobId) {
this.queryParam['jobId'] = this.jobNameList[0].id this.queryParam['jobId'] = this.jobNameList[0].id
this.$refs.table.refresh(true) this.$refs.table.refresh(true)

View File

@ -18,7 +18,7 @@
<a-form-item label="任务名称"> <a-form-item label="任务名称">
<a-select <a-select
show-search show-search
v-model="queryParam.jobId" v-model="queryParam.workflowId"
placeholder="请输入任务名称" placeholder="请输入任务名称"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="true" :show-arrow="true"
@ -27,8 +27,8 @@
@search="handleSearch" @search="handleSearch"
@change="handleChange" @change="handleChange"
> >
<a-select-option v-for="(item, index) in jobNameList" :value="item.id" :key="index"> <a-select-option v-for="(item, index) in workflowNameList" :value="item.id" :key="index">
{{ item.jobName }} {{ item.workflowName }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -107,7 +107,7 @@
import ATextarea from 'ant-design-vue/es/input/TextArea' import ATextarea from 'ant-design-vue/es/input/TextArea'
import AInput from 'ant-design-vue/es/input/Input' import AInput from 'ant-design-vue/es/input/Input'
import { Drawer, STable } from '@/components' import { Drawer, STable } from '@/components'
import { workflowBatchListPage, jobNameList, stopWorkflowBatch } from '@/api/jobApi' import { workflowBatchListPage, stopWorkflowBatch, workflowNameList } from '@/api/jobApi'
import { getAllGroupNameList } from '@/api/manage' import { getAllGroupNameList } from '@/api/manage'
import JobBatchInfo from '@/views/job/JobBatchInfo' import JobBatchInfo from '@/views/job/JobBatchInfo'
const enums = require('@/utils/jobEnum') const enums = require('@/utils/jobEnum')
@ -209,7 +209,7 @@ export default {
}, },
optionAlertShow: false, optionAlertShow: false,
groupNameList: [], groupNameList: [],
jobNameList: [], workflowNameList: [],
openDrawer: false, openDrawer: false,
currentShowRecord: null currentShowRecord: null
} }
@ -218,11 +218,20 @@ export default {
getAllGroupNameList().then((res) => { getAllGroupNameList().then((res) => {
this.groupNameList = res.data this.groupNameList = res.data
}) })
const workflowId = this.$route.query.workflowId
workflowNameList({ workflowId: workflowId }).then(res => {
this.workflowNameList = res.data
if (workflowId) {
this.queryParam['workflowId'] = this.workflowNameList[0].id
this.$refs.table.refresh(true)
}
})
}, },
methods: { methods: {
handleSearch (value) { handleSearch (value) {
jobNameList({ keywords: value }).then(res => { workflowNameList({ keywords: value }).then(res => {
this.jobNameList = res.data this.workflowNameList = res.data
}) })
}, },
handleChange (value) { handleChange (value) {

View File

@ -275,7 +275,7 @@ export default {
this.$router.push({ path: '/job/workflow/edit', query: { id: record.id } }) this.$router.push({ path: '/job/workflow/edit', query: { id: record.id } })
}, },
goJobBatchList (record) { goJobBatchList (record) {
this.$router.push({ path: '/job/batch/list', query: { jobId: record.id } }) this.$router.push({ path: '/job/workflow/batch/list', query: { workflowId: record.id } })
}, },
handleNew () { handleNew () {
this.$router.push({ path: '/job/workflow/edit' }) this.$router.push({ path: '/job/workflow/edit' })