jeecg_3.6发布(20151204)

jeecg-3.6.0
zhangdaiscott 10 years ago
parent 2abba1f412
commit 5de7f17932

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_07">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>jeecg-framework</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.maven.ide.eclipse.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>

@ -1,4 +0,0 @@
#Sat Mar 28 17:19:19 CST 2015
eclipse.preferences.version=1
encoding//src/main/resources/dbconfig.properties=utf-8
encoding/<project>=UTF-8

@ -1,12 +0,0 @@
#Sat May 23 15:00:56 CST 2015
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6

@ -1,7 +1,7 @@
JEECG 微云快速开发平台
===============
当前最新版本: 3.5.2发布日期20150607
当前最新版本: 3.6发布日期20150607
前言:
-----------------------------------
@ -48,13 +48,13 @@ JEECG
* 采用面向声明的开发模式, 基于泛型编写极少代码即可实现复杂的数据展示、数据编辑、
表单处理等功能再配合Online Coding在线开发与代码生成器的使用,将J2EE的开发效率提高6倍以上可以将代码减少80%以上。</br>
* JEECG V3.5.2 版本技术点总结:
* JEECG V3.6 版本技术点总结:
* <b>技术点一:</b>Online Coding在线开发(通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义表单布局) </br>
* <b>技术点二:</b>代码生成器,支持多种数据模型,根据表生成对应的Entity,Service,Dao,Action,JSP等,增删改查功能生成直接使用</br>
* <b>技术点三:</b>UI快速开发库针对WEB UI进行标准封装页面统一采用UI标签实现功能数据datagrid,表单校验,Popup,Tab等实现JSP页面零JS开发维护非常高效</br>
* <b>技术点四:</b>在线流程定义采用开源Activiti流程引擎实现在线画流程,自定义表单,表单挂接,业务流转,流程监控,流程跟踪,流程委托等</br>
* <b>技术点五:</b>系统日志记录 (详细记录操作日志)</br>
* <b>技术点五:</b>自定义表单,支持用户自定义表单布局支持单表、列表、Select\Radio\Checkbox\PopUP\Date等特殊控件</br>
* <b>技术点六:</b>查询过滤器查询功能自动生成后台动态拼SQL追加查询条件支持多种匹配方式全匹配/模糊查询/包含查询/不匹配查询)</br>
* <b>技术点七:</b>移动平台支持对Bootstrap(兼容Html5)进行标准封装 </br>
* <b>技术点八:</b>动态报表功能用户输入一个sql系统自动解析生成报表</br>
@ -65,7 +65,7 @@ JEECG
* <b>技术点十三:</b>在线配置报表(无需编码,通过在线配置方式,实现曲线图,柱状图,数据等报表)</br>
* <b>技术点十四:</b>简易Excel导入导出支持单表导出和一对多表模式导出生成的代码自带导入导出功能</br>
* JEECG V3.5.2, 经过了专业压力测试,性能测试,保证后台数据的准确性和页面访问速度</br>
* JEECG V3.6, 经过了专业压力测试,性能测试,保证后台数据的准确性和页面访问速度</br>
* 支持多种浏览器: IE, 火狐, Google 等</br>
* 支持数据库: Mysql,Oracle10g,Postgre,SqlServer等</br>
* 基础权限: 用户,角色,菜单权限,按钮权限,数据权限</br>

@ -1,20 +0,0 @@
1. 标准开发环境eclipse + maven + jdk7 + tomcat7 + mysql
2. 必须手工执行SQL脚本 (自动初始化的方式已作废)
doc\db\jeecg_mysql_3.5.2-20150607.sql
说明目前社区只提供mysql脚本一种其他数据库大家可以通过navicat自己转化
具体方法参考:http://www.jeecg.org/forum.php?mod=viewthread&tid=2746&extra=page%3D2
3. Maven下载有问题可以下载社区提供本地maven仓库,配置在本地
链接: http://pan.baidu.com/s/1mgL16vm 密码: 2f6e
4. jeecg平台开发手册下载
链接: http://pan.baidu.com/s/18KtK6 密码: og2h
5. jeecg入门视频下载
http://www.jeecg.org/forum.php?mod=viewthread&tid=197&extra=page%3D1
6. 不熟悉maven的同学可以下载非maven版本
下载地址: http://pan.baidu.com/s/1eQ0aZ66 密码: vgst
注意: 不支持jdk8;必须手工执行doc\db下的数据库脚本

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -3,13 +3,14 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jeecgframework</groupId>
<artifactId>jeecg</artifactId>
<version>3.5.2</version>
<version>3.6</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<codegenerate.version>3.4.6</codegenerate.version>
<minidao.version>1.5.0</minidao.version>
<codegenerate.version>3.6-SNAPSHOT</codegenerate.version>
<minidao.version>1.5.4</minidao.version>
<guava.version>16.0.1</guava.version>
<!-- 主要依赖库的版本定义 -->
<spring.version>3.1.1.RELEASE</spring.version>
<hibernate.version>4.1.0.Final</hibernate.version>
@ -102,7 +103,7 @@
<xstream.version>1.4.4</xstream.version>
<groovy.version>2.3.3</groovy.version>
<!--poi 工具类 -->
<easypoi.version>2.1.1</easypoi.version>
<easypoi.version>2.1.4</easypoi.version>
</properties>
<repositories>
@ -114,6 +115,17 @@
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>sonatype-snapshots</id>
<name>sonatype-snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>spy</id>
<name>Spy Repository</name>
@ -138,7 +150,7 @@
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<repository>
<id>jeecg</id>
<name>jeecg Repository</name>
<url>http://maven.jeecg.org/nexus/content/repositories/jeecg</url>
@ -146,16 +158,14 @@
<enabled>false</enabled>
</snapshots>
</repository>
<!--
<repository>
<id>osc</id>
<name>oschina</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
<repository>
<id>jeecg-snapshots</id>
<name>jeecg-snapshots Repository</name>
<url>http://maven.jeecg.org/nexus/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
-->
</repository>
</repositories>
<dependencies>
@ -689,11 +699,23 @@
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi-base</artifactId>
<version>${easypoi.version}</version>
<exclusions>
<exclusion>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-annotation</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi-web</artifactId>
<version>${easypoi.version}</version>
<exclusions>
<exclusion>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-base</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jeecgframework</groupId>
@ -753,7 +775,7 @@
</dependency>
<!-- jacob -->
<dependency>
<groupId>org.jeecg</groupId>
<groupId>org.jeecgframework</groupId>
<artifactId>jacob</artifactId>
<version>1.0.0</version>
</dependency>
@ -817,25 +839,35 @@
<artifactId>geronimo-javamail_1.4_spec</artifactId>
<version>1.6</version>
</dependency>
<!-- 龙金波加入 ueditor依赖jar-->
<!-- baidu ueditor-->
<dependency>
<groupId>com.baidu.ueditor.jeecg</groupId>
<artifactId>ueditor</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>com.baidu.ueditor.jeecg</groupId>
<artifactId>json</artifactId>
<version>1.0</version>
</dependency>
<!-- baidu ueditor-->
<!-- jsoup HTML parser library @ http://jsoup.org/ -->
<dependency>
<groupId>com.baidu.ueditor</groupId>
<artifactId>ueditor</artifactId>
<version>1.1.1</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ueditor-1.1.1.jar</systemPath>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.3</version>
</dependency>
<!-- google 工具类 -->
<dependency>
<groupId>com.baidu.ueditor</groupId>
<artifactId>json</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/json.jar</systemPath>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
</dependencies>
<organization>
<name>JEECG微云开发平台</name>
<name>JEECG 智能快速开发平台</name>
<url>www.jeecg.org</url>
</organization>
<build>

