提交 89e199aa 编写于 作者: Crimson's avatar Crimson

V20200106.1.0.0

上级 59398ad3
<#ibiztemplate>
TARGET=PSSYSTEM
</#ibiztemplate>
<#if sysrun.getRunMode() == "STARTMSAPI">
<#assign depapi = sysrun.getPSDevSlnMSDepAPI()>
<#assign config = "api"+depapi.getName()>
<#assign configId = depapi.getId()>
<#assign depnode = sysrun.getPSDevSlnMSDepAPI().getPSDCMSPlatformNode()>
<#elseif sysrun.getRunMode() == "STARTMSAPP">
<#assign depapp = sysrun.getPSDevSlnMSDepApp()>
<#assign config = "app"+depapp.getName()>
<#assign configId = depapp.getId()>
<#assign depnode = sysrun.getPSDevSlnMSDepApp().getPSDCMSPlatformNode()>
</#if>
<#if sys.getPSSVNInstRepo().getGitBranch()?? && sys.getPSSVNInstRepo().getGitBranch()!="">
<#assign branch=sys.getPSSVNInstRepo().getGitBranch()>
<#else>
<#assign branch='master'>
</#if>
<?xml version='1.1' encoding='UTF-8'?>
<project>
<actions/>
<description>${configId}</description>
<keepDependencies>false</keepDependencies>
<properties>
<com.gitee.jenkins.connection.GiteeConnectionProperty plugin="gitee@1.1.3">
<giteeConnection></giteeConnection>
</com.gitee.jenkins.connection.GiteeConnectionProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
rm -rf ${pub.codeName}
git clone -b ${branch} ${sys.getPSSVNInstRepo().getGitPath()} ${pub.codeName}
cd ${pub.codeName}
chmod -R 777 *
<#if pub.getPSApplication()?? && (sysrun.getRunMode() == "STARTMSAPP")>
if [ -f ./app_Vue/ibizbuild.sh ]
then
./app_Vue/ibizbuild.sh
fi
\cp -rf ./app_Vue/src/main/webapp/vue ./springboot_SamMgr02/src/main/webapp/
</#if>
<#if sysrun.isRebuildMode()??>
mvn clean -f ./pom.xml
</#if>
mvn install -Dmaven.test.skip=true -f ./pom.xml
echo &apos;echo &quot;${depnode.getSSHPassword()}&quot;&apos; &gt; apppasswd.sh
chmod -R 777 *
setsid env SSH_ASKPASS=&apos;./apppasswd.sh&apos; DISPLAY=&apos;none:0&apos; ssh ${depnode.getSSHUserName()}@${depnode.getSSHIPAddr()} &quot;mkdir -p ${depnode.getWorkshopPath()}/${configId}&quot;
setsid env SSH_ASKPASS=&apos;./apppasswd.sh&apos; DISPLAY=&apos;none:0&apos; scp -r ./${pub.codeName}.jar ${depnode.getSSHUserName()}@${depnode.getSSHIPAddr()}:${depnode.getWorkshopPath()}/${configId}
setsid env SSH_ASKPASS=&apos;./apppasswd.sh&apos; DISPLAY=&apos;none:0&apos; ssh ${depnode.getSSHUserName()}@${depnode.getSSHIPAddr()} &quot;ps -ef | grep &apos;${depnode.getWorkshopPath()}/${configId}&apos;| tr -s &apos; &apos;|cut -d&apos; &apos; -f2,8,9 | grep -v grep | grep &apos;jar&apos; | cut -d&apos; &apos; -f1|xargs --no-run-if-empty kill -9&quot;
setsid env SSH_ASKPASS=&apos;./apppasswd.sh&apos; DISPLAY=&apos;none:0&apos; ssh ${depnode.getSSHUserName()}@${depnode.getSSHIPAddr()} &quot;source /etc/profile;source ~/.bash_profile; nohup java -jar ${depnode.getWorkshopPath()}/${configId}/${pub.codeName}.jar --spring.profiles.active=${config?lower_case} &gt;&gt;${depnode.getWorkshopPath()}/${configId}/${pub.codeName}-`date --date=&apos;0 days ago&apos; +%Y-%m-%d`.log 2&gt;&amp;1 &amp;&quot;</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.plugins.ws__cleanup.WsCleanup plugin="ws-cleanup@0.34">
<patterns class="empty-list"/>
<deleteDirs>false</deleteDirs>
<skipWhenFailed>false</skipWhenFailed>
<cleanWhenSuccess>true</cleanWhenSuccess>
<cleanWhenUnstable>true</cleanWhenUnstable>
<cleanWhenFailure>true</cleanWhenFailure>
<cleanWhenNotBuilt>true</cleanWhenNotBuilt>
<cleanWhenAborted>true</cleanWhenAborted>
<notFailBuild>false</notFailBuild>
<cleanupMatrixParent>false</cleanupMatrixParent>
<externalDelete></externalDelete>
</hudson.plugins.ws__cleanup.WsCleanup>
</publishers>
<buildWrappers/>
</project>
\ No newline at end of file
<#ibiztemplate>
TARGET=PSSYSTEM
</#ibiztemplate>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>${pub.codeName}</artifactId>
<groupId>${pub.getPKGCodeName()}</groupId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>springboot_${pub.codeName}</module>
<module>srv_${pub.codeName}</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE")}</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>${sfstyle.getStyleParam("java.version","1.8")}</java.version>
<spring-cloud.version>${sfstyle.getStyleParam("springcloud.version","Finchley.RC2")}</spring-cloud.version>
<skipTests>true</skipTests>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${r'${spring-cloud.version}'}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>2.0.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- ant -->
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.7</version>
</dependency>
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</dependency>
<!-- c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!-- c3p0-oracle-thin-extras -->
<dependency>
<groupId>com.google.code.maven-play-plugin.com.mchange</groupId>
<artifactId>c3p0-oracle-thin-extras</artifactId>
<version>0.9.5</version>
</dependency>
<dependency>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-core</artifactId>
<version>3.1.12</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!-- commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>net.ibizsys.runtime</groupId>
<artifactId>saibz5_all</artifactId>
<version>5.1.22.11</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itextasian</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.2.1</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>bouncycastle</groupId>
<artifactId>bcmail-jdk14</artifactId>
</exclusion>
<exclusion>
<groupId>bouncycastle</groupId>
<artifactId>bcprov-jdk14</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.2.1</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-functions</artifactId>
<version>6.2.1</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-javaflow</artifactId>
<version>6.2.1</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.2-GA</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<!-- json-lib -->
<dependency>
<groupId>net.ibizsys.private</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- mchange-commons-java -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>mchange-commons-java</artifactId>
<version>0.2.11</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.13</version>
</dependency>
<!-- poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13</version>
</dependency>
<!-- poi-ooxml-schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.13</version>
</dependency>
<!-- poi-scratchpad -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>SmartUpload</groupId>
<artifactId>SmartUpload</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry5-annotations</artifactId>
<version>5.4.0</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</dependency>
</dependencies>
<repositories>
<repository>
<id>ibizmvnrepository</id>
<name>ibizmvnrepository</name>
<url>${srfenv.getParam("J2EE.REPOURL","")}</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</project>
\ No newline at end of file
此差异已折叠。
<#ibiztemplate>
FILENAME=pom.xml
PUBOBJ=WebAppConfig
</#ibiztemplate>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>springboot_${pub.codeName}</artifactId>
<packaging>jar</packaging>
<name>springboot_${pub.codeName}</name>
<description>Main for Spring Boot</description>
<parent>
<groupId>${pub.getPKGCodeName()}</groupId>
<artifactId>${pub.codeName}</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>${pub.getPKGCodeName()}</groupId>
<artifactId>srv_${pub.codeName}</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<#assign mspkg = pub.getPKGCodeName()>
<#if sysrun.getRunMode() == "STARTMSAPI">
<#assign api= sysrun.getPSDevSlnMSDepAPI().getPSSysServiceAPI()>
<#assign mspkg = mspkg+".ms.springboot.api."+api.getCodeName()>
<#assign msmain = api.getCodeName()+"Main">
<#elseif sysrun.getRunMode() == "STARTMSAPP">
<#assign app = sysrun.getPSDevSlnMSDepApp().getPSApplication()>
<#assign mspkg = mspkg+".ms.springboot.app."+app.getPKGCodeName()>
<#assign msmain = app.getPKGCodeName()+"Main">
</#if>
<build>
<resources>
<resource>
<directory>${r'${basedir}'}/src/main/webapp</directory>
<!--注意此次必须要放在此目录下才能被访问到 -->
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>${r'${basedir}'}/src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>${pub.codeName}</finalName>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<#if msmain??>
<mainClass>${mspkg?lower_case}.${msmain}</mainClass>
</#if>
<outputDirectory>../</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
<#ibiztemplate>
FILENAME=${item.codeName}Conf.java
PUBOBJ=SysMSAPISpringBootMain
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%ITEM%=${item.codeName?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.ms.springboot.api.${item.codeName?lower_case};
import java.util.Properties;
import javax.sql.DataSource;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
import org.springframework.boot.jdbc.DataSourceBuilder;
<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
</#if>
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import lombok.Data;
import net.ibizsys.paas.db.impl.DBDialectImpl;
import net.ibizsys.paas.util.ObjectHelper;
import net.ibizsys.paas.util.StringHelper;
import net.ibizsys.paas.util.SystemRTHelper;
@Configuration
@EnableTransactionManagement
@EnableConfigurationProperties({
${item.codeName}Conf.C3p0Properties.class,
${item.codeName}Conf.HibernateProperties.class
})
public class ${item.codeName}Conf {
@Autowired
private C3p0Properties c3p0Properties;
@Autowired
private HibernateProperties hibernateProp;
@Bean
@Qualifier("dataSource")
@ConfigurationProperties(prefix = "datasource.c3p0")
public DataSource dataSource() {
return DataSourceBuilder.create()
.type(com.mchange.v2.c3p0.ComboPooledDataSource.class)
.driverClassName(c3p0Properties.getDriverClass())
.url(c3p0Properties.getJdbcUrl())
.username(c3p0Properties.getUser())
.password(c3p0Properties.getPassword())
.build();
}
@Bean(name="dbDialect")
public DBDialectImpl dbDialect(){
try {
return (DBDialectImpl) ObjectHelper.create(c3p0Properties.getIbzDialect());
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
@Bean
public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
Properties hibernateProperties = new Properties();
hibernateProperties.put("hibernate.dialect", hibernateProp.getDialect());
hibernateProperties.put("hibernate.show_sql", hibernateProp.getShowSql());
hibernateProperties.put("hibernate.hbm2ddl.auto", hibernateProp.getDdlAuto());
hibernateProperties.put("hibernate.current_session_context_class",hibernateProp.getCurrentSessionContextClass());
sessionFactory.setHibernateProperties(hibernateProperties);
return sessionFactory;
}
@Bean
public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(sessionFactory);
return txManager;
}
@Value("${r'${ibiz.installDBModels:}'}")
String strInstallDBModels;
@Component
public class InstallDBCommandLineRunner implements CommandLineRunner{
@Override
public void run(String... var1) throws Exception{
if(!StringHelper.isNullOrEmpty(strInstallDBModels)){
SystemRTHelper.installDBModel(strInstallDBModels, false);
}
}
}
@ConfigurationProperties(prefix = "hibernate")
@Data
static class HibernateProperties{
private String dialect;
private String ddlAuto;
private String showSql;
private String currentSessionContextClass;
}
@ConfigurationProperties(prefix = "datasource.c3p0")
@Data
static class C3p0Properties {
private String driverClass;
private String jdbcUrl;
private String user;
private String password;
private int maxPoolSize;
private int minPoolSize;
private int initialPoolSize;
private int maxIdleTime;
private int acquireIncrement;
private int maxStatements;
private int idleConnectionTestPeriod;
private String ibzDialect;
}
}
\ No newline at end of file
<#ibiztemplate>
FILENAME=${item.codeName}Main.java
PUBOBJ=SysMSAPISpringBootMain
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%ITEM%=${item.codeName?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.ms.springboot.api.${item.codeName?lower_case};
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.openfeign.EnableFeignClients;
<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
</#if>
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
import org.springframework.context.annotation.Configuration;
import net.ibizsys.paas.util.spring.AnnotationBeanNameGenerator;
@SpringBootApplication(exclude = {
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration.class,
org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration.class
<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration.class
</#if>
})
@EnableEurekaClient
@Configuration
@ServletComponentScan
<#if sys.getAllPSSubSysServiceAPIs()??>
@EnableFeignClients(basePackages = {
<#list sys.getAllPSSubSysServiceAPIs() as sysServiceAPI>
<#if sysServiceAPI.getClassOrPkgName("PKG",pub)??>
"${sysServiceAPI.getClassOrPkgName("PKG",pub)}.srv.api",
<#else>
"${pub.getPKGCodeName()}.srv.api",
</#if>
</#list>
})
</#if>
@ComponentScans({
<#if sys.getAllPSSysServiceAPIs()??>
@ComponentScan(basePackages = {"${pub.getPKGCodeName()}.api"},nameGenerator = AnnotationBeanNameGenerator.class),
</#if>
@ComponentScan(basePackages = {"${pub.getPKGCodeName()}.ms.springboot.api.${item.codeName?lower_case}"}),
<#list sys.getAllPSSysRefs() as psSubSys>
<#if (psSubSys.getSysRefType() == 'SUBSYS' )>
@ComponentScan(basePackages = {"net.ibizsys.psrt.srv"},nameGenerator = AnnotationBeanNameGenerator.class),
<#else>
@ComponentScan(basePackages = {"${psSubSys.getClassOrPkgName("PKG",pub)}.srv"},nameGenerator = AnnotationBeanNameGenerator.class),
</#if>
</#list>
@ComponentScan(basePackages = {"${pub.getPKGCodeName()}.srv"},nameGenerator = AnnotationBeanNameGenerator.class)
})
public class ${item.codeName}Main extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(${item.codeName}Main.class);
builder.run(args);
}
}
\ No newline at end of file
<#ibiztemplate>
FILENAME=${item.codeName}WebConf.java
PUBOBJ=SysMSAPISpringBootMain
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%ITEM%=${item.codeName?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.ms.springboot.api.${item.codeName?lower_case};
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Value;
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.boot.web.servlet.ErrorPageRegistrar;
import org.springframework.boot.web.servlet.ErrorPageRegistry;
</#if>
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Configuration
public class ${item.codeName}WebConf {
@Value("${r'${ibiz.authFilter:false}'}")
String strAuthFilter;
@Value("${r'${ibiz.filePath:/filePath/}'}")
String strFilePath;
@Value("${r'${ibiz.tempPath:/tempPath/}'}")
String strTempPath;
@Bean
public FilterRegistrationBean iBizSysFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean(new net.ibizsys.paas.web.WebFilter());
Map<String, String> params = new HashMap<String, String>();
params.put("WEBCONTEXT", "${pub.getPKGCodeName()}.srv.web.WebContext");
params.put("AUTHFILTER", strAuthFilter);
params.put("AUTHPATH", "/ibizutil/uaclogin.do");
params.put("FILEPATH", strFilePath);
params.put("TEMPPATH", strTempPath);
registration.setInitParameters(params);
registration.setName("iBizSysFilter");
registration.addUrlPatterns("/*");
return registration;
}
@Bean
public ServletRegistrationBean remoteLoginServlet() {
ServletRegistrationBean registration = new ServletRegistrationBean(new net.ibizsys.paas.web.util.RemoteLoginServlet());
registration.setName("remoteLoginServlet");
registration.addUrlMappings("/api/login");
return registration;
}
@Component
public class ErrorPageConfig implements ErrorPageRegistrar {
@Override
public void registerErrorPages(ErrorPageRegistry errorPageRegistry) {
ErrorPage e401= new ErrorPage(HttpStatus.UNAUTHORIZED, "/ibizutil/401.html");
ErrorPage e404 = new ErrorPage(HttpStatus.NOT_FOUND, "/ibizutil/404.html");
ErrorPage e500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/ibizutil/500.html");
errorPageRegistry.addErrorPages(e401, e404, e500);
}
}
}
\ No newline at end of file
<#ibiztemplate>
FILENAME=${item.getPKGCodeName()}Conf.java
PUBOBJ=SysMSAppSpringBootMain
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%PKG%=${item.getPKGCodeName()?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.ms.springboot.app.${item.getPKGCodeName()?lower_case};
import java.io.IOException;
import java.util.Properties;
import javax.sql.DataSource;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
import org.springframework.boot.jdbc.DataSourceBuilder;
<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
</#if>
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import lombok.Data;
import net.ibizsys.paas.db.impl.DBDialectImpl;
import net.ibizsys.paas.util.ObjectHelper;
import net.ibizsys.paas.util.StringHelper;
import net.ibizsys.paas.util.SystemRTHelper;
@Configuration
@EnableTransactionManagement
@EnableConfigurationProperties({
${item.getPKGCodeName()}Conf.C3p0Properties.class,
${item.getPKGCodeName()}Conf.HibernateProperties.class
})
public class ${item.getPKGCodeName()}Conf {
@Autowired
private C3p0Properties c3p0Properties;
@Autowired
private HibernateProperties hibernateProp;
@Bean
@Qualifier("dataSource")
@ConfigurationProperties(prefix = "datasource.c3p0")
public DataSource dataSource() {
return DataSourceBuilder.create()
.type(com.mchange.v2.c3p0.ComboPooledDataSource.class)
.driverClassName(c3p0Properties.getDriverClass())
.url(c3p0Properties.getJdbcUrl())
.username(c3p0Properties.getUser())
.password(c3p0Properties.getPassword())
.build();
}
@Bean(name="dbDialect")
public DBDialectImpl dbDialect(){
try {
return (DBDialectImpl) ObjectHelper.create(c3p0Properties.getIbzDialect());
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
@Bean
public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
Properties hibernateProperties = new Properties();
hibernateProperties.put("hibernate.dialect", hibernateProp.getDialect());
hibernateProperties.put("hibernate.show_sql", hibernateProp.getShowSql());
hibernateProperties.put("hibernate.hbm2ddl.auto", hibernateProp.getDdlAuto());
hibernateProperties.put("hibernate.current_session_context_class",hibernateProp.getCurrentSessionContextClass());
sessionFactory.setHibernateProperties(hibernateProperties);
return sessionFactory;
}
@Bean
public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(sessionFactory);
return txManager;
}
@Value("${r'${ibiz.installDBModels:}'}")
String strInstallDBModels;
@Component
public class InstallDBCommandLineRunner implements CommandLineRunner{
@Override
public void run(String... var1) throws Exception{
if(!StringHelper.isNullOrEmpty(strInstallDBModels)){
SystemRTHelper.installDBModel(strInstallDBModels, false);
}
<#if sys.isEnableDynaSys()??>
//安装动态系统
SystemRTHelper.installDynaSys();
</#if>
}
}
@ConfigurationProperties(prefix = "hibernate")
@Data
static class HibernateProperties{
private String dialect;
private String ddlAuto;
private String showSql;
private String currentSessionContextClass;
}
@ConfigurationProperties(prefix = "datasource.c3p0")
@Data
static class C3p0Properties {
private String driverClass;
private String jdbcUrl;
private String user;
private String password;
private int maxPoolSize;
private int minPoolSize;
private int initialPoolSize;
private int maxIdleTime;
private int acquireIncrement;
private int maxStatements;
private int idleConnectionTestPeriod;
private String ibzDialect;
}
<#if sys.hasPSWFEngineType("ACTIVITI")>
@Bean
public org.activiti.spring.SpringProcessEngineConfiguration processEngineConfiguration(HibernateTransactionManager transactionManager, DataSource dataSource) {
org.activiti.spring.SpringProcessEngineConfiguration processEngineConfiguration = new org.activiti.spring.SpringProcessEngineConfiguration();
processEngineConfiguration.setDataSource(dataSource);
processEngineConfiguration.setTransactionManager(transactionManager);
processEngineConfiguration.setDatabaseSchemaUpdate("true");
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = null;
try {
resources = resolver.getResources("classpath*:/activiti/*.bpmn");
} catch (IOException e) {
e.printStackTrace();
}
processEngineConfiguration.setDeploymentResources(resources);
processEngineConfiguration.setDeploymentMode("single-resource");
return processEngineConfiguration;
}
@Bean
public org.activiti.spring.ProcessEngineFactoryBean processEngine(org.activiti.spring.SpringProcessEngineConfiguration processEngineConfiguration) {
org.activiti.spring.ProcessEngineFactoryBean processEngine = new org.activiti.spring.ProcessEngineFactoryBean();
processEngine.setProcessEngineConfiguration(processEngineConfiguration);
return processEngine;
}
@Bean
public org.activiti.engine.RepositoryService repositoryService(org.activiti.engine.ProcessEngine processEngine){
return processEngine.getRepositoryService();
}
@Bean
public org.activiti.engine.RuntimeService runtimeService(org.activiti.engine.ProcessEngine processEngine){
return processEngine.getRuntimeService();
}
@Bean
public org.activiti.engine.TaskService taskService(org.activiti.engine.ProcessEngine processEngine){
return processEngine.getTaskService();
}
@Bean
public org.activiti.engine.FormService formService(org.activiti.engine.ProcessEngine processEngine){
return processEngine.getFormService();
}
@Bean
public org.activiti.engine.HistoryService historyService(org.activiti.engine.ProcessEngine processEngine){
return processEngine.getHistoryService();
}
@Bean
public org.activiti.engine.IdentityService identityService(org.activiti.engine.ProcessEngine processEngine){
return processEngine.getIdentityService();
}
@Bean
public org.activiti.engine.ManagementService managementService(org.activiti.engine.ProcessEngine processEngine){
return processEngine.getManagementService();
}
</#if>
}
\ No newline at end of file
<#ibiztemplate>
FILENAME=${item.getPKGCodeName()}Main.java
PUBOBJ=SysMSAppSpringBootMain
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%PKG%=${item.getPKGCodeName()?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.ms.springboot.app.${item.getPKGCodeName()?lower_case};
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.openfeign.EnableFeignClients;
<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
</#if>
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
import org.springframework.context.annotation.Configuration;
import net.ibizsys.paas.util.spring.AnnotationBeanNameGenerator;
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
@EnableWebSecurity
</#if>
@SpringBootApplication(exclude = {
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration.class,
<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class,
</#if>
org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration.class<#if sys.hasPSWFEngineType("ACTIVITI")>,
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class,
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration.class</#if>
})
@EnableEurekaClient
@Configuration
@ServletComponentScan
<#if sys.getAllPSSubSysServiceAPIs()??>
@EnableFeignClients(basePackages = {
<#list sys.getAllPSSubSysServiceAPIs() as sysServiceAPI>
<#if sysServiceAPI.getClassOrPkgName("PKG",pub)??>
"${sysServiceAPI.getClassOrPkgName("PKG",pub)}.srv.api",
<#else>
"${pub.getPKGCodeName()}.srv.api",
</#if>
</#list>
})
</#if>
@ComponentScans({
@ComponentScan(basePackages = {"${pub.getPKGCodeName()}.${item.getPKGCodeName()?lower_case}", "${pub.getPKGCodeName()}.ms.springboot.app.${item.getPKGCodeName()?lower_case}"}),
<#list sys.getAllPSSysRefs() as psSubSys>
<#if (psSubSys.getSysRefType() == 'SUBSYS' )>
@ComponentScan(basePackages = {"net.ibizsys.psrt.srv"},nameGenerator = AnnotationBeanNameGenerator.class),
<#else>
@ComponentScan(basePackages = {"${psSubSys.getClassOrPkgName("PKG",pub)}.srv"},nameGenerator = AnnotationBeanNameGenerator.class),
</#if>
</#list>
@ComponentScan(basePackages = {"${pub.getPKGCodeName()}.srv"},nameGenerator = AnnotationBeanNameGenerator.class)
})
public class ${item.getPKGCodeName()}Main extends SpringBootServletInitializer{
// test
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(${item.getPKGCodeName()}Main.class);
builder.run(args) ;
}
}
<#ibiztemplate>
FILENAME=application.yml
PUBOBJ=WebAppConfig
</#ibiztemplate>
spring:
profiles:
active: dev
\ No newline at end of file
<#ibiztemplate>
FILENAME=application-api${item.getName()?lower_case}.yml
PUBOBJ=SysMSDepAPISpringBootConfig
MODELS=PSSYSTEM
</#ibiztemplate>
server:
port: ${item.getHttpPort()?c}
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
servlet:
contextPath: /${pub.getCodeName()}
<#elseif (sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE")=='1.5.13.RELEASE')>
contextPath: /${pub.getCodeName()}
</#if>
${item.getPSSysServiceAPI().codeName?lower_case}:
oauth2:
client:
accessTokenUri: ${item.getPSSysServiceAPI().getAuthCheckTokenUrl()}
clientId: ${item.getPSSysServiceAPI().getAuthClientId()}
clientSecret: ${item.getPSSysServiceAPI().getAuthClientSecret()}
grantType: ${item.getPSSysServiceAPI().getAuthMode()?lower_case}
spring:
application:
name: ${item.getPSSysServiceAPI().getServiceCodeName()}
<#if item.getPSDCMSPlatform()??>
<#assign msplatform = item.getPSDCMSPlatform()>
<#if msplatform??>
<#assign servicecenter = msplatform.getPSDCMSPlatformFunc("SERVICECENTER")>
</#if>
<#if servicecenter??>
eureka:
host:
name: ${servicecenter.getRemoteAddress()}
client:
enabled: false
serviceUrl:
defaultZone: ${servicecenter.getServiceUrl()}
instance:
# instance-id: ${r'${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}${server.servlet.contextPath}'}
statusPageUrlPath: ${r'${'}<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>server.servlet.contextPath<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>server.contextPath</#if>${r'}'}/info
healthCheckUrlPath: ${r'${'}<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>server.servlet.contextPath<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>server.contextPath</#if>${r'}'}/health
prefer-ip-address: true
healthcheck:
enable: true
<#else>
# aaaaaa
</#if>
</#if>
management:
endpoints:
web:
exposure:
include: loggers
ribbon:
ReadTimeout: 60000
ConnectTimeout: 60000
feign:
hystrix:
enabled: true
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 60000
#这里将线程策略设置为SEMAPHORE
strategy: SEMAPHORE
ibiz:
authFilter: false
filePath: ${item.getPSDCMSPlatformNode().getWorkshopPath()}/${item.getId()}/SRFEX_FILE/
tempPath: ${item.getPSDCMSPlatformNode().getWorkshopPath()}/${item.getId()}/SRFEX_TEMP/
installDBModels: <#list item.getPSSysServiceAPI().getPSSystem().getAllPSSubSysRefs() as psSubSys><#if (psSubSys.id=='IBZ5BASE')>PSRUNTIME;</#if></#list>${item.getPSSysServiceAPI().getPSSystem().getCodeName()}
<#if sys.isEnableDynaSys()??>
dynaSysInstId: defaultinst
</#if>
cas:
serverUrl: https://passport.ibiz5.com/cas
redirectUrl: http://${item.getPSDCMSPlatformNode().getSSHIPAddr()}:${item.getHttpPort()?c}
<#if sys.getAllPSSubSysServiceAPIs()??>
client:
<#list sys.getAllPSSubSysServiceAPIs() as subSysServiceAPI>
${subSysServiceAPI.getCodeName()?lower_case}:
service: ${subSysServiceAPI.getServiceCodeName()?lower_case}
url:
</#list>
</#if>
<#if item.getPSDBDevInst()??>
<#assign dbinst = item.getPSDBDevInst()>
datasource:
c3p0:
jdbcUrl: ${dbinst.getConnUrl()}
user: ${dbinst.getUserName()}
password: '${dbinst.getPassword()}'
driverClass: <#if (dbinst.getDBType()=='MYSQL5')>com.mysql.jdbc.Driver<#elseif (dbinst.getDBType()=='DB2')>com.ibm.db2.jcc.DB2Driver<#elseif (dbinst.getDBType()=='ORACLE')>oracle.jdbc.driver.OracleDriver<#elseif (dbinst.getDBType()=='SQLSERVER')>com.microsoft.sqlserver.jdbc.SQLServerDriver<#elseif (dbinst.getDBType()=='POSTGRESQL')>org.postgresql.Driver<#elseif (dbinst.getDBType()=='PPAS')>com.edb.Driver</#if>
maxPoolSize: 100
minPoolSize: 10
initialPoolSize: 20
maxIdleTime: 600
acquireIncrement: 5
maxStatements: 5
idleConnectionTestPeriod: 60
ibzDialect: <#if ( dbinst.getDBType() == 'DB2')>net.ibizsys.paas.db.impl.DB2DialectImpl<#elseif ( dbinst.getDBType() == 'MYSQL5')>net.ibizsys.paas.db.impl.MySQL5DialectImpl<#elseif ( dbinst.getDBType() == 'ORACLE')>net.ibizsys.paas.db.impl.OracleDialectImpl<#elseif ( dbinst.getDBType() == 'SQLSERVER')>net.ibizsys.paas.db.impl.MSSQLDialectImpl<#elseif ( dbinst.getDBType() == 'POSTGRESQL')>net.ibizsys.paas.db.impl.PostgreSQLDialectImpl<#elseif ( dbinst.getDBType() == 'PPAS')>net.ibizsys.paas.db.impl.PPASDialectImpl</#if>
hibernate:
dialect: <#if ( dbinst.getDBType() == 'DB2')>org.hibernate.dialect.DB2Dialect<#elseif ( dbinst.getDBType() == 'MYSQL5')>org.hibernate.dialect.MySQL5Dialect<#elseif ( dbinst.getDBType() == 'ORACLE')> org.hibernate.dialect.Oracle10gDialect<#elseif ( dbinst.getDBType() == 'SQLSERVER')>org.hibernate.dialect.SQLServer2008Dialect<#elseif ( dbinst.getDBType() == 'POSTGRESQL')>org.hibernate.dialect.PostgreSQL9Dialect<#elseif ( dbinst.getDBType() == 'PPAS')>org.hibernate.dialect.PostgreSQL9Dialect</#if>
ddl_auto: create-drop
show_sql: true
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
</#if>
<#ibiztemplate>
FILENAME=application-app${item.getName()?lower_case}.yml
PUBOBJ=SysMSDepAppSpringBootConfig
MODELS=PSSYSTEM
</#ibiztemplate>
server:
port: ${item.getHttpPort()?c}
<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>
servlet:
contextPath: /${pub.getCodeName()}
<#elseif (sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE")=='1.5.13.RELEASE')>
contextPath: /${pub.getCodeName()}
</#if>
compression:
enabled: true
mimeTypes: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/javascript
spring:
application:
name: ${item.getPSApplication().getPKGCodeName()?lower_case}
<#if item.getPSDCMSPlatform()??>
<#assign msplatform = item.getPSDCMSPlatform()>
<#if msplatform??>
<#assign servicecenter = msplatform.getPSDCMSPlatformFunc("SERVICECENTER")>
</#if>
</#if>
<#if servicecenter??>
eureka:
host:
name: ${servicecenter.getRemoteAddress()}
client:
enabled: false
serviceUrl:
defaultZone: ${servicecenter.getServiceUrl()}
instance:
# instance-id: ${r'${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}${server.servlet.contextPath}'}
statusPageUrlPath: ${r'${'}<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>server.servlet.contextPath<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>server.contextPath</#if>${r'}'}/info
healthCheckUrlPath: ${r'${'}<#if ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '2.0.1.RELEASE')>server.servlet.contextPath<#elseif ( sfstyle.getStyleParam("springboot.version","2.0.1.RELEASE") == '1.5.13.RELEASE')>server.contextPath</#if>${r'}'}/health
prefer-ip-address: true
healthcheck:
enable: true
<#else>
# aaaaaa
</#if>
management:
endpoints:
web:
exposure:
include: loggers
ribbon:
ReadTimeout: 60000
ConnectTimeout: 60000
feign:
hystrix:
enabled: true
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 60000
#这里将线程策略设置为SEMAPHORE
strategy: SEMAPHORE
ibiz:
authFilter: ${item.getPSApplication().isEnableUACLogin()?c}
filePath: ${item.getPSDCMSPlatformNode().getWorkshopPath()}/${item.getId()}/SRFEX_FILE/
tempPath: ${item.getPSDCMSPlatformNode().getWorkshopPath()}/${item.getId()}/SRFEX_TEMP/
installDBModels: <#list item.getPSApplication().getPSSystem().getAllPSSysRefs() as psSubSysRef><#if psSubSysRef.getPSSubSysId()??><#if (psSubSysRef.getPSSubSysId()=='IBZ5BASE')>PSRUNTIME;</#if></#if></#list>${item.getPSApplication().getPSSystem().getCodeName()}
printPath: print/
reportPath: report/
app:
${item.getPSApplication().getPKGCodeName()?lower_case}url: http://${item.getPSDCMSPlatformNode().getSSHIPAddr()}:${item.getHttpPort()?c}/${pub.getCodeName()}/${item.getPSApplication().getPKGCodeName()?lower_case}
<#if item.getPSApplication().isEnableUACLogin()>
cas:
serverUrl: <#if item.getMemo()??>http://172.16.170.164:8080/UACServer<#else>${item.getMemo()}</#if>
serverName: http://${item.getPSDCMSPlatformNode().getSSHIPAddr()}:${item.getHttpPort()?c}
logoutUrl: <#if item.getMemo()??>http://172.16.170.164:8080/UACServer<#else>${item.getMemo()}</#if>/logout
<#else>
</#if>
<#if sys.getAllPSSubSysServiceAPIs()??>
client:
<#list sys.getAllPSSubSysServiceAPIs() as subSysServiceAPI>
${subSysServiceAPI.getCodeName()?lower_case}:
service: ${subSysServiceAPI.getServiceCodeName()?lower_case}
url:
</#list>
</#if>
<#if item.getPSDBDevInst()??>
<#assign dbinst = item.getPSDBDevInst()>
datasource:
c3p0:
jdbcUrl: ${dbinst.getConnUrl()}
user: ${dbinst.getUserName()}
password: '${dbinst.getPassword()}'
driverClass: <#if (dbinst.getDBType()=='MYSQL5')>com.mysql.jdbc.Driver<#elseif (dbinst.getDBType()=='DB2')>com.ibm.db2.jcc.DB2Driver<#elseif (dbinst.getDBType()=='ORACLE')>oracle.jdbc.driver.OracleDriver<#elseif (dbinst.getDBType()=='SQLSERVER')>com.microsoft.sqlserver.jdbc.SQLServerDriver<#elseif (dbinst.getDBType()=='POSTGRESQL')>org.postgresql.Driver<#elseif (dbinst.getDBType()=='PPAS')>com.edb.Driver</#if>
maxPoolSize: 100
minPoolSize: 10
initialPoolSize: 20
maxIdleTime: 600
acquireIncrement: 5
maxStatements: 5
idleConnectionTestPeriod: 60
ibzDialect: <#if ( dbinst.getDBType() == 'DB2')>net.ibizsys.paas.db.impl.DB2DialectImpl<#elseif ( dbinst.getDBType() == 'MYSQL5')>net.ibizsys.paas.db.impl.MySQL5DialectImpl<#elseif ( dbinst.getDBType() == 'ORACLE')>net.ibizsys.paas.db.impl.OracleDialectImpl<#elseif ( dbinst.getDBType() == 'SQLSERVER')>net.ibizsys.paas.db.impl.MSSQLDialectImpl<#elseif ( dbinst.getDBType() == 'POSTGRESQL')>net.ibizsys.paas.db.impl.PostgreSQLDialectImpl<#elseif ( dbinst.getDBType() == 'PPAS')>net.ibizsys.paas.db.impl.PPASDialectImpl</#if>
hibernate:
dialect: <#if ( dbinst.getDBType() == 'DB2')>org.hibernate.dialect.DB2Dialect<#elseif ( dbinst.getDBType() == 'MYSQL5')>org.hibernate.dialect.MySQL5Dialect<#elseif ( dbinst.getDBType() == 'ORACLE')> org.hibernate.dialect.Oracle10gDialect<#elseif ( dbinst.getDBType() == 'SQLSERVER')>org.hibernate.dialect.SQLServer2008Dialect<#elseif ( dbinst.getDBType() == 'POSTGRESQL')>org.hibernate.dialect.PostgreSQL9Dialect<#elseif ( dbinst.getDBType() == 'PPAS')>org.hibernate.dialect.PostgreSQL9Dialect</#if>
ddl_auto: create-drop
show_sql: true
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
</#if>
<#ibiztemplate>
FILENAME=logback-spring.xml
PUBOBJ=SpringAppContext
</#ibiztemplate>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<property name="LOG_PATH" value="logs" />
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %-40.40logger{39} : %msg%n" />
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="LOG_PATTERN2" value="${r'${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([${LOG_LEVEL_PATTERN:-%5p}]) %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}'}" />
<!-- 控制台输出 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${r'${LOG_PATTERN}'}</pattern>
</encoder>
</appender>
<!-- LOGSTASH -->
<appender name="LOGSTASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>172.16.102.211:9601</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"appname":"${sys.codeName?lower_case}"}</customFields>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${r'${LOG_PATH}'}/${sys.codeName?lower_case}.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${r'${LOG_PATTERN}'}</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>100MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 平台SQL日志 -->
<logger name="net.ibizsys.paas.dao" level="INFO" />
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="Console" />
<appender-ref ref="file" />
<!-- <appender-ref ref="LOGSTASH" /> -->
</root>
</configuration>
\ No newline at end of file
<#ibiztemplate>
FILENAME=${item.codeName}_${item.getWFVersion()?c}.bpmn
PUBOBJ=SysActivitiWFVersionModelBaseCode
</#ibiztemplate>
<#assign bpmnmodel = item.getBPMNModel()>
<#if bpmnmodel != "">
${bpmnmodel?replace("__WFVERSIONID__","WFVER"+item.getId())}
<#comment>${bpmnmodel?replace("isExecutable",item.getId())}</#comment>
</#if>
\ No newline at end of file
<#ibiztemplate>
FILENAME=${sys.name?lower_case}.${sysrun.getPSDBDevInst().getDBType()?lower_case}.last.check.sql
PUBOBJ=SysDMItem
MODELS=PSSYSTEM
SQLNAME=${sys.name?lower_case}.${sysrun.getPSDBDevInst().getDBType()?lower_case}
</#ibiztemplate>
<#if item.getDBType()??>
<#assign dbtype = item.getDBType()>
<#if sys.getLastTestPSSysDMItem(dbtype)??>
<#assign dmitem = sys.getLastTestPSSysDMItem(dbtype)>
${dmitem.getTestSql()}
</#if>
</#if>
\ No newline at end of file
<#ibiztemplate>
FILENAME=${sys.name?lower_case}.${sysrun.getPSDBDevInst().getDBType()?lower_case}.last.sql
PUBOBJ=SysDMItem
MODELS=PSSYSTEM
SQLNAME=${sys.name?lower_case}.${sysrun.getPSDBDevInst().getDBType()?lower_case}
</#ibiztemplate>
<#assign alltype='TABLE|COLUMN|FKEY|INDEX|VIEW'>
<#assign types=alltype?split('|')>
<#list types as type>
<#list sys.getAllPSSysDMItems() as dmitem>
<#if (dmitem.getPSSystemDBCfgId()==item.id) && (dmitem.getDBObjType() == type)>
<#if dmitem.getDropSql()?? && dmitem.getDropSql()?length gt 0>
${dmitem.getDropSql()};
/**分割线**/
</#if>
<#if dmitem.getBeforeCreateSql()?? && dmitem.getBeforeCreateSql()?length gt 0>
${dmitem.getBeforeCreateSql()};
/**分割线**/
</#if>
<#if dmitem.getCreateSql()?? && dmitem.getCreateSql()?length gt 0>
${dmitem.getCreateSql()};
/**分割线**/
</#if>
<#if dmitem.getAfterCreateSql()?? && dmitem.getAfterCreateSql()?length gt 0>
${dmitem.getAfterCreateSql()};
/**分割线**/
</#if>
</#if>
</#list>
</#list>
<#ibiztemplate>
FILENAME=index.html
PUBOBJ=WebAppDefaultPage
</#ibiztemplate>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>正在跳转到链接...</title>
<meta http-equiv=content-type content="text/html; charset=UTF-8">
</head>
<script language="javascript">
window.location = "${sysrun.getPSApplication().getAppFolder()?lower_case}/index.html";
</script>
<body>
如果不能自动跳转,请点击<a href="${sysrun.getPSApplication().getAppFolder()?lower_case}/index.html">本链接</a>
</body>
</html>
\ No newline at end of file
<#ibiztemplate>
FILENAME=ibizbuildsrv.sh
PUBOBJ=WebAppConfig
MODELS=PSSYSTEM
</#ibiztemplate>
#!/bin/bash
<#if sysrun.isRebuildMode()??>
mvn clean -f ../srv_${pub.getCodeName()}/pom.xml
</#if>
mvn install -f ../srv_${pub.getCodeName()}/pom.xml
\ No newline at end of file
此差异已折叠。
此差异已折叠。
<#ibiztemplate>
FILENAME=pom.xml
PUBOBJ=WebAppConfig
</#ibiztemplate>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>srv_${pub.codeName}</artifactId>
<packaging>jar</packaging>
<parent>
<groupId>${pub.getPKGCodeName()}</groupId>
<artifactId>${pub.codeName}</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
</project>
\ No newline at end of file
<#ibiztemplate>
FILENAME=${item.codeName}Controller.java
PUBOBJ=SysAppViewControllerCode
MODELS=PSAPPVIEW
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%APPFOLDER%=${app.getAppFolder()?lower_case}
%APPMOD%=${item.getPSAppModule().codeName?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.${app.getAppFolder()?lower_case}.${item.getPSAppModule().codeName?lower_case}.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value = "/${app.getAppFolder()}/${item.getPSAppModule().codeName}/${item.codeName}.do")
public class ${item.codeName}Controller extends ${item.codeName}ControllerBase{
public ${item.codeName}Controller() throws Exception{
super();
}
}
\ No newline at end of file
//处理数据视图 ${item.name}
if(StringHelper.compare(strCtrlId,"${item.name}",true) == 0)
{
if(StringHelper.compare(strAction,net.ibizsys.paas.control.dataview.IDataView.FetchAction,true) == 0)
{
return on${srfclassname('${item.name}')}FetchAction();
}
}
\ No newline at end of file
/*
*表格 ${item.name} 后台处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}FetchAction() throws Exception{
MDAjaxActionResult mdAjaxActionResult = new MDAjaxActionResult();
Grid grid = this.getViewModel().get${srfclassname('${item.name}')}();
DEDataSetFetchContextImpl deDataSetFetchContextImpl = new DEDataSetFetchContextImpl(this.getWebContext());
fill${srfclassname('${item.name}')}FetchConditions(deDataSetFetchContextImpl);
DBFetchResult fetchResult = this.getService().fetch${item.getPSAjaxControlParam().getPSDEDataSet().codeName}(deDataSetFetchContextImpl);
mdAjaxActionResult.setTotalRow(fetchResult.getTotalRow());
fill${srfclassname('${item.name}')}FetchResult(mdAjaxActionResult,fetchResult.getDataSet().getDataTable(0));
fetchResult.getDataSet().close();
return mdAjaxActionResult ;
}
/**
* 填充表格搜索条件
* @param deDataSetFetchContextImpl
* @throws Exception
*/
protected void fill${srfclassname('${item.name}')}FetchConditions(DEDataSetFetchContextImpl deDataSetFetchContextImpl)throws Exception
{
// 获取动态条件
this.onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchSearchFormConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchURLConditions(deDataSetFetchContextImpl.getConditionList());
}
protected void onFill${srfclassname('${item.name}')}FetchURLConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
String strParentType = WebContext.getParentType(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentType))
return;
String strParentKey = WebContext.getParentKey(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentKey))
{
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_CUSTOM);
deDataSetCondImpl.setCustomCond("1<>1");
userConditions.add(deDataSetCondImpl);
return;
}
if(StringHelper.compare(strParentType, WebContext.PARAM_PARENTTYPE_DER1N, true)==0)
{
String strDER1N = WebContext.getDER1NId(this.getWebContext());
DER der = this.getSystemModel().getDER1N(strDER1N);
DEField defield = this.getDEModel().getDEField(der.pickupdefname(), false);
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(ICondition.CONDOP_EQ);
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strParentKey);
userConditions.add(deDataSetCondImpl);
return;
}
}
protected void onFill${srfclassname('${item.name}')}FetchSearchFormConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
java.util.Iterator<DEField> deFields = this.getDEModel().getDEFields();
while(deFields.hasNext())
{
DEField defield = deFields.next();
DEFSearchMode[] defSearchModes= defield.defsearchmodes();
if(defSearchModes == null)
continue;
for(DEFSearchMode defSearchMode:defSearchModes){
String strFormItemId = defSearchMode.name();
String strValue =getWebContext().getPostValue(strFormItemId.toLowerCase());
if (StringHelper.isNullOrEmpty(strValue))
continue;
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(defSearchMode.valueop());
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strValue);
userConditions.add(deDataSetCondImpl);
}
}
}
/**
* 填充搜索表单自定义搜索条件
* @param userConditions
* @param daQueryModelHelper
*/
protected void onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(ArrayList <IDEDataSetCond> userConditions)throws Exception
{
}
protected void fill${srfclassname('${item.name}')}FetchResult(MDAjaxActionResult fetchResult,IDataTable dt)throws Exception
{
Grid grid = this.getViewModel().getGrid();
if(dt.getCachedRowCount()==-1)
{
while(true )
{
IDataRow iDataRow = dt.next();
if(iDataRow==null)
break;
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
else
{
int nRows = dt.getCachedRowCount();
for(int i=0;i<nRows;i++)
{
IDataRow iDataRow = dt.getCachedRow(i);
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
}
/**
*
* @param dataItem
* @param object
* @return
* @throws Exception
*/
protected Object onGet${srfclassname('${item.name}')}DataItemValue(DataItem dataItem, Object object) throws Exception
{
return DataItemHelper.getValue(dataItem, this.getWebContext(), object);
}
\ No newline at end of file
//处理关系数据栏 ${item.name}
if(StringHelper.compare(strCtrlId,"${item.name}",true) == 0)
{
if(StringHelper.compare(strAction,net.ibizsys.paas.ctrlhandler.IDRBarHandler.ACTION_FETCH,true) == 0)
{
return on${srfclassname('${item.name}')}FetchAction();
}
}
\ No newline at end of file
/*
*表格 ${item.name} 后台处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}FetchAction() throws Exception{
MDAjaxActionResult mdAjaxActionResult = new MDAjaxActionResult();
Grid grid = this.getViewModel().get${srfclassname('${item.name}')}();
DEDataSetFetchContextImpl deDataSetFetchContextImpl = new DEDataSetFetchContextImpl(this.getWebContext());
fill${srfclassname('${item.name}')}FetchConditions(deDataSetFetchContextImpl);
DBFetchResult fetchResult = this.getService().fetch${item.getPSAjaxControlParam().getPSDEDataSet().codeName}(deDataSetFetchContextImpl);
mdAjaxActionResult.setTotalRow(fetchResult.getTotalRow());
fill${srfclassname('${item.name}')}FetchResult(mdAjaxActionResult,fetchResult.getDataSet().getDataTable(0));
fetchResult.getDataSet().close();
return mdAjaxActionResult ;
}
/**
* 填充表格搜索条件
* @param deDataSetFetchContextImpl
* @throws Exception
*/
protected void fill${srfclassname('${item.name}')}FetchConditions(DEDataSetFetchContextImpl deDataSetFetchContextImpl)throws Exception
{
// 获取动态条件
this.onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchSearchFormConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchURLConditions(deDataSetFetchContextImpl.getConditionList());
}
protected void onFill${srfclassname('${item.name}')}FetchURLConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
String strParentType = WebContext.getParentType(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentType))
return;
String strParentKey = WebContext.getParentKey(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentKey))
{
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_CUSTOM);
deDataSetCondImpl.setCustomCond("1<>1");
userConditions.add(deDataSetCondImpl);
return;
}
if(StringHelper.compare(strParentType, WebContext.PARAM_PARENTTYPE_DER1N, true)==0)
{
String strDER1N = WebContext.getDER1NId(this.getWebContext());
DER der = this.getSystemModel().getDER1N(strDER1N);
DEField defield = this.getDEModel().getDEField(der.pickupdefname(), false);
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(ICondition.CONDOP_EQ);
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strParentKey);
userConditions.add(deDataSetCondImpl);
return;
}
}
protected void onFill${srfclassname('${item.name}')}FetchSearchFormConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
java.util.Iterator<DEField> deFields = this.getDEModel().getDEFields();
while(deFields.hasNext())
{
DEField defield = deFields.next();
DEFSearchMode[] defSearchModes= defield.defsearchmodes();
if(defSearchModes == null)
continue;
for(DEFSearchMode defSearchMode:defSearchModes){
String strFormItemId = defSearchMode.name();
String strValue =getWebContext().getPostValue(strFormItemId.toLowerCase());
if (StringHelper.isNullOrEmpty(strValue))
continue;
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(defSearchMode.valueop());
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strValue);
userConditions.add(deDataSetCondImpl);
}
}
}
/**
* 填充搜索表单自定义搜索条件
* @param userConditions
* @param daQueryModelHelper
*/
protected void onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(ArrayList <IDEDataSetCond> userConditions)throws Exception
{
}
protected void fill${srfclassname('${item.name}')}FetchResult(MDAjaxActionResult fetchResult,IDataTable dt)throws Exception
{
Grid grid = this.getViewModel().getGrid();
if(dt.getCachedRowCount()==-1)
{
while(true )
{
IDataRow iDataRow = dt.next();
if(iDataRow==null)
break;
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
else
{
int nRows = dt.getCachedRowCount();
for(int i=0;i<nRows;i++)
{
IDataRow iDataRow = dt.getCachedRow(i);
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
}
/**
*
* @param dataItem
* @param object
* @return
* @throws Exception
*/
protected Object onGet${srfclassname('${item.name}')}DataItemValue(DataItem dataItem, Object object) throws Exception
{
return DataItemHelper.getValue(dataItem, this.getWebContext(), object);
}
\ No newline at end of file
//处理表单 ${item.name}
if(StringHelper.compare(strCtrlId,"${item.name}",true) == 0)
{
if(StringHelper.compare(strAction,net.ibizsys.paas.control.form.IEditForm.LoadAction,true) == 0)
{
return on${srfclassname('${item.name}')}LoadAction();
}
if(StringHelper.compare(strAction,net.ibizsys.paas.control.form.IEditForm.CreateAction,true) == 0)
{
return on${srfclassname('${item.name}')}CreateAction();
}
if(StringHelper.compare(strAction,net.ibizsys.paas.control.form.IEditForm.UpdateAction,true) == 0)
{
return on${srfclassname('${item.name}')}UpdateAction();
}
}
\ No newline at end of file
/*
*表单 ${item.name} 后台 Create处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}CreateAction() throws Exception{
SDAjaxActionResult sdAjaxActionResult = new SDAjaxActionResult();
return sdAjaxActionResult ;
}
/*
*表单 ${item.name} 后台 Update 处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}UpdateAction() throws Exception{
SDAjaxActionResult sdAjaxActionResult = new SDAjaxActionResult();
return sdAjaxActionResult ;
}
/*
*表单 ${item.name} 后台 Load 处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}LoadAction() throws Exception{
SDAjaxActionResult sdAjaxActionResult = new SDAjaxActionResult();
return sdAjaxActionResult ;
}
\ No newline at end of file
//处理表格 ${item.name}
if(StringHelper.compare(strCtrlId,"${item.name}",true) == 0)
{
if(StringHelper.compare(strAction,net.ibizsys.paas.control.grid.IGrid.FetchAction,true) == 0)
{
return on${srfclassname('${item.name}')}FetchAction();
}
}
\ No newline at end of file
/*
*表格 ${item.name} 后台处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}FetchAction() throws Exception{
MDAjaxActionResult mdAjaxActionResult = new MDAjaxActionResult();
Grid grid = this.getViewModel().get${srfclassname('${item.name}')}();
DEDataSetFetchContextImpl deDataSetFetchContextImpl = new DEDataSetFetchContextImpl(this.getWebContext());
fill${srfclassname('${item.name}')}FetchConditions(deDataSetFetchContextImpl);
DBFetchResult fetchResult = this.getService().fetch${item.getPSAjaxControlParam().getPSDEDataSet().codeName}(deDataSetFetchContextImpl);
mdAjaxActionResult.setTotalRow(fetchResult.getTotalRow());
fill${srfclassname('${item.name}')}FetchResult(mdAjaxActionResult,fetchResult.getDataSet().getDataTable(0));
fetchResult.getDataSet().close();
return mdAjaxActionResult ;
}
/**
* 填充表格搜索条件
* @param deDataSetFetchContextImpl
* @throws Exception
*/
protected void fill${srfclassname('${item.name}')}FetchConditions(DEDataSetFetchContextImpl deDataSetFetchContextImpl)throws Exception
{
// 获取动态条件
this.onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchSearchFormConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchURLConditions(deDataSetFetchContextImpl.getConditionList());
}
protected void onFill${srfclassname('${item.name}')}FetchURLConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
String strParentType = WebContext.getParentType(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentType))
return;
String strParentKey = WebContext.getParentKey(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentKey))
{
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_CUSTOM);
deDataSetCondImpl.setCustomCond("1<>1");
userConditions.add(deDataSetCondImpl);
return;
}
if(StringHelper.compare(strParentType, WebContext.PARAM_PARENTTYPE_DER1N, true)==0)
{
String strDER1N = WebContext.getDER1NId(this.getWebContext());
DER der = this.getSystemModel().getDER1N(strDER1N);
DEField defield = this.getDEModel().getDEField(der.pickupdefname(), false);
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(ICondition.CONDOP_EQ);
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strParentKey);
userConditions.add(deDataSetCondImpl);
return;
}
}
protected void onFill${srfclassname('${item.name}')}FetchSearchFormConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
java.util.Iterator<DEField> deFields = this.getDEModel().getDEFields();
while(deFields.hasNext())
{
DEField defield = deFields.next();
DEFSearchMode[] defSearchModes= defield.defsearchmodes();
if(defSearchModes == null)
continue;
for(DEFSearchMode defSearchMode:defSearchModes){
String strFormItemId = defSearchMode.name();
String strValue =getWebContext().getPostValue(strFormItemId.toLowerCase());
if (StringHelper.isNullOrEmpty(strValue))
continue;
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(defSearchMode.valueop());
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strValue);
userConditions.add(deDataSetCondImpl);
}
}
}
/**
* 填充搜索表单自定义搜索条件
* @param userConditions
* @param daQueryModelHelper
*/
protected void onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(ArrayList <IDEDataSetCond> userConditions)throws Exception
{
}
protected void fill${srfclassname('${item.name}')}FetchResult(MDAjaxActionResult fetchResult,IDataTable dt)throws Exception
{
Grid grid = this.getViewModel().getGrid();
if(dt.getCachedRowCount()==-1)
{
while(true )
{
IDataRow iDataRow = dt.next();
if(iDataRow==null)
break;
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
else
{
int nRows = dt.getCachedRowCount();
for(int i=0;i<nRows;i++)
{
IDataRow iDataRow = dt.getCachedRow(i);
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
}
/**
*
* @param dataItem
* @param object
* @return
* @throws Exception
*/
protected Object onGet${srfclassname('${item.name}')}DataItemValue(DataItem dataItem, Object object) throws Exception
{
return DataItemHelper.getValue(dataItem, this.getWebContext(), object);
}
\ No newline at end of file
//处理搜索表单 ${item.name}
if(StringHelper.compare(strCtrlId,"${item.name}",true) == 0)
{
if(StringHelper.compare(strAction,net.ibizsys.paas.control.form.ISearchForm.SearchAction,true) == 0)
{
return on${srfclassname('${item.name}')}SearchAction();
}
}
\ No newline at end of file
/*
*搜索表单 ${item.name} 后台 Search 处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}SearchAction() throws Exception{
SDAjaxActionResult sdAjaxActionResult = new SDAjaxActionResult();
return sdAjaxActionResult ;
}
\ No newline at end of file
//处理表格 ${item.name}
if(StringHelper.compare(strCtrlId,"${item.name}",true) == 0)
{
if(StringHelper.compare(strAction,net.ibizsys.paas.control.grid.IGrid.FetchAction,true) == 0)
{
return on${srfclassname('${item.name}')}FetchAction();
}
}
\ No newline at end of file
/*
*表格 ${item.name} 后台处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}FetchAction() throws Exception{
MDAjaxActionResult mdAjaxActionResult = new MDAjaxActionResult();
Grid grid = this.getViewModel().get${srfclassname('${item.name}')}();
DEDataSetFetchContextImpl deDataSetFetchContextImpl = new DEDataSetFetchContextImpl(this.getWebContext());
fill${srfclassname('${item.name}')}FetchConditions(deDataSetFetchContextImpl);
DBFetchResult fetchResult = this.getService().fetch${item.getPSAjaxControlParam().getPSDEDataSet().codeName}(deDataSetFetchContextImpl);
mdAjaxActionResult.setTotalRow(fetchResult.getTotalRow());
fill${srfclassname('${item.name}')}FetchResult(mdAjaxActionResult,fetchResult.getDataSet().getDataTable(0));
fetchResult.getDataSet().close();
return mdAjaxActionResult ;
}
/**
* 填充表格搜索条件
* @param deDataSetFetchContextImpl
* @throws Exception
*/
protected void fill${srfclassname('${item.name}')}FetchConditions(DEDataSetFetchContextImpl deDataSetFetchContextImpl)throws Exception
{
// 获取动态条件
this.onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchSearchFormConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchURLConditions(deDataSetFetchContextImpl.getConditionList());
}
protected void onFill${srfclassname('${item.name}')}FetchURLConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
String strParentType = WebContext.getParentType(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentType))
return;
String strParentKey = WebContext.getParentKey(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentKey))
{
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_CUSTOM);
deDataSetCondImpl.setCustomCond("1<>1");
userConditions.add(deDataSetCondImpl);
return;
}
if(StringHelper.compare(strParentType, WebContext.PARAM_PARENTTYPE_DER1N, true)==0)
{
String strDER1N = WebContext.getDER1NId(this.getWebContext());
DER der = this.getSystemModel().getDER1N(strDER1N);
DEField defield = this.getDEModel().getDEField(der.pickupdefname(), false);
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(ICondition.CONDOP_EQ);
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strParentKey);
userConditions.add(deDataSetCondImpl);
return;
}
}
protected void onFill${srfclassname('${item.name}')}FetchSearchFormConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
java.util.Iterator<DEField> deFields = this.getDEModel().getDEFields();
while(deFields.hasNext())
{
DEField defield = deFields.next();
DEFSearchMode[] defSearchModes= defield.defsearchmodes();
if(defSearchModes == null)
continue;
for(DEFSearchMode defSearchMode:defSearchModes){
String strFormItemId = defSearchMode.name();
String strValue =getWebContext().getPostValue(strFormItemId.toLowerCase());
if (StringHelper.isNullOrEmpty(strValue))
continue;
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(defSearchMode.valueop());
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strValue);
userConditions.add(deDataSetCondImpl);
}
}
}
/**
* 填充搜索表单自定义搜索条件
* @param userConditions
* @param daQueryModelHelper
*/
protected void onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(ArrayList <IDEDataSetCond> userConditions)throws Exception
{
}
protected void fill${srfclassname('${item.name}')}FetchResult(MDAjaxActionResult fetchResult,IDataTable dt)throws Exception
{
Grid grid = this.getViewModel().getGrid();
if(dt.getCachedRowCount()==-1)
{
while(true )
{
IDataRow iDataRow = dt.next();
if(iDataRow==null)
break;
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
else
{
int nRows = dt.getCachedRowCount();
for(int i=0;i<nRows;i++)
{
IDataRow iDataRow = dt.getCachedRow(i);
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
}
/**
*
* @param dataItem
* @param object
* @return
* @throws Exception
*/
protected Object onGet${srfclassname('${item.name}')}DataItemValue(DataItem dataItem, Object object) throws Exception
{
return DataItemHelper.getValue(dataItem, this.getWebContext(), object);
}
\ No newline at end of file
//处理流程导航栏 ${item.name}
if(StringHelper.compare(strCtrlId,"${item.name}",true) == 0)
{
if(StringHelper.compare(strAction,net.ibizsys.paas.control.grid.IGrid.FetchAction,true) == 0)
{
return on${srfclassname('${item.name}')}FetchAction();
}
}
\ No newline at end of file
/*
*表格 ${item.name} 后台处理
*/
protected AjaxActionResult on${srfclassname('${item.name}')}FetchAction() throws Exception{
MDAjaxActionResult mdAjaxActionResult = new MDAjaxActionResult();
Grid grid = this.getViewModel().get${srfclassname('${item.name}')}();
DEDataSetFetchContextImpl deDataSetFetchContextImpl = new DEDataSetFetchContextImpl(this.getWebContext());
fill${srfclassname('${item.name}')}FetchConditions(deDataSetFetchContextImpl);
DBFetchResult fetchResult = this.getService().fetch${item.getPSAjaxControlParam().getPSDEDataSet().codeName}(deDataSetFetchContextImpl);
mdAjaxActionResult.setTotalRow(fetchResult.getTotalRow());
fill${srfclassname('${item.name}')}FetchResult(mdAjaxActionResult,fetchResult.getDataSet().getDataTable(0));
fetchResult.getDataSet().close();
return mdAjaxActionResult ;
}
/**
* 填充表格搜索条件
* @param deDataSetFetchContextImpl
* @throws Exception
*/
protected void fill${srfclassname('${item.name}')}FetchConditions(DEDataSetFetchContextImpl deDataSetFetchContextImpl)throws Exception
{
// 获取动态条件
this.onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchSearchFormConditions(deDataSetFetchContextImpl.getConditionList());
this.onFill${srfclassname('${item.name}')}FetchURLConditions(deDataSetFetchContextImpl.getConditionList());
}
protected void onFill${srfclassname('${item.name}')}FetchURLConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
String strParentType = WebContext.getParentType(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentType))
return;
String strParentKey = WebContext.getParentKey(this.getWebContext());
if(StringHelper.isNullOrEmpty(strParentKey))
{
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_CUSTOM);
deDataSetCondImpl.setCustomCond("1<>1");
userConditions.add(deDataSetCondImpl);
return;
}
if(StringHelper.compare(strParentType, WebContext.PARAM_PARENTTYPE_DER1N, true)==0)
{
String strDER1N = WebContext.getDER1NId(this.getWebContext());
DER der = this.getSystemModel().getDER1N(strDER1N);
DEField defield = this.getDEModel().getDEField(der.pickupdefname(), false);
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(ICondition.CONDOP_EQ);
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strParentKey);
userConditions.add(deDataSetCondImpl);
return;
}
}
protected void onFill${srfclassname('${item.name}')}FetchSearchFormConditions(ArrayList<IDEDataSetCond> userConditions)throws Exception
{
java.util.Iterator<DEField> deFields = this.getDEModel().getDEFields();
while(deFields.hasNext())
{
DEField defield = deFields.next();
DEFSearchMode[] defSearchModes= defield.defsearchmodes();
if(defSearchModes == null)
continue;
for(DEFSearchMode defSearchMode:defSearchModes){
String strFormItemId = defSearchMode.name();
String strValue =getWebContext().getPostValue(strFormItemId.toLowerCase());
if (StringHelper.isNullOrEmpty(strValue))
continue;
DEDataSetCondImpl deDataSetCondImpl = new DEDataSetCondImpl();
deDataSetCondImpl.setCondType(IDEDataSetCond.CONDTYPE_DEFIELD);
deDataSetCondImpl.setCondOp(defSearchMode.valueop());
deDataSetCondImpl.setDEFName(defield.name());
deDataSetCondImpl.setCondValue(strValue);
userConditions.add(deDataSetCondImpl);
}
}
}
/**
* 填充搜索表单自定义搜索条件
* @param userConditions
* @param daQueryModelHelper
*/
protected void onFill${srfclassname('${item.name}')}FetchSearchFormCSMConditions(ArrayList <IDEDataSetCond> userConditions)throws Exception
{
}
protected void fill${srfclassname('${item.name}')}FetchResult(MDAjaxActionResult fetchResult,IDataTable dt)throws Exception
{
Grid grid = this.getViewModel().getGrid();
if(dt.getCachedRowCount()==-1)
{
while(true )
{
IDataRow iDataRow = dt.next();
if(iDataRow==null)
break;
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
else
{
int nRows = dt.getCachedRowCount();
for(int i=0;i<nRows;i++)
{
IDataRow iDataRow = dt.getCachedRow(i);
JSONObject jo = new JSONObject();
DataItem[] dataItems = grid.griddataitems();
for(DataItem dataItem:dataItems){
Object objValue = onGetGridDataItemValue(dataItem,iDataRow);
jo.put(dataItem.name(), objValue);
}
fetchResult.getRows().add(jo);
}
}
}
/**
*
* @param dataItem
* @param object
* @return
* @throws Exception
*/
protected Object onGet${srfclassname('${item.name}')}DataItemValue(DataItem dataItem, Object object) throws Exception
{
return DataItemHelper.getValue(dataItem, this.getWebContext(), object);
}
\ No newline at end of file
<#ibiztemplate>
FILENAME=${appview.codeName}${srfclassname('${item.name}')}Handler.java
PUBOBJ=SysAppViewAppCtrlHandlerCode
MODELS=PSAPPVIEW
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%APPFOLDER%=${app.getAppFolder()?lower_case}
%VIEWMOD%=${appview.getPSAppModule().codeName?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.${app.getAppFolder()?lower_case}.${appview.getPSAppModule().codeName?lower_case}.ctrlhandler;
import java.util.ArrayList;
import java.util.List;
public class ${appview.codeName}${srfclassname('${item.name}')}Handler extends ${appview.codeName}${srfclassname('${item.name}')}HandlerBase{
public ${appview.codeName}${srfclassname('${item.name}')}Handler(){
super();
}
}
\ No newline at end of file
import net.ibizsys.paas.core.DEDataSetFetchContext;
import net.ibizsys.paas.ctrlmodel.IDashboardModel;
import net.ibizsys.paas.db.DBFetchResult;
import net.ibizsys.paas.web.AjaxActionResult;
import net.ibizsys.paas.web.MDAjaxActionResult;
import net.ibizsys.paas.entity.IEntity;
import net.ibizsys.paas.ctrlmodel.IAppMenuModel;
public abstract class ${appview.codeName}${srfclassname('${item.name}')}HandlerBase extends ${pub.getBaseClassPKGCodeName()}.paas.ctrlhandler.${srfclassname('${item.getControlType()}')}HandlerBase{
protected ${app.getPKGCodeName()}${item.codeName}${srfclassname('${item.getControlType()}')}Model appMenuModel = null;
public ${appview.codeName}${srfclassname('${item.name}')}HandlerBase() {
super();
}
@Override
protected void onInit() throws Exception
{
super.onInit();
appMenuModel = (${app.getPKGCodeName()}${item.codeName}${srfclassname('${item.getControlType()}')}Model)this.getViewController().getCtrlModel("${item.name}");
}
@Override
protected IAppMenuModel getAppMenuModel()
{
return this.getRealAppMenuModel();
}
protected ${app.getPKGCodeName()}${item.codeName}${srfclassname('${item.getControlType()}')}Model getRealAppMenuModel(){
return this.appMenuModel ;
}
}
\ No newline at end of file
import net.ibizsys.paas.core.DEDataSetFetchContext;
import net.ibizsys.paas.ctrlmodel.IDashboardModel;
import net.ibizsys.paas.db.DBFetchResult;
import net.ibizsys.paas.web.AjaxActionResult;
import net.ibizsys.paas.web.MDAjaxActionResult;
import net.ibizsys.paas.entity.IEntity;
public abstract class ${appview.codeName}${srfclassname('${item.name}')}HandlerBase extends ${pub.getBaseClassPKGCodeName()}.paas.ctrlhandler.${srfclassname('${item.getControlType()}')}HandlerBase{
protected ${appview.codeName}${srfclassname('${item.name}')}Model dashboardModel = null;
public ${appview.codeName}${srfclassname('${item.name}')}HandlerBase() {
super();
}
@Override
protected void onInit() throws Exception
{
super.onInit();
dashboardModel = (${appview.codeName}${srfclassname('${item.name}')}Model)this.getViewController().getCtrlModel("${item.name}");
}
@Override
protected IDashboardModel getDashboardModel()
{
return this.getRealDashboardModel();
}
protected ${appview.codeName}${srfclassname('${item.name}')}Model getRealDashboardModel(){
return this.dashboardModel;
}
}
\ No newline at end of file
import net.ibizsys.paas.core.DEDataSetFetchContext;
import net.ibizsys.paas.ctrlmodel.IDataViewModel;
import net.ibizsys.paas.db.DBFetchResult;
import net.ibizsys.paas.web.AjaxActionResult;
import net.ibizsys.paas.web.MDAjaxActionResult;
public abstract class ${appview.codeName}${srfclassname('${item.name}')}HandlerBase extends ${pub.getBaseClassPKGCodeName()}.paas.ctrlhandler.${srfclassname('${item.getControlType()}')}HandlerBase{
protected ${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model dataViewModel = null;
public ${appview.codeName}${srfclassname('${item.name}')}HandlerBase() {
super();
}
@Override
protected void onInit() throws Exception
{
super.onInit();
dataViewModel = (${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model)this.getViewController().getCtrlModel("${item.name}");
}
@Override
protected IDataViewModel getDataViewModel()
{
return this.getRealDataViewModel();
}
protected ${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model getRealDataViewModel(){
return this.dataViewModel;
}
protected ${de.codeName}Service getRealService(){
return (${de.codeName}Service)this.getViewController().getService();
}
@Override
protected DBFetchResult fetchDEDataSet(DEDataSetFetchContext deDataSetFetchContext) throws Exception
{
return this.getRealService().fetch${item.getPSAjaxControlHandler().getPSDEDataSet().codeName}(deDataSetFetchContext);
}
<#if (item.getPSAjaxControlHandler().getTempMode()==2)>
@Override
public int getTempMode()
{
return TEMPMODE_MINOR;
}
</#if>
<#if (item.getPSAjaxControlHandler().getTempMode()==1)>
@Override
public int getTempMode()
{
return TEMPMODE_MAJOR;
}
</#if>
}
\ No newline at end of file
import net.ibizsys.paas.core.DEDataSetFetchContext;
import net.ibizsys.paas.ctrlmodel.IGridModel;
import net.ibizsys.paas.db.DBFetchResult;
import net.ibizsys.paas.web.AjaxActionResult;
import net.ibizsys.paas.web.MDAjaxActionResult;
import net.ibizsys.paas.entity.IEntity;
import net.ibizsys.paas.ctrlmodel.IDRBarModel;
public abstract class ${appview.codeName}${srfclassname('${item.name}')}HandlerBase extends ${pub.getBaseClassPKGCodeName()}.paas.ctrlhandler.${srfclassname('${item.getControlType()}')}HandlerBase{
protected ${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model drBarModel = null;
public ${appview.codeName}${srfclassname('${item.name}')}HandlerBase() {
super();
}
@Override
protected void onInit() throws Exception
{
super.onInit();
drBarModel = (${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model)this.getViewController().getCtrlModel("${item.name}");
}
@Override
protected IDRBarModel getDRBarModel()
{
return this.getRealDRBarModel();
}
protected ${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model getRealDRBarModel(){
return this.drBarModel ;
}
}
\ No newline at end of file
import net.ibizsys.paas.ctrlmodel.IEditFormModel;
import net.ibizsys.paas.entity.IEntity;
<#if item.view.isEnableWF()>
public abstract class ${appview.codeName}${srfclassname('${item.name}')}HandlerBase extends ${pub.getBaseClassPKGCodeName()}.pswf.ctrlhandler.WF${srfclassname('${item.getControlType()}')}HandlerBase{
<#else>
public abstract class ${appview.codeName}${srfclassname('${item.name}')}HandlerBase extends ${pub.getBaseClassPKGCodeName()}.paas.ctrlhandler.${srfclassname('${item.getControlType()}')}HandlerBase{
</#if>
protected ${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model editformModel = null;
public ${appview.codeName}${srfclassname('${item.name}')}HandlerBase() {
super();
}
@Override
protected void onInit() throws Exception
{
super.onInit();
editformModel = (${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model)this.getViewController().getCtrlModel("${item.name}");
}
@Override
protected IEditFormModel getEditFormModel()
{
return this.getRealEditFormModel();
}
protected ${de.codeName}${item.codeName}${srfclassname('${item.getControlType()}')}Model getRealEditFormModel(){
return this.editformModel ;
}
protected ${de.codeName}Service getRealService(){
return (${de.codeName}Service)this.getViewController().getService();
}
/**
* 准备部件成员处理对象
* @throws Exception
*/
@Override
protected void prepareCtrlItemHandlers()throws Exception
{
super.prepareCtrlItemHandlers();
<#list item.getPSDEFormItems() as formitem>
<#if (formitem.getItemHandlerType()??) && (formitem.getItemHandlerType()?length>0)>
//注册 '${formitem.name}'
${appview.codeName}${srfclassname('${item.name}')}${srfclassname('${formitem.name}')}Handler ${srfparamname('${formitem.name}')}Handler = new ${appview.codeName}${srfclassname('${item.name}')}${srfclassname('${formitem.name}')}Handler();
${srfparamname('${formitem.name}')}Handler.init(this.getEditFormModel(),this);
this.registerCtrlItemHandler(ITEMACTIONTYPE_FORMITEM+"${formitem.codeName}",${srfparamname('${formitem.name}')}Handler);
</#if>
</#list>
<#if item.getPSDEFormItemUpdates()??>
<#list item.getPSDEFormItemUpdates() as fiupdate>
//注册表单项更新 '${fiupdate.codeName}'
${appview.codeName}${srfclassname('${item.name}')}${srfclassname('${fiupdate.codeName}')}Handler ${srfparamname('${fiupdate.codeName}')}Handler = new ${appview.codeName}${srfclassname('${item.name}')}${srfclassname('${fiupdate.codeName}')}Handler();
${srfparamname('${fiupdate.codeName}')}Handler.init(this.getEditFormModel(),this);
this.registerCtrlItemHandler(ITEMACTIONTYPE_FORMITEMUPDATE+"${fiupdate.codeName}",${srfparamname('${fiupdate.codeName}')}Handler);
</#list>
</#if>
}
<#-- 加载草稿操作 -->
<#if item.getPSAjaxControlHandler().getDEActionName('loaddraft')??>
<#assign deactionname =item.getPSAjaxControlHandler().getDEActionName('loaddraft')>
<#if (deactionname?length>0)>
@Override
protected IEntity getDraftEntity()throws Exception
{
${de.codeName} entity = new ${de.codeName}();
fillDefaultValues(entity ,false);
this.getRealService().executeAction(${de.codeName}Service.ACTION_${deactionname?upper_case},entity);
return entity;
}
</#if>
</#if>
<#-- 加载草稿(从源数据)操作 -->
<#if item.getPSAjaxControlHandler().getDEActionName('loaddraftfrom')??>
<#assign deactionname =item.getPSAjaxControlHandler().getDEActionName('loaddraftfrom')>
<#if (deactionname?length>0)>
@Override
protected IEntity getDraftEntityFrom(Object objKeyValue)throws Exception
{
${de.codeName} entity = new ${de.codeName}();
entity.set(${de.codeName}.FIELD_${de.getKeyDEField().codeName?upper_case},objKeyValue);
this.getRealService().executeAction(${de.codeName}Service.ACTION_${deactionname?upper_case},entity);
return entity;
}
</#if>
</#if>
<#-- 加载操作 -->
<#if item.getPSAjaxControlHandler().getDEActionName('load')??>
<#assign deactionname =item.getPSAjaxControlHandler().getDEActionName('load')>
<#if (deactionname?length>0)>
@Override
protected IEntity getEntity(Object objKeyValue)throws Exception
{
${de.codeName} entity = new ${de.codeName}();
entity.set(${de.codeName}.FIELD_${de.getKeyDEField().codeName?upper_case},objKeyValue);
this.getRealService().executeAction(${de.codeName}Service.ACTION_${deactionname?upper_case},entity);
return entity;
}
</#if>
</#if>
<#-- 建立操作 -->
<#if item.getPSAjaxControlHandler().getDEActionName('create')??>
<#assign deactionname =item.getPSAjaxControlHandler().getDEActionName('create')>
<#if (deactionname?length>0)>
@Override
protected IEntity createEntity(IEntity iEntity)throws Exception
{
this.getRealService().executeAction(${de.codeName}Service.ACTION_${deactionname?upper_case},iEntity);
return iEntity;
}
</#if>
</#if>
<#-- 更新操作 -->
<#if item.getPSAjaxControlHandler().getDEActionName('update')??>
<#assign deactionname =item.getPSAjaxControlHandler().getDEActionName('update')>
<#if (deactionname?length>0)>
@Override
protected IEntity updateEntity(IEntity iEntity)throws Exception
{
this.getRealService().executeAction(${de.codeName}Service.ACTION_${deactionname?upper_case},iEntity);
return iEntity;
}
</#if>
</#if>
<#-- 删除操作 -->
<#if item.getPSAjaxControlHandler().getDEActionName('remove')??>
<#assign deactionname =item.getPSAjaxControlHandler().getDEActionName('remove')>
<#if (deactionname?length>0)>
@Override
protected void removeEntity(Object objKeyValue)throws Exception
{
${de.codeName} entity = new ${de.codeName}();
entity.set(${de.codeName}.FIELD_${de.getKeyDEField().codeName?upper_case},objKeyValue);
this.getRealService().executeAction(${de.codeName}Service.ACTION_${deactionname?upper_case},entity);
}
</#if>
</#if>
<#if (item.getPSAjaxControlHandler().getTempMode()==2)>
@Override
public int getTempMode()
{
return TEMPMODE_MINOR;
}
</#if>
<#if (item.getPSAjaxControlHandler().getTempMode()==1)>
@Override
public int getTempMode()
{
return TEMPMODE_MAJOR;
}
</#if>
}
\ No newline at end of file
<#ibiztemplate>
FILENAME=${appview.codeName}${srfclassname('${item.name}')}HandlerBase.java
PUBOBJ=SysAppViewAppCtrlHandlerBaseCode
MODELS=PSAPPVIEW
%PUBPKG%=${pub.getPKGCodeName()?replace('.','/')}
%APPFOLDER%=${app.getAppFolder()?lower_case}
%VIEWMOD%=${appview.getPSAppModule().codeName?lower_case}
</#ibiztemplate>
package ${pub.getPKGCodeName()}.${app.getAppFolder()?lower_case}.${appview.getPSAppModule().codeName?lower_case}.ctrlhandler;
import java.util.ArrayList;
import java.util.List;
import net.ibizsys.paas.util.StringHelper;
import net.ibizsys.paas.web.WebContext;
import net.ibizsys.paas.demodel.DEModelGlobal;
import net.ibizsys.paas.demodel.IDataEntityModel;
import ${pub.getPKGCodeName()}.${app.getAppFolder()?lower_case}.srv.sys.ctrlmodel.${app.getPKGCodeName()}${item.codeName}${srfclassname('${item.getControlType()}')}Model;
import ${pub.getPKGCodeName()}.srv.${sys.codeName}SysModel;
<#if item.getDataEntity()??>
<#assign de=item.getDataEntity()>
import ${de.getClassOrPkgName('DEMODEL',pub)};
import ${de.getClassOrPkgName('SERVICE',pub)};
</#if>
${ctrlcode.code}
\ No newline at end of file
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册