公共分页请求入参对象
Query对象
参数 | 类型 | 是否必填 | 说明 |
---|
pageSize | int | 是 | 每页多少条 |
pageNum | int | 是 | 当前第几页 |
sqlOrderBy | Map<String, ORDERBY> | 否 | 排序字段 |
sortField | String | 否 | 排序字段 |
sortOrder | String | 否 | 排序类型:升序 or 降序 |
公共分页返回对象
PagerModel对象
参数 | 类型 | 说明 |
---|
total | Long | 总条数 |
rows | <T> | 具体的业务表单数据集合 |
审批类型枚举
CommentTypeEnum
类型 | 说明 | 说明 |
---|
SP | 审批 | 完成审批进入下一节点 |
QS | 签收 | 一般情况就是多个候选人,或者候选组的情况下,要先把这个任务签收下来,以免别人又做了同样的任务 |
FQS | 反签收 | 就是把执行人设置为空 |
BH | 驳回 | 将审批重置发送某节点,重新审批 |
CH | 撤回 | |
ZC | 暂存 | |
XTZX | 系统后台执行 | 由管理员在流程系统后台代替当前节点审批人执行通过该节点流程 |
TJ | 提交 | 相当于发起流程 |
CXTJ | 重新提交 | |
SPJS | 审批结束 | 相当于流程结束 |
LCZZ | 流程终止 | 直接停止整个流程,流程作废 |
WP | 委派 | 暂时把任务交给别人,最终还需要自己提交任务;A转给B审批,B审批结束后自动转给A,A审批后,进入下一节点 |
ZH | 知会 | 将审批结构通知给列表对应的人 |
ZY | 转阅 | |
YY | 已阅 | |
ZB | 转办 | 直接把任务交给别人;A转给B审批,B审批后,进入下一节点 |
SQ | 授权 | |
SPBJQ | 审批并加签 | |
HJQ | 后加签 | 任务在 A 这里,A 这个时候需要 B 处理这个事情,处理完毕之后就不用管了,继续后面的审批环节 |
QJQ | 前加签 | 任务在 A 这里,A 这个时候需要 B 核对一下,等 B 核对之后又回到 A 这里,这时 A 才能继续自己的任务 |
CFTG | 重复跳过 | |
XT | 协同 | |
PS | 评审 | |
pom引入jar
<dependency>
<groupId>com.dragon</groupId>
<artifactId>flowable-plus-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
模板管理
查询分类树
前端请求示例
:::tips
- URL:
/flow/prod/api/getCategories
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private FlowablePlusCategoryService flowablePlusCategoryService;
List<Category> categories = flowablePlusCategoryService.getCategories();
Body参数
:::info 无 :::
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | List<Category> |
分类对象Category
参数 | 类型 | 说明 | |
---|
id | String | 主键id | |
pid | String | 父id | |
name | String | 分类名称 | |
code | String | 分类编码 | |
orderNo | String | 排序号 | |
frontShow | Integer | 前端是否展示 | |
shortName | String | 简称 | |
note | String | 描述 | |
createTime | Date | 创建时间 | |
creator | String | 创建人 | |
updateTime | Date | 修改时间 | |
updator | String | 修改人 | |
示例
请求示例
http://域名/flow/prod/api/getCategories
返回示例
{
"code": "100",
"msg": "发起流程成功!",
"success": true,
"data":[
{
"createTime": null,
"creator": null,
"updateTime": null,
"updator": null,
"delFlag": 1,
"keyword": null,
"id": "1",
"pid": "",
"name": "BPMN组件",
"code": "1000",
"frontShow": null,
"shortName": "组件",
"note": null,
"orderNo": 1,
"companyId": null,
"createTimeStr": null,
"updateTimeStr": null,
"cname": null
},
{
"createTime": null,
"creator": null,
"updateTime": null,
"updator": null,
"delFlag": 1,
"keyword": null,
"id": "22",
"pid": null,
"name": "测试",
"code": "1010",
"frontShow": null,
"shortName": "测试",
"note": null,
"orderNo": 1,
"companyId": null,
"createTimeStr": null,
"updateTimeStr": null,
"cname": null
}
]
}
查询流程模板列表
前端请求示例
:::tips
- URL:
/flow/bpmnDesigner/prod/api/modelPage
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdDeModelService prodDeModelService;
ParamVo<ProdDeModel> params = new ParamVo<>();
PagerModel<ProdDeModel> pageModel = prodDeModelService.queryPagerModel(params.getEntity(), params.getQuery());
Body参数
参数 | 类型 | 是否必填 | 说明 |
---|
entity | T | 是 | ProdDeModel |
query | Query | 是 | 分页对象 |
返回参数
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | PagerModel<ProdDeModel> |
模板对象ProdDeModel
参数 | 类型 | 说明 | |
---|
id | String | 主键id | |
name | String | 模板名称 | |
modelType | Integer | 模型类型 | |
modelKey | String | 模型key | 模型key |
category | String | 所属分类 | |
version | String | 版本号 | |
modelEditorXml | String | 存储的xml文件 | |
description | String | 描述 | |
createTime | Date | 创建时间 | |
creator | String | 创建人 | |
updateTime | Date | 修改时间 | |
updator | String | 修改人 | |
示例
请求示例
http://域名/flow/bpmnDesigner/prod/api/modelPage
返回示例
{
"code": "100",
"msg": "ok",
"success": true,
"data":{
"total": 1,
"rows": [
{
"id": "1704702781908738049",
"name": "测试一波",
"modelType": 0,
"modelKey": "Hccc",
"category": "1010",
"categoryName": "测试",
"version": 0,
"modelEditorXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:flowable=\"http://flowable.org/bpmn\" xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" xmlns:omgdc=\"http://www.omg.org/spec/DD/20100524/DC\" xmlns:omgdi=\"http://www.omg.org/spec/DD/20100524/DI\" typeLanguage=\"http://www.w3.org/2001/XMLSchema\" expressionLanguage=\"http://www.w3.org/1999/XPath\" targetNamespace=\"http://flowable.org/bpmn\">\n <process id=\"Hccc\" name=\"测试一波\" isExecutable=\"true\">\n <startEvent id=\"Event_v50a4en\" flowable:initiator=\"initiator\">\n <extensionElements>\n <flowable:formData></flowable:formData>\n </extensionElements>\n </startEvent>\n <userTask id=\"Activity_esn8sja\" name=\"提交人\" flowable:candidateUsers=\"10003\" flowable:candidateGroups=\"tj_zc\" flowable:skipExpression=\"${initiator==''}\">\n <extensionElements>\n <flowable:formData></flowable:formData>\n <flowable:assigneeType><![CDATA[idm]]></flowable:assigneeType>\n <flowable:idmCandidateUsers><![CDATA[[{\"id\":\"4\",\"name\":\"周杰伦\",\"code\":\"10003\",\"sex\":0,\"mobile\":null,\"companyId\":\"1\",\"companyName\":\"中国石化\",\"deptId\":\"27\",\"deptName\":\"领导班子\"}]]]></flowable:idmCandidateUsers>\n <flowable:idmCandidateGroups><![CDATA[[{\"id\":\"undefined_12\",\"name\":\"总裁\",\"sn\":\"tj_zc\"}]]]></flowable:idmCandidateGroups>\n </extensionElements>\n </userTask>\n <sequenceFlow id=\"a0d29b46f8c22419998fa8d2c3b118559\" sourceRef=\"Event_v50a4en\" targetRef=\"Activity_esn8sja\"></sequenceFlow>\n <intermediateThrowEvent id=\"Event_034n9zz\"></intermediateThrowEvent>\n <sequenceFlow id=\"Flow_05yfrim\" sourceRef=\"Activity_esn8sja\" targetRef=\"Event_034n9zz\"></sequenceFlow>\n <endEvent id=\"Event_08wpovh\"></endEvent>\n <sequenceFlow id=\"Flow_1h43p2l\" sourceRef=\"Event_034n9zz\" targetRef=\"Event_08wpovh\"></sequenceFlow>\n </process>\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_Hccc\">\n <bpmndi:BPMNPlane bpmnElement=\"Hccc\" id=\"BPMNPlane_Hccc\">\n <bpmndi:BPMNShape bpmnElement=\"Event_v50a4en\" id=\"BPMNShape_Event_v50a4en\">\n <omgdc:Bounds height=\"30.0\" width=\"30.0\" x=\"0.0\" y=\"25.0\"></omgdc:Bounds>\n </bpmndi:BPMNShape>\n <bpmndi:BPMNShape bpmnElement=\"Activity_esn8sja\" id=\"BPMNShape_Activity_esn8sja\">\n <omgdc:Bounds height=\"80.0\" width=\"100.0\" x=\"80.0\" y=\"0.0\"></omgdc:Bounds>\n </bpmndi:BPMNShape>\n <bpmndi:BPMNShape bpmnElement=\"Event_034n9zz\" id=\"BPMNShape_Event_034n9zz\">\n <omgdc:Bounds height=\"36.0\" width=\"36.0\" x=\"232.0\" y=\"22.0\"></omgdc:Bounds>\n </bpmndi:BPMNShape>\n <bpmndi:BPMNShape bpmnElement=\"Event_08wpovh\" id=\"BPMNShape_Event_08wpovh\">\n <omgdc:Bounds height=\"36.0\" width=\"36.0\" x=\"322.0\" y=\"22.0\"></omgdc:Bounds>\n </bpmndi:BPMNShape>\n <bpmndi:BPMNEdge bpmnElement=\"a0d29b46f8c22419998fa8d2c3b118559\" id=\"BPMNEdge_a0d29b46f8c22419998fa8d2c3b118559\">\n <omgdi:waypoint x=\"30.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"42.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"42.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"80.0\" y=\"40.0\"></omgdi:waypoint>\n </bpmndi:BPMNEdge>\n <bpmndi:BPMNEdge bpmnElement=\"Flow_05yfrim\" id=\"BPMNEdge_Flow_05yfrim\">\n <omgdi:waypoint x=\"180.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"232.0\" y=\"40.0\"></omgdi:waypoint>\n </bpmndi:BPMNEdge>\n <bpmndi:BPMNEdge bpmnElement=\"Flow_1h43p2l\" id=\"BPMNEdge_Flow_1h43p2l\">\n <omgdi:waypoint x=\"268.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"322.0\" y=\"40.0\"></omgdi:waypoint>\n </bpmndi:BPMNEdge>\n </bpmndi:BPMNPlane>\n </bpmndi:BPMNDiagram>\n</definitions>",
"description": null,
"status": "draft",
"statusName": "草稿",
"created": 1695267789710,
"lastUpdated": 1695267789711,
"createdBy": "admin",
"lastUpdatedBy": null,
"tenantId": null,
"updateFlag": 1
}
]
}
}
查询流程模板详情
前端请求示例
:::tips
- URL:
/flow/bpmnDesigner/prod/api/getBpmnByModelId/{id}
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdDeModelService prodDeModelService;
String modelId = "";
ProdDeModel prodDeModel = prodDeModelService.getById(modelId);
ModelInfoVo modelInfoVo = new ModelInfoVo();
if (prodDeModel != null) {
modelInfoVo.setModelId(modelId);
modelInfoVo.setModelName(prodDeModel.getName());
modelInfoVo.setModelKey(prodDeModel.getModelKey());
modelInfoVo.setModelXml(prodDeModel.getModelEditorXml());
}
Body参数
:::info 无 :::
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | Entity | ModelInfoVo |
ModelInfoVo对象
名称 | 类型 | 是否必填 | 描述 |
---|
modelId | String | 否 | 模板id(修改时必填) |
modelKey | String | 否 | 模板key |
modelName | String | 否 | 模板名称 |
modelXml | String | 是 | 模板xml |
示例
请求示例
http://域名/flow/bpmnDesigner/prod/api/getBpmnByModelId/1705828124180770817
请求入参
:::info 无 :::
返回示例
{
"code": "100",
"msg": "OK",
"data": {
"id": null,
"modelId": "1705828124180770817",
"modelKey": "test",
"modelName": "222",
"fileName": null,
"modelXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:flowable=\"http://flowable.org/bpmn\" xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" xmlns:omgdc=\"http://www.omg.org/spec/DD/20100524/DC\" xmlns:omgdi=\"http://www.omg.org/spec/DD/20100524/DI\" typeLanguage=\"http://www.w3.org/2001/XMLSchema\" expressionLanguage=\"http://www.w3.org/1999/XPath\" targetNamespace=\"http://flowable.org/bpmn\">\n <process id=\"test\" name=\"222\" isExecutable=\"true\">\n <startEvent id=\"Event_ee88ov0\" flowable:initiator=\"initiator\"></startEvent>\n <userTask id=\"Activity_9jb4l8r\" name=\"提交人\" flowable:assignee=\"${initiator}\" flowable:skipExpression=\"${initiator==''}\"></userTask>\n <sequenceFlow id=\"a069d00f16c9e4d96af91f4e803a58fac\" sourceRef=\"Event_ee88ov0\" targetRef=\"Activity_9jb4l8r\"></sequenceFlow>\n </process>\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_test\">\n <bpmndi:BPMNPlane bpmnElement=\"test\" id=\"BPMNPlane_test\">\n <bpmndi:BPMNShape bpmnElement=\"Event_ee88ov0\" id=\"BPMNShape_Event_ee88ov0\">\n <omgdc:Bounds height=\"30.0\" width=\"30.0\" x=\"0.0\" y=\"25.0\"></omgdc:Bounds>\n </bpmndi:BPMNShape>\n <bpmndi:BPMNShape bpmnElement=\"Activity_9jb4l8r\" id=\"BPMNShape_Activity_9jb4l8r\">\n <omgdc:Bounds height=\"80.0\" width=\"100.0\" x=\"80.0\" y=\"0.0\"></omgdc:Bounds>\n </bpmndi:BPMNShape>\n <bpmndi:BPMNEdge bpmnElement=\"a069d00f16c9e4d96af91f4e803a58fac\" id=\"BPMNEdge_a069d00f16c9e4d96af91f4e803a58fac\">\n <omgdi:waypoint x=\"30.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"42.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"42.0\" y=\"40.0\"></omgdi:waypoint>\n <omgdi:waypoint x=\"80.0\" y=\"40.0\"></omgdi:waypoint>\n </bpmndi:BPMNEdge>\n </bpmndi:BPMNPlane>\n </bpmndi:BPMNDiagram>\n</definitions>",
"appSn": null,
"categoryCode": null
},
"success": true
}
新增/修改流程模板
前端请求示例
:::tips
- URL:
/flow/bpmnDesigner/prod/api/saveBpmnModel
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdFlowBpmnModelService prodFlowBpmnModelService;
ProdDeModel model = new ProdDeModel();
model.setId(modelInfoVo.getModelId());
model.setModelEditorXml(modelInfoVo.getModelXml());
model.setCreatedBy("当前登录用户编码");
model.setCategory(modelInfoVo.getCategoryCode());
ReturnVo<String> representationReturnVo = prodFlowBpmnModelService.importBpmnModel(model);
Body参数
ModelInfoVo对象
名称 | 类型 | 是否必填 | 描述 |
---|
modelId | String | 否 | 模板id(修改时必填) |
modelKey | String | 否 | 模板key |
modelName | String | 否 | 模板名称 |
modelXml | String | 是 | 模板xml |
category | String | 否 | 模板分类编码 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 模板id |
示例
请求示例
http://域名/flow/bpmnDesigner/prod/api/saveBpmnModel
请求入参
{
"modelId": "",
"modelXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:flowable=\"http://flowable.org/bpmn\" xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" xmlns:omgdc=\"http://www.omg.org/spec/DD/20100524/DC\" xmlns:omgdi=\"http://www.omg.org/spec/DD/20100524/DI\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"http://www.flowable.org/test\"><process id=\"test\" name=\"222\" isExecutable=\"true\"><startEvent id=\"Event_ee88ov0\" flowable:initiator=\"initiator\" /><userTask id=\"Activity_9jb4l8r\" name=\"提交人\" flowable:assignee=\"${initiator}\" flowable:skipExpression=\"${initiator==''}\" /><sequenceFlow id=\"a069d00f16c9e4d96af91f4e803a58fac\" sourceRef=\"Event_ee88ov0\" targetRef=\"Activity_9jb4l8r\" /></process><bpmndi:BPMNDiagram id=\"BPMNDiagram_test\"><bpmndi:BPMNPlane id=\"BPMNPlane_test\" bpmnElement=\"test\"><bpmndi:BPMNEdge id=\"BPMNEdge_a069d00f16c9e4d96af91f4e803a58fac\" bpmnElement=\"a069d00f16c9e4d96af91f4e803a58fac\"><omgdi:waypoint x=\"30\" y=\"40\" /><omgdi:waypoint x=\"42\" y=\"40\" /><omgdi:waypoint x=\"42\" y=\"40.00000000000001\" /><omgdi:waypoint x=\"80\" y=\"40.00000000000001\" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id=\"BPMNShape_Event_ee88ov0\" bpmnElement=\"Event_ee88ov0\"><omgdc:Bounds x=\"0\" y=\"25\" width=\"30\" height=\"30\" /></bpmndi:BPMNShape><bpmndi:BPMNShape id=\"BPMNShape_Activity_9jb4l8r\" bpmnElement=\"Activity_9jb4l8r\"><omgdc:Bounds x=\"80\" y=\"0\" width=\"100\" height=\"80\" /></bpmndi:BPMNShape></bpmndi:BPMNPlane></bpmndi:BPMNDiagram></definitions>"
}
返回示例
{
"code": "100",
"msg": "OK",
"data": "1705828124180770817",
"success": true
}
发布流程模板
前端请求示例
:::tips
- URL:
/flow/bpmnDesigner/prod/api/deploy/{id}
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdFlowBpmnModelService prodFlowBpmnModelService;
String id = "";
ReturnVo<Deployment> returnVo = prodFlowBpmnModelService.deploy(id);
Body参数
:::info 无 :::
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | Deployment |
模板对象Deployment
参数 | 类型 | 说明 |
|
---|
id | String | 主键id |
|
name | String | 模板名称 |
|
key | Integer | 模型key |
|
category | String | 分类编码 |
|
示例
请求示例
http://域名/flow/bpmnDesigner/prod/api/deploy/1
返回示例
{
"code": "100",
"msg": "发布成功",
"data": {
"id": "1705094823728865280",
"originalPersistentState": null,
"name": "测试一波",
"category": "1010",
"key": "Hccc",
"tenantId": null,
"resources": {
"Hccc.bpmn": {
"id": "1705094823728865280",
"originalPersistentState": {},
"name": "Hccc.bpmn",
"bytes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRlZmluaXRpb25zIHhtbG5zPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L01PREVMIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmbG93YWJsZT0iaHR0cDovL2Zsb3dhYmxlLm9yZy9icG1uIiB4bWxuczpicG1uZGk9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvREkiIHhtbG5zOm9tZ2RjPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9ERC8yMDEwMDUyNC9EQyIgeG1sbnM6b21nZGk9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RJIiB0eXBlTGFuZ3VhZ2U9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiBleHByZXNzaW9uTGFuZ3VhZ2U9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFBhdGgiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2Zsb3dhYmxlLm9yZy9icG1uIj4KICA8cHJvY2VzcyBpZD0iSGNjYyIgbmFtZT0i5rWL6K+V5LiA5rOiIiBpc0V4ZWN1dGFibGU9InRydWUiPgogICAgPHN0YXJ0RXZlbnQgaWQ9IkV2ZW50X3Y1MGE0ZW4iIGZsb3dhYmxlOmluaXRpYXRvcj0iaW5pdGlhdG9yIj4KICAgICAgPGV4dGVuc2lvbkVsZW1lbnRzPgogICAgICAgIDxmbG93YWJsZTpmb3JtRGF0YT48L2Zsb3dhYmxlOmZvcm1EYXRhPgogICAgICA8L2V4dGVuc2lvbkVsZW1lbnRzPgogICAgPC9zdGFydEV2ZW50PgogICAgPHVzZXJUYXNrIGlkPSJBY3Rpdml0eV9lc244c2phIiBuYW1lPSLmj5DkuqTkuroiIGZsb3dhYmxlOmNhbmRpZGF0ZVVzZXJzPSIxMDAwMyIgZmxvd2FibGU6Y2FuZGlkYXRlR3JvdXBzPSJ0al96YyIgZmxvd2FibGU6c2tpcEV4cHJlc3Npb249IiR7aW5pdGlhdG9yPT0nJ30iPgogICAgICA8ZXh0ZW5zaW9uRWxlbWVudHM+CiAgICAgICAgPGZsb3dhYmxlOmZvcm1EYXRhPjwvZmxvd2FibGU6Zm9ybURhdGE+CiAgICAgICAgPGZsb3dhYmxlOmFzc2lnbmVlVHlwZT48IVtDREFUQVtpZG1dXT48L2Zsb3dhYmxlOmFzc2lnbmVlVHlwZT4KICAgICAgICA8Zmxvd2FibGU6aWRtQ2FuZGlkYXRlVXNlcnM+PCFbQ0RBVEFbW3siaWQiOiI0IiwibmFtZSI6IuWRqOadsOS8piIsImNvZGUiOiIxMDAwMyIsInNleCI6MCwibW9iaWxlIjpudWxsLCJjb21wYW55SWQiOiIxIiwiY29tcGFueU5hbWUiOiLkuK3lm73nn7PljJYiLCJkZXB0SWQiOiIyNyIsImRlcHROYW1lIjoi6aKG5a+854+t5a2QIn1dXV0+PC9mbG93YWJsZTppZG1DYW5kaWRhdGVVc2Vycz4KICAgICAgICA8Zmxvd2FibGU6aWRtQ2FuZGlkYXRlR3JvdXBzPjwhW0NEQVRBW1t7ImlkIjoidW5kZWZpbmVkXzEyIiwibmFtZSI6IuaAu+ijgSIsInNuIjoidGpfemMifV1dXT48L2Zsb3dhYmxlOmlkbUNhbmRpZGF0ZUdyb3Vwcz4KICAgICAgPC9leHRlbnNpb25FbGVtZW50cz4KICAgIDwvdXNlclRhc2s+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJhMGQyOWI0NmY4YzIyNDE5OTk4ZmE4ZDJjM2IxMTg1NTkiIHNvdXJjZVJlZj0iRXZlbnRfdjUwYTRlbiIgdGFyZ2V0UmVmPSJBY3Rpdml0eV9lc244c2phIj48L3NlcXVlbmNlRmxvdz4KICAgIDxpbnRlcm1lZGlhdGVUaHJvd0V2ZW50IGlkPSJFdmVudF8wMzRuOXp6Ij48L2ludGVybWVkaWF0ZVRocm93RXZlbnQ+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzA1eWZyaW0iIHNvdXJjZVJlZj0iQWN0aXZpdHlfZXNuOHNqYSIgdGFyZ2V0UmVmPSJFdmVudF8wMzRuOXp6Ij48L3NlcXVlbmNlRmxvdz4KICAgIDxlbmRFdmVudCBpZD0iRXZlbnRfMDh3cG92aCI+PC9lbmRFdmVudD4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMWg0M3AybCIgc291cmNlUmVmPSJFdmVudF8wMzRuOXp6IiB0YXJnZXRSZWY9IkV2ZW50XzA4d3BvdmgiPjwvc2VxdWVuY2VGbG93PgogIDwvcHJvY2Vzcz4KICA8YnBtbmRpOkJQTU5EaWFncmFtIGlkPSJCUE1ORGlhZ3JhbV9IY2NjIj4KICAgIDxicG1uZGk6QlBNTlBsYW5lIGJwbW5FbGVtZW50PSJIY2NjIiBpZD0iQlBNTlBsYW5lX0hjY2MiPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBicG1uRWxlbWVudD0iRXZlbnRfdjUwYTRlbiIgaWQ9IkJQTU5TaGFwZV9FdmVudF92NTBhNGVuIj4KICAgICAgICA8b21nZGM6Qm91bmRzIGhlaWdodD0iMzAuMCIgd2lkdGg9IjMwLjAiIHg9IjAuMCIgeT0iMjUuMCI+PC9vbWdkYzpCb3VuZHM+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5X2VzbjhzamEiIGlkPSJCUE1OU2hhcGVfQWN0aXZpdHlfZXNuOHNqYSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyBoZWlnaHQ9IjgwLjAiIHdpZHRoPSIxMDAuMCIgeD0iODAuMCIgeT0iMC4wIj48L29tZ2RjOkJvdW5kcz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBicG1uRWxlbWVudD0iRXZlbnRfMDM0bjl6eiIgaWQ9IkJQTU5TaGFwZV9FdmVudF8wMzRuOXp6Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIGhlaWdodD0iMzYuMCIgd2lkdGg9IjM2LjAiIHg9IjIzMi4wIiB5PSIyMi4wIj48L29tZ2RjOkJvdW5kcz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBicG1uRWxlbWVudD0iRXZlbnRfMDh3cG92aCIgaWQ9IkJQTU5TaGFwZV9FdmVudF8wOHdwb3ZoIj4KICAgICAgICA8b21nZGM6Qm91bmRzIGhlaWdodD0iMzYuMCIgd2lkdGg9IjM2LjAiIHg9IjMyMi4wIiB5PSIyMi4wIj48L29tZ2RjOkJvdW5kcz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGJwbW5FbGVtZW50PSJhMGQyOWI0NmY4YzIyNDE5OTk4ZmE4ZDJjM2IxMTg1NTkiIGlkPSJCUE1ORWRnZV9hMGQyOWI0NmY4YzIyNDE5OTk4ZmE4ZDJjM2IxMTg1NTkiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIzMC4wIiB5PSI0MC4wIj48L29tZ2RpOndheXBvaW50PgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI0Mi4wIiB5PSI0MC4wIj48L29tZ2RpOndheXBvaW50PgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI0Mi4wIiB5PSI0MC4wIj48L29tZ2RpOndheXBvaW50PgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI4MC4wIiB5PSI0MC4wIj48L29tZ2RpOndheXBvaW50PgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBicG1uRWxlbWVudD0iRmxvd18wNXlmcmltIiBpZD0iQlBNTkVkZ2VfRmxvd18wNXlmcmltIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMTgwLjAiIHk9IjQwLjAiPjwvb21nZGk6d2F5cG9pbnQ+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjIzMi4wIiB5PSI0MC4wIj48L29tZ2RpOndheXBvaW50PgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBicG1uRWxlbWVudD0iRmxvd18xaDQzcDJsIiBpZD0iQlBNTkVkZ2VfRmxvd18xaDQzcDJsIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMjY4LjAiIHk9IjQwLjAiPjwvb21nZGk6d2F5cG9pbnQ+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjMyMi4wIiB5PSI0MC4wIj48L29tZ2RpOndheXBvaW50PgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgIDwvYnBtbmRpOkJQTU5QbGFuZT4KICA8L2JwbW5kaTpCUE1ORGlhZ3JhbT4KPC9kZWZpbml0aW9ucz4=",
"deploymentId": "1705094823728865280",
"generated": false,
"persistentState": "org.flowable.engine.impl.persistence.entity.ResourceEntityImpl",
"inserted": true,
"updated": false,
"deleted": false,
"idPrefix": "PRC-"
},
"Hccc.Hccc.png": {
"id": "1705094823892443136",
"originalPersistentState": {},
"name": "Hccc.Hccc.png",
"bytes": "iVBORw0KGgoAAAANSUhEUgAAAXAAAABaCAYAAAChWQ3bAAAOfklEQVR42u2dT1AUZxqHPaQqHjzksIc9eKBqrVoPVsWDhz148LCHPVi1HiQaMFFBxEREoqLEBFFMogSVLTFlWVKlZt1yKVfAZV1FQf6pQ5aVKIq6EkUjMPwTEAwEh/jt++udZlsEmWF6unt6fk/VV8gMzvT0dD/99tvv9/aMGSQklFJvPXz48HRdXd0vFRUV6tKlSxwWj/LyclVTU9MjYwW3SEJIwEDetbW1qqurS42MjHDYNLq7u1V1dfUzkflSbpWEkIBA5E15O0biIxKR3+VWSQgJCKRNKE/nDBG4j1slISQgkIOlOB0lcMWtkhBiqsCf93vVw/pjqqk8Wxv4Nx6jdClwQoiDBT7Y16Zul2Wqm+fSXxl4DM9RvBQ4IcShAn/S9PfX5K2P1qZSipcCJ4Q4VeB3K3MmFTieo3gpcEKIQwV++9LOSQWO5yheCpwQQoFT4BQ4IcRMgaPqZDKB4zmKlwInhDhU4M1XD00qcDxH8VLghBCHCvxpW6O6fTHr9fSJPIbnKF4KnBDiUIFjtPz729cEjscoXQqcEOJkgf/8s2q+dvj19Ik8hucoXgqcEOJAgWOm5f2r+ZPmwPEcZ2NS4IQQJwlcImtv82V168L2SeWtD/wN/pbROAVOCLFZ4FNF3YzGKXBCiEMFHkjU/aZonCKmwAkhNgl8uvLWB0VMgRNCbBI4BwVO3M2qVaveWb58+VIZ+TI8MrwylGHgd8+yZcuOvv/++ytk/IprjQLnoMDfSGtr67vFxcV/+uabb25//vnngykpKb/Ex8ePiSUpKenF5s2bn+7atatm375960REM7kXB44IebGsx1IR8ug4YU855P9ckrFk0aJFb3FNUuAcFLiGUuotj8ez9eDBg14RtNqzZ48qKipSN27cUG1tbWp0dFTpPH36VDU2NqqSkhJ16NAhJQIfTU9Pv5aQkPAu9+bJEQEvEPnWBSvtSUa9vNYfuFYpcI4oF3h1dXVCXl7e4Mcff6xOnz6tvF6v+v7771VWVpYmi3nz5qlZs2ZhnaiZM2dqvy9dulRJdK5E+qqvr09bZ+vXr/elpqZelf8Tw736/yBaFtnumSji3rZtm7bOr169qn788Uc1PDysHSRfvHih/V5XV6cdSDMzMycTeb4lZ0CyTDPlqJ184sSJ6r179z6TL9onb6wtxIoVK15+9NFHI5999tnDnJyckzJ+S4FzUODhj7oLCwtvSeSsTp06pYk4Pz9fzZkzR82ePVulpKRocmlublaDg4OaWCCYlpYWVVxcrLZs2aL93fz589Xhw4dVf3+/FpV/8MEHvsTExG1U94wZ8fHxs8dH3bJ+1LFjx7QDZTA8evRIFRQUKN2bhnEL7xM2cZ85c+bb3bt3+9LS0tSRI0e0owpOy/SjDX52dXWp69evKxG82rhx48tPPvnk0dq1a9dQ4BwUuPmIPGJE1l3YJyGG8+fPq5iYGLVkyRLt8+v7ZiBUVlYiCNNkjn/j9WT/HU5KSjoZzflxEffcuLi4dqNskZqC60IBKazs7OzxEn9i+pmPiDrhiy+++Dk9PV2TszGPNhXIvWVkZIwmJyffjY2NnUOBc1Dg5skbKROclnd0dGgRHaJuSDwUamtrtdeBzBHNf/nllz9JJH4+Gi+4ISI2yhtRd1VVVVAODGR943VNlzhOzc6ePXt53bp1qrS0NKSFvnDhgpJTvCE3R+MUOAVuZdoEkTfkjbTIwoULtZ2/u7vbFKngNSFw5MiRUpEAbkAkUxCFOe+xtAkqeO7du6fCAbIZ41IqtyTgnRXSBiJHmn9t2LBB3b9/35SFxCmZHAyG1qxZs54C56DApw9y3kib4DQe8l68eLHy+Xymi0X2VU3iEHpqauqASGxrFKVO9hgj73DJ2yhxY5knLmxOe+EReUPeoeZ5xoPXkyh8EAXtFDgHBR48NTU1SbhgiYBIj9rCIW8dROIYeD8RzLDbU6HAXyo4Vm2CtIkVIJ0yrl48+BJD5LyRNjEr8p4oEv/www/7cHGAAuegwIM7M96/f/9zVJsg141ctVlpkzelU+bOnatd2CwqKuoXiRdFQfRdZ7xgaWbOeyrGXdisD+raA6pN5AVGkPMOJ+fOnRuSDcFDgXNQ4IGDSTqo88bFRVSb4DNaFRmiOgX5cIn+O+Pi4ua7Vd7+GZZjqROzsxCBVKcY8+GYsRnwwhcXF/8F1SYoQA83siF2uCmVQoFT4OHmwIEDXtR0o84bpYJWgjRKbm4uChpQJfFnF6dPSnV5os7bDk6ePPnKtPuAo2/UeaNU0Apu3rw54qYonAKnwMMJeptgejwmjiB1YlX0bYzCEfUjZSMReK8ba8PRmMqY+w52ko6Z1wqNFzQDaoCFGZa4cGllvkdOxzqcPmXX33hmIQVOgdu5faEx1ddff61Nj0c6I5wXLicDAse0+08//bQeqYYIy2tPuZ79XQXHpsfbiXHafUCZCkyPxxRPK8nLy7shC7jF4adUY6cystH+jgKnwO3Yvg4ePNiEfhrobYLp8XaAaffonXL8+PFbIZW5OXQ9+1vCan+HVJWd4LvWlwWtaKf8gOhtglpEK7l27doj5Jwi4Ys3jPMTHckpcAo8nNsXWsJiZrOdckFxA+rCGxoamtHjOhIF/qb17O/nrT2PxlR2AhcblnXqdY3GVFbnfDo6OrowdTTCvnhjT9+FFDgFbsX2hX7e2D/RRRCNqezgyZMnWklhT0/Pc9yoIMIF/tp6Nt6MAV0E7QR9pow3hQgkgR9U8xszwPvJwg1H4hdvPJLjlIwCp8DDuX3hohauT6EVrN5V0Gqwv+L9AZbNDQI3rmfj71ZU4r0JvL9xeQL6gHZgUmN02wcF7qzhlu3KOMD/CsbsQ39/N67f8evaboIS+MqVK19aHYEPDQ11RHAErl2J12dKUeCMwMO5fekROG7K4IAIfNBFEfjYejY+brULQ47AN2zYMGJ1Dry9vf0/EZgDf2XHiqQcOKKniUYoz1Hg1mxfuFkK9k/ceMHuHHhnZ+dtF+TAX1vPxhw4Wn5EVA48MzOz2eoqlLKysn9GUBWK5003Io0UgU/22HSfo8Ct2b62bt3a4ZQqFI/HUxXBVSiTrueIrkLJzc0tsLoOPCsr61wE1IFPGBFR4BS4ldtXdnb2RdQG79692/Y68AMHDpRGYB34lOvZWAdeWFgYWXXg8sX8BqVKFs7EHI6Li3vglpunUuAUeDjJyclZvW/fvpdOmImZnJxcGmkzMQOUfOTOxASbNm36wapeKGVlZSdl4Wrd8uVT4BR4OEHvkYSEhBfoVrdgwQLbeqF4vd4m2W+73doLRT6bTxfngwcPbJE3eqFIcPsyqF4oIDExMXbz5s0+C6LwPlnABnYjpMAp8MCRqLASeeijR4/a1o0wPz//RLR0I8TN2+1gWt0IdeT0qDHc/cCRb0f07aYbpVLgFHi4kQj83bVr147q/cBxkwUro+/e3t5WEcoP7AcePnCGhZLuafUD9x+BYnAD4nDdkaexsfEsymJ4Rx4KnAIPno0bN1bjAhfkbfUdeb766qvjsu+enuFyjNUouENOxNyRR0dOl+IlEv/J7KNPa2vrFTl6P+Y9MSlwCnx6xMbG/nr16tUjVt8T886dO9XyXoPRcE/M99577/fGmvGIuiemTnx8fAJuQGxWJI7IG/KWU5QMN37pkSDwt99+e8IRynMUuPXIfpSalpY2hOgYcoXIwyHxjIwMre67p6fnjrxnk9NLfk2OwnN1kWIWLOQa7rpv+S5fmnJXekM+aLm86LOSkpLnIZxG9O3fv/+Yf5bTKrd+4ZxKT4FbSWJi4re7du3SJK7v9MiNm5U2wUEB8u7t7X2ckJBwWV7/8Iwowj+13mOUeLgm90DeK1eu/MUg71typjPLrCNRjBx9K5KTkzsaGhqGgqnzvnjx4ik5ANTjgqXbct4UOAVut2BErGd37NgxoAvXjFutIdJEzhuRPSJvOVBUIu/txrLBALIQs+WzNxsljnSKmTlxrO9xkfeTsMyNQZE7RC5fZNfevXubrly58ritrc2rN31BYyr0NikvL//Hzp07z8uHfQhxI+p2U7UJBU6BO0nisk8eSU1NHUBOHBcaUS2CyBmfP5i0Cibo4CCgV7cg5+1PmxyORnkbA1ijxPULm6FeH0S1ybgLluGT9/ijkkTTaTgqy2hBN0H/mw/7FwB1lFvcMsOSAqfAnc6yZctSZL98XlhY2DcwMKDdtR7ROGZspqWlab1TWlpaxjrs4ScaU6FcGNPjIW0M1HmjVNBfbTIYTTnvACJxj1G2KDHEXeuDbQAI8aPO21gqqKdNos2ZFDgHBe4H1SkSWP1NxNAvwn4gEZ6vvr5e650CQaCLIVrByp9qP5EmQaSOC5WIvjHDEpN05DXuIThze8pzOmc7cqDMm6gl7fbt27XeKciR40xIvxkEfqKrIHLcJSUl2vR44wxL4wVL03LehAKnwCM6Gp+H5kciioFNmzbdKCgouPHdd989aG9v/8l4nbKnp+c2ugqiMRV6m2B6vEj7lJsn6ZiBv8TQY9KNI+pDKhUkFDgF7k6Qt/bLBuVwlf50p8/YY9ovonzMPozmPPc0D5SL/eliX7Di9t+Hc0k0XBukwDkocOLkA+U7KLf2t6L1GG8KYTxQ4qwIExiR6uJao8A5KHBCCAVOgRNCKHCKkwInhFDgHBQ4IYQCp8AJIYQCp8AJIRQ4BwVOCKHAOShwQggFToETQihwDgqcEEKBc1DghBAKnAInhBAKnAInhFDgHBQ4IYQC56DACSEUOAVOCKHAOShwQojzqaiooDidM4ZF4D5ulYSQgKipqfF2dXVRng4YbW1tfxWB3+VWSQgJiMuXL/+xqqqqv7Ozc4gStS/yhrzLy8sfy1jKrZIQEjAijcUS+dXj9B05WA7LB9b7XcqbEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEKI6fwXZKh/aHe5d4cAAAAASUVORK5CYII=",
"deploymentId": "1705094823728865280",
"generated": true,
"persistentState": "org.flowable.engine.impl.persistence.entity.ResourceEntityImpl",
"inserted": true,
"updated": false,
"deleted": false,
"idPrefix": "PRC-"
}
},
"deploymentTime": 1695361259762,
"derivedFrom": null,
"derivedFromRoot": null,
"parentDeploymentId": "1705094823728865280",
"engineVersion": null,
"new": true,
"persistentState": {
"tenantId": null,
"parentDeploymentId": "1705094823728865280",
"category": "1010",
"key": "Hccc"
},
"inserted": true,
"updated": false,
"deleted": false,
"idPrefix": "PRC-"
},
"success": true
}
查询决策模板列表
前端请求示例
:::tips
- URL:
/flow/dmnDesigner/prod/api/modelPage
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdDeModelService prodDeModelService;
ParamVo<ProdDeModel> params = new ParamVo<>();
PagerModel<ProdDeModel> pageModel = prodDeModelService.queryPagerModel(params.getEntity(), params.getQuery());
Body参数
参数 | 类型 | 是否必填 | 说明 |
---|
entity | T | 是 | ProdDeModel |
query | Query | 是 | 分页对象 |
ProdDeModel对象
参数 | 类型 | 是否必填 | 说明 |
---|
name | String | 否 | 模板名称 |
category | String | 否 | 分类编码 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | PagerModel<ProdDeModel> |
模板对象ProdDeModel
参数 | 类型 | 说明 | |
---|
id | String | 主键id | |
name | String | 模板名称 | |
modelType | Integer | 模型类型 | |
modelKey | String | 模型key | 模型key |
category | String | 所属分类 | |
version | String | 版本号 | |
modelEditorXml | String | 存储的xml文件 | |
description | String | 描述 | |
createTime | Date | 创建时间 | |
creator | String | 创建人 | |
updateTime | Date | 修改时间 | |
updator | String | 修改人 | |
示例
请求示例
http://域名/flow/dmnDesigner/prod/api/modelPage
返回示例
{
"code": "100",
"msg": "OK",
"data": {
"total": 3,
"rows": [
{
"id": "1694534513904226305",
"name": "测试Dmn2",
"modelType": 4,
"modelKey": "testDmn2",
"category": "1010",
"categoryName": "测试",
"version": 0,
"modelEditorXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\" xmlns:biodi=\"http://bpmn.io/schema/dmn/biodi/2.0\" id=\"dish\" name=\"Dish\" namespace=\"http://camunda.org/schema/1.0/dmn\" exporter=\"dmn-js (https://demo.bpmn.io/dmn)\" exporterVersion=\"11.0.2\">\n <decision id=\"testDmn2\" name=\"测试Dmn2\">\n <decisionTable id=\"DecisionTable_1dgxyfp\" hitPolicy=\"COLLECT\">\n <input id=\"InputClause_1hmm6z2\" label=\"金额\" biodi:width=\"336\">\n <inputExpression id=\"LiteralExpression_0eaabht\" typeRef=\"integer\">\n <text>money</text>\n </inputExpression>\n </input>\n <output id=\"OutputClause_1ua72fu\" label=\"领导\" name=\"${cdj.dmn(bbb)}\" typeRef=\"string\" />\n <rule id=\"DecisionRule_0jc0iz7\">\n <inputEntry id=\"UnaryTests_02ekvan\">\n <text>#{money>1000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_01w05lr\">\n <text>'10000'</text>\n </outputEntry>\n </rule>\n <rule id=\"DecisionRule_1flupaf\">\n <inputEntry id=\"UnaryTests_0zk4q3i\">\n <text>#{money>2000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_1rypr6z\">\n <text>'10001'</text>\n </outputEntry>\n </rule>\n <rule id=\"DecisionRule_1h08fmx\">\n <inputEntry id=\"UnaryTests_01p96hl\">\n <text>#{money>3000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_0ysf4he\">\n <text>'10002'</text>\n </outputEntry>\n </rule>\n </decisionTable>\n </decision>\n</definitions>\n",
"description": null,
"status": "publish",
"statusName": "发布",
"created": 1692843482316,
"lastUpdated": 1692955392542,
"createdBy": "admin",
"lastUpdatedBy": "admin",
"tenantId": null,
"updateFlag": 1
},
{
"id": "1694362759353225217",
"name": "测试Dmn",
"modelType": 4,
"modelKey": "testDmn",
"category": "1010",
"categoryName": "测试",
"version": 0,
"modelEditorXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\" xmlns:camunda=\"http://camunda.org/schema/1.0/dmn\" id=\"dish\" name=\"Dish\" namespace=\"http://camunda.org/schema/1.0/dmn\" exporter=\"dmn-js (https://demo.bpmn.io/dmn)\" exporterVersion=\"11.0.2\">\n <decision id=\"testDmn\" name=\"测试Dmn\">\n <decisionTable id=\"DecisionTable_1dgxyfp\">\n <input id=\"InputClause_1hmm6z2\" label=\"工资\" camunda:inputVariable=\"gz\">\n <inputExpression id=\"LiteralExpression_0eaabht\" typeRef=\"integer\" expressionLanguage=\"juel\">\n <text>gz</text>\n </inputExpression>\n </input>\n <output id=\"OutputClause_1ua72fu\" label=\"职位\" name=\"zw\" typeRef=\"string\" />\n <rule id=\"DecisionRule_0r90h05\">\n <inputEntry id=\"UnaryTests_0i85k5c\">\n <text>${gz > 100000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_0u6i0ox\">\n <text>总经理</text>\n </outputEntry>\n </rule>\n <rule id=\"DecisionRule_0meflai\">\n <inputEntry id=\"UnaryTests_1rbvgm0\">\n <text>${gz > 20000 && gz < 100000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_0nl7kja\">\n <text>经理</text>\n </outputEntry>\n </rule>\n <rule id=\"DecisionRule_0m8mqpk\">\n <inputEntry id=\"UnaryTests_0vn02lq\">\n <text>${gz > 10000 && gz < 20000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_0umw274\">\n <text>总监</text>\n </outputEntry>\n </rule>\n </decisionTable>\n </decision>\n</definitions>\n",
"description": null,
"status": "publish",
"statusName": "发布",
"created": 1692802536212,
"lastUpdated": 1692803897811,
"createdBy": "admin",
"lastUpdatedBy": "admin",
"tenantId": null,
"updateFlag": 1
},
{
"id": "1694008311393202177",
"name": "面板",
"modelType": 4,
"modelKey": "Decision_1ufimaw",
"category": "1010",
"categoryName": "测试",
"version": 0,
"modelEditorXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\" id=\"dish\" name=\"Dish\" namespace=\"http://camunda.org/schema/1.0/dmn\" exporter=\"dmn-js (https://demo.bpmn.io/dmn)\" exporterVersion=\"11.0.2\">\n <decision id=\"Decision_1ufimaw\" name=\"面板\">\n <decisionTable id=\"DecisionTable_1dgxyfp\">\n <input id=\"InputClause_1hmm6z2\" label=\"名称\">\n <inputExpression id=\"LiteralExpression_0eaabht\" typeRef=\"string\">\n <text>name</text>\n </inputExpression>\n </input>\n <output id=\"OutputClause_1ua72fu\" label=\"金额\" name=\"money\" typeRef=\"string\" />\n <rule id=\"DecisionRule_1bfvsr2\">\n <inputEntry id=\"UnaryTests_0k1t4q6\">\n <text>1</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_0xjtg52\">\n <text>300</text>\n </outputEntry>\n </rule>\n <rule id=\"DecisionRule_1acqaa1\">\n <inputEntry id=\"UnaryTests_1js6ys3\">\n <text>2</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_1bmg8fx\">\n <text>388</text>\n </outputEntry>\n </rule>\n </decisionTable>\n </decision>\n</definitions>\n",
"description": null,
"status": "publish",
"statusName": "发布",
"created": 1692717999658,
"lastUpdated": 1692801518536,
"createdBy": "admin",
"lastUpdatedBy": "admin",
"tenantId": null,
"updateFlag": 1
}
]
},
"success": true
}
查询决策模板详情
前端请求示例
:::tips
- URL:
/flow/dmnDesigner/prod/api/getDmnByModelId/{id}
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdDeModelService prodDeModelService;
String modelId = "";
ProdDeModel prodDeModel = prodDeModelService.getById(modelId);
ModelInfoVo modelInfoVo = new ModelInfoVo();
if (prodDeModel != null) {
modelInfoVo.setModelId(modelId);
modelInfoVo.setModelName(prodDeModel.getName());
modelInfoVo.setModelKey(prodDeModel.getModelKey());
modelInfoVo.setModelXml(prodDeModel.getModelEditorXml());
}
Body参数
:::info 无 :::
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | Entity | ModelInfoVo |
ModelInfoVo对象
名称 | 类型 | 是否必填 | 描述 |
---|
modelId | String | 否 | 模板id(修改时必填) |
modelKey | String | 否 | 模板key |
modelName | String | 否 | 模板名称 |
modelXml | String | 是 | 模板xml |
示例
请求示例
http://域名/flow/bpmnDesigner/prod/api/getDmnByModelId/1705828124180770817
请求入参
:::info 无 :::
返回示例
{
"code": "100",
"msg": "OK",
"data": {
"id": null,
"modelId": "1694534513904226305",
"modelKey": "testDmn2",
"modelName": "测试Dmn2",
"fileName": null,
"modelXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\" xmlns:biodi=\"http://bpmn.io/schema/dmn/biodi/2.0\" id=\"dish\" name=\"Dish\" namespace=\"http://camunda.org/schema/1.0/dmn\" exporter=\"dmn-js (https://demo.bpmn.io/dmn)\" exporterVersion=\"11.0.2\">\n <decision id=\"testDmn2\" name=\"测试Dmn2\">\n <decisionTable id=\"DecisionTable_1dgxyfp\" hitPolicy=\"COLLECT\">\n <input id=\"InputClause_1hmm6z2\" label=\"金额\" biodi:width=\"336\">\n <inputExpression id=\"LiteralExpression_0eaabht\" typeRef=\"integer\">\n <text>money</text>\n </inputExpression>\n </input>\n <output id=\"OutputClause_1ua72fu\" label=\"领导\" name=\"${cdj.dmn(bbb)}\" typeRef=\"string\" />\n <rule id=\"DecisionRule_0jc0iz7\">\n <inputEntry id=\"UnaryTests_02ekvan\">\n <text>#{money>1000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_01w05lr\">\n <text>'10000'</text>\n </outputEntry>\n </rule>\n <rule id=\"DecisionRule_1flupaf\">\n <inputEntry id=\"UnaryTests_0zk4q3i\">\n <text>#{money>2000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_1rypr6z\">\n <text>'10001'</text>\n </outputEntry>\n </rule>\n <rule id=\"DecisionRule_1h08fmx\">\n <inputEntry id=\"UnaryTests_01p96hl\">\n <text>#{money>3000}</text>\n </inputEntry>\n <outputEntry id=\"LiteralExpression_0ysf4he\">\n <text>'10002'</text>\n </outputEntry>\n </rule>\n </decisionTable>\n </decision>\n</definitions>\n",
"appSn": null,
"categoryCode": null
},
"success": true
}
新增/修改决策模板
前端请求示例
:::tips
- URL:
/flow/dmnDesigner/prod/api/saveDmnModel
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdFlowDmnModelService prodFlowDmnModelService;
ProdDeModel model = new ProdDeModel();
model.setId(modelInfoVo.getModelId());
model.setModelEditorXml(modelInfoVo.getModelXml());
model.setCreatedBy("当前登录用户编码");
model.setCategory(modelInfoVo.getCategoryCode());
ReturnVo<String> representationReturnVo = prodFlowDmnModelService.importDmnModel(model);
Body参数
ModelInfoVo对象
名称 | 类型 | 是否必填 | 描述 |
---|
modelId | String | 否 | 模板id(修改时必填) |
modelKey | String | 否 | 模板key |
modelName | String | 否 | 模板名称 |
modelXml | String | 是 | 模板xml |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 模板id |
示例
请求示例
http://域名/flow/dmnDesigner/prod/api/saveDmnModel
请求入参
{
"modelId": "test1",
"modelXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\" id=\"dish_test1\" name=\"测试001\" namespace=\"http://camunda.org/schema/1.0/dmn\" exporter=\"dmn-js (https://demo.bpmn.io/dmn)\" exporterVersion=\"11.0.2\">\n <decision id=\"test1\" name=\"测试001\">\n <decisionTable id=\"DecisionTable_test1\">\n <input id=\"InputClause_1hmm6z2\">\n <inputExpression id=\"LiteralExpression_0eaabht\" typeRef=\"string\" />\n </input>\n <output id=\"OutputClause_1ua72fu\" typeRef=\"string\" />\n </decisionTable>\n </decision>\n</definitions>\n",
"categoryCode": "1004"
}
返回示例
{
"code": "100",
"msg": "保存成功!",
"data": "1705838493053906945",
"success": true
}
发布决策模板
前端请求示例
:::tips
- URL:
/flow/dmnDesigner/prod/api/deploy/{id}
- Method:
POST
- 需要登录:是 :::
java调用示例
@Autowired
private ProdFlowDmnModelService prodFlowDmnModelService;
ProdDeModel model = new ProdDeModel();
model.setId(modelInfoVo.getModelId());
model.setModelEditorXml(modelInfoVo.getModelXml());
model.setCreatedBy("当前登录用户编码");
model.setCategory(modelInfoVo.getCategoryCode());
ReturnVo<String> representationReturnVo = prodFlowDmnModelService.publishDmn(model);
Body参数
:::info 无 :::
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String |
|
示例
请求示例
http://域名/flow/dmnDesigner/prod/api/deploy/1
返回示例
{
"code": "100",
"msg": "发布成功!",
"data": null,
"success": true
}
流程中心
查询待办列表
前端请求示例
:::tips
- URL:
/flow/prod/api/queryApplyingTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskQueryService flowablePlusTaskQueryService;
ParamVo<PlusQueryTaskVo> params = new ParamVo<>();
ReturnVo<PagerModel<TaskVo>> pagerModel = flowablePlusTaskQueryService.queryApplyingTask(params.getEntity(), params.getQuery())
Body参数
参数 | 类型 | 是否必填 | 说明 |
---|
entity | T | 是 | PlusQueryTaskVo |
query | Query | 是 | 分页对象 |
PlusQueryTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
startUserId | String | 否 | 发起人id |
formName | String | 否 | 标题 |
appSn | String | 否 | 所属系统 |
businessKey | String | 否 | 流程实例key |
modelKey | String | 否 | 流程模型key |
startTime | String | 否 | 流程开始时间 |
endTime | String | 否 | 流程结束时间 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | PagerModel<TaskVo> |
TaskVo对象
参数 | 类型 | 说明 |
---|
name | String | 节点名称 |
formName | String | 标题 |
stayHour | String | 停留时间 |
startPersonCode | String | 发起人编号 |
createTime | Date | 创建时间 |
appSn | String | 所属系统 |
taskId | String | 任务id |
processStatus | String | 审批状态 |
processStatusName | String | 审批状态中文描述 |
processInstanceId | String | 流程实例id |
示例
请求示例
http://域名/flow/prod/api/queryApplyingTask
请求入参
{
"entity":{
"formName": "测试流程"
},
"query": {
"pageSize": 15,
"pageNum": 1
}
}
返回示例
{
"code": "100",
"msg": "OK",
"data": {
"total": 1,
"rows": [
{
"businessKey": null,
"name": "月初生产财务报表数据上报",
"taskId": "1702200508203569152",
"taskDefKey": "a77b2033f58754b77b5855f3c5ad248f9",
"assignee": null,
"assigneeName": null,
"createTime": "2023-09-14 14:00:01",
"stayHour": "8 天 13 分",
"processInstanceId": "1702200508182597632",
"parentId": null,
"processDefinitionId": "CycleTimerCoreStartEventProcess:1:1701065248367648768",
"processDefinitionKey": null,
"processDefinitionType": null,
"formType": null,
"processStatus": "applying",
"processStatusName": "审批中",
"taskType": null,
"status": 0,
"userId": null,
"userName": null,
"groupIds": null,
"finished": false,
"finishedTime": null,
"formName": "开始循环表达式时间事件",
"startPersonCode": null,
"startPersonName": null,
"startTime": null,
"endTime": null,
"appSn": "",
"appName": null,
"totalTime": null,
"businessUrl": null,
"candidateFlag": false,
"type": 0,
"currentAssignees": null,
"currentAssigneeNos": null
}
]
},
"success": true
}
查询已办列表
前端调动示例
:::tips
- URL:
/flow/prod/api/queryApplyedTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskQueryService flowablePlusTaskQueryService;
ParamVo<PlusQueryTaskVo> params = new ParamVo<>();
ReturnVo<PagerModel<TaskVo>> pagerModel = flowablePlusTaskQueryService.queryApplyedTask(params.getEntity(), params.getQuery())
Body参数
参数 | 类型 | 是否必填 | 说明 |
---|
entity | T | 是 | PlusQueryTaskVo |
query | Query | 是 | 分页对象 |
PlusQueryTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
startUserId | String | 否 | 发起人id |
formName | String | 否 | 标题 |
appSn | String | 否 | 所属系统 |
businessKey | String | 否 | 流程实例key |
modelKey | String | 否 | 流程模型key |
startTime | String | 否 | 流程开始时间 |
endTime | String | 否 | 流程结束时间 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | TaskVo |
TaskVo对象
参数 | 类型 | 说明 |
---|
name | String | 节点名称 |
formName | String | 标题 |
stayHour | String | 停留时间 |
startPersonCode | String | 发起人编号 |
createTime | Date | 创建时间 |
appSn | String | 所属系统 |
taskId | String | 任务id |
processStatus | String | 审批状态 |
processStatusName | String | 审批状态中文描述 |
processInstanceId | String | 流程实例id |
示例
请求示例
http://域名/flow/prod/api/queryApplyedTask
请求入参
{
"entity":{
"formName": "测试流程"
},
"query": {
"pageSize": 15,
"pageNum": 1
}
}
返回示例
{
"code": "100",
"msg": "OK",
"data": {
"total": 1,
"rows": [
{
"businessKey": null,
"name": "提交人",
"taskId": "1703418658949603328",
"taskDefKey": "Activity_n0sl3dp",
"assignee": "admin",
"assigneeName": null,
"createTime": null,
"stayHour": "14 秒",
"processInstanceId": "1703418656680484864",
"parentId": null,
"processDefinitionId": "InclusiveGateway001:1:1703418548115120128",
"processDefinitionKey": null,
"processDefinitionType": null,
"formType": null,
"processStatus": "applying",
"processStatusName": "审批中",
"taskType": null,
"status": 0,
"userId": null,
"userName": null,
"groupIds": null,
"finished": false,
"finishedTime": null,
"formName": "包容网关测试",
"startPersonCode": "1",
"startPersonName": null,
"startTime": "2023-09-17 22:40:30",
"endTime": "2023-09-17 22:40:45",
"appSn": "",
"appName": null,
"totalTime": null,
"businessUrl": null,
"candidateFlag": false,
"type": 0,
"currentAssignees": null,
"currentAssigneeNos": null
}
]
},
"success": true
}
查询我的列表
前端请求示例
:::tips
- URL:
/flow/prod/api/queryMyProcessInstance
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusProcessInstanceQueryService flowablePlusProcessInstanceQueryService;
ParamVo<PlusQueryTaskVo> params = new ParamVo<>();
ReturnVo<PagerModel<ProcessInstanceVo>> pagerModel = flowablePlusProcessInstanceQueryService.queryMyProcessInstance(params.getEntity(), params.getQuery())
Body参数
参数 | 类型 | 是否必填 | 说明 |
---|
entity | T | 是 | PlusInstanceQueryParamsVo |
query | Query | 是 | 分页对象 |
PlusInstanceQueryParamsVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
keyword | String | 否 | 查询关键字(标题) |
processInstanceId | String | 否 | 流程实例ID |
processDefinitionKey | String | 否 | 流程定义KEY |
appSn | String | 否 | 所属系统 |
businessKey | String | 否 | 业务单据的id |
businessStatus | String | 否 | 业务状态 |
startTime | String | 否 | 流程开始时间 |
endTime | String | 否 | 流程结束时间 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | ProcessInstanceVo |
ProcessInstanceVo对象
参数 | 类型 | 说明 |
---|
currentNodeNames | String | 当前节点名称 |
formName | String | 标题 |
startedUserId | String | 发起人编号 |
createTime | Date | 创建时间 |
appSn | String | 所属系统 |
processStatus | String | 审批状态 |
processStatusName | String | 审批状态中文描述 |
processInstanceId | String | 流程实例id |
示例
请求示例
http://域名/flow/prod/api/queryMyProcessInstance
请求入参
{
"entity":{
"formName": "测试流程"
},
"query": {
"pageSize": 15,
"pageNum": 1
}
}
返回示例
{
"code": "100",
"msg": "OK",
"data": {
"total": 1,
"rows": [
{
"processInstanceId": "1703418656680484864",
"processDefinitionId": "InclusiveGateway001:1:1703418548115120128",
"processDefinitionName": null,
"processDefinitionKey": "InclusiveGateway001",
"processDefinitionType": null,
"formType": null,
"processDefinitionVersion": null,
"categoryCode": null,
"deploymentId": null,
"businessKey": "test_businessKey1694961638020",
"assignees": null,
"appId": null,
"appSn": "",
"createTime": null,
"reason": null,
"startedUserId": "1",
"startedUserName": null,
"startedUserIds": null,
"startedUserDept": null,
"startedUserDeptName": null,
"startedUserCom": null,
"startedUserComName": null,
"finishFlag": false,
"processStatus": "applying",
"processStatusName": "审批中",
"formName": "包容网关测试",
"startPersonName": null,
"startTime": "2023-09-17 22:40:30",
"endTime": null,
"startTimeStr": null,
"endTimeStr": null,
"appName": null,
"currentNodeNames": [
"E",
"C",
"D"
],
"stayHour": "5 天 7 分",
"businessUrl": null,
"totalTime": null,
"currentAssignees": null,
"queryType": null,
"newVersion": null,
"proInstanceIdList": null,
"tableName": null,
"pstate": null
}
]
},
"success": true
}
发起流程
前端请求示例
:::tips
- URL:
/flow/prod/api/startProcessInstanceByKey
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusProcessInstanceOperateService flowablePlusProcessInstanceOperateService;
PlusStartProcessInstanceVo params = new PlusStartProcessInstanceVo();
ReturnVo<ProcessInstanceVo> processInstanceVoReturnVo = flowablePlusProcessInstanceOperateService.startProcessInstance(params);
String userCode = "";
if (null != processInstanceVoReturnVo && processInstanceVoReturnVo.getData().getProcessInstanceId() !=null) {
flowablePlusCommentService.addComment(null, processInstanceVoReturnVo.getData().getProcessInstanceId(), userCode, params.getMessage());
}
Body参数
PlusStartProcessInstanceVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
modelKey | String | 是 | modelKey |
businessKey | String | 是 | 业务表单唯一标识 |
appSn | String | 是 | 系统标识 |
companyCode | String | 是 | 公司Code |
formName | String | 是 | 表单显示名称 |
creator | String | 是 | 流程提交人工号 |
formData | String | 否 | 表单数据 |
messageName | String | 否 | 流程消息 用于消息启动流程 |
signalName | String | 否 | 信号名称 用于信号启动流程 |
variables | Map<String, Object> | 否 | 启动流程变量 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | ProcessInstanceVo |
ProcessInstanceVo对象
参数 | 类型 | 说明 |
---|
currentNodeNames | List<String> | 当前节点名称 |
formName | String | 标题 |
startedUserId | String | 发起人编号 |
createTime | Date | 创建时间 |
appSn | String | 所属系统 |
processStatus | String | 审批状态 |
processStatusName | String | 审批状态中文描述 |
processInstanceId | String | 流程实例id |
示例
请求示例
http://域名/flow/prod/api/startProcessInstanceByKey
请求入参
{
"modelKey": "InclusiveGateway001",
"currentUserCode": "1",
"businessKey": "test_businessKey1695394147316",
"creator": "1",
"appSn": "",
"message": "发起流程",
"formName": "1111",
"formData": "{\"modelKey\":\"InclusiveGateway001\",\"currentUserCode\":\"1\",\"businessKey\":\"test_businessKey1695394147316\",\"creator\":\"1\",\"appSn\":\"\",\"message\":\"发起流程\",\"formName\":\"1111\",\"title\":\"1111\"}",
"variables": {}
}
返回示例
{
"code": "100",
"msg": "发起成功",
"data": {
"processInstanceId": "1705232852372119552",
"processDefinitionId": "InclusiveGateway001:1:1703418548115120128",
"processDefinitionName": "包容网关测试",
"processDefinitionKey": "InclusiveGateway001",
"processDefinitionType": null,
"formType": null,
"processDefinitionVersion": 1,
"categoryCode": null,
"deploymentId": "1703418547146235904",
"businessKey": "test_businessKey1695394147316",
"assignees": null,
"appId": null,
"appSn": null,
"createTime": null,
"reason": null,
"startedUserId": null,
"startedUserName": null,
"startedUserIds": null,
"startedUserDept": null,
"startedUserDeptName": null,
"startedUserCom": null,
"startedUserComName": null,
"finishFlag": false,
"processStatus": null,
"processStatusName": null,
"formName": null,
"startPersonName": null,
"startTime": "2023-09-22 22:49:28",
"endTime": null,
"startTimeStr": null,
"endTimeStr": null,
"appName": null,
"currentNodeNames": null,
"stayHour": null,
"businessUrl": null,
"totalTime": null,
"currentAssignees": null,
"queryType": null,
"newVersion": null,
"proInstanceIdList": null,
"tableName": null,
"pstate": null
},
"success": true
}
模拟流程
前端请求示例
:::tips
- URL:
/flow/prod/api/imitateProcess
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusProcessInstanceQueryService flowablePlusProcessInstanceQueryService;
PlusStartProcessInstanceVo params = new PlusStartProcessInstanceVo();
ReturnVo<```String>> returnVo = flowablePlusProcessInstanceQueryService.imitateProcess(params)
Body参数
PlusStartProcessInstanceVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
modelKey | String | 是 | 模型定义key |
businessKey | String | 是 | 业务表单唯一标识 |
currentUserCode | String | 否 | 申请人工号 |
companyCode | String | 是 | 公司Code |
formName | String | 否 | 表单显示名称 |
appSn | String | 是 | 系统标识 |
creator | String | 是 | 流程提交人工号 |
formData | String | 否 | 表单数据 |
variables | Map<String, Object> | 否 | 启动流程变量 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | T | List<String> |
示例
请求示例
http://域名/flow/prod/api/imitateProcess
请求入参
{
"modelKey": "Hccc",
"currentUserCode": "1",
"businessKey": "test_businessKey1695532497886",
"creator": "1",
"appSn": "",
"message": "发起流程",
"formName": "11",
"formData": "{\"modelKey\":\"Hccc\",\"currentUserCode\":\"1\",\"businessKey\":\"test_businessKey1695532497886\",\"creator\":\"1\",\"appSn\":\"\",\"message\":\"发起流程\",\"formName\":\"11\",\"title\":\"11\"}",
"variables": {}
}
返回示例
{
"code": "100",
"msg": "查询成功",
"data": [
"a0d29b46f8c22419998fa8d2c3b118559",
"Flow_05yfrim",
"Flow_1h43p2l"
],
"success": true
}
审批流程
前端请求示例
:::tips
- URL:
/flow/prod/api/completeTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusCompleteTaskVo params = new PlusCompleteTaskVo();
ReturnVo<String> processInstanceVoReturnVo = flowablePlusTaskOperateService.completeTask(params);
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusCompleteTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
formTitle | String | 否 | 流程标题 |
userCode | String | 否 | 用户编码 |
nextSequenceFlow | NextSequenceUserVo | 否 | 下一个或多个审批人 |
nextUsers | List<NextSequenceUserVo> | 否 | 流程提交人工号 |
variables | Map<String, Object> | 否 | 任务参数 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/completeTask
请求入参
{
"taskId": "1700436425895739392",
"processInstanceId": "1700436387891150848",
"message": "同意"
}
返回示例
{
"code": "100",
"msg": "审批成功!",
"data": null,
"success": true
}
转阅流程
前端请求示例
:::tips
- URL:
/flow/prod/api/transferTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusTransferVo params = new PlusTransferVo();
String userCode = "";
params.setUserCode(userCode);
ReturnVo<String> processInstanceVoReturnVo = flowablePlusTaskOperateService.transferTask(params);
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusTransferVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
transferUserNo | String | 是 | 转阅人工号 |
transferToUserNos | List<String> | 是 | 被转阅人工号,支持多个多个 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/transferTask
请求入参
{
"taskId": "1700436425895739392",
"processInstanceId": "1700436387891150848",
"message": "帮忙审批下",
"transferToUserNos": [
"10000"
]
}
返回示例
{
"code": "100",
"msg": "转阅成功!",
"data": null,
"success": true
}
复活流程
前端请求示例
:::tips
- URL:
/flow/prod/api/restartProcessInstance/{processInstanceId}
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusProcessInstanceOperateService flowablePlusProcessInstanceOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
String processInstanceId = "";
ProcessInstance processInstance = flowablePlusProcessInstanceOperateService.restartProcessInstance(processInstanceId);
String userCode = "";
if (null != processInstance) {
flowablePlusCommentService.addComment(null, processInstance.getProcessInstanceId(), userCode, "复活流程");
}
Body参数
:::info 无 :::
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/restartProcessInstance
请求入参
{
"taskId": "1700436425895739392",
"processInstanceId": "1700436387891150848",
"message": "复活"
}
返回示例
{
"code": "100",
"msg": "复活成功",
"data": null,
"success": true
}
撤回流程
前端调动示例
:::tips
- URL:
/flow/prod/api/revokeProcess
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusProcessInstanceOperateService flowablePlusProcessInstanceOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusRevokeVo params = new PlusRevokeVo();
ReturnVo<String> returnVo = flowablePlusProcessInstanceOperateService.revokeProcess(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusRevokeVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/revokeProcess
请求入参
{
"taskId": "828080818ab2f019018ab2f0d54f0006",
"processInstanceId": "1704496297922969600",
"message": "撤回"
}
返回示例
{
"code": "100",
"msg": "驳回成功!",
"data": null,
"success": true
}
终止流程
前端调动示例
:::tips
- URL:
/flow/prod/api/stopProcess
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusProcessInstanceOperateService flowablePlusProcessInstanceOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusEndVo params = new PlusEndVo();
ReturnVo<String> returnVo = flowablePlusProcessInstanceOperateService.stopProcess(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusEndVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/stopProcess
请求入参
{
"taskId": "1704496368643129344",
"processInstanceId": "1704496297922969600",
"message": "终止"
}
返回示例
{
"code": "100",
"msg": "终止成功!",
"data": null,
"success": true
}
暂存流程
请求
:::tips
- URL:
/flow/prod/api/holdTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusHoldTaskVo params = new PlusHoldTaskVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.holdTask(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusHoldTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/holdTask
请求入参
{
"taskId": "1700436942638186496",
"processInstanceId": "1700436893011181568",
"message": "暂存一下"
}
返回示例
{
"code": "100",
"msg": "暂存成功!",
"data": null,
"success": true
}
前加签流程
前端请求示例
:::tips
- URL:
/flow/prod/api/beforeAddSign
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusSignVo params = new PlusSignVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.beforeAddSign(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusSignVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
signPersonals | List<String> | 是 | 被加签人 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/beforeAddSign
请求入参
{
"taskId": "1705917583157096448",
"processInstanceId": "1705917510390116352",
"message": "前加签",
"signPersonals": [
"10001"
]
}
返回示例
{
"code": "100",
"msg": "加签成功!",
"data": null,
"success": true
}
后加签流程
前端请求示例
:::tips
- URL:
/flow/prod/api/afterAddSign
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusSignVo params = new PlusSignVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.afterAddSign(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusSignVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
signPersonals | List<String> | 是 | 被加签人 |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/afterAddSign
请求入参
{
"taskId": "1705917583157096448",
"processInstanceId": "1705917510390116352",
"message": "后加签同意",
"signPersonals": [
"10000"
]
}
返回示例
{
"code": "100",
"msg": "后加签成功!",
"data": null,
"success": true
}
委派流程
前端请求示例
:::tips
- URL:
/flow/prod/api/delegateTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusDelegateTaskVo params = new PlusDelegateTaskVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.delegateTask(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusDelegateTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
delegateUserCode | String | 是 | 委派人 |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/delegateTask
请求入参
{
"taskId": "828080818ac71b30018ac71e96dd0002",
"processInstanceId": "1705917510390116352",
"message": "委派给张三",
"delegateUserCode": "18888"
}
返回示例
{
"code": "100",
"msg": "委派成功!",
"data": null,
"success": true
}
签收流程
前端请求示例
:::tips
- URL:
/flow/prod/api/claimTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusClaimTaskVo params = new PlusClaimTaskVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.claimTask(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusClaimTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/claimTask
请求入参
{
"taskId": "1705917583157096448",
"processInstanceId": "1705917510390116352",
"message": "我签收了"
}
返回示例
{
"code": "100",
"msg": "签收成功!",
"data": null,
"success": true
}
反签收流程
前端请求示例
:::tips
- URL:
/flow/prod/api/unClaimTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusClaimTaskVo params = new PlusClaimTaskVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.unClaimTask(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusClaimTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/unClaimTask
请求入参
{
"taskId": "1704496368643129344",
"processInstanceId": "1704496297922969600",
"message": "反签收"
}
返回示例
{
"code": "100",
"msg": "反签收成功!",
"data": null,
"success": true
}
驳回流程
前端请求示例
:::tips
- URL:
/flow/prod/api/backToStep
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusBackVo params = new PlusBackVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.backToStep(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusBackVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
distFlowElementId | String | 是 | 要驳回的节点id列表 |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/backToStep
请求入参
{
"taskId": "1700447795533979648",
"processInstanceId": "1700447648834002944",
"message": "驳回",
"distFlowElementId": "a3eb0c9f7111f419c94359481ef41174f"
}
返回示例
{
"code": "100",
"msg": "驳回成功!",
"data": null,
"success": true
}
转办流程
前端请求示例
:::tips
- URL:
/flow/prod/api/turnTask
- Method:
POST
- 需要登录:是
:::
java调用示例
@Autowired
private FlowablePlusTaskOperateService flowablePlusTaskOperateService;
@Autowired
private flowablePlusCommentService flowablePlusCommentService;
PlusTurnTaskVo params = new PlusTurnTaskVo();
ReturnVo<String> returnVo = flowablePlusTaskOperateService.turnTask(params)
String userCode = "";
flowablePlusCommentService.addComment(params.getTaskId(), params.getProcessInstanceId(), userCode, params.getMessage());
Body参数
PlusTurnTaskVo对象
参数 | 类型 | 是否必填 | 说明 |
---|
taskId | String | 是 | 任务id |
message | String | 是 | 审批意见 |
processInstanceId | String | 是 | 流程实例的id |
commentTypeEnum | CommentTypeEnum | 否 | 审批意见类型 |
turnUserId | String | 是 | 转办人工号 |
turnToUserId | String | 是 | 被转办人工号 |
activityId | String | 否 | 节点id |
activityName | String | 否 | 节点名称 |
返回参数
名称 | 类型 | 描述 |
---|
success | boolean | 成功状态:true/false |
code | String | 状态码:100/101 |
msg | String | 提示信息 |
data | String | 无 |
示例
请求示例
http://域名/flow/prod/api/turnTask
请求入参
{
"taskId": "1704496368643129344",
"processInstanceId": "1704496297922969600",
"message": "转办"
}
返回示例
{
"code": "100",
"msg": "转办成功!",
"data": null,
"success": true
}