工程初始化
|
@ -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>
|
|
@ -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>
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"plugins": {
|
||||||
|
"guess-types": {
|
||||||
|
|
||||||
|
},
|
||||||
|
"outline": {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libs": [
|
||||||
|
"ecma5",
|
||||||
|
"browser"
|
||||||
|
]
|
||||||
|
}
|
|
@ -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
|
|
@ -0,0 +1,2 @@
|
||||||
|
H:\M\BS\maven\apache-maven-3.2.5\bin\mvn.bat dependency:tree
|
||||||
|
pause
|
|
@ -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
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
/target/
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"plugins": {
|
||||||
|
"guess-types": {
|
||||||
|
|
||||||
|
},
|
||||||
|
"outline": {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libs": [
|
||||||
|
"ecma5",
|
||||||
|
"browser"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
Manifest-Version: 1.0
|
||||||
|
Class-Path:
|
||||||
|
|
|
@ -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
|
|
@ -0,0 +1,5 @@
|
||||||
|
cd /d %~dp0
|
||||||
|
|
||||||
|
mvn source:jar -Dmaven.test.skip=true
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
cd /d %~dp0
|
||||||
|
|
||||||
|
mvn clean package -Dmaven.test.skip=true
|
|
@ -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>
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
baidu:
|
||||||
|
appid: 25392062
|
||||||
|
appkey: 90Y67SAwWtfj0GKqGLtD0LEp
|
||||||
|
secretkey: o1f5YAQprZMQluTnzacV1iCqsukRhKWm
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -0,0 +1,5 @@
|
||||||
|
logging:
|
||||||
|
config: "classpath:log4j2.xml"
|
||||||
|
formatMsgNoLookups: true
|
||||||
|
level:
|
||||||
|
org.springframework: info
|
|
@ -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
|
|
@ -0,0 +1,10 @@
|
||||||
|
server:
|
||||||
|
port: 20003
|
||||||
|
servlet:
|
||||||
|
context-path: /kdayun
|
||||||
|
session:
|
||||||
|
cookie:
|
||||||
|
name: cloud
|
||||||
|
tomcat:
|
||||||
|
basedir: /tmp/tomcat
|
||||||
|
uri-encoding: utf-8
|
|
@ -0,0 +1,7 @@
|
||||||
|
#文件的上传地址
|
||||||
|
upload-path: d:/upload/
|
||||||
|
spring:
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
max-file-size: 100MB
|
||||||
|
max-request-size: 100MB
|
|
@ -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: 快搭科技(上海)有限公司-应用
|
||||||
|
|
|
@ -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 2019年1月28日 下午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);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,87 @@
|
||||||
|
/**
|
||||||
|
* 查询数据脚本
|
||||||
|
*/
|
||||||
|
import groovy.ui.SystemOutputInterceptor;
|
||||||
|
import com.kdayun.z1.core.context.Context;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录机构的orgid
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return orgid
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年1月30日 下午5:55:55
|
||||||
|
*/
|
||||||
|
public String getOrgid() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgId();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 获取当前登录机构名字
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurOrgName() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户id
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurUserid() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户的姓名
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurUserName() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户部门的id
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurDeptid() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptId();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户部门的名字
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurDeptName() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public Date getCurDate() {
|
||||||
|
return new Date();
|
||||||
|
}
|
|
@ -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 2019年1月30日 下午5:55:55
|
||||||
|
*/
|
||||||
|
public String getOrgid() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgId();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 获取当前登录机构名字
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurOrgName() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentOrgName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户id
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurUserid() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户的姓名
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurUserName() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户部门的id
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurDeptid() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptId();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 获取当前登录用户部门的名字
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午9:11:19
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getCurDeptName() {
|
||||||
|
return Context.getInstance().securityService.getCurrentUser().getCurrentDeptName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @author qjb
|
||||||
|
* @date 2019年2月19日 上午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");
|
||||||
|
}
|
||||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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-----
|
|
@ -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
|
|
@ -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并引入的appender,appender才会生效 -->
|
||||||
|
<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>
|
|
@ -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
|
|
@ -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
|
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
|
@ -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": []
|
||||||
|
}
|
||||||
|
]
|
|
@ -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}"
|
||||||
|
}
|
||||||
|
]
|
After Width: | Height: | Size: 403 B |
After Width: | Height: | Size: 294 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 914 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 509 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 410 B |
After Width: | Height: | Size: 991 B |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 554 B |
After Width: | Height: | Size: 459 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 537 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 228 B |
After Width: | Height: | Size: 337 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 486 B |
After Width: | Height: | Size: 301 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 324 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 535 B |
After Width: | Height: | Size: 284 B |
After Width: | Height: | Size: 946 B |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 995 B |
After Width: | Height: | Size: 402 B |
After Width: | Height: | Size: 561 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 691 B |
After Width: | Height: | Size: 294 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 886 B |
After Width: | Height: | Size: 555 B |
After Width: | Height: | Size: 444 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 914 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 664 B |
After Width: | Height: | Size: 783 B |
After Width: | Height: | Size: 912 B |
After Width: | Height: | Size: 767 B |