From 90fd5e22aa9f7e8274907b36a2c4e327d5e9dcde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Wed, 11 Oct 2023 17:43:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=8E=E4=BB=A3=E7=A0=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mdp-lcode-bootstrap/pom.xml | 7 +- .../main/java/com/mdp/LcodeApplication.java | 5 +- .../main/java/com/mdp/WebSecurityConfig.java | 2 + .../src/main/resources/application-prod.yml | 12 +- mdp-lcode-cloud-bootstrap/README.md | 0 mdp-lcode-cloud-bootstrap/pom.xml | 58 + .../main/java/com/mdp/LcodeApplication.java | 19 + .../main/java/com/mdp/WebSecurityConfig.java | 68 + .../src/main/resources/application-prod.yml | 292 ++++ .../src/main/resources/application.yml | 5 + .../resources/locale/message_zh.properties | 8 + .../src/main/resources/logback-spring.xml | 36 + .../src/main/resources/stencilset_bpmn.json | 1329 +++++++++++++++++ .../test/java/com/mdp/WebSecurityConfig.java | 1 + pom.xml | 6 + 15 files changed, 1834 insertions(+), 14 deletions(-) create mode 100644 mdp-lcode-cloud-bootstrap/README.md create mode 100644 mdp-lcode-cloud-bootstrap/pom.xml create mode 100644 mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/LcodeApplication.java create mode 100644 mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java create mode 100644 mdp-lcode-cloud-bootstrap/src/main/resources/application-prod.yml create mode 100644 mdp-lcode-cloud-bootstrap/src/main/resources/application.yml create mode 100644 mdp-lcode-cloud-bootstrap/src/main/resources/locale/message_zh.properties create mode 100644 mdp-lcode-cloud-bootstrap/src/main/resources/logback-spring.xml create mode 100644 mdp-lcode-cloud-bootstrap/src/main/resources/stencilset_bpmn.json diff --git a/mdp-lcode-bootstrap/pom.xml b/mdp-lcode-bootstrap/pom.xml index 0ce5c13..f334ec6 100644 --- a/mdp-lcode-bootstrap/pom.xml +++ b/mdp-lcode-bootstrap/pom.xml @@ -14,12 +14,7 @@ com.mdp - mdp-oauth2-client-cloud - ${mdp.version} - - - com.mdp - mdp-cloud-starter + mdp-boot-starter ${mdp.version} diff --git a/mdp-lcode-bootstrap/src/main/java/com/mdp/LcodeApplication.java b/mdp-lcode-bootstrap/src/main/java/com/mdp/LcodeApplication.java index 46d1da9..7fcc45b 100644 --- a/mdp-lcode-bootstrap/src/main/java/com/mdp/LcodeApplication.java +++ b/mdp-lcode-bootstrap/src/main/java/com/mdp/LcodeApplication.java @@ -2,10 +2,11 @@ package com.mdp; import org.springframework.boot.SpringApplication; -import org.springframework.cloud.client.SpringCloudApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; -@SpringCloudApplication +@SpringBootApplication +//@SpringCloudApplication @EnableRedisHttpSession //@EnableSwagger2 public class LcodeApplication { diff --git a/mdp-lcode-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java b/mdp-lcode-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java index 7f330d3..61633e3 100644 --- a/mdp-lcode-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java +++ b/mdp-lcode-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java @@ -33,6 +33,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { http.authorizeRequests().antMatchers("/actuator/**","/**/safe/app/auth**", "/**/sys/userTpaInvite/checkInviteId", "/**/sys/user/addUserNoAuth", + "/**/login/token", "/**/sys/user/noauth/detail", "/**/sys/userFans/fansCpd", "/**/sys/userSvr/list", @@ -60,6 +61,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { "/").permitAll().anyRequest().authenticated(); http.oauth2Client().and().logout().disable(); http.oauth2Login(); + http.formLogin().disable(); http.oauth2ResourceServer().jwt().decoder(jwtDecoder).jwtAuthenticationConverter(jwtConverter); http.csrf().disable(); } diff --git a/mdp-lcode-bootstrap/src/main/resources/application-prod.yml b/mdp-lcode-bootstrap/src/main/resources/application-prod.yml index 69b5839..80696cd 100644 --- a/mdp-lcode-bootstrap/src/main/resources/application-prod.yml +++ b/mdp-lcode-bootstrap/src/main/resources/application-prod.yml @@ -29,7 +29,7 @@ management: spring: cloud: consul: - host: 134.175.57.249 + host: 127.0.0.1 port: 8500 inetutils: preferredNetworks[0]: ^10\. @@ -273,14 +273,14 @@ logging: # mdp平台授权验证服务器访问地址 cloud环境下换成 http://gate,本地调试如果不起验证服务器,可改为 https://www.qingqinkj.com/api/m1/oauth2/oauth2 # 客户端必须在数据库表adm.oauth_client_details中配置,否则无法访问 mdp: - api-gate: http://gate + api-gate: http://127.0.0.1:7014 platform-branch-id: platform-branch-001 #配置图片文件上传下载的相关参数 arc: - image-upload-root-path: /home/mall/m1/arcfile/images - image-download-base-uri: https://www.maimengcloud.com/api/m1/arc/ - file-upload-root-path: /home/mall/m1/arcfile/files - file-download-base-uri: https://www.maimengcloud.com/api/m1/arc/ + image-upload-root-path: D:/arcfile/images + image-download-base-uri: https://127.0.1:7014/ + file-upload-root-path: D:/arcfile/files + file-download-base-uri: https://127.0.1:7014/ # 站点语言类型cn\en等 site-type: cn jwt: diff --git a/mdp-lcode-cloud-bootstrap/README.md b/mdp-lcode-cloud-bootstrap/README.md new file mode 100644 index 0000000..e69de29 diff --git a/mdp-lcode-cloud-bootstrap/pom.xml b/mdp-lcode-cloud-bootstrap/pom.xml new file mode 100644 index 0000000..6802912 --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + mdp-lcode-cloud-bootstrap + jar + mdp-lcode-cloud-bootstrap 低代码启动器 + + com.mdp + mdp-lcode-backend + 2.0.0-RELEASE + + + + + + + com.mdp + mdp-cloud-starter + ${mdp.version} + + + com.mdp + mdp-oauth2-client-cloud + ${mdp.version} + + + com.mdp + mdp-lcode + + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + 低代码启动器 + \ No newline at end of file diff --git a/mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/LcodeApplication.java b/mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/LcodeApplication.java new file mode 100644 index 0000000..7fcc45b --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/LcodeApplication.java @@ -0,0 +1,19 @@ +package com.mdp; + + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; + +@SpringBootApplication +//@SpringCloudApplication +@EnableRedisHttpSession +//@EnableSwagger2 +public class LcodeApplication { + + + public static void main(String[] args) { + SpringApplication.run(LcodeApplication.class,args); + + } +} diff --git a/mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java b/mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java new file mode 100644 index 0000000..61633e3 --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/src/main/java/com/mdp/WebSecurityConfig.java @@ -0,0 +1,68 @@ +package com.mdp; + + +import com.mdp.safe.client.jwt.JwtAuthenticationConverter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.builders.WebSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.oauth2.jwt.JwtDecoder; + +@EnableWebSecurity +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + + @Autowired + JwtAuthenticationConverter jwtConverter; + + @Autowired + JwtDecoder jwtDecoder; + + @Override + public void configure(WebSecurity web) throws Exception { + web.ignoring().antMatchers("/webjars/**"); + } + + /** + * 允许匿名访问所有接口 主要是 oauth 接口 + * @param http + * @throws Exception + */ + @Override + protected void configure(HttpSecurity http) throws Exception { + http.authorizeRequests().antMatchers("/actuator/**","/**/safe/app/auth**", + "/**/sys/userTpaInvite/checkInviteId", + "/**/sys/user/addUserNoAuth", + "/**/login/token", + "/**/sys/user/noauth/detail", + "/**/sys/userFans/fansCpd", + "/**/sys/userSvr/list", + "/**/sys/user/crowd/list", + "/**/sys/branch/add", + "/**/sys/branch/list", + "/**/sys/branch/listBranchNoAuth", + "/**/sys/branch/addBranchNoAuth", + "/**/sys/dept/listDeptAndChidlDeptByBranchIdNoAuth", + "/**/sys/dept/addDeptNoAuth", + "/**/sys/userDept/batchEditNoauth", + "/**/list/byItemCode", + "/**/list/byItemIds", + "/**/sys/userTpa/list", + "/app/appTpAuth/list", + "/**/menuModuleBranch/list", + "/**/item/dicts", + "/**/list/sysParam", + "/swagger-ui.html", + "/webjars/**", + "/swagger-ui/**", + "/swagger-resources/**", + "/v2/*", + "/csrf", + "/").permitAll().anyRequest().authenticated(); + http.oauth2Client().and().logout().disable(); + http.oauth2Login(); + http.formLogin().disable(); + http.oauth2ResourceServer().jwt().decoder(jwtDecoder).jwtAuthenticationConverter(jwtConverter); + http.csrf().disable(); + } +} \ No newline at end of file diff --git a/mdp-lcode-cloud-bootstrap/src/main/resources/application-prod.yml b/mdp-lcode-cloud-bootstrap/src/main/resources/application-prod.yml new file mode 100644 index 0000000..d97d95e --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/src/main/resources/application-prod.yml @@ -0,0 +1,292 @@ +server: + port: 7014 + servlet: + context-path: + session: + timeout: 43200 + storeType: none + tomcat: + max-swallow-size: -1 + util: + http: + parser: + HttpParser: requestTargetAllow=|{}[] + error: + include-exception: true + include-stacktrace: ALWAYS + include-message: ALWAYS + compression: + enabled: true + min-response-size: 1024 + mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/* + +management: + endpoints: + web: + exposure: + include: metrics,httptrace + +spring: + cloud: + consul: + host: 134.175.57.249 + port: 8500 + inetutils: + preferredNetworks[0]: ^10\. + preferredNetworks[1]: ^172\. + discovery: + prefer-ip-address: true + healthCheckInterval: 15s + servlet: + multipart: + max-file-size: 10MB + max-request-size: 10MB + # 安全模块 + security: + oauth2: + resourceserver: + jwt: + jwk-set-uri: ${mdp.oauth2.server.uri}/oauth2/jwks + client: + # 下面配置 password 模式 + registration: + password-client: + provider: def-oauth-server + client-id: ${spring.application.name} + client-secret: ${spring.application.name}-8888 + authorization-grant-type: password + scope: all + # 下面配置 client_credentials 模式 + def-client: + provider: def-oauth-server + client-id: ${spring.application.name} + client-secret: ${spring.application.name}-8888 + authorization-grant-type: client_credentials + scope: all + # 下面配置authorization_code模式 + code-client: + provider: def-oauth-server + client-id: ${spring.application.name} + client-secret: ${spring.application.name}-8888 + authorization-grant-type: authorization_code + # 授权码模式下需要配置重定向地址 + redirect-uri: ${messages.base-uri}/authorized + scope: all + provider: + def-oauth-server: + # 授权码方式获取code + authorization-uri: ${mdp.oauth2.server.uri}/oauth2/authorize + # 获取token接口 + token-uri: ${mdp.oauth2.server.uri}/oauth2/token + mail: + host: smtp.mxhichina.com + port: 25 + username: kf@qingqinkj.com + password: QqKj@169$458 + default-encoding: UTF-8 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + required: true + socketFactoryClass: javax.net.ssl.SSLSocketFactory + debug: true + jackson: + mapper: + default-view-inclusion: false + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + serialization: + indent_output: true + fail_on_empty_beans: false + deserialization: + fail_on_unknown_properties: false + parser: + allow_unquoted_control_chars: true + allow_single_quotes: true + + mvc: + date-format: yyyy-MM-dd HH:mm:ss + ## quartz定时任务,采用数据库方式 + quartz: + job-store-type: jdbc + initialize-schema: embedded + #定时任务启动开关,true-开 false-关 + auto-startup: false + #启动时更新己存在的Job + overwrite-existing-jobs: false + properties: + org: + quartz: + scheduler: + instanceName: MyScheduler + instanceId: AUTO + jobStore: + class: org.quartz.impl.jdbcjobstore.JobStoreTX + driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate + tablePrefix: QRTZ_ + isClustered: true + misfireThreshold: 60000 + clusterCheckinInterval: 10000 + threadPool: + class: org.quartz.simpl.SimpleThreadPool + threadCount: 10 + threadPriority: 5 + threadsInheritContextClassLoaderOfInitializingThread: true + jpa: + open-in-view: false + activiti: + check-process-definitions: false + #启用作业执行器 + async-executor-activate: false + #启用异步执行器 + job-executor-activate: false + aop: + proxy-target-class: true + #配置freemarker + freemarker: + # 设置模板后缀名 + suffix: .ftl + # 设置文档类型 + content-type: text/html + # 设置页面编码格式 + charset: UTF-8 + # 设置页面缓存 + cache: false + prefer-file-system-access: false + # 设置ftl文件路径 + template-loader-path: + - classpath:/templates + resource: + static-locations: classpath:/static/,classpath:/public/ + autoconfigure: + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure + datasource: + primary: master + strict: false, + druid: + stat-view-servlet: + enabled: true + loginUsername: root + loginPassword: 123456 + allow: + web-stat-filter: + enabled: true + dynamic: + druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置) + # 连接池的配置信息 + # 初始化大小,最小,最大 + initial-size: 5 + min-idle: 5 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + validationQuery: SELECT 1 + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + # 打开PSCache,并且指定每个连接上PSCache的大小 + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 + filters: stat,wall,slf4j + # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 + connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 + datasource: + master: + # url: jdbc:mysql://124.223.85.6:31605/erp?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true + #username: zchcgl + #password: zchcgl123!@# + #driver-class-name: com.mysql.cj.jdbc.Driver + + url: jdbc:mysql://123.207.117.5:3306/adm?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=CTT + username: root + password: 1qaz@WSX + driver-class-name: com.mysql.cj.jdbc.Driver + + + # 多数据源配置 + #multi-datasource1: + #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai + #username: root + #password: root + #driver-class-name: com.mysql.cj.jdbc.Driver + mem-ds: + url: jdbc:mysql://123.207.117.5:3306/adm?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=CTT + username: root + password: 1qaz@WSX + driver-class-name: com.mysql.cj.jdbc.Driver + mall-ds: + url: jdbc:mysql://123.207.117.5:3306/adm?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=CTT + username: root + password: 1qaz@WSX + driver-class-name: com.mysql.cj.jdbc.Driver + arc-ds: + url: jdbc:mysql://123.207.117.5:3306/arc?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=CTT + username: root + password: 1qaz@WSX + driver-class-name: com.mysql.cj.jdbc.Driver + #redis 配置 + redis: + database: 0 + host: 134.175.57.249 + timeout: 300s + lettuce: + pool: + max-active: 8 #最大连接数据库连接数,设 -1 为没有限制 + max-idle: 20 #最大等待连接中的数量,设 0 为没有限制 + max-wait: 10000 #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 + min-idle: 8 #最小等待连接中的数量,设 0 为没有限制 + shutdown-timeout: 100ms + password: QqKj*123 + port: 6379 +#mybatis plus 设置 +mybatis-plus: + mapper-locations: classpath*:/**/**Mapper.xml + global-config: + # 关闭MP3.0自带的banner + banner: false + db-config: + #主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)"; + id-type: ASSIGN_ID + # 默认数据库表下划线命名 + table-underline: true + logic-delete-value: 1 + logic-not-delete-value: 0 + configuration: + # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + # 返回类型为Map,显示null对应的字段 + call-setters-on-nulls: true + +#Mybatis输出sql日志 +logging: + level: + org.jeecg.modules.system.mapper : info + +# mdp平台授权验证服务器访问地址 cloud环境下换成 http://gate,本地调试如果不起验证服务器,可改为 https://www.qingqinkj.com/api/m1/oauth2/oauth2 +# 客户端必须在数据库表adm.oauth_client_details中配置,否则无法访问 +mdp: + api-gate: http://gate + platform-branch-id: platform-branch-001 + #配置图片文件上传下载的相关参数 + arc: + image-upload-root-path: /home/mall/m1/arcfile/images + image-download-base-uri: https://www.maimengcloud.com/api/m1/arc/ + file-upload-root-path: /home/mall/m1/arcfile/files + file-download-base-uri: https://www.maimengcloud.com/api/m1/arc/ + # 站点语言类型cn\en等 + site-type: cn + jwt: + # 如果不对接oauth2授权中心,jwt将有本地系统自行分发自行验证 设为false + connect-oauth2-server: true + oauth2: + server: + uri: http://oauth2server + diff --git a/mdp-lcode-cloud-bootstrap/src/main/resources/application.yml b/mdp-lcode-cloud-bootstrap/src/main/resources/application.yml new file mode 100644 index 0000000..c3d71f3 --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/src/main/resources/application.yml @@ -0,0 +1,5 @@ +spring: + application: + name: lcode + profiles: + active: prod \ No newline at end of file diff --git a/mdp-lcode-cloud-bootstrap/src/main/resources/locale/message_zh.properties b/mdp-lcode-cloud-bootstrap/src/main/resources/locale/message_zh.properties new file mode 100644 index 0000000..da88fd9 --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/src/main/resources/locale/message_zh.properties @@ -0,0 +1,8 @@ +# 消息转换器,格式为: +# 技术错误码=业务错误码+消息 +# 支持动态数据转换.如下面重试次数是通过程序传入的. +# errcode01=[0760881]您输入的密码不正确,请重新输入,您还可以再试{0}次. +# +# +#tips001=[0760000]网络不给力,请稍后再试. +t123456162Service27=[0760001]测试错误码转义 diff --git a/mdp-lcode-cloud-bootstrap/src/main/resources/logback-spring.xml b/mdp-lcode-cloud-bootstrap/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..7b32990 --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/src/main/resources/logback-spring.xml @@ -0,0 +1,36 @@ + + + + + + [%X{gloNo}][%d{yyyy-MM-dd HH:mm:ss}][%-5level][%logger][%X{reqNo}] -%msg%n + + + + + + logs/mdp_lcode.log + + logs/mdp_lcode.%d{yyyy-MM-dd}.%i.log + + 20 + 100MB + + + [%X{gloNo}][%d{yyyy-MM-dd HH:mm:ss}][%-5level][%logger][%X{reqNo}] -%msg%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mdp-lcode-cloud-bootstrap/src/main/resources/stencilset_bpmn.json b/mdp-lcode-cloud-bootstrap/src/main/resources/stencilset_bpmn.json new file mode 100644 index 0000000..485f59e --- /dev/null +++ b/mdp-lcode-cloud-bootstrap/src/main/resources/stencilset_bpmn.json @@ -0,0 +1,1329 @@ +{ + "title" : "流程编辑器", + "namespace" : "http://b3mn.org/stencilset/bpmn2.0#", + "description" : "BPMN流程编辑器", + "propertyPackages" : [ { + "name" : "process_idpackage", + "properties" : [ { + "id" : "process_id", + "type" : "String", + "title" : "流程唯一标识", + "value" : "未定义", + "description" : "流程定义唯一的标识", + "popular" : true + } ] + }, { + "name" : "overrideidpackage", + "properties" : [ { + "id" : "overrideid", + "type" : "String", + "title" : "ID", + "value" : "", + "description" : "元素的唯一标识", + "popular" : true + } ] + }, { + "name" : "namepackage", + "properties" : [ { + "id" : "name", + "type" : "String", + "title" : "名称", + "value" : "", + "description" : "BPMN元素的描述名称.", + "popular" : true, + "refToView" : "text_name" + } ] + }, { + "name" : "documentationpackage", + "properties" : [ { + "id" : "documentation", + "type" : "Text", + "title" : "文档", + "value" : "", + "description" : "BPMN元素的描述名称.", + "popular" : true + } ] + }, { + "name" : "process_authorpackage", + "properties" : [ { + "id" : "process_author", + "type" : "String", + "title" : "流程作者", + "value" : "", + "description" : "流程定义的作者.", + "popular" : true + } ] + }, { + "name" : "process_versionpackage", + "properties" : [ { + "id" : "process_version", + "type" : "String", + "title" : "流程版本字符串(仅限于文档)", + "value" : "", + "description" : "文档的目的为版本标识", + "popular" : true + } ] + }, { + "name" : "process_namespacepackage", + "properties" : [ { + "id" : "process_namespace", + "type" : "String", + "title" : "流程分类", + "value" : "", + "description" : "流程分类,如请假,项目,工资,招投标,招聘等.", + "popular" : true + } ] + }, { + "name" : "asynchronousdefinitionpackage", + "properties" : [ { + "id" : "asynchronousdefinition", + "type" : "Boolean", + "title" : "异步", + "value" : "false", + "description" : "定义异步的活动.", + "popular" : true + } ] + }, { + "name" : "exclusivedefinitionpackage", + "properties" : [ { + "id" : "exclusivedefinition", + "type" : "Boolean", + "title" : "排它性", + "value" : "false", + "description" : "定义排它的活动.", + "popular" : true + } ] + }, { + "name" : "executionlistenerspackage", + "properties" : [ { + "id" : "executionlisteners", + "type" : "multiplecomplex", + "title" : "执行监听器", + "value" : "", + "description" : "活动、流程、流程跳转,开始、结事事件的监听器,可以通过监听器动态改变业务数据等", + "popular" : true + } ] + }, { + "name" : "tasklistenerspackage", + "properties" : [ { + "id" : "tasklisteners", + "type" : "multiplecomplex", + "title" : "任务监听器", + "value" : "", + "description" : "人工任务的监听器,可以通过设置监听器,动态改变执行人等,如'${taskUserService}'为从动态用户库中取出该节点对应的执行人进行执行任务", + "popular" : true + } ] + }, { + "name" : "eventlistenerspackage", + "properties" : [ { + "id" : "eventlisteners", + "type" : "multiplecomplex", + "title" : "事件监听器", + "value" : "", + "description" : "监听Activiti引擎的任何发生的事件. 同样可能是任何抛出的信号、信息、出错的事件。", + "popular" : true + } ] + }, { + "name" : "usertaskassignmentpackage", + "properties" : [ { + "id" : "usertaskassignment", + "type" : "Complex", + "title" : "任务派遣", + "value" : "", + "description" : "人工任务的派遣的定义,也可以通过类似 '${assignee}'或者'${initiator}'等表达式指向流程变量,多实例中的变量等", + "popular" : true + } ] + }, { + "name" : "formpropertiespackage", + "properties" : [ { + "id" : "formproperties", + "type" : "Complex", + "title" : "表单属性", + "value" : "", + "description" : "定义带有属性列表的表单", + "popular" : true + } ] + }, { + "name" : "formkeydefinitionpackage", + "properties" : [ { + "id" : "formkeydefinition", + "type" : "String", + "title" : "表单的标识Key", + "value" : "", + "description" : "表单的Key(指向定义的Form).", + "popular" : true + } ] + }, { + "name" : "duedatedefinitionpackage", + "properties" : [ { + "id" : "duedatedefinition", + "type" : "String", + "title" : "到期的日期", + "value" : "", + "description" : "人工任务的到期日期", + "popular" : true + } ] + }, { + "name" : "prioritydefinitionpackage", + "properties" : [ { + "id" : "prioritydefinition", + "type" : "String", + "title" : "优先级", + "value" : "", + "description" : "人工任务的优先级.", + "popular" : true + } ] + }, { + "name" : "duedatedefinitionpackage", + "properties" : [ { + "id" : "duedatedefinition", + "type" : "String", + "title" : "到期的日期", + "value" : "", + "description" : "人工任务的到期日期.", + "popular" : true + } ] + }, { + "name" : "servicetaskclasspackage", + "properties" : [ { + "id" : "servicetaskclass", + "type" : "String", + "title" : "类名", + "value" : "", + "description" : "实现服务任务逻辑的类.", + "popular" : true + } ] + }, { + "name" : "servicetaskexpressionpackage", + "properties" : [ { + "id" : "servicetaskexpression", + "type" : "String", + "title" : "表达式", + "value" : "", + "description" : "定义服务任务逻辑的表达式.", + "popular" : true + } ] + }, { + "name" : "servicetaskdelegateexpressionpackage", + "properties" : [ { + "id" : "servicetaskdelegateexpression", + "type" : "String", + "title" : "代理的表达式", + "value" : "", + "description" : "通过代理表达式定义任务服务逻辑", + "popular" : true + } ] + }, { + "name" : "servicetaskfieldspackage", + "properties" : [ { + "id" : "servicetaskfields", + "type" : "Complex", + "title" : "类的字段", + "value" : "", + "description" : "字段扩展", + "popular" : true + } ] + }, { + "name" : "servicetaskresultvariablepackage", + "properties" : [ { + "id" : "servicetaskresultvariable", + "type" : "String", + "title" : "变量名结果", + "value" : "", + "description" : "流程变量存储服务任务的执行结果.", + "popular" : true + } ] + }, { + "name" : "scriptformatpackage", + "properties" : [ { + "id" : "scriptformat", + "type" : "String", + "title" : "脚本格式化", + "value" : "", + "description" : "脚本任务的脚本格式化.", + "popular" : true + } ] + }, { + "name" : "scripttextpackage", + "properties" : [ { + "id" : "scripttext", + "type" : "Text", + "title" : "脚本", + "value" : "", + "description" : "脚本任务的脚本内容.", + "popular" : true + } ] + }, { + "name" : "ruletask_rulespackage", + "properties" : [ { + "id" : "ruletask_rules", + "type" : "String", + "title" : "规则", + "value" : "", + "description" : "规则任务的规则.", + "popular" : true + } ] + }, { + "name" : "ruletask_variables_inputpackage", + "properties" : [ { + "id" : "ruletask_variables_input", + "type" : "String", + "title" : "输入变量", + "value" : "", + "description" : "规则任务的输入变量.", + "popular" : true + } ] + }, { + "name" : "ruletask_excludepackage", + "properties" : [ { + "id" : "ruletask_exclude", + "type" : "Boolean", + "title" : "排除", + "value" : "false", + "description" : "使用作为排它性的规则属性", + "popular" : true + } ] + }, { + "name" : "ruletask_resultpackage", + "properties" : [ { + "id" : "ruletask_result", + "type" : "String", + "title" : "结果变量", + "value" : "", + "description" : "规则任务的结果变量", + "popular" : true + } ] + }, { + "name" : "mailtasktopackage", + "properties" : [ { + "id" : "mailtaskto", + "type" : "Text", + "title" : "发往", + "value" : "", + "description" : "接收者,格式为邮件。多个接收者请用逗号分割的列表来定义 ", + "popular" : true + } ] + }, { + "name" : "mailtaskfrompackage", + "properties" : [ { + "id" : "mailtaskfrom", + "type" : "Text", + "title" : "来自", + "value" : "", + "description" : "发送者的邮箱.若不提供,默认将使用配置中的来源地址.", + "popular" : true + } ] + }, { + "name" : "mailtasksubjectpackage", + "properties" : [ { + "id" : "mailtasksubject", + "type" : "Text", + "title" : "标题", + "value" : "", + "description" : "Email中的标题.", + "popular" : true + } ] + }, { + "name" : "mailtaskccpackage", + "properties" : [ { + "id" : "mailtaskcc", + "type" : "Text", + "title" : "抄送", + "value" : "", + "description" : "抄送的Email地址,多个接收者请用逗号分隔开。", + "popular" : true + } ] + }, { + "name" : "mailtaskbccpackage", + "properties" : [ { + "id" : "mailtaskbcc", + "type" : "Text", + "title" : "暗抄送", + "value" : "", + "description" : "暗抄送的Email地址. 多个接收者请用逗号分隔开", + "popular" : true + } ] + }, { + "name" : "mailtasktextpackage", + "properties" : [ { + "id" : "mailtasktext", + "type" : "Text", + "title" : "内容", + "value" : "", + "description" : "Email中的内容, 案例一需要发送纯文件的邮件. 可使用Html格式的邮件进行发送,若邮件的接收的客户端不支持这种格式,客户端可转为纯文本的邮件", + "popular" : true + } ] + }, { + "name" : "mailtaskhtmlpackage", + "properties" : [ { + "id" : "mailtaskhtml", + "type" : "Text", + "title" : "Html", + "value" : "", + "description" : "HTML中的一片段作为邮件的内容.", + "popular" : true + } ] + }, { + "name" : "mailtaskcharsetpackage", + "properties" : [ { + "id" : "mailtaskcharset", + "type" : "String", + "title" : "字符类型", + "value" : "", + "description" : "对于很多非英语语言来说,允许更改邮件的编码设置是必要的 ", + "popular" : true + } ] + }, { + "name" : "callactivitycalledelementpackage", + "properties" : [ { + "id" : "callactivitycalledelement", + "type" : "String", + "title" : "调用元素", + "value" : "", + "description" : "流程引用.", + "popular" : true + } ] + }, { + "name" : "callactivityinparameterspackage", + "properties" : [ { + "id" : "callactivityinparameters", + "type" : "Complex", + "title" : "输入参数", + "value" : "", + "description" : "定义输入参数", + "popular" : true + } ] + }, { + "name" : "callactivityoutparameterspackage", + "properties" : [ { + "id" : "callactivityoutparameters", + "type" : "Complex", + "title" : "输出参数", + "value" : "", + "description" : "输出参数的定义", + "popular" : true + } ] + }, { + "name" : "cameltaskcamelcontextpackage", + "properties" : [ { + "id" : "cameltaskcamelcontext", + "type" : "String", + "title" : "Camel 上下文", + "value" : "", + "description" : "可选的Camel 上下文定义,若为空,则使用系统缺省的.", + "popular" : true + } ] + }, { + "name" : "muletaskendpointurlpackage", + "properties" : [ { + "id" : "muletaskendpointurl", + "type" : "String", + "title" : "端点URL", + "value" : "", + "description" : "发送消息到Mule的必须的端点URL", + "popular" : true + } ] + }, { + "name" : "muletasklanguagepackage", + "properties" : [ { + "id" : "muletasklanguage", + "type" : "String", + "title" : "语言", + "value" : "", + "description" : "必须的语言定义来解析装载的表达式,如JUEL.", + "popular" : true + } ] + }, { + "name" : "muletaskpayloadexpressionpackage", + "properties" : [ { + "id" : "muletaskpayloadexpression", + "type" : "String", + "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" : "跳转条件", + "value" : "", + "description" : "流程跳线的条件定义,可以输入表达式 如同意 ${agree=='1'},不同意 ${agree=='0'},流程发起人 ${userid=='xxx'},发起部门${deptid==''} ,主办${sponsors}等表达式。其中agree/userid/deptid为内置参数,一定存在的", + "popular" : true + } ] + }, { + "name" : "defaultflowpackage", + "properties" : [ { + "id" : "defaultflow", + "type" : "Boolean", + "title" : "默认跳线", + "value" : "false", + "description" : "定义默认为顺序跳转", + "popular" : true, + "refToView" : "default" + } ] + }, { + "name" : "conditionalflowpackage", + "properties" : [ { + "id" : "conditionalflow", + "type" : "Boolean", + "title" : "条件的跳线", + "value" : "false", + "description" : "定义条件的跳线", + "popular" : true + } ] + }, { + "name" : "timercycledefinitionpackage", + "properties" : [ { + "id" : "timercycledefinition", + "type" : "String", + "title" : "时间周期 (e.g. R3/PT10H)", + "value" : "", + "description" : "定义ISO-8601时间周期.", + "popular" : true + } ] + }, { + "name" : "timerdatedefinitionpackage", + "properties" : [ { + "id" : "timerdatedefinition", + "type" : "String", + "title" : "时间周期(ISO-8601格式标准)", + "value" : "", + "description" : "定义(ISO-8601格式标准)的定时器.", + "popular" : true + } ] + }, { + "name" : "timerdurationdefinitionpackage", + "properties" : [ { + "id" : "timerdurationdefinition", + "type" : "String", + "title" : "持续的时间 (e.g. PT5M)", + "value" : "", + "description" : "定义(ISO-8601)持续的定时器", + "popular" : true + } ] + }, { + "name" : "timerenddatedefinitionpackage", + "properties" : [ { + "id" : "timerenddatedefinition", + "type" : "String", + "title" : "结束的时间格式ISO-8601", + "value" : "", + "description" : "定义带(ISO-8601 duration)定时器.", + "popular" : true + } ] + }, { + "name" : "messagerefpackage", + "properties" : [ { + "id" : "messageref", + "type" : "String", + "title" : "消息引用", + "value" : "", + "description" : "Define the message name.", + "popular" : true + } ] + }, { + "name" : "signalrefpackage", + "properties" : [ { + "id" : "signalref", + "type" : "String", + "title" : "信号引用", + "value" : "", + "description" : "定义信号的名称.", + "popular" : true + } ] + }, { + "name" : "errorrefpackage", + "properties" : [ { + "id" : "errorref", + "type" : "String", + "title" : "错误引用", + "value" : "", + "description" : "定义错误.", + "popular" : true + } ] + }, { + "name" : "cancelactivitypackage", + "properties" : [ { + "id" : "cancelactivity", + "type" : "Boolean", + "title" : "取消的活动", + "value" : "true", + "description" : "活动允许取消", + "popular" : true, + "refToView" : [ "frame", "frame2" ] + } ] + }, { + "name" : "initiatorpackage", + "properties" : [ { + "id" : "initiator", + "type" : "String", + "title" : "初始化器", + "value" : "", + "description" : "流程定义的初始初始化器", + "popular" : true + } ] + }, { + "name" : "textpackage", + "properties" : [ { + "id" : "text", + "type" : "String", + "title" : "Text", + "value" : "", + "description" : "文本注释", + "popular" : true, + "refToView" : "text" + } ] + }, { + "name" : "multiinstance_typepackage", + "properties" : [ { + "id" : "multiinstance_type", + "type" : "kisbpm-multiinstance", + "title" : "多实例类型", + "value" : "None", + "description" : "通过不同的循环类型,重复的活动执行(并行、串行)可显示", + "popular" : true, + "refToView" : "multiinstance" + } ] + }, { + "name" : "multiinstance_cardinalitypackage", + "properties" : [ { + "id" : "multiinstance_cardinality", + "type" : "String", + "title" : "实例个数 (多实例)", + "value" : "", + "description" : "定义多实例的基数.指循环执行多少此该实例", + "popular" : true + } ] + }, { + "name" : "multiinstance_collectionpackage", + "properties" : [ { + "id" : "multiinstance_collection", + "type" : "String", + "title" : "执行人集合(多实例)", + "value" : "", + "description" : "多实例下定义定义执行人集合.指放入流程变量中的集合元素,比如流程变量中自定义了多个人的列表组 assigneeList,这里可以填'assigneeList',代表任务最终将分配给该集合的每个人,也可以使用类似'${myService.resolveUsersForTask()}'的语法来获取用户列表", + "popular" : true + } ] + }, { + "name" : "multiinstance_variablepackage", + "properties" : [ { + "id" : "multiinstance_variable", + "type" : "String", + "title" : "元素的变量(多实例)", + "value" : "", + "description" : "为多实例定义变量元素,代指assigneeList中的一个元素,一般使用'assignee'", + "popular" : true + } ] + }, { + "name" : "multiinstance_conditionpackage", + "properties" : [ { + "id" : "multiinstance_condition", + "type" : "String", + "title" : "完成条件(多实例)", + "value" : "", + "description" : "定义多实例的完成条件.比如半数或者半数以上完成,就算全部完成,可以这样写'${nrOfCompletedInstances/nrOfInstances >= 0.5 }'", + "popular" : true + } ] + }, { + "name" : "isforcompensationpackage", + "properties" : [ { + "id" : "isforcompensation", + "type" : "Boolean", + "title" : "作为修正", + "value" : "false", + "description" : "标识当前活动为修正执行活动。值补偿流程,比如客户订房流程中,发生了退房事件,可以添加一个服务节点,作为修正节点", + "popular" : true, + "refToView" : "compensation" + } ] + }, { + "name" : "sequencefloworderpackage", + "properties" : [ { + "id" : "sequencefloworder", + "type" : "Complex", + "title" : "流程顺序", + "value" : "", + "description" : "流程跳出线的顺序", + "popular" : true + } ] + }, { + "name" : "signaldefinitionspackage", + "properties" : [ { + "id" : "signaldefinitions", + "type" : "multiplecomplex", + "title" : "信号定义", + "value" : "", + "description" : "信号定义", + "popular" : true + } ] + }, { + "name" : "messagedefinitionspackage", + "properties" : [ { + "id" : "messagedefinitions", + "type" : "multiplecomplex", + "title" : "消息定义", + "value" : "", + "description" : "消息定义", + "popular" : true + } ] + }, { + "name" : "istransactionpackage", + "properties" : [ { + "id" : "istransaction", + "type" : "Boolean", + "title" : "作为子流程的事务", + "value" : "false", + "description" : "标识子流程作为事务类型", + "popular" : true, + "refToView" : "border" + } ] + } ], + "stencils" : [ { + "type" : "node", + "id" : "BPMNDiagram", + "title" : "BPMN流程图", + "description" : "BPMN2的流程图.", + "view" : "\n\n \n \n \n \n \t\n \n", + "icon" : "diagram.png", + "groups" : [ "Diagram" ], + "mayBeRoot" : true, + "hide" : true, + "propertyPackages" : [ "process_idpackage", "namepackage", "documentationpackage", "process_authorpackage", "process_versionpackage", "process_namespacepackage", "executionlistenerspackage", "eventlistenerspackage", "signaldefinitionspackage", "messagedefinitionspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ ] + }, { + "type" : "node", + "id" : "StartNoneEvent", + "title" : "开始事件", + "description" : "无特定触发器的开始事件", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon" : "startevent/none.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "initiatorpackage", "formkeydefinitionpackage", "formpropertiespackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartTimerEvent", + "title" : "开始事件(触发器)", + "description" : "带定时器触发的开始事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/timer.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartSignalEvent", + "title" : "开始事件(信号)", + "description" : "通过信号触发开始事件", + "view" : "\n\n \n \n \t\n \n \n\n \n \n \n\t\n \n", + "icon" : "startevent/signal.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartMessageEvent", + "title" : "开始事件(消息)", + "description" : "通过消息触发开始事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/message.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "StartErrorEvent", + "title" : "开始事件(错误)", + "description" : "用于捕获BPMN抛出的错误的开始事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "startevent/error.png", + "groups" : [ "开始事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "UserTask", + "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\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" : [ "活动" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ServiceTask", + "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\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" : [ "活动" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "servicetaskclasspackage", "servicetaskexpressionpackage", "servicetaskdelegateexpressionpackage", "servicetaskfieldspackage", "servicetaskresultvariablepackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] + }, { + "type" : "node", + "id" : "ScriptTask", + "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\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" : [ "活动" ], + "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" : "业务规则的任务", + "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\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" : [ "活动" ], + "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" : "接收任务", + "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 \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" : [ "活动" ], + "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" : "手工任务", + "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 \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" : [ "活动" ], + "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" : "邮件任务", + "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 \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" : [ "活动" ], + "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" : "Camel任务", + "description" : "发送消息给Camel容器的任务", + "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" : [ "活动" ], + "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" : "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" : [ "活动" ], + "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" : "发送任务", + "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 \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" : [ "活动" ], + "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" : "SubProcess", + "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\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", "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" : "子流程范围的事件", + "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" ] + }, { + "type" : "node", + "id" : "CallActivity", + "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 \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", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ExclusiveGateway", + "title" : "单一网关", + "description" : "单一选择的网关", + "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" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ParallelGateway", + "title" : "并行网关", + "description" : "并行执行的网关", + "view" : "\n\n \n \n \n \n \n \n \n \n\t\n\t\n \n\n", + "icon" : "gateway/parallel.png", + "groups" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "InclusiveGateway", + "title" : "包含网关", + "description" : "满足条件的包含性的网关", + "view" : "\n\n \n \n \n \n\n \n \n \n\t\n\t\n \n\n", + "icon" : "gateway/inclusive.png", + "groups" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EventGateway", + "title" : "事件网关", + "description" : "事件网关", + "view" : "\n\n \n \n \n \n \n \t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n \t\n\t\n\n", + "icon" : "gateway/eventbased.png", + "groups" : [ "网关" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "BoundaryErrorEvent", + "title" : "边界出错事件", + "description" : "捕获BPMN的错误的边界事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon" : "catching/error.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryTimerEvent", + "title" : "边界的定时事件", + "description" : "A boundary event with a timer trigger", + "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" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage", "timerenddatedefinitionpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundarySignalEvent", + "title" : "边界信号事件", + "description" : "带有事件触发器的边界事件", + "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" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "signalrefpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryMessageEvent", + "title" : "边界消息事件", + "description" : "带有消息触发器的边界事件", + "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" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "messagerefpackage", "cancelactivitypackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryCancelEvent", + "title" : "边界取消事件", + "description" : "边界取消事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n \n\t\n \n", + "icon" : "catching/cancel.png", + "groups" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, { + "type" : "node", + "id" : "BoundaryCompensationEvent", + "title" : "边界修正事件", + "description" : "边界修正事件", + "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" : [ "边界事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary", "all" ] + }, { + "type" : "node", + "id" : "CatchTimerEvent", + "title" : "捕捉中间定时器的事件", + "description" : "带有捕捉定时器触发的事件", + "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" : [ "中间捕获事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "CatchSignalEvent", + "title" : "中间信号捕获事件", + "description" : "信号触发的中间捕获事件", + "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" : [ "中间捕获事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "CatchMessageEvent", + "title" : "中间消息捕获事件", + "description" : "消息触发的中间捕获事件", + "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" : [ "中间捕获事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] + }, { + "type" : "node", + "id" : "ThrowNoneEvent", + "title" : "无触发的中间事件", + "description" : "无特定触发器的中间事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "throwing/none.png", + "groups" : [ "中间捕获事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "ThrowSignalEvent", + "title" : "抛出信号的中间事件", + "description" : "通过信号触发器的中间事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "throwing/signal.png", + "groups" : [ "中间捕获事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndNoneEvent", + "title" : "结束事件", + "description" : "无特定触发器的结束事件", + "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon" : "endevent/none.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndErrorEvent", + "title" : "结束事件(出错)", + "description" : "抛出错误的结束事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "endevent/error.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndCancelEvent", + "title" : "结束事件(取消)", + "description" : "取消的结束事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon" : "endevent/cancel.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "EndTerminateEvent", + "title" : "结束事件(终止)", + "description" : "终止类型的结束事件", + "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon" : "endevent/terminate.png", + "groups" : [ "结束事件" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "EndEventsMorph", "sequence_end", "all" ] + }, { + "type" : "node", + "id" : "Pool", + "title" : "泳道", + "description" : "用来结构化流程定义的泳道", + "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" ], + "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" : "顺序跳转线", + "description" : "顺序跳转线定义了不同活动节点执行的顺序", + "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" : [ "连接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "conditionsequenceflowpackage", "executionlistenerspackage", "defaultflowpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "MessageFlow", + "title" : "消息跳转线", + "description" : "用来连接不同泳道中的元素的消息跳转", + "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" : [ "连接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "Association", + "title" : "关联说明", + "description" : "为元素关联文本说明", + "view" : "\r\n\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon" : "connector/association.undirected.png", + "groups" : [ "连接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "edge", + "id" : "DataAssociation", + "title" : "数据关联说明", + "description" : "为活动节点关联数据元素", + "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" : [ "连接对象" ], + "layout" : [ { + "type" : "layout.bpmn2_0.sequenceflow" + } ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "ConnectingObjectsMorph", "all" ] + }, { + "type" : "node", + "id" : "TextAnnotation", + "title" : "文本关联", + "description" : "关联一组元素进行文本描述", + "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon" : "artifact/text.annotation.png", + "groups" : [ "文档注释" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "textpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "all" ] + }, { + "type" : "node", + "id" : "DataStore", + "title" : "数据存储", + "description" : "引用一数据存储", + "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" : [ "文档注释" ], + "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], + "hiddenPropertyPackages" : [ ], + "roles" : [ "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" : "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" ] + } ] + } +} \ No newline at end of file diff --git a/mdp-lcode/src/test/java/com/mdp/WebSecurityConfig.java b/mdp-lcode/src/test/java/com/mdp/WebSecurityConfig.java index 5175a55..02153f8 100644 --- a/mdp-lcode/src/test/java/com/mdp/WebSecurityConfig.java +++ b/mdp-lcode/src/test/java/com/mdp/WebSecurityConfig.java @@ -32,6 +32,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().antMatchers("/actuator/**","/**/safe/app/auth**", "/**/sys/userTpaInvite/checkInviteId", + "/**/login/token", "/**/sys/user/noauth/detail", "/**/sys/userFans/fansCpd", "/**/sys/userSvr/list", diff --git a/pom.xml b/pom.xml index 3211973..0856c2c 100644 --- a/pom.xml +++ b/pom.xml @@ -14,6 +14,7 @@ mdp-lcode mdp-lcode-bootstrap + mdp-lcode-cloud-bootstrap @@ -30,6 +31,11 @@ mdp-lcode-bootstrap ${mdp.version} + + com.mdp + mdp-lcode-cloud-bootstrap + ${mdp.version} + 低代码系统