add -- 添加流程模型和部署管理模块

This commit is contained in:
konbai
2022-07-08 21:33:58 +08:00
parent 49042c47eb
commit 2249519522
22 changed files with 2225 additions and 10 deletions

View File

@@ -1,19 +1,22 @@
package com.ruoyi.web.controller.workflow;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.workflow.domain.bo.WfProcessBo;
import com.ruoyi.workflow.domain.vo.WfDeployVo;
import com.ruoyi.workflow.domain.vo.WfFormVo;
import com.ruoyi.workflow.service.IWfDeployFormService;
import com.ruoyi.workflow.service.IWfDeployService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Objects;
@@ -29,8 +32,50 @@ import java.util.Objects;
@RequestMapping("/workflow/deploy")
public class WfDeployController extends BaseController {
private final IWfDeployService deployService;
private final IWfDeployFormService deployFormService;
/**
* 查询流程部署列表
*/
@SaCheckPermission("workflow:deploy:list")
@GetMapping("/list")
public TableDataInfo<WfDeployVo> list(WfProcessBo processBo, PageQuery pageQuery) {
return deployService.queryPageList(processBo, pageQuery);
}
/**
* 查询流程部署版本列表
*/
@SaCheckPermission("workflow:deploy:list")
@GetMapping("/publishList")
public TableDataInfo<WfDeployVo> publishList(@ApiParam(value = "流程定义Key", required = true) @RequestParam String processKey,
PageQuery pageQuery) {
return deployService.queryPublishList(processKey, pageQuery);
}
/**
*
* @param state
* @param definitionId
* @return
*/
@ApiOperation(value = "激活或挂起流程")
@SaCheckPermission("workflow:deploy:state")
@PutMapping(value = "/changeState")
public R<Void> changeState(@ApiParam(value = "状态active:激活 suspended:挂起)", required = true) @RequestParam String state,
@ApiParam(value = "流程定义ID", required = true) @RequestParam String definitionId) {
deployService.updateState(definitionId, state);
return R.ok();
}
@ApiOperation(value = "读取xml文件")
@SaCheckPermission("workflow:deploy:query")
@GetMapping("/bpmnXml/{definitionId}")
public R<String> getBpmnXml(@ApiParam(value = "流程定义ID") @PathVariable(value = "definitionId") String definitionId) {
return R.ok(null, deployService.queryBpmnXmlById(definitionId));
}
/**
*
* @param deployId

View File

@@ -0,0 +1,116 @@
package com.ruoyi.web.controller.workflow;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.workflow.domain.bo.WfModelBo;
import com.ruoyi.workflow.domain.vo.WfModelVo;
import com.ruoyi.workflow.service.IWfModelService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* @author KonBAI
* @createTime 2022/6/21 9:09
*/
@Slf4j
@Api(tags = "工作流流程模型管理")
@RequiredArgsConstructor
@RestController
@RequestMapping("/workflow/model")
public class WfModelController extends BaseController {
private final IWfModelService modelService;
@ApiOperation(value = "查询流程模型列表")
@SaCheckPermission("workflow:model:list")
@GetMapping("/list")
public TableDataInfo<WfModelVo> list(WfModelBo modelBo, PageQuery pageQuery) {
return modelService.list(modelBo, pageQuery);
}
@ApiOperation(value = "查询流程模型列表")
@SaCheckPermission("workflow:model:list")
@GetMapping("/historyList")
public TableDataInfo<WfModelVo> historyList(WfModelBo modelBo, PageQuery pageQuery) {
return modelService.historyList(modelBo, pageQuery);
}
/**
* 获取流程模型详细信息
*/
@ApiOperation(value = "查询流程模型详情信息")
@SaCheckPermission("workflow:model:query")
@GetMapping(value = "/{modelId}")
public R<WfModelVo> getInfo(@ApiParam("主键") @NotNull(message = "主键不能为空") @PathVariable("modelId") String modelId) {
return R.ok(modelService.getModel(modelId));
}
/**
* 获取流程表单详细信息
*/
@SaCheckPermission("workflow:model:query")
@GetMapping(value = "/bpmnXml/{modelId}")
public R<String> getBpmnXml(@ApiParam("主键") @NotNull(message = "主键不能为空") @PathVariable("modelId") String modelId) {
return R.ok("操作成功", modelService.queryBpmnXmlById(modelId));
}
/**
* 保存流程模型
*/
@ApiOperation("保存流程模型")
@SaCheckPermission("workflow:model:save")
@Log(title = "保存流程模型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<String> save(@RequestBody WfModelBo modelBo) {
modelService.saveModel(modelBo);
return R.ok();
}
@ApiOperation("设为最新流程模型")
@SaCheckPermission("workflow:model:save")
@Log(title = "设为最新流程模型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/latest")
public R<?> latest(@RequestParam String modelId) {
modelService.latestModel(modelId);
return R.ok();
}
/**
* 删除流程模型
*/
@ApiOperation("删除流程模型")
@SaCheckPermission("workflow:model:remove")
@Log(title = "删除流程模型", businessType = BusinessType.DELETE)
@DeleteMapping("/{modelIds}")
public R<String> remove(@ApiParam("主键串") @NotEmpty(message = "主键不能为空") @PathVariable String[] modelIds) {
modelService.deleteByIds(Arrays.asList(modelIds));
return R.ok();
}
@ApiOperation("部署流程模型")
@SaCheckPermission("workflow:model:deploy")
@Log(title = "部署流程模型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/deploy")
public R<Void> deployModel(@RequestParam String modelId) {
modelService.deployModel(modelId);
return R.ok();
}
}