工程初始化

master
gk 2022-02-19 20:28:01 +08:00
parent e4acd1f9b3
commit 045d71322d
3472 changed files with 1200347 additions and 0 deletions

10
.classpath Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="src/main/webapp/WEB-INF/classes"/>
</classpath>

61
.project Normal file
View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>kdayun-root</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>

14
.tern-project Normal file
View File

@ -0,0 +1,14 @@
{
"plugins": {
"guess-types": {
},
"outline": {
}
},
"libs": [
"ecma5",
"browser"
]
}

19
build.bat Normal file
View File

@ -0,0 +1,19 @@
@echo off
cd /d %~dp0
set JAVA_HOME=""
set mavenpath=""
call %~dp0modules\kdayun-core\build.bat
call %~dp0modules\kdayun-manager\build.bat
call %~dp0modules\kdayun-admin\build.bat
call %~dp0modules\kdayun-report\build.bat
call %~dp0modules\kdayun-baidu\build.bat
call %~dp0modules\kdayun-wechat\build.bat
call %~dp0modules\kdayun-wecom\build.bat
call %~dp0modules\kdayun-app\build.bat
pause

2
dependsTree.bat Normal file
View File

@ -0,0 +1,2 @@
H:\M\BS\maven\apache-maven-3.2.5\bin\mvn.bat dependency:tree
pause

12
mavendeploy.bat Normal file
View File

@ -0,0 +1,12 @@
@echo off
cd /d %~dp0
set JAVA_HOME=""
set mavenpath=""
call %~dp0modules\kdayun-core\mavendeploy.bat
call %~dp0modules\kdayun-manager\mavendeploy.bat
call %~dp0modules\kdayun-admin\mavendeploy.bat
call %~dp0modules\kdayun-report\mavendeploy.bat
pause

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry combineaccessrules="false" kind="src" path="/kdayun-admin"/>
<classpathentry combineaccessrules="false" kind="src" path="/kdayun-core"/>
<classpathentry combineaccessrules="false" kind="src" path="/kdayun-manager"/>
<classpathentry combineaccessrules="false" kind="src" path="/kdayun-report"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

1
modules/kdayun-app/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/target/

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-module
type="WEB"
name="kdayun"
id="myeclipse.1513761110848"
context-root="/kdayun"
j2ee-spec="6.0"
archive="kdayun.war">
<attributes>
<attribute name="webrootdir" value="WebRoot" />
</attributes>
</project-module>

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>kdayun-app</name>
<comment></comment>
<projects>
<project>kdayun-report</project>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.springframework.springbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,14 @@
{
"plugins": {
"guess-types": {
},
"outline": {
}
},
"libs": [
"ecma5",
"browser"
]
}

View File

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -0,0 +1,6 @@
cd /d %~dp0
set JAVA_HOME="D:\BS\Server\tomcat8\jdk"
set mavenpath=D:\<5C><><EFBFBD><EFBFBD>\Tools\maven\apache-maven-3.2.5-bin\apache-maven-3.2.5\bin\mvn
call jar.bat
pause

View File

@ -0,0 +1,5 @@
cd /d %~dp0
mvn source:jar -Dmaven.test.skip=true

View File

@ -0,0 +1,3 @@
cd /d %~dp0
mvn clean package -Dmaven.test.skip=true

229
modules/kdayun-app/pom.xml Normal file
View File

@ -0,0 +1,229 @@
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<parent>
<artifactId>kdayun-root</artifactId>
<groupId>com.kdayun</groupId>
<version>5.0.0</version>
<relativePath>../../</relativePath>
</parent>
<version>${base.version}</version>
<artifactId>kdayun-app</artifactId>
<name>kdayun-app</name>
<url>http://www.kdayun.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<deployRoot>${project.build.directory}/deploy/${base.version}/</deployRoot>
</properties>
<dependencies>
<dependency>
<groupId>com.kdayun</groupId>
<artifactId>kdayun-manager</artifactId>
<version>${base.version}</version>
</dependency>
<dependency>
<groupId>com.kdayun</groupId>
<artifactId>kdayun-admin</artifactId>
<version>${base.version}</version>
</dependency>
<dependency>
<groupId>com.kdayun</groupId>
<artifactId>kdayun-core</artifactId>
<version>${base.version}</version>
</dependency>
<dependency>
<groupId>com.kdayun</groupId>
<artifactId>kdayun-report</artifactId>
<version>${base.version}</version>
</dependency>
<dependency>
<groupId>com.kdayun</groupId>
<artifactId>kdayun-wechat</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.kdayun</groupId>
<artifactId>kdayun-wecom</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.kdayun</groupId>
<artifactId>kdayun-baidu</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.github.bingoohuang</groupId>
<artifactId>patchca</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>
<build>
<defaultGoal>compile</defaultGoal>
<finalName>kdayun-app</finalName>
<plugins>
<!--定义项目的编译环境-->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--maven的测试用例插件建议跳过。-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<!--这个是springboot的默认编译插件他默认会把所有的文件打包成一个jar-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.ruoyi.RuoYiApplication</mainClass>
<fork>true</fork>
<addResources>true</addResources>
<outputDirectory>${project.build.directory}/jar</outputDirectory>
</configuration>
</plugin>
<!-- 打JAR包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!-- 将静态资源排除出jar包 -->
<excludes>
<exclude>*.*</exclude>
<exclude>static/**</exclude>
<exclude>view/**</exclude>
<exclude>dataimport/**</exclude>
<exclude>scriptutil/**</exclude>
<exclude>update/**</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!-- MANIFEST.MF 中 Class-Path 加入前缀 -->
<classpathPrefix>lib/</classpathPrefix>
<!-- jar包不包含唯一版本标识 -->
<useUniqueVersions>false</useUniqueVersions>
<!-- 指定启动类的包路径 -->
<mainClass>com.kdayun.MainApplication</mainClass>
</manifest>
<manifestEntries>
<!--MANIFEST.MF 中 Class-Path 加入资源文件目录 -->
<Class-Path>config/</Class-Path>
</manifestEntries>
</archive>
<!-- 指定打出的jar包路径 -->
<outputDirectory>${deployRoot}</outputDirectory>
</configuration>
</plugin>
<!-- 该插件的作用是用于复制依赖的jar包到指定的文件夹里 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${deployRoot}/lib/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 该插件的作用是用于复制指定的文件 -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution> <!-- 复制配置文件 -->
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<!-- 指定静态资源的路径 -->
<directory>src/main/resources</directory>
<excludes>
<exclude>run.bat</exclude>
</excludes>
<!-- 指定需要复制的文件 -->
<includes>
<include>*.*</include>
<include>static/**</include>
<include>view/**</include>
<include>dataimport/**</include>
<include>scriptutil/**</include>
<include>update/**</include>
</includes>
</resource>
</resources>
<outputDirectory>${deployRoot}/config</outputDirectory>
</configuration>
</execution>
<execution>
<id>copy-run-bat</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<!-- 指定静态资源的路径 -->
<directory>src/main/resources</directory>
<!-- 指定需要复制的文件 -->
<includes>
<include>run.bat</include>
<include>run</include>
<include>stop</include>
</includes>
</resource>
</resources>
<outputDirectory>${deployRoot}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>jdk-${jdk.version}</id>
<!-- 另外一种激活方式 -->
<activation>
<activeByDefault>true</activeByDefault>
<jdk>${jdk.version}</jdk>
</activation>
<properties>
<maven.compiler.source>${jdk.version}</maven.compiler.source>
<maven.compiler.target>${jdk.version}</maven.compiler.target>
<maven.compiler.compilerVersion>${jdk.version}</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,32 @@
package com.kdayun;
import java.nio.charset.Charset;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import com.kdayun.z1.core.framework.ApplicationContextHolder;
@ServletComponentScan
@ComponentScan(basePackages = { "com.kdayun.admin", "com.kdayun.boot", "com.kdayun.z1", "com.kdayun.manager",
"com.kdayun.report", "com.kdayun.baidu", "com.kdayun.wecom", "com.kdayun.wechat" })
@SpringBootApplication
@MapperScan(basePackages = { "com.kdayun.*.mapper" })
public class MainApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(MainApplication.class,
ApplicationContextHolder.class);
System.out.println("file.encoding:" + System.getProperty("file.encoding"));
System.out.println("defaultCharset:" + Charset.defaultCharset());
springApplication.run(args);
}
}

View File

@ -0,0 +1,4 @@
baidu:
appid: 25392062
appkey: 90Y67SAwWtfj0GKqGLtD0LEp
secretkey: o1f5YAQprZMQluTnzacV1iCqsukRhKWm

View File

@ -0,0 +1,18 @@
spring:
cache:
# 指定缓存类型: ehcache ,redis
type: ehcache
# ehcache 的配置
ehcache:
config: "classpath:ehcache.xml"
# redis 的配置
redis:
host: 127.0.0.1
port: 6379
timeout: 5000
jedis:
pool:
max-idle: 8
min-idle: 0
max-active: 8
max-wait: -1

View File

@ -0,0 +1,32 @@
#############云服务配置################################
eureka:
client:
service-url:
defaultZone: http://localhost:9001/eureka
info:
app.name: 快搭科技(上海)有限公司-云应用
company.name: www.kdayun.com
build.artifactId: $project.artifactId$
build.version: $project.version$
###########oauth2#############
#oauth2 服务端端地址 注意格式是带http的哦
#oauth2-server: http://127.0.0.1:8082/kdayun-cloud-sso
#security:
# oauth2:
# sso:
# loginPath: ${oauth2-server}/tologin # 登录路径
# client:
# 在oauth2 服务端注册的client-id
# clientId: 77A8A8CE238B408382F5F8F7D4E90774
# 在oauth2 服务端注册的secret
# clientSecret: 6F28F088A3EF456FB069CF95477A2CAD
# user-authorization-uri: ${oauth2-server}/oauth/authorize
# access-token-uri: ${oauth2-server}/oauth/token
# logout: ${oauth2-server}/oauth/logout
# scope: ALL
# resource:
# 用户信息
# user-info-uri: ${oauth2-server}/user
# token-info-uri: ${oauth2-server}/oauth/check_token

View File

@ -0,0 +1,25 @@
spring:
datasource:
name: druidDataSource
type: com.alibaba.druid.pool.DruidDataSource
username: zl
password: zl123456zl
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3706/dev?useSSL=true&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
# SqlServer (SqlServer DB)
# driver-class-name: net.sourceforge.jtds.jdbc.Driver
# url: jdbc:jtds:sqlserver://ZL_SERVER_D:1433/qjb
# validationQuery: SELECT 1
# 达梦¦(DM DB)
# driver-class-name: dm.jdbc.driver.DmDriver
# url: jdbc:jdbc:dm://127.0.0.1:5236/DMSERVER
# validationQuery: SELECT 1
# 金仓 (jc DB)
# driver-class-name=com.kingbase8.Driver
# url=jdbc\:kingbase8\://127.0.0.1\:54321/QJB
# validationQuery=SELECT 1
# #Oracle (Devlopment DB)
#username: ZL
#password: zl123456zl
#driver-class-name: oracle.jdbc.OracleDriver
#url: jdbc:oracle:thin:@192.168.1.5:1521:XE

View File

@ -0,0 +1,34 @@
spring:
datasource:
druid:
initialSize: 20
minIdle: 20
maxActive: 2000
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,机构是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,机构是毫秒
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 30
# 配置监控统计拦截的filters去掉后监控界面sql无法统计wall用于防火墙
# filters: stat
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
# connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=3000
#使用非公平锁
useUnfairLock: true
removeAbandoned: true
removeAbandonedTimeoutMillis: 300000
logAbandoned: true
keepAlive: true
filter:
commons-log:
#data-source-log-enabled: true
statement-log-enabled: true
statement-executable-sql-log-enable: true

View File

@ -0,0 +1,22 @@
spring:
freemarker:
allow-request-override: false
allow-session-override: false
cache: false
charset: UTF-8
check-template-location: true
content-type: text/html
enabled: true
expose-request-attributes: false
expose-session-attributes: false
expose-spring-macro-helpers: true
prefer-file-system-access: true
suffix: .ftl
template-loader-path: classpath:/view/
settings.template_update_delay: 0
settings.default_encoding: UTF-8
settings.classic_compatible: true
settings.date_format: yyyy-MM-dd
settings.time_format: HH:mm:ss
settings.datetime_format: yyyy-MM-dd HH:mm:ss
request-context-attribute : request

View File

@ -0,0 +1,5 @@
logging:
config: "classpath:log4j2.xml"
formatMsgNoLookups: true
level:
org.springframework: info

View File

@ -0,0 +1,5 @@
########################## mybatis ##########################
mybatis:
#config-location: "classpath: spring-mybatis.xml"
mapper-locations: "classpath: com/kdayun/**/*Mapper.xml"
type-handlers-package: com.kdayun.z1.core.mybatis.typehandle