@ -1,127 +0,0 @@
package org.jeecgframework.core.aop;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* JS
* JEECG
* www.jeecg.org
* @author
*/
public class GZipFilter implements Filter {
public void destroy() {
}
/**
* GZIP
* @param request
* @return
*/
private static boolean isGZipEncoding(HttpServletRequest request){
boolean flag=false;
String encoding=request.getHeader("Accept-Encoding");
if(encoding!=null&&encoding.indexOf("gzip")!=-1){
flag=true;
}
return flag;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
HttpServletRequest req=(HttpServletRequest)request;
if(isGZipEncoding(req)){
Wrapper wrapper = new Wrapper(resp);
chain.doFilter(request, wrapper);
byte[] gzipData = gzip(wrapper.getResponseData());
resp.addHeader("Content-Encoding", "gzip");
resp.setContentLength(gzipData.length);
//静态资源文件缓存机制
//CacheResource(request, response, chain);
ServletOutputStream output = response.getOutputStream();
output.write(gzipData);
output.flush();
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {}
/**
* 访
*/
public void CacheResource(ServletRequest request, ServletResponse response,
FilterChain chain){
//1.强转httpservlet方便调用方法
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
//2.获取资源文件名的URI
String uri = req.getRequestURI();
//3.获得文件扩展名,lastIndexOf(".")+1 获得.最后一次出现的索引的后一位jpg
uri = uri.substring(uri.lastIndexOf(".")+1);
System.out.println( uri );//测试获取后缀是否正确
//4断相应后缀文件设定缓存时间
long date = 0;
//System.out.println( new Date().getTime());//测试当前时间用
//判断URI获取的后缀名是否与JPG相等不考虑大小写
if(uri.equalsIgnoreCase("jpg")){
//读取XML里的JPG配置的参数这里设定了时间
//获取当前系统时间 + 需要缓存的时间(小时),Long 防止溢出,因为单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
}
if(uri.equalsIgnoreCase("gif")){
//读取XML里的JPG配置的参数这里设定了时间
//获取当前系统时间 + 需要缓存的时间(小时),Long 防止溢出,因为单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
}
if(uri.equalsIgnoreCase("css")){
//读取XML里的JPG配置的参数这里设定了时间
//获取当前系统时间 + 需要缓存的时间(小时),Long 防止溢出,因为单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
}
if(uri.equalsIgnoreCase("js")){
//读取XML里的JPG配置的参数这里设定了时间
//获取当前系统时间 + 需要缓存的时间(小时),Long 防止溢出,因为单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
}
//设置缓存时间
res.setDateHeader("Expires", date);
}
private byte[] gzip(byte[] data) {
ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(10240);
GZIPOutputStream output = null;
try {
output = new GZIPOutputStream(byteOutput);
output.write(data);
} catch (IOException e) {
} finally {
try {
output.close();
} catch (IOException e) {
}
}
return byteOutput.toByteArray();
}
}

@ -1,82 +0,0 @@
package org.jeecgframework.core.aop;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
public class Wrapper extends HttpServletResponseWrapper {
public static final int OT_NONE = 0, OT_WRITER = 1, OT_STREAM = 2;
private int outputType = OT_NONE;
private ServletOutputStream output = null;
private PrintWriter writer = null;
private ByteArrayOutputStream buffer = null;
public Wrapper(HttpServletResponse resp) throws IOException {
super(resp);
buffer = new ByteArrayOutputStream();
}
public PrintWriter getWriter() throws IOException {
if (outputType == OT_STREAM)
throw new IllegalStateException();
else if (outputType == OT_WRITER)
return writer;
else {
outputType = OT_WRITER;
writer = new PrintWriter(new OutputStreamWriter(buffer,
getCharacterEncoding()));
return writer;
}
}
public ServletOutputStream getOutputStream() throws IOException {
if (outputType == OT_WRITER)
throw new IllegalStateException();
else if (outputType == OT_STREAM)
return output;
else {
outputType = OT_STREAM;
output = new WrappedOutputStream(buffer);
return output;
}
}
public void flushBuffer() throws IOException {
if (outputType == OT_WRITER)
writer.flush();
if (outputType == OT_STREAM)
output.flush();
}
public void reset() {
outputType = OT_NONE;
buffer.reset();
}
public byte[] getResponseData() throws IOException {
flushBuffer();
return buffer.toByteArray();
}
class WrappedOutputStream extends ServletOutputStream {
private ByteArrayOutputStream buffer;
public WrappedOutputStream(ByteArrayOutputStream buffer) {
this.buffer = buffer;
}
public void write(int b) throws IOException {
buffer.write(b);
}
public byte[] toByteArray() {
return buffer.toByteArray();
}
}
}

@ -54,7 +54,6 @@ public interface ICommonDao extends IGenericBaseCommonDao{
*/
public void parserXml(String fileName);
public List<ComboTree> comTree(List<TSDepart> all,ComboTree comboTree);
/**
* ComboTree JSON
*

@ -322,4 +322,9 @@ public interface IGenericBaseCommonDao {
int maxResult);
public <T> List<T> findByDetached(DetachedCriteria dc);
/**
*
* @param execute
*/
public <T> List<T> executeProcedure(String procedureSql,Object... params);
}

@ -181,7 +181,42 @@ public class CommonDao extends GenericBaseCommonDao implements ICommonDao, IGene
}
saveOrUpdate(object);
// 文件拷贝到指定硬盘目录
FileCopyUtils.copy(mf.getBytes(), savefile);
if("txt".equals(extend)){
//利用utf-8字符集的固定首行隐藏编码原理
//Unicode:FF FE UTF-8:EF BB
byte[] allbytes = mf.getBytes();
try{
String head1 = toHexString(allbytes[0]);
System.out.println(head1);
String head2 = toHexString(allbytes[1]);
System.out.println(head2);
if("ef".equals(head1) && "bb".equals(head2)){
//UTF-8
String contents = new String(mf.getBytes(),"UTF-8");
if(StringUtils.isNotBlank(contents)){
OutputStream out = new FileOutputStream(savePath);
out.write(contents.getBytes());
out.close();
}
} else {
//GBK
String contents = new String(mf.getBytes(),"GBK");
OutputStream out = new FileOutputStream(savePath);
out.write(contents.getBytes());
out.close();
}
} catch(Exception e){
String contents = new String(mf.getBytes(),"UTF-8");
if(StringUtils.isNotBlank(contents)){
OutputStream out = new FileOutputStream(savePath);
out.write(contents.getBytes());
out.close();
}
}
} else {
FileCopyUtils.copy(mf.getBytes(), savefile);
}
// if (uploadFile.getSwfpath() != null) {
// // 转SWF
// reflectHelper.setMethodValue(uploadFile.getSwfpath(), path + swfName + ".swf");
@ -200,7 +235,15 @@ public class CommonDao extends GenericBaseCommonDao implements ICommonDao, IGene
}
return object;
}
private String toHexString(int index){
String hexString = Integer.toHexString(index);
// 1个byte变成16进制的只需要2位就可以表示了取后面两位去掉前面的符号填充
hexString = hexString.substring(hexString.length() -2);
return hexString;
}
/**
*
*
@ -472,7 +515,6 @@ public class CommonDao extends GenericBaseCommonDao implements ICommonDao, IGene
}
}
}
List curChildList = (List) reflectHelper.getMethodValue(comboTreeModel.getChildField());
if (curChildList != null && curChildList.size() > 0) {
tree.setState("closed");

@ -1,10 +1,6 @@
package org.jeecgframework.core.common.dao.impl;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@ -17,6 +13,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.CriteriaSpecification;
@ -43,6 +40,7 @@ import org.jeecgframework.core.common.hibernate.qbc.PagerUtil;
import org.jeecgframework.core.common.model.common.DBTable;
import org.jeecgframework.core.common.model.json.DataGridReturn;
import org.jeecgframework.core.util.MyBeanUtils;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.core.util.ToEntityUtil;
import org.jeecgframework.core.util.oConvertUtils;
import org.jeecgframework.tag.vo.datatable.DataTableReturn;
@ -52,7 +50,6 @@ import org.springframework.dao.DataAccessException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.dao.support.DataAccessUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
@ -60,10 +57,11 @@ import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import org.springframework.util.Assert;
/**
*
*
* DAO
*
*
*
* @date 2012-12-7 10:16:48
* @param <T>
@ -92,7 +90,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param entityName
*
*/
@ -108,7 +106,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @return
*/
public List<DBTable> getAllDbTableName() {
@ -136,7 +134,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @return
*/
public Integer getAllDbTableSize() {
@ -147,7 +145,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param propertyName
* @param value
* @return
@ -189,7 +187,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
* @param entitys
*
@ -210,9 +208,9 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
*
*
* @param entity
*/
@ -247,7 +245,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
* @param pojo
*/
@ -258,9 +256,9 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
*
*
* @param entitys
*/
public <T> void deleteAllEntitie(Collection<T> entitys) {
@ -281,7 +279,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
* @param entityName
* @param id
@ -299,7 +297,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
* @param pojo
*/
@ -310,7 +308,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
* @param pojo
*/
@ -328,7 +326,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* hql
*
*
* @param <T>
* @param query
* @return
@ -346,7 +344,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* hql
*
*
* @param <T>
* @param query
* @return
@ -366,7 +364,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* hql HashMap
*
*
* @param <T>
* @param query
* @return
@ -386,7 +384,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* sql
*
*
* @param <T>
* @param query
* @return
@ -399,7 +397,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* sql
*
*
* @param <T>
* @param query
* @return
@ -411,7 +409,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* Criteria
*
*
* @param <T>
* @param entityClass
* @param orderBy
@ -432,7 +430,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* Criteria
*
*
* @param <T>
* @param entityClass
* @param criterions
@ -454,7 +452,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* Criteria
*
*
* @param <T>
* @param entityClass
* @param criterions
@ -467,7 +465,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* .
*
*
* @param <T>
* @param entityClass
* @param propertyName
@ -485,7 +483,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* .
*
*
* @return .
*/
public <T> T findUniqueBy(Class<T> entityClass, String propertyName,
@ -497,7 +495,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* Query
*
*
* @param session
* Hibernate
* @param hql
@ -518,7 +516,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param clas
* @param values
* @return
@ -534,7 +532,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param <T>
* @param hql
* @param size
@ -542,7 +540,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
*/
/**
* 使 like"%"+username+"%" Hibernate Query
*
*
* @param hibernateTemplate
* @param hql
* @param valus
@ -562,7 +560,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param entityName
* @param exampleEntity
* @return
@ -592,7 +590,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
*
*
*
* @param clazz
* @return
*/
@ -607,7 +605,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
* CriteriaQuery final int allCounts =
* oConvertUtils.getInt(criteria
* .setProjection(Projections.rowCount()).uniqueResult(), 0);
*
*
* @param cq
* @param isOffset
* @return
@ -734,7 +732,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* SqlQuery
*
*
* @param cq
* @param isOffset
* @return
@ -766,7 +764,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* HqlQuery
*
*
* @param cq
* @param isOffset
* @return
@ -793,7 +791,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* CriteriaQueryList
*
*
* @param cq
* @param isOffset
* @return
@ -833,7 +831,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* 使
*
*
* @throws IllegalAccessException
* @throws InstantiationException
*/
@ -859,7 +857,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* 使-
*
*
* @param criteria
* @param firstResult
* @param maxResults
@ -882,7 +880,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* 使For JDBC-
*
*
*/
public Long getCountForJdbcParam(String sql, Object[] objs) {
return this.jdbcTemplate.queryForLong(sql, objs);
@ -905,14 +903,21 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
}
public Object executeSqlReturnKey(final String sql, Map<String, Object> param) {
Object keyValue = null;
KeyHolder keyHolder = new GeneratedKeyHolder();
KeyHolder keyHolder = null;
SqlParameterSource sqlp = new MapSqlParameterSource(param);
this.namedParameterJdbcTemplate.update(sql,sqlp, keyHolder);
if(oConvertUtils.isNotEmpty(keyHolder.getKey())){
keyValue = keyHolder.getKey().longValue();
if (StringUtil.isNotEmpty(param.get("id"))) {//表示已经生成过id(UUID),则表示是非序列或数据库自增的形式
this.namedParameterJdbcTemplate.update(sql,sqlp);
}else{//NATIVE or SEQUENCE
keyHolder = new GeneratedKeyHolder();
this.namedParameterJdbcTemplate.update(sql,sqlp, keyHolder, new String[]{"id"});
Number number = keyHolder.getKey();
if(oConvertUtils.isNotEmpty(number)){
keyValue = keyHolder.getKey().longValue();
}
}
return keyValue;
}
public Integer countByJdbc(String sql, Object... param) {
return this.jdbcTemplate.queryForInt(sql, param);
}
@ -927,7 +932,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* hql
*
*
* @param <T>
* @param query
* @return
@ -944,7 +949,7 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
/**
* HQL
*
*
* @param hql
* @return
*/
@ -968,4 +973,17 @@ public abstract class GenericBaseCommonDao<T, PK extends Serializable>
public <T> List<T> findByDetached(DetachedCriteria dc) {
return dc.getExecutableCriteria(getSession()).list();
}
/**
*
*/
@SuppressWarnings({ "unchecked",})
public <T> List<T> executeProcedure(String executeSql,Object... params) {
SQLQuery sqlQuery = getSession().createSQLQuery(executeSql);
for(int i=0;i<params.length;i++){
sqlQuery.setParameter(i, params[i]);
}
return sqlQuery.list();
}
}

@ -535,7 +535,7 @@ public class CriteriaQuery implements Serializable {
* @param keyvalue2
*/
public void in(String keyname, Object[] keyvalue) {
if (keyvalue != null && keyvalue[0] != "") {
if (keyvalue != null&&keyvalue.length>0&& keyvalue[0] != "") {
criterionList.addPara(Restrictions.in(keyname, keyvalue));
}
}

@ -247,7 +247,6 @@ public interface CommonService {
public void parserXml(String fileName);
public List<ComboTree> comTree(List<TSDepart> all, ComboTree comboTree);
/**
* JSON
*
@ -350,4 +349,11 @@ public interface CommonService {
int maxResult);
public <T> List<T> findByDetached(DetachedCriteria dc);
/**
*
* @param executeSql
* @param params
* @return
*/
public <T> List<T> executeProcedure(String procedureSql,Object... params);
}

@ -9,7 +9,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.jeecgframework.web.system.pojo.base.TSDepart;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.jeecgframework.core.common.dao.ICommonDao;
@ -414,7 +413,6 @@ public class CommonServiceImpl implements CommonService {
public Long getCountForJdbc(String sql) {
return commonDao.getCountForJdbc(sql);
}
public Long getCountForJdbcParam(String sql, Object[] objs) {
return commonDao.getCountForJdbcParam(sql,objs);
}
@ -443,5 +441,10 @@ public class CommonServiceImpl implements CommonService {
public <T> List<T> findByDetached(DetachedCriteria dc) {
return this.commonDao.findByDetached(dc);
}
/**
*
*/
public <T> List<T> executeProcedure(String procedureSql,Object... params) {
return this.commonDao.executeProcedure(procedureSql, params);
}
}

@ -56,7 +56,6 @@ public final class Globals {
*/
public static String Function_Order_ONE="ofun";//一级权限
public static String Function_Order_TWO="tfun";//二级权限
/**
*
*/

@ -0,0 +1,78 @@
package org.jeecgframework.core.enums;
import org.jeecgframework.core.util.StringUtil;
/**
*
*
* @author jg_huangxg
*/
public enum SysDatabaseEnum {
MYSQL("mysql","jdbc:mysql://SERVERADDRESS:PORT/YOURDATABASENAME?useUnicode=true&characterEncoding=UTF-8","com.mysql.jdbc.Driver"),
SQLSERVER2008("sqlserver2008","jdbc:sqlserver://SERVERADDRESS:PORT;DatabaseName=YOURDATABASENAME","com.microsoft.sqlserver.jdbc.SQLServerDriver"),
ORACLE("oracle","jdbc:oracle:thin:@SERVERADDRESS:PORT:YOURDATABASENAME","oracle.jdbc.driver.OracleDriver");
/**
*
*/
private String dbtype;
/**
*
*/
private String url;
/**
*
*/
private String driverClass;
private SysDatabaseEnum(String dbtype, String url, String driverClass) {
this.dbtype = dbtype;
this.url = url;
this.driverClass = driverClass;
}
public String getDbtype() {
return dbtype;
}
public void setDbtype(String dbtype) {
this.dbtype = dbtype;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClass() {
return driverClass;
}
public void setDriverClass(String driverClass) {
this.driverClass = driverClass;
}
public static SysDatabaseEnum toEnum(String dbtype) {
if (StringUtil.isEmpty(dbtype)) {
return null;
}
for(SysDatabaseEnum item : SysDatabaseEnum.values()) {
if(item.getDbtype().equals(dbtype)) {
return item;
}
}
return null;
}
public String toString() {
return "{dbtype: " + dbtype + ", url: " + url + ", driverClass: " + driverClass +"}";
}
}

@ -1,27 +1,28 @@
package org.jeecgframework.core.extend.hqlsearch;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.Column;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang.StringUtils;
import org.hibernate.criterion.Restrictions;
import org.jeecgframework.core.annotation.query.QueryTimeFormat;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.extend.hqlsearch.parse.ObjectParseUtil;
import org.jeecgframework.core.extend.hqlsearch.parse.PageValueConvertRuleEnum;
import org.jeecgframework.core.extend.hqlsearch.parse.vo.HqlRuleEnum;
import org.jeecgframework.core.util.ContextHolderUtils;
import org.jeecgframework.core.util.JSONHelper;
import org.jeecgframework.core.util.JeecgDataAutorUtils;
import org.jeecgframework.core.util.ResourceUtil;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.web.demo.entity.test.JeecgDemo;
import org.jeecgframework.web.demo.entity.test.QueryCondition;
import org.jeecgframework.web.system.pojo.base.TSDataRule;
import org.springframework.util.NumberUtils;
@ -50,6 +51,7 @@ public class HqlGenerateUtil {
* @throws Exception
*/
public static void installHql(CriteriaQuery cq, Object searchObj) {
// --author龙金波 ------start---date20150519--------for统一函数处理sqlbuilder----------------------------------
installHql(cq,searchObj,null);
}
@ -65,6 +67,7 @@ public class HqlGenerateUtil {
public static void installHql(CriteriaQuery cq, Object searchObj,
Map<String, String[]> parameterMap) {
installHqlJoinAlias(cq, searchObj, getRuleMap(), parameterMap, "");
// --author龙金波 ------start---date20150422--------for增加一个特殊sql参数处理----------------------------------
try{
String json= null;
if(StringUtil.isNotEmpty(cq.getDataGrid().getSqlbuilder())){
@ -77,13 +80,14 @@ public class HqlGenerateUtil {
List<QueryCondition> list = JSONHelper.toList(
json
, QueryCondition.class);
String sql=getSql(list,"");
String sql=getSql(list,"",searchObj.getClass());
System.out.println("DEBUG sqlbuilder:"+sql);
cq.add(Restrictions.sqlRestriction(sql));
}
}catch(Exception e){
e.printStackTrace();
}
// --author龙金波 ------start---date201504022--------for增加一个特殊sql参数处理----------------------------------
cq.add();
}
@ -139,6 +143,9 @@ public class HqlGenerateUtil {
if (value != null && !value.equals("")) {
HqlRuleEnum rule = PageValueConvertRuleEnum
.convert(value);
if(HqlRuleEnum.LIKE.equals(rule)&&(!(value+"").contains("*"))){
value="*%"+value+"%*";
}
value = PageValueConvertRuleEnum.replaceValue(rule,
value);
ObjectParseUtil.addCriteria(cq, aliasName, rule, value);
@ -189,7 +196,6 @@ public class HqlGenerateUtil {
// for用户反馈
cq.createAlias(aliasName,
aliasName.replaceAll("\\.", "_"));
// ------------end--Author:JueYue Date:20140521 for用户反馈
installHqlJoinAlias(cq, param, ruleMap, parameterMap,
aliasName);
}
@ -320,7 +326,7 @@ public class HqlGenerateUtil {
return ruleMap;
}
// --author龙金波 ------start---date20150422--------forsql高级查询器参数的sql组装
// --author龙金波 ------start---date20150628--------forsql高级查询器参数的sql组装
/**
* @author ljb
* sql
@ -329,20 +335,63 @@ public class HqlGenerateUtil {
* @param tab
* @return
*/
public static String getSql(List<QueryCondition> list,String tab){
public static String getSql(List<QueryCondition> list,String tab,Class claszz){
StringBuffer sb=new StringBuffer();
sb.append(" 1=1 ");
for(QueryCondition c :list){
String column = invokeFindColumn(claszz,c.getField());
String type = invokeFindType(claszz,c.getField());
c.setType(type);
c.setField(column);
sb.append(tab+c);sb.append("\r\n");
if(c.getChildren()!=null){
List list1= JSONHelper.toList(c.getChildren(), QueryCondition.class);
sb.append(tab);
sb.append(c.getRelation()+"( ");
sb.append(getSql(list1,tab+"\t"));
sb.append(getSql(list1,tab+"\t",claszz));
sb.append(tab+")\r\n");
}
}
return sb.toString();
}
/**
* ,
* return: java.lang.Integer
*/
public static String invokeFindType(Class clazz,String field_name){
String type=null;
Field field;
try {
field = clazz.getDeclaredField(field_name);
if(field!=null){
type=field.getType().getSimpleName();
}
} catch (Exception e) {
return type;
}
return type;
}
/**
* hibernate
* @param clazz
* @param field_name
* @return
*/
public static String invokeFindColumn(Class clazz,String field_name){
String column=null;
Field field;
try {
field = clazz.getDeclaredField(field_name);
PropertyDescriptor pd = new PropertyDescriptor(field.getName(),clazz);
Method getMethod = pd.getReadMethod();//获得get方法
Column col=getMethod.getAnnotation(Column.class);
if(col!=null){
column=col.name();
}
} catch (Exception e) {
return column;
}
return column;
}
}

@ -35,6 +35,8 @@ public class SysContextSqlConvert {
return "";
String sqlValue="";
HqlRuleEnum ruleEnum=HqlRuleEnum.getByValue(dataRule.getRuleConditions());
//-----------------------------------------------------------------------
//#{sys_user_code}%
String ValueTemp = dataRule.getRuleValue();
String moshi = "";
@ -48,6 +50,7 @@ public class SysContextSqlConvert {
} else {
ValueTemp = ValueTemp;
}
//-----------------------------------------------------------------------
String tempValue = null;
tempValue = ResourceUtil.getUserSystemData(ValueTemp);
if(tempValue!=null){
@ -57,7 +60,7 @@ public class SysContextSqlConvert {
}
switch (ruleEnum) {
case GT:
sqlValue+=" and "+dataRule.getRuleColumn()+" <'"+tempValue+"'";
sqlValue+=" and "+dataRule.getRuleColumn()+" >'"+tempValue+"'";
break;
case GE:
sqlValue+=" and "+dataRule.getRuleColumn()+" >='"+tempValue+"'";

@ -40,7 +40,7 @@ public class ObjectParseUtil {
cq.in(name, (Object[]) value);
break;
case LIKE:
cq.like(name, value);
cq.like(name, HqlParseEnum.SUFFIX_ASTERISK_VAGUE.getValue()+ value+ HqlParseEnum.SUFFIX_ASTERISK_VAGUE.getValue());
break;
case LEFT_LIKE:
cq.like(name, HqlParseEnum.SUFFIX_ASTERISK_VAGUE.getValue() + value);

@ -4,6 +4,8 @@ import java.util.Arrays;
import org.jeecgframework.core.extend.hqlsearch.parse.vo.HqlParseEnum;
import org.jeecgframework.core.extend.hqlsearch.parse.vo.HqlRuleEnum;
import org.jeecgframework.core.util.PropertiesUtil;
import org.jeecgframework.core.util.ResourceUtil;
/**
*
@ -12,7 +14,7 @@ import org.jeecgframework.core.extend.hqlsearch.parse.vo.HqlRuleEnum;
* @date 2014823 3:30:00
*/
public class PageValueConvertRuleEnum {
public static HqlRuleEnum convert(Object value) {
// 避免空数据
if (value == null) {
@ -48,6 +50,9 @@ public class PageValueConvertRuleEnum {
if(rule == null && val.startsWith(HqlParseEnum.SUFFIX_NOT_EQUAL.getValue())){
rule = HqlRuleEnum.NE;
}
if(rule==null&&ResourceUtil.fuzzySearch){
rule = HqlRuleEnum.LIKE;
}
return rule != null ? rule : HqlRuleEnum.EQ;
}

@ -0,0 +1,207 @@
package org.jeecgframework.core.extend.sqlsearch;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
import javax.persistence.Column;
import javax.persistence.Table;
import org.apache.commons.beanutils.PropertyUtils;
import org.jeecgframework.codegenerate.util.CodeResourceUtil;
import org.jeecgframework.core.util.StringUtil;
public class SqlGenerateUtil {
/** 时间查询符号 */
private static final String END = "_end";
private static final String BEGIN = "_begin";
private static final SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
/**
* OBJtable
* @param searchObj
* @return
*/
public static String generateTable(Object searchObj){
Table table = searchObj.getClass().getAnnotation(Table.class);
if(StringUtil.isEmpty(table.name())){
return searchObj.getClass().getSimpleName();
}else{
return table.name();
}
}
/**
* ObjDB
* @param searchObj
* @param fields
* @param dealfields
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static StringBuffer generateDBFields(Object searchObj,String fields,List dealfields){
StringBuffer dbFields = new StringBuffer();
PropertyDescriptor[] propertyDescriptors = PropertyUtils.getPropertyDescriptors(searchObj.getClass());
String[] fileNames = fields.split(",");
for(int i=0;i<fileNames.length;i++){
for(PropertyDescriptor propertyDescriptor:propertyDescriptors){
String propertyName = propertyDescriptor.getName();
if(fileNames[i].equals(propertyName)){
dbFields.append(getDbNameByFieldName(propertyDescriptor)+((i==fileNames.length-1)?"":","));
dealfields.add(fileNames[i]);
break;
}
}
}
return dbFields;
}
/**
* where
* @param searchObj
* @param parameterMap
* @return
*/
public static StringBuffer generateWhere(Object searchObj,Map<String,String[]> parameterMap){
StringBuffer whereSql = new StringBuffer(" where 1=1 ");
try {
PropertyDescriptor[] propertyDescriptors = PropertyUtils.getPropertyDescriptors(searchObj.getClass());
//拼接sql查询的条件
for(PropertyDescriptor propertyDescriptor:propertyDescriptors){
String propertyType = propertyDescriptor.getPropertyType().toString();//属性类型
String propertyName = propertyDescriptor.getName();//属性名称
Object propertyValue = PropertyUtils.getSimpleProperty(searchObj, propertyName);//属性值
String dbColumnName = getDbNameByFieldName(propertyDescriptor);//对应的数据库中的列名
// 添加 判断是否有区间值
String beginValue = null;
String endValue = null;
if (parameterMap != null && (parameterMap.containsKey(propertyName + BEGIN)||parameterMap.containsKey(propertyName + END))){
if (parameterMap != null && parameterMap.containsKey(propertyName + BEGIN)) {
beginValue = parameterMap.get(propertyName + BEGIN)[0].trim();
if(StringUtil.isNotEmpty(beginValue)){
String beginValueReturn = getValueForType(propertyName + BEGIN,beginValue,propertyType);
if(StringUtil.isNotEmpty(beginValueReturn)){
whereSql.append("and "+dbColumnName+">="+beginValueReturn+" ");
}
}
}
if (parameterMap != null && parameterMap.containsKey(propertyName + END)) {
endValue = parameterMap.get(propertyName + END)[0].trim();
if(StringUtil.isNotEmpty(endValue)){
String endValueReturn = getValueForType(propertyName + END,endValue,propertyType);
if(StringUtil.isNotEmpty(endValueReturn)){
whereSql.append("and "+dbColumnName+"<="+endValueReturn+" ");
}
}
}
}else{
if(StringUtil.isNotEmpty(propertyValue)){
String propertyValueReturn = getValueForType(propertyName,propertyValue,propertyType);
if(StringUtil.isNotEmpty(propertyValueReturn)){
whereSql.append("and "+dbColumnName+"="+propertyValueReturn+" ");
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return whereSql;
}
/**
*
* @param propertyDescriptor
* @return
*/
public static String getDbNameByFieldName(PropertyDescriptor propertyDescriptor){
String propertyName = propertyDescriptor.getName();
Column column = null;
Method readMethod = propertyDescriptor.getReadMethod();
if(readMethod!=null){
column = readMethod.getAnnotation(Column.class);
if(column==null){
Method writeMethod = propertyDescriptor.getWriteMethod();
if(writeMethod!=null){
column = writeMethod.getAnnotation(Column.class);
}
}
}
//如果找不到@column或者@column的name为空那么数据库列名就是属性名
if(column==null || StringUtil.isEmpty(column.name())){
return propertyName;
}else{
return column.name();
}
}
/**
*
* @param name
* @param value
* @param type
* @return
*/
public static String getValueForType(String name,Object value,String type){
if("class java.lang.Integer".equals(type)
||"class java.lang.Double".equals(type)
||"class java.lang.Long".equals(type)
||type.contains("class java.math")){
return String.valueOf(value);
}else if("class java.util.Date".equals(type)){
String dbType = CodeResourceUtil.DATABASE_TYPE;
if("oracle".equals(dbType)){
if(name.contains(BEGIN)){
String beginValue = (String)value;
if (beginValue.length() == 19) {
return "'date"+beginValue+"'";
}else{
return "'date"+beginValue+" 00:00:00'";
}
}else if(name.contains(END)){
String endValue = (String)value;
if (endValue.length() == 19) {
return "'date"+endValue+"'";
}else{
return "'date"+endValue+" 23:23:59'";
}
}else{
return "date'"+time.format(value)+"'";
}
}else{
if(name.contains(BEGIN)){
String beginValue = (String)value;
if(beginValue.length() == 19) {
return "'"+beginValue+"'";
}else{
return "'"+beginValue+" 00:00:00'";
}
}else if(name.contains(END)){
String endValue = (String)value;
if(endValue.length() == 19) {
return "'"+endValue+"'";
}else{
return "'"+endValue+" 23:23:59'";
}
}else{
return "'"+time.format(value)+"'";
}
}
}else if("class java.lang.String".equals(type)){
return String.valueOf("'"+value+"'");
}else{
return null;
}
}
}

@ -23,24 +23,24 @@ public class OpenOfficePDFConverter implements PDFConverter {
private static int[] port = { 8100 };
public void convert2PDF(String inputFile, String pdfFile, String extend) {
if (extend.equals("txt")) {
String odtFile = FileUtils.getFilePrefix(inputFile) + ".odt";
if (new File(odtFile).exists()) {
org.jeecgframework.core.util.LogUtil.info("odt文件已存在");
inputFile = odtFile;
} else {
try {
FileUtils.copyFile(inputFile, odtFile);
inputFile = odtFile;
} catch (FileNotFoundException e) {
org.jeecgframework.core.util.LogUtil.info("Odt文档不存在");
e.printStackTrace();
}
}
}
// if (extend.equals("txt")) {
//
// String odtFile = FileUtils.getFilePrefix(inputFile) + ".odt";
// if (new File(odtFile).exists()) {
// org.jeecgframework.core.util.LogUtil.info("odt文件已存在");
// inputFile = odtFile;
// } else {
// try {
// FileUtils.copyFile(inputFile, odtFile);
// inputFile = odtFile;
// } catch (FileNotFoundException e) {
// org.jeecgframework.core.util.LogUtil.info("Odt文档不存在");
// e.printStackTrace();
// }
// }
//
// }
startService();
//pdfFile = pdfFile.replaceAll(" ", "").replaceAll(" ", "");
org.jeecgframework.core.util.LogUtil.info("进行文档转换转换:" + inputFile + " --> " + pdfFile);

@ -25,7 +25,7 @@ public class SWFToolsSWFConverter implements SWFConverter {
return;
}
String command = ConStant.getSWFToolsPath(extend) + " \"" + inputFile
//---update-for--文件预览无效------ scott@2013/05/22 ADD START
+ "\" -o " +" \""+ swfFile +" \""+ " -s languagedir=D:\\xpdf-chinese-simplified -T 9 -f";
// + "\" -o " + swfFile + " -s languagedir=D:\\xpdf-chinese-simplified -T 9 -f";
try {

@ -107,8 +107,14 @@ public class AuthInterceptor implements HandlerInterceptor {
}
//这个地方用全匹配?应该是模糊查询吧
//TODO
List<TSFunction> functions = systemService.findByProperty(TSFunction.class, "functionUrl", requestPath);
String uri= request.getRequestURI().substring(request.getContextPath().length() + 1);
String realRequestPath = null;
if(uri.endsWith(".do")||uri.endsWith(".action")){
realRequestPath=requestPath;
}else {
realRequestPath=uri;
}
List<TSFunction> functions = systemService.findByProperty(TSFunction.class, "functionUrl", realRequestPath);
if (functions.size()>0){
functionId = functions.get(0).getId();
}

@ -65,6 +65,7 @@ public class DateUtils extends PropertyEditorSupport {
*/
public static Calendar getCalendar(long millis) {
Calendar cal = Calendar.getInstance();
// --------------------cal.setTimeInMillis(millis);
cal.setTime(new Date(millis));
return cal;
}
@ -255,6 +256,7 @@ public class DateUtils extends PropertyEditorSupport {
* @return
*/
public static Timestamp getCalendarTimestamp(Calendar cal) {
// ---------------------return new Timestamp(cal.getTimeInMillis());
return new Timestamp(cal.getTime().getTime());
}
@ -288,6 +290,7 @@ public class DateUtils extends PropertyEditorSupport {
* @return
*/
public static long getMillis(Calendar cal) {
// --------------------return cal.getTimeInMillis();
return cal.getTime().getTime();
}

@ -107,6 +107,17 @@ public class DynamicDBUtil {
}
return list;
}
public static <T> List<T> findList(final String dbKey, String sql, Class<T> clazz,Object... param) {
List<T> list;
JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
if (ArrayUtils.isEmpty(param)) {
list = jdbcTemplate.queryForList(sql,clazz);
} else {
list = jdbcTemplate.queryForList(sql,clazz,param);
}
return list;
}
public static void main(String[] args) {
DynamicDataSourceEntity dynamicSourceEntity = new DynamicDataSourceEntity();

@ -5,8 +5,9 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.log4j.Logger;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.apache.commons.lang3.StringUtils;
/**
*
@ -14,7 +15,6 @@ import org.apache.log4j.Logger;
*
*/
public class FileUtils {
private static final Logger logger = Logger.getLogger(FileUtils.class);
/**
*
*
@ -162,11 +162,36 @@ public class FileUtils {
File fileDelete = new File(strFileName);
if (!fileDelete.exists() || !fileDelete.isFile()) {
org.jeecgframework.core.util.LogUtil.info("错误: " + strFileName + "不存在!");
LogUtil.info("错误: " + strFileName + "不存在!");
return false;
}
org.jeecgframework.core.util.LogUtil.info("--------成功删除文件---------"+strFileName);
LogUtil.info("--------成功删除文件---------"+strFileName);
return fileDelete.delete();
}
/**
*
* @Title: encodingFileName 2015-11-26 huangzq add
* @Description: %20
* @param @param fileName
* @param @return
* @return String
* @throws
*/
public static String encodingFileName(String fileName) {
String returnFileName = "";
try {
returnFileName = URLEncoder.encode(fileName, "UTF-8");
returnFileName = StringUtils.replace(returnFileName, "+", "%20");
if (returnFileName.length() > 150) {
returnFileName = new String(fileName.getBytes("GB2312"), "ISO8859-1");
returnFileName = StringUtils.replace(returnFileName, " ", "%20");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
LogUtil.info("Don't support this encoding ...");
}
return returnFileName;
}
}

@ -12,6 +12,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.jeecgframework.web.system.manager.ClientManager;
/**
* html
@ -46,7 +47,6 @@ public class FormUtil {
String html = parseHtml;
JSONArray jsonArray = new JSONArray().fromObject(contentData);
for (int f = 0; f < jsonArray.size(); f++) {
if (jsonArray.getJSONObject(f) == null
|| "".equals(jsonArray.getJSONObject(f)))
@ -55,6 +55,9 @@ public class FormUtil {
JSONObject json = jsonArray.getJSONObject(f);// 获取对象
String name = "";
if(json==null){continue;
}
String leipiplugins = json.getString("leipiplugins").toString();
if ("checkboxs".equals(leipiplugins))
name = json.getString("parse_name").toString();
@ -81,6 +84,9 @@ public class FormUtil {
} else if ("progressbar".equals(leipiplugins)) {
// case ""://进度条 (未做处理)
/* temp_html = GetProgressbar(json, tableData, action); */
temp_html = json.getString("content").toString();
}else if ("popup".equals(leipiplugins)) {
temp_html = GetPopUp(json, tableData, action);
} else {
temp_html = json.getString("content").toString();
}
@ -109,7 +115,27 @@ public class FormUtil {
else
return temp_html;
}
// popup
private static String GetPopUp(JSONObject item,
Map<String, Object> formData, String action) {
String dictionary = item.getString("dictionary").toString();
String[]dic = new String[]{"","",""};
if(dictionary.split(",").length>1)dic = dictionary.split(",");
String temp = "<input type=\"text\" value=\"{0}\" class=\"searchbox-inputtext\" value=\"\" name=\"{1}\" style=\"{2}\" onClick=\"inputClick(this,''{3}'',''{4}'');\" />";
String name = item.getString("name").toString();
String value = "";
// if (value == null)
// value = item.getString("value") == null ? "" : item.getString(
// "value").toString();
String style = item.getString("style") == null ? "" : item.getString(
"style").toString();
String temp_html = MessageFormat.format(temp, value, name, style,dic[1],dic[0]);
if ("view".equals(action))
return MessageFormat.format(temp_view, style, value,dic[1],dic[0]);
else
return temp_html;
}
// TextArea
private static String GetTextArea(JSONObject item,
Map<String, Object> formData, String action) {
@ -249,21 +275,21 @@ public class FormUtil {
String value = formData.get(name) == null ? null : formData.get(name)
.toString();
String temp_html = item.getString("content").toString();
String microtype = "text";
if (value == null) {
// region 制造规则值
String type = item.getString("orgtype").toString();
String date_format = "";
Date date = new Date();
Date date = new Date();//date”、“week”、“month”、“time”、“datetime”和“datetime-local
if (type.equals("sys_date")) {
date_format = "yyyy-MM-dd";
value = DateUtils.formatDate(date, date_format);
microtype = "date";
} else if (type.equals("sys_date_cn")) {
date_format = "yyyy年MM月dd日";
value = DateUtils.formatDate(date, date_format);
} else if (type.equals("sys_date_cn_short3")) {
date_format = "yyyy年";
value = DateUtils.formatDate(date, date_format);
@ -273,14 +299,17 @@ public class FormUtil {
} else if (type.equals("sys_date_cn_short1")) {
date_format = "yyyy年MM月";
value = DateUtils.formatDate(date, date_format);
microtype = "month";
} else if (type.equals("sys_date_cn_short2")) {
date_format = "MM月dd日";
value = DateUtils.formatDate(date, date_format);
} else if (type.equals("sys_time")) {
date_format = "HH:mm:ss";
microtype = "time";
value = DateUtils.formatDate(date, date_format);
} else if (type.equals("sys_datetime")) {
date_format = "yyyy-MM-dd HH:mm:ss";
date_format = "yyyy-MM-dd'T'HH:mm";
microtype = "datetime-local";
value = DateUtils.formatDate(date, date_format);
} else if (type.equals("sys_week")) {
// String[] Day = new String[] { "星期日", "星期一", "星期二", "星期三",
@ -288,23 +317,26 @@ public class FormUtil {
// value =
// Day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))].ToString();
value = DateUtils.formatDate(date, "EEEE");
//microtype = "week";
} else if (type.equals("sys_userid")) {
// if(!$def_value)
// $def_value = $controller["user"]["uid"];
// $tpl = str_replace("{macros}",$def_value,$tpl);
value="${userName }";
value="${userId}";
} else if (type.equals("sys_realname")) {
// if(!$def_value)
// $def_value = $controller["user"]["real_name"];
value="${userName }";
value="${userName}";
} else {
}
// endregion
}
if ("view".equals(action))
return value;
return value.replace("${userId}", ClientManager.getInstance().getClient().getUser().getId())
.replace("${userName}", ClientManager.getInstance().getClient().getUser().getUserName());
if(value!=null){
return temp_html.replace("{macros}", value);
temp_html = temp_html.replace("type=\"text\"","type=\""+microtype+"\" ");
return temp_html.replace("{macros}", value);
}else{
return temp_html;
}

@ -259,6 +259,23 @@ public final class JSONHelper {
}
return list;
}
// 返回非实体类型(Map<String,Object>)的List
public static List<Map<String, Object>> toList(JSONArray jsonArray) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
Map<String, Object> map = new HashMap<String, Object>();
Iterator it = jsonObject.keys();
while (it.hasNext()) {
String key = (String) it.next();
Object value = jsonObject.get(key);
map.put((String) key, value);
}
list.add(map);
}
return list;
}
/***
* JSONList

@ -16,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
*
*
* @author
* update-begin--Author:jg_longjb Date:20150313 for.getTSFunctions().size().getSubFunctionSize();
* update-begin--Author:jg_gudongli Date:20150516 for.getSubFunctionSize()hasSubFunction()
* ;
*/
public class ListtoMenu {
@ -414,7 +416,11 @@ public class ListtoMenu {
menuString.append(function.getFunctionUrl());
//如果是外部链接则不加菜单ID
if(function.getFunctionUrl().indexOf("http:")==-1){
menuString.append("&clickFunctionId=");
if(function.getFunctionUrl().indexOf("?") == -1){
menuString.append("?clickFunctionId=");
} else {
menuString.append("&clickFunctionId=");
}
menuString.append(function.getId());
}
menuString.append("\',\'");
@ -641,7 +647,6 @@ public class ListtoMenu {
data = dataString.toString();
return data;
}
private static String getIconAndNameForDesk(TSFunction function) {
StringBuffer dataString = new StringBuffer();

@ -28,8 +28,6 @@ public class MutiLangUtil {
String message = getMutiLangInstance().getLang("common.delete.success.param", param_lang_key);
return message;
}
// add-begin--Author:zhangguoming Date:20140727 for通用删除消息方法
/**
*
*
@ -40,7 +38,6 @@ public class MutiLangUtil {
String message = getMutiLangInstance().getLang("common.delete.fail.param", param_lang_key);
return message;
}
// add-end--Author:zhangguoming Date:20140727 for通用删除消息方法
/**
*
@ -145,8 +142,6 @@ public class MutiLangUtil {
String context = getMutiLangInstance().getLang(title, langArg);
return context;
}
// add-begin--Author:zhangguoming Date:20140928 for多语言
/**
*
* @param list
@ -156,7 +151,7 @@ public class MutiLangUtil {
if (ListUtils.isNullOrEmpty(list)) {
return;
}
if (attributes == null && attributes.length == 0) {
if (attributes == null || attributes.length == 0) {
return;
}
List<Object> newList = new ArrayList<Object>();
@ -181,6 +176,5 @@ public class MutiLangUtil {
list.clear();
list.addAll(newList);
}
// add-end--Author:zhangguoming Date:20140928 for多语言
}

@ -21,6 +21,7 @@ import org.jeecgframework.web.system.pojo.base.TSUser;
public class ResourceUtil {
private static final ResourceBundle bundle = java.util.ResourceBundle.getBundle("sysConfig");
public final static boolean fuzzySearch= ResourceUtil.isFuzzySearch();
/**
* session
@ -144,7 +145,6 @@ public class ResourceUtil {
public static final String getJdbcUrl() {
return DBTypeUtil.getDBType().toLowerCase();
}
/**
*
*
@ -190,6 +190,8 @@ public class ResourceUtil {
} else {
key = key;
}
//----------------------------------------------------------------
//替换为系统的登录用户账号
// if (key.equals(DataBaseConstant.CREATE_BY)
@ -211,6 +213,7 @@ public class ResourceUtil {
) {
returnValue = getSessionUserName().getRealName();
}
//----------------------------------------------------------------
//替换为系统登录用户的公司编码
if (key.equals(DataBaseConstant.SYS_COMPANY_CODE)|| key.equals(DataBaseConstant.SYS_COMPANY_CODE_TABLE)) {
returnValue = getSessionUserName().getCurrentDepart().getOrgCode()
@ -237,4 +240,7 @@ public class ResourceUtil {
org.jeecgframework.core.util.LogUtil.info(getSysPath());
}
public static boolean isFuzzySearch(){
return "1".equals(bundle.getString("fuzzySearch"));
}
}

@ -0,0 +1,181 @@
package org.jeecgframework.core.util;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.jeecgframework.web.system.pojo.base.DynamicDataSourceEntity;
/**
* Created by on 2015/6/8.
*/
public class SqlUtil {
public static final String DATABSE_TYPE_MYSQL ="mysql";
public static final String DATABSE_TYPE_POSTGRE ="postgresql";
public static final String DATABSE_TYPE_ORACLE ="oracle";
public static final String DATABSE_TYPE_SQLSERVER ="sqlserver";
/**
* SQL
*/
public static final String MYSQL_SQL = "select * from ( {0}) sel_tab00 limit {1},{2}"; //mysql
public static final String POSTGRE_SQL = "select * from ( {0}) sel_tab00 limit {2} offset {1}";//postgresql
public static final String ORACLE_SQL = "select * from (select row_.*,rownum rownum_ from ({0}) row_ where rownum <= {1}) where rownum_>{2}"; //oracle
public static final String SQLSERVER_SQL = "select * from ( select row_number() over(order by tempColumn) tempRowNumber, * from (select top {1} tempColumn = 0, {0}) t ) tt where tempRowNumber > {2}"; //sqlserver
/**
* SQL
*/
public static final String MYSQL_ALLTABLES_SQL = "select distinct table_name from information_schema.columns where table_schema = {0}";
public static final String POSTGRE__ALLTABLES_SQL = "SELECT distinct c.relname AS table_name FROM pg_class c";
public static final String ORACLE__ALLTABLES_SQL = "select distinct colstable.table_name as table_name from user_tab_cols colstable";
public static final String SQLSERVER__ALLTABLES_SQL= "select distinct c.name as table_name from sys.objects c";
/**
*
*/
public static final String MYSQL_ALLCOLUMNS_SQL = "select column_name from information_schema.columns where table_name = {0} and table_schema = {1}";
public static final String POSTGRE_ALLCOLUMNS_SQL = "select table_name from information_schema.columns where table_name = {0}";
public static final String ORACLE_ALLCOLUMNS_SQL = "select column_name from all_tab_columns where table_name ={0}";
public static final String SQLSERVER_ALLCOLUMNS_SQL = "select name from syscolumns where id={0}";
/**
* sql
* @param sql
* @param params
* @return
*/
public static String getFullSql(String sql,Map params){
StringBuilder sqlB = new StringBuilder();
sqlB.append("SELECT t.* FROM ( ");
sqlB.append(sql+" ");
sqlB.append(") t ");
if (params!=null&&params.size() >= 1) {
sqlB.append("WHERE 1=1 ");
Iterator it = params.keySet().iterator();
while (it.hasNext()) {
String key = String.valueOf(it.next());
String value = String.valueOf(params.get(key));
if (!StringUtil.isEmpty(value) && !"null".equals(value)) {
sqlB.append(" AND ");
sqlB.append(" " + key + value );
}
}
}
return sqlB.toString();
}
/**
* sql
* @param sql
* @param params
* @return
*/
public static String getCountSql(String sql, Map params) {
String querySql = getFullSql(sql,params);
querySql = "SELECT COUNT(*) FROM ("+querySql+") t2";
return querySql;
}
/**
* sql
* @param sql
* @param page
* @param rows
* @return
*/
public static String jeecgCreatePageSql(String sql,Map params, int page, int rows){
int beginNum = (page - 1) * rows;
String[] sqlParam = new String[3];
sqlParam[0] = sql;
sqlParam[1] = beginNum+"";
sqlParam[2] = rows+"";
if(ResourceUtil.getJdbcUrl().indexOf(DATABSE_TYPE_MYSQL)!=-1){
sql = MessageFormat.format(MYSQL_SQL, sqlParam);
}else if(ResourceUtil.getJdbcUrl().indexOf(DATABSE_TYPE_POSTGRE)!=-1){
sql = MessageFormat.format(POSTGRE_SQL, sqlParam);
}else {
int beginIndex = (page-1)*rows;
int endIndex = beginIndex+rows;
sqlParam[2] = Integer.toString(beginIndex);
sqlParam[1] = Integer.toString(endIndex);
if(ResourceUtil.getJdbcUrl().indexOf(DATABSE_TYPE_ORACLE)!=-1) {
sql = MessageFormat.format(ORACLE_SQL, sqlParam);
} else if(ResourceUtil.getJdbcUrl().indexOf(DATABSE_TYPE_SQLSERVER)!=-1) {
sqlParam[0] = sql.substring(getAfterSelectInsertPoint(sql));
sql = MessageFormat.format(SQLSERVER_SQL, sqlParam);
}
}
return sql;
}
/**
* sql
* @param sql
* @param page
* @param rows
* @return
*/
@SuppressWarnings("rawtypes")
public static String jeecgCreatePageSql(String dbKey,String sql,Map params, int page, int rows){
int beginNum = (page - 1) * rows;
String[] sqlParam = new String[3];
sqlParam[0] = sql;
sqlParam[1] = beginNum+"";
sqlParam[2] = rows+"";
DynamicDataSourceEntity dynamicSourceEntity = DynamicDataSourceEntity.DynamicDataSourceMap.get(dbKey);
String databaseType = dynamicSourceEntity.getDbType();
if(DATABSE_TYPE_MYSQL.equalsIgnoreCase(databaseType)){
sql = MessageFormat.format(MYSQL_SQL, sqlParam);
}else if(DATABSE_TYPE_POSTGRE.equalsIgnoreCase(databaseType)){
sql = MessageFormat.format(POSTGRE_SQL, sqlParam);
}else {
int beginIndex = (page-1)*rows;
int endIndex = beginIndex+rows;
sqlParam[2] = Integer.toString(beginIndex);
sqlParam[1] = Integer.toString(endIndex);
if(DATABSE_TYPE_ORACLE.equalsIgnoreCase(databaseType)) {
sql = MessageFormat.format(ORACLE_SQL, sqlParam);
} else if(DATABSE_TYPE_SQLSERVER.equalsIgnoreCase(databaseType)) {
sqlParam[0] = sql.substring(getAfterSelectInsertPoint(sql));
sql = MessageFormat.format(SQLSERVER_SQL, sqlParam);
}
}
return sql;
}
private static int getAfterSelectInsertPoint(String sql) {
int selectIndex = sql.toLowerCase().indexOf("select");
int selectDistinctIndex = sql.toLowerCase().indexOf("select distinct");
return selectIndex + (selectDistinctIndex == selectIndex ? 15 : 6);
}
public static String getAllTableSql(String dbType,String ... param){
if(StringUtil.isNotEmpty(dbType)){
if(dbType.equals(DATABSE_TYPE_MYSQL)){
return MessageFormat.format(MYSQL_ALLTABLES_SQL, param);
}else if(dbType.equals(DATABSE_TYPE_ORACLE)){
return ORACLE__ALLTABLES_SQL;
}else if(dbType.equals(DATABSE_TYPE_POSTGRE)){
return POSTGRE__ALLTABLES_SQL;
}else if(dbType.equals(DATABSE_TYPE_SQLSERVER)){
return SQLSERVER__ALLTABLES_SQL;
}
}
return null;
}
public static String getAllCloumnSql(String dbType,String ... param){
if(StringUtil.isNotEmpty(dbType)){
if(dbType.equals(DATABSE_TYPE_MYSQL)){
return MessageFormat.format(MYSQL_ALLCOLUMNS_SQL, param);
}else if(dbType.equals(DATABSE_TYPE_ORACLE)){
return MessageFormat.format(ORACLE_ALLCOLUMNS_SQL, param);
}else if(dbType.equals(DATABSE_TYPE_POSTGRE)){
return MessageFormat.format(POSTGRE_ALLCOLUMNS_SQL, param);
}else if(dbType.equals(DATABSE_TYPE_SQLSERVER)){
return MessageFormat.format(SQLSERVER_ALLCOLUMNS_SQL, param);
}
}
return null;
}
}

@ -10,7 +10,8 @@ package org.jeecgframework.core.util;
public class YouBianCodeUtil {
// 数字位数(默认生成3位的数字)
private static final int numLength = 2;
private static final int numLength = 4;
public static final int zhanweiLength = 1+numLength;
/**
* codecode
@ -19,7 +20,7 @@ public class YouBianCodeUtil {
* @param code
* @return
*/
public static String getNextYouBianCode(String code) {
public static synchronized String getNextYouBianCode(String code) {
String newcode = "";
if (code == null || code =="") {
String zimu = "A";
@ -30,9 +31,9 @@ public class YouBianCodeUtil {
String after_code = code.substring(code.length() - 1 - numLength,code.length());
char after_code_zimu = after_code.substring(0, 1).charAt(0);
Integer after_code_num = Integer.parseInt(after_code.substring(1));
// System.out.println(after_code);
// System.out.println(after_code_zimu);
// System.out.println(after_code_num);
// org.jeecgframework.core.util.LogUtil.info(after_code);
// org.jeecgframework.core.util.LogUtil.info(after_code_zimu);
// org.jeecgframework.core.util.LogUtil.info(after_code_num);
String nextNum = "";
char nextZimu = 'A';
@ -67,11 +68,13 @@ public class YouBianCodeUtil {
* CODE:A01B03
* code:A01B04
*
* @param parentCode
* @param parentCode code
* @param localCode code
* @return
*/
public static String getSubYouBianCode(String parentCode,String localCode) {
public static synchronized String getSubYouBianCode(String parentCode,String localCode) {
if(localCode!=null && localCode!=""){
// return parentCode + getNextYouBianCode(localCode);
return getNextYouBianCode(localCode);
}else{
parentCode = parentCode + "A"+ getNextStrNum(0);
@ -142,10 +145,24 @@ public class YouBianCodeUtil {
}
return Integer.parseInt(max_num);
}
public static String[] cutYouBianCode(String code){
if(code==null||StringUtil.isEmpty(code)){
return null;
}else{
//获取标准长度为numLength+1,截取的数量为code.length/numLength+1
int c = code.length()/(numLength+1);
String[] cutcode = new String[c];
for(int i =0 ; i <c;i++){
cutcode[i] = code.substring(0,(i+1)*(numLength+1));
}
return cutcode;
}
}
public static void main(String[] args) {
// System.out.println(getNextZiMu('C'));
// System.out.println(getNextNum(8));
System.out.println(getSubYouBianCode("C99A99",null));
// org.jeecgframework.core.util.LogUtil.info(getNextZiMu('C'));
// org.jeecgframework.core.util.LogUtil.info(getNextNum(8));
org.jeecgframework.core.util.LogUtil.info(getSubYouBianCode("C99A01","B03"));
// org.jeecgframework.core.util.LogUtil.info(cutYouBianCode("C99A01B01")[2]);
}
}

@ -76,7 +76,7 @@ public class AutocompleteTag extends TagSupport {
.append("$(\"#"+name+"\").autocomplete(\""+dataSource+"\",{")
.append("max: 5,minChars: "+minLength+",width: 200,scrollHeight: 100,matchContains: true,autoFill: false,extraParams:{")
.append("featureClass : \"P\",style : \"full\", maxRows : "+maxRows+",labelField : \""+labelField+"\",valueField : \""+valueField+"\",")
.append("searchField : \""+searchField+"\",entityName : \""+entityName+"\",trem: getTremValue}");
.append("searchField : \""+searchField+"\",entityName : \""+entityName+"\",trem: getTremValue"+name+"}");
if(StringUtil.isNotEmpty(parse)){
nsb.append(",parse:function(data){return "+parse+".call(this,data);}");
}
@ -88,7 +88,7 @@ public class AutocompleteTag extends TagSupport {
nsb.append(result+".call(this,row); ");
}
nsb.append("}); });")
.append("function getTremValue(){return $(\"#"+name+"\").val();}")
.append("function getTremValue"+name+"(){return $(\"#"+name+"\").val();}")
.append("</script>")
.append("<input type=\"text\" id=\""+name+"\" datatype=\""+datatype+"\" nullmsg=\""+nullmsg+"\" errormsg=\""+errormsg+"\"/>");
if(StringUtil.isNotEmpty(label)){

@ -63,14 +63,18 @@ public class BaseTag extends TagSupport {
if(cssTheme==null||"".equals(cssTheme)){
cssTheme="default";
}*/
SysThemesEnum sysThemesEnum = SysThemesUtil.getSysTheme((HttpServletRequest) super.pageContext.getRequest());
SysThemesEnum sysThemesEnum = null;
if(StringUtil.isEmpty(cssTheme)||"null".equals(cssTheme)){
sysThemesEnum = SysThemesUtil.getSysTheme((HttpServletRequest) super.pageContext.getRequest());
}else{
sysThemesEnum = SysThemesEnum.toEnum(cssTheme);
}
String types[] = type.split(",");
//插入多语言脚本
String lang = (String)((HttpServletRequest) this.pageContext.getRequest()).getSession().getAttribute("lang");
String langjs = StringUtil.replace("<script type=\"text/javascript\" src=\"plug-in/mutiLang/{0}.js\"></script>", "{0}", lang);
sb.append(langjs);
if (oConvertUtils.isIn("jquery-webos", types)) {
sb.append("<script type=\"text/javascript\" src=\"plug-in/sliding/js/jquery-1.7.1.min.js\"></script>");
} else if (oConvertUtils.isIn("jquery", types)) {
@ -90,6 +94,7 @@ public class BaseTag extends TagSupport {
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/dataformat.js\"></script>");
// sb.append("<link id=\"easyuiTheme\" rel=\"stylesheet\" href=\"plug-in/easyui/themes/"+cssTheme+"/easyui.css\" type=\"text/css\"></link>");
sb.append(SysThemesUtil.getEasyUiTheme(sysThemesEnum));
sb.append(SysThemesUtil.getEasyUiMainTheme(sysThemesEnum));
sb.append("<link rel=\"stylesheet\" href=\"plug-in/easyui/themes/icon.css\" type=\"text/css\"></link>");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"plug-in/accordion/css/accordion.css\">");
sb.append("<script type=\"text/javascript\" src=\"plug-in/easyui/jquery.easyui.min.1.3.2.js\"></script>");

@ -48,7 +48,7 @@ public class ComboBoxTag extends TagSupport {
+"$(function() {"
+"$(\'#"+name+"\').combobox({"
+"url:\'"+url+"&id="+id+"&text="+text+"\',"
+"editable:\'false\',"
+"editable:\'"+editable+"\',"
+"valueField:\'id\',"
+"textField:\'text\',"
+"width:\'"+width+"\',"
@ -78,5 +78,12 @@ public class ComboBoxTag extends TagSupport {
public void setName(String name) {
this.name = name;
}
public boolean isEditable() {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
}
}

@ -25,6 +25,7 @@ public class DataGridColumnTag extends TagSupport {
protected boolean sortable=true;
protected boolean checkbox;
protected String formatter;
protected String formatterjs;//自定义函数名称(调用页面自定义js方法 参数为(value,row,index)
protected boolean hidden=false;
protected String replace;
protected String treefield;
@ -47,13 +48,20 @@ public class DataGridColumnTag extends TagSupport {
private boolean autocomplete = false;//自动完成
private String extendParams;//扩展参数
private String langArg;
protected String editor;//高级查询用的编辑器
public String getEditor() {
return editor;
}
public void setEditor(String editor) {
this.editor = editor;
}
public int doEndTag() throws JspTagException {
title = MutiLangUtil.doMutiLang(title, langArg);
Tag t = findAncestorWithClass(this, DataGridTag.class);
DataGridTag parent = (DataGridTag) t;
parent.setColumn(title,field,width,rowspan,colspan,align,sortable,checkbox,formatter,hidden,replace,treefield,image,imageSize,query,url,funname,arg,queryMode, dictionary,popup,frozenColumn,extend,style,downloadName,autocomplete,extendParams);
parent.setColumn(title,field,width,rowspan,colspan,align,sortable,checkbox,formatter,formatterjs,hidden,replace,treefield,image,imageSize,query,url,funname,arg,queryMode, dictionary,popup,frozenColumn,extend,style,downloadName,autocomplete,extendParams,editor);
return EVAL_PAGE;
}
@ -192,4 +200,9 @@ public class DataGridColumnTag extends TagSupport {
public void setLangArg(String langArg) {
this.langArg = langArg;
}
public void setFormatterjs(String formatterjs) {
this.formatterjs = formatterjs;
}
}

@ -79,6 +79,14 @@ public class DataGridTag extends TagSupport {
private boolean autoLoadData=true; // 列表是否自动加载数据
//private boolean frozenColumn=false; // 是否是冰冻列 默认不是
private String langArg;
protected String cssTheme ;
public String getCssTheme() {
return cssTheme;
}
public void setCssTheme(String cssTheme) {
this.cssTheme = cssTheme;
}
private boolean queryBuilder = false;// 高级查询器
public boolean isQueryBuilder() {
@ -261,18 +269,19 @@ public class DataGridTag extends TagSupport {
*/
public void setColumn(String title, String field, Integer width, String rowspan,
String colspan, String align, boolean sortable, boolean checkbox,
String formatter, boolean hidden, String replace,
String formatter,String formatterjs, boolean hidden, String replace,
String treefield, boolean image,String imageSize,
boolean query, String url, String funname,
String arg,String queryMode, String dictionary,boolean popup,
boolean frozenColumn,String extend,
String style,String downloadName,boolean isAuto,String extendParams) {
String style,String downloadName,boolean isAuto,String extendParams,String editor) {
DataGridColumn dataGridColumn = new DataGridColumn();
dataGridColumn.setAlign(align);
dataGridColumn.setCheckbox(checkbox);
dataGridColumn.setColspan(colspan);
dataGridColumn.setField(field);
dataGridColumn.setFormatter(formatter);
dataGridColumn.setFormatterjs(formatterjs);
dataGridColumn.setHidden(hidden);
dataGridColumn.setRowspan(rowspan);
dataGridColumn.setSortable(sortable);
@ -295,6 +304,7 @@ public class DataGridTag extends TagSupport {
dataGridColumn.setDownloadName(downloadName);
dataGridColumn.setAutocomplete(isAuto);
dataGridColumn.setExtendParams(extendParams);
dataGridColumn.setEditor(editor);
columnList.add(dataGridColumn);
Set<String> operationCodes = (Set<String>) super.pageContext.getRequest().getAttribute(Globals.OPERATIONCODES);
if (null!=operationCodes) {
@ -320,7 +330,7 @@ public class DataGridTag extends TagSupport {
searchFields += field + ",";
}
}
if (replace != null) {
if (StringUtil.isNotEmpty(replace)) {
String[] test = replace.split(",");
String lang_key = "";
String text = "";
@ -429,7 +439,6 @@ public class DataGridTag extends TagSupport {
JspWriter out = this.pageContext.getOut();
// String indexStyle =null;
//-----author:jg_longjb----start-----date:20150408--------for:读取cookie主题样式 ace界面下table的输出
// Cookie[] cookies = ((HttpServletRequest) super.pageContext
// .getRequest()).getCookies();
// for (Cookie cookie : cookies) {
@ -440,13 +449,13 @@ public class DataGridTag extends TagSupport {
// indexStyle = cookie.getValue();
// }
// }
SysThemesEnum sysThemesEnum = SysThemesUtil.getSysTheme((HttpServletRequest) super.pageContext.getRequest());
// SysThemesEnum sysThemesEnum = SysThemesUtil.getSysTheme((HttpServletRequest) super.pageContext.getRequest());
if (style.equals("easyui")) {
if("ace".equals(sysThemesEnum.getStyle())){
out.print(this.aceStyleTable().toString());
}else{
// if("ace".equals(sysThemesEnum.getStyle())){
// out.print(this.aceStyleTable().toString());
// }else{
out.print(end().toString());
}
// }
}else{
out.print(datatables().toString());
out.flush();
@ -679,11 +688,9 @@ public class DataGridTag extends TagSupport {
sb.append("function dosearch(params){");
sb.append("var jsonparams=$.parseJSON(params);");
sb.append("$(\'#" + name + "\')." + grid + "({url:'" + actionUrl + "&field=" + searchFields + "',queryParams:jsonparams});" + "}");
//searchbox框执行方法
searchboxFun(sb,grid);
//生成重置按钮功能js
//回车事件
sb.append("function EnterPress(e){");
sb.append("var e = e || window.event;");
@ -770,12 +777,12 @@ public class DataGridTag extends TagSupport {
sb.append(getAutoSpan(col.getField().replaceAll("_","\\."),extendAttribute(col.getExtend())));
}else{
sb.append("<input class=\"inuptxt\" onkeypress=\"EnterPress(event)\" onkeydown=\"EnterPress()\" type=\"text\" name=\""+col.getField().replaceAll("_","\\.")+"\" "+extendAttribute(col.getExtend())+" style=\"width: 100px\" />");
sb.append("<input onkeypress=\"EnterPress(event)\" onkeydown=\"EnterPress()\" type=\"text\" name=\""+col.getField().replaceAll("_","\\.")+"\" "+extendAttribute(col.getExtend())+" class=\"inuptxt\" style=\"width: 100px\" />");
}
}else if("group".equals(col.getQueryMode())){
sb.append("<input class=\"inuptxt\" type=\"text\" name=\""+col.getField()+"_begin\" style=\"width: 94px\" "+extendAttribute(col.getExtend())+"/>");
sb.append("<input type=\"text\" name=\""+col.getField()+"_begin\" style=\"width: 94px\" "+extendAttribute(col.getExtend())+" class=\"inuptxt\"/>");
sb.append("<span style=\"display:-moz-inline-box;display:inline-block;width: 8px;text-align:right;\">~</span>");
sb.append("<input class=\"inuptxt\" type=\"text\" name=\""+col.getField()+"_end\" style=\"width: 94px\" "+extendAttribute(col.getExtend())+"/>");
sb.append("<input type=\"text\" name=\""+col.getField()+"_end\" style=\"width: 94px\" "+extendAttribute(col.getExtend())+" class=\"inuptxt\"/>");
}
sb.append("</span>");
}
@ -854,25 +861,32 @@ public class DataGridTag extends TagSupport {
Iterator it = obj.keys();
while(it.hasNext()){
String key = String.valueOf(it.next());
JSONObject nextObj =((JSONObject)obj.get(key));
Iterator itvalue =nextObj.keys();
re.append(key+"="+"\"");
if(nextObj.size()<=1){
String onlykey = String.valueOf(itvalue.next());
if("value".equals(onlykey)){
re.append(nextObj.get(onlykey)+"");
}else{
re.append(onlykey+":"+nextObj.get(onlykey)+"");
}
}else{
while(itvalue.hasNext()){
String multkey = String.valueOf(itvalue.next());
String multvalue = nextObj.getString(multkey);
re.append(multkey+":"+multvalue+",");
}
re.deleteCharAt(re.length()-1);
JSONObject nextObj = null;
try {
nextObj =((JSONObject)obj.get(key));
Iterator itvalue =nextObj.keys();
re.append(key+"="+"\"");
if(nextObj.size()<=1){
String onlykey = String.valueOf(itvalue.next());
if("value".equals(onlykey)){
re.append(nextObj.get(onlykey)+"");
}else{
re.append(onlykey+":"+nextObj.get(onlykey)+"");
}
}else{
while(itvalue.hasNext()){
String multkey = String.valueOf(itvalue.next());
String multvalue = nextObj.getString(multkey);
re.append(multkey+":"+multvalue+",");
}
re.deleteCharAt(re.length()-1);
}
re.append("\" ");
} catch (Exception e) {
re.append(key+"="+"\"");
re.append(obj.get(key)+"\"");
re.append("\" ");
}
re.append("\" ");
}
}catch (Exception e) {
e.printStackTrace();
@ -1115,72 +1129,69 @@ public class DataGridTag extends TagSupport {
sb.append(",sortable:" + column.isSortable() + "");
}
}
// 显示图片
if (column.isImage()) {
sb.append(",formatter:function(value,rec,index){");
sb.append(" return '<img border=\"0\" src=\"'+value+'\"/>';}");
}
// 自定义显示图片
if (column.getImageSize() != null) {
String[] tld = column.getImageSize().split(",");
sb.append(",formatter:function(value,rec,index){");
sb.append(" return '<img width=\"" + tld[0]
+ "\" height=\"" + tld[1]
+ "\" border=\"0\" src=\"'+value+'\"/>';}");
tld = null;
}
if(column.getDownloadName() != null){
sb.append(",formatter:function(value,rec,index){");
sb.append(" return '<a target=\"_blank\" href=\"'+value+'\">"
+ column.getDownloadName() + "</a>';}");
}
// 自定义链接
if (column.getUrl() != null) {
if(column.getFormatterjs()!=null){
sb.append(",formatter:function(value,rec,index){");
this.getFun(sb, column);
sb.append("}");
}
if(column.getFormatter()!=null)
{
sb.append(",formatter:function(value,rec,index){");
sb.append(" return new Date().format('"+column.getFormatter()+"',value);}");
}
// 加入操作
if (column.getField().equals("opt")) {
sb.append(",formatter:function(value,rec,index){");
// sb.append("return \"");
this.getOptUrl(sb);
sb.append("}");
}
// 值替換
if (columnValueList.size() > 0 && !column.getField().equals("opt")) {
String testString = "";
for (ColumnValue columnValue : columnValueList) {
if (columnValue.getName().equals(column.getField())) {
String[] value = columnValue.getValue().split(",");
String[] text = columnValue.getText().split(",");
sb.append(" return "+column.getFormatterjs()+"(value,rec,index);}");
}else {
// 显示图片
if (column.isImage()) {
if (column.getImageSize() != null) {// 自定义显示图片
String[] tld = column.getImageSize().split(",");
sb.append(",formatter:function(value,rec,index){");
sb.append(" return '<img width=\"" + tld[0]
+ "\" height=\"" + tld[1]
+ "\" border=\"0\" src=\"'+value+'\"/>';}");
tld = null;
}else{
sb.append(",formatter:function(value,rec,index){");
sb.append("var valArray = value.split(\",\");");
sb.append("if(valArray.length > 1){");
sb.append("var checkboxValue = \"\";");
sb.append("for(var k=0; k<valArray.length; k++){");
for(int j = 0; j < value.length; j++){
sb.append("if(valArray[k] == '" + value[j] + "'){ checkboxValue = checkboxValue + \'" + text[j] + "\' + ','}");
}
sb.append("}");
sb.append("return checkboxValue.substring(0,checkboxValue.length-1);");
sb.append("}");
sb.append("else{");
for (int j = 0; j < value.length; j++) {
testString += "if(value=='" + value[j] + "'){return \'" + text[j] + "\'}";
sb.append(" return '<img border=\"0\" src=\"'+value+'\"/>';}");
}
} else if(column.getDownloadName() != null){
sb.append(",formatter:function(value,rec,index){");
sb.append(" return '<a target=\"_blank\" href=\"'+value+'\">"
+ column.getDownloadName() + "</a>';}");
}else if (column.getUrl() != null) { // 自定义链接
sb.append(",formatter:function(value,rec,index){");
this.getFun(sb, column);
sb.append("}");
}else if (column.getField().equals("opt")) {// 加入操作
sb.append(",formatter:function(value,rec,index){");
// sb.append("return \"");
this.getOptUrl(sb);
sb.append("}");
}else if (columnValueList.size() > 0 && !column.getField().equals("opt")) {// 值替換
String testString = "";
for (ColumnValue columnValue : columnValueList) {
if (columnValue.getName().equals(column.getField())) {
String[] value = columnValue.getValue().split(",");
String[] text = columnValue.getText().split(",");
sb.append(",formatter:function(value,rec,index){");
sb.append("if(value==undefined) return '';");
sb.append("var valArray = value.split(',');");
sb.append("if(valArray.length > 1){");
sb.append("var checkboxValue = '';");
sb.append("for(var k=0; k<valArray.length; k++){");
for(int j = 0; j < value.length; j++){
sb.append("if(valArray[k] == '" + value[j] + "'){ checkboxValue = checkboxValue + \'" + text[j] + "\' + ',';}");
}
sb.append("}");
sb.append("return checkboxValue.substring(0,checkboxValue.length-1);");
sb.append("}");
sb.append("else{");
for (int j = 0; j < value.length; j++) {
testString += "if(value=='" + value[j] + "'){return \'" + text[j] + "\';}";
}
sb.append(testString);
sb.append("else{return value;}");
sb.append("}");
sb.append("}");
}
sb.append(testString);
sb.append("else{return value}");
sb.append("}");
sb.append("}");
}
}else if(column.getFormatter()!=null)
{
sb.append(",formatter:function(value,rec,index){");
sb.append(" return new Date().format('"+column.getFormatter()+"',value);}");
}
}
// 背景设置
if (columnStyleList.size() > 0 && !column.getField().equals("opt")) {
@ -1280,7 +1291,7 @@ public class DataGridTag extends TagSupport {
}
}
org.jeecgframework.core.util.LogUtil.info("----getNoAuthOperButton-------"+sb.toString());
//org.jeecgframework.core.util.LogUtil.info("----getNoAuthOperButton-------"+sb.toString());
return sb.toString();
}
@ -1408,14 +1419,13 @@ public class DataGridTag extends TagSupport {
public void setLangArg(String langArg) {
this.langArg = langArg;
}
//-----author:jg_longjb----start-----date:20150408--------for:新增ace 界面下的button class样式
public StringBuffer aceStyleTable() {
String grid = "";
StringBuffer sb = new StringBuffer();
width = (width == null) ? "auto" : width;
height = (height == null) ? "auto" : height;
sb.append("<link rel=\"stylesheet\" href=\"plug-in/easyui/themes/metro/main.css\" /><script type=\"text/javascript\">");
// sb.append("<link rel=\"stylesheet\" href=\"plug-in/easyui/themes/metro/main.css\" />");
sb.append("<script type=\"text/javascript\">");
sb.append("$(function(){ storage=$.localStorage;if(!storage)storage=$.cookieStorage;");
sb.append(this.getNoAuthOperButton());
if (treegrid) {
@ -1635,12 +1645,12 @@ public class DataGridTag extends TagSupport {
}else if(col.isAutocomplete()){
sb.append(getAutoSpan(col.getField().replaceAll("_","\\."),extendAttribute(col.getExtend())));
}else{
sb.append("<input class=\"inuptxt\" onkeypress=\"EnterPress(event)\" onkeydown=\"EnterPress()\" type=\"text\" name=\""+col.getField().replaceAll("_","\\.")+"\" "+extendAttribute(col.getExtend())+" />");
sb.append("<input onkeypress=\"EnterPress(event)\" onkeydown=\"EnterPress()\" type=\"text\" name=\""+col.getField().replaceAll("_","\\.")+"\" "+extendAttribute(col.getExtend())+" class=\"inuptxt\"/>");
}
}else if("group".equals(col.getQueryMode())){
sb.append("<input class=\"inuptxt\" type=\"text\" name=\""+col.getField()+"_begin\" "+extendAttribute(col.getExtend())+"/>");
sb.append("<input type=\"text\" name=\""+col.getField()+"_begin\" "+extendAttribute(col.getExtend())+" class=\"inuptxt\"/>");
sb.append("<span style=\"display:-moz-inline-box;display:inline-block;width: 8px;text-align:right;\">~</span>");
sb.append("<input class=\"inuptxt\" type=\"text\" name=\""+col.getField()+"_end\" "+extendAttribute(col.getExtend())+"/>");
sb.append("<input type=\"text\" name=\""+col.getField()+"_end\" "+extendAttribute(col.getExtend())+" class=\"inuptxt\"/>");
}
sb.append("</span>");
@ -1703,9 +1713,6 @@ public class DataGridTag extends TagSupport {
}
return sb;
}
//-----author:jg_longjb----start-----date:20150427--------for:新增高级查询器queryBuilder
private void appendLine(StringBuffer sb,String str) {
String format = "\r\n"; //调试 格式化
sb.append(str).append(format);
@ -1784,7 +1791,11 @@ appendLine(sb," }}\">关系</th>");
for (int i=0;i<columnList.size();i++){
DataGridColumn col =columnList.get(i);
if("opt".equals(col.getField()))continue;//忽略操作虚拟字段
fieldArray.append(" {'fieldId':'"+getDBFieldName(col.getField())+"','fieldName':'"+col.getTitle()+"'}");
fieldArray.append(" {'fieldId':'"+getDBFieldName(col.getField())+"','fieldName':'"+col.getTitle()+"'");
if(col.getEditor()!=null){
fieldArray.append(",editor:'"+col.getEditor()+"'");
}
fieldArray.append("}");
if(i<columnList.size()-1){
fieldArray.append(",");
}
@ -1806,10 +1817,20 @@ appendLine(sb," }}\">关系</th>");
appendLine(sb,"data: ");
sb.append(fieldArray);
appendLine(sb," , ");
appendLine(sb," required:true");
appendLine(sb," }}\">字段</th>");
sb
.append("<th data-options=\"field:'condition',width:20,align:'right',formatter:function(value,row){");
appendLine(sb, "required:true,onSelect : function(record) {");
appendLine(sb,"var opts = $('#"+name+"tg').treegrid('getColumnOption','value');");
appendLine(sb, " if(record.editor){");
appendLine(sb, " opts.editor=record.editor;");
appendLine(sb, " }else{");
appendLine(sb, " opts.editor='text';");
appendLine(sb, " }");
appendLine(sb, " var tr = $(this).closest('tr.datagrid-row');");
appendLine(sb, " var index = parseInt(tr.attr('node-id'));");
appendLine(sb, " $('#"+name+"tg').treegrid('endEdit', index);");
appendLine(sb, " $('#"+name+"tg').treegrid('beginEdit', index);");
appendLine(sb, "}");
appendLine(sb,"}}\">字段</th>");
appendLine(sb,"<th data-options=\"field:'condition',width:20,align:'right',formatter:function(value,row){");
appendLine(sb," var data= ");
appendLine(sb," [ ");
Map<String, List<TSType>> typedatas = TSTypegroup.allTypes;
@ -2051,5 +2072,4 @@ appendLine(sb," }}\">关系</th>");
}
return sb.toString();
}
//----author:jg_longjb----start-----date:20150427--------for:新增封装查询器组件----
}

@ -53,6 +53,14 @@ public class DictSelectTag extends TagSupport {
public void setDictCondition(String dicCondition) {
this.dictCondition = dicCondition;
}
private String datatype;
public String getDatatype() {
return datatype;
}
public void setDatatype(String datatype) {
this.datatype = datatype;
}
@Autowired
private static SystemService systemService;
@ -156,6 +164,7 @@ public class DictSelectTag extends TagSupport {
if (!StringUtils.isBlank(this.id)) {
sb.append(" id=\"" + id + "\"");
}
this.datatype(sb);
sb.append(">");
select("common.please.select", "", sb);
for (TSType type : types) {
@ -201,6 +210,7 @@ public class DictSelectTag extends TagSupport {
if (!StringUtils.isBlank(this.id)) {
sb.append(" id=\"" + id + "\"");
}
this.datatype(sb);
sb.append(" />");
} else {
sb.append("<input type=\"radio\" name=\"" + field + "\" value=\""
@ -208,6 +218,7 @@ public class DictSelectTag extends TagSupport {
if (!StringUtils.isBlank(this.id)) {
sb.append(" id=\"" + id + "\"");
}
this.datatype(sb);
sb.append(" />");
}
sb.append(MutiLangUtil.getMutiLangInstance().getLang(name));
@ -239,6 +250,7 @@ public class DictSelectTag extends TagSupport {
if (!StringUtils.isBlank(this.id)) {
sb.append(" id=\"" + id + "\"");
}
this.datatype(sb);
sb.append(" />");
} else {
sb.append("<input type=\"checkbox\" name=\"" + field
@ -246,6 +258,7 @@ public class DictSelectTag extends TagSupport {
if (!StringUtils.isBlank(this.id)) {
sb.append(" id=\"" + id + "\"");
}
this.datatype(sb);
sb.append(" />");
}
sb.append(MutiLangUtil.getMutiLangInstance().getLang(name));
@ -286,6 +299,18 @@ public class DictSelectTag extends TagSupport {
List<Map<String, Object>> list = systemService.findForJdbc(sql);
return list;
}
/**
* datatype,
* @param sb
* @return
*/
private StringBuffer datatype(StringBuffer sb){
if (!StringUtils.isBlank(this.datatype)) {
sb.append(" datatype=\"" + datatype + "\"");
}
return sb;
}
public String getTypeGroupCode() {
return typeGroupCode;

@ -117,7 +117,12 @@ public class FormValidationTag extends TagSupport {
public int doEndTag() throws JspException {
try {
String lang = (String)((HttpServletRequest) this.pageContext.getRequest()).getSession().getAttribute("lang");
SysThemesEnum sysThemesEnum = SysThemesUtil.getSysTheme((HttpServletRequest) super.pageContext.getRequest());
SysThemesEnum sysThemesEnum = null;
if(StringUtil.isEmpty(cssTheme)||"null".equals(cssTheme)){
sysThemesEnum = SysThemesUtil.getSysTheme((HttpServletRequest) super.pageContext.getRequest());
}else{
sysThemesEnum = SysThemesEnum.toEnum(cssTheme);
}
JspWriter out = this.pageContext.getOut();
StringBuffer sb = new StringBuffer();
if (layout.equals("div")) {

@ -20,6 +20,7 @@ import org.jeecgframework.tag.vo.datatable.DataTableReturn;
import org.jeecgframework.tag.vo.easyui.Autocomplete;
import org.jeecgframework.web.system.pojo.base.TSRole;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
@ -93,18 +94,18 @@ public class TagUtil {
for (int i=0; i<jsonValue.length(); i++) {
char c = jsonValue.charAt(i);
switch (c){
case '\"':
sb.append("\\\"");
break;
// case '\"':
// sb.append("\\\"");
// break;
case '\'':
sb.append("\\\'");
break;
case '\\':
sb.append("\\\\");
break;
case '/':
sb.append("\\/");
break;
// case '/':
// sb.append("\\/");
// break;
case '\b':
sb.append("\\b");
break;
@ -176,23 +177,24 @@ public class TagUtil {
}
}
jsonTemp.append("]");
if (footers != null) {
if (footers != null&&footers.length>0) {
jsonTemp.append(",");
jsonTemp.append("\"footer\":[");
jsonTemp.append("{");
jsonTemp.append("\"name\":\"合计\",");
for (String footer : footers) {
String footerFiled = footer.split(":")[0];
// jsonTemp.append("\"name\":\"合计\",");
for(i=0;i<footers.length;i++){
String footerFiled = footers[i].split(":")[0];
Object value = null;
if (footer.split(":").length == 2)
value = footer.split(":")[1];
if (footers[i].split(":").length == 2)
value = footers[i].split(":")[1];
else {
value = getTotalValue(footerFiled, list);
}
jsonTemp.append("\"" + footerFiled + "\":\"" + value + "\",");
}
if (jsonTemp.lastIndexOf(",") == jsonTemp.length()) {
jsonTemp = jsonTemp.deleteCharAt(jsonTemp.length());
if(i==0){
jsonTemp.append("\"" + footerFiled + "\":\"" + value + "\"");
}else{
jsonTemp.append(",\"" + footerFiled + "\":\"" + value + "\"");
}
}
jsonTemp.append("}");
jsonTemp.append("]");
@ -438,6 +440,33 @@ public class TagUtil {
e.printStackTrace();
}
}
/**
* easyui
* datagrid JSON
* @param response
* @param dataGrid
* @param extMap
*/
public static void datagrid(HttpServletResponse response,DataGrid dg,Map<String,Map<String,Object>> extMap) {
response.setContentType("application/json");
response.setHeader("Cache-Control", "no-store");
JSONObject object = TagUtil.getJson(dg);
JSONArray r = object.getJSONArray("rows");
for (Object object2 : r) {
JSONObject o =(JSONObject) object2;
o.putAll(extMap.get(o.get("id")));
}
try {
PrintWriter pw=response.getWriter();
pw.write(object.toString());
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* datatable
* datatable JSON
@ -561,4 +590,23 @@ public class TagUtil {
param += "'\"+index+\"'";// 传出行索引号参数
return param;
}
public static String getJson(List fields,List datas){
if(datas!=null && datas.size()>0){
StringBuffer sb = new StringBuffer();
sb.append("{\"total\":\""+datas.size()+"\",\"rows\":[");
for(int i=0;i<datas.size();i++){
Object[] values = (Object[]) datas.get(i);
sb.append("{");
for(int j=0;j<values.length;j++){
sb.append("\""+fields.get(j)+"\":\""+(values[j]==null?"":values[j])+"\""+(j==values.length-1?"":","));
}
sb.append("}"+(i==datas.size()-1?"":","));
}
sb.append("]}");
return sb.toString();
}else{
return "{\"total\":\"0\",\"rows\":[]}";
}
}
}

@ -17,6 +17,7 @@ public class DataGridColumn {
protected boolean sortable;//是否排序
protected boolean checkbox;//是否显示复选框
protected String formatter;//格式化函数
protected String formatterjs;//自定义函数名称(调用页面自定义js方法 参数为(value,row,index)
protected boolean hidden;//是否隐藏
protected String treefield;//
protected boolean image;//是否是图片
@ -37,6 +38,14 @@ public class DataGridColumn {
protected String downloadName;//附件下载
protected boolean autocomplete;//自动补全
protected String extendParams;//扩展参数,easyui有的,但是jeecg没有的参数进行扩展
protected String editor;//高级查询用的编辑器
public String getEditor() {
return editor;
}
public void setEditor(String editor) {
this.editor = editor;
}
public String getDownloadName() {
return downloadName;
}
@ -258,6 +267,14 @@ public class DataGridColumn {
this.extendParams = extendParams;
}
public String getFormatterjs() {
return formatterjs;
}
public void setFormatterjs(String formatterjs) {
this.formatterjs = formatterjs;
}
}

@ -114,6 +114,12 @@ public class CgAutoListConstant {
/** 表单版本号 */
public static final String CONFIG_VERSION = "jformVersion";
/** 从表 */
public static final String SUB_TABLES = "subTables";
/** 表单类型 */
public static final String TABLE_TYPE = "tableType";
/** 1-单表,2-主表,3-从表 */
public static final int JFORM_TYPE_SINGLE_TABLE = 1;
public static final int JFORM_TYPE_MAIN_TALBE = 2;
@ -128,4 +134,27 @@ public class CgAutoListConstant {
public static final String SYS_MODE_DEV = "DEV";
/** 系统模式--发布模式 */
public static final String SYS_MODE_PUB = "PUB";
/**
* ================================
*/
/** 数据库表 table */
public static final String DB_TYPE_TABLE = "table";
/** 动态SQL sql */
public static final String DB_TYPE_SQL = "SQL";
/** java类 clazz */
public static final String DB_TYPE_CLAZZ = "clazz";
/**
* ===============Online=================
*/
/** Table风格(form)*/
public static final String CODE_JSP_MODE_01 = "01";
/** Div风格(form) */
public static final String CODE_JSP_MODE_02 = "02";
/** 详细页面-Table风格子表 */
public static final String CODE_JSP_MODE_03 = "03";
/** 自定义模板 */
public static final String CODE_JSP_MODE_04 = "04";
}

@ -65,10 +65,12 @@ public class OfficeHtmlUtil {
* WORD
* @param htmlfile
* HTML
* @throws Exception
*/
public void wordToHtml(String docfile, String htmlfile) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
public void wordToHtml(String docfile, String htmlfile) throws Exception {
ActiveXComponent app = null;
try {
app = new ActiveXComponent("Word.Application"); // 启动word
app.setProperty("Visible", new Variant(false));
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] { docfile, new Variant(false), new Variant(true) }, new int[1]).toDispatch();
@ -76,9 +78,12 @@ public class OfficeHtmlUtil {
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
// e.printStackTrace();
throw new Exception("请确认Word转化组件是否安装");
} finally {
app.invoke("Quit", new Variant[] {});
if(app!=null){
app.invoke("Quit", new Variant[] {});
}
}
}

@ -14,7 +14,24 @@
<property name="defaultEncoding" value="UTF-8"></property>
<property name="numberFormat" value="0"></property>
</bean>
<!-- update begin online代码生成器支持 自定义word改造 -->
<!-- FreeMarker 自定义word代码生成器 -->
<bean id="freemarkerWord" class="freemarker.template.Configuration">
<property name="templateLoader" ref="templetLoaderWord" />
<property name="defaultEncoding" value="UTF-8"></property>
<property name="numberFormat" value="0"></property>
</bean>
<!-- Template Context 自定义word代码生成器 -->
<bean id="templetContextWord" class="org.jeecgframework.web.cgform.service.impl.generate.TempletContextWord">
<property name="tags">
<map>
<entry key="DictData" value-ref="dictDataTag" />
</map>
</property>
</bean>
<!-- update end online代码生成器支持 自定义word改造 -->
<!-- Template Context -->
<bean id="templetContext" class="org.jeecgframework.web.cgform.engine.TempletContext">
<property name="tags">

@ -0,0 +1,557 @@
package org.jeecgframework.web.cgform.controller.autoform;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.jeecgframework.codegenerate.database.JeecgReadTable;
import org.jeecgframework.codegenerate.pojo.Columnt;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.exception.BusinessException;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.util.*;
import org.jeecgframework.tag.core.easyui.TagUtil;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.entity.autoform.*;
import org.jeecgframework.web.cgform.service.autoform.AutoFormDbServiceI;
import org.jeecgframework.web.system.pojo.base.DynamicDataSourceEntity;
import org.jeecgframework.web.system.service.DynamicDataSourceServiceI;
import org.jeecgframework.web.system.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.SQLException;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Title: Controller
* @Description:
* @author onlineGenerator
* @date 2015-06-17 19:36:59
* @version V1.0
*
*/
@Scope("prototype")
@Controller
@RequestMapping("/autoFormDbController")
public class AutoFormDbController extends BaseController {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(AutoFormDbController.class);
@Autowired
private AutoFormDbServiceI autoFormDbService;
@Autowired
private SystemService systemService;
@Autowired
private DynamicDataSourceServiceI dynamicDataSourceServiceI;
/**
*
*
* @return
*/
@RequestMapping(params = "autoFormDb")
public ModelAndView autoFormDb(HttpServletRequest request) {
String autoFormId = request.getParameter("autoFormId");
if(oConvertUtils.isNotEmpty(autoFormId)){
request.setAttribute("autoFormId", autoFormId);
}
return new ModelAndView("jeecg/cgform/autoform/autoFormDbList");
}
/**
* easyui AJAX
*
* @param request
* @param response
* @param dataGrid
* @param user
*/
@RequestMapping(params = "datagrid")
public void datagrid(AutoFormDbEntity autoFormDb,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(AutoFormDbEntity.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, autoFormDb);
try{
//自定义追加查询条件
}catch (Exception e) {
throw new BusinessException(e.getMessage());
}
cq.add();
this.autoFormDbService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
*
*
* @return
*/
@RequestMapping(params = "doDel")
@ResponseBody
public AjaxJson doDel(AutoFormDbEntity autoFormDb, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
autoFormDb = systemService.getEntity(AutoFormDbEntity.class, autoFormDb.getId());
String message = "表单数据源删除成功";
try{
autoFormDbService.delMain(autoFormDb);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "表单数据源删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "doBatchDel")
@ResponseBody
public AjaxJson doBatchDel(String ids,HttpServletRequest request){
AjaxJson j = new AjaxJson();
String message = "表单数据源删除成功";
try{
for(String id:ids.split(",")){
AutoFormDbEntity autoFormDb = systemService.getEntity(AutoFormDbEntity.class,
id
);
autoFormDbService.delMain(autoFormDb);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}
}catch(Exception e){
e.printStackTrace();
message = "表单数据源删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @param ids
* @return
*/
@RequestMapping(params = "doAdd")
@ResponseBody
public AjaxJson doAdd(AutoFormDbEntity autoFormDb,AutoFormDbPage autoFormDbPage, HttpServletRequest request) {
List<AutoFormDbFieldEntity> autoFormDbFieldList = autoFormDbPage.getAutoFormDbFieldList();
List<AutoFormParamEntity> autoFormParamList = autoFormDbPage.getAutoFormParamList();
AjaxJson j = new AjaxJson();
String message = "添加成功";
try{
autoFormDbService.addMain(autoFormDb, autoFormDbFieldList, autoFormParamList);
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "表单数据源添加失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @param ids
* @return
*/
@RequestMapping(params = "doUpdate")
@ResponseBody
public AjaxJson doUpdate(AutoFormDbEntity autoFormDb,AutoFormDbPage autoFormDbPage, HttpServletRequest request) {
List<AutoFormDbFieldEntity> autoFormDbFieldList = autoFormDbPage.getAutoFormDbFieldList();
List<AutoFormParamEntity> autoFormParamList = autoFormDbPage.getAutoFormParamList();
AjaxJson j = new AjaxJson();
String message = "更新成功";
try{
autoFormDbService.updateMain(autoFormDb, autoFormDbFieldList, autoFormParamList);
systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "更新表单数据源失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "goAdd")
public ModelAndView goAdd(AutoFormDbEntity autoFormDb, HttpServletRequest req) {
if (StringUtil.isNotEmpty(autoFormDb.getId())) {
autoFormDb = autoFormDbService.getEntity(AutoFormDbEntity.class, autoFormDb.getId());
}
req.setAttribute("autoFormDbPage", autoFormDb);
Collection<DynamicDataSourceEntity> dynamicDataSourceEntitys = DynamicDataSourceEntity.DynamicDataSourceMap.values();
req.setAttribute("dynamicDataSourceEntitys", dynamicDataSourceEntitys);
try {
List<String> tableNames = new JeecgReadTable().readAllTableNames();
req.setAttribute("tableNames", tableNames);
} catch (SQLException e) {
logger.info(e.getMessage());
}
return new ModelAndView("jeecg/cgform/autoform/autoFormDb-add");
}
/**
*
*
* @return
*/
@RequestMapping(params = "goUpdate")
public ModelAndView goUpdate(AutoFormDbEntity autoFormDb, HttpServletRequest req) {
if (StringUtil.isNotEmpty(autoFormDb.getId())) {
autoFormDb = autoFormDbService.getEntity(AutoFormDbEntity.class, autoFormDb.getId());
List<String> tableNames = null;
if(StringUtils.isNotBlank(autoFormDb.getDbKey()) && "table".equals(autoFormDb.getDbType())){
DynamicDataSourceEntity dynamicDataSourceEntity = dynamicDataSourceServiceI.getDynamicDataSourceEntityForDbKey(autoFormDb.getDbKey());
if(dynamicDataSourceEntity!=null){
tableNames = DynamicDBUtil.findList(autoFormDb.getDbKey(),SqlUtil.getAllTableSql(dynamicDataSourceEntity.getDbType(), "'"+dynamicDataSourceEntity.getDbName()+"'"),String.class);
}
}
Collection<DynamicDataSourceEntity> dynamicDataSourceEntitys = DynamicDataSourceEntity.DynamicDataSourceMap.values();
req.setAttribute("dynamicDataSourceEntitys", dynamicDataSourceEntitys);
//数据源类型
String dbKey = null;
if(CgAutoListConstant.DB_TYPE_TABLE.equals(autoFormDb.getDbType())){
dbKey = autoFormDb.getDbKey();
}else if(CgAutoListConstant.DB_TYPE_SQL.equals(autoFormDb.getDbType())){
dbKey = autoFormDb.getTbDbKey();
}
if(StringUtils.isBlank(dbKey)){
//默认当前平台数据源
try {
tableNames = new JeecgReadTable().readAllTableNames();
} catch (SQLException e) {
}
}else{
//个性化配置多数据源
DynamicDataSourceEntity dynamicDataSourceEntity = dynamicDataSourceServiceI.getDynamicDataSourceEntityForDbKey(dbKey);
if(dynamicDataSourceEntity!=null){
tableNames = DynamicDBUtil.findList(dbKey,SqlUtil.getAllTableSql(dynamicDataSourceEntity.getDbType(), "'" + dynamicDataSourceEntity.getDbName() + "'"),String.class);
}
}
req.setAttribute("tableNames", tableNames);
req.setAttribute("autoFormDbPage", autoFormDb);
}
return new ModelAndView("jeecg/cgform/autoform/autoFormDb-update");
}
/**
* []
*
* @return
*/
@RequestMapping(params = "autoFormDbFieldList")
public ModelAndView autoFormDbFieldList(AutoFormDbEntity autoFormDb, HttpServletRequest req) {
if (StringUtil.isNotEmpty(autoFormDb.getId())) {
//===================================================================================
//查询-表单数据源属性
String hql0 = "from AutoFormDbFieldEntity where 1 = 1 AND aUTO_FORM_DB_ID = ? ";
try{
List<AutoFormDbFieldEntity> autoFormDbFieldEntityList = systemService.findHql(hql0,autoFormDb.getId());
req.setAttribute("autoFormDbFieldList", autoFormDbFieldEntityList);
}catch(Exception e){
logger.info(e.getMessage());
}
}
return new ModelAndView("jeecg/cgform/autoform/autoFormDbFieldList");
}
/**
* []
*
* @return
*/
@RequestMapping(params = "autoFormParamList")
public ModelAndView autoFormParamList(AutoFormDbEntity autoFormDb, HttpServletRequest req) {
if (StringUtil.isNotEmpty(autoFormDb.getId())) {
//===================================================================================
//查询-表单参数
String hql1 = "from AutoFormParamEntity where 1 = 1 AND aUTO_FORM_DB_ID = ? ";
try{
List<AutoFormParamEntity> autoFormParamEntityList = systemService.findHql(hql1,autoFormDb.getId());
req.setAttribute("autoFormParamList", autoFormParamEntityList);
}catch(Exception e){
logger.info(e.getMessage());
}
}
return new ModelAndView("jeecg/cgform/autoform/autoFormParamList");
}
/**
* SQL
* @param sql
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping(params = "getFields", method = RequestMethod.POST)
@ResponseBody
public Object getSqlFields(String sql){
List<String> files = null;
List<String> params = null;
Map reJson = new HashMap<String, Object>();
try{
files = autoFormDbService.getSqlFields(sql);
params = autoFormDbService.getSqlParams(sql);
}catch (Exception e) {
//e.printStackTrace();
LogUtil.error(e.toString());
String errorInfo = "解析失败!<br><br>失败原因:";
errorInfo += e.getMessage();
reJson.put("status", "error");
reJson.put("datas", errorInfo);
return reJson;
}
reJson.put("status", "success");
reJson.put("files", files);
reJson.put("params", params);
return reJson;
}
/**
* []
*
* @return
*/
@RequestMapping(params = "autoFormDbFieldForTableList")
public ModelAndView autoFormDbFieldForTableList(AutoFormDbEntity autoFormDb, HttpServletRequest req) {
if (StringUtil.isNotEmpty(autoFormDb.getId())) {
//===================================================================================
//查询-表单数据源属性
String hql0 = "from AutoFormDbFieldEntity where 1 = 1 AND aUTO_FORM_DB_ID = ? ";
try{
List<AutoFormDbFieldEntity> autoFormDbFieldEntityList = systemService.findHql(hql0,autoFormDb.getId());
req.setAttribute("autoFormDbFieldList", autoFormDbFieldEntityList);
}catch(Exception e){
logger.info(e.getMessage());
}
}
return new ModelAndView("jeecg/cgform/autoform/autoFormDbFieldForTableList");
}
/**
*
* @param db_key
* @return
*/
@RequestMapping(params="getAllTableNames")
@ResponseBody
public Object getAllTableNames(String dbKey){
Map reJson = new HashMap<String, Object>();
List<String> tableNames = null;
try{
if(StringUtils.isNotBlank(dbKey)){
DynamicDataSourceEntity dynamicDataSourceEntity = dynamicDataSourceServiceI.getDynamicDataSourceEntityForDbKey(dbKey);
if(dynamicDataSourceEntity!=null){
tableNames = DynamicDBUtil.findList(dbKey,SqlUtil.getAllTableSql(dynamicDataSourceEntity.getDbType(), "'" + dynamicDataSourceEntity.getDbName() + "'"),String.class);
}
}else{
tableNames = new JeecgReadTable().readAllTableNames();
}
}catch (Exception e){
reJson.put("status", "error");
reJson.put("datas", "表查询失败!");
reJson.put("tableNames", new ArrayList<String>());
}
reJson.put("status", "success");
reJson.put("tableNames", tableNames);
return reJson;
}
/**
*
* @param sql
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping(params = "getTableFields", method = RequestMethod.POST)
@ResponseBody
public Object getTableFields(String dbKey,String tableName){
Map reJson = new HashMap<String, Object>();
List<String> columnsNames = null;
if(StringUtils.isNotBlank(dbKey)){
DynamicDataSourceEntity dynamicDataSourceEntity = dynamicDataSourceServiceI.getDynamicDataSourceEntityForDbKey(dbKey);
if(dynamicDataSourceEntity!=null){
columnsNames = DynamicDBUtil.findList(dbKey,SqlUtil.getAllCloumnSql(dynamicDataSourceEntity.getDbType(), "'" + tableName + "'", "'" + dynamicDataSourceEntity.getDbName() + "'"),String.class);
}
}else{
try {
List<Columnt> columns = new JeecgReadTable().readOriginalTableColumn(tableName);
columnsNames = new ArrayList<String>();
for(Columnt column:columns){
columnsNames.add(column.getFieldDbName());
}
} catch (Exception e) {
reJson.put("status", "error");
reJson.put("datas", "列查询失败!");
}
}
reJson.put("status", "success");
reJson.put("files", columnsNames);
return reJson;
}
/**
*
* @param id
* @return
*/
@RequestMapping(params="goView")
public ModelAndView goView(@RequestParam String id, HttpServletRequest req) {
if(StringUtil.isNotEmpty(id)){
AutoFormDbEntity autoFormDbEntity = autoFormDbService.getEntity(AutoFormDbEntity.class, id);
if(autoFormDbEntity!=null){
//查询-表单参数
String hql1 = "from AutoFormParamEntity where 1 = 1 AND aUTO_FORM_DB_ID = ? ";
try{
List<AutoFormParamEntity> autoFormParamEntityList = systemService.findHql(hql1,id);
req.setAttribute("autoFormParamList", autoFormParamEntityList);
}catch(Exception e){
logger.info(e.getMessage());
}
}
req.setAttribute("autoFormDbEntity", autoFormDbEntity);
}
return new ModelAndView("jeecg/cgform/autoform/autoFormDb-view");
}
/**
*
* @param id
* @return
*/
@RequestMapping(params="view",method=RequestMethod.POST)
@ResponseBody
public AjaxJson view(AutoFormDbEntity autoFormDb,HttpServletRequest req) {
AjaxJson j = new AjaxJson();
String msg = "";
Map<String,String[]> paramMap = req.getParameterMap();
List<Map<String, Object>> map = null;
String dbKey = autoFormDb.getDbKey();//数据源key
String dbType = autoFormDb.getDbType();//数据源类型
String dbTableName = autoFormDb.getDbTableName();//数据库表名
String dbDynSql = autoFormDb.getDbDynSql();
if("table".equals(dbType)){
//如果数据源类型为表类型通过属性表里面的属性拼出SQL
String hqlField = "from AutoFormDbFieldEntity where 1 = 1 AND aUTO_FORM_DB_ID = ? ";
try{
List<AutoFormDbFieldEntity> autoFormDbFieldEntityList = systemService.findHql(hqlField,autoFormDb.getId());
if(autoFormDbFieldEntityList.size()>0){
StringBuffer hqlTable = new StringBuffer().append("select ");
for(AutoFormDbFieldEntity autoFormDbFieldEntity:autoFormDbFieldEntityList){
hqlTable.append(autoFormDbFieldEntity.getFieldName()+",");
}
hqlTable.deleteCharAt(hqlTable.length()-1).append(" from "+dbTableName);
if("".equals(dbKey)){
//当前上下文中的DB环境获取数据库表中的所有数据
map = systemService.findForJdbc(hqlTable.toString());
}
else{
DynamicDataSourceEntity dynamicDataSourceEntity = dynamicDataSourceServiceI.getDynamicDataSourceEntityForDbKey(dbKey);
if(dynamicDataSourceEntity!=null){
map = DynamicDBUtil.findList(dbKey,hqlTable.toString());
}
}
j.setObj(map);
msg = "表数据查询成功!";
}else{
j.setSuccess(false);
msg = "表属性配置有误!";
}
}catch(Exception e){
logger.info(e.getMessage());
}
}else if("sql".equals(dbType)){
//如果数据源类型为SQL类型直接通过替换SQL里面的参数变量解析出可执行的SQL
List<String> params = autoFormDbService.getSqlParams(dbDynSql);
for(String param:params){
String[] paramValue = paramMap.get("#"+param);
dbDynSql = dbDynSql.replaceAll("\\$\\{"+param+"\\}", paramValue[0]);
}
//判断sql中是否还有没有被替换的变量如果有抛出错误
if(dbDynSql.contains("\\$")){
j.setSuccess(false);
msg = "动态SQL数据查询失败";
}else{
try {
map = systemService.findForJdbc(dbDynSql);
msg = "动态SQL数据查询成功";
j.setObj(map);
} catch (Exception e) {
logger.info(e.getMessage());
j.setSuccess(false);
msg = "动态SQL数据查询失败";
}
}
}else{
//预留给CLAZZ类型
}
j.setMsg(msg);
return j;
}
/**
*
*/
@ResponseBody
@RequestMapping(params="checkDbName")
public JSONObject checkDbName(HttpServletRequest req,String cVal){
JSONObject jsonObject = new JSONObject();
String param = req.getParameter("param");
if(StringUtils.isNotBlank(cVal)&&cVal.equals(param)){
jsonObject.put("info", "验证通过!");
jsonObject.put("status", "y");
return jsonObject;
}
List<AutoFormStyleEntity> list = new ArrayList<AutoFormStyleEntity>();
String hql = "from AutoFormDbEntity t where t.dbName = ?";
list = this.systemService.findHql(hql, param);
if(list.size()>0){
jsonObject.put("status", "n");
jsonObject.put("info", "数据源名称重复,请重新输入!");
return jsonObject;
}
jsonObject.put("info", "验证通过!");
jsonObject.put("status", "y");
return jsonObject;
}
}

@ -0,0 +1,338 @@
package org.jeecgframework.web.cgform.controller.autoform;
import java.util.ArrayList;
import java.util.List;
import java.text.SimpleDateFormat;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.context.annotation.Scope;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.exception.BusinessException;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.tag.core.easyui.TagUtil;
import org.jeecgframework.web.cgform.entity.autoform.AutoFormStyleEntity;
import org.jeecgframework.web.cgform.service.autoform.AutoFormStyleServiceI;
import org.jeecgframework.web.system.pojo.base.TSDepart;
import org.jeecgframework.web.system.service.SystemService;
import org.jeecgframework.core.util.MyBeanUtils;
import com.alibaba.fastjson.JSONObject;
/**
* @Title: Controller
* @Description:
* @author onlineGenerator
* @date 2015-06-15 20:58:08
* @version V1.0
*
*/
@Scope("prototype")
@Controller
@RequestMapping("/autoFormStyleController")
public class AutoFormStyleController extends BaseController {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(AutoFormStyleController.class);
@Autowired
private AutoFormStyleServiceI autoFormStyleService;
@Autowired
private SystemService systemService;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
/**
*
*
* @return
*/
@RequestMapping(params = "autoFormStyle")
public ModelAndView autoFormStyle(HttpServletRequest request) {
return new ModelAndView("jeecg/cgform/autoform/autoFormStyleList");
}
/**
* easyui AJAX
*
* @param request
* @param response
* @param dataGrid
* @param user
*/
@RequestMapping(params = "datagrid")
public void datagrid(AutoFormStyleEntity autoFormStyle,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(AutoFormStyleEntity.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, autoFormStyle, request.getParameterMap());
try{
//自定义追加查询条件
}catch (Exception e) {
throw new BusinessException(e.getMessage());
}
cq.add();
this.autoFormStyleService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
*
*
* @return
*/
@RequestMapping(params = "doDel")
@ResponseBody
public AjaxJson doDel(AutoFormStyleEntity autoFormStyle, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
autoFormStyle = systemService.getEntity(AutoFormStyleEntity.class, autoFormStyle.getId());
message = "表单样式表删除成功";
try{
autoFormStyleService.delete(autoFormStyle);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "表单样式表删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "doBatchDel")
@ResponseBody
public AjaxJson doBatchDel(String ids,HttpServletRequest request){
AjaxJson j = new AjaxJson();
message = "表单样式表删除成功";
try{
for(String id:ids.split(",")){
AutoFormStyleEntity autoFormStyle = systemService.getEntity(AutoFormStyleEntity.class,
id
);
autoFormStyleService.delete(autoFormStyle);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}
}catch(Exception e){
e.printStackTrace();
message = "表单样式表删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @param ids
* @return
*/
@RequestMapping(params = "doAdd")
@ResponseBody
public AjaxJson doAdd(AutoFormStyleEntity autoFormStyle, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
message = "表单样式表添加成功";
try{
autoFormStyleService.save(autoFormStyle);
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "表单样式表添加失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @param ids
* @return
*/
@RequestMapping(params = "doUpdate")
@ResponseBody
public AjaxJson doUpdate(AutoFormStyleEntity autoFormStyle, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
message = "表单样式表更新成功";
AutoFormStyleEntity t = autoFormStyleService.get(AutoFormStyleEntity.class, autoFormStyle.getId());
try {
MyBeanUtils.copyBeanNotNull2Bean(autoFormStyle, t);
autoFormStyleService.saveOrUpdate(t);
systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
} catch (Exception e) {
e.printStackTrace();
message = "表单样式表更新失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "goAdd")
public ModelAndView goAdd(AutoFormStyleEntity autoFormStyle, HttpServletRequest req) {
if (StringUtil.isNotEmpty(autoFormStyle.getId())) {
autoFormStyle = autoFormStyleService.getEntity(AutoFormStyleEntity.class, autoFormStyle.getId());
req.setAttribute("autoFormStylePage", autoFormStyle);
}
return new ModelAndView("jeecg/cgform/autoform/autoFormStyle-add");
}
/**
*
*
* @return
*/
@RequestMapping(params = "goUpdate")
public ModelAndView goUpdate(AutoFormStyleEntity autoFormStyle, HttpServletRequest req) {
if (StringUtil.isNotEmpty(autoFormStyle.getId())) {
autoFormStyle = autoFormStyleService.getEntity(AutoFormStyleEntity.class, autoFormStyle.getId());
req.setAttribute("autoFormStylePage", autoFormStyle);
}
return new ModelAndView("jeecg/cgform/autoform/autoFormStyle-update");
}
@ResponseBody
@RequestMapping(params="checkStyleNm")
public JSONObject checkStyleNm(AutoFormStyleEntity autoFormStyle,HttpServletRequest req){
JSONObject jsonObject = new JSONObject();
String param = req.getParameter("param");
List<AutoFormStyleEntity> list = new ArrayList<AutoFormStyleEntity>();
String hql = "";
if(StringUtils.isNotBlank(autoFormStyle.getId())){
hql = "from AutoFormStyleEntity t where t.id != ? and t.styleDesc = ?";
list = this.systemService.findHql(hql, autoFormStyle.getId(),param);
} else {
hql = "from AutoFormStyleEntity t where t.styleDesc = ?";
list = this.systemService.findHql(hql, param);
}
if(list.size()>0){
jsonObject.put("status", "n");
jsonObject.put("info", "样式名称重复,请重新输入!");
return jsonObject;
}
jsonObject.put("status", "y");
return jsonObject;
}
/**
*
*
* @return
*
@RequestMapping(params = "upload")
public ModelAndView upload(HttpServletRequest req) {
req.setAttribute("controller_name","autoFormStyleController");
return new ModelAndView("common/upload/pub_excel_upload");
}
/**
* excel
*
* @param request
* @param response
*
@RequestMapping(params = "exportXls")
public String exportXls(AutoFormStyleEntity autoFormStyle,HttpServletRequest request,HttpServletResponse response
, DataGrid dataGrid,ModelMap modelMap) {
CriteriaQuery cq = new CriteriaQuery(AutoFormStyleEntity.class, dataGrid);
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, autoFormStyle, request.getParameterMap());
List<AutoFormStyleEntity> autoFormStyles = this.autoFormStyleService.getListByCriteriaQuery(cq,false);
modelMap.put(NormalExcelConstants.FILE_NAME,"表单样式表");
modelMap.put(NormalExcelConstants.CLASS,AutoFormStyleEntity.class);
modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("表单样式表列表", "导出人:"+ResourceUtil.getSessionUserName().getRealName(),
"导出信息"));
modelMap.put(NormalExcelConstants.DATA_LIST,autoFormStyles);
return NormalExcelConstants.JEECG_EXCEL_VIEW;
}
/**
* excel 使
*
* @param request
* @param response
*
@RequestMapping(params = "exportXlsByT")
public String exportXlsByT(AutoFormStyleEntity autoFormStyle,HttpServletRequest request,HttpServletResponse response
, DataGrid dataGrid,ModelMap modelMap) {
modelMap.put(TemplateExcelConstants.FILE_NAME, "表单样式表");
modelMap.put(TemplateExcelConstants.PARAMS,new TemplateExportParams("Excel模板地址"));
modelMap.put(TemplateExcelConstants.MAP_DATA,null);
modelMap.put(TemplateExcelConstants.CLASS,AutoFormStyleEntity.class);
modelMap.put(TemplateExcelConstants.LIST_DATA,null);
return TemplateExcelConstants.JEECG_TEMPLATE_EXCEL_VIEW;
}
@SuppressWarnings("unchecked")
@RequestMapping(params = "importExcel", method = RequestMethod.POST)
@ResponseBody
public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<AutoFormStyleEntity> listAutoFormStyleEntitys = ExcelImportUtil.importExcel(file.getInputStream(),AutoFormStyleEntity.class,params);
for (AutoFormStyleEntity autoFormStyle : listAutoFormStyleEntitys) {
autoFormStyleService.save(autoFormStyle);
}
j.setMsg("文件导入成功!");
} catch (Exception e) {
j.setMsg("文件导入失败!");
logger.error(ExceptionUtil.getExceptionMessage(e));
}finally{
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return j;
}*/
}

@ -16,10 +16,14 @@ import javax.servlet.http.HttpSession;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.engine.FreemarkerHelper;
import org.jeecgframework.web.cgform.entity.config.CgFormFieldEntity;
import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity;
import org.jeecgframework.web.cgform.entity.template.CgformTemplateEntity;
import org.jeecgframework.web.cgform.service.autolist.CgTableServiceI;
import org.jeecgframework.web.cgform.service.autolist.ConfigServiceI;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.jeecgframework.web.cgform.service.template.CgformTemplateServiceI;
import org.jeecgframework.web.cgform.util.QueryParamUtil;
import org.jeecgframework.web.cgform.util.TemplateUtil;
import org.jeecgframework.web.system.pojo.base.DictEntity;
import org.jeecgframework.web.system.pojo.base.TSOperation;
import org.jeecgframework.web.system.service.SystemService;
@ -61,6 +65,8 @@ public class CgAutoListController extends BaseController{
private SystemService systemService;
@Autowired
private CgFormFieldServiceI cgFormFieldService;
@Autowired
private CgformTemplateServiceI cgformTemplateService;
private static Logger log = Logger.getLogger(CgAutoListController.class);
/**
*
@ -81,7 +87,17 @@ public class CgAutoListController extends BaseController{
//step.3 封装页面数据
loadVars(configs,paras,request);
//step.4 组合模板+数据参数,进行页面展现
String html = viewEngine.parseTemplate("/org/jeecgframework/web/cgform/engine/autolist/autolist.ftl", paras);
String template=request.getParameter("olstylecode");
if(StringUtils.isBlank(template)){
CgFormHeadEntity head = cgFormFieldService.getCgFormHeadByTableName(id);
template=head.getFormTemplate();
paras.put("_olstylecode","");
}else{
paras.put("_olstylecode",template);
}
paras.put("this_olstylecode",template);
CgformTemplateEntity entity=cgformTemplateService.findByCode(template);
String html = viewEngine.parseTemplate(TemplateUtil.getTempletPath(entity,0, TemplateUtil.TemplateType.LIST), paras);
try {
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
@ -122,7 +138,6 @@ public class CgAutoListController extends BaseController{
QueryParamUtil.loadQueryParams(request,b,params);
fieldMap.put(b.getFieldName(), new String[]{b.getType(), b.getFieldDefault()});
}
//参数处理
boolean isTree = configs.get(CgAutoListConstant.CONFIG_ISTREE) == null ? false
: CgAutoListConstant.BOOL_TRUE.equalsIgnoreCase(configs.get(CgAutoListConstant.CONFIG_ISTREE).toString());
@ -439,14 +454,16 @@ public class CgAutoListController extends BaseController{
if(ResourceUtil.getSessionUserName().getUserName().equals("admin")|| !Globals.BUTTON_AUTHORITY_CHECK){
nolist = null;
}
List<String> list = new ArrayList<String>();
String nolistStr = "";
if(nolist!=null){
for(TSOperation operation:nolist){
nolistStr+=operation.getOperationcode();
nolistStr+=",";
list.add(operation.getOperationcode());
}
}
paras.put(CgAutoListConstant.CONFIG_NOLIST, nolist==null?new ArrayList<String>(0):nolist);
paras.put(CgAutoListConstant.CONFIG_NOLIST, list);
paras.put(CgAutoListConstant.CONFIG_NOLISTSTR, nolistStr==null?"":nolistStr);
}
/**

@ -0,0 +1,443 @@
package org.jeecgframework.web.cgform.controller.autolist;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.engine.FreemarkerHelper;
import org.jeecgframework.web.cgform.entity.config.CgFormFieldEntity;
import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity;
import org.jeecgframework.web.cgform.entity.template.CgformTemplateEntity;
import org.jeecgframework.web.cgform.service.autolist.CgTableServiceI;
import org.jeecgframework.web.cgform.service.autolist.ConfigServiceI;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.jeecgframework.web.cgform.service.template.CgformTemplateServiceI;
import org.jeecgframework.web.cgform.util.TemplateUtil;
import org.jeecgframework.web.system.pojo.base.DictEntity;
import org.jeecgframework.web.system.pojo.base.TSOperation;
import org.jeecgframework.web.system.service.SystemService;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.enums.SysThemesEnum;
import org.jeecgframework.core.util.ContextHolderUtils;
import org.jeecgframework.core.util.ResourceUtil;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.core.util.SysThemesUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @title []
* @author luobaoli
* @date 2015-07-02
*/
@Controller
@RequestMapping("/cgform")
public class CgAutoListRestController extends BaseController{
@Autowired
private ConfigServiceI configService;
@Autowired
private CgTableServiceI cgTableService;
@Autowired
private SystemService systemService;
@Autowired
private CgFormFieldServiceI cgFormFieldService;
@Autowired
private CgformTemplateServiceI cgformTemplateService;
private static Logger log = Logger.getLogger(CgAutoListRestController.class);
/**
*
* @param id ID
* @param request
* @param response
*/
@RequestMapping(value="/list/{id}",method=RequestMethod.GET)
public void list(@PathVariable String id, HttpServletRequest request,HttpServletResponse response) {
long start = System.currentTimeMillis();
//step.1 根据表名获取该表单的配置参数
String jversion = cgFormFieldService.getCgFormVersionByTableName(id);
Map<String, Object> configs = configService.queryConfigs(id,jversion);
//step.2 获取列表ftl模板路径
FreemarkerHelper viewEngine = new FreemarkerHelper();
Map<String, Object> paras = new HashMap<String, Object>();
//step.3 封装页面数据
loadVars(configs,paras,request);
//step.4 组合模板+数据参数,进行页面展现
CgFormHeadEntity head = cgFormFieldService.getCgFormHeadByTableName(id);
CgformTemplateEntity entity=cgformTemplateService.findByCode(head.getFormTemplate());
String html = viewEngine.parseTemplate(TemplateUtil.getTempletPath(entity, 0, TemplateUtil.TemplateType.LIST), paras);
try {
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
PrintWriter writer = response.getWriter();
writer.println(html);
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
log.debug("动态列表生成耗时:"+(end-start)+" ms");
}
/**
*
* @param configId id
* @param id
* @param request
* @return
*/
@RequestMapping(value="/list/{configId}/{id}",method=RequestMethod.DELETE)
@ResponseBody
public AjaxJson del(String configId,String id,HttpServletRequest request) {
AjaxJson j = new AjaxJson();
String jversion = cgFormFieldService.getCgFormVersionByTableName(configId);
String table = (String) configService.queryConfigs(configId,jversion).get(CgAutoListConstant.TABLENAME);
cgTableService.delete(table, id);
String message = "删除成功";
systemService.addLog(message, Globals.Log_Type_DEL,Globals.Log_Leavel_INFO);
j.setMsg(message);
return j;
}
/**
* -
* @param configId id
* @param id
* @param request
* @return
*/
@RequestMapping(value="/list/{configId}/{ids}",method=RequestMethod.DELETE)
@ResponseBody
public AjaxJson delBatch(String configId,String ids,HttpServletRequest request) {
AjaxJson j = new AjaxJson();
String jversion = cgFormFieldService.getCgFormVersionByTableName(configId);
String table = (String) configService.queryConfigs(configId,jversion).get(CgAutoListConstant.TABLENAME);
String message = "删除成功";
try {
String[] id = ids.split(",");
cgTableService.deleteBatch(table, id);
} catch (Exception e) {
message = e.getMessage();
}
systemService.addLog(message, Globals.Log_Type_DEL,
Globals.Log_Leavel_INFO);
j.setMsg(message);
return j;
}
/**
* ftl
* @param configs
* @param paras ftlconfigs
* @param request
* @return ftlparas使
*/
@SuppressWarnings("unchecked")
private Map loadVars(Map<String, Object> configs,Map<String, Object> paras, HttpServletRequest request) {
paras.putAll(configs);
List<Map> fieldList = new ArrayList<Map>();
List<Map> queryList = new ArrayList<Map>();
StringBuilder fileds = new StringBuilder();
StringBuilder initQuery = new StringBuilder();
Set<String> operationCodes = (Set<String>) request.getAttribute(Globals.OPERATIONCODES);
Map<String,TSOperation> operationCodesMap = new HashMap<String, TSOperation>();
if(operationCodes != null){
TSOperation tsOperation;
for (String id : operationCodes) {
tsOperation = systemService.getEntity(TSOperation.class, id);
if(tsOperation != null && tsOperation.getOperationType() == 0 && tsOperation.getStatus() == 0){
operationCodesMap.put(tsOperation.getOperationcode(), tsOperation);
}
}
}
for (CgFormFieldEntity bean : (List<CgFormFieldEntity>) configs.get(CgAutoListConstant.FILEDS)) {
if(operationCodesMap.containsKey(bean.getFieldName())) {
continue;
}
Map fm = new HashMap<String, Object>();
fm.put(CgAutoListConstant.FILED_ID, bean.getFieldName());
fm.put(CgAutoListConstant.FIELD_TITLE, bean.getContent());
String isShowList = bean.getIsShowList();
if(StringUtil.isEmpty(isShowList)){
if("id".equalsIgnoreCase(bean.getFieldName())){
isShowList = CgAutoListConstant.BOOL_FALSE;
}else{
isShowList = CgAutoListConstant.BOOL_TRUE;
}
}
fm.put(CgAutoListConstant.FIELD_ISSHOW, isShowList);
fm.put(CgAutoListConstant.FIELD_QUERYMODE, bean.getQueryMode());
fm.put(CgAutoListConstant.FIELD_SHOWTYPE, bean.getShowType());
fm.put(CgAutoListConstant.FIELD_TYPE, bean.getType());
fm.put(CgAutoListConstant.FIELD_LENGTH, bean.getFieldLength()==null?"120":bean.getFieldLength());
fm.put(CgAutoListConstant.FIELD_HREF, bean.getFieldHref()==null?"":bean.getFieldHref());
loadDic(fm,bean);
fieldList.add(fm);
if (CgAutoListConstant.BOOL_TRUE.equals(bean.getIsQuery())) {
Map fmq = new HashMap<String, Object>();
fmq.put(CgAutoListConstant.FILED_ID, bean.getFieldName());
fmq.put(CgAutoListConstant.FIELD_TITLE, bean.getContent());
fmq.put(CgAutoListConstant.FIELD_QUERYMODE, bean.getQueryMode());
fmq.put(CgAutoListConstant.FIELD_TYPE, bean.getType());
fmq.put(CgAutoListConstant.FIELD_SHOWTYPE, bean.getShowType());
fmq.put(CgAutoListConstant.FIELD_DICTFIELD, bean.getDictField());
fmq.put(CgAutoListConstant.FIELD_DICTTABLE, bean.getDictTable());
fmq.put(CgAutoListConstant.FIELD_ISQUERY,"Y");
loadDefaultValue(fmq,bean,request);
loadDic(fmq,bean);
queryList.add(fmq);
}
loadUrlDataFilter(queryList,bean,request);
loadInitQuery(initQuery,bean,request);
fileds.append(bean.getFieldName()).append(",");
}
loadAuth(paras, request);
loadIframeConfig(paras, request);
paras.put(CgAutoListConstant.CONFIG_FIELDLIST, fieldList);
paras.put(CgAutoListConstant.CONFIG_QUERYLIST, queryList);
paras.put(CgAutoListConstant.FILEDS, fileds);
paras.put(CgAutoListConstant.INITQUERY, initQuery);
return paras;
}
/**
* iframe
* @param paras
* @param request
*/
private void loadIframeConfig(Map<String, Object> paras,
HttpServletRequest request) {
HttpSession session = ContextHolderUtils.getSession();
String lang = (String)session.getAttribute("lang");
//如果列表以iframe形式的话需要加入样式文件
StringBuilder sb= new StringBuilder("");
sb.append("<base href=\""+request.getContextPath()+"/\"/>");
if(!request.getPathInfo().contains("isHref")){
// String cssTheme ="default";
// Cookie[] cookies = request.getCookies();
// for (Cookie cookie : cookies) {
// if (cookie == null || StringUtils.isEmpty(cookie.getName())) {
// continue;
// }
// if (cookie.getName().equalsIgnoreCase("JEECGCSSTHEME")) {
// cssTheme = cookie.getValue();
// }
// }
// if(StringUtil.isEmpty(cssTheme)){
// cssTheme ="default";
// }
SysThemesEnum sysThemesEnum = SysThemesUtil.getSysTheme(request);
sb.append("<script type=\"text/javascript\" src=\"plug-in/jquery/jquery-1.8.3.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/dataformat.js\"></script>");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"plug-in/accordion/css/accordion.css\">");
// sb.append("<link id=\"easyuiTheme\" rel=\"stylesheet\" href=\"plug-in/easyui/themes/"+cssTheme+"/easyui.css\" type=\"text/css\"></link>");
sb.append(SysThemesUtil.getEasyUiTheme(sysThemesEnum));
sb.append("<link rel=\"stylesheet\" href=\"plug-in/easyui/themes/icon.css\" type=\"text/css\"></link>");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"plug-in/accordion/css/icons.css\">");
sb.append("<script type=\"text/javascript\" src=\"plug-in/easyui/jquery.easyui.min.1.3.2.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/easyui/locale/zh-cn.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/syUtil.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/My97DatePicker/WdatePicker.js\"></script>");
// sb.append("<link rel=\"stylesheet\" href=\"plug-in/tools/css/common.css\" type=\"text/css\"></link>");
sb.append(SysThemesUtil.getCommonTheme(sysThemesEnum));
// sb.append("<script type=\"text/javascript\" src=\"plug-in/lhgDialog/lhgdialog.min.js\"></script>");
sb.append(SysThemesUtil.getLhgdialogTheme(sysThemesEnum));
sb.append(StringUtil.replace("<script type=\"text/javascript\" src=\"plug-in/tools/curdtools_{0}.js\"></script>", "{0}", lang));
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/easyuiextend.js\"></script>");
// if("metro".equals(cssTheme)){
// sb.append("<link id=\"easyuiTheme\" rel=\"stylesheet\" href=\"plug-in/easyui/themes/"+cssTheme+"/main.css\" type=\"text/css\"></link>");
// }
sb.append(SysThemesUtil.getEasyUiMainTheme(sysThemesEnum));
}else{
}
paras.put(CgAutoListConstant.CONFIG_IFRAME, sb.toString());
}
/**
*
* @param paras
* @param request
*/
private void loadAuth(Map<String, Object> paras, HttpServletRequest request) {
List<TSOperation> nolist = (List<TSOperation>) request.getAttribute(Globals.NOAUTO_OPERATIONCODES);
if(ResourceUtil.getSessionUserName().getUserName().equals("admin")|| !Globals.BUTTON_AUTHORITY_CHECK){
nolist = null;
}
List<String> list = new ArrayList<String>();
String nolistStr = "";
if(nolist!=null){
for(TSOperation operation:nolist){
nolistStr+=operation.getOperationcode();
nolistStr+=",";
list.add(operation.getOperationcode());
}
}
paras.put(CgAutoListConstant.CONFIG_NOLIST, list);
paras.put(CgAutoListConstant.CONFIG_NOLISTSTR, nolistStr==null?"":nolistStr);
}
/**
* -
* @param initQuery
* @param bean
* @param request
*/
private void loadInitQuery(StringBuilder initQuery, CgFormFieldEntity bean,
HttpServletRequest request) {
if(bean.getFieldName().equalsIgnoreCase("id")){
return;
}
String paramV = request.getParameter(bean.getFieldName());
String paramVbegin = request.getParameter(bean.getFieldName()+"_begin");
String paramVend = request.getParameter(bean.getFieldName()+"_end");
paramV = getSystemValue(paramV);
if(!StringUtil.isEmpty(paramV)){
initQuery.append("&"+bean.getFieldName()+"="+paramV);
}
if(!StringUtil.isEmpty(paramVbegin)){
initQuery.append("&"+bean.getFieldName()+"_begin="+paramVbegin);
}
if(!StringUtil.isEmpty(paramVend)){
initQuery.append("&"+bean.getFieldName()+"_end="+paramVend);
}
}
/**
* URL[hidden使]
* @param queryList
* @param bean
* @param request
*/
@SuppressWarnings("unchecked")
private void loadUrlDataFilter(List<Map> queryList, CgFormFieldEntity bean,
HttpServletRequest request) {
String paramV = request.getParameter(bean.getFieldName());
String paramVbegin = request.getParameter(bean.getFieldName()+"_begin");
String paramVend = request.getParameter(bean.getFieldName()+"_end");
if(bean.getFieldName().equalsIgnoreCase("id")){
return;
}
for(Map mq:queryList){
if(mq.containsValue(bean.getFieldName())){
return;
}
}
if(!StringUtil.isEmpty(paramV) || !StringUtil.isEmpty(paramVbegin) ||!StringUtil.isEmpty(paramVend)){
Map fmq = new HashMap<String, Object>();
fmq.put(CgAutoListConstant.FILED_ID, bean.getFieldName());
fmq.put(CgAutoListConstant.FIELD_TITLE, bean.getContent());
fmq.put(CgAutoListConstant.FIELD_QUERYMODE, bean.getQueryMode());
fmq.put(CgAutoListConstant.FIELD_TYPE, bean.getType());
fmq.put(CgAutoListConstant.FIELD_ISQUERY,"N");
paramV = getSystemValue(paramV);
fmq.put(CgAutoListConstant.FIELD_VALUE, paramV);
paramVend = getSystemValue(paramVend);
fmq.put(CgAutoListConstant.FIELD_VALUE_BEGIN, StringUtil.isEmpty(paramVbegin)?"":paramVbegin);
fmq.put(CgAutoListConstant.FIELD_VALUE_END, StringUtil.isEmpty(paramVend)?"":paramVend);
queryList.add(fmq);
}
}
/**
* URL[]
* @param fmq
* @param bean
* @param request
*/
@SuppressWarnings("unchecked")
private void loadDefaultValue(Map fmq, CgFormFieldEntity bean,
HttpServletRequest request) {
if(bean.getQueryMode().equalsIgnoreCase("single")){
String paramV = request.getParameter(bean.getFieldName());
if(!StringUtil.isEmpty(paramV)){
paramV = getSystemValue(paramV);
fmq.put(CgAutoListConstant.FIELD_VALUE, paramV);
}
}else if(bean.getQueryMode().equalsIgnoreCase("group")){
String paramVbegin = request.getParameter(bean.getFieldName()+"_begin");
String paramVend = request.getParameter(bean.getFieldName()+"_end");
fmq.put(CgAutoListConstant.FIELD_VALUE_BEGIN, StringUtil.isEmpty(paramVbegin)?"":paramVbegin);
fmq.put(CgAutoListConstant.FIELD_VALUE_END, StringUtil.isEmpty(paramVend)?"":paramVend);
}
}
/**
*
* @param m freemarker
* @param bean
*/
@SuppressWarnings("unchecked")
private void loadDic(Map m, CgFormFieldEntity bean) {
String dicT = bean.getDictTable();//字典Table
String dicF = bean.getDictField();//字典Code
String dicText = bean.getDictText();//字典Text
if(StringUtil.isEmpty(dicT)&& StringUtil.isEmpty(dicF)){
//如果这两个字段都为空,则没有数据字典
m.put(CgAutoListConstant.FIELD_DICTLIST, new ArrayList(0));
return;
}
if(!bean.getShowType().equals("popup")){
List<DictEntity> dicDatas = queryDic(dicT, dicF,dicText);
m.put(CgAutoListConstant.FIELD_DICTLIST, dicDatas);
}else{
m.put(CgAutoListConstant.FIELD_DICTLIST, new ArrayList(0));
}
}
/**
*
* @param dicTable
* @param dicCode
* @param dicText
* @return
*/
private List<DictEntity> queryDic(String dicTable, String dicCode,String dicText) {
// StringBuilder dicSql = new StringBuilder();
// if(StringUtil.isEmpty(dicTable)){//step.1 如果没有字典表则使用系统字典表
// dicTable = CgAutoListConstant.SYS_DIC;
// dicSql.append(" SELECT TYPECODE,TYPENAME FROM");
// dicSql.append(" "+dicTable);
// dicSql.append(" "+"WHERE TYPEGROUPID = ");
// dicSql.append(" "+"(SELECT ID FROM "+CgAutoListConstant.SYS_DICGROUP+" WHERE TYPEGROUPCODE = '"+dicCode+"' )");
// }else{//step.2 如果给定了字典表则使用该字典表,这个功能需要在表单配置追加字段
// //table表查询
// dicSql.append("SELECT DISTINCT ").append(dicCode).append(" as typecode, ");
// if(dicText!=null&&dicText.length()>0){
// dicSql.append(dicText).append(" as typename ");
// }else{
// dicSql.append(dicCode).append(" as typename ");
// }
// dicSql.append(" FROM ").append(dicTable);
// dicSql.append(" ORDER BY ").append(dicCode);
// }
// //step.3 字典数据
// List<Map<String, Object>> dicDatas = systemService.findForJdbc(dicSql.toString());
return systemService.queryDict(dicTable, dicCode, dicText);
}
private String getSystemValue(String sysVarName) {
if(StringUtil.isEmpty(sysVarName)){
return sysVarName;
}
if(sysVarName.contains("{") && sysVarName.contains("}")){
sysVarName = sysVarName.replaceAll("\\{", "");
sysVarName = sysVarName.replaceAll("\\}", "");
sysVarName =sysVarName.replace("sys.", "");
return ResourceUtil.getUserSystemData(sysVarName);
}else{
return sysVarName;
}
}
}

@ -1,27 +1,7 @@
package org.jeecgframework.web.cgform.controller.build;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.common.CommUtils;
import org.jeecgframework.web.cgform.engine.TempletContext;
import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity;
import org.jeecgframework.web.cgform.entity.upload.CgUploadEntity;
import org.jeecgframework.web.cgform.exception.BusinessException;
import org.jeecgframework.web.cgform.service.build.DataBaseService;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
@ -30,14 +10,32 @@ import org.jeecgframework.core.enums.SysThemesEnum;
import org.jeecgframework.core.util.ContextHolderUtils;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.core.util.SysThemesUtil;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.common.CommUtils;
import org.jeecgframework.web.cgform.engine.FreemarkerHelper;
import org.jeecgframework.web.cgform.engine.TempletContext;
import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity;
import org.jeecgframework.web.cgform.entity.template.CgformTemplateEntity;
import org.jeecgframework.web.cgform.entity.upload.CgUploadEntity;
import org.jeecgframework.web.cgform.exception.BusinessException;
import org.jeecgframework.web.cgform.service.build.DataBaseService;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.jeecgframework.core.util.oConvertUtils;
import org.jeecgframework.web.cgform.service.template.CgformTemplateServiceI;
import org.jeecgframework.web.cgform.util.TemplateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.*;
/**
* @ClassName: formBuildController
@ -55,7 +53,8 @@ public class CgFormBuildController extends BaseController {
private TempletContext templetContext;
@Autowired
private DataBaseService dataBaseService;
@Autowired
private CgformTemplateServiceI cgformTemplateService;
@Autowired
private CgFormFieldServiceI cgFormFieldService;
@ -76,13 +75,22 @@ public class CgFormBuildController extends BaseController {
try {
long start = System.currentTimeMillis();
String tableName =request.getParameter("tableName");
String ftlVersion =request.getParameter("ftlVersion");
Template template = templetContext.getTemplate(tableName, ftlVersion);
StringWriter stringWriter = new StringWriter();
BufferedWriter writer = new BufferedWriter(stringWriter);
Map<String, Object> data = new HashMap<String, Object>();
String id = request.getParameter("id");
//获取版本号
String mode=request.getParameter("mode");
String templateName=tableName+"_";
TemplateUtil.TemplateType templateType=TemplateUtil.TemplateType.LIST;
if(StringUtils.isBlank(id)){
templateName+=TemplateUtil.TemplateType.ADD.getName();
templateType=TemplateUtil.TemplateType.ADD;
}else if("read".equals(mode)){
templateName+=TemplateUtil.TemplateType.DETAIL.getName();
templateType=TemplateUtil.TemplateType.DETAIL;
}else{
templateName+=TemplateUtil.TemplateType.UPDATE.getName();
templateType=TemplateUtil.TemplateType.UPDATE;
}
//获取版本号
String version = cgFormFieldService.getCgFormVersionByTableName(tableName);
//装载表单配置
Map configData = cgFormFieldService.getFtlFormConfig(tableName,version);
@ -120,24 +128,69 @@ public class CgFormBuildController extends BaseController {
//装载单表/(主表和附表)表单数据
data.put("data", tableData);
data.put("id", id);
data.put("head", head);
//页面样式js引用
data.put(CgAutoListConstant.CONFIG_IFRAME, getHtmlHead(request));
//装载附件信息数据
pushFiles(data,id);
template.process(data, writer);
String content = stringWriter.toString();
pushFiles(data, id);
String content =null;
response.setContentType("text/html;charset=utf-8");
String urlTemplateName=request.getParameter("olstylecode");
if(StringUtils.isNotBlank(urlTemplateName)){
data.put("this_olstylecode",urlTemplateName);
content=getUrlTemplate(urlTemplateName,templateType,data);
}else{
data.put("this_olstylecode",head.getFormTemplate());
content=getTableTemplate(templateName,request,data);
}
response.getWriter().print(content);
long end = System.currentTimeMillis();
logger.debug("自定义表单生成耗时:"+(end-start)+" ms");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* url
* @param templateName
* @param templateType
* @param dataMap
* @return
*/
private String getUrlTemplate(String templateName,TemplateUtil.TemplateType templateType,Map dataMap){
String content=null;
CgformTemplateEntity entity=cgformTemplateService.findByCode(templateName);
if(entity!=null){
FreemarkerHelper viewEngine = new FreemarkerHelper();
content = viewEngine.parseTemplate(TemplateUtil.getTempletPath(entity,0, templateType), dataMap);
}
return content;
}
/**
*
* @param templateName
* @param request
* @param data
* @return
*/
private String getTableTemplate(String templateName,HttpServletRequest request,Map data){
StringWriter stringWriter = new StringWriter();
BufferedWriter writer = new BufferedWriter(stringWriter);
// String ftlVersion =request.getParameter("ftlVersion");
String ftlVersion = oConvertUtils.getString(data.get("version"));
Template template = templetContext.getTemplate(templateName, ftlVersion);
try {
template.process(data, writer);
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return stringWriter.toString();
}
private String getHtmlHead(HttpServletRequest request){
HttpSession session = ContextHolderUtils.getSession();
String lang = (String)session.getAttribute("lang");
@ -234,14 +287,16 @@ public class CgFormBuildController extends BaseController {
Object pkValue = null;
pkValue = dataBaseService.getPkValue(tableName);
data.put("id", pkValue);
int num = dataBaseService.insertTable(tableName, data);
if (num>0) {
//--authorluobaoli---------date:20150615--------for: 处理service层抛出的异常
try {
dataBaseService.insertTable(tableName, data);
j.setSuccess(true);
message = "业务提交成功";
}else {
j.setSuccess(false);
}catch (Exception e) {
j.setSuccess(false);
message = "业务提交失败";
}
}
//--authorluobaoli---------date:20150615--------for: 处理service层抛出的异常
} catch (Exception e) {
e.printStackTrace();
j.setSuccess(false);
@ -360,6 +415,7 @@ public class CgFormBuildController extends BaseController {
}
data = CommUtils.mapConvert(data);
dataBaseService.executeSqlExtend(formId, buttonCode, data);
dataBaseService.executeJavaExtend(formId, buttonCode, data);
}
j.setSuccess(true);
message = "操作成功";

@ -0,0 +1,217 @@
package org.jeecgframework.web.cgform.controller.build;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.engine.TempletContext;
import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity;
import org.jeecgframework.web.cgform.entity.upload.CgUploadEntity;
import org.jeecgframework.web.cgform.service.build.DataBaseService;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.enums.SysThemesEnum;
import org.jeecgframework.core.util.ContextHolderUtils;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.core.util.SysThemesUtil;
import org.jeecgframework.web.cgform.util.TemplateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
* @ClassName: cgFormBuildRestController
* @Description: -rest
* @author luobaoli
*/
@Scope("prototype")
@Controller
@RequestMapping("/cgform")
public class CgFormBuildRestController extends BaseController {
private static final Logger logger = Logger.getLogger(CgFormBuildRestController.class);
private String message;
@Autowired
private TempletContext templetContext;
@Autowired
private DataBaseService dataBaseService;
@Autowired
private CgFormFieldServiceI cgFormFieldService;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
/**
* form
*/
@RequestMapping(value="/form/{configId}",method=RequestMethod.GET)
public void ftlForm(@PathVariable String configId,HttpServletRequest request,HttpServletResponse response) {
ftlForm(configId,null,request,response);
}
/**
* form
*/
@SuppressWarnings("unchecked")
@RequestMapping(value="/form/{configId}/{id}",method=RequestMethod.GET)
public void ftlForm(@PathVariable String configId,@PathVariable String id,HttpServletRequest request,HttpServletResponse response) {
try {
long start = System.currentTimeMillis();
String tableName = configId;
String mode=request.getParameter("mode");
String templateName=tableName+"_";
if(StringUtils.isBlank(id)){
templateName+= TemplateUtil.TemplateType.ADD.getName();
}else if("read".equals(mode)){
templateName+=TemplateUtil.TemplateType.DETAIL.getName();
}else{
templateName+=TemplateUtil.TemplateType.UPDATE.getName();
}
String ftlVersion =request.getParameter("ftlVersion");
Template template = templetContext.getTemplate(templateName, ftlVersion);
StringWriter stringWriter = new StringWriter();
BufferedWriter writer = new BufferedWriter(stringWriter);
Map<String, Object> data = new HashMap<String, Object>();
//获取版本号
String version = cgFormFieldService.getCgFormVersionByTableName(tableName);
//装载表单配置
Map configData = cgFormFieldService.getFtlFormConfig(tableName,version);
data = new HashMap(configData);
//如果该表是主表查出关联的附表
CgFormHeadEntity head = (CgFormHeadEntity)data.get("head");
Map<String, Object> dataForm = new HashMap<String, Object>();
if(StringUtils.isNotEmpty(id)){
dataForm = dataBaseService.findOneForJdbc(tableName, id);
}
Iterator it=dataForm.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry=(Map.Entry)it.next();
String ok=(String)entry.getKey();
Object ov=entry.getValue();
data.put(ok, ov);
}
Map<String, Object> tableData = new HashMap<String, Object>();
//获取主表或单表表单数据
tableData.put(tableName, dataForm);
//获取附表表表单数据
if(StringUtils.isNotEmpty(id)){
if(head.getJformType()==CgAutoListConstant.JFORM_TYPE_MAIN_TALBE){
String subTableStr = head.getSubTableStr();
if(StringUtils.isNotEmpty(subTableStr)){
String [] subTables = subTableStr.split(",");
List<Map<String,Object>> subTableData = new ArrayList<Map<String,Object>>();
for(String subTable:subTables){
subTableData = cgFormFieldService.getSubTableData(tableName,subTable,id);
tableData.put(subTable, subTableData);
}
}
}
}
//装载单表/(主表和附表)表单数据
data.put("data", tableData);
data.put("id", id);
data.put("head", head);
//页面样式js引用
data.put(CgAutoListConstant.CONFIG_IFRAME, getHtmlHead(request));
//装载附件信息数据
pushFiles(data,id);
template.process(data, writer);
String content = stringWriter.toString();
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(content);
long end = System.currentTimeMillis();
logger.debug("自定义表单生成耗时:"+(end-start)+" ms");
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
}
private String getHtmlHead(HttpServletRequest request){
HttpSession session = ContextHolderUtils.getSession();
String lang = (String)session.getAttribute("lang");
StringBuilder sb= new StringBuilder("");
sb.append("<base href=\""+request.getContextPath()+"/\"/>");
SysThemesEnum sysThemesEnum = SysThemesUtil.getSysTheme(request);
sb.append("<script type=\"text/javascript\" src=\"plug-in/jquery/jquery-1.8.3.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/dataformat.js\"></script>");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"plug-in/accordion/css/accordion.css\">");
sb.append(SysThemesUtil.getEasyUiTheme(sysThemesEnum));
sb.append("<link rel=\"stylesheet\" href=\"plug-in/easyui/themes/icon.css\" type=\"text/css\"></link>");
sb.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"plug-in/accordion/css/icons.css\">");
sb.append("<script type=\"text/javascript\" src=\"plug-in/easyui/jquery.easyui.min.1.3.2.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/easyui/locale/zh-cn.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/syUtil.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/My97DatePicker/WdatePicker.js\"></script>");
// sb.append("<link rel=\"stylesheet\" href=\"plug-in/tools/css/common.css\" type=\"text/css\"></link>");
//common.css
sb.append(SysThemesUtil.getCommonTheme(sysThemesEnum));
// sb.append("<script type=\"text/javascript\" src=\"plug-in/lhgDialog/lhgdialog.min.js\"></script>");
sb.append(SysThemesUtil.getLhgdialogTheme(sysThemesEnum));
sb.append(StringUtil.replace("<script type=\"text/javascript\" src=\"plug-in/tools/curdtools_{0}.js\"></script>", "{0}", lang));
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/easyuiextend.js\"></script>");
sb.append(SysThemesUtil.getEasyUiMainTheme(sysThemesEnum));
sb.append("<link rel=\"stylesheet\" href=\"plug-in/uploadify/css/uploadify.css\" type=\"text/css\"></link>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/uploadify/jquery.uploadify-3.1.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/tools/Map.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/Validform/js/Validform_v5.3.1_min_zh-cn.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/Validform/js/Validform_Datatype_zh-cn.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/Validform/js/datatype_zh-cn.js\"></script>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/Validform/plugin/passwordStrength/passwordStrength-min.js\"></script>");
//style.css
sb.append(SysThemesUtil.getValidformStyleTheme(sysThemesEnum));
//tablefrom.css
sb.append(SysThemesUtil.getValidformTablefrom(sysThemesEnum));
return sb.toString();
}
/**
*
* @param data
* @param id
*/
private void pushFiles(Map<String, Object> data, String id) {
List<CgUploadEntity> uploadBeans = cgFormFieldService.findByProperty(CgUploadEntity.class, "cgformId", id);
List<Map<String,Object>> files = new ArrayList<Map<String,Object>>(0);
for(CgUploadEntity b:uploadBeans){
String title = b.getAttachmenttitle();//附件名
String fileKey = b.getId();//附件主键
String path = b.getRealpath();//附件路径
String field = b.getCgformField();//表单中作为附件控件的字段
Map<String, Object> file = new HashMap<String, Object>();
file.put("title", title);
file.put("fileKey", fileKey);
file.put("path", path);
file.put("field", field==null?"":field);
files.add(file);
}
data.put("filesList", files);
}
}

@ -15,8 +15,10 @@ import org.jeecgframework.web.cgform.common.OfficeHtmlUtil;
import org.jeecgframework.web.cgform.entity.cgformftl.CgformFtlEntity;
import org.jeecgframework.web.cgform.service.cgformftl.CgformFtlServiceI;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.jeecgframework.web.cgform.util.TemplateUtil;
import org.jeecgframework.web.system.service.SystemService;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
@ -496,9 +498,9 @@ public class CgformFtlController extends BaseController {
attributes.put("id", cgformFtl.getId());
if (StringUtil.isNotEmpty(message))
j.setMsg("Word转Ftl失败," + message);
j.setMsg("Word 模板上传失败," + message);
else
j.setMsg("Word转Ftl成功");
j.setMsg("Word 模板上传成功");
j.setAttributes(attributes);
return j;
@ -586,20 +588,47 @@ public class CgformFtlController extends BaseController {
}
// for放弃jacob和poi上传word改用ckeditor
//----------longjb 20150602 ---for: html解析预览
@RequestMapping(params = "parseUeditor")
@RequestMapping(params = "parseUeditorOld")
@ResponseBody
public AjaxJson parseUeditor(String parseForm,String action,HttpServletRequest request) {
public AjaxJson parseUeditorOld(String parseForm,String action,HttpServletRequest request) {
AjaxJson j = new AjaxJson();
try {
System.out.println(parseForm);
// System.out.println(contentData);
JSONObject json = new JSONObject().fromObject(parseForm);
System.out.println(json.getString("parse"));
System.out.println(json.getString("data"));
// 判断有没有激活过的模板
message = FormUtil.GetHtml(json.getString("parse"),json.getString("data"), action);
j.setMsg(message);
j.setSuccess(true);
} catch (Exception e) {
logger.info(e.getMessage());
e.printStackTrace();
message = "解析异常"+e.getMessage();
j.setSuccess(false);
j.setMsg(message);
}
return j;
}
@RequestMapping(params = "parseUeditor")
@ResponseBody
public AjaxJson parseUeditor(String parseForm,String action,HttpServletRequest request) {
AjaxJson j = new AjaxJson();
try {
// System.out.println(parseForm);
// System.out.println(contentData);
// JSONObject json = new JSONObject().fromObject(parseForm);
// System.out.println(json.getString("parse"));
// System.out.println(json.getString("data"));
// // 判断有没有激活过的模板
// message = FormUtil.GetHtml(json.getString("parse"),json.getString("data"), action);
if(StringUtils.isNotBlank(parseForm)){
TemplateUtil tool = new TemplateUtil();
Map<String,Object> map = tool.processor(parseForm);
j.setMsg(map.get("parseHtml").toString().replaceAll("\"", "&quot;"));
} else {
j.setMsg("");
}
j.setSuccess(true);
} catch (Exception e) {
logger.info(e.getMessage());
e.printStackTrace();
@ -609,4 +638,5 @@ public class CgformFtlController extends BaseController {
}
return j;
}
}

@ -7,11 +7,14 @@ import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecgframework.web.cgform.engine.TempletContext;
import org.jeecgframework.web.cgform.entity.config.CgFormFieldEntity;
import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity;
import org.jeecgframework.web.cgform.exception.BusinessException;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.jeecgframework.web.cgform.service.impl.config.util.FieldNumComparator;
import org.jeecgframework.web.system.pojo.base.TSType;
import org.jeecgframework.web.system.pojo.base.TSTypegroup;
import org.jeecgframework.web.system.service.SystemService;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
@ -19,6 +22,7 @@ import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.util.MutiLangUtil;
import org.jeecgframework.core.util.MyBeanUtils;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.tag.core.easyui.TagUtil;
@ -52,6 +56,8 @@ public class CgFormHeadController extends BaseController {
private CgFormFieldServiceI cgFormFieldService;
@Autowired
private SystemService systemService;
@Autowired
private TempletContext templetContext;
private String message;
public String getMessage() {
@ -68,7 +74,7 @@ public class CgFormHeadController extends BaseController {
* @return
*/
@RequestMapping(params = "cgFormHeadList")
public ModelAndView cgFormHead(HttpServletRequest request) {
public ModelAndView cgFormHeadList(HttpServletRequest request) {
return new ModelAndView("jeecg/cgform/config/cgFormHeadList");
}
/**
@ -84,7 +90,6 @@ public class CgFormHeadController extends BaseController {
public ModelAndView goCgFormSynChoice(HttpServletRequest request) {
return new ModelAndView("jeecg/cgform/config/cgformSynChoice");
}
@RequestMapping(params = "popmenulink")
public ModelAndView popmenulink(ModelMap modelMap,
@RequestParam String url,
@ -108,6 +113,12 @@ public class CgFormHeadController extends BaseController {
DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(CgFormHeadEntity.class,
dataGrid);
String jformCategory = request.getParameter("jformCategory");
if(StringUtil.isNotEmpty(jformCategory)){
cq.eq("jformCategory", jformCategory);
cq.add();
}
// 查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq,
cgFormHead);
@ -226,6 +237,7 @@ public class CgFormHeadController extends BaseController {
@ResponseBody
public AjaxJson save(CgFormHeadEntity cgFormHead,
HttpServletRequest request) {
templetContext.clearCache();
AjaxJson j = new AjaxJson();
CgFormHeadEntity oldTable =cgFormFieldService.getEntity(CgFormHeadEntity.class, cgFormHead.getId());
cgFormFieldService.removeSubTableStr4Main(oldTable);
@ -338,6 +350,8 @@ public class CgFormHeadController extends BaseController {
//cgFormHead.setTableName(cgFormHead.getTableName().replace(CgAutoListConstant.jform_, ""));
req.setAttribute("cgFormHeadPage", cgFormHead);
}
List<TSType> typeList = TSTypegroup.allTypes.get(MutiLangUtil.getMutiLangInstance().getLang("bdfl"));
req.setAttribute("typeList", typeList);
return new ModelAndView("jeecg/cgform/config/cgFormHead");
}
/**
@ -386,11 +400,13 @@ public class CgFormHeadController extends BaseController {
columnList.add(initCgFormFieldEntityId());
columnList.add(initCgFormFieldEntityString("create_name","创建人名称"));
columnList.add(initCgFormFieldEntityString("create_by","创建人登录名称"));
columnList.add(initCgFormFieldEntityTime("create_date","创建日期"));
columnList.add(initCgFormFieldEntityString("create_by", "创建人登录名称"));
columnList.add(initCgFormFieldEntityTime("create_date", "创建日期"));
columnList.add(initCgFormFieldEntityString("update_name","更新人名称"));
columnList.add(initCgFormFieldEntityString("update_by","更新人登录名称"));
columnList.add(initCgFormFieldEntityTime("update_date","更新日期"));
columnList.add(initCgFormFieldEntityString("update_by", "更新人登录名称"));
columnList.add(initCgFormFieldEntityTime("update_date", "更新日期"));
columnList.add(initCgFormFieldEntityString("sys_org_code","所属部门"));
columnList.add(initCgFormFieldEntityString("sys_company_code", "所属公司"));
return columnList;
}
/**

@ -0,0 +1,311 @@
package org.jeecgframework.web.cgform.controller.config;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.exception.BusinessException;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.util.ExceptionUtil;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
import org.jeecgframework.tag.core.easyui.TagUtil;
import org.jeecgframework.web.cgform.entity.config.JformGraphreportHeadEntity;
import org.jeecgframework.web.cgform.entity.config.JformGraphreportHeadPage;
import org.jeecgframework.web.cgform.entity.config.JformGraphreportItemEntity;
import org.jeecgframework.web.cgform.service.config.JformGraphreportHeadServiceI;
import org.jeecgframework.web.demo.entity.test.CourseEntity;
import org.jeecgframework.web.system.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Title: Controller
* @Description:
* @author onlineGenerator
* @date 2015-06-10 17:19:06
* @version V1.0
*
*/
@Scope("prototype")
@Controller
@RequestMapping("/jformGraphreportHeadController")
public class JformGraphreportHeadController extends BaseController {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(JformGraphreportHeadController.class);
@Autowired
private JformGraphreportHeadServiceI jformGraphreportHeadService;
@Autowired
private SystemService systemService;
/**
*
*
* @return
*/
@RequestMapping(params = "jformGraphreportHead")
public ModelAndView jformGraphreportHead(HttpServletRequest request) {
return new ModelAndView("jeecg/cgform/graphreport/jformGraphreportHeadList");
}
/**
* easyui AJAX
*
* @param request
* @param response
* @param dataGrid
* @param
*/
@RequestMapping(params = "datagrid")
public void datagrid(JformGraphreportHeadEntity jformGraphreportHead,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(JformGraphreportHeadEntity.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, jformGraphreportHead);
try{
//自定义追加查询条件
}catch (Exception e) {
throw new BusinessException(e.getMessage());
}
cq.add();
this.jformGraphreportHeadService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
*
*
* @return
*/
@RequestMapping(params = "doDel")
@ResponseBody
public AjaxJson doDel(JformGraphreportHeadEntity jformGraphreportHead, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
jformGraphreportHead = systemService.getEntity(JformGraphreportHeadEntity.class, jformGraphreportHead.getId());
String message = "图表配置删除成功";
try{
jformGraphreportHeadService.delMain(jformGraphreportHead);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "图表配置删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "doBatchDel")
@ResponseBody
public AjaxJson doBatchDel(String ids,HttpServletRequest request){
AjaxJson j = new AjaxJson();
String message = "图表配置删除成功";
try{
for(String id:ids.split(",")){
JformGraphreportHeadEntity jformGraphreportHead = systemService.getEntity(JformGraphreportHeadEntity.class,
id
);
jformGraphreportHeadService.delMain(jformGraphreportHead);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}
}catch(Exception e){
e.printStackTrace();
message = "图表配置删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @param
* @return
*/
@RequestMapping(params = "doAdd")
@ResponseBody
public AjaxJson doAdd(JformGraphreportHeadEntity jformGraphreportHead,JformGraphreportHeadPage jformGraphreportHeadPage, HttpServletRequest request) {
List<JformGraphreportItemEntity> jformGraphreportItemList = jformGraphreportHeadPage.getJformGraphreportItemList();
AjaxJson j = new AjaxJson();
String message = "添加成功";
try{
jformGraphreportHeadService.addMain(jformGraphreportHead, jformGraphreportItemList);
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "图表配置添加失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @param
* @return
*/
@RequestMapping(params = "doUpdate")
@ResponseBody
public AjaxJson doUpdate(JformGraphreportHeadEntity jformGraphreportHead,JformGraphreportHeadPage jformGraphreportHeadPage, HttpServletRequest request) {
List<JformGraphreportItemEntity> jformGraphreportItemList = jformGraphreportHeadPage.getJformGraphreportItemList();
AjaxJson j = new AjaxJson();
String message = "更新成功";
try{
jformGraphreportHeadService.updateMain(jformGraphreportHead, jformGraphreportItemList);
systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "更新图表配置失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "goAdd")
public ModelAndView goAdd(JformGraphreportHeadEntity jformGraphreportHead, HttpServletRequest req) {
if (StringUtil.isNotEmpty(jformGraphreportHead.getId())) {
jformGraphreportHead = jformGraphreportHeadService.getEntity(JformGraphreportHeadEntity.class, jformGraphreportHead.getId());
req.setAttribute("jformGraphreportHeadPage", jformGraphreportHead);
}
return new ModelAndView("jeecg/cgform/graphreport/jformGraphreportHead-add");
}
/**
*
*
* @return
*/
@RequestMapping(params = "goUpdate")
public ModelAndView goUpdate(JformGraphreportHeadEntity jformGraphreportHead, HttpServletRequest req) {
if (StringUtil.isNotEmpty(jformGraphreportHead.getId())) {
jformGraphreportHead = jformGraphreportHeadService.getEntity(JformGraphreportHeadEntity.class, jformGraphreportHead.getId());
req.setAttribute("jformGraphreportHeadPage", jformGraphreportHead);
}
return new ModelAndView("jeecg/cgform/graphreport/jformGraphreportHead-update");
}
/**
* []
*
* @return
*/
@RequestMapping(params = "jformGraphreportItemList")
public ModelAndView jformGraphreportItemList(JformGraphreportHeadEntity jformGraphreportHead, HttpServletRequest req) {
//===================================================================================
//获取参数
Object id0 = jformGraphreportHead.getId();
//===================================================================================
//查询-子表
String hql0 = "from JformGraphreportItemEntity where 1 = 1 AND cGREPORT_HEAD_ID = ? ";
try{
List<JformGraphreportItemEntity> jformGraphreportItemEntityList = systemService.findHql(hql0,id0);
req.setAttribute("jformGraphreportItemList", jformGraphreportItemEntityList);
}catch(Exception e){
logger.info(e.getMessage());
}
return new ModelAndView("jeecg/cgform/graphreport/jformGraphreportItemList");
}
@RequestMapping(params = "exportXls")
public String exportXls(JformGraphreportHeadEntity jformGraphreportHead,HttpServletRequest request,HttpServletResponse response
, DataGrid dataGrid,ModelMap map) {
CriteriaQuery cq = new CriteriaQuery(JformGraphreportHeadEntity.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, jformGraphreportHead);
List<JformGraphreportHeadEntity> dataList= this.jformGraphreportHeadService.getListByCriteriaQuery(cq,false);
List<JformGraphreportHeadPage> pageList=new ArrayList<JformGraphreportHeadPage>();
if(dataList!=null&&dataList.size()>0){
String hql0 = "from JformGraphreportItemEntity where 1 = 1 AND cGREPORT_HEAD_ID = ? ";
for(JformGraphreportHeadEntity headEntity:dataList){
List<JformGraphreportItemEntity> itemEntities = systemService.findHql(hql0,headEntity.getId());
pageList.add(new JformGraphreportHeadPage(itemEntities,headEntity));
}
}
map.put(NormalExcelConstants.FILE_NAME,"图表配置");
map.put(NormalExcelConstants.CLASS,JformGraphreportHeadPage.class);
map.put(NormalExcelConstants.PARAMS,new ExportParams("图表配置","导出信息"));
map.put(NormalExcelConstants.DATA_LIST, pageList);
return NormalExcelConstants.JEECG_EXCEL_VIEW;
}
@RequestMapping(params = "goImportExcel")
public String goImportExcel(){
return "jeecg/cgform/graphreport/jformGraphreportUpload";
}
@RequestMapping(params = "importExcel", method = RequestMethod.POST)
@ResponseBody
public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<JformGraphreportHeadPage> listCourses = ExcelImportUtil.importExcel(file.getInputStream(), JformGraphreportHeadPage.class, params);
for(JformGraphreportHeadPage page:listCourses){
JformGraphreportHeadEntity headEntity=page.getJformGraphreportHeadEntity();
List<JformGraphreportItemEntity> itemEntities=page.getJformGraphreportItemList();
if(headEntity!=null&&itemEntities!=null){
this.jformGraphreportHeadService.addMain(headEntity,itemEntities);
}
}
j.setMsg("文件导入成功!");
} catch (Exception e) {
j.setMsg("文件导入失败!");
logger.error(ExceptionUtil.getExceptionMessage(e));
}finally{
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return j;
}
}

@ -0,0 +1,239 @@
package org.jeecgframework.web.cgform.controller.enhance;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.exception.BusinessException;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.util.MyBeanUtils;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.tag.core.easyui.TagUtil;
import org.jeecgframework.web.cgform.entity.button.CgformButtonEntity;
import org.jeecgframework.web.cgform.entity.enhance.CgformEnhanceJavaEntity;
import org.jeecgframework.web.cgform.service.button.CgformButtonServiceI;
import org.jeecgframework.web.cgform.service.enhance.CgformEnhanceJavaServiceI;
import org.jeecgframework.web.system.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
/**
* @Title: Controller
* @Description: cgform_enhance_java
* @author onlineGenerator
* @date 2015-06-29 13:48:27
* @version V1.0
*
*/
@Scope("prototype")
@Controller
@RequestMapping("/cgformEnhanceJavaController")
public class CgformEnhanceJavaController extends BaseController {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(CgformEnhanceJavaController.class);
@Autowired
private CgformEnhanceJavaServiceI cgformEnhanceJavaService;
@Autowired
private CgformButtonServiceI cgformButtonService;
@Autowired
private SystemService systemService;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
/**
*
*
* @return
*/
@RequestMapping(params = "cgformEnhanceJava")
public ModelAndView cgformEnhanceJava(HttpServletRequest request) {
String formId = request.getParameter("formId");
String tableName = request.getParameter("tableName");
request.setAttribute("formId", formId);
request.setAttribute("tableName", tableName);
return new ModelAndView("jeecg/cgform/enhance/cgformEnhanceJavaList");
}
/**
* easyui AJAX
*
* @param request
* @param response
* @param dataGrid
* @param user
*/
@RequestMapping(params = "datagrid")
public void datagrid(CgformEnhanceJavaEntity cgformEnhanceJava,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(CgformEnhanceJavaEntity.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, cgformEnhanceJava, request.getParameterMap());
try{
//自定义追加查询条件
}catch (Exception e) {
throw new BusinessException(e.getMessage());
}
cq.add();
this.cgformEnhanceJavaService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
* cgform_enhance_java
*
* @return
*/
@RequestMapping(params = "doDel")
@ResponseBody
public AjaxJson doDel(CgformEnhanceJavaEntity cgformEnhanceJava, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
cgformEnhanceJava = systemService.getEntity(CgformEnhanceJavaEntity.class, cgformEnhanceJava.getId());
message = "删除成功";
try{
cgformEnhanceJavaService.delete(cgformEnhanceJava);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
* cgform_enhance_java
*
* @return
*/
@RequestMapping(params = "doBatchDel")
@ResponseBody
public AjaxJson doBatchDel(String ids,HttpServletRequest request){
AjaxJson j = new AjaxJson();
message = "删除成功";
try{
for(String id:ids.split(",")){
CgformEnhanceJavaEntity cgformEnhanceJava = systemService.getEntity(CgformEnhanceJavaEntity.class,
id
);
cgformEnhanceJavaService.delete(cgformEnhanceJava);
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}
}catch(Exception e){
e.printStackTrace();
message = "删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "doCgformEnhanceJava")
@ResponseBody
public AjaxJson doCgformEnhanceJava(CgformEnhanceJavaEntity cgformEnhanceJavaEntity, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
CgformEnhanceJavaEntity doCgformEnhanceJava = cgformEnhanceJavaService.getCgformEnhanceJavaEntityByCodeFormId(cgformEnhanceJavaEntity.getButtonCode(), cgformEnhanceJavaEntity.getFormId());
if(doCgformEnhanceJava!=null){
j.setObj(doCgformEnhanceJava);
j.setSuccess(true);
}else{
j.setSuccess(false);
}
return j;
}
/**
* JAVA
*
* @param ids
* @return
*/
@RequestMapping(params = "save")
@ResponseBody
public AjaxJson save(CgformEnhanceJavaEntity cgformEnhanceJavaEntity, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
List<CgformEnhanceJavaEntity> list = cgformEnhanceJavaService.checkCgformEnhanceJavaEntity(cgformEnhanceJavaEntity);
if(list!=null&&list.size()>0){
message = "按钮编码已经存在";
j.setMsg(message);
return j;
}
if(!cgformEnhanceJavaService.checkClassOrSpringBeanIsExist(cgformEnhanceJavaEntity)){
message = "类实例化失败,请检查!";
j.setMsg(message);
return j;
}
if (StringUtil.isNotEmpty(cgformEnhanceJavaEntity.getId())) {
message = "更新成功";
CgformEnhanceJavaEntity t = cgformEnhanceJavaService.get(CgformEnhanceJavaEntity.class, cgformEnhanceJavaEntity.getId());
try {
MyBeanUtils.copyBeanNotNull2Bean(cgformEnhanceJavaEntity, t);
cgformEnhanceJavaService.saveOrUpdate(t);
systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
} catch (Exception e) {
e.printStackTrace();
}
} else {
message = "添加成功";
cgformEnhanceJavaService.save(cgformEnhanceJavaEntity);
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}
j.setMsg(message);
return j;
}
/**
* java
*
* @return
*/
@RequestMapping(params = "addorupdate")
public ModelAndView addorupdate(CgformEnhanceJavaEntity cgformEnhanceJavaEntity, HttpServletRequest req) {
//根据buttonCode和formId初始化数据
cgformEnhanceJavaEntity.setButtonCode("add");
if (StringUtil.isNotEmpty(cgformEnhanceJavaEntity.getButtonCode())&&StringUtil.isNotEmpty(cgformEnhanceJavaEntity.getFormId())) {
CgformEnhanceJavaEntity cgformEnhanceJavaEntityVo = cgformEnhanceJavaService.getCgformEnhanceJavaEntityByCodeFormId(cgformEnhanceJavaEntity.getButtonCode(), cgformEnhanceJavaEntity.getFormId());
if(cgformEnhanceJavaEntityVo!=null){
cgformEnhanceJavaEntity = cgformEnhanceJavaEntityVo;
}
}
List<CgformButtonEntity> list = cgformButtonService.getCgformButtonListByFormId(cgformEnhanceJavaEntity.getFormId());
if(list==null){
list = new ArrayList<CgformButtonEntity>();
}
req.setAttribute("buttonList", list);
req.setAttribute("cgformEnhanceJavaPage", cgformEnhanceJavaEntity);
return new ModelAndView("jeecg/cgform/enhance/cgformEnhanceJava");
}
}

@ -12,6 +12,14 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.entity.vo.MapExcelConstants;
import org.jeecgframework.poi.handler.impl.ExcelDataHandlerDefaultImpl;
import org.jeecgframework.poi.util.PoiPublicUtil;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.entity.config.CgFormFieldEntity;
import org.jeecgframework.web.cgform.service.autolist.CgTableServiceI;
@ -38,6 +46,7 @@ import org.jeecgframework.core.util.oConvertUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@ -46,9 +55,9 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
/**
* @author huiyong
* @ClassName: excelTempletController
* @Description: excel
* @author huiyong
*/
@Scope("prototype")
@Controller
@ -78,126 +87,169 @@ public class ExcelTempletController extends BaseController {
/**
* excel
*
*
* @param request
* @param response
*/
@SuppressWarnings("all")
@RequestMapping(params = "exportXls")
public void exportXls(HttpServletRequest request,
HttpServletResponse response,String field, DataGrid dataGrid) {
public String exportXls(HttpServletRequest request, ModelMap modelMap,
HttpServletResponse response, String field, DataGrid dataGrid) {
String codedFileName = "文件";
String sheetName="导出信息";
String sheetName = "导出信息";
List<CgFormFieldEntity> lists = null;
if (StringUtil.isNotEmpty(request.getParameter("tableName"))) {
String configId = request.getParameter("tableName");
String jversion = cgFormFieldService.getCgFormVersionByTableName(configId);
Map<String, Object> configs = configService.queryConfigs(configId,jversion);
Map params = new HashMap<String,Object>();
Map<String, Object> configs = configService.queryConfigs(configId, jversion);
Map params = new HashMap<String, Object>();
//step.2 获取查询条件以及值
List<CgFormFieldEntity> beans = (List<CgFormFieldEntity>) configs.get(CgAutoListConstant.FILEDS);
for(CgFormFieldEntity b:beans){
for (CgFormFieldEntity b : beans) {
// if(CgAutoListConstant.BOOL_TRUE.equals(b.getIsQuery())){
QueryParamUtil.loadQueryParams(request,b,params);
QueryParamUtil.loadQueryParams(request, b, params);
// }
}
List<Map<String, Object>> result=cgTableService.querySingle(configId, field.toString(), params,null,null, 1,99999 );
List<Map<String, Object>> result = cgTableService.querySingle(configId, field.toString(), params, null, null, 1, 99999);
//表单列集合
lists = (List<CgFormFieldEntity>) configs.get(CgAutoListConstant.FILEDS);
for (int i = lists.size() - 1; i >= 0; i--) {
if(!field.contains(lists.get(i).getFieldName())){
if (!field.contains(lists.get(i).getFieldName())) {
lists.remove(i);
}
}
//处理页面中若存在checkbox只能显示code值而不能显示text值问题
Map<String, Object> dicMap = new HashMap<String, Object>();
for(CgFormFieldEntity b:beans){
loadDic(dicMap, b);
List<DictEntity> dicList = (List<DictEntity>)dicMap.get(CgAutoListConstant.FIELD_DICTLIST);
if(dicList.size() > 0){
for(Map<String, Object> resultMap:result){
StringBuffer sb = new StringBuffer();
String value = (String)resultMap.get(b.getFieldName());
if(oConvertUtils.isEmpty(value)){continue;}
String[] arrayVal = value.split(",");
if(arrayVal.length > 1){
for(String val:arrayVal){
for(DictEntity dictEntity:dicList){
if(val.equals(dictEntity.getTypecode())){
sb.append(dictEntity.getTypename());
sb.append(",");
}
}
}
resultMap.put(b.getFieldName(), sb.toString().substring(0, sb.toString().length()-1));
}
}
}
}
dealDic(result,beans);
// 对字段列按顺序排序
Collections.sort(lists, new FieldNumComparator());
handlePageDic(beans, result);
dealDic(result, beans);
//表的中文名称
sheetName = (String)configs.get(CgAutoListConstant.CONFIG_NAME);
sheetName = (String) configs.get(CgAutoListConstant.CONFIG_NAME);
//表的英文名称
String tableName = (String)configs.get(CgAutoListConstant.TABLENAME);
String tableName = (String) configs.get(CgAutoListConstant.TABLENAME);
//导出文件名称 form表单中文名-v版本号.xsl
codedFileName = sheetName+"_"+tableName+"-v"+(String)configs.get(CgAutoListConstant.CONFIG_VERSION);
// 生成提示信息,
response.setContentType("application/vnd.ms-excel");
OutputStream fOut = null;
try {
// 根据浏览器进行转码,使其支持中文文件名
String browse = BrowserUtils.checkBrowse(request);
if ("MSIE".equalsIgnoreCase(browse.substring(0, 4))) {
response.setHeader("content-disposition",
"attachment;filename="
+ java.net.URLEncoder.encode(codedFileName,
"UTF-8") + ".xls");
} else {
String newtitle = new String(codedFileName.getBytes("UTF-8"),
"ISO8859-1");
response.setHeader("content-disposition",
"attachment;filename=" + newtitle + ".xls");
}
// 产生工作簿对象
HSSFWorkbook workbook = null;
workbook = ExcelTempletService.exportExcel(sheetName, lists,result);
fOut = response.getOutputStream();
workbook.write(fOut);
} catch (UnsupportedEncodingException e1) {
} catch (Exception e) {
codedFileName = sheetName + "_" + tableName + "-v" + (String) configs.get(CgAutoListConstant.CONFIG_VERSION);
} finally {
try {
fOut.flush();
fOut.close();
} catch (IOException e) {
//--authorJueYue---------date:20150615--------for: 导出替换成EasyPoi
List<ExcelExportEntity> entityList = convertToExportEntity(lists);
//判断是不是主表
if (CgAutoListConstant.JFORM_TYPE_MAIN_TALBE == Integer.parseInt(configs.get(CgAutoListConstant.TABLE_TYPE).toString())) {
String subTableStr = configs.get(CgAutoListConstant.SUB_TABLES).toString();
if (StringUtils.isNotEmpty(subTableStr)) {
String[] subTables = subTableStr.split(",");
for (String subTable : subTables) {
addAllSubTableDate(subTable, configs, result, entityList);
}
}
}
modelMap.put(MapExcelConstants.ENTITY_LIST, entityList);
modelMap.put(MapExcelConstants.MAP_LIST, result);
modelMap.put(MapExcelConstants.FILE_NAME, codedFileName);
modelMap.put(MapExcelConstants.PARAMS, new ExportParams(null, sheetName));
return MapExcelConstants.JEECG_MAP_EXCEL_VIEW;
//--authorJueYue---------date:20150615--------for: 导出替换成EasyPoi
} else {
throw new BusinessException("参数错误");
}
}
/**
* Excel
*
* @param lists
* @return
*/
private List<ExcelExportEntity> convertToExportEntity(List<CgFormFieldEntity> lists) {
// 对字段列按顺序排序
Collections.sort(lists, new FieldNumComparator());
List<ExcelExportEntity> entityList = new ArrayList<ExcelExportEntity>();
for (int i = 0; i < lists.size(); i++) {
if (lists.get(i).getIsShow().equals("Y")) {
ExcelExportEntity entity = new ExcelExportEntity(lists.get(i).getContent(), lists.get(i).getFieldName());
int columnWidth = lists.get(i).getLength() == 0 ? 12 : lists.get(i).getLength() > 30 ? 30 : lists.get(i).getLength();
if (lists.get(i).getShowType().equals("date")) {
entity.setFormat("yyyy-MM-dd");
} else if (lists.get(i).getShowType().equals("datetime")) {
entity.setFormat("yyyy-MM-dd HH:mm:ss");
}
entity.setWidth(columnWidth);
entityList.add(entity);
}
}
return entityList;
}
/**
*
*
* @param subTable
* @param configs
* @param result
* @param entityList
*/
private void addAllSubTableDate(String subTable, Map<String, Object> configs, List<Map<String, Object>> result, List<ExcelExportEntity> entityList) {
String jversion = cgFormFieldService.getCgFormVersionByTableName(subTable);
Map<String, Object> subConfigs = configService.queryConfigs(subTable, jversion);
ExcelExportEntity tableEntity = new ExcelExportEntity(subConfigs.get(CgAutoListConstant.CONFIG_NAME).toString(), subTable);
List<CgFormFieldEntity> beans = (List<CgFormFieldEntity>) subConfigs.get(CgAutoListConstant.FILEDS);
tableEntity.setList(convertToExportEntity(beans));
entityList.add(tableEntity);
// 对字段列按顺序排序
for (int i = 0; i < result.size(); i++) {
List<Map<String, Object>> subResult = cgFormFieldService.getSubTableData(configs.get(CgAutoListConstant.CONFIG_ID).toString(), subTable, result.get(i).get("id"));
handlePageDic(beans, subResult);
dealDic(subResult, beans);
result.get(i).put(subTable,subResult);
}
}
/**
* checkboxcodetext
*
* @param beans
* @param result
*/
private void handlePageDic(List<CgFormFieldEntity> beans, List<Map<String, Object>> result) {
Map<String, Object> dicMap = new HashMap<String, Object>();
for (CgFormFieldEntity b : beans) {
loadDic(dicMap, b);
List<DictEntity> dicList = (List<DictEntity>) dicMap.get(CgAutoListConstant.FIELD_DICTLIST);
if (dicList.size() > 0) {
for (Map<String, Object> resultMap : result) {
StringBuffer sb = new StringBuffer();
String value = (String) resultMap.get(b.getFieldName());
if (oConvertUtils.isEmpty(value)) {
continue;
}
String[] arrayVal = value.split(",");
if (arrayVal.length > 1) {
for (String val : arrayVal) {
for (DictEntity dictEntity : dicList) {
if (val.equals(dictEntity.getTypecode())) {
sb.append(dictEntity.getTypename());
sb.append(",");
}
}
}
resultMap.put(b.getFieldName(), sb.toString().substring(0, sb.toString().length() - 1));
}
}
}
}
}
@RequestMapping(params = "goImplXls" , method = RequestMethod.GET)
public ModelAndView goImplXls(HttpServletRequest request) {
@RequestMapping(params = "goImplXls", method = RequestMethod.GET)
public ModelAndView goImplXls(HttpServletRequest request) {
request.setAttribute("tableName", request.getParameter("tableName"));
return new ModelAndView("jeecg/cgform/excel/upload");
}
return new ModelAndView("jeecg/cgform/excel/upload");
}
/**
*
*
* @param request
* @param response
* @return
@ -210,11 +262,11 @@ public class ExcelTempletController extends BaseController {
AjaxJson j = new AjaxJson();
String configId = request.getParameter("tableName");
String jversion = cgFormFieldService.getCgFormVersionByTableName(configId);
Map<String, Object> configs = configService.queryConfigs(configId,jversion);
Map<String, Object> configs = configService.queryConfigs(configId, jversion);
//数据库中版本号
String version = (String)configs.get(CgAutoListConstant.CONFIG_VERSION);
String version = (String) configs.get(CgAutoListConstant.CONFIG_VERSION);
List<CgFormFieldEntity> lists = (List<CgFormFieldEntity>) configs.get(CgAutoListConstant.FILEDS);
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@ -223,24 +275,30 @@ public class ExcelTempletController extends BaseController {
String docVersion = getDocVersion(file.getOriginalFilename());
if (docVersion.equals(version)) {
List<Map<String, Object>> listDate;
//--authorluobaoli---------date:20150615--------for: 处理service层抛出的异常
try {
//读取excel模版数据
listDate = (List<Map<String, Object>>) ExcelTempletService.importExcelByIs(file.getInputStream(), lists);
if (listDate==null) {
//--authorJueYue---------date:20150622--------for: 修改为EasyPoi 的导入
ImportParams params = new ImportParams();
params.setDataHanlder(new CgFormExcelHandler(lists));
listDate = ExcelImportUtil.importExcel(file.getInputStream(), Map.class, params);
//--authorJueYue---------date:20150622--------for: 修改为EasyPoi 的导入
if (listDate == null) {
message = "识别模版数据错误";
logger.error(message);
}else{
} else {
for (Map<String, Object> map : listDate) {
map.put("id", UUIDGenerator.generate());
int num = dataBaseService.insertTable(configId, map);
dataBaseService.insertTable(configId, map);
}
message = "文件导入成功!";
}
} catch (IOException e) {
} catch (Exception e) {
message = "文件导入失败!";
logger.error(ExceptionUtil.getExceptionMessage(e));
}
}else{
//--authorluobaoli---------date:20150615--------for: 处理service层抛出的异常
} else {
message = "模版文件版本和表达不匹配,请重新下载模版";
logger.error(message);
}
@ -248,65 +306,70 @@ public class ExcelTempletController extends BaseController {
j.setMsg(message);
return j;
}
/**
*
* form-v.xsl
* form-v(1).xsl
*
* @param docName
* @return
*/
private static String getDocVersion(String docName){
if(docName.indexOf("(")>0){
return docName.substring(docName.indexOf("-v")+2, docName.indexOf("("));
}else {
return docName.substring(docName.indexOf("-v")+2, docName.indexOf("."));
private static String getDocVersion(String docName) {
//--authorJueYue---------date:20150621--------for: 删除名字空格
if (docName.indexOf("(") > 0) {
return docName.substring(docName.indexOf("-v") + 2, docName.indexOf("(")).trim();
} else {
return docName.substring(docName.indexOf("-v") + 2, docName.indexOf(".")).trim();
}
//--authorJueYue---------date:20150621--------for: 删除名字空格
}
private void loadDic(Map m, CgFormFieldEntity bean) {
String dicT = bean.getDictTable();//字典Table
String dicF = bean.getDictField();//字典Code
String dicText = bean.getDictText();//字典Text
if(StringUtil.isEmpty(dicT)&& StringUtil.isEmpty(dicF)){
if (StringUtil.isEmpty(dicT) && StringUtil.isEmpty(dicF)) {
//如果这两个字段都为空,则没有数据字典
m.put(CgAutoListConstant.FIELD_DICTLIST, new ArrayList(0));
return;
}
if(!bean.getShowType().equals("popup")){
List<DictEntity> dicDatas = queryDic(dicT, dicF,dicText);
if (!bean.getShowType().equals("popup")) {
List<DictEntity> dicDatas = queryDic(dicT, dicF, dicText);
m.put(CgAutoListConstant.FIELD_DICTLIST, dicDatas);
}else{
} else {
m.put(CgAutoListConstant.FIELD_DICTLIST, new ArrayList(0));
}
}
private List<DictEntity> queryDic(String dicTable, String dicCode,String dicText) {
private List<DictEntity> queryDic(String dicTable, String dicCode, String dicText) {
return this.systemService.queryDict(dicTable, dicCode, dicText);
}
/**
*
*
* @param result
* @param beans
* @param beans
*/
@SuppressWarnings("unchecked")
private void dealDic(List<Map<String, Object>> result,
List<CgFormFieldEntity> beans) {
for(CgFormFieldEntity bean:beans){
List<CgFormFieldEntity> beans) {
for (CgFormFieldEntity bean : beans) {
String dicTable = bean.getDictTable();//字典Table
String dicCode = bean.getDictField();//字典Code
String dicText= bean.getDictText();//字典text
if(StringUtil.isEmpty(dicTable)&& StringUtil.isEmpty(dicCode)){
String dicText = bean.getDictText();//字典text
if (StringUtil.isEmpty(dicTable) && StringUtil.isEmpty(dicCode)) {
//不需要处理字典
continue;
}else{
if(!bean.getShowType().equals("popup")){
List<DictEntity> dicDataList = queryDic(dicTable, dicCode,dicText);
for(Map r:result){
} else {
if (!bean.getShowType().equals("popup")) {
List<DictEntity> dicDataList = queryDic(dicTable, dicCode, dicText);
for (Map r : result) {
String value = String.valueOf(r.get(bean.getFieldName()));
for(DictEntity dictEntity:dicDataList){
if(value.equalsIgnoreCase(dictEntity.getTypecode())){
r.put(bean.getFieldName(),MutiLangUtil.getMutiLangInstance().getLang(dictEntity.getTypename()));
for (DictEntity dictEntity : dicDataList) {
if (value.equalsIgnoreCase(dictEntity.getTypecode())) {
r.put(bean.getFieldName(), MutiLangUtil.getMutiLangInstance().getLang(dictEntity.getTypename()));
}
}
}
@ -314,4 +377,41 @@ public class ExcelTempletController extends BaseController {
}
}
}
private class CgFormExcelHandler extends ExcelDataHandlerDefaultImpl {
Map<String, CgFormFieldEntity> fieldMap;
public CgFormExcelHandler(List<CgFormFieldEntity> lists) {
fieldMap = convertDate(lists);
}
private Map<String, CgFormFieldEntity> convertDate(List<CgFormFieldEntity> lists) {
Map<String, CgFormFieldEntity> maps = new HashMap<String, CgFormFieldEntity>();
for (CgFormFieldEntity cgFormFieldEntity : lists) {
maps.put(cgFormFieldEntity.getContent(), cgFormFieldEntity);
}
return maps;
}
@Override
public void setMapValue(Map<String, Object> map, String originKey, Object value) {
if (value instanceof Double) {
map.put(getRealKey(originKey), PoiPublicUtil.doubleToString((Double) value));
} else {
map.put(getRealKey(originKey), value.toString());
}
}
private String getRealKey(String originKey) {
if (fieldMap.containsKey(originKey)) {
return fieldMap.get(originKey).getFieldName();
}
return originKey;
}
}
}

@ -23,6 +23,7 @@ import org.jeecgframework.codegenerate.pojo.CreateFileProperty;
import org.jeecgframework.codegenerate.pojo.onetomany.CodeParamEntity;
import org.jeecgframework.codegenerate.pojo.onetomany.SubTableEntity;
import org.jeecgframework.codegenerate.util.CodeResourceUtil;
import org.jeecgframework.codegenerate.util.CodeStringUtils;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.util.StringUtil;
@ -35,10 +36,9 @@ import org.jeecgframework.web.cgform.entity.generate.GenerateEntity;
import org.jeecgframework.web.cgform.entity.generate.GenerateSubListEntity;
import org.jeecgframework.web.cgform.service.button.CgformButtonServiceI;
import org.jeecgframework.web.cgform.service.button.CgformButtonSqlServiceI;
import org.jeecgframework.web.cgform.service.cgformftl.CgformFtlServiceI;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.jeecgframework.web.cgform.service.enhance.CgformEnhanceJsServiceI;
import org.jeecgframework.web.system.service.SystemService;
import org.jeecgframework.web.cgform.service.impl.generate.TempletContextWord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@ -62,10 +62,8 @@ public class GenerateController extends BaseController {
/**
* Logger for this class
*/
private static final Logger logger = Logger
.getLogger(GenerateController.class);
@Autowired
private SystemService systemService;
private static final Logger logger = Logger.getLogger(GenerateController.class);
@Autowired
private CgFormFieldServiceI cgFormFieldService;
@Autowired
@ -75,7 +73,7 @@ public class GenerateController extends BaseController {
@Autowired
private CgformEnhanceJsServiceI cgformEnhanceJsService;
@Autowired
private CgformFtlServiceI cgformFtlService;
private TempletContextWord templetContextWord;
/**
*
* @param request
@ -158,15 +156,15 @@ public class GenerateController extends BaseController {
boolean tableexist = new JeecgReadTable().checkTableExist(tableName);
if(tableexist){
//step.3 判断是不是用用户自定义界面
String html;
CgformCodeGenerate generate = new CgformCodeGenerate(createFileProperty,generateEntity);
if(createFileProperty.getJspMode().equals("04") &&
(html = cgformFtlService.getUserFormFtl(cgFormHead.getId())) != null){
//generate.setCgformJspHtml(hanlderForGenerate(html,cgFormHead));
CgformCodeGenerate generate = new CgformCodeGenerate(createFileProperty,generateEntity);
if(createFileProperty.getJspMode().equals("04")){
String formhtml = templetContextWord.autoFormGenerateHtml(tableName, null, null);
generate.setCgformJspHtml(formhtml);
}
//step.4 调用代码生成器
generate.generateToFile();
j.setMsg("成功生成增删改查->功能:"+ftlDescription);
j.setMsg(ftlDescription+":功能生成成功,请刷新项目重启,菜单访问路径:"+CodeStringUtils.getInitialSmall(generateEntity.getEntityName())+"Controller.do?list");
}else{
j.setMsg("表["+tableName+"] 在数据库中,不存在");
}
@ -187,33 +185,8 @@ public class GenerateController extends BaseController {
e.printStackTrace();
}
}
/**
*
* @param html
* @param cgFormHead
* @return
*/
private String hanlderForGenerate(String html, CgFormHeadEntity cgFormHead) {
html = replaceAddJSP(html);
html = html.replace("cgFormBuildController.do?saveOrUpdate", "{entityName?uncap_first}Controller.do?doAdd");
html = html.replace("<input type=\"hidden\" name=\"tableName\" value=\"${tableName?if_exists?html}\" />", "");
html = html.replace("<input id='jform_hidden_field' name='jform_hidden_field' type='text' style='width: 150px' class='inputxt' >", "");
return html;
}
/**
* #{} ${}
* @param cgformJspHtml
* @return
*/
private String replaceAddJSP(String cgformJspHtml) {
String key,realKey;
while (cgformJspHtml.indexOf("#{") > 0) {
key = cgformJspHtml.substring(cgformJspHtml.indexOf("#{"),cgformJspHtml.indexOf("}",cgformJspHtml.indexOf("#{"))+1);
realKey = key.substring(2, key.length() -1);
cgformJspHtml = cgformJspHtml.replace(key, "<input id='"+JeecgReadTable.formatField(realKey)+"' name='"+JeecgReadTable.formatField(realKey)+"' type='text' value='${'$'}{${entityName?uncap_first}Page."+JeecgReadTable.formatField(realKey)+"}' style='width: 150px' class='inputxt' >");
}
return cgformJspHtml;
}
/**
@ -262,8 +235,9 @@ public class GenerateController extends BaseController {
}
codeParamEntityIn.setSubTabParam(subTabParamIn);
//step.5 一对多(父子表)数据模型,代码生成
CgformCodeGenerateOneToMany.oneToManyCreate(subTabParamIn, codeParamEntityIn,mainG,subsG);
j.setMsg("成功生成增删改查->功能:"+codeParamEntityIn.getFtlDescription());
CgformCodeGenerateOneToMany.oneToManyCreate(subTabParamIn, codeParamEntityIn,mainG,subsG);
//j.setMsg("成功生成增删改查->功能:"+codeParamEntityIn.getFtlDescription());
j.setMsg(codeParamEntityIn.getFtlDescription()+":功能生成成功,请刷新项目重启,菜单访问路径:"+CodeStringUtils.getInitialSmall(codeParamEntityIn.getEntityName())+"Controller.do?list");
}catch (Exception e) {
e.printStackTrace();
j.setMsg(e.getMessage());

@ -0,0 +1,649 @@
package org.jeecgframework.web.cgform.controller.template;
import jodd.io.StreamUtil;
import jodd.io.ZipUtil;
import junit.framework.Assert;
import org.apache.commons.io.*;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.exception.BusinessException;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.util.*;
import org.jeecgframework.core.util.FileUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.vo.TemplateExcelConstants;
import org.jeecgframework.tag.core.easyui.TagUtil;
import org.jeecgframework.web.cgform.entity.template.CgformTemplateEntity;
import org.jeecgframework.web.cgform.service.template.CgformTemplateServiceI;
import org.jeecgframework.web.system.manager.ClientManager;
import org.jeecgframework.web.system.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipOutputStream;
/**
* @Title: Controller
* @Description:
* @author onlineGenerator
* @date 2015-06-15 11:04:12
* @version V1.0
*
*/
@Scope("prototype")
@Controller
@RequestMapping("/cgformTemplateController")
public class CgformTemplateController extends BaseController {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(CgformTemplateController.class);
@Autowired
private CgformTemplateServiceI cgformTemplateService;
@Autowired
private SystemService systemService;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
/**
*
*
* @return
*/
@RequestMapping(params = "cgformTemplate")
public ModelAndView cgformTemplate(HttpServletRequest request) {
return new ModelAndView("jeecg/cgform/template/cgformTemplateList");
}
/**
* easyui AJAX
*
* @param request
* @param response
* @param dataGrid
* @param
*/
@RequestMapping(params = "datagrid")
public void datagrid(CgformTemplateEntity cgformTemplate,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(CgformTemplateEntity.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, cgformTemplate, request.getParameterMap());
try{
//自定义追加查询条件
}catch (Exception e) {
throw new BusinessException(e.getMessage());
}
cq.add();
this.cgformTemplateService.getDataGridReturn(cq, true);
List<CgformTemplateEntity> dataList=dataGrid.getResults();
if(dataList!=null&&dataList.size()>0){
for(CgformTemplateEntity entity:dataList){
entity.setTemplatePic("cgformTemplateController.do?showPic&code="+entity.getTemplateCode()+"&path="+entity.getTemplatePic());
}
}
TagUtil.datagrid(response, dataGrid);
}
/**
*
*
* @return
*/
@RequestMapping(params = "doDel")
@ResponseBody
public AjaxJson doDel(CgformTemplateEntity cgformTemplate, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
cgformTemplate = systemService.getEntity(CgformTemplateEntity.class, cgformTemplate.getId());
message = "自定义模板删除成功";
try{
cgformTemplateService.delete(cgformTemplate);
if(cgformTemplate.getTemplateCode()!=null){
delTemplate(request,cgformTemplate.getTemplateCode());
}
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "自定义模板删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
private void delTemplate(HttpServletRequest request,String code){
String dirPath=getUploadBasePath(request)+File.separator+code;
try {
org.apache.commons.io.FileUtils.deleteDirectory(new File(dirPath));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*
*
* @return
*/
@RequestMapping(params = "doBatchDel")
@ResponseBody
public AjaxJson doBatchDel(String ids,HttpServletRequest request){
AjaxJson j = new AjaxJson();
message = "自定义模板删除成功";
try{
for(String id:ids.split(",")){
CgformTemplateEntity cgformTemplate = systemService.getEntity(CgformTemplateEntity.class,
id
);
cgformTemplateService.delete(cgformTemplate);
if(cgformTemplate.getTemplateCode()!=null){
delTemplate(request,cgformTemplate.getTemplateCode());
}
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
}
}catch(Exception e){
e.printStackTrace();
message = "自定义模板删除失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @param
* @return
*/
@RequestMapping(params = "doAdd")
@ResponseBody
public AjaxJson doAdd(CgformTemplateEntity cgformTemplate, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
message = "自定义模板添加成功";
try{
cgformTemplateService.save(cgformTemplate);
String basePath=getUploadBasePath(request);
File templeDir=new File(basePath+File.separator+cgformTemplate.getTemplateCode());
if(!templeDir.exists())
templeDir.mkdirs();
removeZipFile(basePath+File.separator+"temp"+File.separator+cgformTemplate.getTemplateZipName(),templeDir.getAbsolutePath());
removeIndexFile(basePath + File.separator + "temp" + File.separator + cgformTemplate.getTemplatePic(), templeDir.getAbsolutePath());
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = "自定义模板添加失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
//将预览图从临时文件夹移入模板图片文件夹
private void removeIndexFile(String templateIndexPath,String templateDir){
File indexFile=new File(templateIndexPath);
if(indexFile.exists()&&!indexFile.isDirectory()){
File destDir=new File(templateDir+File.separator+"images");
if(!destDir.exists()){
destDir.mkdirs();
}
File destIndexFile=new File(destDir,indexFile.getName());
if(destIndexFile.exists()){
FileUtils.delete(destIndexFile.getAbsolutePath());
}
try {
FileCopyUtils.copy(indexFile, destIndexFile);
} catch (IOException e) {
e.printStackTrace();
}finally {
FileUtils.delete(indexFile.getAbsolutePath());
}
}
}
//将压缩文件从临时文件夹解压到模板目录下
private void removeZipFile(String zipFilePath,String templateDir){
File zipFile=new File(zipFilePath);
if(zipFile.exists()&&!zipFile.isDirectory()){
try {
unZipFiles(zipFile, templateDir);
} catch (IOException e) {
e.printStackTrace();
}finally {
FileUtils.delete(zipFilePath);
}
}
}
/**
*
*
* @param
* @return
*/
@RequestMapping(params = "doUpdate")
@ResponseBody
public AjaxJson doUpdate(CgformTemplateEntity cgformTemplate, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
message = "自定义模板更新成功";
CgformTemplateEntity t = cgformTemplateService.get(CgformTemplateEntity.class, cgformTemplate.getId());
try {
MyBeanUtils.copyBeanNotNull2Bean(cgformTemplate, t);
String basePath=getUploadBasePath(request);
File templeDir=new File(basePath+File.separator+t.getTemplateCode());
if(!templeDir.exists())
templeDir.mkdirs();
removeZipFile(basePath+File.separator+"temp"+File.separator+t.getTemplateZipName(),templeDir.getAbsolutePath());
removeIndexFile(basePath + File.separator + "temp" + File.separator + t.getTemplatePic(), templeDir.getAbsolutePath());
cgformTemplateService.saveOrUpdate(t);
systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
} catch (Exception e) {
e.printStackTrace();
message = "自定义模板更新失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
/**
*
*
* @return
*/
@RequestMapping(params = "goAdd")
public ModelAndView goAdd(CgformTemplateEntity cgformTemplate, HttpServletRequest req) {
if (StringUtil.isNotEmpty(cgformTemplate.getId())) {
cgformTemplate = cgformTemplateService.getEntity(CgformTemplateEntity.class, cgformTemplate.getId());
req.setAttribute("cgformTemplatePage", cgformTemplate);
}
return new ModelAndView("jeecg/cgform/template/cgformTemplate-add");
}
/**
*
*
* @return
*/
@RequestMapping(params = "goUpdate")
public ModelAndView goUpdate(CgformTemplateEntity cgformTemplate, HttpServletRequest req) {
if (StringUtil.isNotEmpty(cgformTemplate.getId())) {
cgformTemplate = cgformTemplateService.getEntity(CgformTemplateEntity.class, cgformTemplate.getId());
req.setAttribute("cgformTemplatePage", cgformTemplate);
}
return new ModelAndView("jeecg/cgform/template/cgformTemplate-update");
}
/**
*
*
* @return
*/
@RequestMapping(params = "upload")
public ModelAndView upload(HttpServletRequest req) {
req.setAttribute("controller_name", "cgformTemplateController");
return new ModelAndView("common/upload/pub_excel_upload");
}
/**
* excel
*
* @param request
* @param response
*/
@RequestMapping(params = "exportXls")
public String exportXls(CgformTemplateEntity cgformTemplate,HttpServletRequest request,HttpServletResponse response
, DataGrid dataGrid,ModelMap modelMap) {
CriteriaQuery cq = new CriteriaQuery(CgformTemplateEntity.class, dataGrid);
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, cgformTemplate, request.getParameterMap());
List<CgformTemplateEntity> cgformTemplates = this.cgformTemplateService.getListByCriteriaQuery(cq, false);
modelMap.put(NormalExcelConstants.FILE_NAME,"自定义模板");
modelMap.put(NormalExcelConstants.CLASS,CgformTemplateEntity.class);
modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("自定义模板列表", "导出人:"+ResourceUtil.getSessionUserName().getRealName(),
"导出信息"));
modelMap.put(NormalExcelConstants.DATA_LIST, cgformTemplates);
return NormalExcelConstants.JEECG_EXCEL_VIEW;
}
/**
*
* @param id
* @return
*/
@RequestMapping(params = "checkTemplate")
@ResponseBody
public boolean checkTemplate(String id,HttpServletRequest request){
boolean flag=false;
if(StringUtils.isNotBlank(id)) {
CgformTemplateEntity entity = cgformTemplateService.getEntity(CgformTemplateEntity.class, id);
if (entity != null && entity.getTemplateCode() != null) {
File dirFile=new File(getUploadBasePath(request)+"/"+entity.getTemplateCode());
if(dirFile.exists()&&dirFile.isDirectory()){
flag=true;
}
}
}
return flag;
}
/**
*
*
* @param id
*/
@RequestMapping(params = "downloadTemplate")
public void downloadTemplate(String id,HttpServletRequest request,HttpServletResponse response) {
if(StringUtils.isNotBlank(id)){
CgformTemplateEntity entity=cgformTemplateService.getEntity(CgformTemplateEntity.class,id);
if(entity!=null&&entity.getTemplateCode()!=null){
File zipFile=zipFile(entity.getTemplateCode(),request);
if(zipFile!=null&&zipFile.exists()){
FileInputStream inputStream=null;
try {
inputStream=new FileInputStream(zipFile);
downLoadFile(inputStream,entity.getTemplateName()+".zip",zipFile.length(),response);
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
if(inputStream!=null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
FileUtils.delete(zipFile.getAbsolutePath());
}
}
}
}else{
return ;
}
}
@SuppressWarnings("unchecked")
@RequestMapping(params = "importExcel", method = RequestMethod.POST)
@ResponseBody
public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<CgformTemplateEntity> listCgformTemplateEntitys = ExcelImportUtil.importExcel(file.getInputStream(),CgformTemplateEntity.class,params);
for (CgformTemplateEntity cgformTemplate : listCgformTemplateEntitys) {
cgformTemplateService.save(cgformTemplate);
}
j.setMsg("文件导入成功!");
} catch (Exception e) {
j.setMsg("文件导入失败!");
logger.error(ExceptionUtil.getExceptionMessage(e));
}finally{
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return j;
}
/**
*
* @param request
* @param response
* @return
*/
@RequestMapping(params = "uploadPic")
@ResponseBody
public AjaxJson uploadPic(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
File picTempFile=null;
File tempDir=new File(getUploadBasePath(request),"temp");
if(!tempDir.exists())
tempDir.mkdirs();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();
picTempFile=new File(tempDir.getAbsolutePath(),"/index_"+request.getSession().getId()+"."+FileUtils.getExtend(file.getOriginalFilename()));
try{
if(picTempFile.exists())
org.apache.commons.io.FileUtils.forceDelete(picTempFile);
FileCopyUtils.copy(file.getBytes(),picTempFile);
}catch (Exception e){
e.printStackTrace();
j.setMsg("预览图上传失败!");
j.setSuccess(false);
}
j.setObj(picTempFile.getName());
}
j.setMsg("图片上传成功!");
j.setSuccess(true);
return j;
}
/**
* zip
* @param request
* @param response
* @return
*/
@RequestMapping(params = "uploadZip")
@ResponseBody
public AjaxJson uploadZip(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
File picTempFile=null;
File tempDir=new File(getUploadBasePath(request),"temp");
if(!tempDir.exists())
tempDir.mkdirs();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();
picTempFile=new File(tempDir.getAbsolutePath(),"/zip_"+request.getSession().getId()+"."+ FileUtils.getExtend(file.getOriginalFilename()));
try{
if(picTempFile.exists())
org.apache.commons.io.FileUtils.forceDelete(picTempFile);
FileCopyUtils.copy(file.getBytes(),picTempFile);
}catch (Exception e){
e.printStackTrace();
j.setMsg("模板文件上传失败!");
j.setSuccess(false);
}
j.setObj(picTempFile.getName());
}
j.setMsg("模板文件上传成功!");
j.setSuccess(true);
return j;
}
/**
*
* @param request
* @param code
* @param path
* @param response
*/
@RequestMapping(params = "showPic")
public void showPic(HttpServletRequest request,String code, String path,HttpServletResponse response){
String defaultPath="default.jpg";
String defaultCode="default/images/";
//无图片情况
if(path==null){
path=defaultPath;
code=defaultCode;
}else{
//临时图片
if(code==null){
code="temp/";
}else{
code+="/images/";
}
}
FileInputStream fis = null;
response.setContentType("image/" + FileUtils.getExtend(path));
try {
OutputStream out = response.getOutputStream();
File file = new File(getUploadBasePath(request),code+path);
if(!file.exists()||file.isDirectory()){
file=new File(getUploadBasePath(request),defaultCode+defaultPath);
}
fis = new FileInputStream(file);
byte[] b = new byte[fis.available()];
fis.read(b);
out.write(b);
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//获取上传根路径
private String getUploadBasePath(HttpServletRequest request){
// String path=request.getSession().getServletContext().getRealPath("/WEB-INF/classes/online/template");
String path= this.getClass().getResource("/").getPath()+"online/template";
return path;
}
/**
*
* @param param
* @return
*/
@RequestMapping(params = "checkCode")
@ResponseBody
public AjaxJson checkCode(String param){
org.springframework.util.Assert.notNull(param);
AjaxJson j=new AjaxJson();
Long count=cgformTemplateService.getCountForJdbcParam("select count(id) from cgform_template where template_code=? ", new Object[]{param});
if(count==null||count<=0){
j.setSuccess(true);
}else {
j.setSuccess(false);
}
return j;
}
/**
*
* @param type
* @return
*/
@RequestMapping(params = "getTemplate")
@ResponseBody
public AjaxJson getTemplate(String type){
org.springframework.util.Assert.notNull(type);
AjaxJson j=new AjaxJson();
j.setSuccess(true);
j.setObj(cgformTemplateService.getTemplateListByType(type));
return j;
}
//解压zip文件
private void unZipFiles(File zipFile,String descDir)throws IOException{
ZipUtil.unzip(zipFile, new File(descDir));
}
//压缩文件并返回文件信息
private File zipFile(String templateCode,HttpServletRequest request){
String dirPath=getUploadBasePath(request)+"/"+templateCode;
ZipOutputStream zos = null;
File zipFile=null;
try {
File dir=new File(dirPath);
if(dir.exists()&&dir.isDirectory()){
zipFile=new File(dir+"_"+request.getSession().getId()+".zip");
File[] files=dir.listFiles();
if(files!=null){
zos=ZipUtil.createZip(zipFile);
for(File file: files){
ZipUtil.addToZip(zos,file);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(zos!=null){
StreamUtil.close(zos);
}
}
return zipFile;
}
//下载文件
private void downLoadFile(InputStream inputStream,String fileName,long size,HttpServletResponse response){
try{
fileName=new String(fileName.getBytes("utf-8"),"iso-8859-1");
}catch (Exception e){
e.printStackTrace();
}
response.setContentType("application/octet-stream; charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
if(size>0)
response.addHeader("Content-Length",size+"");
OutputStream stream= null;
try {
stream = response.getOutputStream();
FileCopyUtils.copy(inputStream, stream);
stream.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(stream!=null){
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

@ -1,12 +1,16 @@
package org.jeecgframework.web.cgform.engine;
import freemarker.cache.TemplateLoader;
import org.jeecgframework.core.util.ContextHolderUtils;
import org.jeecgframework.web.cgform.common.CgAutoListConstant;
import org.jeecgframework.web.cgform.common.FormHtmlUtil;
import org.jeecgframework.web.cgform.entity.config.CgFormFieldEntity;
import org.jeecgframework.web.cgform.entity.config.CgFormHeadEntity;
import org.jeecgframework.web.cgform.entity.template.CgformTemplateEntity;
import org.jeecgframework.web.cgform.service.cgformftl.CgformFtlServiceI;
import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
import org.jeecgframework.web.cgform.service.template.CgformTemplateServiceI;
import org.jeecgframework.web.cgform.util.TemplateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@ -37,7 +41,8 @@ public class DBTempletLoader implements TemplateLoader {
@Autowired
private CgFormFieldServiceI cgFormFieldService;
@Autowired
private CgformTemplateServiceI cgformTemplateService;
public Object findTemplateSource(String name) throws IOException {
//update by Robin postgreSQL 修正大小写的问题 2013-03-13
@ -67,21 +72,38 @@ public class DBTempletLoader implements TemplateLoader {
}
private Object getObject(String name) throws IOException {
// update-start--Author:zhangguoming Date:20140922 for根据ftlVersion动态读取模板
String ftlVersion = "";
String ftlVersionParam = "&ftlVersion=";
if(name.contains(ftlVersionParam)) {
ftlVersion = name.substring(name.indexOf(ftlVersionParam) + ftlVersionParam.length());
name = name.substring(0, name.indexOf(ftlVersionParam));
}
// update-end--Author:zhangguoming Date:20140922 for根据ftlVersion动态读取模板
//update-begin--Author:张忠亮 Date:20150707 foronline表单风格加入录入、编辑、列表、详情页面设置
TemplateUtil.TemplateType templateType= null;
if(name.lastIndexOf(".ftl")==-1&&name.lastIndexOf("_")!=-1){
templateType=TemplateUtil.TemplateType.getVal(name.substring(name.lastIndexOf("_")+1));
name=name.substring(0,name.lastIndexOf("_"));
}
if(templateType==null){
templateType= TemplateUtil.TemplateType.UPDATE;
}
//update-end--Author:张忠亮 Date:20150707 foronline表单风格加入录入、编辑、列表、详情页面设置
PathMatchingResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
if(name.lastIndexOf(".ftl")==-1){//判断是否为include的模板
//如果是主表直接走一对多模板
CgFormHeadEntity head = cgFormFieldService.getCgFormHeadByTableName(name);
if(head==null)return null;
//update-begin--Author:张忠亮 Date:20150707 foronline表单风格加入录入、编辑、列表、详情页面设置
CgformTemplateEntity entity=cgformTemplateService.findByCode(head.getFormTemplate());
//update-end--Author:张忠亮 Date:20150707 foronline表单风格加入录入、编辑、列表、详情页面设置
if(head.getJformType()==CgAutoListConstant.JFORM_TYPE_MAIN_TALBE){
Resource[] resources = patternResolver.getResources(TEMPLET_ONE_MANY);
//update-begin--Author:张忠亮 Date:20150623 for自定义模板
Resource[] resources = patternResolver.getResources(TemplateUtil.getTempletPath(entity, head.getJformType(), templateType));
//update-end--Author:张忠亮 Date:20150623 for自定义模板
InputStreamReader inputStreamReader =null;
if (resources != null && resources.length > 0) {
inputStreamReader = new InputStreamReader(resources[0].getInputStream(),"UTF-8");
@ -90,22 +112,24 @@ public class DBTempletLoader implements TemplateLoader {
}
//1、根据table name 查询cgformftl 有则获取模板内容
//2、没有cgformftl 则查询cgformfield 根据cgformfield生成模板
// update-start--Author:zhangguoming Date:20140922 for根据ftlVersion动态读取模板
Map<String,Object> cgformFtlEntity = new HashMap<String, Object>();
if (ftlVersion != null && ftlVersion.length() > 0) {
cgformFtlEntity = cgformFtlService.getCgformFtlByTableName(name, ftlVersion);
} else {
cgformFtlEntity = cgformFtlService.getCgformFtlByTableName(name);
}
// update-end--Author:zhangguoming Date:20140922 for根据ftlVersion动态读取模板
if(cgformFtlEntity!=null){
String content = (String) (cgformFtlEntity.get("ftl_content")==null?"":cgformFtlEntity.get("ftl_content"));
content = initFormHtml( content, name);
org.jeecgframework.core.util.LogUtil.info(content);
// org.jeecgframework.core.util.LogUtil.info(content);
return new StringBuilder(content);
}else{
Resource[] resources = patternResolver.getResources(TEMPLET);
InputStreamReader inputStreamReader =null;
//update-begin--Author:张忠亮 Date:20150623 for自定义模板
Resource[] resources = patternResolver.getResources(TemplateUtil.getTempletPath(entity, head.getJformType(),templateType));
//update-end--Author:张忠亮 Date:20150623 for自定义模板
InputStreamReader inputStreamReader =null;
if (resources != null && resources.length > 0) {
inputStreamReader = new InputStreamReader(resources[0].getInputStream(),"UTF-8");
}
@ -207,4 +231,5 @@ public class DBTempletLoader implements TemplateLoader {
return html.toString();
}
}

@ -64,6 +64,7 @@ public class TempletContext {
if (tableName == null) {
return null;
}
String oldTableName = tableName;
if (ftlVersion != null && ftlVersion.length() > 0) {
tableName = tableName + "&ftlVersion=" + ftlVersion;
}
@ -72,7 +73,7 @@ public class TempletContext {
template = freemarker.getTemplate(tableName,freemarker.getLocale(), ENCODING);
}else if(CgAutoListConstant.SYS_MODE_PUB.equalsIgnoreCase(_sysMode)){//生产模式(缓存)
//获取版本号
String version = cgFormFieldService.getCgFormVersionByTableName(tableName);
String version = cgFormFieldService.getCgFormVersionByTableName(oldTableName);
template = getTemplateFromCache(tableName, ENCODING,version);
}else{
throw new RuntimeException("sysConfig.properties的freeMarkerMode配置错误(PUB:生产模式DEV:开发模式)");
@ -125,6 +126,11 @@ public class TempletContext {
public void setTags(Map<String, TemplateDirectiveModel> tags) {
this.tags = tags;
}
public void clearCache(){
try{
ehCache.removeAll();
}catch (Exception e){
}
}
}

@ -164,6 +164,15 @@ function createDataGrid${config_id}(){
}
return value;
}
/**
* 获取表格对象
* @return 表格对象
*/
function getDataGrid(){
var datagrid = $('#'+gridname);
return datagrid;
}
/**
* 获取列表中选中行的数据(多行)
* @param field 数据中字段名-不传此参数则获取全部数据
@ -310,6 +319,8 @@ function createDataGrid${config_id}(){
});
window.location.href = "excelTempletController.do?exportXls&tableName=${config_id}"+encodeURI(params+fields)
}
//JS增强
${config_jsenhance}
</script>

@ -6,6 +6,7 @@
${config_iframe}
</head>
<body style="overflow-y: hidden; overflow-x: hidden;" scroll="no">
<#--update-start--Author:luobaoli Date:20150614 for表单单表属性中增加了扩展参数 ${po.extend_json?if_exists}-->
<form id="formobj" action="cgFormBuildController.do?saveOrUpdate" name="formobj" method="post">
<input type="hidden" id="btn_sub" class="btn_sub"/>
<input type="hidden" name="tableName" value="${tableName?if_exists?html}" >
@ -28,8 +29,51 @@
</label>
</td>
<td class="value">
<#if po.show_type=='text'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<#if head.isTree=='Y' && head.treeParentIdFieldName==po.field_name>
<!--如果为树形菜单父id输入框设置为select-->
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" class="inputxt easyui-combotree" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
<#if po.operationCodesReadOnly?exists> readonly = "readonly"</#if>
<#if po.field_valid_type?if_exists?html != ''>
datatype="${po.field_valid_type?if_exists?html}"
<#else>
<#if po.type == 'int'>
datatype="n" <#if po.is_null == 'Y'>ignore="ignore" </#if>
<#elseif po.type=='double'>
datatype="/^(-?\d+)(\.\d+)?$/" <#if po.is_null == 'Y'>ignore="ignore" </#if>
<#else>
<#if po.is_null != 'Y'>datatype="*"</#if>
</#if>
</#if>
data-options="
panelHeight:'220',
url: 'cgAutoListController.do?datagrid&configId=${tableName?if_exists?html}&field=id,${head.treeFieldname}',
loadFilter: function(data) {
var rows = data.rows || data;
var win = frameElement.api.opener;
var listRows = win.getDataGrid().treegrid('getData');
joinTreeChildren(rows, listRows);
convertTreeData(rows, '${head.treeFieldname}');
return rows;
},
onLoadSuccess: function() {
var win = frameElement.api.opener;
var currRow = win.getDataGrid().treegrid('getSelected');
if(!'${id?if_exists?html}') {
//增加时,选择当前父菜单
if(currRow) {
$('#${po.field_name}').combotree('setValue', currRow.id);
}
}else {
//编辑时,选择当前父菜单
if(currRow) {
$('#${po.field_name}').combotree('setValue', currRow._parentId);
}
}
}
">
<#elseif po.show_type=='text'>
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" class="inputxt" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
<#if po.operationCodesReadOnly?exists> readonly = "readonly"</#if>
<#if po.field_valid_type?if_exists?html != ''>
@ -44,7 +88,7 @@
</#if>
</#if>>
<#elseif po.show_type=='password'>
<input id="${po.field_name}" name="${po.field_name}" type="password"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="password"
style="width: 150px" class="inputxt" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
<#if po.operationCodesReadOnly?if_exists> readonly = "readonly"</#if>
<#if po.field_valid_type?if_exists?html != ''>
@ -56,7 +100,7 @@
<#elseif po.show_type=='radio'>
<@DictData name="${po.dict_field?if_exists?html}" text="${po.dict_text?if_exists?html}" tablename="${po.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${po.field_name}" type="radio"
<input value="${dictdata.typecode?if_exists?html}" ${po.extend_json?if_exists} name="${po.field_name}" type="radio"
<#if dictdata_index==0&&po.is_null != 'Y'>datatype="*"</#if>
<#if po.operationCodesReadOnly?if_exists>onclick="return false;"</#if>
<#if dictdata.typecode?if_exists?html=="${data['${tableName}']['${po.field_name}']?if_exists?html}"> checked="true" </#if>>
@ -69,7 +113,7 @@
<#assign checkboxlist=checkboxstr?split(",")>
<@DictData name="${po.dict_field?if_exists?html}" text="${po.dict_text?if_exists?html}" tablename="${po.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${po.field_name}" type="checkbox"
<input value="${dictdata.typecode?if_exists?html}" ${po.extend_json?if_exists} name="${po.field_name}" type="checkbox"
<#if po.operationCodesReadOnly?if_exists>onclick="return false;"</#if>
<#if dictdata_index==0&&po.is_null != 'Y'>datatype="*"</#if>
<#list checkboxlist as x >
@ -80,7 +124,7 @@
<#elseif po.show_type=='list'>
<@DictData name="${po.dict_field?if_exists?html}" text="${po.dict_text?if_exists?html}" tablename="${po.dict_table?if_exists?html}" var="dataList">
<select id="${po.field_name}" name="${po.field_name}" <#if po.operationCodesReadOnly?if_exists>onfocus="this.defOpt=this.selectedIndex" onchange="this.selectedIndex=this.defOpt;"</#if><#if po.is_null != 'Y'>datatype="*"</#if> >
<select id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" <#if po.operationCodesReadOnly?if_exists>onfocus="this.defOpt=this.selectedIndex" onchange="this.selectedIndex=this.defOpt;"</#if><#if po.is_null != 'Y'>datatype="*"</#if> >
<#list dataList as dictdata>
<option value="${dictdata.typecode?if_exists?html}"
<#if dictdata.typecode?if_exists?html=="${data['${tableName}']['${po.field_name}']?if_exists?html}"> selected="selected" </#if>>
@ -91,7 +135,7 @@
</@DictData>
<#elseif po.show_type=='date'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker({<#if po.operationCodesReadOnly?if_exists> readonly = true</#if>})"
<#if po.operationCodesReadOnly?exists> readonly = "readonly"</#if>
@ -102,7 +146,7 @@
</#if>>
<#elseif po.show_type=='datetime'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'<#if po.operationCodesReadOnly?if_exists> ,readonly = true</#if>})"
<#if po.operationCodesReadOnly?exists> readonly = "readonly"</#if>
@ -113,7 +157,7 @@
</#if>>
<#elseif po.show_type=='popup'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" class="searchbox-inputtext"
onClick="inputClick(this,'${po.dict_text?if_exists?html}','${po.dict_table?if_exists?html}');"
value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
@ -170,7 +214,7 @@
<div class="form" id="filediv_${po.field_name}"> </div>
</#if>
<#else>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" class="inputxt" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
<#if po.field_valid_type?if_exists?html != ''>
datatype="${po.field_valid_type?if_exists?html}"
@ -214,7 +258,7 @@
</label>
</td>
<td class="value" colspan="3">
<textarea id="${po.field_name}" name="${po.field_name}"
<textarea id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}"
style="width: 600px" class="inputxt" rows="6"
<#if po.operationCodesReadOnly?if_exists> readonly = "readonly"</#if>
<#if po.field_valid_type?if_exists?html != ''>
@ -234,7 +278,7 @@
</label>
</td>
<td class="value">
<textarea id="${po.field_name}" name="${po.field_name}"
<textarea id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}"
style="width: 300px" class="inputxt" rows="6"
<#if po.operationCodesReadOnly?if_exists> readonly = "readonly"</#if>
<#if po.field_valid_type?if_exists?html != ''>
@ -256,6 +300,7 @@
</table>
<script type="text/javascript">$(function(){$("#formobj").Validform({tiptype:1,btnSubmit:"#btn_sub",btnReset:"#btn_reset",ajaxPost:true,usePlugin:{passwordstrength:{minLen:6,maxLen:18,trigger:function(obj,error){if(error){obj.parent().next().find(".Validform_checktip").show();obj.find(".passwordStrength").hide();}else{$(".passwordStrength").show();obj.parent().next().find(".Validform_checktip").hide();}}}},callback:function(data){if(data.success==true){uploadFile(data);}else{if(data.responseText==''||data.responseText==undefined){$.messager.alert('错误', data.msg);$.Hidemsg();}else{try{var emsg = data.responseText.substring(data.responseText.indexOf('错误描述'),data.responseText.indexOf('错误信息')); $.messager.alert('错误',emsg);$.Hidemsg();}catch(ex){$.messager.alert('错误',data.responseText+'');}} return false;}if(!neibuClickFlag){var win = frameElement.api.opener; win.reloadTable();}}});});</script>
</form>
<#--update-end--Author:luobaoli Date:20150614 for表单单表属性中增加了扩展参数 ${po.extend_json?if_exists}-->
<script type="text/javascript">
$(function(){
//查看模式情况下,删除和上传附件功能禁止使用
@ -293,7 +338,9 @@
}
function uploadFile(data){
if(!$("input[name='id']").val()){
$("input[name='id']").val(data.obj.id);
if(data.obj!=null && data.obj!='undefined'){
$("input[name='id']").val(data.obj.id);
}
}
if($(".uploadify-queue-item").length>0){
upload();
@ -331,6 +378,35 @@
}, function(){
});
}
<#--add-start--Author:钟世云 Date:20150614 foronline支持树配置-->
/**树形列表数据转换**/
function convertTreeData(rows, textField) {
for(var i = 0; i < rows.length; i++) {
var row = rows[i];
row.text = row[textField];
if(row.children) {
row.state = "open";
convertTreeData(row.children, textField);
}
}
}
/**树形列表加入子元素**/
function joinTreeChildren(arr1, arr2) {
for(var i = 0; i < arr1.length; i++) {
var row1 = arr1[i];
for(var j = 0; j < arr2.length; j++) {
if(row1.id == arr2[j].id) {
var children = arr2[j].children;
if(children) {
row1.children = children;
}
}
}
}
}
<#--add-end--Author:钟世云 Date:20150614 foronline支持树配置-->
</script>
<script type="text/javascript">${js_plug_in?if_exists}</script>
</body>

@ -1,3 +1,4 @@
<#--update-start--Author:luobaoli Date:20150614 for表单主表/单表)属性中增加了扩展参数 ${po.extend_json?if_exists}-->
<input type="hidden" name="tableName" value="${tableName?if_exists?html}" >
<input type="hidden" name="id" value="${id?if_exists?html}" >
<#list columnhidden as po>
@ -15,7 +16,7 @@
</td>
<td class="value">
<#if po.show_type=='text'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" class="inputxt" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
<#if po.field_valid_type?if_exists?html != ''>
datatype="${po.field_valid_type?if_exists?html}"
@ -29,7 +30,7 @@
</#if></#if>>
<#elseif po.show_type=='password'>
<input id="${po.field_name}" name="${po.field_name}" type="password"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="password"
style="width: 150px" class="inputxt" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
<#if po.field_valid_type?if_exists?html != ''>
datatype="${po.field_valid_type?if_exists?html}"
@ -40,7 +41,7 @@
<#elseif po.show_type=='radio'>
<@DictData name="${po.dict_field?if_exists?html}" text="${po.dict_text?if_exists?html}" tablename="${po.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${po.field_name}" type="radio"
<input value="${dictdata.typecode?if_exists?html}" ${po.extend_json?if_exists} name="${po.field_name}" type="radio"
<#if dictdata_index==0&&po.is_null != 'Y'>datatype="*"</#if>
<#if dictdata.typecode?if_exists?html=="${data['${tableName}']['${po.field_name}']?if_exists?html}"> checked="true" </#if>>
${dictdata.typename?if_exists?html}
@ -52,7 +53,7 @@
<#assign checkboxlist=checkboxstr?split(",")>
<@DictData name="${po.dict_field?if_exists?html}" text="${po.dict_text?if_exists?html}" tablename="${po.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${po.field_name}" type="checkbox"
<input value="${dictdata.typecode?if_exists?html}" ${po.extend_json?if_exists} name="${po.field_name}" type="checkbox"
<#if dictdata_index==0&&po.is_null != 'Y'>datatype="*"</#if>
<#list checkboxlist as x >
<#if dictdata.typecode?if_exists?html=="${x?if_exists?html}"> checked="true" </#if></#list>>
@ -62,7 +63,7 @@
<#elseif po.show_type=='list'>
<@DictData name="${po.dict_field?if_exists?html}" text="${po.dict_text?if_exists?html}" tablename="${po.dict_table?if_exists?html}" var="dataList">
<select id="${po.field_name}" name="${po.field_name}" <#if po.is_null != 'Y'>datatype="*"</#if>>
<select id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" <#if po.is_null != 'Y'>datatype="*"</#if>>
<#list dataList as dictdata>
<option value="${dictdata.typecode?if_exists?html}"
<#if dictdata.typecode?if_exists?html=="${data['${tableName}']['${po.field_name}']?if_exists?html}"> selected="selected" </#if>>
@ -73,7 +74,7 @@
</@DictData>
<#elseif po.show_type=='date'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker()"
<#if po.field_valid_type?if_exists?html != ''>
@ -83,7 +84,7 @@
</#if>>
<#elseif po.show_type=='datetime'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
<#if po.field_valid_type?if_exists?html != ''>
@ -93,7 +94,7 @@
</#if>>
<#elseif po.show_type=='popup'>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" class="searchbox-inputtext"
onClick="inputClick(this,'${po.dict_text?if_exists?html}','${po.dict_table?if_exists?html}');"
value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
@ -147,7 +148,7 @@
</div>
<div class="form" id="filediv_${po.field_name}"> </div>
<#else>
<input id="${po.field_name}" name="${po.field_name}" type="text"
<input id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}" type="text"
style="width: 150px" class="inputxt" value="${data['${tableName}']['${po.field_name}']?if_exists?html}"
<#if po.field_valid_type?if_exists?html != ''>
datatype="${po.field_valid_type?if_exists?html}"
@ -184,7 +185,7 @@
</label>
</td>
<td class="value" colspan="3">
<textarea id="${po.field_name}" name="${po.field_name}"
<textarea id="${po.field_name}" ${po.extend_json?if_exists} name="${po.field_name}"
style="width: 600px" class="inputxt" rows="6"
<#if po.field_valid_type?if_exists?html != ''>
datatype="${po.field_valid_type?if_exists?html}"
@ -196,4 +197,5 @@
</td>
</tr>
</#list>
</table>
</table>
<#--update-end--Author:luobaoli Date:20150614 for表单主表/单表)属性中增加了扩展参数 ${po.extend_json?if_exists}-->

@ -42,6 +42,7 @@
<td align="left" bgcolor="#EEEEEE">${subTableField.content?if_exists?html}</td>
</#list>
</tr>
<#--update-start--Author:luobaoli Date:20150614 for表单类型为onetomany子表属性中增加了扩展参数 ${po.extend_json?if_exists}-->
<tbody id="add_${sub}_table">
<#if data['${sub}']?exists&&(data['${sub}']?size>0) >
<#list data['${sub}'] as subTableData >
@ -57,7 +58,7 @@
<#list field['${sub}'].fieldList as subTableField >
<td align="left">
<#if subTableField.show_type=='text'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -73,7 +74,7 @@
</#if></#if>>
<#elseif subTableField.show_type=='password'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="password"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="password"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -86,7 +87,7 @@
<#elseif subTableField.show_type=='radio'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="radio"
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="radio"
<#if dictdata_index==0&&subTableField.is_null != 'Y'>datatype="*"</#if>
<#if dictdata.typecode?if_exists?html=="${subTableData['${subTableField.field_name}']?if_exists?html}"> checked="true" </#if>>
${dictdata.typename?if_exists?html}
@ -98,7 +99,7 @@
<#assign checkboxlist=checkboxstr?split(",")>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="checkbox"
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="checkbox"
<#if dictdata_index==0&&subTableField.is_null != 'Y'>datatype="*"</#if>
<#list checkboxlist as x >
<#if dictdata.typecode?if_exists?html=="${x?if_exists?html}"> checked="true" </#if></#list>>
@ -108,7 +109,7 @@
<#elseif subTableField.show_type=='list'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<select id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<select id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<#list dataList as dictdata>
<option value="${dictdata.typecode?if_exists?html}"
<#if dictdata.typecode?if_exists?html=="${subTableData['${subTableField.field_name}']?if_exists?html}"> selected="selected" </#if>>
@ -119,7 +120,7 @@
</@DictData>
<#elseif subTableField.show_type=='date'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker()"
nullmsg="请输入${subTableField.content}"
@ -131,7 +132,7 @@
</#if>>
<#elseif subTableField.show_type=='datetime'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
nullmsg="请输入${subTableField.content}"
@ -143,7 +144,7 @@
</#if>>
<#elseif subTableField.show_type=='popup'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="searchbox-inputtext15"
onClick="inputClick(this,'${subTableField.dict_text?if_exists?html}','${subTableField.dict_table?if_exists?html}');"
value="${subTableData['${subTableField.field_name}']?if_exists?html}"
@ -156,7 +157,7 @@
</#if>>
<#elseif subTableField.show_type=='file'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -167,7 +168,7 @@
</#if>>
<#else>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -200,7 +201,7 @@
<#list field['${sub}'].fieldList as subTableField >
<td align="left">
<#if subTableField.show_type=='text'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -216,7 +217,7 @@
</#if></#if>>
<#elseif subTableField.show_type=='password'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="password"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="password"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -229,7 +230,7 @@
<#elseif subTableField.show_type=='radio'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[0].${subTableField.field_name}" type="radio" <#if subTableField.is_null != 'Y'>datatype="*"</#if> >
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="radio" <#if subTableField.is_null != 'Y'>datatype="*"</#if> >
${dictdata.typename?if_exists?html}
</#list>
</@DictData>
@ -237,14 +238,14 @@
<#elseif subTableField.show_type=='checkbox'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[0].${subTableField.field_name}" type="checkbox" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="checkbox" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
${dictdata.typename?if_exists?html}
</#list>
</@DictData>
<#elseif subTableField.show_type=='list'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<select id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if> >
<select id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if> >
<#list dataList as dictdata>
<option value="${dictdata.typecode?if_exists?html}" >
${dictdata.typename?if_exists?html}
@ -254,7 +255,7 @@
</@DictData>
<#elseif subTableField.show_type=='date'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px"
class="Wdate" onClick="WdatePicker()"
nullmsg="请输入${subTableField.content}"
@ -266,7 +267,7 @@
</#if>>
<#elseif subTableField.show_type=='datetime'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px"
class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
nullmsg="请输入${subTableField.content}"
@ -278,7 +279,7 @@
</#if>>
<#elseif subTableField.show_type=='popup'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="searchbox-inputtext15"
onClick="inputClick(this,'${subTableField.dict_text?if_exists?html}','${subTableField.dict_table?if_exists?html}');"
nullmsg="请输入${subTableField.content}"
@ -290,7 +291,7 @@
</#if>>
<#elseif subTableField.show_type=='file'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -301,7 +302,7 @@
</#if>>
<#else>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -322,6 +323,7 @@
</tr>
</#if>
</tbody>
<#--update-end--Author:luobaoli Date:20150614 for表单类型为onetomany子表属性中增加了扩展参数 ${po.extend_json?if_exists}-->
</table>
</div>
</div>

@ -1,3 +1,4 @@
<#--update-start--Author:luobaoli Date:20150614 for表单类型为onetomany子表属性中增加了扩展参数 ${po.extend_json?if_exists}-->
<tbody id="add_${sub}_table_template">
<tr>
<td align="center"><div style="width: 25px;" name="xh"></div></td>
@ -11,7 +12,7 @@
<#list field['${sub}'].fieldList as subTableField >
<td align="left">
<#if subTableField.show_type=='text'>
<input id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" type="text"
<input id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -27,7 +28,7 @@
</#if></#if>>
<#elseif subTableField.show_type=='password'>
<input id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" type="password"
<input id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="password"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -40,7 +41,7 @@
<#elseif subTableField.show_type=='radio'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[#index#].${subTableField.field_name}" type="radio"
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="radio"
<#if dictdata_index==0&&subTableField.is_null != 'Y'>datatype="*"</#if> >
${dictdata.typename?if_exists?html}
</#list>
@ -49,7 +50,7 @@
<#elseif subTableField.show_type=='checkbox'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[#index#].${subTableField.field_name}" type="checkbox"
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="checkbox"
<#if dictdata_index==0&&subTableField.is_null != 'Y'>datatype="*"</#if> >
${dictdata.typename?if_exists?html}
</#list>
@ -57,7 +58,7 @@
<#elseif subTableField.show_type=='list'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<select id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<select id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<#list dataList as dictdata>
<option value="${dictdata.typecode?if_exists?html}" >
${dictdata.typename?if_exists?html}
@ -67,7 +68,7 @@
</@DictData>
<#elseif subTableField.show_type=='date'>
<input id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" type="text"
<input id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px"
class="Wdate" onClick="WdatePicker()"
nullmsg="请输入${subTableField.content}"
@ -79,7 +80,7 @@
</#if>>
<#elseif subTableField.show_type=='datetime'>
<input id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" type="text"
<input id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px"
class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
nullmsg="请输入${subTableField.content}"
@ -91,7 +92,7 @@
</#if>>
<#elseif subTableField.show_type=='popup'>
<input id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" type="text"
<input id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="searchbox-inputtext15"
onClick="inputClick(this,'${subTableField.dict_text?if_exists?html}','${subTableField.dict_table?if_exists?html}');"
nullmsg="请输入${subTableField.content}"
@ -103,7 +104,7 @@
</#if>>
<#elseif subTableField.show_type=='file'>
<input id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" type="text"
<input id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
<#if subTableField.field_valid_type?if_exists?html != ''>
datatype="${subTableField.field_valid_type?if_exists?html}"
@ -112,7 +113,7 @@
</#if>>
<#else>
<input id="${sub}[#index#].${subTableField.field_name}" name="${sub}[#index#].${subTableField.field_name}" type="text"
<input id="${sub}[#index#].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[#index#].${subTableField.field_name}" type="text"
style="width: ${(subTableField.field_length==0)?string(150, subTableField.field_length)}px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -131,4 +132,5 @@
</td>
</#list>
</tr>
</tbody>
</tbody>
<#--update-end--Author:luobaoli Date:20150614 for表单类型为onetomany子表属性中增加了扩展参数 ${po.extend_json?if_exists}-->

@ -1,4 +1,5 @@
<#--update-start--Author:luobaoli Date:20150614 for表单类型为onetoone子表属性中增加了扩展参数 ${po.extend_json?if_exists}-->
<div title="${field['${sub}'].head.content?if_exists?html}" style="margin:0px;padding:0px;overflow:hidden;">
<div>
<table cellpadding="0" cellspacing="1" class="formtable" id="${sub}_table">
@ -22,7 +23,7 @@
</td>
<td class="value">
<#if subTableField.show_type=='text'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: 150px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -38,7 +39,7 @@
</#if></#if>>
<#elseif subTableField.show_type=='password'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="password"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="password"
style="width: 150px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -51,7 +52,7 @@
<#elseif subTableField.show_type=='radio'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="radio"
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="radio"
<#if dictdata_index==0&&subTableField.is_null != 'Y'>datatype="*"</#if>
<#if dictdata.typecode?if_exists?html=="${subTableData['${subTableField.field_name}']?if_exists?html}"> checked="true" </#if>>
${dictdata.typename?if_exists?html}
@ -63,7 +64,7 @@
<#assign checkboxlist=checkboxstr?split(",")>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="checkbox"
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="checkbox"
<#if dictdata_index==0&&subTableField.is_null != 'Y'>datatype="*"</#if>
<#list checkboxlist as x >
<#if dictdata.typecode?if_exists?html=="${x?if_exists?html}"> checked="true" </#if></#list>>
@ -73,7 +74,7 @@
<#elseif subTableField.show_type=='list'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<select id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}"
<select id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}"
<#if subTableField.is_null != 'Y'>datatype="*"</#if> >
<#list dataList as dictdata>
<option value="${dictdata.typecode?if_exists?html}"
@ -85,7 +86,7 @@
</@DictData>
<#elseif subTableField.show_type=='date'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: 150px" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker()"
nullmsg="请输入${subTableField.content}"
@ -97,7 +98,7 @@
</#if>>
<#elseif subTableField.show_type=='datetime'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: 150px" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
nullmsg="请输入${subTableField.content}"
@ -109,7 +110,7 @@
</#if>>
<#elseif subTableField.show_type=='popup'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: 150px" class="searchbox-inputtext15"
onClick="inputClick(this,'${subTableField.dict_text?if_exists?html}','${subTableField.dict_table?if_exists?html}');"
value="${subTableData['${subTableField.field_name}']?if_exists?html}"
@ -122,7 +123,7 @@
</#if>>
<#elseif subTableField.show_type=='file'>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: 150px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -133,7 +134,7 @@
</#if>>
<#else>
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
<input id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}" type="text"
style="width: 150px" class="inputxt" value="${subTableData['${subTableField.field_name}']?if_exists?html}"
nullmsg="请输入${subTableField.content}"
@ -170,7 +171,7 @@
</label>
</td>
<td class="value" colspan="3">
<textarea id="${sub}[${subTableData_index}].${subTableField.field_name}" name="${sub}[${subTableData_index}].${subTableField.field_name}"
<textarea id="${sub}[${subTableData_index}].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[${subTableData_index}].${subTableField.field_name}"
style="width: 600px" class="inputxt" rows="6"
<#if subTableField.field_valid_type?if_exists?html != ''>
datatype="${subTableField.field_valid_type?if_exists?html}"
@ -200,7 +201,7 @@
</td>
<td class="value">
<#if subTableField.show_type=='text'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: 150px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -216,7 +217,7 @@
</#if></#if>>
<#elseif subTableField.show_type=='password'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="password"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="password"
style="width: 150px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -229,7 +230,7 @@
<#elseif subTableField.show_type=='radio'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[0].${subTableField.field_name}" type="radio" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="radio" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
${dictdata.typename?if_exists?html}
</#list>
</@DictData>
@ -237,14 +238,14 @@
<#elseif subTableField.show_type=='checkbox'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<#list dataList as dictdata>
<input value="${dictdata.typecode?if_exists?html}" name="${sub}[0].${subTableField.field_name}" type="checkbox" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<input value="${dictdata.typecode?if_exists?html}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="checkbox" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
${dictdata.typename?if_exists?html}
</#list>
</@DictData>
<#elseif subTableField.show_type=='list'>
<@DictData name="${subTableField.dict_field?if_exists?html}" text="${subTableField.dict_text?if_exists?html}" tablename="${subTableField.dict_table?if_exists?html}" var="dataList">
<select id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<select id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" <#if subTableField.is_null != 'Y'>datatype="*"</#if>>
<#list dataList as dictdata>
<option value="${dictdata.typecode?if_exists?html}" >
${dictdata.typename?if_exists?html}
@ -254,7 +255,7 @@
</@DictData>
<#elseif subTableField.show_type=='date'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: 150px"
class="Wdate" onClick="WdatePicker()"
nullmsg="请输入${subTableField.content}"
@ -266,7 +267,7 @@
</#if>>
<#elseif subTableField.show_type=='datetime'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: 150px"
class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
nullmsg="请输入${subTableField.content}"
@ -278,7 +279,7 @@
</#if>>
<#elseif subTableField.show_type=='popup'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: 150px" class="searchbox-inputtext15"
onClick="inputClick(this,'${subTableField.dict_text?if_exists?html}','${subTableField.dict_table?if_exists?html}');"
nullmsg="请输入${subTableField.content}"
@ -290,7 +291,7 @@
</#if>>
<#elseif subTableField.show_type=='file'>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: 150px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -301,7 +302,7 @@
</#if>>
<#else>
<input id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}" type="text"
<input id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}" type="text"
style="width: 150px" class="inputxt"
nullmsg="请输入${subTableField.content}"
@ -338,7 +339,7 @@
</label>
</td>
<td class="value" colspan="3">
<textarea id="${sub}[0].${subTableField.field_name}" name="${sub}[0].${subTableField.field_name}"
<textarea id="${sub}[0].${subTableField.field_name}" ${subTableField.extend_json?if_exists} name="${sub}[0].${subTableField.field_name}"
style="width: 600px" class="inputxt" rows="6"
<#if subTableField.field_valid_type?if_exists?html != ''>
datatype="${subTableField.field_valid_type?if_exists?html}"
@ -354,4 +355,5 @@
</table>
</div>
</div>
<#--update-end--Author:luobaoli Date:20150614 for表单类型为onetoone子表属性中增加了扩展参数 ${po.extend_json?if_exists}-->

@ -76,7 +76,9 @@
}
function uploadFile(data){
if(!$("input[name='id']").val()){
$("input[name='id']").val(data.obj.id);
if(data.obj!=null && data.obj!='undefined'){
$("input[name='id']").val(data.obj.id);
}
}
if($(".uploadify-queue-item").length>0){
upload();

@ -0,0 +1,18 @@
package org.jeecgframework.web.cgform.enhance;
import java.util.Map;
import org.jeecgframework.core.common.exception.BusinessException;
/**
* JAVA
* @author luobaoli
*
*/
public interface CgformEnhanceJavaInter {
/**
*
* @param map
*/
public void execute(Map map) throws BusinessException;
}

@ -0,0 +1,17 @@
package org.jeecgframework.web.cgform.enhance;
import org.jeecgframework.core.common.exception.BusinessException;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* Created by zzl_h on 2015/11/24.
*/
@Service("cgformJavaInterDemo")
public class CgformJavaInterDemo implements CgformEnhanceJavaInter {
@Override
public void execute(Map map) throws BusinessException {
System.out.println("============调用[java增强]成功!==============");
}
}

@ -0,0 +1,350 @@
package org.jeecgframework.web.cgform.entity.autoform;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-17 19:36:59
* @version V1.0
*
*/
@Entity
@Table(name = "auto_form_db", schema = "")
@SuppressWarnings("serial")
public class AutoFormDbEntity implements java.io.Serializable {
/**主键*/
private java.lang.String id;
/**创建人名称*/
private java.lang.String createName;
/**创建人登录名称*/
private java.lang.String createBy;
/**更新人名称*/
private java.lang.String updateName;
/**更新人登录名称*/
private java.lang.String updateBy;
/**所属部门*/
private java.lang.String sysOrgCode;
/**所属公司*/
private java.lang.String sysCompanyCode;
/**创建日期*/
private java.util.Date createDate;
/**更新日期*/
private java.util.Date updateDate;
/**数据源名称*/
private java.lang.String dbName;
/**数据源类型*/
private java.lang.String dbType;
/**
/**数据库表名*/
private java.lang.String dbTableName;
/**动态查询SQL*/
private java.lang.String dbDynSql;
/**主键字段*/
private java.lang.String autoFormId;
/**动态数据源【支持扩数据库报表:暂时未实现】*/
private java.lang.String dbKey;
/**填报数据源*/
private java.lang.String tbDbKey;
/**填报数据表*/
private java.lang.String tbDbTableName;
private String dbChName;
/**
*: java.lang.String
*@return: java.lang.String
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public java.lang.String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(java.lang.String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_NAME",nullable=true,length=50)
public java.lang.String getCreateName(){
return this.createName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateName(java.lang.String createName){
this.createName = createName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_BY",nullable=true,length=50)
public java.lang.String getCreateBy(){
return this.createBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateBy(java.lang.String createBy){
this.createBy = createBy;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_NAME",nullable=true,length=50)
public java.lang.String getUpdateName(){
return this.updateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateName(java.lang.String updateName){
this.updateName = updateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_BY",nullable=true,length=50)
public java.lang.String getUpdateBy(){
return this.updateBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateBy(java.lang.String updateBy){
this.updateBy = updateBy;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_ORG_CODE",nullable=true,length=50)
public java.lang.String getSysOrgCode(){
return this.sysOrgCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysOrgCode(java.lang.String sysOrgCode){
this.sysOrgCode = sysOrgCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_COMPANY_CODE",nullable=true,length=50)
public java.lang.String getSysCompanyCode(){
return this.sysCompanyCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysCompanyCode(java.lang.String sysCompanyCode){
this.sysCompanyCode = sysCompanyCode;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="CREATE_DATE",nullable=true,length=20)
public java.util.Date getCreateDate(){
return this.createDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setCreateDate(java.util.Date createDate){
this.createDate = createDate;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="UPDATE_DATE",nullable=true,length=20)
public java.util.Date getUpdateDate(){
return this.updateDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setUpdateDate(java.util.Date updateDate){
this.updateDate = updateDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="DB_NAME",nullable=true,length=32)
public java.lang.String getDbName(){
return this.dbName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setDbName(java.lang.String dbName){
this.dbName = dbName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="DB_TYPE",nullable=true,length=32)
public java.lang.String getDbType(){
return this.dbType;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setDbType(java.lang.String dbType){
this.dbType = dbType;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="DB_TABLE_NAME",nullable=true,length=32)
public java.lang.String getDbTableName(){
return this.dbTableName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setDbTableName(java.lang.String dbTableName){
this.dbTableName = dbTableName;
}
/**
*: java.lang.String
*@return: java.lang.String SQL
*/
@Column(name ="DB_DYN_SQL",nullable=true,length=500)
public java.lang.String getDbDynSql(){
return this.dbDynSql;
}
/**
*: java.lang.String
*@param: java.lang.String SQL
*/
public void setDbDynSql(java.lang.String dbDynSql){
this.dbDynSql = dbDynSql;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="AUTO_FORM_ID",nullable=true,length=32)
public java.lang.String getAutoFormId(){
return this.autoFormId;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setAutoFormId(java.lang.String autoFormId){
this.autoFormId = autoFormId;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="db_key",nullable=true,length=32)
public java.lang.String getDbKey() {
return dbKey;
}
public void setDbKey(java.lang.String dbKey) {
this.dbKey = dbKey;
}
public void setTbDbKey(java.lang.String tbDbKey) {
this.tbDbKey = tbDbKey;
}
@Column(name ="tb_db_key",nullable=true,length=32)
public java.lang.String getTbDbKey() {
return tbDbKey;
}
public void setTbDbTableName(java.lang.String tbDbTableName) {
this.tbDbTableName = tbDbTableName;
}
@Column(name ="tb_db_table_name",nullable=true,length=32)
public java.lang.String getTbDbTableName() {
return tbDbTableName;
}
@Column(name ="DB_CH_NAME",nullable=true,length=32)
public String getDbChName() {
return dbChName;
}
public void setDbChName(String dbChName) {
this.dbChName = dbChName;
}
}

@ -0,0 +1,246 @@
package org.jeecgframework.web.cgform.entity.autoform;
import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.xml.soap.Text;
import java.sql.Blob;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.SequenceGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-17 19:36:58
* @version V1.0
*
*/
@Entity
@Table(name = "auto_form_db_field", schema = "")
@SuppressWarnings("serial")
public class AutoFormDbFieldEntity implements java.io.Serializable {
/**主键*/
private java.lang.String id;
/**创建人名称*/
private java.lang.String createName;
/**创建人登录名称*/
private java.lang.String createBy;
/**创建日期*/
private java.util.Date createDate;
/**更新人名称*/
private java.lang.String updateName;
/**更新人登录名称*/
private java.lang.String updateBy;
/**更新日期*/
private java.util.Date updateDate;
/**所属部门*/
private java.lang.String sysOrgCode;
/**所属公司*/
private java.lang.String sysCompanyCode;
/**数据源ID*/
private java.lang.String autoFormDbId;
/**字段名*/
@Excel(name="字段名")
private java.lang.String fieldName;
@Excel(name="字段文本")
private String fieldText;
/**
*: java.lang.String
*@return: java.lang.String
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public java.lang.String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(java.lang.String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_NAME",nullable=true,length=50)
public java.lang.String getCreateName(){
return this.createName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateName(java.lang.String createName){
this.createName = createName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_BY",nullable=true,length=50)
public java.lang.String getCreateBy(){
return this.createBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateBy(java.lang.String createBy){
this.createBy = createBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="CREATE_DATE",nullable=true,length=20)
public java.util.Date getCreateDate(){
return this.createDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setCreateDate(java.util.Date createDate){
this.createDate = createDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_NAME",nullable=true,length=50)
public java.lang.String getUpdateName(){
return this.updateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateName(java.lang.String updateName){
this.updateName = updateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_BY",nullable=true,length=50)
public java.lang.String getUpdateBy(){
return this.updateBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateBy(java.lang.String updateBy){
this.updateBy = updateBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="UPDATE_DATE",nullable=true,length=20)
public java.util.Date getUpdateDate(){
return this.updateDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setUpdateDate(java.util.Date updateDate){
this.updateDate = updateDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_ORG_CODE",nullable=true,length=50)
public java.lang.String getSysOrgCode(){
return this.sysOrgCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysOrgCode(java.lang.String sysOrgCode){
this.sysOrgCode = sysOrgCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_COMPANY_CODE",nullable=true,length=50)
public java.lang.String getSysCompanyCode(){
return this.sysCompanyCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysCompanyCode(java.lang.String sysCompanyCode){
this.sysCompanyCode = sysCompanyCode;
}
/**
*: java.lang.String
*@return: java.lang.String ID
*/
@Column(name ="AUTO_FORM_DB_ID",nullable=true,length=32)
public java.lang.String getAutoFormDbId(){
return this.autoFormDbId;
}
/**
*: java.lang.String
*@param: java.lang.String ID
*/
public void setAutoFormDbId(java.lang.String autoFormDbId){
this.autoFormDbId = autoFormDbId;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FIELD_NAME",nullable=true,length=32)
public java.lang.String getFieldName(){
return this.fieldName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFieldName(java.lang.String fieldName){
this.fieldName = fieldName;
}
@Column(name ="FIELD_Text",nullable=true,length=50)
public String getFieldText() {
return fieldText;
}
public void setFieldText(String fieldText) {
this.fieldText = fieldText;
}
}

@ -0,0 +1,280 @@
package org.jeecgframework.web.cgform.entity.autoform;
import java.util.ArrayList;
import java.util.List;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-17 19:36:59
* @version V1.0
*
*/
public class AutoFormDbPage implements java.io.Serializable {
/**保存-表单数据源属性*/
private List<AutoFormDbFieldEntity> autoFormDbFieldList = new ArrayList<AutoFormDbFieldEntity>();
public List<AutoFormDbFieldEntity> getAutoFormDbFieldList() {
return autoFormDbFieldList;
}
public void setAutoFormDbFieldList(List<AutoFormDbFieldEntity> autoFormDbFieldList) {
this.autoFormDbFieldList = autoFormDbFieldList;
}
/**保存-表单参数*/
private List<AutoFormParamEntity> autoFormParamList = new ArrayList<AutoFormParamEntity>();
public List<AutoFormParamEntity> getAutoFormParamList() {
return autoFormParamList;
}
public void setAutoFormParamList(List<AutoFormParamEntity> autoFormParamList) {
this.autoFormParamList = autoFormParamList;
}
/**主键*/
private java.lang.String id;
/**创建人名称*/
private java.lang.String createName;
/**创建人登录名称*/
private java.lang.String createBy;
/**更新人名称*/
private java.lang.String updateName;
/**更新人登录名称*/
private java.lang.String updateBy;
/**所属部门*/
private java.lang.String sysOrgCode;
/**所属公司*/
private java.lang.String sysCompanyCode;
/**创建日期*/
private java.util.Date createDate;
/**更新日期*/
private java.util.Date updateDate;
/**数据源名称*/
private java.lang.String dbName;
/**数据源类型*/
private java.lang.String dbType;
/**数据库表名*/
private java.lang.String dbTableName;
/**动态查询SQL*/
private java.lang.String dbDynSql;
/**主键字段*/
private java.lang.String autoFormId;
/**动态数据源名称*/
private java.lang.String dbKey;
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(java.lang.String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getCreateName(){
return this.createName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateName(java.lang.String createName){
this.createName = createName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getCreateBy(){
return this.createBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateBy(java.lang.String createBy){
this.createBy = createBy;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getUpdateName(){
return this.updateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateName(java.lang.String updateName){
this.updateName = updateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getUpdateBy(){
return this.updateBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateBy(java.lang.String updateBy){
this.updateBy = updateBy;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getSysOrgCode(){
return this.sysOrgCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysOrgCode(java.lang.String sysOrgCode){
this.sysOrgCode = sysOrgCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getSysCompanyCode(){
return this.sysCompanyCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysCompanyCode(java.lang.String sysCompanyCode){
this.sysCompanyCode = sysCompanyCode;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
public java.util.Date getCreateDate(){
return this.createDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setCreateDate(java.util.Date createDate){
this.createDate = createDate;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
public java.util.Date getUpdateDate(){
return this.updateDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setUpdateDate(java.util.Date updateDate){
this.updateDate = updateDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getDbName(){
return this.dbName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setDbName(java.lang.String dbName){
this.dbName = dbName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getDbType(){
return this.dbType;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setDbType(java.lang.String dbType){
this.dbType = dbType;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getDbTableName(){
return this.dbTableName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setDbTableName(java.lang.String dbTableName){
this.dbTableName = dbTableName;
}
/**
*: java.lang.String
*@return: java.lang.String SQL
*/
public java.lang.String getDbDynSql(){
return this.dbDynSql;
}
/**
*: java.lang.String
*@param: java.lang.String SQL
*/
public void setDbDynSql(java.lang.String dbDynSql){
this.dbDynSql = dbDynSql;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public java.lang.String getAutoFormId(){
return this.autoFormId;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setAutoFormId(java.lang.String autoFormId){
this.autoFormId = autoFormId;
}
public java.lang.String getDbKey() {
return dbKey;
}
public void setDbKey(java.lang.String dbKey) {
this.dbKey = dbKey;
}
}

@ -0,0 +1,320 @@
package org.jeecgframework.web.cgform.entity.autoform;
import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.xml.soap.Text;
import java.sql.Blob;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.SequenceGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-15 20:29:59
* @version V1.0
*
*/
@Entity
@Table(name = "auto_form", schema = "")
@SuppressWarnings("serial")
public class AutoFormEntity implements java.io.Serializable {
/**主键*/
private java.lang.String id;
/**表单名称*/
@Excel(name="表单名称")
private java.lang.String formName;
/**表单描述*/
@Excel(name="表单描述")
private java.lang.String formDesc;
/**模板样式*/
@Excel(name="模板样式")
private java.lang.String formStyleId;
/**表单编辑器文本*/
@Excel(name="表单内容")
private java.lang.String formContent;
/**创建人名称*/
private java.lang.String createName;
/**创建人登录名称*/
private java.lang.String createBy;
/**创建日期*/
private java.util.Date createDate;
/**更新人名称*/
private java.lang.String updateName;
/**更新人登录名称*/
private java.lang.String updateBy;
/**更新日期*/
private java.util.Date updateDate;
/**所属部门*/
@Excel(name="所属部门")
private java.lang.String sysOrgCode;
/**所属公司*/
@Excel(name="所属公司")
private java.lang.String sysCompanyCode;
private java.lang.String formParse;
/** 表单数据源ID **/
private java.lang.String dbId;
private java.lang.String autoFormId;
private String mainTableSource;
/**
*: java.lang.String
*@return: java.lang.String
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public java.lang.String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(java.lang.String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FORM_NAME",nullable=true,length=100)
public java.lang.String getFormName(){
return this.formName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFormName(java.lang.String formName){
this.formName = formName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FORM_DESC",nullable=true,length=200)
public java.lang.String getFormDesc(){
return this.formDesc;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFormDesc(java.lang.String formDesc){
this.formDesc = formDesc;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FORM_STYLE_ID",nullable=true,length=36)
public java.lang.String getFormStyleId(){
return this.formStyleId;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFormStyleId(java.lang.String formStyleId){
this.formStyleId = formStyleId;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FORM_CONTENT",nullable=true)
public java.lang.String getFormContent(){
return this.formContent;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFormContent(java.lang.String formContent){
this.formContent = formContent;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_NAME",nullable=true,length=50)
public java.lang.String getCreateName(){
return this.createName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateName(java.lang.String createName){
this.createName = createName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_BY",nullable=true,length=50)
public java.lang.String getCreateBy(){
return this.createBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateBy(java.lang.String createBy){
this.createBy = createBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="CREATE_DATE",nullable=true,length=20)
public java.util.Date getCreateDate(){
return this.createDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setCreateDate(java.util.Date createDate){
this.createDate = createDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_NAME",nullable=true,length=50)
public java.lang.String getUpdateName(){
return this.updateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateName(java.lang.String updateName){
this.updateName = updateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_BY",nullable=true,length=50)
public java.lang.String getUpdateBy(){
return this.updateBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateBy(java.lang.String updateBy){
this.updateBy = updateBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="UPDATE_DATE",nullable=true,length=20)
public java.util.Date getUpdateDate(){
return this.updateDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setUpdateDate(java.util.Date updateDate){
this.updateDate = updateDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_ORG_CODE",nullable=true,length=50)
public java.lang.String getSysOrgCode(){
return this.sysOrgCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysOrgCode(java.lang.String sysOrgCode){
this.sysOrgCode = sysOrgCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_COMPANY_CODE",nullable=true,length=50)
public java.lang.String getSysCompanyCode(){
return this.sysCompanyCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysCompanyCode(java.lang.String sysCompanyCode){
this.sysCompanyCode = sysCompanyCode;
}
@Transient
public java.lang.String getDbId() {
return dbId;
}
public void setDbId(java.lang.String dbId) {
this.dbId = dbId;
}
@Column(name ="FORM_PARSE",nullable=true)
public java.lang.String getFormParse() {
return formParse;
}
public void setFormParse(java.lang.String formParse) {
this.formParse = formParse;
}
@Transient
public java.lang.String getAutoFormId() {
return autoFormId;
}
public void setAutoFormId(java.lang.String autoFormId) {
this.autoFormId = autoFormId;
}
@Column(name ="main_table_source",nullable=true)
public String getMainTableSource() {
return mainTableSource;
}
public void setMainTableSource(String mainTableSource) {
this.mainTableSource = mainTableSource;
}
}

@ -0,0 +1,285 @@
package org.jeecgframework.web.cgform.entity.autoform;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-17 19:36:58
* @version V1.0
*
*/
@Entity
@Table(name = "auto_form_param", schema = "")
@SuppressWarnings("serial")
public class AutoFormParamEntity implements java.io.Serializable {
/**主键*/
private java.lang.String id;
/**创建人名称*/
private java.lang.String createName;
/**创建人登录名称*/
private java.lang.String createBy;
/**创建日期*/
private java.util.Date createDate;
/**更新人名称*/
private java.lang.String updateName;
/**更新人登录名称*/
private java.lang.String updateBy;
/**更新日期*/
private java.util.Date updateDate;
/**所属部门*/
private java.lang.String sysOrgCode;
/**所属公司*/
private java.lang.String sysCompanyCode;
/**参数名称*/
@Excel(name="参数名称")
private java.lang.String paramName;
/**参数说明*/
@Excel(name="参数说明")
private java.lang.String paramDesc;
/**数值*/
@Excel(name="数值")
private java.lang.String paramValue;
/**排序*/
@Excel(name="排序")
private java.lang.Integer seq;
/**数据源ID*/
@Excel(name="数据源ID")
private java.lang.String autoFormDbId;
/**
*: java.lang.String
*@return: java.lang.String
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public java.lang.String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(java.lang.String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_NAME",nullable=true,length=50)
public java.lang.String getCreateName(){
return this.createName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateName(java.lang.String createName){
this.createName = createName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_BY",nullable=true,length=50)
public java.lang.String getCreateBy(){
return this.createBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateBy(java.lang.String createBy){
this.createBy = createBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="CREATE_DATE",nullable=true,length=20)
public java.util.Date getCreateDate(){
return this.createDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setCreateDate(java.util.Date createDate){
this.createDate = createDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_NAME",nullable=true,length=50)
public java.lang.String getUpdateName(){
return this.updateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateName(java.lang.String updateName){
this.updateName = updateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_BY",nullable=true,length=50)
public java.lang.String getUpdateBy(){
return this.updateBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateBy(java.lang.String updateBy){
this.updateBy = updateBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="UPDATE_DATE",nullable=true,length=20)
public java.util.Date getUpdateDate(){
return this.updateDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setUpdateDate(java.util.Date updateDate){
this.updateDate = updateDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_ORG_CODE",nullable=true,length=50)
public java.lang.String getSysOrgCode(){
return this.sysOrgCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysOrgCode(java.lang.String sysOrgCode){
this.sysOrgCode = sysOrgCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_COMPANY_CODE",nullable=true,length=50)
public java.lang.String getSysCompanyCode(){
return this.sysCompanyCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysCompanyCode(java.lang.String sysCompanyCode){
this.sysCompanyCode = sysCompanyCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="PARAM_NAME",nullable=false,length=32)
public java.lang.String getParamName(){
return this.paramName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setParamName(java.lang.String paramName){
this.paramName = paramName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="PARAM_DESC",nullable=true,length=32)
public java.lang.String getParamDesc(){
return this.paramDesc;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setParamDesc(java.lang.String paramDesc){
this.paramDesc = paramDesc;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="PARAM_VALUE",nullable=true,length=32)
public java.lang.String getParamValue(){
return this.paramValue;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setParamValue(java.lang.String paramValue){
this.paramValue = paramValue;
}
/**
*: java.lang.Integer
*@return: java.lang.Integer
*/
@Column(name ="SEQ",nullable=true,length=32)
public java.lang.Integer getSeq(){
return this.seq;
}
/**
*: java.lang.Integer
*@param: java.lang.Integer
*/
public void setSeq(java.lang.Integer seq){
this.seq = seq;
}
/**
*: java.lang.String
*@return: java.lang.String ID
*/
@Column(name ="AUTO_FORM_DB_ID",nullable=true,length=32)
public java.lang.String getAutoFormDbId(){
return this.autoFormDbId;
}
/**
*: java.lang.String
*@param: java.lang.String ID
*/
public void setAutoFormDbId(java.lang.String autoFormDbId){
this.autoFormDbId = autoFormDbId;
}
}

@ -0,0 +1,237 @@
package org.jeecgframework.web.cgform.entity.autoform;
import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.xml.soap.Text;
import java.sql.Blob;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.SequenceGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-15 20:58:08
* @version V1.0
*
*/
@Entity
@Table(name = "auto_form_style", schema = "")
@SuppressWarnings("serial")
public class AutoFormStyleEntity implements java.io.Serializable {
/**主键*/
private java.lang.String id;
/**表单描述*/
@Excel(name="表单描述")
private java.lang.String styleDesc;
/**样式内容*/
@Excel(name="样式内容")
private java.lang.String styleContent;
/**创建人名称*/
private java.lang.String createName;
/**创建人登录名称*/
private java.lang.String createBy;
/**创建日期*/
private java.util.Date createDate;
/**更新人名称*/
private java.lang.String updateName;
/**更新人登录名称*/
private java.lang.String updateBy;
/**更新日期*/
private java.util.Date updateDate;
/**所属部门*/
private java.lang.String sysOrgCode;
/**所属公司*/
private java.lang.String sysCompanyCode;
/**
*: java.lang.String
*@return: java.lang.String
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public java.lang.String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(java.lang.String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="STYLE_DESC",nullable=true,length=200)
public java.lang.String getStyleDesc(){
return this.styleDesc;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setStyleDesc(java.lang.String styleDesc){
this.styleDesc = styleDesc;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="STYLE_CONTENT",nullable=true)
public java.lang.String getStyleContent(){
return this.styleContent;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setStyleContent(java.lang.String styleContent){
this.styleContent = styleContent;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_NAME",nullable=true,length=50)
public java.lang.String getCreateName(){
return this.createName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateName(java.lang.String createName){
this.createName = createName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_BY",nullable=true,length=50)
public java.lang.String getCreateBy(){
return this.createBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateBy(java.lang.String createBy){
this.createBy = createBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="CREATE_DATE",nullable=true,length=20)
public java.util.Date getCreateDate(){
return this.createDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setCreateDate(java.util.Date createDate){
this.createDate = createDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_NAME",nullable=true,length=50)
public java.lang.String getUpdateName(){
return this.updateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateName(java.lang.String updateName){
this.updateName = updateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_BY",nullable=true,length=50)
public java.lang.String getUpdateBy(){
return this.updateBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateBy(java.lang.String updateBy){
this.updateBy = updateBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="UPDATE_DATE",nullable=true,length=20)
public java.util.Date getUpdateDate(){
return this.updateDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setUpdateDate(java.util.Date updateDate){
this.updateDate = updateDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_ORG_CODE",nullable=true,length=50)
public java.lang.String getSysOrgCode(){
return this.sysOrgCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysOrgCode(java.lang.String sysOrgCode){
this.sysOrgCode = sysOrgCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_COMPANY_CODE",nullable=true,length=50)
public java.lang.String getSysCompanyCode(){
return this.sysCompanyCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysCompanyCode(java.lang.String sysCompanyCode){
this.sysCompanyCode = sysCompanyCode;
}
}

@ -94,6 +94,8 @@ public class CgFormFieldEntity implements java.io.Serializable {
private java.lang.String oldFieldName;
/**字段默认值*/
private java.lang.String fieldDefault;
/**扩展参数**/
private java.lang.String extendJson;
/**
*: java.lang.String
@ -547,6 +549,12 @@ public class CgFormFieldEntity implements java.io.Serializable {
public void setFieldDefault(java.lang.String fieldDefault) {
this.fieldDefault = fieldDefault;
}
@Column(name ="extend_json",nullable=true,length=500)
public java.lang.String getExtendJson() {
return extendJson;
}
public void setExtendJson(java.lang.String extendJson) {
this.extendJson = extendJson;
}
}

@ -83,7 +83,10 @@ public class CgFormHeadEntity implements java.io.Serializable {
private java.lang.String treeIdFieldname;
/**树形列表 菜单列名*/
private java.lang.String treeFieldname;
/**表单分类*/
private java.lang.String jformCategory;
/**表单模板*/
private String formTemplate;
/**
*: java.lang.String
*@return: java.lang.String id
@ -431,4 +434,24 @@ public class CgFormHeadEntity implements java.io.Serializable {
public void setTreeFieldname(java.lang.String treeFieldname) {
this.treeFieldname = treeFieldname;
}
/**
*@return: INteger
*/
@Column(name ="jform_category",nullable=false,length=50)
public java.lang.String getJformCategory() {
return jformCategory;
}
public void setJformCategory(java.lang.String jformCategory) {
this.jformCategory = jformCategory;
}
@Column(name ="form_template",length=50)
public String getFormTemplate() {
return formTemplate;
}
public void setFormTemplate(String formTemplate) {
this.formTemplate = formTemplate;
}
}

@ -0,0 +1,222 @@
package org.jeecgframework.web.cgform.entity.config;
import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.xml.soap.Text;
import java.sql.Blob;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
import javax.persistence.SequenceGenerator;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-10 17:19:07
* @version V1.0
*
*/
@Entity
@Table(name = "jform_graphreport_head", schema = "")
@SuppressWarnings("serial")
public class JformGraphreportHeadEntity implements java.io.Serializable {
/**id*/
private String id;
/**名称*/
@Excel(name = "名称")
private String name;
/**编码*/
@Excel(name = "编码")
private String code;
/**查询数据SQL*/
@Excel(name = "查询数据SQL")
private String cgrSql;
/**描述*/
@Excel(name = "描述")
private String content;
/**y轴文字*/
@Excel(name = "y轴文字")
private String ytext;
/**x轴数据*/
@Excel(name = "x轴数据")
private String categories;
/**是否显示明细*/
@Excel(name = "是否显示明细")
private String isShowList;
/**扩展JS*/
@Excel(name = "扩展JS")
private String xpageJs;
/**
*: java.lang.String
*@return: java.lang.String id
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="id",nullable=false,length=36)
public String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String id
*/
public void setId(String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="name",nullable=false,length=100)
public String getName(){
return this.name;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setName(String name){
this.name = name;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="code",nullable=false,length=36)
public String getCode(){
return this.code;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCode(String code){
this.code = code;
}
/**
*: java.lang.String
*@return: java.lang.String SQL
*/
@Column(name ="cgr_sql",nullable=false,length=2000)
public String getCgrSql(){
return this.cgrSql;
}
/**
*: java.lang.String
*@param: java.lang.String SQL
*/
public void setCgrSql(String cgrSql){
this.cgrSql = cgrSql;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="content",nullable=false,length=1000)
public String getContent(){
return this.content;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setContent(String content){
this.content = content;
}
/**
*: java.lang.String
*@return: java.lang.String y
*/
@Column(name ="ytext",nullable=false,length=100)
public String getYtext(){
return this.ytext;
}
/**
*: java.lang.String
*@param: java.lang.String y
*/
public void setYtext(String ytext){
this.ytext = ytext;
}
/**
*: java.lang.String
*@return: java.lang.String x
*/
@Column(name ="categories",nullable=false,length=1000)
public String getCategories(){
return this.categories;
}
/**
*: java.lang.String
*@param: java.lang.String x
*/
public void setCategories(String categories){
this.categories = categories;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="is_show_list",nullable=true,length=5)
public String getIsShowList(){
return this.isShowList;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setIsShowList(String isShowList){
this.isShowList = isShowList;
}
/**
*: javax.xml.soap.Text
*@return: javax.xml.soap.Text JS
*/
@Column(name ="x_page_js",nullable=true,length=1000)
public String getXpageJs() {
return xpageJs;
}
public void setXpageJs(String xpageJs) {
this.xpageJs = xpageJs;
}
}

@ -0,0 +1,213 @@
package org.jeecgframework.web.cgform.entity.config;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
import org.jeecgframework.poi.excel.annotation.ExcelIgnore;
import org.jeecgframework.poi.excel.annotation.ExcelTarget;
import java.util.ArrayList;
import java.util.List;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-10 17:19:07
* @version V1.0
*
*/
@ExcelTarget("jformGraphreportHeadPage")
public class JformGraphreportHeadPage implements java.io.Serializable {
/**保存-子表*/
@ExcelCollection(name="图表配置",orderNum="9")
private List<JformGraphreportItemEntity> jformGraphreportItemList = new ArrayList<JformGraphreportItemEntity>();
public List<JformGraphreportItemEntity> getJformGraphreportItemList() {
return jformGraphreportItemList;
}
public void setJformGraphreportItemList(List<JformGraphreportItemEntity> jformGraphreportItemList) {
this.jformGraphreportItemList = jformGraphreportItemList;
}
@ExcelEntity
private JformGraphreportHeadEntity jformGraphreportHeadEntity;
/**id*/
@ExcelIgnore
private String id;
/**名称*/
@ExcelIgnore
private String name;
/**编码*/
@ExcelIgnore
private String code;
/**查询数据SQL*/
@ExcelIgnore
private String cgrSql;
/**描述*/
@ExcelIgnore
private String content;
/**y轴文字*/
@ExcelIgnore
private String ytext;
/**x轴数据*/
@ExcelIgnore
private String categories;
/**是否显示明细*/
@ExcelIgnore
private String isShowList;
/**扩展JS*/
@ExcelIgnore
private String xPageJs;
/**
*: java.lang.String
*@return: java.lang.String id
*/
public String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String id
*/
public void setId(String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public String getName(){
return this.name;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setName(String name){
this.name = name;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public String getCode(){
return this.code;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCode(String code){
this.code = code;
}
/**
*: java.lang.String
*@return: java.lang.String SQL
*/
public String getCgrSql(){
return this.cgrSql;
}
/**
*: java.lang.String
*@param: java.lang.String SQL
*/
public void setCgrSql(String cgrSql){
this.cgrSql = cgrSql;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public String getContent(){
return this.content;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setContent(String content){
this.content = content;
}
/**
*: java.lang.String
*@return: java.lang.String y
*/
public String getYtext(){
return this.ytext;
}
/**
*: java.lang.String
*@param: java.lang.String y
*/
public void setYtext(String ytext){
this.ytext = ytext;
}
/**
*: java.lang.String
*@return: java.lang.String x
*/
public String getCategories(){
return this.categories;
}
/**
*: java.lang.String
*@param: java.lang.String x
*/
public void setCategories(String categories){
this.categories = categories;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
public String getIsShowList(){
return this.isShowList;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setIsShowList(String isShowList){
this.isShowList = isShowList;
}
/**
*: javax.xml.soap.Text
*@return: javax.xml.soap.Text JS
*/
public String getXPageJs(){
return this.xPageJs;
}
/**
*: javax.xml.soap.Text
*@param: javax.xml.soap.Text JS
*/
public void setXPageJs(String xPageJs){
this.xPageJs = xPageJs;
}
public JformGraphreportHeadPage() {
}
public JformGraphreportHeadEntity getJformGraphreportHeadEntity() {
return jformGraphreportHeadEntity;
}
public void setJformGraphreportHeadEntity(JformGraphreportHeadEntity jformGraphreportHeadEntity) {
this.jformGraphreportHeadEntity = jformGraphreportHeadEntity;
}
public JformGraphreportHeadPage(List<JformGraphreportItemEntity> jformGraphreportItemList, JformGraphreportHeadEntity jformGraphreportHeadEntity) {
this.jformGraphreportItemList = jformGraphreportItemList;
this.jformGraphreportHeadEntity = jformGraphreportHeadEntity;
}
}

@ -0,0 +1,339 @@
package org.jeecgframework.web.cgform.entity.config;
import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.xml.soap.Text;
import java.sql.Blob;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.SequenceGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-10 17:19:06
* @version V1.0
*
*/
@Entity
@Table(name = "jform_graphreport_item", schema = "")
@SuppressWarnings("serial")
public class JformGraphreportItemEntity implements java.io.Serializable {
/**id*/
private String id;
/**字段名*/
@Excel(name="字段名")
private String fieldName;
/**字段文本*/
@Excel(name="字段文本")
private String fieldTxt;
/**排序*/
@Excel(name="排序")
private Integer orderNum;
/**字段类型*/
@Excel(name="字段类型")
private String fieldType;
/**是否显示*/
@Excel(name="是否显示")
private String isShow;
/**是否查询*/
@Excel(name="是否查询")
private String searchFlag;
/**查询模式*/
@Excel(name="查询模式")
private String searchMode;
/**字典Code*/
@Excel(name="字典Code")
private String dictCode;
/**显示图表*/
@Excel(name="显示图表")
private String isGraph;
/**图表类型*/
@Excel(name="图表类型")
private String graphType;
/**图表名称*/
@Excel(name="图表名称")
private String graphName;
/**标签名称*/
@Excel(name="标签名称")
private String tabName;
/**字段href*/
@Excel(name="字段href")
private String fieldHref;
/**取值表达式*/
@Excel(name="取值表达式")
private String replaceVa;
/**cgreportHeadId*/
private String cgreportHeadId;
/**
*: java.lang.String
*@return: java.lang.String id
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String id
*/
public void setId(String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FIELD_NAME",nullable=true,length=36)
public String getFieldName(){
return this.fieldName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFieldName(String fieldName){
this.fieldName = fieldName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FIELD_TXT",nullable=true,length=1000)
public String getFieldTxt(){
return this.fieldTxt;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFieldTxt(String fieldTxt){
this.fieldTxt = fieldTxt;
}
/**
*: java.lang.Integer
*@return: java.lang.Integer
*/
@Column(name ="ORDER_NUM",nullable=true,length=10)
public Integer getOrderNum(){
return this.orderNum;
}
/**
*: java.lang.Integer
*@param: java.lang.Integer
*/
public void setOrderNum(Integer orderNum){
this.orderNum = orderNum;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="FIELD_TYPE",nullable=false,length=10)
public String getFieldType(){
return this.fieldType;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setFieldType(String fieldType){
this.fieldType = fieldType;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="IS_SHOW",nullable=true,length=5)
public String getIsShow(){
return this.isShow;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setIsShow(String isShow){
this.isShow = isShow;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SEARCH_FLAG",nullable=true,length=2)
public String getSearchFlag(){
return this.searchFlag;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSearchFlag(String searchFlag){
this.searchFlag = searchFlag;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SEARCH_MODE",nullable=true,length=10)
public String getSearchMode(){
return this.searchMode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSearchMode(String searchMode){
this.searchMode = searchMode;
}
/**
*: java.lang.String
*@return: java.lang.String Code
*/
@Column(name ="DICT_CODE",nullable=true,length=500)
public String getDictCode(){
return this.dictCode;
}
/**
*: java.lang.String
*@param: java.lang.String Code
*/
public void setDictCode(String dictCode){
this.dictCode = dictCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="IS_GRAPH",nullable=true,length=5)
public String getIsGraph(){
return this.isGraph;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setIsGraph(String isGraph){
this.isGraph = isGraph;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="GRAPH_TYPE",nullable=true,length=50)
public String getGraphType(){
return this.graphType;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setGraphType(String graphType){
this.graphType = graphType;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="GRAPH_NAME",nullable=true,length=100)
public String getGraphName(){
return this.graphName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setGraphName(String graphName){
this.graphName = graphName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="TAB_NAME",nullable=true,length=50)
public String getTabName(){
return this.tabName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setTabName(String tabName){
this.tabName = tabName;
}
/**
*: java.lang.String
*@return: java.lang.String href
*/
@Column(name ="FIELD_HREF",nullable=true,length=120)
public String getFieldHref(){
return this.fieldHref;
}
/**
*: java.lang.String
*@param: java.lang.String href
*/
public void setFieldHref(String fieldHref){
this.fieldHref = fieldHref;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="REPLACE_VA",nullable=true,length=36)
public String getReplaceVa(){
return this.replaceVa;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setReplaceVa(String replaceVa){
this.replaceVa = replaceVa;
}
/**
*: java.lang.String
*@return: java.lang.String cgreportHeadId
*/
@Column(name ="CGREPORT_HEAD_ID",nullable=true,length=36)
public String getCgreportHeadId(){
return this.cgreportHeadId;
}
/**
*: java.lang.String
*@param: java.lang.String cgreportHeadId
*/
public void setCgreportHeadId(String cgreportHeadId){
this.cgreportHeadId = cgreportHeadId;
}
}

@ -0,0 +1,137 @@
package org.jeecgframework.web.cgform.entity.enhance;
import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.xml.soap.Text;
import java.sql.Blob;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.SequenceGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Title: Entity
* @Description: cgform_enhance_java
* @author onlineGenerator
* @date 2015-06-29 13:48:27
* @version V1.0
*
*/
@Entity
@Table(name = "cgform_enhance_java", schema = "")
@SuppressWarnings("serial")
public class CgformEnhanceJavaEntity implements java.io.Serializable {
/**主键*/
private java.lang.String id;
/**按纽编码*/
private java.lang.String buttonCode;
/**类型*/
@Excel(name="类型")
private java.lang.String cgJavaType;
/**数值*/
@Excel(name="数值")
private java.lang.String cgJavaValue;
/**表单ID*/
@Excel(name="表单ID")
private java.lang.String formId;
/**
*: java.lang.String
*@return: java.lang.String
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public java.lang.String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(java.lang.String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CG_JAVA_TYPE",nullable=true,length=32)
public java.lang.String getCgJavaType(){
return this.cgJavaType;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCgJavaType(java.lang.String cgJavaType){
this.cgJavaType = cgJavaType;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CG_JAVA_VALUE",nullable=false,length=200)
public java.lang.String getCgJavaValue(){
return this.cgJavaValue;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCgJavaValue(java.lang.String cgJavaValue){
this.cgJavaValue = cgJavaValue;
}
/**
*: java.lang.String
*@return: java.lang.String ID
*/
@Column(name ="FORM_ID",nullable=false,length=32)
public java.lang.String getFormId(){
return this.formId;
}
/**
*: java.lang.String
*@param: java.lang.String ID
*/
public void setFormId(java.lang.String formId){
this.formId = formId;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="BUTTON_CODE",nullable=true,length=50)
public java.lang.String getButtonCode() {
return buttonCode;
}
public void setButtonCode(java.lang.String buttonCode) {
this.buttonCode = buttonCode;
}
@Override
public String toString() {
return "CgformEnhanceJavaEntity [id=" + id + ", buttonCode="
+ buttonCode + ", cgJavaType=" + cgJavaType + ", cgJavaValue="
+ cgJavaValue + ", formId=" + formId + "]";
}
}

@ -1,9 +1,6 @@
package org.jeecgframework.web.cgform.entity.enhance;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.*;
import javax.persistence.Column;
import javax.persistence.Entity;
@ -129,7 +126,10 @@ public class CgformEnhanceJsEntity implements java.io.Serializable {
@Transient
public String getCgJsStr() {
if(cgJs!=null){
cgJsStr = new String(cgJs);
try{
cgJsStr = new String(cgJs,"utf-8");
}catch (Exception e){
}
}
return cgJsStr;
}
@ -137,7 +137,11 @@ public class CgformEnhanceJsEntity implements java.io.Serializable {
public void setCgJsStr(String cgJsStr) {
this.cgJsStr = cgJsStr;
if(cgJsStr!=null){
this.cgJs = cgJsStr.getBytes();
try {
this.cgJs = cgJsStr.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,356 @@
package org.jeecgframework.web.cgform.entity.template;
import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.persistence.*;
import javax.xml.soap.Text;
import java.sql.Blob;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Title: Entity
* @Description:
* @author onlineGenerator
* @date 2015-06-15 11:04:12
* @version V1.0
*
*/
@Entity
@Table(name = "cgform_template", schema = "")
@SuppressWarnings("serial")
public class CgformTemplateEntity implements java.io.Serializable {
/**主键*/
private String id;
/**创建人名称*/
private String createName;
/**创建人登录名称*/
private String createBy;
/**创建日期*/
private Date createDate;
/**更新人名称*/
private String updateName;
/**更新人登录名称*/
private String updateBy;
/**更新日期*/
private Date updateDate;
/**所属部门*/
private String sysOrgCode;
/**所属公司*/
private String sysCompanyCode;
/**模板名称*/
@Excel(name="模板名称")
private String templateName;
/**模板编码*/
@Excel(name="模板编码")
private String templateCode;
/**模板类型*/
@Excel(name="模板类型")
private String templateType;
/**是否共享*/
@Excel(name="是否共享")
private String templateShare;
/**预览图*/
@Excel(name="预览图")
private String templatePic;
/**模板描述*/
@Excel(name="模板描述")
private String templateComment;
private String templateZipName;
private String templateListName;
private String templateAddName;
private String templateUpdateName;
private String templateDetailName;
/**
*: java.lang.String
*@return: java.lang.String
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public String getId(){
return this.id;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setId(String id){
this.id = id;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_NAME",nullable=true,length=50)
public String getCreateName(){
return this.createName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateName(String createName){
this.createName = createName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="CREATE_BY",nullable=true,length=50)
public String getCreateBy(){
return this.createBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setCreateBy(String createBy){
this.createBy = createBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="CREATE_DATE",nullable=true,length=20)
public Date getCreateDate(){
return this.createDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setCreateDate(Date createDate){
this.createDate = createDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_NAME",nullable=true,length=50)
public String getUpdateName(){
return this.updateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateName(String updateName){
this.updateName = updateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="UPDATE_BY",nullable=true,length=50)
public String getUpdateBy(){
return this.updateBy;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setUpdateBy(String updateBy){
this.updateBy = updateBy;
}
/**
*: java.util.Date
*@return: java.util.Date
*/
@Column(name ="UPDATE_DATE",nullable=true,length=20)
public Date getUpdateDate(){
return this.updateDate;
}
/**
*: java.util.Date
*@param: java.util.Date
*/
public void setUpdateDate(Date updateDate){
this.updateDate = updateDate;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_ORG_CODE",nullable=true,length=50)
public String getSysOrgCode(){
return this.sysOrgCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysOrgCode(String sysOrgCode){
this.sysOrgCode = sysOrgCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="SYS_COMPANY_CODE",nullable=true,length=50)
public String getSysCompanyCode(){
return this.sysCompanyCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setSysCompanyCode(String sysCompanyCode){
this.sysCompanyCode = sysCompanyCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="TEMPLATE_NAME",nullable=true,length=100)
public String getTemplateName(){
return this.templateName;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setTemplateName(String templateName){
this.templateName = templateName;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="TEMPLATE_CODE",nullable=true,length=50)
public String getTemplateCode(){
return this.templateCode;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setTemplateCode(String templateCode){
this.templateCode = templateCode;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="TEMPLATE_TYPE",nullable=true,length=32)
public String getTemplateType(){
return this.templateType;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setTemplateType(String templateType){
this.templateType = templateType;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="TEMPLATE_SHARE",nullable=true,length=10)
public String getTemplateShare(){
return this.templateShare;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setTemplateShare(String templateShare){
this.templateShare = templateShare;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="TEMPLATE_PIC",nullable=true,length=100)
public String getTemplatePic(){
return this.templatePic;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setTemplatePic(String templatePic){
this.templatePic = templatePic;
}
/**
*: java.lang.String
*@return: java.lang.String
*/
@Column(name ="TEMPLATE_COMMENT",nullable=true,length=200)
public String getTemplateComment(){
return this.templateComment;
}
/**
*: java.lang.String
*@param: java.lang.String
*/
public void setTemplateComment(String templateComment){
this.templateComment = templateComment;
}
@Transient
public String getTemplateZipName() {
return templateZipName;
}
public void setTemplateZipName(String templateZipName) {
this.templateZipName = templateZipName;
}
@Column(name ="template_list_name",nullable=true,length=200)
public String getTemplateListName() {
return templateListName;
}
public void setTemplateListName(String templateListName) {
this.templateListName = templateListName;
}
@Column(name ="template_add_name",nullable=true,length=200)
public String getTemplateAddName() {
return templateAddName;
}
public void setTemplateAddName(String templateAddName) {
this.templateAddName = templateAddName;
}
@Column(name ="template_update_name",nullable=true,length=200)
public String getTemplateUpdateName() {
return templateUpdateName;
}
public void setTemplateUpdateName(String templateUpdateName) {
this.templateUpdateName = templateUpdateName;
}
@Column(name ="template_detail_name",nullable=true,length=200)
public String getTemplateDetailName() {
return templateDetailName;
}
public void setTemplateDetailName(String templateDetailName) {
this.templateDetailName = templateDetailName;
}
}

@ -0,0 +1,58 @@
package org.jeecgframework.web.cgform.service.autoform;
import java.util.List;
import org.jeecgframework.core.common.service.CommonService;
import org.jeecgframework.web.cgform.entity.autoform.AutoFormDbEntity;
import org.jeecgframework.web.cgform.entity.autoform.AutoFormDbFieldEntity;
import org.jeecgframework.web.cgform.entity.autoform.AutoFormParamEntity;
public interface AutoFormDbServiceI extends CommonService{
public <T> void delete(T entity);
/**
*
*
*/
public void addMain(AutoFormDbEntity autoFormDb,
List<AutoFormDbFieldEntity> autoFormDbFieldList,List<AutoFormParamEntity> autoFormParamList) ;
/**
*
*
*/
public void updateMain(AutoFormDbEntity autoFormDb,
List<AutoFormDbFieldEntity> autoFormDbFieldList,List<AutoFormParamEntity> autoFormParamList);
public void delMain (AutoFormDbEntity autoFormDb);
/**
* -sql-
* @param id
* @return
*/
public boolean doAddSql(AutoFormDbEntity t);
/**
* -sql-
* @param id
* @return
*/
public boolean doUpdateSql(AutoFormDbEntity t);
/**
* -sql-
* @param id
* @return
*/
public boolean doDelSql(AutoFormDbEntity t);
/**
* sql
* @param sql
* @return
*/
public List<String> getSqlFields(String sql);
/**
* sql
* @param sql
* @return
*/
public List<String> getSqlParams(String sql);
}

@ -0,0 +1,53 @@
package org.jeecgframework.web.cgform.service.autoform;
import org.jeecgframework.core.common.service.CommonService;
import org.jeecgframework.web.cgform.entity.autoform.AutoFormEntity;
import org.jeecgframework.web.cgform.exception.BusinessException;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
public interface AutoFormServiceI extends CommonService{
public <T> void delete(T entity);
public <T> Serializable save(T entity);
public <T> void saveOrUpdate(T entity);
/**
* -sql-
* @param id
* @return
*/
public boolean doAddSql(AutoFormEntity t);
/**
* -sql-
* @param id
* @return
*/
public boolean doUpdateSql(AutoFormEntity t);
/**
* -sql-
* @param id
* @return
*/
public boolean doDelSql(AutoFormEntity t);
/**
*
* @param formName
* @param dataMap
* @throws BusinessException
*/
public void doAddTable(String formName,Map<String,Map<String,Object>> dataMap) throws BusinessException ;
/**
*
* @param formName
* @param dataMap
* @throws BusinessException
*/
public String doUpdateTable(String formName,Map<String,Map<String,Object>> dataMap,Map<String, List<Map<String, Object>>> oldDataMap) throws BusinessException ;
}

@ -0,0 +1,34 @@
package org.jeecgframework.web.cgform.service.autoform;
import org.jeecgframework.core.common.service.CommonService;
import org.jeecgframework.web.cgform.entity.autoform.AutoFormStyleEntity;
import java.io.Serializable;
public interface AutoFormStyleServiceI extends CommonService{
public <T> void delete(T entity);
public <T> Serializable save(T entity);
public <T> void saveOrUpdate(T entity);
/**
* -sql-
* @param id
* @return
*/
public boolean doAddSql(AutoFormStyleEntity t);
/**
* -sql-
* @param id
* @return
*/
public boolean doUpdateSql(AutoFormStyleEntity t);
/**
* -sql-
* @param id
* @return
*/
public boolean doDelSql(AutoFormStyleEntity t);
}

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

Loading…
Cancel
Save