diff --git a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java index 8ef33fe5f..d0611154f 100644 --- a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java +++ b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java @@ -10,7 +10,9 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt * @author Lion Li */ -@SpringBootApplication +@SpringBootApplication(exclude = { + org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class, + org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class}) public class DromaraApplication { public static void main(String[] args) { diff --git a/ruoyi-admin/src/main/resources/static/stencilset.json b/ruoyi-admin/src/main/resources/static/stencilset.json new file mode 100644 index 000000000..e58c64b35 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/stencilset.json @@ -0,0 +1,1998 @@ +{ + "title" : "流程编辑", + "namespace" : "http://b3mn.org/stencilset/bpmn2.0#", + "description" : "BPMN 流程编辑", + "propertyPackages" : [ { + "name" : "process_idpackage", + "properties" : [ { + "id" : "process_id", + "type" : "String", + "title" : "\u6d41\u7a0b\u6807\u8bc6", + "value" : "process", + "description" : "\u5b9a\u4e49\u6d41\u7a0b\u7684\u552f\u4e00\u6807\u8bc6\u7b26.", + "popular" : true + } ] + }, { + "name" : "overrideidpackage", + "properties" : [ { + "id" : "overrideid", + "type" : "String", + "title" : "\u7f16\u53f7", + "value" : "", + "description" : "\u5143\u7d20\u7684\u552f\u4e00\u6807\u8bc6\u7b26.", + "popular" : true + } ] + }, { + "name" : "namepackage", + "properties" : [ { + "id" : "name", + "type" : "String", + "title" : "\u540d\u79f0", + "value" : "", + "description" : "BPMN\u5143\u7d20\u7684\u63cf\u8ff0\u6027\u540d\u79f0.", + "popular" : true, + "refToView" : "text_name" + } ] + }, { + "name" : "documentationpackage", + "properties" : [ { + "id" : "documentation", + "type" : "Text", + "title" : "\u8bf4\u660e", + "value" : "", + "description" : "BPMN\u5143\u7d20\u7684\u63cf\u8ff0\u6027\u540d\u79f0.", + "popular" : true + } ] + }, { + "name" : "process_authorpackage", + "properties" : [ { + "id" : "process_author", + "type" : "String", + "title" : "\u6d41\u7a0b\u4f5c\u8005", + "value" : "", + "description" : "\u5b9a\u4e49\u6d41\u7a0b\u7684\u4f5c\u8005.", + "popular" : true + } ] + }, { + "name" : "process_versionpackage", + "properties" : [ { + "id" : "process_version", + "type" : "String", + "title" : "\u6d41\u7a0b\u7248\u672c\u5b57\u7b26\u4e32 (\u4ec5\u6587\u6863)", + "value" : "", + "description" : "\u4e3a\u4e86\u6587\u6863\u7684\u7528\u9014\u7684\u7248\u672c\u6807\u8bc6\u7b26.", + "popular" : true + } ] + }, { + "name" : "process_historylevelpackage", + "properties" : [ { + "id" : "process_historylevel", + "type" : "flowable-processhistorylevel", + "title" : "为流程定义设定特定级别", + "value" : "", + "description" : "为流程定义设定特定级别", + "popular" : true + } ] + }, { + "name" : "isexecutablepackage", + "properties" : [ { + "id" : "isexecutable", + "type" : "Boolean", + "title" : "可执行的", + "value" : "true", + "description" : "流程是否可执行", + "popular" : true + } ] + }, { + "name" : "process_potentialstarteruserpackage", + "properties" : [ { + "id" : "process_potentialstarteruser", + "type" : "String", + "title" : "默认启动用户", + "value" : "", + "description" : "启动该流程的用户", + "popular" : true + } ] + }, { + "name" : "process_potentialstartergrouppackage", + "properties" : [ { + "id" : "process_potentialstartergroup", + "type" : "String", + "title" : "默认启动器组", + "value" : "", + "description" : "启动流程的组?", + "popular" : true + } ] + }, { + "name" : "process_namespacepackage", + "properties" : [ { + "id" : "process_namespace", + "type" : "String", + "title" : "\u6307\u5411\u547d\u540d\u7a7a\u95f4", + "value" : "http://www.flowable.org/processdef", + "description" : "\u5b9a\u4e49\u6d41\u7a0b\u7684\u6307\u5411\u547d\u540d\u7a7a\u95f4.", + "popular" : true + } ] + }, { + "name" : "process_iseagerexecutionfetchpackage", + "properties" : [ { + "id" : "iseagerexecutionfetch", + "type" : "Boolean", + "title" : "优先执行", + "value" : "false", + "description" : "流程定义需要优先执行?", + "popular" : true + } ] + }, { + "name" : "asynchronousdefinitionpackage", + "properties" : [ { + "id" : "asynchronousdefinition", + "type" : "Boolean", + "title" : "\u5f02\u6b65", + "value" : "false", + "description" : "\u6d3b\u52a8\u5b9a\u4e49\u4e3a\u5f02\u6b65.", + "popular" : true + } ] + }, { + "name" : "datapropertiespackage", + "properties" : [ { + "id" : "dataproperties", + "type" : "Complex", + "title" : "数据对象", + "value" : "", + "description" : "定义数据对象的属性", + "popular" : true + } ] + }, { + "name" : "exclusivedefinitionpackage", + "properties" : [ { + "id" : "exclusivedefinition", + "type" : "Boolean", + "title" : "\u72ec\u5bb6", + "value" : "false", + "description" : "\u5b9a\u4e49\u6d3b\u52a8\u4e3a\u72ec\u5bb6.", + "popular" : true + } ] + }, { + "name" : "executionlistenerspackage", + "properties" : [ { + "id" : "executionlisteners", + "type" : "multiplecomplex", + "title" : "\u6267\u884c\u76d1\u542c\u5668", + "value" : "", + "description" : "\u6d3b\u52a8\uff0c\u8fc7\u7a0b\uff0c\u987a\u5e8f\u6d41\uff0c\u5f00\u59cb\u548c\u7ed3\u675f\u4e8b\u4ef6\u7684\u76d1\u542c\u5668.", + "popular" : true + } ] + }, { + "name" : "tasklistenerspackage", + "properties" : [ { + "id" : "tasklisteners", + "type" : "multiplecomplex", + "title" : "\u4efb\u52a1\u76d1\u542c", + "value" : "", + "description" : "\u76d1\u542c\u7528\u6237\u4efb\u52a1", + "popular" : true + } ] + }, { + "name" : "eventlistenerspackage", + "properties" : [ { + "id" : "eventlisteners", + "type" : "multiplecomplex", + "title" : "\u4e8b\u4ef6\u76d1\u542c", + "value" : "", + "description" : "\u76d1\u542c\u6d41\u7a0b\u5f15\u64ce\u7684\u4efb\u4f55\u4e8b\u4ef6. \u4e5f\u53ef\u80fd\u629b\u51fa\u6d88\u606f\u4e8b\u4ef6\u6216\u8005\u9519\u8bef\u4e8b\u4ef6", + "popular" : true + } ] + }, { + "name" : "usertaskassignmentpackage", + "properties" : [ { + "id" : "usertaskassignment", + "type" : "Complex", + "title" : "\u5206\u914d", + "value" : "", + "description" : "\u5206\u914d\u5b9a\u4e49\u7528\u6237\u4efb\u52a1", + "popular" : true + } ] + },{ + "name" : "formpropertiespackage", + "properties" : [ { + "id" : "formproperties", + "type" : "Complex", + "title" : "\u8868\u5355\u5c5e\u6027", + "value" : "", + "description" : "\u7528\u5217\u8868\u7684\u5f62\u5f0f\u5b9a\u4e49\u8868\u5355\u5c5e\u6027", + "popular" : true + } ] + }, { + "name" : "formkeydefinitionpackage", + "properties" : [ { + "id" : "formkeydefinition", + "type" : "String", + "title" : "\u8868\u5355\u952e(key)", + "value" : "", + "description" : "\u4e00\u4e2a\u8868\u5355\u7684\u552f\u4e00\u952e.", + "popular" : true + } ] + }, { + "name" : "duedatedefinitionpackage", + "properties" : [ { + "id" : "duedatedefinition", + "type" : "String", + "title" : "\u5230\u671f\u65f6\u95f4", + "value" : "", + "description" : "\u7528\u6237\u4efb\u52a1\u5230\u671f\u65f6\u95f4.", + "popular" : true + } ] + }, { + "name" : "prioritydefinitionpackage", + "properties" : [ { + "id" : "prioritydefinition", + "type" : "String", + "title" : "\u4f18\u5148\u7ea7", + "value" : "", + "description" : "\u7528\u6237\u4efb\u52a1\u7684\u4f18\u5148\u7ea7.", + "popular" : true + } ] + }, { + "name" : "duedatedefinitionpackage", + "properties" : [ { + "id" : "duedatedefinition", + "type" : "String", + "title" : "\u5230\u671f\u65f6\u95f4", + "value" : "", + "description" : "\u7528\u6237\u4efb\u52a1\u5230\u671f\u65f6\u95f4.", + "popular" : true + } ] + }, { + "name" : "servicetaskclasspackage", + "properties" : [ { + "id" : "servicetaskclass", + "type" : "String", + "title" : "\u7c7b", + "value" : "", + "description" : "\u5b9e\u73b0\u670d\u52a1\u4efb\u52a1\u903b\u8f91\u7684\u7c7b.", + "popular" : true + } ] + }, { + "name" : "servicetaskexpressionpackage", + "properties" : [ { + "id" : "servicetaskexpression", + "type" : "Text", + "title" : "\u8868\u8fbe\u5f0f", + "value" : "", + "description" : "\u670d\u52a1\u4efb\u52a1\u5b9a\u4e49\u7684\u903b\u8f91\u4e0e\u8868\u8fbe\u5f0f.", + "popular" : true + } ] + }, { + "name" : "servicetaskdelegateexpressionpackage", + "properties" : [ { + "id" : "servicetaskdelegateexpression", + "type" : "Text", + "title" : "\u59d4\u6258\u8868\u8fbe\u5f0f", + "value" : "", + "description" : "\u670d\u52a1\u4efb\u52a1\u5b9a\u4e49\u7684\u903b\u8f91\u4e0e\u59d4\u6258\u8868\u8fbe\u5f0f.", + "popular" : true + } ] + }, { + "name" : "servicetaskfieldspackage", + "properties" : [ { + "id" : "servicetaskfields", + "type" : "Complex", + "title" : "\u7c7b\u5b57\u6bb5", + "value" : "", + "description" : "\u6269\u5c55\u5b57\u6bb5", + "popular" : true + } ] + }, { + "name" : "servicetaskresultvariablepackage", + "properties" : [ { + "id" : "servicetaskresultvariable", + "type" : "String", + "title" : "\u7ed3\u679c\u53d8\u91cf\u540d\u79f0", + "value" : "", + "description" : "\u7528\u6765\u5b58\u50a8\u670d\u52a1\u4efb\u52a1\u7ed3\u679c\u7684\u53d8\u91cf\u540d.", + "popular" : true + } ] + }, { + "name" : "servicetaskresultvariablepackage", + "properties" : [ { + "id" : "servicetaskUseLocalScopeForResultVariable", + "type" : "Boolean", + "title" : "\u7ed3\u679c\u53d8\u91cf\u540d\u79f0", + "value" : "false", + "description" : "\u7528\u6765\u5b58\u50a8\u670d\u52a1\u4efb\u52a1\u7ed3\u679c\u7684\u53d8\u91cf\u540d.", + "popular" : true + } ] + }, { + "name" : "servicetasktriggerablepackage", + "properties" : [ { + "id" : "servicetasktriggerable", + "type" : "Boolean", + "title" : "将服务任务设置为可触发的", + "value" : "false", + "description" : "将服务任务设置为可触发的", + "popular" : true + } ] + }, { + "name": "scriptformatpackage", + "properties" : [ { + "id": "scriptformat", + "type": "String", + "title": "\u811a\u672c\u683c\u5f0f", + "value": "", + "description": "\u811a\u672c\u4efb\u52a1\u7684\u811a\u672c\u683c\u5f0f.", + "popular": true + } ] + }, { + "name": "scripttextpackage", + "properties" : [ { + "id": "scripttext", + "type": "Text", + "title": "\u811a\u672c", + "value": "", + "description": "\u811a\u672c\u4efb\u52a1\u7684\u811a\u672c\u5185\u5bb9.", + "popular": true + } + ] + }, { + "name" : "shellcommandpackage", + "properties" : [ { + "id" : "shellcommand", + "type" : "String", + "title" : "命令", + "value" : "", + "description" : "脚本任务命令", + "popular" : true + } ] + }, { + "name" : "shellarg1package", + "properties" : [ { + "id" : "shellarg1", + "type" : "Text", + "title" : "参数 1", + "value" : "", + "description" : "脚本命令的参数 1", + "popular" : true + } ] + }, { + "name" : "shellarg2package", + "properties" : [ { + "id" : "shellarg2", + "type" : "Text", + "title" : "参数 2", + "value" : "", + "description" : "脚本命令参数 2", + "popular" : true + } ] + }, { + "name" : "shellarg3package", + "properties" : [ { + "id" : "shellarg3", + "type" : "Text", + "title" : "参数 3", + "value" : "", + "description" : "脚本命令参数 3", + "popular" : true + } ] + }, { + "name" : "shellarg4package", + "properties" : [ { + "id" : "shellarg4", + "type" : "Text", + "title" : "参数 4", + "value" : "", + "description" : "脚本命令参数 4", + "popular" : true + } ] + }, { + "name" : "shellarg5package", + "properties" : [ { + "id" : "shellarg5", + "type" : "Text", + "title" : "参数 5", + "value" : "", + "description" : "脚本命令参数 5", + "popular" : true + } ] + }, { + "name" : "shellwaitpackage", + "properties" : [ { + "id" : "shellwait", + "type" : "Text", + "title" : "等待", + "value" : "", + "description" : "等待shell命令执行结束的标志", + "popular" : true + } ] + }, { + "name" : "shelloutputvariablepackage", + "properties" : [ { + "id" : "shelloutputvariable", + "type" : "Text", + "title" : "输出参数", + "value" : "", + "description" : "变量存储shell共用输出", + "popular" : true + } ] + }, { + "name" : "shellerrorcodevariablepackage", + "properties" : [ { + "id" : "shellerrorcodevariable", + "type" : "错误代码变量", + "value" : "", + "description" : "变量存储shell 命令错误代码", + "popular" : true + } ] + }, { + "name" : "shellredirecterrorpackage", + "properties" : [ { + "id" : "shellredirecterror", + "type" : "Text", + "title" : "重定向错误", + "value" : "", + "description" : "如果true合并错误输出与标准输出", + "popular" : true + } ] + }, { + "name" : "shellcleanenvpackage", + "properties" : [ { + "id" : "shellcleanenv", + "type" : "Text", + "title" : "清除环境", + "value" : "", + "description" : "清除shell执行环境", + "popular" : true + } ] + }, { + "name" : "shelldirectorypackage", + "properties" : [ { + "id" : "shelldirectory", + "type" : "Text", + "title" : "目录", + "value" : "", + "description" : "shell运行目录", + "popular" : true + } ] + }, { + "name" : "ruletask_rulespackage", + "properties" : [ { + "id" : "ruletask_rules", + "type" : "String", + "title" : "\u89c4\u5219", + "value" : "", + "description" : "\u89c4\u5219\u4efb\u52a1\u7684\u89c4\u5219.", + "popular" : true + } ] + }, { + "name" : "ruletask_variables_inputpackage", + "properties" : [ { + "id" : "ruletask_variables_input", + "type" : "String", + "title" : "\u8f93\u5165\u53d8\u91cf", + "value" : "", + "description" : "\u89c4\u5219\u4efb\u52a1\u7684\u8f93\u5165\u53d8\u91cf.", + "popular" : true + } ] + }, { + "name" : "ruletask_excludepackage", + "properties" : [ { + "id" : "ruletask_exclude", + "type" : "Boolean", + "title" : "\u6392\u9664", + "value" : "false", + "description" : "\u4f5c\u4e3a\u6392\u9664\u4f7f\u7528\u89c4\u5219\u5c5e\u6027.", + "popular" : true + } ] + }, { + "name" : "ruletask_resultpackage", + "properties" : [ { + "id" : "ruletask_result", + "type" : "String", + "title" : "\u8f93\u51fa\u53d8\u91cf", + "value" : "", + "description" : "\u89c4\u5219\u4efb\u52a1\u7684\u8f93\u51fa\u53d8\u91cf.", + "popular" : true + } ] + }, { + "name" : "mailtasktopackage", + "properties" : [ { + "id" : "mailtaskto", + "type" : "Text", + "title" : "\u63a5\u6536\u4eba", + "value" : "", + "description" : "\u5982\u679c\u662f\u591a\u4e2a\u6536\u4ef6\u4eba\uff0c\u8bf7\u4ee5\u9017\u53f7\u5206\u9694.", + "popular" : true + } ] + }, { + "name" : "mailtaskfrompackage", + "properties" : [ { + "id" : "mailtaskfrom", + "type" : "Text", + "title" : "\u53d1\u9001\u4eba", + "value" : "", + "description" : "\u53d1\u4ef6\u4eba\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002\u5982\u679c\u672a\u63d0\u4f9b\uff0c\u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e\u7684\u53d1\u4ef6\u4eba\u5730\u5740.", + "popular" : true + } ] + }, { + "name" : "\u4e3b\u9898", + "properties" : [ { + "id" : "mailtasksubject", + "type" : "Text", + "title" : "Subject", + "value" : "", + "description" : "\u90ae\u4ef6\u4e3b\u9898.", + "popular" : true + } ] + }, { + "name" : "mailtaskccpackage", + "properties" : [ { + "id" : "mailtaskcc", + "type" : "Text", + "title" : "\u6284\u9001", + "value" : "", + "description" : "\u6284\u9001\u6536\u4ef6\u4eba\u5730\u5740. \u5982\u679c\u662f\u591a\u4e2a\u6536\u4ef6\u4eba\uff0c\u8bf7\u4ee5\u9017\u53f7\u5206\u9694", + "popular" : true + } ] + }, { + "name" : "mailtaskbccpackage", + "properties" : [ { + "id" : "mailtaskbcc", + "type" : "Text", + "title" : "\u5bc6\u4ef6\u6284\u9001", + "value" : "", + "description" : "u5bc6\u4ef6\u6284\u9001\u6536\u4ef6\u4eba\u5730\u5740. \u5982\u679c\u662f\u591a\u4e2a\u6536\u4ef6\u4eba\uff0c\u8bf7\u4ee5\u9017\u53f7\u5206\u9694", + "popular" : true + } ] + }, { + "name" : "mailtasktextpackage", + "properties" : [ { + "id" : "mailtasktext", + "type" : "Text", + "title" : "\u5185\u5bb9", + "value" : "", + "description" : "\u90ae\u4ef6\u5185\u5bb9\uff0c\u53ea\u80fd\u53d1\u9001\u7eaf\u6587\u672c\u3002\u5982\u679c\u9700\u8981\u53d1\u9001\u590d\u6742\u5185\u5bb9\uff0c\u53ef\u4ee5\u7ed3\u5408\u4f7f\u7528HTML\uff0c\u5ba2\u6237\u7aef\u4e0d\u652f\u6301\u590d\u6742\u5185\u5bb9\uff0c\u90ae\u4ef6\u5c06\u88ab\u9000\u56de.", + "popular" : true + } ] + }, { + "name" : "mailtaskhtmlpackage", + "properties" : [ { + "id" : "mailtaskhtml", + "type" : "Text", + "title" : "Html", + "value" : "", + "description" : "A piece of HTML that is the content of the e-mail.", + "popular" : true + } ] + }, { + "name" : "mailtaskcharsetpackage", + "properties" : [ { + "id" : "mailtaskcharset", + "type" : "String", + "title" : "Html", + "value" : "", + "description" : "\u4e00\u6bb5HTML\u7684\u90ae\u4ef6\u7684\u5185\u5bb9.", + "popular" : true + } ] + }, { + "name" : "httptaskrequestmethodpackage", + "properties" : [ { + "id" : "httptaskrequestmethod", + "type" : "flowable-http-request-method", + "title" : "请求方式", + "value" : "", + "description" : "请求方式 (例如 - GET,POST,PUT etc).", + "popular" : true + } ] + }, { + "name" : "httptaskrequesturlpackage", + "properties" : [ { + "id" : "httptaskrequesturl", + "type" : "Text", + "title" : "请求地址", + "value" : "", + "description" : "请求地址 (例如 - http://flowable.org).", + "popular" : true + } ] + }, { + "name" : "httptaskrequestheaderspackage", + "properties" : [ { + "id" : "httptaskrequestheaders", + "type" : "Text", + "title" : "请求头", + "value" : "", + "description" : "HTTP请求头的分开行 (例如 - Content-Type: application/json).", + "popular" : true + } ] + }, { + "name" : "httptaskrequestbodypackage", + "properties" : [ { + "id" : "httptaskrequestbody", + "type" : "Text", + "title" : "请求体", + "value" : "", + "description" : "请求体 (例如- ${sampleBody}).", + "popular" : true + } ] + }, { + "name" : "httptaskrequesttimeoutpackage", + "properties" : [ { + "id" : "httptaskrequesttimeout", + "type" : "String", + "title" : "请求超时", + "value" : "", + "description" : "请求超时以毫秒为单位 (For example - 5000).", + "popular" : true + } ] + }, { + "name" : "httptaskdisallowredirectspackage", + "properties" : [ { + "id" : "httptaskdisallowredirects", + "type" : "String", + "title" : "不允许重定向", + "value" : "", + "description" : "禁止HTTP重定向的标志。", + "popular" : true + } ] + }, { + "name" : "httptaskfailstatuscodespackage", + "properties" : [ { + "id" : "httptaskfailstatuscodes", + "type" : "String", + "title" : "失败状态码", + "value" : "", + "description" : "用逗号分隔的HTTP响应状态代码列表,例如 400,5XX.", + "popular" : true + } ] + }, { + "name" : "httptaskhandlestatuscodespackage", + "properties" : [ { + "id" : "httptaskhandlestatuscodes", + "type" : "String", + "title" : "处理状态码", + "value" : "", + "description" : "忽略HTTP响应状态代码列表的逗号, 例如 404,3XX.", + "popular" : true + } ] + }, { + "name" : "httptaskignoreexceptionpackage", + "properties" : [ { + "id" : "httptaskignoreexception", + "type" : "String", + "title" : "忽略异常", + "value" : "", + "description" : "忽略异常的标志", + "popular" : true + } ] + }, + { + "name" : "httptasksaveresponseparameterstransientpackage", + "properties" : [ { + "id" : "httptasksaveresponseparameterstransient", + "type" : "String", + "title" : "将响应保存为瞬态变量", + "value" : "", + "description" : "指示存储响应变量的标志", + "popular" : true + } ] + }, + { + "name" : "httptasksaveresponseasjsonpackage", + "properties" : [ { + "id" : "httptasksaveresponseasjson", + "type" : "String", + "title" : "保存响应为JSON", + "value" : "", + "description" : "指示将响应变量存储为JSON变量而不是字符串的标志", + "popular" : true + } ] + }, + { + "name": "skipexpressionpackage", + "properties": [ + { + "id": "skipexpression", + "type": "String", + "title": "自动跳过", + "value": "", + "description": "设置自动跳过的条件.", + "popular": true + } + ] + }, { + "name": "nodetypepackage", + "properties": [ + { + "id": "nodetype", + "type": "dragon-nodetype-combobox", + "title": "节点类型", + "value": "", + "description": "节点类型", + "popular": true, + "items": [ + { + "key": "审批中", + "value": "applying" + }, + { + "key": "不审", + "value": "noapprove" + }, + { + "key": "协同", + "value": "coordination" + }, + { + "key": "评审", + "value": "review" + }, + { + "key": "必审", + "value": "bs" + }, + { + "key": "普通", + "value": "" + } + ] + } + ] + },{ + "name": "editdatapackage", + "properties": [ + { + "id": "iseditdata", + "type": "dragon-nodeeditdata-combobox", + "title": "是否可编辑", + "value": "", + "description": "数据在此节点是否可以编辑", + "popular": true, + "items":[ + { + "key": "是", + "value": "true" + }, + { + "key": "否", + "value": "" + } + ] + } + ] + },{ + "name": "sequenceflowtextxpackage", + "properties": [ + { + "id": "sequence_flow_text_x", + "type": "String", + "title": "线上文字位置", + "value": "", + "description": "线上文字位置", + "popular": true + } + ] + },{ + "name" : "httptaskresponsevariablenamepackage", + "properties" : [ { + "id" : "httptaskresponsevariablename", + "type" : "String", + "title" : "响应变量名", + "value" : "", + "description" : "定义变量名来存储HTTP响应.", + "popular" : true + } ] + }, { + "name" : "httptasksaverequestvariablespackage", + "properties" : [ { + "id" : "httptasksaverequestvariables", + "type" : "String", + "title" : "保存请求变量", + "value" : "", + "description" : "保存请求变量的标志.", + "popular" : true + } ] + }, { + "name" : "httptasksaveresponseparameterspackage", + "properties" : [ { + "id" : "httptasksaveresponseparameters", + "type" : "String", + "title" : "保存响应状态,标题", + "value" : "", + "description" : "保存响应状态、标题等的标志.", + "popular" : true + } ] + }, { + "name" : "httptaskresultvariableprefixpackage", + "properties" : [ { + "id" : "httptaskresultvariableprefix", + "type" : "String", + "title" : "结果变量前缀", + "value" : "", + "description" : "执行变量名称的前缀.", + "popular" : true + } ] + }, { + "name" : "callactivitycalledelementpackage", + "properties" : [ { + "id" : "callactivitycalledelement", + "type" : "String", + "title" : "\u8c03\u7528\u5143\u7d20", + "value" : "", + "description" : "\u6d41\u7a0b\u5f15\u7528.", + "popular" : true + } ] + }, { + "name" : "callactivityinparameterspackage", + "properties" : [ { + "id" : "callactivityinparameters", + "type" : "Complex", + "title" : "\u8f93\u5165\u53c2\u6570", + "value" : "", + "description" : "\u5b9a\u5165\u8f93\u51fa\u53c2\u6570", + "popular" : true + } ] + }, { + "name" : "callactivityoutparameterspackage", + "properties" : [ { + "id" : "callactivityoutparameters", + "type" : "Complex", + "title" : "\u8f93\u51fa\u53c2\u6570", + "value" : "", + "description" : "\u5b9a\u4e49\u8f93\u51fa\u53c2\u6570", + "popular" : true + } ] + }, { + "name" : "callactivityinheritvariablespackage", + "properties" : [ { + "id" : "callactivityinheritvariables", + "type" : "Boolean", + "title" : "继承子过程中的变量", + "value" : "false", + "description" : "继承子过程中的父进程变量.", + "popular" : true + } ] + }, { + "name" : "callactivitysamedeploymentpackage", + "properties" : [ { + "id" : "callactivitysamedeployment", + "type" : "Boolean", + "title" : "从相同的部署启动引用的进程.", + "value" : "false", + "description" : "使用来自相同部署的引用进程.", + "popular" : true + } ] + }, { + "name" : "callactivityprocessinstancenamepackage", + "properties" : [ { + "id" : "callactivityprocessinstancename", + "type" : "String", + "title" : "进程实例名", + "value" : "", + "description" : "一个解析到子进程实例名称的表达式", + "popular" : true + } ] + }, { + "name" : "callactivityinheritbusinesskeypackage", + "properties" : [ { + "id" : "callactivityinheritbusinesskey", + "type" : "Boolean", + "title" : "继承业务密钥", + "value" : "false", + "description" : "从父进程继承业务密钥.", + "popular" : true + } ] + }, { + "name" : "callactivityuselocalscopeforoutparameterspackage", + "properties" : [ { + "id" : "callactivityuselocalscopeforoutparameters", + "type" : "Boolean", + "title" : "使用局部范围进行输出参数", + "value" : "false", + "description" : "使用局部变量作用域输出参数.", + "popular" : true + } ] + }, { + "name" : "callactivitybusinesskeypackage", + "properties" : [ { + "id" : "callactivitybusinesskey", + "type" : "String", + "title" : "业务密钥表达式", + "value" : "", + "description" : "解析为子进程实例的业务密钥的表达式", + "popular" : true + } ] + }, { + "name" : "cameltaskcamelcontextpackage", + "properties" : [ { + "id" : "cameltaskcamelcontext", + "type" : "String", + "title" : "Camel context", + "value" : "", + "description" : "An optional camel context definition, if left empty the default is used.", + "popular" : true + } ] + }, { + "name" : "muletaskendpointurlpackage", + "properties" : [ { + "id" : "muletaskendpointurl", + "type" : "String", + "title" : "端点URL", + "value" : "", + "description" : "需要的端点URL将消息发送给Mule.", + "popular" : true + } ] + }, { + "name" : "muletasklanguagepackage", + "properties" : [ { + "id" : "muletasklanguage", + "type" : "String", + "title" : "语言", + "value" : "", + "description" : "解决负载表达式的语言所需的定义,如Juel.", + "popular" : true + } ] + }, { + "name" : "muletaskpayloadexpressionpackage", + "properties" : [ { + "id" : "muletaskpayloadexpression", + "type" : "Text", + "title" : "有效载荷表达式", + "value" : "", + "description" : "必需定义效载荷的消息发送给Mule.", + "popular" : true + } ] + }, { + "name" : "muletaskresultvariablepackage", + "properties" : [ { + "id" : "muletaskresultvariable", + "type" : "String", + "title" : "结果变量", + "value" : "", + "description" : "返回的有效载荷的可选结果变量.", + "popular" : true + } ] + }, { + "name" : "conditionsequenceflowpackage", + "properties" : [ { + "id" : "conditionsequenceflow", + "type" : "Complex", + "title" : "\u6d41\u6761\u4ef6", + "value" : "", + "description" : "\u987a\u5e8f\u6d41\u7684\u6761\u4ef6", + "popular" : true + } ] + }, { + "name" : "defaultflowpackage", + "properties" : [ { + "id" : "defaultflow", + "type" : "Boolean", + "title" : "\u9ed8\u8ba4\u6d41", + "value" : "false", + "description" : "\u5b9a\u4e49\u4f5c\u4e3a\u9ed8\u8ba4\u987a\u5e8f\u6d41", + "popular" : true, + "refToView" : "default" + } ] + }, { + "name" : "conditionalflowpackage", + "properties" : [ { + "id" : "conditionalflow", + "type" : "Boolean", + "title" : "\u6761\u4ef6\u6d41", + "value" : "false", + "description" : "\u5b9a\u4e49\u987a\u5e8f\u6d41\u7684\u6761\u4ef6", + "popular" : true + } ] + }, { + "name" : "timercycledefinitionpackage", + "properties" : [ { + "id" : "timercycledefinition", + "type" : "String", + "title" : "\u65f6\u95f4\u5468\u671f\uff08\u4f8b\u5982R3/PT10H\uff09", + "value" : "", + "description" : "\u5b9a\u4e49ISO-8601\u5468\u671f\u5b9a\u65f6\u5668.", + "popular" : true + } ] + }, { + "name" : "timerdatedefinitionpackage", + "properties" : [ { + "id" : "timerdatedefinition", + "type" : "String", + "title" : "\u91c7\u7528ISO-8601\u65e5\u671f\u65f6\u95f4", + "value" : "", + "description" : "\u5b9a\u4e49ISO-8601\u65e5\u671f\u5b9a\u65f6\u5668.", + "popular" : true + } ] + }, { + "name" : "timerdurationdefinitionpackage", + "properties" : [ { + "id" : "timerdurationdefinition", + "type" : "String", + "title" : "\u6301\u7eed\u65f6\u95f4\uff08\u4f8b\u5982PT5M\uff09", + "value" : "", + "description" : "\u5b9a\u4e49ISO-8601\u65f6\u95f4\u5b9a\u65f6\u5668.", + "popular" : true + } ] + }, { + "name" : "timerenddatedefinitionpackage", + "properties" : [ { + "id" : "timerenddatedefinition", + "type" : "String", + "title" : "\u91c7\u7528ISO-8601\u7ed3\u675f\u65e5\u671f\u65f6\u95f4", + "value" : "", + "description" : "\u5b9a\u4e49\u5b9a\u65f6\u5668\u4e0eISO-8601\u6301\u7eed\u65f6\u95f4.", + "popular" : true + } ] + }, { + "name" : "messagerefpackage", + "properties" : [ { + "id" : "messageref", + "type" : "String", + "title" : "\u6d88\u606f\u5f15\u7528", + "value" : "", + "description" : "\u5b9a\u4e49\u6d88\u606f\u540d\u79f0.", + "popular" : true + } ] + }, { + "name" : "signalrefpackage", + "properties" : [ { + "id" : "signalref", + "type" : "String", + "title" : "\u4fe1\u53f7\u5f15\u7528", + "value" : "", + "description" : "\u5b9a\u4e49\u4fe1\u53f7\u540d\u79f0.", + "popular" : true + } ] + }, { + "name" : "errorrefpackage", + "properties" : [ { + "id" : "errorref", + "type" : "String", + "title" : "\u9519\u8bef\u5f15\u7528", + "value" : "", + "description" : "\u5b9a\u4e49\u9519\u8bef\u540d\u79f0.", + "popular" : true + } ] + }, { + "name" : "cancelactivitypackage", + "properties" : [ { + "id" : "cancelactivity", + "type" : "Boolean", + "title" : "\u53d6\u6d88 \u6d3b\u52a8(activity)", + "value" : "true", + "description" : "\u662f\u5426\u53d6\u6d88\u6d3b\u52a8", + "popular" : true, + "refToView" : [ "frame", "frame2" ] + } ] + }, { + "name" : "initiatorpackage", + "properties" : [ { + "id" : "initiator", + "type" : "String", + "title" : "\u53d1\u8d77\u8005", + "value" : "", + "description" : "\u6d41\u7a0b\u7684\u53d1\u8d77\u8005.", + "popular" : true + } ] + }, { + "name" : "textpackage", + "properties" : [ { + "id" : "text", + "type" : "String", + "title" : "\u5185\u5bb9", + "value" : "", + "description" : "\u6587\u672c\u7684\u6587\u5b57\u6ce8\u91ca.", + "popular" : true, + "refToView" : "text" + } ] + }, { + "name" : "multiinstance_typepackage", + "properties" : [ { + "id" : "multiinstance_type", + "type" : "flowable-multiinstance", + "title" : "\u591a\u5b9e\u4f8b\u7c7b\u578b", + "value" : "None", + "description" : "重复活动执行(并行或顺序)可以通过不同的循环类型来显示", + "popular" : true, + "refToView" : "multiinstance" + } ] + }, { + "name" : "multiinstance_cardinalitypackage", + "properties" : [ { + "id" : "multiinstance_cardinality", + "type" : "String", + "title" : "\u57fa\u6570\uff08\u591a\u5b9e\u4f8b\uff09", + "value" : "", + "description" : "\u5b9a\u4e49\u591a\u5b9e\u4f8b\u7684\u57fa\u6570.", + "popular" : true + } ] + }, { + "name" : "multiinstance_collectionpackage", + "properties" : [ { + "id" : "multiinstance_collection", + "type" : "String", + "title" : "\u91c7\u96c6\uff08\u591a\u5b9e\u4f8b\uff09", + "value" : "", + "description" : "\u5b9a\u4e49\u96c6\u5408\u7684\u591a\u5b9e\u4f8b.", + "popular" : true + } ] + }, { + "name" : "multiinstance_variablepackage", + "properties" : [ { + "id" : "multiinstance_variable", + "type" : "String", + "title" : "\u5143\u7d20\u53d8\u91cf\uff08\u591a\u5b9e\u4f8b\uff09", + "value" : "", + "description" : "\u591a\u5b9e\u4f8b\u53d8\u91cf\u5b9a\u4e49\u7684\u5143\u7d20.", + "popular" : true + } ] + }, { + "name" : "multiinstance_conditionpackage", + "properties" : [ { + "id" : "multiinstance_condition", + "type" : "String", + "title" : "\u5b8c\u6210\u6761\u4ef6\uff08\u591a\u5b9e\u4f8b\uff09", + "value" : "", + "description" : "\u5b9a\u4e49\u591a\u5b9e\u4f8b\u7684\u5b8c\u6210\u6761\u4ef6.", + "popular" : true + } ] + }, { + "name" : "isforcompensationpackage", + "properties" : [ { + "id" : "isforcompensation", + "type" : "Boolean", + "title" : "\u8865\u507f", + "value" : "false", + "description" : "\u4e00\u4e2a\u6807\u5fd7\u6807\u8bc6\u6b64\u6d3b\u52a8\u7684\u76ee\u7684\u662f\u5426\u4e3a\u7684\u8865\u507f\u7684\u76ee\u7684.", + "popular" : true, + "refToView" : "compensation" + } ] + }, { + "name" : "sequencefloworderpackage", + "properties" : [ { + "id" : "sequencefloworder", + "type" : "Complex", + "title" : "\u6d41\u987a\u5e8f", + "value" : "", + "description" : "\u6d41\u5f00\u59cb\u7684\u987a\u5e8f.", + "popular" : true + } ] + }, { + "name" : "signaldefinitionspackage", + "properties" : [ { + "id" : "signaldefinitions", + "type" : "multiplecomplex", + "title" : "\u4fe1\u53f7\u5b9a\u4e49", + "value" : "", + "description" : "\u4fe1\u53f7\u5b9a\u4e49", + "popular" : true + } ] + }, { + "name" : "messagedefinitionspackage", + "properties" : [ { + "id" : "messagedefinitions", + "type" : "\u6d88\u606f\u5b9a\u4e49", + "value" : "", + "description" : "\u6d88\u606f\u5b9a\u4e49", + "popular" : true + } ] + }, { + "name" : "istransactionpackage", + "properties" : [ { + "id" : "istransaction", + "type" : "Boolean", + "title" : "\u662f\u4e00\u4e2a\u5b50\u6d41\u7a0b\u4e8b\u52a1", + "value" : "false", + "description" : "\u6807\u8bc6\u6b64\u5b50\u8fdb\u7a0b\u662f\u5426\u662f\u4ea4\u6613\u7c7b\u578b\u7684\u6807\u5fd7.", + "popular" : true, + "refToView" : "border" + } ] + }, { + "name" : "formreferencepackage", + "properties" : [ { + "id" : "formreference", + "type" : "Complex", + "title" : "表单引用", + "value" : "", + "description" : "引用表单", + "popular" : true + } ] + }, { + "name" : "terminateAllpackage", + "properties" : [ { + "id" : "terminateAll", + "type" : "Boolean", + "title" : "\u7ec8\u6b62\u6240\u6709", + "value" : "false", + "description" : "\u542f\u7528\u7ec8\u6b62\u6d41\u7a0b\u5b9e\u4f8b", + "popular" : true + } ] + }, { + "name" : "decisiontaskdecisiontablereferencepackage", + "properties" : [ { + "id" : "decisiontaskdecisiontablereference", + "type" : "Complex", + "title" : "决策表参考", + "value" : "", + "description" : "设置决策表参考", + "popular" : true + } ] + }, { + "name" : "decisiontaskthrowerroronnohitspackage", + "properties" : [ { + "id" : "decisiontaskthrowerroronnohits", + "type" : "Boolean", + "title" : "如果没有命中规则,则抛出错误", + "value" : "false", + "description" : "如果没有命中决策表的规则,结果是否被发现,则会引发错误.", + "popular" : true + } ] + }, { + "name" : "interruptingpackage", + "properties" : [ { + "id" : "interrupting", + "type" : "Boolean", + "title" : "中断", + "value" : "true", + "description" : "是否应终止所有父执行?", + "popular" : true, + "refToView" : [ "frame" ] + } ] + }, { + "name" : "completionconditionpackage", + "properties" : [ { + "id" : "completioncondition", + "type" : "String", + "title" : "完成条件", + "value" : "", + "description" : "子过程的完备性条件", + "popular" : true + } ] + }, { + "name" : "orderingpackage", + "properties" : [ { + "id" : "ordering", + "type" : "flowable-ordering", + "title" : "排序", + "value" : "Parallel", + "description" : "AdHoc子过程的排序", + "popular" : true + } ] + }, { + "name" : "cancelremaininginstancespackage", + "properties" : [ { + "id" : "cancelremaininginstances", + "type" : "Boolean", + "title" : "取消剩余实例", + "value" : "true", + "description" : "取消AdHoc子进程的剩余实例?", + "popular" : true + } ] + } ], + "stencils" : [ { + "type" : "node", + "id" : "BPMNDiagram", + "title" : "BPMN\u56fe\u8868", + "description" : "A BPMN 2.0 diagram.", + "view" : "\n\n \n \n \n \n \t\n \n", + "icon" : "diagram.png", + "groups" : [ "图解" ], + "mayBeRoot" : true, + "hide" : true, + "propertyPackages" : [ "process_idpackage", "namepackage", "documentationpackage", "process_authorpackage", "process_versionpackage", "process_namespacepackage", "process_historylevelpackage", "isexecutablepackage", "datapropertiespackage", "executionlistenerspackage", "eventlistenerspackage", "signaldefinitionspackage", "messagedefinitionspackage", "process_potentialstarteruserpackage","process_potentialstartergrouppackage", "process_iseagerexecutionfetchpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ ] + }, { + "type" : "node", + "id" : "StartNoneEvent", + "title" : "\u5f00\u59cb\u4e8b\u4ef6", + "description" : "\u4e0d\u5e26\u5177\u4f53\u7684\u89e6\u53d1\u7684\u5f00\u59cb\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon" : "startevent/none.png", + "groups" : [ "\u542f\u52a8\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "initiatorpackage", "formkeydefinitionpackage", "formreferencepackage", "formpropertiespackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartTimerEvent", + "title" : "\u8ba1\u65f6\u5668\u4e8b\u4ef6", + "description" : "\u5e26\u6709\u8ba1\u65f6\u5668\u7684\u89e6\u53d1\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/timer.png", + "groups" : [ "\u542f\u52a8\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartSignalEvent", + "title" : "\u4fe1\u53f7\u4e8b\u4ef6", + "description" : "\u5e26\u6709\u4fe1\u53f7\u7684\u89e6\u53d1\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n\n \n \n \n\t\n \n", + "icon" : "startevent/signal.png", + "groups" : [ "\u542f\u52a8\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage", "interruptingpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartMessageEvent", + "title" : "\u6d88\u606f\u4e8b\u4ef6", + "description" : "\u5e26\u6709\u6d88\u606f\u7684\u89e6\u53d1\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/message.png", + "groups" : [ "\u542f\u52a8\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage", "interruptingpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartErrorEvent", + "title" : "\u9519\u8bef\u4e8b\u4ef6", + "description" : "\u6355\u83b7BPMN\u9519\u8bef\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/error.png", + "groups" : [ "\u542f\u52a8\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage", "interruptingpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "UserTask", + "title" : "\u7528\u6237\u4efb\u52a1", + "description" : "\u4efb\u52a1\u624b\u52a8\u5206\u914d\u7ed9\u4e00\u4e2a\u7279\u5b9a\u7684\u4eba", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.user.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "formreferencepackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage", "skipexpressionpackage","nodetypepackage","editdatapackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ServiceTask", + "title" : "\u670d\u52a1\u4efb\u52a1", + "description" : "\u4e1a\u52a1\u903b\u8f91\u81ea\u52a8\u4efb\u52a1", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.service.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "servicetasktriggerablepackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "servicetaskclasspackage", "servicetaskexpressionpackage", "servicetaskdelegateexpressionpackage", "servicetaskfieldspackage", "servicetaskresultvariablepackage", "skipexpressionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ScriptTask", + "title" : "\u811a\u672c\u4efb\u52a1", + "description" : "\u81ea\u52a8\u811a\u672c\u903b\u8f91\u4efb\u52a1", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.script.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "scriptformatpackage", "scripttextpackage", "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "BusinessRule", + "title" : "\u4e1a\u52a1\u89c4\u5219\u4efb\u52a1", + "description" : "\u89c4\u5219\u903b\u8f91\u81ea\u52a8\u4efb\u52a1", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.business.rule.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "ruletask_rulespackage", "ruletask_variables_inputpackage", "ruletask_excludepackage", "ruletask_resultpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ReceiveTask", + "title" : "\u63a5\u6536\u4efb\u52a1", + "description" : "\u8be5\u4efb\u52a1\u7b49\u5f85\u63a5\u6536", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.receive.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ManualTask", + "title" : "\u624b\u52a8\u4efb\u52a1", + "description" : "\u6ca1\u6709\u903b\u8f91\u7684\u81ea\u52a8\u4efb\u52a1", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n \t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.manual.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "MailTask", + "title" : "\u90ae\u4ef6\u4efb\u52a1", + "description" : "\u90ae\u4ef6\u4efb\u52a1", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.send.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "mailtasktopackage", "mailtaskfrompackage", "mailtasksubjectpackage", "mailtaskccpackage", "mailtaskbccpackage", "mailtasktextpackage", "mailtaskhtmlpackage", "mailtaskcharsetpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "CamelTask", + "title" : "\u9a7c\u5cf0\u4efb\u52a1", + "description" : "\u53d1\u9001\u6d88\u606f\u7ed9\u9a7c\u5cf0\u7684\u4efb\u52a1", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.camel.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "cameltaskcamelcontextpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "HttpTask", + "title" : "HTTP任务", + "description" : "一个HTTP任务", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.http.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "httptaskrequestmethodpackage", "httptaskrequesturlpackage", "httptaskrequestheaderspackage", "httptaskrequestbodypackage", "httptaskrequesttimeoutpackage", "httptaskdisallowredirectspackage", "httptaskfailstatuscodespackage", "httptaskhandlestatuscodespackage", "httptaskignoreexceptionpackage", "httptaskresponsevariablenamepackage", "httptasksaverequestvariablespackage", "httptasksaveresponseparameterspackage", "httptaskresultvariableprefixpackage", "httptasksaveresponseparameterstransientpackage", "httptasksaveresponseasjsonpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "MuleTask", + "title" : "Mule 任务", + "description" : "发送消息的任务给Mule", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.mule.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "muletaskendpointurlpackage", "muletasklanguagepackage", "muletaskpayloadexpressionpackage", "muletaskresultvariablepackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "SendTask", + "title" : "\u53d1\u9001\u4efb\u52a1", + "description" : "\u53d1\u9001\u6d88\u606f\u7684\u4efb\u52a1", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.send.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "DecisionTask", + "title" : "决策任务", + "description" : "使用可流动DMN规则引擎的任务", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n \n", + "icon" : "activity/list/type.decision.png", + "groups" : [ "\u4efb\u52a1" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "decisiontaskdecisiontablereferencepackage", "decisiontaskthrowerroronnohitspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, + { + "type": "node", + "id": "ShellTask", + "title": "Shell任务", + "description": "shell批量逻辑的自动任务", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t_]]>\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.shell.png", + "groups": [ + "\u4efb\u52a1" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "shellcommandpackage", + "shellarg1package", + "shellarg2package", + "shellarg3package", + "shellarg4package", + "shellarg5package", + "shellwaitpackage", + "shelloutputvariablepackage", + "shellerrorcodevariablepackage", + "shellredirecterrorpackage", + "shellcleanenvpackage", + "shelldirectorypackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + },{ + "type" : "node", + "id" : "SubProcess", + "title" : "\u5b50\u6d41\u7a0b", + "description" : "\u5b50\u6d41\u7a0b\u8303\u56f4", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n", + "icon" : "activity/expanded.subprocess.png", + "groups" : [ "子流程" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "datapropertiespackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "istransactionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] + },{ + "type" : "node", + "id" : "CollapsedSubProcess", + "title" : "折叠子过程", + "description" : "子过程范围", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n \n", + "icon" : "activity/subprocess.png", + "groups" : [ "子流程" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "datapropertiespackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "istransactionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] + },{ + "type" : "node", + "id" : "EventSubProcess", + "title" : "事件子流程", + "description" : "\u5b50\u6d41\u7a0b\u4e8b\u4ef6\u8303\u56f4", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n \t\n\t\t\n \t\n\t\n\t\n \n", + "icon" : "activity/event.subprocess.png", + "groups" : [ "子流程" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "all", "EventSubProcess" ] + }, { + "type" : "node", + "id" : "CallActivity", + "title" : "活动子流程", + "description" : "\u547c\u53eb\u6d3b\u52a8", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n \n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon" : "activity/task.png", + "groups" : [ "子流程" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "callactivitycalledelementpackage", "callactivityinparameterspackage", "callactivityoutparameterspackage", "callactivityinheritvariablespackage", "callactivitysamedeploymentpackage", "callactivityprocessinstancenamepackage", "callactivityinheritbusinesskeypackage", "callactivitybusinesskeypackage", "callactivityuselocalscopeforoutparameterspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ExclusiveGateway", + "title" : "\u9ad8\u7ea7\u5206\u652f", + "description" : "\u9ad8\u7ea7\u5206\u652f", + "view" : "\n\n \n \n \n \t\t\t\t\t\n \n \n \n \n \n \n \n\t\n\t\n\t\n \n\n", + "icon" : "gateway/exclusive.databased.png", + "groups" : [ "\u7f51\u5173" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ParallelGateway", + "title" : "\u5e76\u884c\u5206\u652f", + "description" : "\u5e76\u884c\u5206\u652f\u7528\u6765\u5bf9\u6d41\u7a0b\u4e2d\u7684\u5e76\u53d1\u8fdb\u884c\u5efa\u6a21", + "view" : "\n\n \n \n \n \n \n \n \n \n\t\n\t\n \n\n", + "icon" : "gateway/parallel.png", + "groups" : [ "\u7f51\u5173" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "InclusiveGateway", + "title" : "\u5305\u5bb9\u5206\u652f", + "description" : "\u5305\u5bb9\u5206\u652f\u53ef\u4ee5\u88ab\u89c6\u4e3a\u662f\u6392\u4ed6\u5206\u652f\u548c\u5e76\u884c\u5206\u652f\u7684\u7ed3\u5408", + "view" : "\n\n \n \n \n \n\n \n \n \n\t\n\t\n \n\n", + "icon" : "gateway/inclusive.png", + "groups" : [ "\u7f51\u5173" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EventGateway", + "title" : "\u4e8b\u4ef6\u5206\u652f", + "description" : "\u4e8b\u4ef6\u5206\u652f", + "view" : "\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n", + "icon" : "gateway/eventbased.png", + "groups" : [ "\u7f51\u5173" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "BoundaryErrorEvent", + "title" : "\u8fb9\u754c\u9519\u8bef\u4e8b\u4ef6", + "description" : "\u6355\u83b7BPMN\u9519\u8bef\u8fb9\u754c\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "catching/error.png", + "groups" : [ "\u8fb9\u754c\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryTimerEvent", + "title" : "\u8fb9\u754c\u5b9a\u65f6\u5668\u4e8b\u4ef6", + "description" : "\u5b9a\u65f6\u5668\u89e6\u53d1\u7684\u8fb9\u754c\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", + "icon" : "catching/timer.png", + "groups" : [ "\u8fb9\u754c\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage", "timerenddatedefinitionpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundarySignalEvent", + "title" : "\u8fb9\u754c\u4fe1\u53f7\u4e8b\u4ef6", + "description" : "\u4fe1\u53f7\u89e6\u53d1\u7684\u8fb9\u754c\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", + "icon" : "catching/signal.png", + "groups" : [ "\u8fb9\u754c\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "signalrefpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryMessageEvent", + "title" : "\u8fb9\u754c\u7ebf\u6d88\u606f\u4e8b\u4ef6", + "description" : "\u6d88\u606f\u89e6\u53d1\u7684\u8fb9\u754c\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", + "icon" : "catching/message.png", + "groups" : [ "\u8fb9\u754c\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "messagerefpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryCancelEvent", + "title" : "\u8fb9\u754c\u53d6\u6d88\u4e8b\u4ef6", + "description" : "\u8fb9\u754c\u53d6\u6d88\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n \n\t\n \n", + "icon" : "catching/cancel.png", + "groups" : [ "\u8fb9\u754c\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryCompensationEvent", + "title" : "\u8fb9\u754c\u8865\u507f\u4e8b\u4ef6", + "description" : "\u8fb9\u754c\u8865\u507f\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n \n \n \n \n\t\n \n", + "icon" : "catching/compensation.png", + "groups" : [ "\u8fb9\u754c\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary", "all" ] + }, { + "type" : "node", + "id" : "CatchTimerEvent", + "title" : "\u4e2d\u95f4\u5b9a\u65f6\u5668\u6355\u83b7\u4e8b\u4ef6", + "description" : "\u5b9a\u65f6\u5668\u89e6\u53d1\u7684\u6355\u83b7\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", + "icon" : "catching/timer.png", + "groups" : [ "\u4e2d\u95f4\u6355\u83b7\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "CatchSignalEvent", + "title" : "\u4e2d\u95f4\u4fe1\u53f7\u6355\u83b7\u4e8b\u4ef6", + "description" : "\u4fe1\u53f7\u89e6\u53d1\u7684\u6355\u83b7\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", + "icon" : "catching/signal.png", + "groups" : [ "\u4e2d\u95f4\u6355\u83b7\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "CatchMessageEvent", + "title" : "\u4e2d\u95f4\u6d88\u606f\u6355\u83b7\u4e8b\u4ef6", + "description" : "\u6d88\u606f\u89e6\u53d1\u7684\u6355\u83b7\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", + "icon" : "catching/message.png", + "groups" : [ "\u4e2d\u95f4\u6355\u83b7\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "ThrowNoneEvent", + "title" : "\u4e2d\u95f4\u7a7a\u629b\u51fa\u4e8b\u4ef6", + "description" : "\u4e2d\u95f4\u6ca1\u6709\u4e00\u4e2a\u5177\u4f53\u7684\u89e6\u53d1\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "throwing/none.png", + "groups" : [ "\u4e2d\u95f4\u6355\u83b7\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ThrowSignalEvent", + "title" : "\u4e2d\u95f4\u4fe1\u53f7\u629b\u51fa\u4e8b\u4ef6", + "description" : "\u4e2d\u95f4\u7684\u4fe1\u53f7\u89e6\u53d1\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "throwing/signal.png", + "groups" : [ "\u4e2d\u95f4\u89e6\u53d1\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndNoneEvent", + "title" : "\u7ed3\u675f\u4e8b\u4ef6", + "description" : "\u6ca1\u6709\u4e00\u4e2a\u5177\u4f53\u7684\u89e6\u53d1\u7ed3\u675f\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon" : "endevent/none.png", + "groups" : [ "\u7ed3\u675f\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndErrorEvent", + "title" : "\u7ed3\u675f\u9519\u8bef\u4e8b\u4ef6", + "description" : "\u629b\u51fa\u4e00\u4e2a\u9519\u8bef\u7ed3\u675f\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "endevent/error.png", + "groups" : [ "\u7ed3\u675f\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndCancelEvent", + "title" : "\u7ed3\u675f\u540e\u53d6\u6d88\u4e8b\u4ef6", + "description" : "\u7ed3\u675f\u540e\u53d6\u6d88\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon" : "endevent/cancel.png", + "groups" : [ "\u7ed3\u675f\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndTerminateEvent", + "title" : "\u7ed3\u675f\u7ec8\u6b62\u4e8b\u4ef6", + "description" : "\u7ed3\u675f\u7ec8\u6b62\u4e8b\u4ef6", + "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon" : "endevent/terminate.png", + "groups" : [ "\u7ed3\u675f\u4e8b\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "terminateAllpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "Pool", + "title" : "\u6d41\u7a0b\u6c60", + "description" : "\u6d41\u7a0b\u5b9a\u4e49\u6c60", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t \t\n \t\n \n \n\t\n\t\n\t\n\t\n \n \n \n", + "icon" : "swimlane/pool.png", + "groups" : [ "泳道" ], + "layout" : [ { + "type" : "layout.bpmn2_0.pool" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "process_idpackage", "isexecutablepackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "canContainArtifacts", "all" ] + }, { + "type" : "node", + "id" : "Lane", + "title" : "通道", + "description" : "建立流程定义的通道", + "view" : "\n\n \n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n \t\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n \n\t\n \n", + "icon" : "swimlane/lane.png", + "groups" : [ "泳道" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "PoolChild", "canContainArtifacts", "all" ] + }, { + "type" : "edge", + "id" : "SequenceFlow", + "title" : "\u987a\u5e8f\u6d41", + "description" : "\u987a\u5e8f\u6d41\u5b9a\u4e49\u6d3b\u52a8\u7684\u6267\u884c\u987a\u5e8f.", + "view" : "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t\t\t\r\n\t \t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n", + "icon" : "connector/sequenceflow.png", + "groups" : [ "\u8fde\u63a5\u5bf9\u8c61" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "conditionsequenceflowpackage", "executionlistenerspackage", "defaultflowpackage", "skipexpressionpackage","sequenceflowtextxpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "MessageFlow", + "title" : "\u6d88\u606f\u6d41", + "description" : "\u8fde\u63a5\u4e0d\u540c\u6d41\u7a0b\u6c60\u7684\u6d88\u606f\u6d41.", + "view" : "\r\n\r\n\t\r\n\t\t\r\n\t \t\t\r\n\t \t\t\r\n\t \t\r\n\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon" : "connector/messageflow.png", + "groups" : [ "\u8fde\u63a5\u5bf9\u8c61" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "Association", + "title" : "\u8054\u7cfb", + "description" : "\u8054\u7cfb\u6587\u672c\u6ce8\u91ca\u4e0e\u5bf9\u8c61.", + "view" : "\r\n\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon" : "connector/association.undirected.png", + "groups" : [ "\u8fde\u63a5\u5bf9\u8c61" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "DataAssociation", + "title" : "\u6570\u636e\u8054\u7cfb", + "description" : "\u8054\u7cfb\u5e26\u6d3b\u52a8\u7684\u5bf9\u8c61.", + "view" : "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon" : "connector/association.unidirectional.png", + "groups" : [ "\u8fde\u63a5\u5bf9\u8c61" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "node", + "id" : "TextAnnotation", + "title" : "\u6587\u672c\u6ce8\u91ca", + "description" : "\u8bf4\u660e\u6587\u5b57\u6807\u6ce8\u5143\u7d20.", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "artifact/text.annotation.png", + "groups" : [ "\u6784\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "textpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "all" ] + }, { + "type" : "node", + "id" : "DataStore", + "title" : "\u6570\u636e\u5b58\u50a8", + "description" : "\u6570\u636e\u5b58\u50a8\u7684\u5f15\u7528.", + "view" : "\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t \t\r\n\t\t\r\n\t\t\t \r\n\t\r\n\r\n", + "icon" : "dataobject/data.store.png", + "groups" : [ "\u6784\u4ef6" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "all" ] + }, { + "type" : "node", + "id" : "AdhocSubProcess", + "title" : "特别子流程", + "description" : "一个特别子过程", + "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\n\t\n\t\n\t\n\t~\n \n", + "icon" : "activity/adhoc.subprocess.png", + "groups" : [ "子流程" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "completionconditionpackage", "orderingpackage", "cancelremaininginstancespackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] + } ], + "rules" : { + "cardinalityRules" : [ { + "role" : "Startevents_all", + "incomingEdges" : [ { + "role" : "SequenceFlow", + "maximum" : 0 + } ] + }, { + "role" : "Endevents_all", + "outgoingEdges" : [ { + "role" : "SequenceFlow", + "maximum" : 0 + } ] + } ], + "connectionRules" : [ { + "role" : "SequenceFlow", + "connects" : [ { + "from" : "sequence_start", + "to" : [ "sequence_end" ] + } ] + }, { + "role" : "Association", + "connects" : [ { + "from" : "sequence_start", + "to" : [ "TextAnnotation" ] + }, { + "from" : "sequence_end", + "to" : [ "TextAnnotation" ] + }, { + "from" : "TextAnnotation", + "to" : [ "sequence_end" ] + }, { + "from" : "BoundaryCompensationEvent", + "to" : [ "sequence_end" ] + }, { + "from" : "TextAnnotation", + "to" : [ "sequence_start" ] + }, { + "from" : "BoundaryCompensationEvent", + "to" : [ "sequence_start" ] + } ] + }, { + "role" : "DataAssociation", + "connects" : [ { + "from" : "sequence_start", + "to" : [ "DataStore" ] + }, { + "from" : "sequence_end", + "to" : [ "DataStore" ] + }, { + "from" : "DataStore", + "to" : [ "sequence_end" ] + }, { + "from" : "DataStore", + "to" : [ "sequence_start" ] + } ] + }, { + "role" : "IntermediateEventOnActivityBoundary", + "connects" : [ { + "from" : "Activity", + "to" : [ "IntermediateEventOnActivityBoundary" ] + } ] + } ], + "containmentRules" : [ { + "role" : "BPMNDiagram", + "contains" : [ "all" ] + }, { + "role" : "SubProcess", + "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "EventSubProcess", "TextAnnotation", "DataStore" ] + }, { + "role" : "AdhocSubProcess", + "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation", "DataStore" ] + }, { + "role" : "EventSubProcess", + "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation", "DataStore" ] + }, { + "role" : "Pool", + "contains" : [ "Lane" ] + }, { + "role" : "Lane", + "contains" : [ "sequence_start", "sequence_end", "EventSubProcess", "TextAnnotation", "DataStore" ] + } ], + "morphingRules" : [ { + "role" : "ActivitiesMorph", + "baseMorphs" : [ "UserTask" ], + "preserveBounds" : true + }, { + "role" : "GatewaysMorph", + "baseMorphs" : [ "ExclusiveGateway" ] + }, { + "role" : "StartEventsMorph", + "baseMorphs" : [ "StartNoneEvent" ] + }, { + "role" : "EndEventsMorph", + "baseMorphs" : [ "StartNoneEvent" ] + }, { + "role" : "CatchEventsMorph", + "baseMorphs" : [ "CatchTimerEvent" ] + }, { + "role" : "ThrowEventsMorph", + "baseMorphs" : [ "ThrowNoneEvent" ] + }, { + "role" : "BoundaryEventsMorph", + "baseMorphs" : [ "ThrowNoneEvent" ] + }, { + "role" : "BoundaryCompensationEvent", + "baseMorphs" : [ "BoundaryCompensationEvent" ] + }, { + "role" : "TextAnnotation", + "baseMorphs" : [ "TextAnnotation" ] + }, { + "role" : "DataStore", + "baseMorphs" : [ "DataStore" ] + } ] + } +} diff --git a/ruoyi-modules/ruoyi-workflow/pom.xml b/ruoyi-modules/ruoyi-workflow/pom.xml index f65d7fc6c..ca167ecc8 100644 --- a/ruoyi-modules/ruoyi-workflow/pom.xml +++ b/ruoyi-modules/ruoyi-workflow/pom.xml @@ -35,6 +35,11 @@ + + org.flowable + flowable-ui-modeler-rest + 6.8.0 + org.flowable @@ -66,6 +71,12 @@ xercesImpl ${xerces.version} + + org.flowable + flowable-json-converter + 6.8.0 + compile + diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java new file mode 100644 index 000000000..2bdb9fc8b --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java @@ -0,0 +1,111 @@ +package org.dromara.workflow.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.fasterxml.jackson.databind.node.ObjectNode; +import jakarta.validation.constraints.NotEmpty; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.workflow.domain.bo.ModelBo; +import org.dromara.workflow.domain.vo.AccountVo; +import org.dromara.workflow.service.IActModelService; +import org.flowable.engine.RepositoryService; +import org.flowable.engine.repository.Model; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.MultiValueMap; +import org.springframework.web.bind.annotation.*; + +/** + * 模型管理 控制层 + * + * @author may + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/model") +public class ActModelController extends BaseController { + + private final RepositoryService repositoryService; + + private final IActModelService iActModelService; + + + @GetMapping("/list") + public TableDataInfo getByPage(ModelBo modelBo) { + return iActModelService.getByPage(modelBo); + } + + /** + * 参考官方提供的响应数据 + * "{\"id\":\"admin\",\"firstName\":\"Test\",\"lastName\":\"Administrator\",\"email\":\"admin@flowable.org\",\"fullName\":\"Test Administrator\",\"groups\":[],\"privileges\":[\"access-idm\",\"access-rest-api\",\"access-task\",\"access-modeler\",\"access-admin\"]}"; + */ + @GetMapping("/rest/account") + @SaIgnore + public String getAccount() { + + AccountVo accountVo = new AccountVo(); + accountVo.setId("admin"); + accountVo.setFirstName(""); + accountVo.setLastName("admin"); + accountVo.setFullName("admin"); + return JsonUtils.toJsonString(accountVo); + } + + /** + * 新增模型 + * + * @param modelBo 模型请求对象 + */ + @Log(title = "模型管理", businessType = BusinessType.INSERT) + @PostMapping("/rest/models") + public R saveNewModel(@RequestBody ModelBo modelBo) { + return toAjax(iActModelService.saveNewModel(modelBo)); + } + + /** + * 查询模型 + * + * @param modelId 模型id + */ + @GetMapping("/rest/models/{modelId}/editor/json") + @SaIgnore + public ObjectNode getModelInfo(@PathVariable String modelId) { + return iActModelService.getModelInfo(modelId); + } + + + /** + * 编辑模型 + * + * @param modelId 模型id + * @param values 模型数据 + */ + @SaIgnore + @Log(title = "模型管理", businessType = BusinessType.UPDATE) + @PostMapping(value = "/rest/models/{modelId}/editor/json") + public R editModel(@PathVariable String modelId, @RequestParam MultiValueMap values) { + return toAjax(iActModelService.editModel(modelId,values)); + } + + /** + * 删除流程模型 + * + * @param ids 模型id + */ + @Log(title = "模型管理", businessType = BusinessType.DELETE) + @RepeatSubmit() + @DeleteMapping("/{ids}") + @Transactional(rollbackFor = Exception.class) + public R delete(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) { + for (String id : ids) { + repositoryService.deleteModel(id); + } + return R.ok(); + } + +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/StencilsetRestResource.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/StencilsetRestResource.java new file mode 100644 index 000000000..c6791cf9a --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/StencilsetRestResource.java @@ -0,0 +1,40 @@ +/* Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.dromara.workflow.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import org.apache.commons.io.IOUtils; +import org.springframework.web.bind.annotation.*; + +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +/** + * @author Tijs Rademakers + */ +@RestController +@RequestMapping("/workflow/model") +public class StencilsetRestResource { + + @SaIgnore + @GetMapping(value="/rest/stencil-sets/editor") + public String getStencilset() { + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/stencilset.json"); + try { + assert inputStream != null; + return IOUtils.toString(inputStream, StandardCharsets.UTF_8); + } catch (Exception e) { + throw new SecurityException("Error while loading stencil set", e); + } + } +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/package-info.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/package-info.java deleted file mode 100644 index cf6a7552e..000000000 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.workflow.controller; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ModelBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ModelBo.java new file mode 100644 index 000000000..0a5ca15bb --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ModelBo.java @@ -0,0 +1,40 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 模型请求对象 + * + * @author may + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ModelBo extends PageEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 模型名称 + */ + @NotBlank(message = "模型名称不能为空", groups = {AddGroup.class}) + private String name; + + /** + * 模型标识key + */ + @NotBlank(message = "模型标识key不能为空", groups = {AddGroup.class}) + private String key; + + /** + * 备注 + */ + private String description; + +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/PageEntity.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/PageEntity.java new file mode 100644 index 000000000..10b3236ff --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/PageEntity.java @@ -0,0 +1,36 @@ +package org.dromara.workflow.domain.bo; + + +/** + * 分页参数 + * + * @author may + */ +public class PageEntity { + + /** + * 当前页码 + */ + private Integer pageNum = 0; + + /** + * 页容量 + */ + private Integer pageSize = 10; + + public Integer getPageNum() { + return (pageNum - 1) * pageSize; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/package-info.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/package-info.java deleted file mode 100644 index 9cc89e510..000000000 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.workflow.domain; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/AccountVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/AccountVo.java new file mode 100644 index 000000000..825f7c486 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/AccountVo.java @@ -0,0 +1,21 @@ +package org.dromara.workflow.domain.vo; + +import lombok.Data; + +import java.util.List; + +/** + * 参考官方提供的响应数据 + * + * @author may + */ +@Data +public class AccountVo { + private String id; + private String firstName; + private String lastName; + private String email; + private String fullName; + private List groups; + private List privileges; +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActModelService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActModelService.java new file mode 100644 index 000000000..1e74a5331 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActModelService.java @@ -0,0 +1,47 @@ +package org.dromara.workflow.service; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.workflow.domain.bo.ModelBo; +import org.flowable.engine.repository.Model; +import org.springframework.util.MultiValueMap; + +/** + * 模型管理 服务层 + * + * @author may + */ +public interface IActModelService { + /** + * 分页查询模型 + * + * @param modelBo 模型参数 + * @return 返回分页列表 + */ + TableDataInfo getByPage(ModelBo modelBo); + + /** + * 新增模型 + * + * @param modelBo 模型请求对象 + * @return 结果 + */ + boolean saveNewModel(ModelBo modelBo); + + /** + * 查询模型 + * + * @param modelId 模型id + * @return 模型数据 + */ + ObjectNode getModelInfo(String modelId); + + /** + * 编辑模型 + * + * @param modelId 模型id + * @param values 模型数据 + * @return 结果 + */ + boolean editModel(String modelId, MultiValueMap values); +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java new file mode 100644 index 000000000..41515a7d3 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java @@ -0,0 +1,233 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.workflow.domain.bo.ModelBo; +import org.dromara.workflow.service.IActModelService; +import org.dromara.workflow.utils.WorkflowUtils; +import org.flowable.bpmn.converter.BpmnXMLConverter; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.editor.constants.ModelDataJsonConstants; +import org.flowable.editor.language.json.converter.BpmnJsonConverter; +import org.flowable.engine.RepositoryService; +import org.flowable.engine.repository.Model; +import org.flowable.engine.repository.ModelQuery; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.MultiValueMap; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Objects; + +import static org.flowable.editor.constants.ModelDataJsonConstants.*; + +/** + * 模型管理 服务层实现 + * + * @author may + */ +@RequiredArgsConstructor +@Service +public class ActModelServiceImpl implements IActModelService { + + private final RepositoryService repositoryService; + + /** + * 分页查询模型 + * + * @param modelBo 模型参数 + * @return 返回分页列表 + */ + @Override + public TableDataInfo getByPage(ModelBo modelBo) { + ModelQuery query = repositoryService.createModelQuery(); + if (StringUtils.isNotEmpty(modelBo.getName())) { + query.modelNameLike("%" + modelBo.getName() + "%"); + } + if (StringUtils.isNotEmpty(modelBo.getKey())) { + query.modelKey(modelBo.getKey()); + } + query.orderByLastUpdateTime().desc(); + //创建时间降序排列 + query.orderByCreateTime().desc(); + // 分页查询 + List modelList = query.listPage(modelBo.getPageNum(), modelBo.getPageSize()); + if (CollectionUtil.isNotEmpty(modelList)) { + modelList.forEach(e -> { + boolean isNull = JSONUtil.isNull(JSONUtil.parseObj(e.getMetaInfo()).get(ModelDataJsonConstants.MODEL_DESCRIPTION)); + if (!isNull) { + e.setMetaInfo((String) JSONUtil.parseObj(e.getMetaInfo()).get(ModelDataJsonConstants.MODEL_DESCRIPTION)); + } else { + e.setMetaInfo(StrUtil.EMPTY); + } + }); + } + // 总记录数 + long total = query.count(); + return new TableDataInfo<>(modelList, total); + } + + /** + * 新增模型 + * + * @param modelBo 模型请求对象 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveNewModel(ModelBo modelBo) { + try { + int version = 0; + String key = modelBo.getKey(); + String name = modelBo.getName(); + String description = modelBo.getDescription(); + Model checkModel = repositoryService.createModelQuery().modelKey(key).singleResult(); + if (ObjectUtil.isNotNull(checkModel)) { + throw new ServiceException("模型key已存在!"); + } + // 1. 初始空的模型 + Model model = repositoryService.newModel(); + model.setKey(key); + model.setName(name); + model.setVersion(version); + model.setTenantId(LoginHelper.getTenantId()); + ObjectMapper objectMapper = JsonUtils.getObjectMapper(); + // 封装模型json对象 + ObjectNode objectNode = JsonUtils.getObjectMapper().createObjectNode(); + objectNode.put(MODEL_NAME, name); + objectNode.put(MODEL_REVISION, version); + objectNode.put(MODEL_DESCRIPTION, description); + model.setMetaInfo(objectNode.toString()); + // 保存初始化的模型基本信息数据 + repositoryService.saveModel(model); + String namespace = "http://b3mn.org/stencilset/bpmn2.0#"; + // 封装模型对象基础数据json串 + ObjectNode editorNode = objectMapper.createObjectNode(); + ObjectNode stencilSetNode = objectMapper.createObjectNode(); + stencilSetNode.put("namespace", namespace); + editorNode.replace("stencilset", stencilSetNode); + // 标识key + ObjectNode propertiesNode = objectMapper.createObjectNode(); + propertiesNode.put("process_id", key); + propertiesNode.put("name", name); + propertiesNode.put("description", description); + editorNode.replace("properties", propertiesNode); + repositoryService.addModelEditorSource(model.getId(), editorNode.toString().getBytes(StandardCharsets.UTF_8)); + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new ServiceException(e.getMessage()); + } + } + + /** + * 查询模型 + * + * @param modelId 模型id + * @return 模型数据 + */ + @Override + public ObjectNode getModelInfo(String modelId) { + ObjectNode modelNode = null; + + Model model = repositoryService.getModel(modelId); + ObjectMapper objectMapper = JsonUtils.getObjectMapper(); + if (model != null) { + try { + if (StringUtils.isNotEmpty(model.getMetaInfo())) { + modelNode = (ObjectNode) objectMapper.readTree(model.getMetaInfo()); + } else { + modelNode = objectMapper.createObjectNode(); + modelNode.put(MODEL_NAME, model.getName()); + } + modelNode.put(MODEL_ID, model.getId()); + Integer version = model.getVersion(); + if (version > 0) { + byte[] modelEditorSource = repositoryService.getModelEditorSource(model.getId()); + ByteArrayInputStream byteArrayInputStream = IoUtil.toStream(modelEditorSource); + XMLInputFactory xif = XMLInputFactory.newInstance(); + XMLStreamReader xtr = xif.createXMLStreamReader(byteArrayInputStream); + BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(xtr); + BpmnJsonConverter bpmnJsonConverter = new BpmnJsonConverter(); + ObjectNode jsonNodes = bpmnJsonConverter.convertToJson(bpmnModel); + modelNode.put("model", jsonNodes); + } else { + ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree( + new String(repositoryService.getModelEditorSource(model.getId()), StandardCharsets.UTF_8)); + modelNode.put("model", editorJsonNode); + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + return modelNode; + } + + /** + * 编辑模型 + * + * @param modelId 模型id + * @param values 模型数据 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editModel(String modelId, MultiValueMap values) { + try { + + Model model = repositoryService.getModel(modelId); + ObjectMapper objectMapper = JsonUtils.getObjectMapper(); + ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo()); + + modelJson.put(MODEL_NAME, values.getFirst("name")); + modelJson.put(MODEL_DESCRIPTION, values.getFirst("description")); + model.setMetaInfo(modelJson.toString()); + model.setName(values.getFirst("name")); + // 每次保存把版本更新+1 + model.setVersion(model.getVersion() + 1); + // 获取唯一标识key + String key = objectMapper.readTree(values.getFirst("json_xml")).get("properties").get("process_id").textValue(); + model.setKey(key); + + + repositoryService.saveModel(model); + byte[] xmlBytes = WorkflowUtils.bpmnJsonToXmlBytes(Objects.requireNonNull(values.getFirst("json_xml")).getBytes(StandardCharsets.UTF_8)); + + repositoryService.addModelEditorSource(model.getId(), xmlBytes); + + /*InputStream svgStream = new ByteArrayInputStream(values.getFirst("svg_xml").getBytes(StandardCharsets.UTF_8)); + TranscoderInput input = new TranscoderInput(svgStream); + + PNGTranscoder transcoder = new PNGTranscoder(); + // Setup output + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + TranscoderOutput output = new TranscoderOutput(outStream); + + // Do the transformation + transcoder.transcode(input, output); + final byte[] result = outStream.toByteArray(); + repositoryService.addModelEditorSourceExtra(model.getId(), result); + outStream.close();*/ + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new ServiceException(e.getMessage()); + } + } +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/package-info.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/package-info.java deleted file mode 100644 index 429bd2904..000000000 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.workflow.service.impl; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/package-info.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/package-info.java deleted file mode 100644 index 6e68be40f..000000000 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.workflow.service; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java new file mode 100644 index 000000000..a4afe1fbc --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -0,0 +1,42 @@ +package org.dromara.workflow.utils; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.dromara.common.json.utils.JsonUtils; +import org.flowable.bpmn.converter.BpmnXMLConverter; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.editor.language.json.converter.BpmnJsonConverter; + +import java.io.IOException; + +/** + * 工作流工具 + * + * @author may + */ +public class WorkflowUtils { + + public WorkflowUtils() { + } + + /** + * bpmnModel转为xml + * + * @param jsonBytes json + */ + public static byte[] bpmnJsonToXmlBytes(byte[] jsonBytes) throws IOException { + if (jsonBytes == null) { + return new byte[0]; + } + //1. json字节码转成 BpmnModel 对象 + ObjectMapper objectMapper = JsonUtils.getObjectMapper(); + JsonNode jsonNode = objectMapper.readTree(jsonBytes); + BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(jsonNode); + + if (bpmnModel.getProcesses().isEmpty()) { + return new byte[0]; + } + //2.将bpmnModel转为xml + return new BpmnXMLConverter().convertToXML(bpmnModel); + } +}