View File

@ -0,0 +1,10 @@
server:
port: 20003
servlet:
context-path: /kdayun
session:
cookie:
name: cloud
tomcat:
basedir: /tmp/tomcat
uri-encoding: utf-8

View File

@ -0,0 +1,7 @@
#文件的上传地址
upload-path: d:/upload/
spring:
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB

View File

@ -0,0 +1,13 @@
spring:
profiles:
#引用多个application-开头的yml文件 多个以逗号隔开
include: db,logger,cache,upload,freemarker,druid,mybatis,baidu,server,cloud
devtools:
restart:
ebabled: false
main:
allow-bean-definition-overriding: true
application:
name: 快搭科技(上海)有限公司-应用

View File

@ -0,0 +1,41 @@
/**
*
*/
import groovy.ui.SystemOutputInterceptor;
import com.kdayun.z1.core.base.RetVo;
import com.kdayun.z1.core.base.RetVo.retstate;
/**
* sum
*
* @param args
* @return
* @author qjb
* @date 2019128 1:43:55
*/
public RetVo checkDataIsEqual(Object[] args) {
if (args == null || args.length == 0) {
return RetVo.getNewInstance(retstate.ERROR, "", null);
}
double tempvalue = 0;
for (Integer i = 0; i < args.length - 1; i++) {
Object obj = args[i];
try {
tempvalue += Double.valueOf(obj.toString());
} catch (Exception e) {
return RetVo.getNewInstance(retstate.ERROR, "", null);
}
}
double totalSum;
try {
totalSum = Double.valueOf(args[args.length - 1].toString());
} catch (Exception e) {
return RetVo.getNewInstance(retstate.ERROR, "", null);
}
if (tempvalue == totalSum) {
return RetVo.getNewInstance(retstate.OK, "", null);
}
return RetVo.getNewInstance(retstate.ERROR, "", null);
}

View File

