mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-03-23 05:44:33 +08:00
Merge remote-tracking branch 'origin/dev' into futuer/boot4
# Conflicts: # ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java # ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java # ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java # script/sql/oracle/oracle_ry_workflow.sql # script/sql/postgres/postgres_ry_workflow.sql # script/sql/ry_workflow.sql # script/sql/sqlserver/sqlserver_ry_workflow.sql
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.PageResult;
|
||||
@@ -46,6 +47,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
* @return 流程定义分页数据
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
@SaCheckPermission("workflow:definition:list")
|
||||
public R<PageResult<FlowDefinitionVo>> list(FlowDefinition flowDefinition, PageQuery pageQuery) {
|
||||
return R.ok(flwDefinitionService.queryList(flowDefinition, pageQuery));
|
||||
}
|
||||
@@ -58,6 +60,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
* @return 未发布流程定义分页数据
|
||||
*/
|
||||
@GetMapping("/unPublishList")
|
||||
@SaCheckPermission("workflow:definition:list")
|
||||
public R<PageResult<FlowDefinitionVo>> unPublishList(FlowDefinition flowDefinition, PageQuery pageQuery) {
|
||||
return R.ok(flwDefinitionService.unPublishList(flowDefinition, pageQuery));
|
||||
}
|
||||
@@ -69,6 +72,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
* @return 流程定义详情
|
||||
*/
|
||||
@GetMapping(value = "/{id}")
|
||||
@SaCheckPermission("workflow:definition:query")
|
||||
public R<Definition> getInfo(@PathVariable Long id) {
|
||||
return R.ok(defService.getById(id));
|
||||
}
|
||||
@@ -83,6 +87,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
@PostMapping
|
||||
@RepeatSubmit()
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SaCheckPermission("workflow:definition:add")
|
||||
public R<Boolean> add(@RequestBody FlowDefinition flowDefinition) {
|
||||
return R.ok(defService.checkAndSave(flowDefinition));
|
||||
}
|
||||
@@ -97,6 +102,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
@PutMapping
|
||||
@RepeatSubmit()
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SaCheckPermission("workflow:definition:edit")
|
||||
public R<Boolean> edit(@RequestBody FlowDefinition flowDefinition) {
|
||||
return R.ok(defService.updateById(flowDefinition));
|
||||
}
|
||||
@@ -110,6 +116,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
@Log(title = "流程定义", businessType = BusinessType.INSERT)
|
||||
@PutMapping("/publish/{id}")
|
||||
@RepeatSubmit()
|
||||
@SaCheckPermission("workflow:definition:publish")
|
||||
public R<Boolean> publish(@PathVariable Long id) {
|
||||
return R.ok(flwDefinitionService.publish(id));
|
||||
}
|
||||
@@ -124,6 +131,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
@PutMapping("/unPublish/{id}")
|
||||
@RepeatSubmit()
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SaCheckPermission("workflow:definition:publish")
|
||||
public R<Boolean> unPublish(@PathVariable Long id) {
|
||||
return R.ok(defService.unPublish(id));
|
||||
}
|
||||
@@ -136,6 +144,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
*/
|
||||
@Log(title = "流程定义", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
@SaCheckPermission("workflow:definition:remove")
|
||||
public R<Void> remove(@PathVariable List<Long> ids) {
|
||||
return toAjax(flwDefinitionService.removeDef(ids));
|
||||
}
|
||||
@@ -150,6 +159,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
@PostMapping("/copy/{id}")
|
||||
@RepeatSubmit()
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SaCheckPermission("workflow:definition:copy")
|
||||
public R<Boolean> copy(@PathVariable Long id) {
|
||||
return R.ok(defService.copyDef(id));
|
||||
}
|
||||
@@ -163,6 +173,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
*/
|
||||
@Log(title = "流程定义", businessType = BusinessType.IMPORT)
|
||||
@PostMapping("/importDef")
|
||||
@SaCheckPermission("workflow:definition:import")
|
||||
public R<Boolean> importDef(MultipartFile file, String category) {
|
||||
return R.ok(flwDefinitionService.importJson(file, category));
|
||||
}
|
||||
@@ -176,6 +187,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
*/
|
||||
@Log(title = "流程定义", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/exportDef/{id}")
|
||||
@SaCheckPermission("workflow:definition:export")
|
||||
public void exportDef(@PathVariable Long id, HttpServletResponse response) throws IOException {
|
||||
flwDefinitionService.exportDef(id, response);
|
||||
}
|
||||
@@ -187,6 +199,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
* @return 流程定义 JSON
|
||||
*/
|
||||
@GetMapping("/xmlString/{id}")
|
||||
@SaCheckPermission("workflow:definition:query")
|
||||
public R<String> xmlString(@PathVariable Long id) {
|
||||
return R.ok("操作成功", defService.exportJson(id));
|
||||
}
|
||||
@@ -203,6 +216,7 @@ public class FlwDefinitionController extends BaseController {
|
||||
@PutMapping("/active/{id}")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Log(title = "流程定义", businessType = BusinessType.UPDATE)
|
||||
@SaCheckPermission("workflow:definition:active")
|
||||
public R<Boolean> active(@PathVariable Long id, @RequestParam boolean active) {
|
||||
return R.ok(active ? defService.active(id) : defService.unActive(id));
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.PageResult;
|
||||
@@ -47,6 +48,7 @@ public class FlwInstanceController extends BaseController {
|
||||
* @return 正在运行的流程实例分页数据
|
||||
*/
|
||||
@GetMapping("/pageByRunning")
|
||||
@SaCheckPermission("workflow:instance:list")
|
||||
public R<PageResult<FlowInstanceVo>> selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
|
||||
return R.ok(flwInstanceService.selectRunningInstanceList(flowInstanceBo, pageQuery));
|
||||
}
|
||||
@@ -59,6 +61,7 @@ public class FlwInstanceController extends BaseController {
|
||||
* @return 已结束的流程实例分页数据
|
||||
*/
|
||||
@GetMapping("/pageByFinish")
|
||||
@SaCheckPermission("workflow:instance:list")
|
||||
public R<PageResult<FlowInstanceVo>> selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
|
||||
return R.ok(flwInstanceService.selectFinishInstanceList(flowInstanceBo, pageQuery));
|
||||
}
|
||||
@@ -70,6 +73,7 @@ public class FlwInstanceController extends BaseController {
|
||||
* @return 流程实例详情
|
||||
*/
|
||||
@GetMapping("/getInfo/{businessId}")
|
||||
@SaCheckPermission("workflow:instance:query")
|
||||
public R<FlowInstanceVo> getInfo(@PathVariable Long businessId) {
|
||||
return R.ok(flwInstanceService.queryByBusinessId(businessId));
|
||||
}
|
||||
@@ -82,6 +86,7 @@ public class FlwInstanceController extends BaseController {
|
||||
*/
|
||||
@DeleteMapping("/deleteByBusinessIds/{businessIds}")
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
|
||||
@SaCheckPermission("workflow:instance:remove")
|
||||
public R<Void> deleteByBusinessIds(@PathVariable List<Long> businessIds) {
|
||||
return toAjax(flwInstanceService.deleteByBusinessIds(StreamUtils.toList(businessIds, Convert::toStr)));
|
||||
}
|
||||
@@ -94,6 +99,7 @@ public class FlwInstanceController extends BaseController {
|
||||
*/
|
||||
@DeleteMapping("/deleteByInstanceIds/{instanceIds}")
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
|
||||
@SaCheckPermission("workflow:instance:remove")
|
||||
public R<Void> deleteByInstanceIds(@PathVariable List<Long> instanceIds) {
|
||||
return toAjax(flwInstanceService.deleteByInstanceIds(instanceIds));
|
||||
}
|
||||
@@ -106,6 +112,7 @@ public class FlwInstanceController extends BaseController {
|
||||
*/
|
||||
@DeleteMapping("/deleteHisByInstanceIds/{instanceIds}")
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
|
||||
@SaCheckPermission("workflow:instance:remove")
|
||||
public R<Void> deleteHisByInstanceIds(@PathVariable List<Long> instanceIds) {
|
||||
return toAjax(flwInstanceService.deleteHisByInstanceIds(instanceIds));
|
||||
}
|
||||
@@ -119,6 +126,7 @@ public class FlwInstanceController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/cancelProcessApply")
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.UPDATE)
|
||||
@SaCheckPermission("workflow:instance:cancel")
|
||||
public R<Void> cancelProcessApply(@RequestBody FlowCancelBo bo) {
|
||||
return toAjax(flwInstanceService.cancelProcessApply(bo));
|
||||
}
|
||||
@@ -133,6 +141,7 @@ public class FlwInstanceController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/active/{id}")
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.UPDATE)
|
||||
@SaCheckPermission("workflow:instance:active")
|
||||
public R<Boolean> active(@PathVariable Long id, @RequestParam boolean active) {
|
||||
return R.ok(active ? insService.active(id) : insService.unActive(id));
|
||||
}
|
||||
@@ -145,6 +154,7 @@ public class FlwInstanceController extends BaseController {
|
||||
* @return 当前用户发起的流程实例分页数据
|
||||
*/
|
||||
@GetMapping("/pageByCurrent")
|
||||
@SaCheckPermission("workflow:instance:currentList")
|
||||
public R<PageResult<FlowInstanceVo>> selectCurrentInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
|
||||
return R.ok(flwInstanceService.selectCurrentInstanceList(flowInstanceBo, pageQuery));
|
||||
}
|
||||
@@ -156,6 +166,7 @@ public class FlwInstanceController extends BaseController {
|
||||
* @return 流程图与历史节点信息
|
||||
*/
|
||||
@GetMapping("/flowHisTaskList/{businessId}")
|
||||
@SaCheckPermission("workflow:instance:query")
|
||||
public R<Map<String, Object>> flowHisTaskList(@PathVariable String businessId) {
|
||||
return R.ok(flwInstanceService.flowHisTaskList(businessId));
|
||||
}
|
||||
@@ -167,6 +178,7 @@ public class FlwInstanceController extends BaseController {
|
||||
* @return 流程变量
|
||||
*/
|
||||
@GetMapping("/instanceVariable/{instanceId}")
|
||||
@SaCheckPermission("workflow:instance:variableQuery")
|
||||
public R<Map<String, Object>> instanceVariable(@PathVariable Long instanceId) {
|
||||
return R.ok(flwInstanceService.instanceVariable(instanceId));
|
||||
}
|
||||
@@ -180,6 +192,7 @@ public class FlwInstanceController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/updateVariable")
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.UPDATE)
|
||||
@SaCheckPermission("workflow:instance:variable")
|
||||
public R<Void> updateVariable(@Validated @RequestBody FlowVariableBo bo) {
|
||||
return toAjax(flwInstanceService.updateVariable(bo));
|
||||
}
|
||||
@@ -193,6 +206,7 @@ public class FlwInstanceController extends BaseController {
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/invalid")
|
||||
@SaCheckPermission("workflow:instance:invalid")
|
||||
public R<Boolean> invalid(@Validated @RequestBody FlowInvalidBo bo) {
|
||||
return R.ok(flwInstanceService.processInvalid(bo));
|
||||
}
|
||||
|
||||
@@ -323,8 +323,11 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
if (definition == null) {
|
||||
throw new ServiceException(ExceptionCons.NOT_FOUNT_DEF);
|
||||
}
|
||||
String message = bo.message();
|
||||
String userIdStr = LoginHelper.getUserIdStr();
|
||||
if (!LoginHelper.isSuperAdmin() && !instance.getCreateBy().equals(userIdStr)) {
|
||||
throw new ServiceException("权限不足,无法撤销流程!");
|
||||
}
|
||||
String message = bo.message();
|
||||
BusinessStatusEnum.checkCancelStatus(instance.getFlowStatus());
|
||||
FlowParams flowParams = FlowParams.build()
|
||||
.message(message)
|
||||
|
||||
Reference in New Issue
Block a user