@ -0,0 +1,87 @@
/**
*
*/
import groovy.ui.SystemOutputInterceptor;
import com.kdayun.z1.core.context.Context;
/**
* orgid
*
* @param
* @return orgid
* @author qjb
* @date 2019130 5:55:55
*/
public String getOrgid() {
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgId();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurOrgName() {
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgName();
}
/**
* id
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurUserid() {
return Context.getInstance().securityService.getCurrentUser().getId();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurUserName() {
return Context.getInstance().securityService.getCurrentUser().getName();
}
/**
* id
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurDeptid() {
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptId();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurDeptName() {
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptName();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public Date getCurDate() {
return new Date();
}

View File

@ -0,0 +1,96 @@
/**
*
*/
import groovy.ui.SystemOutputInterceptor;
import com.kdayun.z1.core.context.Context;
import com.kdayun.z1.core.base.RetVo;
/**
* orgid
*
* @param
* @return orgid
* @author qjb
* @date 2019130 5:55:55
*/
public String getOrgid() {
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgId();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurOrgName() {
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgName();
}
/**
* id
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurUserid() {
return Context.getInstance().securityService.getCurrentUser().getId();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurUserName() {
return Context.getInstance().securityService.getCurrentUser().getName();
}
/**
* id
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurDeptid() {
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptId();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public String getCurDeptName() {
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptName();
}
/**
*
*
* @return
* @author qjb
* @date 2019219 9:11:19
*/
public Date getCurDate() {
return new Date();
}
public RetVo checkDataIsEqual(Object[] args) {
System.out.println("11");
}
public RetVo CHECKXX(List<Map<String, Object>> XX,List<String> AA) {
System.out.println("233");
}

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"
xmlns:b3mn="http://b3mn.org/2007/b3mn"
xmlns:ext="http://b3mn.org/2007/ext"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:atom="http://b3mn.org/2007/atom+xhtml">
<head profile="http://purl.org/NET/erdf/profile">
<title>Activiti BPM suite</title>
<!-- libraries -->
<script src="../static/workflow/libs/prototype-1.5.1.js" type="text/javascript" />
<script src="../static/workflow/libs/path_parser.js" type="text/javascript" />
<script src="../static/workflow/libs/ext-2.0.2/adapter/ext/ext-base.js" type="text/javascript" />
<script src="../static/workflow/libs/ext-2.0.2/ext-all-debug.js" type="text/javascript" />
<script src="../static/workflow/libs/ext-2.0.2/color-field.js" type="text/javascript" />
<style media="screen" type="text/css">
@import url("../static/workflow/libs/ext-2.0.2/resources/css/ext-all.css");
@import url("../static/workflow/libs/ext-2.0.2/resources/css/xtheme-darkgray.css");
</style>
<link rel="Stylesheet" media="screen" href="../static/workflow/editor/css/theme_norm.css" type="text/css" />
<link rel="Stylesheet" media="screen" href="../static/workflow/editor/css/theme_norm_signavio.css" type="text/css" />
<link rel="Stylesheet" media="screen" href="../static/workflow/explorer/src/css/xtheme-smoky.css" type="text/css" />
<link rel="Stylesheet" media="screen" href="../static/workflow/explorer/src/css/custom-style.css" type="text/css" />
<!-- oryx editor -->
<!-- language files -->
<script src="../static/workflow/editor/i18n/translation_ch.js" type="text/javascript" />
<script src="../static/workflow/editor/i18n/translation_signavio_ch.js" type="text/javascript" />
<script src="../static/workflow/libs/utils.js" type="text/javascript" />
<script src="../static/workflow/editor/oryx.debug.js" type="text/javascript" />
<!-- erdf schemas -->
<script src="../static/libs/ace/ace.js" type="text/javascript" />
<script src="../static/libs/ace/ext-language_tools.js"></script>
<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
<link rel="schema.dcTerms" href="http://purl.org/dc/terms/" />
<link rel="schema.b3mn" href="http://b3mn.org" />
<link rel="schema.oryx" href="http://oryx-editor.org/" />
<link rel="schema.raziel" href="http://raziel.org/" />
</head>
<body style="overflow:hidden;">
</body>
</html>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<ehcache updateCheck="true" name="MyEhcache-Shiro">
<!--
EHCache 配置文件解释:
name Cache的名称必须是唯一的(ehcache会把这个cache放到HashMap里)
maxElementsInMemory 内存中保持的对象数量
maxElementsOnDisk DiskStore中保持的对象数量默认值为0表示不限制
eternal 是否是永恒数据,如果是,则它的超时设置会被忽略
overflowToDisk 如果内存中数据数量超过maxElementsInMemory限制是否要缓存到磁盘上
timeToIdleSeconds 对象空闲时间指对象在多长时间没有被访问就会失效。只对eternal为false的有效。默认值0表示一直可以访问
timeToLiveSeconds 对象存活时间指对象从创建到失效所需要的时间。只对eternal为false的有效。默认值0表示一直可以访问
diskPersistent 是否在磁盘上持久化。指重启jvm后数据是否有效。默认为false
diskExpiryThreadIntervalSeconds 对象检测线程运行时间间隔。标识对象状态的线程多长时间运行一次
diskSpoolBufferSizeMB DiskStore使用的磁盘大小默认值30MB。每个cache使用各自的DiskStore
memoryStoreEvictionPolicy 如果内存中数据超过内存限制向磁盘缓存时的策略。默认值LRU可选FIFO、LFU
-->
<!-- 默认的缓存设置,如果没有设置缓存的名称就使用这个策略 -->
<defaultCache
maxElementsInMemory="10000"
maxElementsOnDisk="0"
eternal="false"
overflowToDisk="true"
diskPersistent="false"
timeToIdleSeconds="20"
timeToLiveSeconds="0"
diskSpoolBufferSizeMB="50"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU"
/>
<cache name="tokenCache"
maxEntriesLocalHeap="2000"
maxElementsInMemory="50000"
eternal="true"
overflowToDisk="true"
statistics="true"
diskPersistent="true"
memoryStoreEvictionPolicy="LFU">
</cache>
</ehcache>

View File

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<ehcache updateCheck="true" name="MyEhcache">
<!--
EHCache 配置文件解释:
name Cache的名称必须是唯一的(ehcache会把这个cache放到HashMap里)
maxElementsInMemory 内存中保持的对象数量
maxElementsOnDisk DiskStore中保持的对象数量默认值为0表示不限制
eternal 是否是永恒数据,如果是,则它的超时设置会被忽略
overflowToDisk 如果内存中数据数量超过maxElementsInMemory限制是否要缓存到磁盘上
timeToIdleSeconds 对象空闲时间指对象在多长时间没有被访问就会失效。只对eternal为false的有效。默认值0表示一直可以访问
timeToLiveSeconds 对象存活时间指对象从创建到失效所需要的时间。只对eternal为false的有效。默认值0表示一直可以访问
diskPersistent 是否在磁盘上持久化。指重启jvm后数据是否有效。默认为false
diskExpiryThreadIntervalSeconds 对象检测线程运行时间间隔。标识对象状态的线程多长时间运行一次
diskSpoolBufferSizeMB DiskStore使用的磁盘大小默认值30MB。每个cache使用各自的DiskStore
memoryStoreEvictionPolicy 如果内存中数据超过内存限制向磁盘缓存时的策略。默认值LRU可选FIFO、LFU
-->
<!-- 默认的缓存设置,如果没有设置缓存的名称就使用这个策略 -->
<defaultCache
maxElementsInMemory="10000"
maxElementsOnDisk="0"
eternal="false"
overflowToDisk="true"
diskPersistent="false"
timeToIdleSeconds="20"
timeToLiveSeconds="0"
diskSpoolBufferSizeMB="50"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU"
/>
<!-- 登录记录缓存 过期时间一个小时 -->
<cache name="shiro-activeSessionCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="true"
statistics="true"
diskPersistent="faLse"
memoryStoreEvictionPolicy = "LFU"
>
</cache>
<!-- 表模型的缓存 -->
<cache name="tableCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<!-- 字典的缓存 -->
<cache name="dictionaryCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="RightResCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="RoleCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="TableCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="configCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="userPdataCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="tokenCache"
maxEntriesLocalHeap="2000"
maxElementsInMemory="50000"
eternal="true"
overflowToDisk="true"
statistics="true"
diskPersistent="true"
memoryStoreEvictionPolicy="LFU">
</cache>
<cache name="ModelDesignCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="DCCache"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
<cache name="repeatPostIds"
maxEntriesLocalHeap="2000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="0"
overflowToDisk="false"
statistics="true">
</cache>
</ehcache>

View File

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDbTCCAlWgAwIBAgIEJ/YFQjANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJj
bjEPMA0GA1UECBMGc2hhbmdoMQ8wDQYDVQQHEwZzaGFuZ2gxDzANBgNVBAoTBmtk
YXl1bjETMBEGA1UECxMKa2RheXVuIGx0ZDEPMA0GA1UEAxMGa2RheXVuMCAXDTIx
MTExNjA4MTA0M1oYDzIxMjAwNjEwMDgxMDQzWjBmMQswCQYDVQQGEwJjbjEPMA0G
A1UECBMGc2hhbmdoMQ8wDQYDVQQHEwZzaGFuZ2gxDzANBgNVBAoTBmtkYXl1bjET
MBEGA1UECxMKa2RheXVuIGx0ZDEPMA0GA1UEAxMGa2RheXVuMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0p3ATcmNdqHKkQhxVv+7qOSKT8OOt/ORjyHK
+SWVdb0eoeKOCo0Ij6rmkY+Y1oZdutIo7z5j3CBQBYkzc2tHnEiMNbliojerqr4X
ynzbiEgfLi2NtPLvDklZpBxeL4mcOLQZqjVwG22K1Szqt9WXejV86nEfj8T9plwN
r3ui7i1E6+v7PYPfGQOX7EqCfDEKdxgLxfXlgBtx7P6Kce8TusQvFk3LF2KY9lPE
Di0dR9Tn7Rp1q4U/D0GlWg4HnbItVxNZktkq591X/XbNH5rAke2qgAXZU1i9h4XR
9kaSlme7IQT5dH+Tvdn9JCwY1xDitdRVif+cagMjGVlT/hyIpwIDAQABoyEwHzAd
BgNVHQ4EFgQUdWmlP71NbBuDJtJokS8E3FXmJLUwDQYJKoZIhvcNAQELBQADggEB
ADMLj/YLs13d7Wl18iuICalTqUkY4vNlc4tEfO8jzbvF+7NODCEKIfXMgO+sGwOe
3b4wdfHVQKWnCb19/brDrp3OzpLrk/jRHyn4kpvJe09Pa+yD4qNBjIwmEdNzhhoy
lZV3gq9oBIfUCH6wMuKOOLiKLA2nukRAG8taKXm5TZPgCWAWeIQgJwRo6udyHT6a
aD2LuA2plnoh4WOlDMIoufZiZEM4/7oioitENEf0mXKZqm5vx5+95uU3dMBezTGq
dbM9rhANvgtQHfxEYrjzX//Xm+8oxsmJKjdImZRsEp7uJkxVSzVPVYL1IU0PPiDC
bRqXeXRiyCxi1CNPnk3Wrhk=
-----END CERTIFICATE-----

View File

@ -0,0 +1 @@
mW/6dS649/IeCU0Y+8TGikcgSNM7S4CGGh+zJ7KmqT/6JYpKUyxCI4vesI4TTw8erkaMyLlxic48VAq3vwFeTgOe1JXF/ihLPVwEM0aJtg3n+ijJXLQ9/XbZlJYgoS2FYrscEZFK1ESIORgSs/ciBhh1Hcvil0Whq2GY3PrED7gh289IOCtyw/vB0VmwyzQ5/7atcfFc5R1A4wlhoAafzD6NIrT4yp91Ow/b6W9DBbJUtkNAV0RKEuhCeGipdIn3LNOlqzQv78sRFbKHF97Q6wOSbTnhUqHNgwl/MADor1u1tPFA+uLfDpKMroXiB87RKb641pX7bzCamkgtEf0CGGGq3RewjT176NgZyCOFtqmwSegdjtvwtVHiAJaPX6pe1NpU/RYrDR5YL7wUiXLsU3a+SRG8nN3nb6pgAOOzy1NK2J6dM3peaMalFhvBWKuM4HYhIs/T24+GKDaRV4/wEF20UAzi8u61YkSowrPM2KsHGDFQQh08uhPMWpTyLc2ncErmCF/S9NA6mo3YY5mQaKJ10vSM9BrlgONxdxThqDBK+12e365onnD4SlgQGFAlEwI1D6ex5UVY5aieAW7cEtgBg+jKr/B/+QphlCWZ/Mu//33+MrX5sN96xCqX6OoKWupSx7z7Iha1GKKzp3vsJQ+JplfHHgjkn+qR0vrZcVCTPdskASVAyrH24VorUqlDnSLEPXnhVu2dBUdIQUW0XSvMxR4nxnRgXcspCpoKAgOOozyljfyP7GV95RkIIVKj+l3atiUaBRs3Gw6d/eNvBAjKUr9HKckbZrjlKNcYV1J/6kFzvJUW7XhmiLLMNoOM9UqsnbRR2YFE176miGS/5XJQBbVYbi6n3KhWC9QWjYiM1eNgf8HP7qcwp/9xE1KJWiqvRly7aQ2ZWH2bfWEmkbMGwSMmrRd0KevxIgTshcNX76t6L5w11LegJxSmo1OWfzBGA+xIp1Cyl0TJgnCCy73PX3IfZ3E04PSud/m8cycMYBpaRwKb3xcp/givoXCH

View File

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 自动检测配置文件的时间间隔每60检测log4j2.xml配置文件有变化会重新配置自己 -->
<!-- ALL,TRACE, DEBUG, INFO, WARN, ERROR ,FATAL,OFF -->
<configuration monitorInterval="60" packages="com.kdayun.boot.configuration">
<!-- 定义变量 -->
<properties>
<!-- 日志存放目录 本来是可以读取${web:rootDir}-->
<property name="LOG_HOME">./logs</property>
<!-- <property name="LOG_FORMAT">%d{HH:mm:ss.SSS} [%-5level] %msg%xEx%n %C %M</property> -->
<property name="LOG_FORMAT">%d{HH:mm:ss.SSS} [%-5level] %msg%xEx%n</property>
</properties>
<!--先定义所有的appender -->
<appenders>
<!--这个输出控制台的配置 -->
<Console name="console" target="SYSTEM_OUT">
<!-- 输出的日志格式 -->
<PatternLayout pattern="${LOG_FORMAT}"/>
</Console>
<Log4j2ConsoleAppender name="Log4j2ConsoleAppender" cacheLogCount="500">
<PatternLayout pattern="${LOG_FORMAT}"/>
</Log4j2ConsoleAppender>
<Async name="AsyncCONSOLE">
<AppenderRef ref="console"/>
</Async>
<!-- 正常日志文件 -->
<RollingFile name="log" fileName="${LOG_HOME}/log.log" filePattern="${LOG_HOME}/log-%d{yyyy-MM-dd}.zip" immediateFlush="true">
<Filters>
<RegexFilter regex="slow sql[\s\S]*" onMatch="DENY" onMismatch="NEUTRAL"/>
<!-- 只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch可选ACCEPT, DENY, NEUTRAL
接受使用NEUTRAL中立被第一个过滤器接受的日志信息会继续用后面的过滤器进行过滤只有符合所有过滤器条件的日志信息才会被最终写入日志文件
<ThresholdFilter level="DEBUG" onMatch="NEUTRAL" onMismatch="DENY"/>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="DENY"/>
-->
<ThresholdFilter level="DEBUG" onMatch="NEUTRAL" onMismatch="DENY"/>
</Filters>
<!-- 输出的日志格式 -->
<PatternLayout pattern="${LOG_FORMAT}"/>
<Policies>
<OnStartupTriggeringPolicy/>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<!-- 最多备份30天以内的日志此处为策略限制Delete中可以按自己需要用正则表达式编写 -->
<!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量
并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->
<DefaultRolloverStrategy max="30"/>
</RollingFile>
<!-- 输出sql语句到sqllog开头的日志文件 -->
<RollingFile name="sqllog" fileName="${LOG_HOME}/sqllog.log" filePattern="${LOG_HOME}/log-%d{yyyy-MM-dd}.zip" immediateFlush="true">
<Filters>
<!-- 只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch可选ACCEPT, DENY, NEUTRAL
接受使用NEUTRAL中立被第一个过滤器接受的日志信息会继续用后面的过滤器进行过滤只有符合所有过滤器条件的日志信息才会被最终写入日志文件
<ThresholdFilter level="DEBUG" onMatch="NEUTRAL" onMismatch="DENY"/>
-->
<RegexFilter regex="==> Preparing:[\s\S]*|==> Parameters:[\s\S]*" onMatch="NEUTRAL" onMismatch="DENY"/>
</Filters>
<!-- 输出的日志格式 -->
<PatternLayout pattern="${LOG_FORMAT}"/>
<Policies>
<OnStartupTriggeringPolicy/>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<!-- 最多备份30天以内的日志此处为策略限制Delete中可以按自己需要用正则表达式编写 -->
<!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量
并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->
<DefaultRolloverStrategy max="30"/>
</RollingFile>
<!-- 错误的日志文件 -->
<RollingFile name="error" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd}.zip" immediateFlush="true">
<Filters>
<!-- 只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch 可选ACCEPT, DENY, NEUTRAL
接受使用NEUTRAL中立被第一个过滤器接受的日志信息会继续用后面的过滤器进行过滤只有符合所有过滤器条件的日志信息才会被最终写入日志文件
-->
<ThresholdFilter level="ERROR" onMatch="NEUTRAL" onMismatch="DENY"/>
<RegexFilter regex="slow sql[\s\S]*" onMatch="DENY" onMismatch="DENY"/>
</Filters>
<!-- 输出的日志格式 -->
<PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} [%-5level] %msg%xEx%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量并没有发现是网上流传的是最多保存多少个文件的限制也或许是我写的有问题 -->
<DefaultRolloverStrategy max="30"/>
</RollingFile>
<!--慢sql的日志文件-->
<RollingFile name="slowSql" fileName="${LOG_HOME}/slowsql.log" filePattern="${LOG_HOME}/slowsql-%d{yyyy-MM-dd}.zip" immediateFlush="true">
<!-- 只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch
接受使用NEUTRAL中立被第一个过滤器接受的日志信息会继续用后面的过滤器进行过滤只有符合所有过滤器条件的日志信息才会被最终写入日志文件
-->
<Filters>
<RegexFilter regex="slow sql[\s\S]*" onMatch="NEUTRAL" onMismatch="DENY"/>
</Filters>
<!-- 输出的日志格式 -->
<PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} [%-5level] %msg%xEx%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量并没有发现是网上流传的是最多保存多少个文件的限制也或许是我写的有问题 -->
<DefaultRolloverStrategy max="30"/>
</RollingFile>
</appenders>
<!--然后定义logger只有定义了logger并引入的appenderappender才会生效 -->
<loggers>
<!--建立一个默认的root的logger -->
<root level="DEBUG">
<appender-ref ref="Log4j2ConsoleAppender"/>
<appender-ref ref="AsyncCONSOLE"/>
<!--<appender-ref ref="console"/>-->
<appender-ref ref="error"/>
<appender-ref ref="log"/>
<!-- <appender-ref ref="sqllog"/> -->
<appender-ref ref="slowSql"/>
</root>
<logger name="org.springframework" level="INFO"/>
<logger name="net.sf.ehcache" level="ERROR"/>
<logger name="com.alibaba.druid" level="ERROR"/>
<logger name="freemarker" level="ERROR"/>
<!-- 只输出错误以上org.quartz调试信息 -->
<logger name="org.quartz" level="ERROR" />
<!-- 只输出错误以上mybatis -->
<logger name="org.mybatis" level="ERROR"/>
<!-- 只输出错误以上的信息 -->
<logger name="org.apache.shiro" level="ERROR"/>
<!-- 显示sql语句-->
<logger name="druid.sql.Statement" level="ERROR" additivity="false">
<appender-ref ref="console"/>
</logger>
<!-- 显示慢sql语句-->
<logger name="druid.sql.Statement" level="ERROR" additivity="false">
<appender-ref ref="slowSql"/>
</logger>
</loggers>
</configuration>

View File

@ -0,0 +1,9 @@
#!/bin/bash
# 快搭科技-业务服务器
# chkconfig: 345 91 10
# description:该服务器用于业务数据处理
# processname: java
#
export JRE_HOME=/usr/local/jdk
export JAVA_HOME=/usr/local/jdk
nohup $JAVA_HOME/bin/java -Dfile.encoding=utf-8 -jar kdayun-app.jar >/dev/null

View File

@ -0,0 +1,11 @@
@echo off
TITLE 快搭平台服务器
cd /d %~dp0
set JAVA_HOME="D:\BS\Server\tomcat8\jdk"
set PATH=%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
echo %~dp0
echo %JAVA_HOME%
java -jar kdayun-app.jar -Dfile.encoding=utf-8
pause

View File

@ -0,0 +1,279 @@
[
{
"gongslx": "yhxggx",
"gongslxmc": "用户相关公式",
"gongsm": [
{
"name": "当前用户ID",
"val": "cxt.getUserId()",
"explain": "获取当前用户的id值"
},
{
"name": "当前登录用户单位ID",
"val": "cxt.getUserOrgId()",
"explain": "获取当前用户的单位id值"
},
{
"name": "当前登录用户角色ID",
"val": "cxt.getUserRoleId()",
"explain": "获取当前登录用户角色ID"
},
{
"name": "当前登录用户部门ID",
"val": "cxt.getUserDeptId()",
"explain": "获取当前登录用户部门ID"
},
{
"name": "当前用户code",
"val": "cxt.getUserCode()",
"explain": "获取当前登录用户code"
},
{
"name": "当前用户单位objcode",
"val": "cxt.getUserOrgCode()",
"explain": "获取当前登录用户单位code"
},
{
"name": "当前用户角色objcode",
"val": "cxt.getUserRoleCode()",
"explain": "获取当前登录用户角色code"
}
]
},
{
"gongslx": "xtpzxggs",
"gongslxmc": "系统配置相关公式",
"gongsm": [
{
"name": "通过系统选项key获取单位对应配置",
"val": "cxt.getConfig()",
"explain": "通过key获取当前登录用户系统配置选项值示例cxt.getConfig('31D48CD487674CCBA7AAFEF8E1C2741F')"
},
{
"name": "通过系统选项key和单位id获取单位对应配置",
"val": "cxt.getConfig()",
"explain": "通过系统选项key和单位id获取单位对应配置示例cxt.getConfig('9C876276D8884BFF94DF343E2A4EED7D','31D48CD487674CCBA7AAFEF8E1C2741F')"
},
{
"name": "当前登录用户角色ID",
"val": "cxt.getUserRoleId()",
"explain": "获取当前登录用户角色ID"
},
{
"name": "当前登录用户部门ID",
"val": "cxt.getUserDeptId()",
"explain": "获取当前登录用户部门ID"
},
{
"name": "当前用户code",
"val": "cxt.getUserCode()",
"explain": "获取当前登录用户code"
},
{
"name": "当前用户单位objcode",
"val": "cxt.getUserOrgCode()",
"explain": "获取当前登录用户单位code"
},
{
"name": "当前用户角色objcode",
"val": "cxt.getUserRoleCode()",
"explain": "获取当前登录用户角色code"
}
]
},
{
"gongslx": "zfczzgs",
"gongslxmc": "字符串操作公式",
"gongsm": [
{
"name": "返回32位唯一ID",
"val": "cxt.getGuid()",
"explain": "返回32位唯一ID"
},
{
"name": "判断字符串是否为空",
"val": "cxt.isBank()",
"explain": "判断字符串是否为空,返回true或者false,示例cxt.isBank(\"222\"),"
},
{
"name": "判断字符串是否为数字",
"val": "cxt.isNumber()",
"explain": "判断字符串是否为数字,返回true或者false,示例cxt.isNumber(\"22a\")"
},
{
"name": "字符串转为数字",
"val": "cxt.toNumber()",
"explain": "字符串转为数字,返回数字,示例cxt.toNumber(\"222\")"
},
{
"name": "字符串以xx开头",
"val": "cxt.startWith()",
"explain": "字符串以xx开头,返回true或者false,示例cxt.startWith(\"assxx\",\"xx\")"
},
{
"name": "字符串以xx结尾",
"val": "cxt.endWith()",
"explain": "字符串以xx结尾,返回true或者false,示例cxt.endWith(\"axxs2\",\"xx\")"
},
{
"name": "字符串以包涵xx的位置",
"val": "cxt.indexOf()",
"explain": "字符串以包涵xx的位置,返回第一个xx在字符串的位置,数字类型,如果没有xx,返回-1,示例cxt.indexOf(\"ssssa\",\"a\")"
},
{
"name": "字符串是否包涵某个字符",
"val": "cxt.contains()",
"explain": "字符串是否包涵某个字符,返回true或者false,如果包含则为true,否则为false,示例cxt.contains(\"s21sasx\",\"2\")"
},
{
"name": "字符串转大写",
"val": "cxt.toUpper()",
"explain": "字符串转大写,返回字符串,示例cxt.toUpper(\"s21sasx\")"
},
{
"name": "字符串转小写",
"val": "cxt.toLow()",
"explain": "字符串转小写,返回字符串,示例cxt.toLow(\"s21ASSS\")"
},
{
"name": "字符串是否等于某个字符串",
"val": "cxt.equals()",
"explain": "字符串是否等于某个字符串,返回true或者false,示例cxt.equals(\"s21ASSS\",\"2131dsas\")"
},
{
"name": "字符串是否等于某个字符串",
"val": "cxt.equalsIgnoreCase()",
"explain": "字符串是否等于某个字符串,忽略大小写,返回true或者false,示例cxt.equalsIgnoreCase(\"s21ASSS\",\"2131dsas\")"
},
{
"name": "某个字符串的长度",
"val": "cxt.length()",
"explain": "返回字符串的长度,数字类型,示例cxt.length(\"s21ASSS\")"
},
{
"name": "去掉字符串的空格",
"val": "cxt.trim()",
"explain": "去掉字符串的空格,返回去掉空格的字符串,示例cxt.trim(\"source \")"
},
{
"name": "某个字符串把xx替换成yy,支持正则表达式",
"val": "cxt.replaceAll()",
"explain": "某个字符串把xx替换成yy,支持正则表达式,返回替换后的字符串,示例cxt.replaceAll(\"s21ASSS\",\"AS\",\"DS\")"
},
{
"name": "保留小数,格式为千分号",
"val": "cxt.format()",
"explain": "保留小数,格式为千分号,参数有三个,第一个是需要格式化的字符串,第二个是保留的小数位数,第三个参数是是否要显示千分号,返回字符串,示例cxt.format(\"s21ASSS\",3,true)"
}
]
},
{
"gongslx": "jsgs",
"gongslxmc": "计算公式",
"gongsm": [
{
"name": "求和",
"val": "cxt.sum()",
"explain": "获取求和的值,返回数字,示例cxt.sum(1111,222,333)"
},
{
"name": "平均值",
"val": "cxt.avg()",
"explain": "获取平均值,返回数字,示例cxt.avg(1111,222,222)"
},
{
"name": "最大值",
"val": "cxt.max()",
"explain": "获取最大值,返回数字,示例cxt.max(222,4445,666)"
},
{
"name": "最小值",
"val": "cxt.min()",
"explain": "获取最小值,返回数字,示例cxt.min(333,4245,666)"
},
{
"name": "乘积",
"val": "cxt.product()",
"explain": "各个数字乘积,返回数字,示例cxt.product(333,4245,666)"
}
]
},
{
"gongslx": "sj",
"gongslxmc": "时间函数",
"gongsm": [
{
"name": "date获取当前日期",
"val": "cxt.date()",
"explain": "获取当前时间,返回yyyy-MM-dd格式字符串类型。示例cxt.date()"
},
{
"name": "datetime获取当前时间",
"val": "cxt.datetime()",
"explain": "获取当前时间,返回yyyy-MM-dd HH:mm:ss格式,字符串类型。示例cxt.datetime()"
},
{
"name": "now获取当前时间,返回时间类型",
"val": "cxt.now()",
"explain": "获取当前时间,返回时间类型,示例cxt.now()"
},
{
"name": "时间格式化成字符串",
"val": "cxt.dateFormat()",
"explain": "将时间格式化为字符串,格式自定义设置。示例cxt.or(2018-05-09,\"yyyy-MM-dd\")"
}
]
},
{
"gongslx": "shujuk",
"gongslxmc": "数据库相关函数",
"gongsm": [
{
"name": "exceSelectSql执行查询sql,返回数组对象",
"val": "cxt.exceSelectSql()",
"explain": "执行查询sql并返回数组对象。示例cxt.exceSelectSql(\"select * from core_user\")"
},
{
"name": "exceTotalSql执行查询sql,返回数字类型",
"val": "cxt.exceTotalSql()",
"explain": "执行查询sql,返回数字,用于统计。示例cxt.exceTotalSql(\"select count(*) from core_user\")"
},
{
"name": "exceTotalSql执行查询sql,返回数组数字类型",
"val": "cxt.exceSelectIntSql()",
"explain": "执行查询sql,返回数字数组,多数用于图标展示。示例cxt.exceSelectIntSql(\"select sys_sort from core_user\")"
},
{
"name": "getDbType返回当前链接的数据库类型",
"val": "cxt.getDbType()",
"explain": "返回值有mysql,oracle,sqlserver,dm,分别对应mysql数据库,oracle数据库,sqlserver数据库,达梦数据库,区分大小写"
}
]
},
{
"gongslx": "qt",
"gongslxmc": "其他",
"gongsm": [
{
"name": "ifValue表达式",
"val": "cxt.ifValue()",
"explain": "ifValue表达式,如果true,返回第一个参数,否则返回第二个参数。示例cxt.ifValue(2==3,115,10) 返回10"
},
{
"name": "and表达式",
"val": "cxt.and()",
"explain": "and逻辑关系运算符,boolean数组,只要有一个false则返回false。示例cxt.and(2==3,3==3,2==2) 返回true"
},
{
"name": "or表达式",
"val": "cxt.or()",
"explain": "or逻辑关系运算符,boolean数组,只要有一个true则返回true。示例cxt.or(2==3,3==3,2==2) 返回true"
},
{
"name": "nvl表达式",
"val": "cxt.nvl()",
"explain": "nvl表达式,返回第一个不为空的值。示例cxt.nvl(null,22) 返回22"
}
]
},
]

View File

@ -0,0 +1,578 @@
[
{
"name": "用户相关公式",
"formulas": [
{
"name": "cxt.getUserId()",
"help": "获取当前用户的id值"
},
{
"name": "cxt.getUserOrgId()",
"help": "获取当前用户的机构id值"
},
{
"name": "cxt.getUserRoleId()",
"help": "获取当前登录用户角色ID"
},
{
"name": "cxt.getUserDeptId()",
"help": "获取当前登录用户部门ID"
},
{
"name": "cxt.getUserCode()",
"help": "获取当前登录用户code"
},
{
"name": "cxt.getUserOrgCode()",
"help": "获取当前登录用户机构code"
},
{
"name": "cxt.getUserRoleCode()",
"help": "获取当前登录用户角色code"
}
]
},
{
"name": "系统配置相关公式",
"formulas": [
{
"name": "cxt.getConfig(String optId)",
"help": "通过key获取当前登录用户系统配置选项值<strong>示例:</strong>cxt.getConfig('31D48CD487674CCBA7AAFEF8E1C2741F')",
"temp": "cxt.getConfig(optId)"
},
{
"name": "cxt.getConfig(String orgid,String optId)",
"help": "定义: String cxt.getConfig(String orgid,String optId) 通过系统选项key和机构id获取机构对应配置<strong>示例:</strong>cxt.getConfig('9C876276D8884BFF94DF343E2A4EED7D','31D48CD487674CCBA7AAFEF8E1C2741F')",
"temp": "cxt.getConfig(orgid,optId)"
},
{
"name": "cxt.getUserRoleId()",
"help": "获取当前登录用户角色ID"
},
{
"name": "cxt.getUserDeptId()",
"help": "获取当前登录用户部门ID"
},
{
"name": "cxt.getUserCode()",
"help": "获取当前登录用户code"
},
{
"name": "cxt.getUserOrgCode()",
"help": "获取当前登录用户机构code"
},
{
"name": "cxt.getUserRoleCode()",
"help": "获取当前登录用户角色code"
},
{
"name": "cxt.getCode()",
"help": "获取业务单据的单号; 参数说明: strformat= DH[yyyyMMdd][d3] => DH20201113001,DH20201113002...",
"temp": "cxt.getCode(strformat)"
}
]
},
{
"name": "字符串操作公式",
"formulas": [
{
"name": "cxt.getGuid()",
"help": "返回32位唯一ID"
},
{
"name": "cxt.isBank()",
"help": "判断字符串是否为空,返回true或者false,<strong>示例:</strong>cxt.isBank(\"222\"),"
},
{
"name": "cxt.isNumber()",
"help": "判断字符串是否为数字,返回true或者false,<strong>示例:</strong>cxt.isNumber(\"22a\")"
},
{
"name": "cxt.toNumber()",
"help": "字符串转为数字,返回数字,<strong>示例:</strong>cxt.toNumber(\"222\")"
},
{
"name": "cxt.startWith()",
"help": "字符串以xx开头,返回true或者false,<strong>示例:</strong>cxt.startWith(\"assxx\",\"xx\")"
},
{
"name": "cxt.endWith()",
"help": "字符串以xx结尾,返回true或者false,<strong>示例:</strong>cxt.endWith(\"axxs2\",\"xx\")"
},
{
"name": "cxt.indexOf()",
"help": "字符串以包涵xx的位置,返回第一个xx在字符串的位置,数字类型,如果没有xx,返回-1,<strong>示例:</strong>cxt.indexOf(\"ssssa\",\"a\")"
},
{
"name": "cxt.contains()",
"help": "字符串是否包涵某个字符,返回true或者false,如果包含则为true,否则为false,<strong>示例:</strong>cxt.contains(\"s21sasx\",\"2\")"
},
{
"name": "cxt.toUpper()",
"help": "字符串转大写,返回字符串,<strong>示例:</strong>cxt.toUpper(\"s21sasx\")"
},
{
"name": "cxt.toLow()",
"help": "字符串转小写,返回字符串,<strong>示例:</strong>cxt.toLow(\"s21ASSS\")"
},
{
"name": "cxt.equals()",
"help": "字符串是否等于某个字符串,返回true或者false,<strong>示例:</strong>cxt.equals(\"s21ASSS\",\"2131dsas\")"
},
{
"name": "cxt.equalsIgnoreCase()",
"help": "字符串是否等于某个字符串,忽略大小写,返回true或者false,<strong>示例:</strong>cxt.equalsIgnoreCase(\"s21ASSS\",\"2131dsas\")"
},
{
"name": "cxt.length()",
"help": "返回字符串的长度,数字类型,<strong>示例:</strong>cxt.length(\"s21ASSS\")"
},
{
"name": "cxt.trim()",
"help": "去掉字符串的空格,返回去掉空格的字符串,<strong>示例:</strong>cxt.trim(\"source \")"
},
{
"name": "cxt.replaceAll()",
"help": "某个字符串把xx替换成yy,支持正则表达式,返回替换后的字符串,<strong>示例:</strong>cxt.replaceAll(\"s21ASSS\",\"AS\",\"DS\")"
},
{
"name": "cxt.format()",
"help": "保留小数,格式为千分号,参数有三个,第一个是需要格式化的字符串,第二个是保留的小数位数,第三个参数是是否要显示千分号,返回字符串,<strong>示例:</strong>cxt.format(\"s21ASSS\",3,true)"
}
]
},
{
"name": "计算公式",
"formulas": [
{
"name": "cxt.sum()",
"help": "获取求和的值,返回数字,<strong>示例:</strong>cxt.sum(1111,222,333)"
},
{
"name": "cxt.avg()",
"help": "获取平均值,返回数字,<strong>示例:</strong>cxt.avg(1111,222,222)"
},
{
"name": "cxt.max()",
"help": "获取最大值,返回数字,<strong>示例:</strong>cxt.max(222,4445,666)"
},
{
"name": "cxt.min()",
"help": "获取最小值,返回数字,<strong>示例:</strong>cxt.min(333,4245,666)"
},
{
"name": "cxt.product()",
"help": "各个数字乘积,返回数字,<strong>示例:</strong>cxt.product(333,4245,666)"
}
]
},
{
"name": "时间函数",
"formulas": [
{
"name": "cxt.date()",
"help": "<div><strong>定义</strong>String date()</div> <div><strong>描述:</strong>返回当前时间字符串yyyy-MM-dd格式</div> <div class=\"code\"><strong>示例:</strong>String ret = cxt.date();</div>"
},
{
"name": "cxt.datetime()",
"help": "<div><strong>定义</strong>String datetime()</div> <div><strong>描述:</strong>返回当前时间字符串yyyy-MM-dd HH:mm:ss格式</div> <div class=\"code\"><strong>示例:</strong>String ret = cxt.datetime();</div>"
},
{
"name": "cxt.now()",
"help": "<div><strong>定义</strong>Date now()</div> <div><strong>描述:</strong>获取当前时间,返回时间类型</div> <div class=\"code\"><strong>示例:</strong>Date ret = cxt.now(cxt.now(), cxt.now());</div>"
},
{
"name": "cxt.dateFormat()",
"help": "<div><strong>定义</strong>Integer dateFormat(Date date1, Date date2)</div> <div><strong>描述:</strong>时间比较 返回值:前者大于后者 返回1 小于返回-1 等于返回0</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.dateCompareTo(cxt.now(), cxt.now());</div>"
},
{
"name": "cxt.dateCompareTo()",
"help": "<div><strong>定义</strong>Integer dateCompareTo(Date date1, Date date2)</div> <div><strong>描述:</strong>时间比较 返回值:前者大于后者 返回1 小于返回-1 等于返回0</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.dateCompareTo(cxt.now(), cxt.now());</div>"
},
{
"name": "cxt.dateAdd()",
"help": "<div><strong>定义</strong>Date dateAdd(Date date1, int addType, int val)</div> <div><strong>描述:</strong>时间加减,addType:取值:DAY_OF_MONTH DAY_OF_YEAR DAY_OF_WEEK ,val:增量正整数或者负整数 返回:返回加减后的时间值</div> <div class=\"code\"><strong>示例:</strong>10天后的时间值 Date ret = cxt.dateAdd(cxt.now(),DAY_OF_YEAR,10);</div>"
},
{
"name": "cxt.getTimeField()",
"help": "<div><strong>定义</strong>Integer getTimeField(Date date, Integer fieldType)</div> <div><strong>描述:</strong>获取指定时间的各个部分的值(年,月,日); fieldType取值: Calendar.YEAR, Calendar.MONTH ,Calendar.DATE</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.getTimeField(cxt.now(),Calendar.YEAR);</div>"
},
{
"name": "cxt.year()",
"help": "<div><strong>定义</strong>Integer year(Date date)</div> <div><strong>描述:</strong>获取指定时间的年份</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.year(cxt.now());</div>"
},
{
"name": "cxt.month()",
"help": "<div><strong>定义</strong>Integer month(Date date)</div> <div><strong>描述:</strong>获取指定时间的月份</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.month(cxt.now());</div>"
},
{
"name": "cxt.day()",
"help": "<div><strong>定义</strong>Integer day(Date date)</div> <div><strong>描述:</strong>获取指定时间的日</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.day(cxt.now());</div>"
},
{
"name": "cxt.hour()",
"help": "<div><strong>定义</strong>Integer hour(Date date)</div> <div><strong>描述:</strong>获取指定时间的小时数</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.hour(cxt.now());</div>"
},
{
"name": "cxt.minute()",
"help": "<div><strong>定义</strong>Integer minute(Date date)</div> <div><strong>描述:</strong>获取指定时间的分钟数</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.minute(cxt.now());</div>"
},
{
"name": "cxt.second()",
"help": "<div><strong>定义</strong>Integer second(Date date)</div> <div><strong>描述:</strong>获取指定时间的秒数</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.second(cxt.now());</div>"
}
]
},
{
"name": "数据库相关函数",
"formulas": [
{
"name": "cxt.exceSelectSql()",
"help": "<div><strong>定义</strong>List<Map<String, Object>> exceSelectSql(String sql)</div> <div><strong>描述:</strong>执行查询sql并返回行集合对象。</div> <div class=\"code\"><strong>示例:</strong>List<Map> ret = cxt.exceSelectSql(\"select rwid,objname from core_user\"); String rwid= ret.get(0).get(\"rwid\")</div>"
},
{
"name": "cxt.exceTotalSql()",
"help": "<div><strong>定义</strong>Integer exceTotalSql(String sql)</div> <div><strong>描述:</strong>执行统计数量sql,并返回统计总数。</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.exceTotalSql(\"select count(1) from core_user\");</div>"
},
{
"name": "cxt.exceSelectIntSql()",
"help": "<div><strong>定义</strong>Integer exceSelectIntSql(String sql)</div> <div><strong>描述:</strong>执行返回一个整数值的sql,并返回一个整数值。</div> <div class=\"code\"><strong>示例:</strong>Integer ret = cxt.exceSelectIntSql(\"SELECT ISPASSED FROM CORE_USER WHERE ZANGHM='admin'\");</div>"
},
{
"name": "cxt.getDbType()",
"help": "<div><strong>定义</strong>String getDbType()</div> <div><strong>描述:</strong>返回当前的数据库类型。mysql,oracle,sqlserver,dm,分别对应mysql数据库,oracle数据库,sqlserver数据库,达梦数据库,区分大小写</div> <div class=\"code\"><strong>示例:</strong>String ret = cxt.getDbType();</div>"
}
]
},
{
"name": "编号生成",
"formulas": [
{
"name": "cxt.getCode()",
"help": "生成固定格式的编号 一般用于生成业务单据号如 :订单号,出库单号等等;<strong>示例:</strong>cxt.getCode('ORD[YYYYMMDD]-[000]') 返回ORD20200818-001"
}
]
},
{
"name": "其他",
"formulas": [
{
"name": "cxt.ifValue()",
"help": "ifValue表达式,如果true,返回第一个参数,否则返回第二个参数。<strong>示例:</strong>cxt.ifValue(2==3,115,10) 返回10"
},
{
"name": "cxt.and()",
"help": "and逻辑关系运算符,boolean数组,只要有一个false则返回false。<strong>示例:</strong>cxt.and(2==3,3==3,2==2) 返回true"
},
{
"name": "cxt.or()",
"help": "or逻辑关系运算符,boolean数组,只要有一个true则返回true。<strong>示例:</strong>cxt.or(2==3,3==3,2==2) 返回true"
},
{
"name": "cxt.nvl()",
"help": "nvl表达式,返回第一个不为空的值。<strong>示例:</strong>cxt.nvl(null,22) 返回22"
}
]
},
{
"name": "语法",
"children": [
{
"name": "数据类型",
"formulas": [
{
"name": "byte",
"help": "字节值 范围:128到127",
"temp": "byte"
},
{
"name": "short",
"help": "这是用来表示一个短整型。 范围: -32,768到32,767",
"temp": "short"
},
{
"name": "int",
"help": "整数. 范围: 2,147,483,648 到,147,483,647",
"temp": "int"
},
{
"name": "long",
"help": "长整型. 范围: -9,223,372,036,854,775,808到+9,223,372,036,854,775,807",
"temp": "long"
},
{
"name": "float",
"help": "32位浮点数",
"temp": "float"
},
{
"name": "double",
"help": "64位浮点数. 范围: 4.94065645841246544e-324d 到1.79769313486231570e + 308d",
"temp": "double"
},
{
"name": "char",
"help": "单个字符文字",
"temp": "char"
},
{
"name": "Boolean",
"help": "布尔值",
"temp": "Boolean"
},
{
"name": "String",
"help": "以字符串的形式表示的文本",
"temp": "String"
}
]
},
{
"name": "变量",
"formulas": [
{
"name": "byte x=1",
"help": "字节值 范围:128到127",
"temp": "byte x=1"
},
{
"name": "short x=1",
"help": "这是用来表示一个短整型。 范围: -32,768到32,767",
"temp": "short x=1"
},
{
"name": "int x=1",
"help": "整数. 范围: 2,147,483,648 到,147,483,647",
"temp": "int x=1"
},
{
"name": "long x=1",
"help": "长整型. 范围: -9,223,372,036,854,775,808到+9,223,372,036,854,775,807",
"temp": "long x=1"
},
{
"name": "float x=1",
"help": "32位浮点数",
"temp": "float x=1"
},
{
"name": "double x=1",
"help": "64位浮点数. 范围: 4.94065645841246544e-324d 到1.79769313486231570e + 308d",
"temp": "double x=1"
},
{
"name": "char x=1",
"help": "单个字符文字",
"temp": "char x=1"
},
{
"name": "Boolean x=false",
"help": "布尔值",
"temp": "Boolean x=false"
},
{
"name": "String x=''",
"help": "以字符串的形式表示的文本",
"temp": "String x=''"
}
]
},
{
"name": "运算符",
"children": [
{
"name": "算术运算符",
"formulas": [
{
"name": "+",
"help": "两个操作数的加法",
"temp": "=="
},
{
"name": "-",
"help": "第一第二操作数相减",
"temp": "-"
},
{
"name": "*",
"help": "两个操作数的乘法",
"temp": "*"
},
{
"name": "/",
"help": "两个操作数的除法",
"temp": "/"
},
{
"name": "%",
"help": "取模运算",
"temp": "%"
},
{
"name": "-",
"help": "第一第二操作数相减",
"temp": "-"
},
{
"name": "++",
"help": "自增运算在自身值的基础上加1",
"temp": "++"
},
{
"name": "--",
"help": "自减运算,在自身值的基础上减1",
"temp": "--"
}
]
},
{
"name": "关系运算符",
"formulas": [
{
"name": "==",
"help": "测试两个对象之间是否相等",
"temp": "=="
},
{
"name": "!=",
"help": "测试两个对象之间是否不等",
"temp": "!="
},
{
"name": "<",
"help": "检查是否左边的对象是小于右边的对象。",
"temp": "<"
},
{
"name": "<=",
"help": "检查是否向左对象是小于或等于右边的对象",
"temp": "<="
},
{
"name": ">",
"help": "检查是否左边的对象比右边的对象大",
"temp": ">"
},
{
"name": ">=",
"help": "检查是否向左对象大于或等于右边的对象",
"temp": ">="
}
]
},
{
"name": "逻辑运算符",
"formulas": [
{
"name": "&&",
"help": "逻辑“与”运算",
"temp": "&&"
},
{
"name": "||",
"help": "逻辑“或”运算",
"temp": "||"
},
{
"name": "!",
"help": "逻辑“非”运算",
"temp": "|"
}
]
},
{
"name": "位运算符",
"formulas": [
{
"name": "&",
"help": "位“与”运算",
"temp": "&"
},
{
"name": "|",
"help": "位“或”运算",
"temp": "|"
},
{
"name": "^",
"help": "位“异或”运算",
"temp": "^"
},
{
"name": "~",
"help": "位“反”运算",
"temp": "~"
}
]
}
]
},
{
"name": "循环",
"formulas": [
{
"name": "while语句",
"help": "while语句首先通过计算条件表达式布尔值来执行如果结果为真则执行while循环中的语句。",
"temp": "while( true ) { \r\n\r\n }"
},
{
"name": "for语句",
"help": "for语句用于遍历一组值。",
"temp": "for( int i=0 ; i< 100 ; i++) { \r\n\r\n }"
},
{
"name": "while语句",
"help": "for-in语句用于遍历一组值。",
"temp": "for( int i in array) { { \r\n\r\n }"
},
{
"name": "break语句",
"help": "break语句用于改变循环和switch语句内的控制流。",
"temp": "for( int i in array) { \r\n break;\r\n }"
},
{
"name": "continue语句",
"help": "continue语句补充了break语句。它的使用仅限于while和for循环。",
"temp": "for( int i in array) { { \r\ncontinue;\r\n }"
}
]
},
{
"name": "条件语句",
"formulas": [
{
"name": "if语句",
"help": "这个语句的一般工作是首先在if语句中计算一个条件。如果条件为真它然后执行语句。",
"temp": "if(true) { \r\n\r\n }"
},
{
"name": "if / else语句",
"help": "这个语句的一般工作是首先在if语句中计算一个条件。如果条件为真则其后执行语句并在else条件之前停止并退出循环。如果条件为假则执行else语句块中的语句然后退出循环。",
"temp": "if(true) { \r\n\r\n } \r\nelse{ \r\n\r\n}"
},
{
"name": "嵌套if语句",
"help": "多个if语句嵌入在彼此内部",
"temp": "if(condition) { \r\n\r\n } \r\nelse if(condition){ \r\n\r\n} else {\r\n\r\n}"
},
{
"name": "Switch语句",
"help": "逻辑“与”运算",
"temp": "switch(expression) {\r\n case expression #1: \r\n statement #1 \r\n break; \r\n case expression #2: \r\n statement #2\r\n break; \r\n default: \r\n statement #Default \r\n }"
}
]
},
{
"name": "方法(函数)",
"formulas": [
{
"name": "函数定义",
"help": "使用def关键字定义方法(函数)",
"temp": "def someMethod(parameter1, parameter2 = 0, parameter3 = 0) {\r\n // Method code goes here \r\n} "
}
]
}
],
"formulas": []
}
]

View File

@ -0,0 +1,56 @@
[
{
"type": "variant",
"name": "USERID",
"help": "当前用户id",
"temp": "#{USERID}"
},
{
"type": "variant",
"name": "USERCODE",
"help": "当前用户编号",
"temp": "#{USERCODE}"
},
{
"type": "variant",
"name": "ROLEID",
"help": "当前用户角色id",
"temp": "#{ROLEID}"
},
{
"type": "variant",
"name": "ROLECODE",
"help": "当前用户所属组织机构(单位)编号",
"temp": "#{ROLECODE}"
},
{
"type": "variant",
"name": "DEPTID",
"help": "当前用户所属部门id",
"temp": "#{DEPTID}"
},
{
"type": "variant",
"name": "DEPTCODE",
"help": "当前用户所属部门编号",
"temp": "#{DEPTCODE}"
},
{
"type": "variant",
"name": "ORGID",
"help": "当前用户所属组织机构(单位)id",
"temp": "#{ORGID}"
},
{
"type": "variant",
"name": "ORGCODE",
"help": "当前用户所属组织机构(单位)编号",
"temp": "#{ORGCODE}"
},
{
"type": "variant",
"name": "USERWFID",
"help": "当前用户工作流程参与者唯一ID等于 {ORGID}_{DEPTID}_{ROLEID}_{USERID}",
"temp": "#{USERWFID}"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

Some files were not shown because too many files have changed in this diff Show More