From 989ad48653d5fcd8f4e8ce66ade78b3ba66841d2 Mon Sep 17 00:00:00 2001 From: alwaysfrin <39822157+alwaysfrin@users.noreply.github.com> Date: Mon, 14 Jan 2019 12:00:10 +0800 Subject: [PATCH 01/24] =?UTF-8?q?=E4=B8=BB=E9=94=AE=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E8=B0=83=E6=95=B4=EF=BC=8C=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E9=83=A8=E5=88=86=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/codemaker/SnowFlake.java | 110 ++++++++++++++ .../i3plus/pojo/base/codemaker/SnowflakeId.java | 123 ++++++++++++++++ .../pojo/base/codemaker/SnowflakeIdMaker.java | 38 +++-- .../pojo/base/codemaker/SnowflakeIdWorker.java | 161 +++++++++++++++++++++ .../i3plus/pojo/base/enumutil/ImppEnumUtil.java | 10 +- .../base/jpa/daoimpl/BaseMongoRepositoryImpl.java | 23 ++- .../pojo/base/jpa/daoimpl/BaseRepositoryImpl.java | 4 +- .../jpa/factory/BaseRepositoryFactoryBean.java | 13 +- 8 files changed, 454 insertions(+), 28 deletions(-) create mode 100644 modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowFlake.java create mode 100644 modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeId.java create mode 100644 modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdWorker.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowFlake.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowFlake.java new file mode 100644 index 0000000..9d260c7 --- /dev/null +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowFlake.java @@ -0,0 +1,110 @@ +package cn.estsh.i3plus.pojo.base.codemaker; + +/** + * @Description : 备用算法 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-10 13:11 + * @Modify: + **/ +@Deprecated +public class SnowFlake { + // 起始的时间戳 + private final static long START_STMP = 1480166465631L; + // 每一部分占用的位数,就三个 + private final static long SEQUENCE_BIT = 12;// 序列号占用的位数 + private final static long MACHINE_BIT = 5; // 机器标识占用的位数 + private final static long DATACENTER_BIT = 5;// 数据中心占用的位数 + // 每一部分最大值 + private final static long MAX_DATACENTER_NUM = -1L ^ (-1L << DATACENTER_BIT); + private final static long MAX_MACHINE_NUM = -1L ^ (-1L << MACHINE_BIT); + private final static long MAX_SEQUENCE = -1L ^ (-1L << SEQUENCE_BIT); + // 每一部分向左的位移 + private final static long MACHINE_LEFT = SEQUENCE_BIT; + private final static long DATACENTER_LEFT = SEQUENCE_BIT + MACHINE_BIT; + private final static long TIMESTMP_LEFT = DATACENTER_LEFT + DATACENTER_BIT; + private long datacenterId; // 数据中心 + private long machineId; // 机器标识 + private long sequence = 0L; // 序列号 + private long lastStmp = -1L;// 上一次时间戳 + + public SnowFlake(long datacenterId, long machineId) { + if (datacenterId > MAX_DATACENTER_NUM || datacenterId < 0) { + throw new IllegalArgumentException("datacenterId can't be greater than MAX_DATACENTER_NUM or less than 0"); + } + if (machineId > MAX_MACHINE_NUM || machineId < 0) { + throw new IllegalArgumentException("machineId can't be greater than MAX_MACHINE_NUM or less than 0"); + } + this.datacenterId = datacenterId; + this.machineId = machineId; + } + //产生下一个ID + public synchronized long nextId() { + long currStmp = getNewstmp(); + if (currStmp < lastStmp) { + throw new RuntimeException("Clock moved backwards. Refusing to generate id"); + } + + if (currStmp == lastStmp) { + //if条件里表示当前调用和上一次调用落在了相同毫秒内,只能通过第三部分,序列号自增来判断为唯一,所以+1. + sequence = (sequence + 1) & MAX_SEQUENCE; + //同一毫秒的序列数已经达到最大,只能等待下一个毫秒 + if (sequence == 0L) { + currStmp = getNextMill(); + } + } else { + //不同毫秒内,序列号置为0 + //执行到这个分支的前提是currTimestamp > lastTimestamp,说明本次调用跟上次调用对比,已经不再同一个毫秒内了,这个时候序号可以重新回置0了。 + sequence = 0L; + } + + lastStmp = currStmp; + //就是用相对毫秒数、机器ID和自增序号拼接 + return (currStmp - START_STMP) << TIMESTMP_LEFT //时间戳部分 + | datacenterId << DATACENTER_LEFT //数据中心部分 + | machineId << MACHINE_LEFT //机器标识部分 + | sequence; //序列号部分 + } + + private long getNextMill() { + long mill = getNewstmp(); + while (mill <= lastStmp) { + mill = getNewstmp(); + } + return mill; + } + + private long getNewstmp() { + return System.currentTimeMillis(); + } + + /** 测试 */ + public static void main(String[] args) { + SnowFlake idWorker = new SnowFlake(0, 0); + for (int i = 0; i < 100; i++) { + long id = idWorker.nextId(); + //System.out.println(Long.toBinaryString(id)); + System.out.println(id); + } + + Runnable testRun = new Runnable() { + @Override + public void run() { + SnowFlake idWorker = new SnowFlake(0, 0); + for (int i = 0; i < 10; i++) { + System.out.println(idWorker.nextId()); + } + } + }; + Thread thread1 = new Thread(testRun); + thread1.start(); + Thread thread2 = new Thread(testRun); + thread2.start(); + Thread thread3 = new Thread(testRun); + thread3.start(); + Thread thread4 = new Thread(testRun); + thread4.start(); + Thread thread5 = new Thread(testRun); + thread5.start(); + } +} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeId.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeId.java new file mode 100644 index 0000000..9ffbab7 --- /dev/null +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeId.java @@ -0,0 +1,123 @@ +package cn.estsh.i3plus.pojo.base.codemaker; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-10 13:27 + * @Modify: + **/ +@Deprecated +public class SnowflakeId { + private long workerId; + private long datacenterId; + private long sequence = 0L; + + public SnowflakeId(){ + this.workerId = 1; + this.datacenterId = 1; + this.sequence = 0L; + } + + public SnowflakeId(long workerId, long datacenterId){ + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0",maxWorkerId)); + } + if (datacenterId > maxDatacenterId || datacenterId < 0) { + throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0",maxDatacenterId)); + } + + this.workerId = workerId; + this.datacenterId = datacenterId; + } + + private long twepoch = 1288834974657L; + + private long workerIdBits = 5L; + private long datacenterIdBits = 5L; + private long maxWorkerId = -1L ^ (-1L << workerIdBits); + private long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); + private long sequenceBits = 12L; + + private long workerIdShift = sequenceBits; + private long datacenterIdShift = sequenceBits + workerIdBits; + private long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits; + private long sequenceMask = -1L ^ (-1L << sequenceBits); + + private long lastTimestamp = -1L; + + private long getWorkerId(){ + return workerId; + } + + private long getDatacenterId(){ + return datacenterId; + } + + public synchronized long nextId() { + long timestamp = timeGen(); + + if (timestamp < lastTimestamp) { + System.err.printf("clock is moving backwards. Rejecting requests until %d.", lastTimestamp); + throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", + lastTimestamp - timestamp)); + } + + if (lastTimestamp == timestamp) { + sequence = (sequence + 1) & sequenceMask; + if (sequence == 0) { + timestamp = tilNextMillis(lastTimestamp); + } + } else { + sequence = 0; + } + + lastTimestamp = timestamp; + return ((timestamp - twepoch) << timestampLeftShift) | + (datacenterId << datacenterIdShift) | + (workerId << workerIdShift) | + sequence; + } + + private long tilNextMillis(long lastTimestamp) { + long timestamp = timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = timeGen(); + } + return timestamp; + } + + private long timeGen(){ + return System.currentTimeMillis(); + } + + //---------------测试--------------- + public static void main(String[] args) { + SnowflakeId worker = new SnowflakeId(); + Runnable testRun = new Runnable() { + @Override + public void run() { + + for (int i = 0; i < 10; i++) { + System.out.println(i + "=" + worker.nextId()); + } + } + }; + Thread thread1 = new Thread(testRun); + thread1.start(); + Thread thread2 = new Thread(testRun); + thread2.start(); + Thread thread3 = new Thread(testRun); + thread3.start(); + Thread thread4 = new Thread(testRun); + thread4.start(); + Thread thread5 = new Thread(testRun); + thread5.start(); + + System.out.println(new SnowflakeId().nextId()); + + for (int i = 0; i < 10; i++) { + //System.out.println(worker.nextId()); + } + } +} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java index ca4ca1b..eff481b 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java @@ -10,30 +10,27 @@ package cn.estsh.i3plus.pojo.base.codemaker; * @Modify: **/ public class SnowflakeIdMaker { + private long workerId; private long datacenterId; - private long sequence; + private long sequence = 0L; public SnowflakeIdMaker(){ this.workerId = 1; this.datacenterId = 1; - this.sequence = 1; + this.sequence = 0L; } - public SnowflakeIdMaker(long workerId, long datacenterId, long sequence){ - // sanity check for workerId + public SnowflakeIdMaker(long workerId, long datacenterId){ if (workerId > maxWorkerId || workerId < 0) { throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0",maxWorkerId)); } if (datacenterId > maxDatacenterId || datacenterId < 0) { throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0",maxDatacenterId)); } -// System.out.printf("worker starting. timestamp left shift %d, datacenter id bits %d, worker id bits %d, sequence bits %d, workerid %d", -// timestampLeftShift, datacenterIdBits, workerIdBits, sequenceBits, workerId); this.workerId = workerId; this.datacenterId = datacenterId; - this.sequence = sequence; } private long twepoch = 1288834974657L; @@ -59,10 +56,6 @@ public class SnowflakeIdMaker { return datacenterId; } - private long getTimestamp(){ - return System.currentTimeMillis(); - } - public synchronized long nextId() { long timestamp = timeGen(); @@ -102,13 +95,26 @@ public class SnowflakeIdMaker { //---------------测试--------------- public static void main(String[] args) { - System.out.println(new SnowflakeIdMaker().nextId()); SnowflakeIdMaker worker = new SnowflakeIdMaker(); - for (int i = 0; i < 10; i++) { - System.out.println(worker.nextId()); - } + Runnable testRun = new Runnable() { + @Override + public void run() { + for (int i = 0; i < 10; i++) { + System.out.println(worker.nextId()); + } + } + }; + Thread thread1 = new Thread(testRun); + thread1.start(); + Thread thread2 = new Thread(testRun); + thread2.start(); + Thread thread3 = new Thread(testRun); + thread3.start(); + Thread thread4 = new Thread(testRun); + thread4.start(); + Thread thread5 = new Thread(testRun); + thread5.start(); - worker = new SnowflakeIdMaker(1,1,1); for (int i = 0; i < 10; i++) { System.out.println(worker.nextId()); } diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdWorker.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdWorker.java new file mode 100644 index 0000000..03e1078 --- /dev/null +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdWorker.java @@ -0,0 +1,161 @@ +package cn.estsh.i3plus.pojo.base.codemaker; + +/** + * @Description : 备用算法 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-10 13:07 + * @Modify: + **/ +@Deprecated +public class SnowflakeIdWorker { + + /** 开始时间截 (2015-01-01) */ + private final long twepoch = 1420041600000L; + + /** 机器id所占的位数 */ + private final long workerIdBits = 5L; + + /** 数据标识id所占的位数 */ + private final long datacenterIdBits = 5L; + + /** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */ + private final long maxWorkerId = -1L ^ (-1L << workerIdBits); + + /** 支持的最大数据标识id,结果是31 */ + private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); + + /** 序列在id中占的位数 */ + private final long sequenceBits = 12L; + + /** 机器ID向左移12位 */ + private final long workerIdShift = sequenceBits; + + /** 数据标识id向左移17位(12+5) */ + private final long datacenterIdShift = sequenceBits + workerIdBits; + + /** 时间截向左移22位(5+5+12) */ + private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits; + + /** 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */ + private final long sequenceMask = -1L ^ (-1L << sequenceBits); + + /** 工作机器ID(0~31) */ + private long workerId; + + /** 数据中心ID(0~31) */ + private long datacenterId; + + /** 毫秒内序列(0~4095) */ + private long sequence = 0L; + + /** 上次生成ID的时间截 */ + private long lastTimestamp = -1L; + + //==============================Constructors===================================== + /** + * 构造函数 + * @param workerId 工作ID (0~31) + * @param datacenterId 数据中心ID (0~31) + */ + public SnowflakeIdWorker(long workerId, long datacenterId) { + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId)); + } + if (datacenterId > maxDatacenterId || datacenterId < 0) { + throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId)); + } + this.workerId = workerId; + this.datacenterId = datacenterId; + } + + // ==============================Methods========================================== + /** + * 获得下一个ID (该方法是线程安全的) + * @return SnowflakeId + */ + public synchronized long nextId() { + long timestamp = timeGen(); + + //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常 + if (timestamp < lastTimestamp) { + throw new RuntimeException( + String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp)); + } + + //如果是同一时间生成的,则进行毫秒内序列 + if (lastTimestamp == timestamp) { + sequence = (sequence + 1) & sequenceMask; + //毫秒内序列溢出 + if (sequence == 0) { + //阻塞到下一个毫秒,获得新的时间戳 + timestamp = tilNextMillis(lastTimestamp); + } + } + //时间戳改变,毫秒内序列重置 + else { + sequence = 0L; + } + + //上次生成ID的时间截 + lastTimestamp = timestamp; + + //移位并通过或运算拼到一起组成64位的ID + return ((timestamp - twepoch) << timestampLeftShift) // + | (datacenterId << datacenterIdShift) // + | (workerId << workerIdShift) // + | sequence; + } + + /** + * 阻塞到下一个毫秒,直到获得新的时间戳 + * @param lastTimestamp 上次生成ID的时间截 + * @return 当前时间戳 + */ + protected long tilNextMillis(long lastTimestamp) { + long timestamp = timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = timeGen(); + } + return timestamp; + } + + /** + * 返回以毫秒为单位的当前时间 + * @return 当前时间(毫秒) + */ + protected long timeGen() { + return System.currentTimeMillis(); + } + + //==============================Test============================================= + /** 测试 */ + public static void main(String[] args) { + SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0); + for (int i = 0; i < 100; i++) { + long id = idWorker.nextId(); + //System.out.println(Long.toBinaryString(id)); + System.out.println(id); + } + + Runnable testRun = new Runnable() { + @Override + public void run() { + SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0); + for (int i = 0; i < 10; i++) { + System.out.println(idWorker.nextId()); + } + } + }; + Thread thread1 = new Thread(testRun); + thread1.start(); + Thread thread2 = new Thread(testRun); + thread2.start(); + Thread thread3 = new Thread(testRun); + thread3.start(); + Thread thread4 = new Thread(testRun); + thread4.start(); + Thread thread5 = new Thread(testRun); + thread5.start(); + } +} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ImppEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ImppEnumUtil.java index 464bf8f..6f0233f 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ImppEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ImppEnumUtil.java @@ -158,11 +158,11 @@ public class ImppEnumUtil { @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum LOG_LEVEL{ - DEBUG(1,"DEBUG","调试程序信息"), - INFO(2,"INFO","程序运行信息"), - WARN(3,"WARN","具有潜在危害的信息"), - ERROR(4,"ERROR","错误信息但允许程序继续运行"), - FATAL(5,"FATAL","非常严重的错误,可能导致程序中止"); + DEBUG(1,"DEBUG","调试"), + INFO(2,"INFO","信息"), + WARN(3,"WARN","注意"), + ERROR(4,"ERROR","错误"), + FATAL(5,"FATAL","严重"); private int value; private String name; diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseMongoRepositoryImpl.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseMongoRepositoryImpl.java index 425b983..3ccc1c8 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseMongoRepositoryImpl.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseMongoRepositoryImpl.java @@ -16,6 +16,7 @@ import org.bson.json.JsonMode; import org.bson.json.JsonWriterSettings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; @@ -110,8 +111,26 @@ public class BaseMongoRepositoryImpl extends SimpleM } } - this.mongoOperations.insert(item, this.entityInformation.getCollectionName()); - if(idField!=null){ +// try { + this.mongoOperations.insert(item, this.entityInformation.getCollectionName()); +// }catch (DuplicateKeyException dke){ +// LOGGER.error("【出现重复主键】"); +// //出现重复主键,再次插入 +// if(idField != null){ +// Class type = idField.getType(); +// Object val = idField.get(item); +// if((type == long.class || type == Long.class) && (val == null || Long.parseLong(val.toString()) == 0)){ +// // long类型主键,以snowflake为主键 +// idField.set(item, snowflakeIdMaker.nextId()); +// } else if(type == String.class && (val==null || "".equals(val))){ +// // String类型主键,以UUID为主键 +// idField.set(item, UUID.randomUUID().toString().replace("-", "").toLowerCase()); +// } +// } +// +// this.mongoOperations.insert(item, this.entityInformation.getCollectionName()); +// } + if(idField != null){ return item; }else { return null; diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java index a867bba..9ede73d 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java @@ -37,11 +37,11 @@ public class BaseRepositoryImpl extends SimpleJpaRep private Class persistentClass; private SnowflakeIdMaker snowflakeIdMaker; - public BaseRepositoryImpl(Class clz, EntityManager em) { + public BaseRepositoryImpl(Class clz, EntityManager em,SnowflakeIdMaker snowflakeIdMaker) { super(clz, em); this.entityManager = em; this.persistentClass = clz; - this.snowflakeIdMaker = new SnowflakeIdMaker(); + this.snowflakeIdMaker = snowflakeIdMaker; } private void setParameter(Query query, String[] propName, Object[] propValue) { diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/factory/BaseRepositoryFactoryBean.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/factory/BaseRepositoryFactoryBean.java index f94c46e..912705d 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/factory/BaseRepositoryFactoryBean.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/factory/BaseRepositoryFactoryBean.java @@ -1,8 +1,10 @@ package cn.estsh.i3plus.pojo.base.jpa.factory; +import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.jpa.daoimpl.BaseRepositoryImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.support.JpaRepositoryFactory; import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; @@ -23,6 +25,9 @@ import java.io.Serializable; public class BaseRepositoryFactoryBean, T, I extends Serializable> extends JpaRepositoryFactoryBean { public static final Logger LOGGER = LoggerFactory.getLogger(BaseRepositoryFactoryBean.class); + @Autowired + public SnowflakeIdMaker snowflakeIdMaker; + public BaseRepositoryFactoryBean(Class repositoryInterface) { super(repositoryInterface); } @@ -30,22 +35,24 @@ public class BaseRepositoryFactoryBean, T, I exten @Override protected RepositoryFactorySupport createRepositoryFactory(EntityManager em) { //LOGGER.info("【初始JPA持久仓】"); - return new BaseRepositoryFactory(em); + return new BaseRepositoryFactory(em,snowflakeIdMaker); } //创建一个内部类,该类不用在外部访问 private static class BaseRepositoryFactory extends JpaRepositoryFactory { private final EntityManager em; + private final SnowflakeIdMaker snowflakeIdMaker; - public BaseRepositoryFactory(EntityManager em) { + public BaseRepositoryFactory(EntityManager em,SnowflakeIdMaker snowflakeIdMaker) { super(em); this.em = em; + this.snowflakeIdMaker = snowflakeIdMaker; } //设置具体的实现类是BaseRepositoryImpl @Override protected Object getTargetRepository(RepositoryInformation information) { - return new BaseRepositoryImpl((Class) information.getDomainType(), em); + return new BaseRepositoryImpl((Class) information.getDomainType(), em,snowflakeIdMaker); } //设置具体的实现类的class From 5816a93651c536d66aa03a36ef772b34cb9f652d Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 17 Jan 2019 12:10:00 +0800 Subject: [PATCH 02/24] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=20=E7=9B=AE=E5=BD=95=E5=AE=9E=E4=BD=93=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/pojo/report/bean/BrMenu.java | 99 ++++++++++++++++++++++ .../i3plus/pojo/report/bean/BrRefRoleMenu.java | 55 ++++++++++++ .../pojo/report/repository/BrMenuRepository.java | 14 +++ .../report/repository/BrRefRoleMenuRepository.java | 14 +++ 4 files changed, 182 insertions(+) create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefRoleMenu.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrMenuRepository.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefRoleMenuRepository.java diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java new file mode 100644 index 0000000..534c0af --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java @@ -0,0 +1,99 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Transient; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : 目录 + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-17 11:17 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="BR_MENU") +@Api(value="报表目录",description = "报表目录") +public class BrMenu extends BaseBean { + + @Column(name="NAME") + @ApiParam(value ="功能名称") + private String name; + + @Column(name="NAME_ZH_SHORTENING") + @ApiParam(value ="功能名称中文简写") + private String nameZhShortening; + + @Column(name="MENU_CODE") + @ApiParam(value ="功能代码") + private String menuCode; + + @Column(name="MENU_TYPE") + @ApiParam(value ="功能类型(枚举:1.模块,2.菜单,3.按钮)" , example ="-1") + private Integer menuType; + + // 根节点-1 + @Column(name="PARENT_ID") + @ApiParam(value ="父级功能ID" , example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long parentId; + + @Column(name="PARENT_NAME_RDD") + @ApiParam(value ="父级功能名称" , access ="父级功能名称") + private String parentNameRdd; + + @Column(name="MENU_CLASS_PATH") + @ApiParam(value ="功能 class path" , access ="资源class path") + private String menuClassPath; + + @Column(name="MENU_GRADE") + @ApiParam(value ="功能等级", example = "1") + private String menuGrade; + + @Column(name="MENU_SORT") + @ApiParam(value ="功能排序", example = "0") + private Integer menuSort; + + @Column(name="MENU_URL") + @ApiParam(value ="功能 url" , access ="资源 url") + private String menuUrl; + + @Column(name="MENU_CSS") + @ApiParam(value ="功能 css" , access ="资源css") + private String menuCss; + + @Column(name="MENU_ICON") + @ApiParam(value ="功能icon" , access ="资源icon") + private String menuIcon; + + @Column(name="MENU_DESCRIPTION") + @ApiParam(value ="功能描述" , access ="配置描述") + private String menuDescription; + + @Column(name="MENU_STATUS") + @ApiParam(value ="功能状态(1.正常,2.禁用)" , example ="1" , access ="功能状态(1.正常,2.禁用)",defaultValue="1") + private Integer menuStatus; + + @Transient + @ApiParam(value ="子集列表") + private List childList = new ArrayList<>(); + + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefRoleMenu.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefRoleMenu.java new file mode 100644 index 0000000..1c29ea9 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefRoleMenu.java @@ -0,0 +1,55 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-17 11:17 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="SYS_REF_ROLE_MENU") +@Api(value="关系-角色目录",description = "关系-角色目录") +public class BrRefRoleMenu extends BaseBean { + + @Column(name="MENU_ID") + @ApiParam(value ="菜单ID" ,example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long menuId; + + @Column(name="MENU_NAME_RDD") + @ApiParam(value ="菜单名称" , access ="菜单名称") + private String menuNameRdd; + + @Column(name="MENU_TYPE_RDD") + @ApiParam(value ="菜单类型") + private Integer menuTypeRdd; + + @Column(name="ROLE_ID") + @ApiParam(value ="角色ID" , example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long roleId; + + @Column(name="ROLE_NAME_Rdd") + @ApiParam(value ="角色名称" , access ="角色名称") + private String roleNameRdd; + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrMenuRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrMenuRepository.java new file mode 100644 index 0000000..ed77735 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrMenuRepository.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrMenu; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-17 11:59 + * @Modify: + **/ +public interface BrMenuRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefRoleMenuRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefRoleMenuRepository.java new file mode 100644 index 0000000..4fff2a4 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefRoleMenuRepository.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrRefRoleMenu; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-17 12:00 + * @Modify: + **/ +public interface BrRefRoleMenuRepository extends BaseRepository { +} From 69d385d6d523408bbcaf7fbc1fce07db9c85f654 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Thu, 17 Jan 2019 15:48:07 +0800 Subject: [PATCH 03/24] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=85=83=E7=B4=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/enumutil/BlockEnumUtil.java | 41 ++++++++++++++++++++++ .../estsh/i3plus/pojo/report/bean/BrElement.java | 10 ++---- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 29 +++++++++++++++ 3 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java index a66dd65..d8350d6 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java @@ -51,4 +51,45 @@ public class BlockEnumUtil { } } + + + /** + * 报表布局枚举 + * TABLE(1,"表格"),CHART(2,"图表"); + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum REPORT_LAYOUT_TYPE{ + + TABLE(1,"表格"),CHART(2,"图表"); + + private int value; + private String description; + + REPORT_LAYOUT_TYPE() { + } + + REPORT_LAYOUT_TYPE(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + } } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java index 3d2a4d8..e3bf5aa 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java @@ -53,11 +53,7 @@ public class BrElement extends BaseBean { @ApiParam(value ="元素样式css") private String elementStyle; - @Transient - @ApiParam(value ="元素明细列表") - private List brReportElementDetailList; - - @Transient - @ApiParam(value ="元素所在的列") - private BrLayoutColumn brLayoutColumn; + @Column(name="ELEMENT_HTML",columnDefinition = "TEXT") + @ApiParam(value ="元素html") + private String elementHtml; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java new file mode 100644 index 0000000..fd001d1 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -0,0 +1,29 @@ +package cn.estsh.i3plus.pojo.report.sqlpack; + +import cn.estsh.i3plus.pojo.base.tool.HqlPack; +import cn.estsh.i3plus.pojo.report.bean.BrElement; + +/** + * @Description : 报表对象封装 + * @Reference : + * @Author : yunhao + * @CreateDate : 2019-01-17 15:41 + * @Modify: + **/ +public class ReportHqlPack { + + /** + * 报表元素查询 + * @param brElement + * @return + */ + public static String packHqlBrElement(BrElement brElement){ + StringBuffer result = new StringBuffer(); + + // 查询参数封装 + HqlPack.getNumEqualPack(brElement.getElementType(),"elementType",result); + HqlPack.getStringLikerPack(brElement.getElementName(),"elementName",result); + + return result.toString(); + } +} From fd4fef9aa6bfed19d6876ac6273e451a5fb76f03 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 17 Jan 2019 16:07:31 +0800 Subject: [PATCH 04/24] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=20=E6=95=B0=E6=8D=AE=E5=BA=93=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=88=9B=E5=BB=BA=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=20=E6=9C=8D=E5=8A=A1=20=20=20=20=20=20=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java new file mode 100644 index 0000000..8e91f86 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -0,0 +1,36 @@ +package cn.estsh.i3plus.pojo.report.sqlpack; + +import cn.estsh.i3plus.pojo.base.tool.HqlPack; +import cn.estsh.i3plus.pojo.report.bean.BrMenu; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-17 14:13 + * @Modify: + **/ +public class ReportHqlPack { + + /** + * 目录查询封装 + * @param menu + * @return + */ + public static String packHqlBrMenu(BrMenu menu){ + StringBuffer result = new StringBuffer(); + + // 查询参数封装 + HqlPack.getNumEqualPack(menu.getParentId(),"parentId",result); + HqlPack.getNumEqualPack(menu.getMenuType(),"menuType",result); + HqlPack.getNumEqualPack(menu.getMenuStatus(),"menuStatus",result); + HqlPack.getStringLikerPack(menu.getName(),"name",result); + HqlPack.getStringLikerPack(menu.getMenuCode(),"menuCode",result); + + // 添加默认排序 + HqlPack.getOrderDefault(menu); + + return result.toString(); + } + +} From 6c0d6f6b314048207af9c676914f3d1404484c71 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 17 Jan 2019 16:15:21 +0800 Subject: [PATCH 05/24] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=20=E6=95=B0=E6=8D=AE=E5=BA=93=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=88=9B=E5=BB=BA=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=20=E6=9C=8D=E5=8A=A1=20=20=20=20=20=20=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 2213480..51641a0 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.pojo.report.sqlpack; import cn.estsh.i3plus.pojo.base.tool.HqlPack; +import cn.estsh.i3plus.pojo.report.bean.BrElement; import cn.estsh.i3plus.pojo.report.bean.BrMenu; /** From cb596647401b669d1b20a0c3bc753502dd05678b Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Fri, 18 Jan 2019 10:11:03 +0800 Subject: [PATCH 06/24] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=B1=BB=E5=9E=8B=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2=E5=85=B3=E8=81=94=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=8E=A5=E5=8F=A3=20=E6=9E=9A=E4=B8=BE=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...BlockEnumUtil.java => BlockReportEnumUtil.java} | 51 +++++++++++++++++++++- .../i3plus/pojo/base/enumutil/CommonEnumUtil.java | 5 ++- .../estsh/i3plus/pojo/report/bean/BrElement.java | 2 +- 3 files changed, 55 insertions(+), 3 deletions(-) rename modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/{BlockEnumUtil.java => BlockReportEnumUtil.java} (63%) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java similarity index 63% rename from modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java rename to modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index d8350d6..32d1887 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; * @CreateDate : 2018-12-25 21:08 * @Modify: **/ -public class BlockEnumUtil { +public class BlockReportEnumUtil { /** @@ -90,6 +90,55 @@ public class BlockEnumUtil { } return tmp; } + } + + + + /** + * 功能级别 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum METHOD_LEVEL { +// PLUGIN(1, "插件"), + MODULE(2, "顶级目录"), + METHOD(3, "二级目录"); +// BUTTON(4, "按钮"); + + private int value; + private String description; + private METHOD_LEVEL(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } } + } diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java index b6fa846..24e4496 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java @@ -443,7 +443,10 @@ public class CommonEnumUtil { */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum METHOD_LEVEL { - PLUGIN(1, "插件"),MODULE(2, "模块"), METHOD(3, "功能"), BUTTON(4, "按钮"); + PLUGIN(1, "插件"), + MODULE(2, "顶级目录"), + METHOD(3, "二级目录"), + BUTTON(4, "按钮"); private int value; private String description; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java index e3bf5aa..165dcd9 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java @@ -38,7 +38,7 @@ public class BrElement extends BaseBean { @Column(name="ELEMENT_TYPE") @ApiParam(value ="元素类型") - //BlockEnumUtil.REPORT_ELEMENT_TYPE + //BlockReportEnumUtil.REPORT_ELEMENT_TYPE private Integer elementType; @Column(name="ELEMENT_VALUE") From 42a38392fc26f53d2a6b51200d69cdcecd79b069 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Fri, 18 Jan 2019 10:14:28 +0800 Subject: [PATCH 07/24] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/enumutil/BlockEnumUtil.java | 2 +- .../cn/estsh/i3plus/pojo/report/bean/BrLayout.java | 12 ++++++---- .../i3plus/pojo/report/bean/BrLayoutColumn.java | 28 ++++++++++++---------- .../estsh/i3plus/pojo/report/bean/BrLayoutRow.java | 17 +++++++------ ...tElementDetail.java => BrRefReportElement.java} | 24 ++++++++++++++----- ...emplateDetail.java => BrRefReportTemplate.java} | 25 ++++++++++++------- .../cn/estsh/i3plus/pojo/report/bean/BrReport.java | 12 ++++++---- .../i3plus/pojo/report/bean/BrReportTemplate.java | 2 +- ...tory.java => BrRefReportElementRepository.java} | 4 ++-- ...ory.java => BrRefReportTemplateRepository.java} | 4 ++-- 10 files changed, 82 insertions(+), 48 deletions(-) rename modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/{BrReportElementDetail.java => BrRefReportElement.java} (76%) rename modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/{BrReportTemplateDetail.java => BrRefReportTemplate.java} (76%) rename modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/{BrReportElementDetailRepository.java => BrRefReportElementRepository.java} (57%) rename modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/{BrReportTemplateDetailRepository.java => BrRefReportTemplateRepository.java} (56%) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java index d8350d6..8be7342 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockEnumUtil.java @@ -19,7 +19,7 @@ public class BlockEnumUtil { @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum REPORT_ELEMENT_TYPE{ - WORDS(1,"文字"),PIC(2,"图片"),REPORT(3,"报表"); + WORDS(1,"文字"),PIC(2,"图片"); private int value; private String description; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java index fd5bfe9..be01fe4 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java @@ -54,11 +54,15 @@ public class BrLayout extends BaseBean { @ApiParam(value ="排序") private Integer seq; + @Column(name="LAYOUT_HTML",columnDefinition = "TEXT") + @ApiParam(value ="布局html") + private String layoutHtml; + + @Column(name = "LAYOUT_DESCRIPTION",columnDefinition = "TEXT") + @ApiParam(value ="布局描述") + private String layoutDescription; + @Transient @ApiParam(value ="模板行列表") private List brLayoutRowList; - - @Transient - @ApiParam(value ="使用模板的报表") - private List brReportList; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java index 05a5a47..6fa3a3c 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java @@ -42,27 +42,31 @@ public class BrLayoutColumn extends BaseBean { @JsonSerialize(using = ToStringSerializer.class) private Long layoutRowId; - @Column(name="COLUMN_CROSS") + @Column(name="COLUMN_COLSPAN") @ApiParam(value ="跨列数") - private Integer columnCross; + private Integer columnColspan; + + @Column(name="COLUMN_ROWSPAN") + @ApiParam(value ="跨行数") + private Integer columnRowspan; @Column(name="COLUMN_WIDTH") @ApiParam(value ="列宽") private Integer columnWidth; + @Column(name="COLUMN_HEIGHT") + @ApiParam(value ="列高") + private Integer columnHeight; + @Column(name="SEQ") @ApiParam(value ="排序") private Integer seq; - @Transient - @ApiParam(value ="列所在的行") - private BrLayoutRow brLayoutRow; - - @Transient - @ApiParam(value ="列所包含的元素") - private List brElementList; + @Column(name = "COLUMN_DESCRIPTION",columnDefinition = "TEXT") + @ApiParam(value ="列描述") + private String columnDescription; - @Transient - @ApiParam(value ="列所包含的报表模板") - private List brReportTemplateList; + @Column(name="COLUMN_HTML") + @ApiParam(value ="列html") + private String columnHtml; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java index ede4846..450b5a1 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java @@ -37,9 +37,9 @@ public class BrLayoutRow extends BaseBean { @JsonSerialize(using = ToStringSerializer.class) private Long layoutId; - @Column(name="ROW_CROSS") - @ApiParam(value ="跨行") - private Integer rowCross; + @Column(name="ROW_WIDTH") + @ApiParam(value ="行宽") + private Integer rowWidth; @Column(name="ROW_HEIGHT") @ApiParam(value ="行高") @@ -49,12 +49,15 @@ public class BrLayoutRow extends BaseBean { @ApiParam(value ="排序") private Integer seq; - @Transient - @ApiParam(value ="行所在的布局") - private BrLayout brLayout; + @Column(name="ROW_STYLE") + @ApiParam(value ="行样式") + private String rowStyle; + + @Column(name="ROW_HTML") + @ApiParam(value ="行样式") + private String rowHtml; @Transient @ApiParam(value ="行所包含的列") private List brLayoutColumns; - } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportElementDetail.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java similarity index 76% rename from modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportElementDetail.java rename to modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java index 03ce6c8..b278d0b 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportElementDetail.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java @@ -28,25 +28,37 @@ import java.util.List; @DynamicInsert @DynamicUpdate @EqualsAndHashCode(callSuper = true) -@Table(name="BR_REPORT_ELEMENT_DETAIL") +@Table(name="BR_REF_REPORT_ELEMENT") @Api(value="元素&报表",description = "元素和报表的关联表 * -》 *") -public class BrReportElementDetail extends BaseBean { +public class BrRefReportElement extends BaseBean { @Column(name = "REPORT_ID") @ApiParam(value = "报表主键") @JsonSerialize(using = ToStringSerializer.class) private Long reportId; - @Column(name = "ELEMENT_ID") - @ApiParam(value = "元素主键") - @JsonSerialize(using = ToStringSerializer.class) - private Long elementId; + @Column(name = "REPORT_NAME_RDD") + @ApiParam(value = "报表名称") + private String reportNameRdd; @Column(name = "LAYOUT_COLUMN_ID") @ApiParam(value = "列主键") @JsonSerialize(using = ToStringSerializer.class) private Long layoutColumnId; + @Column(name = "ELEMENT_ID") + @ApiParam(value = "元素主键") + @JsonSerialize(using = ToStringSerializer.class) + private Long elementId; + + @Column(name = "ELEMENT_NAME_RDD") + @ApiParam(value = "元素名称") + private String elementNameRdd; + + @Column(name = "ELEMENT_HTML_RDD") + @ApiParam(value = "元素html") + @JsonSerialize(using = ToStringSerializer.class) + private Long elementHtmlRdd; @Transient @ApiParam(value = "报表实例") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplateDetail.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTemplate.java similarity index 76% rename from modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplateDetail.java rename to modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTemplate.java index 37db458..d213c6d 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplateDetail.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTemplate.java @@ -27,29 +27,36 @@ import javax.persistence.Transient; @DynamicInsert @DynamicUpdate @EqualsAndHashCode(callSuper = true) -@Table(name="BR_REPORT_TEMPLATE_DETAIL") +@Table(name="BR_REF_REPORT_TEMPLATE") @Api(value="报表模板&报表",description = "报表模板和报表的关联表 * -》 *") -public class BrReportTemplateDetail extends BaseBean { +public class BrRefReportTemplate extends BaseBean { @Column(name="REPORT_ID") @ApiParam(value ="报表主键") @JsonSerialize(using = ToStringSerializer.class) private Long reportId; - @Column(name="REPORT_TEMPLATE_ID") - @ApiParam(value ="报表模板主键") - @JsonSerialize(using = ToStringSerializer.class) - private Long reportTemplateId; + @Column(name = "REPORT_NAME_RDD") + @ApiParam(value = "报表名称") + private String reportNameRdd; @Column(name="LAYOUT_COLUMN_ID") @ApiParam(value ="列主键") @JsonSerialize(using = ToStringSerializer.class) private Long layoutColumnId; + @Column(name="REPORT_TEMPLATE_ID") + @ApiParam(value ="报表模板主键") + @JsonSerialize(using = ToStringSerializer.class) + private Long reportTemplateId; + + @Column(name="REPORT_TEMPLATE_NAME_RDD") + @ApiParam(value ="报表模板名称") + private String reportTemplateNameRdd; - @Transient - @ApiParam(value = "报表实例") - private BrReport brReport; + @Column(name="REPORT_TEMPLATE_HTML_RDD") + @ApiParam(value ="报表模板html") + private String reportTemplateHtmlRdd; @Transient @ApiParam(value = "报表模板") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java index 7d3c0bb..79d54e2 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java @@ -39,10 +39,14 @@ public class BrReport extends BaseBean { @JsonSerialize(using = ToStringSerializer.class) private Long layoutId; - @Column(name="SOFT_TYPE") - @ApiParam(value ="模块") - //所属模块,CommonEnumUtil.SOFT_TYPE - private Integer softType; + @Column(name="LAYOUT_ID_RDD") + @ApiParam(value ="布局名称") + @JsonSerialize(using = ToStringSerializer.class) + private Long layoutNameRdd; + + @Column(name="LAYOUT_HTML") + @ApiParam(value ="布局html") + private String reportHtml; @Column(name="SEQ") @ApiParam(value ="排序") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java index 3f847f0..65480b8 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java @@ -48,7 +48,7 @@ public class BrReportTemplate extends BaseBean { @Transient @ApiParam(value ="报表模板列表") - private List brReportTemplateDetailList; + private List brReportTemplateDetailList; @Transient @ApiParam(value ="元素所在的列") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrReportElementDetailRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportElementRepository.java similarity index 57% rename from modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrReportElementDetailRepository.java rename to modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportElementRepository.java index 44a969d..90771e4 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrReportElementDetailRepository.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportElementRepository.java @@ -1,7 +1,7 @@ package cn.estsh.i3plus.pojo.report.repository; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; -import cn.estsh.i3plus.pojo.report.bean.BrReportElementDetail; +import cn.estsh.i3plus.pojo.report.bean.BrRefReportElement; /** * @Description : @@ -10,5 +10,5 @@ import cn.estsh.i3plus.pojo.report.bean.BrReportElementDetail; * @CreateDate : 2018-12-26 20:23 * @Modify: **/ -public interface BrReportElementDetailRepository extends BaseRepository { +public interface BrRefReportElementRepository extends BaseRepository { } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrReportTemplateDetailRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTemplateRepository.java similarity index 56% rename from modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrReportTemplateDetailRepository.java rename to modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTemplateRepository.java index 99387d4..1b22193 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrReportTemplateDetailRepository.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTemplateRepository.java @@ -1,7 +1,7 @@ package cn.estsh.i3plus.pojo.report.repository; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; -import cn.estsh.i3plus.pojo.report.bean.BrReportTemplateDetail; +import cn.estsh.i3plus.pojo.report.bean.BrRefReportTemplate; /** * @Description : @@ -10,5 +10,5 @@ import cn.estsh.i3plus.pojo.report.bean.BrReportTemplateDetail; * @CreateDate : 2018-12-26 20:23 * @Modify: **/ -public interface BrReportTemplateDetailRepository extends BaseRepository { +public interface BrRefReportTemplateRepository extends BaseRepository { } From d9d7f5eea13e80d5f810bfd651d4b4e921374845 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Fri, 18 Jan 2019 10:46:05 +0800 Subject: [PATCH 08/24] =?UTF-8?q?report=20url=20=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 51641a0..7191c64 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.pojo.report.sqlpack; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.report.bean.BrElement; import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import org.apache.commons.lang3.StringUtils; /** * @Description : 报表对象封装 @@ -14,6 +15,33 @@ import cn.estsh.i3plus.pojo.report.bean.BrMenu; public class ReportHqlPack { /** + * In 参数封装 + * @param columnName + * @return + */ + public static String packHqlIds(String columnName,String[] params){ + StringBuffer result = new StringBuffer(); + + // 参数数组 [1,2,3] -> "1,2,3" + HqlPack.getInPack(String.join(",",params),columnName,result); + return result.toString(); + } + + + /** + * In 参数封装 + * @param columnName + * @return + */ + public static String packHqlIds(String columnName,Long[] params){ + StringBuffer result = new StringBuffer(); + + // 参数数组 [1,2,3] -> "1,2,3" + HqlPack.getInPack(StringUtils.join(params,","),columnName,result); + return result.toString(); + } + + /** * 目录查询封装 * @param menu * @return From cb30fc88b2ec27d79fdb8dc996540f7f236349a1 Mon Sep 17 00:00:00 2001 From: alwaysfrin <39822157+alwaysfrin@users.noreply.github.com> Date: Fri, 18 Jan 2019 12:59:30 +0800 Subject: [PATCH 09/24] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=B1=A0=E5=92=8C=E6=B6=88=E6=81=AF=E9=98=9F=E5=88=97?= =?UTF-8?q?=E7=9A=84=E4=BA=A4=E6=8D=A2=E6=9C=BA=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java index a6a91f7..1722df0 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java @@ -293,8 +293,8 @@ public class WmsEnumUtil { @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum QUEUE_NAME { - SUCCESS_QUEUE(1, "success_queue", "成功消息队列"), - FAIL_QUEUE(2, "fail_queue", "成功消息队列"); + SUCCESS_QUEUE(1, "wms_success_queue", "成功消息队列"), + FAIL_QUEUE(2, "wms_fail_queue", "成功消息队列"); private int value; private String name; From 7ccd5613b32ffcc84f005e5be5633c9554ca9f3c Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Fri, 18 Jan 2019 18:55:32 +0800 Subject: [PATCH 10/24] =?UTF-8?q?=E7=9B=AE=E5=BD=95=E8=81=94=E8=B0=83Bug?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=20=E6=A8=A1=E6=9D=BFPojo=20=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=20=E6=A8=A1=E6=9D=BF=E6=9E=9A=E4=B8=BE=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/enumutil/BlockReportEnumUtil.java | 234 +++++++++++++++++++++ .../cn/estsh/i3plus/pojo/report/bean/BrMenu.java | 10 +- .../estsh/i3plus/pojo/report/bean/BrPojoAttr.java | 82 ++++++++ .../estsh/i3plus/pojo/report/bean/BrRefPojo.java | 73 +++++++ .../i3plus/pojo/report/bean/BrRefServerPojo.java | 62 ++++++ .../pojo/report/bean/BrRefTemplateServer.java | 50 +++++ .../estsh/i3plus/pojo/report/bean/BrTemplate.java | 91 ++++++++ .../pojo/report/bean/BrTemplateCustomHql.java | 46 ++++ .../report/repository/BrPojoAttrRepository.java | 15 ++ .../report/repository/BrRefPojoRepository.java | 15 ++ .../repository/BrRefServerPojoRepository.java | 15 ++ .../repository/BrRefTemplateServerRepository.java | 15 ++ .../repository/BrTemplateCustomHqlRepository.java | 15 ++ .../report/repository/BrTemplateRepository.java | 14 ++ 14 files changed, 735 insertions(+), 2 deletions(-) create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrPojoAttrRepository.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefPojoRepository.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefServerPojoRepository.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefTemplateServerRepository.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateCustomHqlRepository.java create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateRepository.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index 32d1887..5f596c7 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -141,4 +141,238 @@ public class BlockReportEnumUtil { } } + /** + * 数据状态 + * 1 启用 + * 2 禁用 + * 3 锁定 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum DATA_STATUS { + ENABLE(1, "启用", "fa fa-success cell-fa fa-check"), + DISABLE(2, "禁用", "fa fa-disabled cell-fa fa-times-circle"); + + private int value; + private String name; + private String description; + + DATA_STATUS() { + } + + DATA_STATUS(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + /** + * HQL WHERE 条件 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum HQL_WHERE{ + + GT(1, ">", "大于"), + GT_EQUAL(2, ">=", "大于等于"), + LT(3, "<", "小于等于"), + LT_EQUAL(4, "<=", "小于等于"), + LIKE(5, "like", "模糊"), + LIKE_LEFT(6, "like", "左模糊"), + LIKE_RIGHT(7, "like", "右模糊"), + EQUAL(8, "=", "等于"), + EQUAL_NOT(9, "!=", "不等于"), + AND(10, "and", "AND"), + OR(11, "or", "OR"), + NOT(12, "not", "NOT"), + IS_NULL(13, "is null", "IS NULL"), + IS_NOT_NULL(14, "is not null", "IS NOT NULL"); + + private int value; + private String name; + private String description; + + HQL_WHERE() { + } + + HQL_WHERE(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + /*** + * 数据量表连接方式 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum HQL_REF{ + LEFT_JOIN(1, "left join", "左连接"), + RIGHT_JOIN(2, "right join", "右连接"), + INNER_JOIN(3, "inner join", "内连接"); + + private int value; + private String name; + private String description; + + HQL_REF() { + } + + HQL_REF(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum HQL_AGGREGATION{ + + AVG(1, "avg", "平均值"), + MIN(2, "min", "最小值"), + MAX(3, "max", "最大值"), + SUM(4, "sum", "总和"), + COUNT(5, "count", "计数"); + + private int value; + private String name; + private String description; + + HQL_AGGREGATION() { + } + + HQL_AGGREGATION(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java index 534c0af..6de49aa 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java @@ -91,9 +91,15 @@ public class BrMenu extends BaseBean { @ApiParam(value ="功能状态(1.正常,2.禁用)" , example ="1" , access ="功能状态(1.正常,2.禁用)",defaultValue="1") private Integer menuStatus; + @Column(name="ROLE_NAMES_RDD") + @ApiParam(value ="角色名称" , access ="角色名称") + private String roleNamesRdd; + + @Transient + @ApiParam(value ="角色ID 集合") + private List roleIdList = new ArrayList<>(); + @Transient @ApiParam(value ="子集列表") private List childList = new ArrayList<>(); - - } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java new file mode 100644 index 0000000..eda7d86 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java @@ -0,0 +1,82 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 11:32 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="BR_POJO_ATTR") +@Api(value="报表模板",description = "报表模板") +public class BrPojoAttr extends BaseBean { + + @Column(name="TEMPLATE_ID") + @ApiParam(value ="模板编号" ,example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long templateId; + + @Column(name="SERVER_ID") + @ApiParam(value ="服务编号",example = "-1") + private Integer serverId; + + @Column(name="POJO_CLASS_PATH") + @ApiParam(value ="对象ClassPath") + private String pojoClassPath; + + @Column(name="POJO_NAME") + @ApiParam(value ="对象名称") + private String pojoName; + + @Column(name="POJO_NAME_ALIAS") + @ApiParam(value ="对象别名") + private String pojoNameAlias; + + @Column(name="ATTR_TYPE") + @ApiParam(value ="属性类型",example = "-1") + private Integer attrType; + + @Column(name="ATTR_REF_TYPE") + @ApiParam(value ="关系类型",example = "-1") + private Integer attrRefType; + + @Column(name="DATA_TYPE") + @ApiParam(value ="数据类型",example = "-1") + private Integer dataType; + + @Column(name="AGGREGATION_TYPE") + @ApiParam(value ="聚合类型",example = "-1") + private Integer aggregationType; + + @Column(name="ATTR_SORT") + @ApiParam(value ="字段排序") + private Integer attrSort; + + @Column(name="ATTR_DEFAULT_VALUE") + @ApiParam(value ="属性默认值") + private String attrDefaultValue; + + @Column(name="ATTR_SHOW") + @ApiParam(value ="属性是否显示",example = "-1") + private Integer attrShow; + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java new file mode 100644 index 0000000..c40470e --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java @@ -0,0 +1,73 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 11:32 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="BR_REF_POJO") +@Api(value="报表模板",description = "报表模板") +public class BrRefPojo extends BaseBean { + + @Column(name="MASTER_TEMPLATE_ID") + @ApiParam(value ="模板编号" ,example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long masterTemplateId; + + @Column(name="REF_TYPE") + @ApiParam(value ="关系类型") + private Integer refType; + + @Column(name="MASTER_SERVER_ID") + @ApiParam(value ="主服务编号" ,example = "-1") + private Integer masterServerId; + + @Column(name="MASTER_POJO_NAME") + @ApiParam(value ="副对象名称") + private String masterPojoName; + + @Column(name="MASTER_POJO_NAME_ALIAS") + @ApiParam(value ="主对象别名") + private String masterPojoNameAlias; + + @Column(name="MASTER_POJO_NAME_ATTR_NAME") + @ApiParam(value ="主对象属性名称" ) + private String masterPojoAttName; + + @Column(name="SECONDARY_SERVER_ID") + @ApiParam(value ="主服务编号") + private Integer secondaryServerId; + + @Column(name="SECONDARY_POJO_NAME") + @ApiParam(value ="副对象名称") + private String secondaryPojoName; + + @Column(name="SECONDARY_POJO_NAME_ALIAS") + @ApiParam(value ="副对象别名" ) + private String secondaryPojoNameAlias; + + @Column(name="SECONDARY_POJO_ATTR_NAME") + @ApiParam(value ="副对象属性名称") + private String secondaryPojoAttrName; +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java new file mode 100644 index 0000000..77e4c9f --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java @@ -0,0 +1,62 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 11:31 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="BR_REF_SERVER_POJO") +@Api(value="报表模板",description = "报表模板") +public class BrRefServerPojo extends BaseBean { + + @Column(name="TEMPLATE_ID") + @ApiParam(value ="模板编号" ,example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long templateId; + + @Column(name="TEMPLATE_NAME_RDD") + @ApiParam(value ="模板名称" , access ="模板名称") + private String templateNameRdd; + + @Column(name="SERVER_ID") + @ApiParam(value ="服务编号" ,example = "-1") + private Integer serverId; + + @Column(name="SERVER_NAME_RDD") + @ApiParam(value ="服务名称" , access ="模板名称") + private String serverNameRdd; + + @Column(name="SERVER_POJO_NAME_RDD") + @ApiParam(value ="服务对象名称" , access ="模板名称") + private String serverPojoNameRdd; + + @Column(name="SERVER_POJO_NAME_ALIAS") + @ApiParam(value ="服务对象别名" , access ="模板名称") + private String serverPojoNameAlias; + + @Column(name="SERVER_POJO_CLASS_PATH") + @ApiParam(value ="服务对象名称" , access ="模板名称") + private String serverPojoClassPath; + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java new file mode 100644 index 0000000..d0ebe1f --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 11:31 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="BR_REF_TEMPLATE_SERVER") +@Api(value="报表模板",description = "报表模板") +public class BrRefTemplateServer extends BaseBean { + + @Column(name="TEMPLATE_ID") + @ApiParam(value ="模板编号" ,example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long templateId; + + @Column(name="TEMPLATE_NAME_RDD") + @ApiParam(value ="模板名称" , access ="模板名称") + private String templateNameRdd; + + @Column(name="SERVER_ID") + @ApiParam(value ="服务编号" ,example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long serverId; + + @Column(name="SERVER_NAME_RDD") + @ApiParam(value ="服务名称" , access ="模板名称") + private String serverNameRdd; +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java new file mode 100644 index 0000000..3ad76f8 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -0,0 +1,91 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 11:23 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="BR_CUSTOM_HQL") +@Api(value="报表模板",description = "报表模板") +public class BrTemplate extends BaseBean { + + @Column(name="NAME") + @ApiParam(value ="模板名称" , access ="模板名称") + private String name; + + @Column(name="TEMPLATE_TYPE") + @ApiParam(value ="模板类型" , example ="-1",access="表格,图表") + private Integer templateType; + + @Column(name="TEMPLATE_STATUS") + @ApiParam(value ="模板状态" , example ="-1",access="模板状态") + private Integer templateStatus; + + @Column(name="NUM_POJO") + @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + private Integer numPojo; + + @Column(name="TEMPLATE_POJO_NAMES_RDD",columnDefinition = "TEXT") + @ApiParam(value ="对象名称" , access ="对象名称") + private String templatePojoNamesRdd; + + @Column(name="NUM_SERVER") + @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + private Integer numServer; + + @Column(name="TEMPLATE_SERVER_NAMES_RDD",columnDefinition = "TEXT") + @ApiParam(value ="服务名称" , access ="服务名称") + private String templateServerNamesRdd; + + @Column(name="NUM_TEMPLATE_ATTR_FILTER") + @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + private Integer numTemplateAttrFilter; + + @Column(name="template_attr_filter_list",columnDefinition = "TEXT") + @ApiParam(value ="模板查询条件" , access ="模板查询条件") + private String templateAttrFilterList; + + @Column(name="NUM_TEMPLATE_ATTR_FILTER_GROUP") + @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + private Integer numTemplateAttrFilterGroup; + + @Column(name="TEMPLATE_ATTR_FILTER_GROUP_LIST",columnDefinition = "TEXT") + @ApiParam(value ="模板分组条件" , access ="模板分組条件") + private String templateAttrFilterGroupList; + + @Column(name="NUM_TEMPLATE_ATTR_SHOW") + @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + private Integer numTemplateAttrShow; + + @Column(name="TEMPLATE_ATTR_SHOW_LIST",columnDefinition = "TEXT") + @ApiParam(value ="模板显示属性" , access ="模板显示属性") + private String templateAttrShowList; + + @Column(name="TEMPLATE_DESCRIPTION") + @ApiParam(value ="模板描述" , access ="模板描述") + private String templateDescription; + + @Column(name="TEMPLATE_HTML",columnDefinition = "TEXT") + @ApiParam(value ="模板HTML" , access ="模板HTML") + private String templateHtml; + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java new file mode 100644 index 0000000..93dcb89 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java @@ -0,0 +1,46 @@ +package cn.estsh.i3plus.pojo.report.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 11:23 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="BR_TEMPLATE_CUSTOM_HQL") +@Api(value="模板自定义语句",description = "模板自定义语句") +public class BrTemplateCustomHql extends BaseBean { + + @Column(name="TEMPLATE_ID") + @ApiParam(value ="模板编号" , example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long templateId; + + @Column(name="CUSTOM_TYPE") + @ApiParam(value ="自定义类型" , example ="-1") + private Integer customType; + + @Column(name="CUSTOM_CONTENT",columnDefinition="TEXT") + @ApiParam(value ="自定义语句内容" , access ="自定义语句内容") + private String customContent; + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrPojoAttrRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrPojoAttrRepository.java new file mode 100644 index 0000000..386bfc5 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrPojoAttrRepository.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import cn.estsh.i3plus.pojo.report.bean.BrPojoAttr; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 15:03 + * @Modify: + **/ +public interface BrPojoAttrRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefPojoRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefPojoRepository.java new file mode 100644 index 0000000..febaf03 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefPojoRepository.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrRefPojo; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 15:04 + * @Modify: + **/ +public interface BrRefPojoRepository extends BaseRepository { + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefServerPojoRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefServerPojoRepository.java new file mode 100644 index 0000000..fbf9382 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefServerPojoRepository.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import cn.estsh.i3plus.pojo.report.bean.BrRefServerPojo; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 15:05 + * @Modify: + **/ +public interface BrRefServerPojoRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefTemplateServerRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefTemplateServerRepository.java new file mode 100644 index 0000000..c2d14d4 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefTemplateServerRepository.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import cn.estsh.i3plus.pojo.report.bean.BrRefTemplateServer; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 15:05 + * @Modify: + **/ +public interface BrRefTemplateServerRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateCustomHqlRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateCustomHqlRepository.java new file mode 100644 index 0000000..617f010 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateCustomHqlRepository.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import cn.estsh.i3plus.pojo.report.bean.BrTemplateCustomHql; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 15:05 + * @Modify: + **/ +public interface BrTemplateCustomHqlRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateRepository.java new file mode 100644 index 0000000..fec3f05 --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrTemplateRepository.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.pojo.report.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.report.bean.BrTemplate; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-18 15:05 + * @Modify: + **/ +public interface BrTemplateRepository extends BaseRepository { +} From 7d8feb77cdfffc96a00b0e787193e19258543d08 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Fri, 18 Jan 2019 21:40:02 +0800 Subject: [PATCH 11/24] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20block=20service=E5=88=87=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/pojo/report/bean/BrLayout.java | 2 +- .../i3plus/pojo/report/bean/BrLayoutColumn.java | 4 ++ .../estsh/i3plus/pojo/report/bean/BrLayoutRow.java | 6 ++- .../pojo/report/bean/BrRefReportElement.java | 4 +- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 46 ++++++++++++++++++++++ 5 files changed, 58 insertions(+), 4 deletions(-) diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java index be01fe4..87bf4b3 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java @@ -64,5 +64,5 @@ public class BrLayout extends BaseBean { @Transient @ApiParam(value ="模板行列表") - private List brLayoutRowList; + private List brLayoutRows; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java index 6fa3a3c..9ff426f 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java @@ -58,6 +58,10 @@ public class BrLayoutColumn extends BaseBean { @ApiParam(value ="列高") private Integer columnHeight; + @Column(name="COLUMN_STYLE") + @ApiParam(value ="列样式") + private String columnStyle; + @Column(name="SEQ") @ApiParam(value ="排序") private Integer seq; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java index 450b5a1..f380477 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java @@ -53,8 +53,12 @@ public class BrLayoutRow extends BaseBean { @ApiParam(value ="行样式") private String rowStyle; + @Column(name="ROW_COL_NUM") + @ApiParam(value ="行所关联列数") + private Integer rowColNum; + @Column(name="ROW_HTML") - @ApiParam(value ="行样式") + @ApiParam(value ="行html") private String rowHtml; @Transient diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java index b278d0b..dfae91a 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java @@ -55,10 +55,10 @@ public class BrRefReportElement extends BaseBean { @ApiParam(value = "元素名称") private String elementNameRdd; - @Column(name = "ELEMENT_HTML_RDD") + @Column(name = "ELEMENT_HTML_RDD",columnDefinition = "TEXT") @ApiParam(value = "元素html") @JsonSerialize(using = ToStringSerializer.class) - private Long elementHtmlRdd; + private String elementHtmlRdd; @Transient @ApiParam(value = "报表实例") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 7191c64..0bcd1d9 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -1,7 +1,9 @@ package cn.estsh.i3plus.pojo.report.sqlpack; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.report.bean.BrElement; +import cn.estsh.i3plus.pojo.report.bean.BrLayout; import cn.estsh.i3plus.pojo.report.bean.BrMenu; import org.apache.commons.lang3.StringUtils; @@ -76,4 +78,48 @@ public class ReportHqlPack { return result.toString(); } + + /** + * 报表布局查询 + * @param brLayout + * @return + */ + public static String packHqlBrLayout(BrLayout brLayout){ + StringBuffer result = new StringBuffer(); + + // 查询参数封装 + HqlPack.getStringLikerPack(brLayout.getLayoutName(),"layoutName",result); + + return result.toString(); + } + + /** + * 按顺序查询行中的单元格 + * @param rowId + * @return + */ + public static String packHqlBrLayoutColumnByRowIdSortBySeq(Long rowId){ + StringBuffer result = new StringBuffer(); + + // 查询参数封装 + HqlPack.getNumEqualPack(rowId,"layoutRowId",result); + HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"seq"},result); + + return result.toString(); + } + + /** + * 按顺序查询报表中的行 + * @param layoutId + * @return + */ + public static String packHqlBrLayoutColumnByLayoutIdSortBySeq(Long layoutId){ + StringBuffer result = new StringBuffer(); + + // 查询参数封装 + HqlPack.getNumEqualPack(layoutId,"layoutId",result); + HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"seq"},result); + + return result.toString(); + } } From dd9c35e6e17f026c15b90d1f86a5dc97c80afcc9 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Sat, 19 Jan 2019 11:00:12 +0800 Subject: [PATCH 12/24] =?UTF-8?q?=E6=A8=A1=E6=9D=BFPojo=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4=20=E6=A8=A1=E6=9D=BF=20=E6=9E=9A=E4=B8=BE=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20=E6=B7=BB=E5=8A=A0=E6=9E=9A=E4=B8=BE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/enumutil/BlockReportEnumUtil.java | 196 +++++++++++++++++++++ .../estsh/i3plus/pojo/report/bean/BrTemplate.java | 4 + 2 files changed, 200 insertions(+) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index 97c8fad..4a09da5 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -2,6 +2,9 @@ package cn.estsh.i3plus.pojo.base.enumutil; import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.ArrayList; +import java.util.List; + /** * @Description : 模块枚举类 * @Reference : @@ -199,6 +202,141 @@ public class BlockReportEnumUtil { } /** + * 数据状态 + * 1 启用 + * 2 禁用 + * 3 锁定 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum TEMPLATE_TYPE { + TABLE(1, "表格", "表格模板"); + + private int value; + private String name; + private String description; + + TEMPLATE_TYPE() { + } + + TEMPLATE_TYPE(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + public static TEMPLATE_TYPE enumOf(int val) { + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + return values()[i]; + } + } + return null; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + /** + * 表单样式 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum TEMPLATE_STYLE { + + TABLE_LEFT(1, TEMPLATE_TYPE.TABLE, "left", "表单左对齐"), + TABLE_RIGHT(2, TEMPLATE_TYPE.TABLE, "right", "表单右对齐"), + TABLE_CENTER(3, TEMPLATE_TYPE.TABLE, "center", "表单居中"); + + private int value; + private TEMPLATE_TYPE group; + private String name; + private String description; + + TEMPLATE_STYLE() { + } + + TEMPLATE_STYLE(int value,TEMPLATE_TYPE group, String name, String description) { + this.value = value; + this.group = group; + this.name = name; + this.description = description; + } + + public static TEMPLATE_STYLE[] getGroup(TEMPLATE_TYPE type){ + if(type != null){ + List list = new ArrayList<>(); + for (TEMPLATE_STYLE style : TEMPLATE_STYLE.values()) { + if(style.group.equals(type)){ + list.add(style); + } + } + return list.toArray(new TEMPLATE_STYLE[list.size()]); + } + return null; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + /** * HQL WHERE 条件 */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) @@ -320,6 +458,9 @@ public class BlockReportEnumUtil { } } + /** + * 表单聚合 + */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum HQL_AGGREGATION{ @@ -375,4 +516,59 @@ public class BlockReportEnumUtil { } } + /** + * 表单聚合 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum HQL_ORDER{ + + ASC(1, "ASC", "升序"), + DESC(2, "DESC", "降序"); + + private int value; + private String name; + private String description; + + HQL_ORDER() { + } + + HQL_ORDER(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java index 3ad76f8..2cd232d 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -84,6 +84,10 @@ public class BrTemplate extends BaseBean { @ApiParam(value ="模板描述" , access ="模板描述") private String templateDescription; + @Column(name="TEMPLATE_HQL",columnDefinition = "TEXT") + @ApiParam(value ="模板执行HQL" , access ="模板执行HQL") + private String templateHql; + @Column(name="TEMPLATE_HTML",columnDefinition = "TEXT") @ApiParam(value ="模板HTML" , access ="模板HTML") private String templateHtml; From 324c7aa4130760a870e6fa5cf084069140198d6c Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Sun, 20 Jan 2019 13:32:52 +0800 Subject: [PATCH 13/24] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=20=E7=9B=AE=E5=BD=95=E5=8A=9F=E8=83=BD=20=E8=81=94?= =?UTF-8?q?=E8=B0=83=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../estsh/i3plus/pojo/model/common/ClassModel.java | 10 ++++++++ .../cn/estsh/i3plus/pojo/report/bean/BrMenu.java | 6 ++++- .../estsh/i3plus/pojo/report/bean/BrPojoAttr.java | 14 ++++++---- .../estsh/i3plus/pojo/report/bean/BrRefPojo.java | 2 +- .../i3plus/pojo/report/bean/BrRefServerPojo.java | 20 ++++++++++----- .../pojo/report/bean/BrRefTemplateServer.java | 2 +- .../estsh/i3plus/pojo/report/bean/BrTemplate.java | 30 ++++++++++++++++++++++ .../pojo/report/bean/BrTemplateCustomHql.java | 4 +-- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 4 +++ .../pojo/report/sqlpack/TemplateHqlPack.java | 13 ++++++++++ 10 files changed, 89 insertions(+), 16 deletions(-) create mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java index 7884c40..1ad7bc8 100644 --- a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java @@ -6,6 +6,7 @@ import lombok.Setter; import lombok.ToString; import java.io.Serializable; +import java.util.List; /** * @Description : 报表类选择模型 @@ -19,6 +20,12 @@ import java.io.Serializable; @ToString public class ClassModel implements Serializable { + @ApiParam(value ="服务ID") + private int serverId; + + @ApiParam(value ="服务ID") + private String serverName; + @ApiParam(value ="包名") private String packageName; @@ -30,4 +37,7 @@ public class ClassModel implements Serializable { @ApiParam(value ="类描述") private String clzDesc; + + @ApiParam(value ="属性集合") + private List fieldList; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java index 6de49aa..95941b3 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java @@ -96,8 +96,12 @@ public class BrMenu extends BaseBean { private String roleNamesRdd; @Transient + @ApiParam(value ="查询 ID 集合") + private List findIdList = new ArrayList<>(); + + @Transient @ApiParam(value ="角色ID 集合") - private List roleIdList = new ArrayList<>(); + private List roleIdList = new ArrayList<>(); @Transient @ApiParam(value ="子集列表") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java index eda7d86..08f2865 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java @@ -27,7 +27,7 @@ import javax.persistence.Table; @DynamicUpdate @EqualsAndHashCode(callSuper = true) @Table(name="BR_POJO_ATTR") -@Api(value="报表模板",description = "报表模板") +@Api(value="对象属性",description = "对象属性") public class BrPojoAttr extends BaseBean { @Column(name="TEMPLATE_ID") @@ -39,10 +39,6 @@ public class BrPojoAttr extends BaseBean { @ApiParam(value ="服务编号",example = "-1") private Integer serverId; - @Column(name="POJO_CLASS_PATH") - @ApiParam(value ="对象ClassPath") - private String pojoClassPath; - @Column(name="POJO_NAME") @ApiParam(value ="对象名称") private String pojoName; @@ -51,6 +47,14 @@ public class BrPojoAttr extends BaseBean { @ApiParam(value ="对象别名") private String pojoNameAlias; + @Column(name="ATTR_NAME") + @ApiParam(value ="对象别名") + private String attrName; + + @Column(name="ATTR_NAME_ALIAS") + @ApiParam(value ="对象别名") + private String attrNameAlias; + @Column(name="ATTR_TYPE") @ApiParam(value ="属性类型",example = "-1") private Integer attrType; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java index c40470e..05b6a68 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java @@ -27,7 +27,7 @@ import javax.persistence.Table; @DynamicUpdate @EqualsAndHashCode(callSuper = true) @Table(name="BR_REF_POJO") -@Api(value="报表模板",description = "报表模板") +@Api(value="对象关系",description = "对象关系") public class BrRefPojo extends BaseBean { @Column(name="MASTER_TEMPLATE_ID") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java index 77e4c9f..faeef2b 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java @@ -27,7 +27,7 @@ import javax.persistence.Table; @DynamicUpdate @EqualsAndHashCode(callSuper = true) @Table(name="BR_REF_SERVER_POJO") -@Api(value="报表模板",description = "报表模板") +@Api(value="报表模板服务对象",description = "报表模板服务对象") public class BrRefServerPojo extends BaseBean { @Column(name="TEMPLATE_ID") @@ -44,19 +44,27 @@ public class BrRefServerPojo extends BaseBean { private Integer serverId; @Column(name="SERVER_NAME_RDD") - @ApiParam(value ="服务名称" , access ="模板名称") + @ApiParam(value ="服务名称" , access ="服务名称") private String serverNameRdd; + @Column(name="SERVER_PACKAGE_NAME_RDD") + @ApiParam(value ="服务对象包名称" , access ="服务对象包名称") + private String serverPackageNameRdd; + @Column(name="SERVER_POJO_NAME_RDD") - @ApiParam(value ="服务对象名称" , access ="模板名称") + @ApiParam(value ="服务对象名称" , access ="服务对象名称") private String serverPojoNameRdd; + @Column(name="SERVER_POJO_NAME_DESC_RDD") + @ApiParam(value ="服务对象名称中文" , access ="服务对象名称中文") + private String serverPojoNameDescRdd; + @Column(name="SERVER_POJO_NAME_ALIAS") - @ApiParam(value ="服务对象别名" , access ="模板名称") + @ApiParam(value ="服务对象别名" , access ="服务对象别名") private String serverPojoNameAlias; @Column(name="SERVER_POJO_CLASS_PATH") - @ApiParam(value ="服务对象名称" , access ="模板名称") - private String serverPojoClassPath; + @ApiParam(value ="对象全路径名称" , access ="对象全路径名称") + private String serverPojoFullName; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java index d0ebe1f..db686b1 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java @@ -27,7 +27,7 @@ import javax.persistence.Table; @DynamicUpdate @EqualsAndHashCode(callSuper = true) @Table(name="BR_REF_TEMPLATE_SERVER") -@Api(value="报表模板",description = "报表模板") +@Api(value="报表模板-服务",description = "报表模板-服务") public class BrRefTemplateServer extends BaseBean { @Column(name="TEMPLATE_ID") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java index 2cd232d..0a2be32 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -11,6 +11,8 @@ import org.hibernate.annotations.DynamicUpdate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import javax.persistence.Transient; +import java.util.List; /** * @Description : @@ -92,4 +94,32 @@ public class BrTemplate extends BaseBean { @ApiParam(value ="模板HTML" , access ="模板HTML") private String templateHtml; + @Transient + @ApiParam(value ="模板服务") + private List serverList; + + @Transient + @ApiParam(value ="模板服务对象") + private List serverPojoList; + + @Transient + @ApiParam(value ="模板服务对象关系") + private List serverPojoRefList; + + @Transient + @ApiParam(value ="模板服务对象查询条件") + private List pojoAttrWhereList; + + @Transient + @ApiParam(value ="模板服务对象分组条件") + private List pojoAttrGroupList; + + @Transient + @ApiParam(value ="模板服务对象聚合条件") + private List pojoAttrAggrList; + + @Transient + @ApiParam(value ="模板服务对象显示属性") + private List pojoAttrShowList; + } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java index 93dcb89..5e5cfd0 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplateCustomHql.java @@ -35,9 +35,9 @@ public class BrTemplateCustomHql extends BaseBean { @JsonSerialize(using = ToStringSerializer.class) private Long templateId; - @Column(name="CUSTOM_TYPE") + @Column(name="DATA_TYPE") @ApiParam(value ="自定义类型" , example ="-1") - private Integer customType; + private Integer dataType; @Column(name="CUSTOM_CONTENT",columnDefinition="TEXT") @ApiParam(value ="自定义语句内容" , access ="自定义语句内容") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 0bcd1d9..5a911a5 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -58,6 +58,10 @@ public class ReportHqlPack { HqlPack.getStringLikerPack(menu.getName(),"name",result); HqlPack.getStringLikerPack(menu.getMenuCode(),"menuCode",result); + if(menu.getFindIdList() != null && menu.getFindIdList().size() > 0){ + HqlPack.getInPack(StringUtils.join(menu.getFindIdList(),","),"id",result); + } + // 添加默认排序 HqlPack.getOrderDefault(menu); diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java new file mode 100644 index 0000000..1e6911b --- /dev/null +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.pojo.report.sqlpack; + +/** + * @Description : 报表对象封装 + * @Reference : + * @Author : wei peng + * @CreateDate : 2019-01-17 15:41 + * @Modify: + **/ +public class TemplateHqlPack { + + +} From 1e43b2e36f7b438541b1c5f03b39340bb69e7ef0 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Sun, 20 Jan 2019 15:13:58 +0800 Subject: [PATCH 14/24] =?UTF-8?q?=E6=A8=A1=E6=9D=BFPojo=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/enumutil/BlockReportEnumUtil.java | 79 ++++++++++++++++++++++ .../i3plus/pojo/base/enumutil/CommonEnumUtil.java | 10 +++ modules/i3plus-pojo-model/pom.xml | 5 ++ .../i3plus/pojo/model/report/TemplateModel.java | 16 +++++ .../i3plus/pojo/report/bean/BrRefServerPojo.java | 74 ++++++++++++++------ .../pojo/report/bean/BrRefTemplateServer.java | 2 +- .../estsh/i3plus/pojo/report/bean/BrTemplate.java | 4 ++ pom.xml | 6 ++ 8 files changed, 174 insertions(+), 22 deletions(-) create mode 100644 modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index 4a09da5..9d33da8 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -14,6 +14,85 @@ import java.util.List; **/ public class BlockReportEnumUtil { + /** + * 软件类型 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum SOFT_TYPE { + CORE(2, "i3core", "i3业务平台"); + + private int value; + private String code; + private String description; + + private SOFT_TYPE(int value, String code, String description) { + this.value = value; + this.code = code; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getCode() { + return code; + } + + public String getDescription() { + return description; + } + + public static String valueOfCode(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].code; + } + } + return tmp; + } + + public static int codeOfValue(String code) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].code.equals(code)) { + tmp = values()[i].value; + } + } + return tmp; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static SOFT_TYPE valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + return values()[i]; + } + } + return null; + } + + public static String codeOfDescription(String code) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].code.equals(code)) { + tmp = values()[i].description; + } + } + return tmp; + } + } /** * 报表元素枚举 diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java index 24e4496..7c21d8c 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java @@ -85,6 +85,16 @@ public class CommonEnumUtil { return tmp; } + public static SOFT_TYPE valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + return values()[i]; + } + } + return null; + } + public static String codeOfDescription(String code) { String tmp = null; for (int i = 0; i < values().length; i++) { diff --git a/modules/i3plus-pojo-model/pom.xml b/modules/i3plus-pojo-model/pom.xml index 485fdd6..24763f0 100644 --- a/modules/i3plus-pojo-model/pom.xml +++ b/modules/i3plus-pojo-model/pom.xml @@ -24,6 +24,11 @@ i3plus-pojo-platform + + i3plus.pojo + i3plus-pojo-report + + diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java new file mode 100644 index 0000000..7a70e01 --- /dev/null +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.model.report; + +import cn.estsh.i3plus.pojo.report.bean.BrTemplate; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-20 14:05 + * @Modify: + **/ +public class TemplateModel { + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java index faeef2b..1d765cd 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java @@ -39,32 +39,64 @@ public class BrRefServerPojo extends BaseBean { @ApiParam(value ="模板名称" , access ="模板名称") private String templateNameRdd; - @Column(name="SERVER_ID") - @ApiParam(value ="服务编号" ,example = "-1") - private Integer serverId; + @Column(name="POJO_REF_TYPE") + @ApiParam(value ="关系类型") + private Integer pojoRefType; - @Column(name="SERVER_NAME_RDD") - @ApiParam(value ="服务名称" , access ="服务名称") - private String serverNameRdd; + @Column(name="POJO_WHERE_TYPE") + @ApiParam(value ="连接关系") + private Integer pojoWhereType; - @Column(name="SERVER_PACKAGE_NAME_RDD") - @ApiParam(value ="服务对象包名称" , access ="服务对象包名称") - private String serverPackageNameRdd; + @Column(name="POJO_SORT") + @ApiParam(value ="主服务编号" ,example = "-1") + private Integer pojoSort; - @Column(name="SERVER_POJO_NAME_RDD") - @ApiParam(value ="服务对象名称" , access ="服务对象名称") - private String serverPojoNameRdd; + @Column(name="MASTER_SERVER_ID") + @ApiParam(value ="主服务编号" ,example = "-1") + private Integer masterServerId; - @Column(name="SERVER_POJO_NAME_DESC_RDD") - @ApiParam(value ="服务对象名称中文" , access ="服务对象名称中文") - private String serverPojoNameDescRdd; + @Column(name="MASTER_SERVER_NAME_RDD") + @ApiParam(value ="主服务名称" ,example = "-1") + private String masterServerNameRdd; - @Column(name="SERVER_POJO_NAME_ALIAS") - @ApiParam(value ="服务对象别名" , access ="服务对象别名") - private String serverPojoNameAlias; + @Column(name="MASTER_POJO_NAME") + @ApiParam(value ="副对象名称") + private String masterPojoName; - @Column(name="SERVER_POJO_CLASS_PATH") - @ApiParam(value ="对象全路径名称" , access ="对象全路径名称") - private String serverPojoFullName; + @Column(name="MASTER_PACKAGE_NAME_RDD") + @ApiParam(value ="主服务对象包名称" , access ="服务对象包名称") + private String masterPackageNameRdd; + + @Column(name="MASTER_POJO_NAME_ALIAS") + @ApiParam(value ="主对象别名") + private String masterPojoNameAlias; + + @Column(name="MASTER_POJO_NAME_ATTR_NAME") + @ApiParam(value ="主对象属性名称" ) + private String masterPojoAttName; + + @Column(name="SECONDARY_SERVER_ID") + @ApiParam(value ="主服务编号") + private Integer secondaryServerId; + + @Column(name="SECONDARY_SERVER_NAME") + @ApiParam(value ="主服务编号") + private Integer secondaryServerName; + + @Column(name="SECONDARY_POJO_NAME") + @ApiParam(value ="副对象名称") + private String secondaryPojoName; + + @Column(name="SECONDARY_PACKAGE_NAME") + @ApiParam(value ="主服务对象包名称" , access ="服务对象包名称") + private String secondaryPackageName; + + @Column(name="SECONDARY_POJO_NAME_ALIAS") + @ApiParam(value ="副对象别名" ) + private String secondaryPojoNameAlias; + + @Column(name="SECONDARY_POJO_ATTR_NAME") + @ApiParam(value ="副对象属性名称") + private String secondaryPojoAttrName; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java index db686b1..059881a 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefTemplateServer.java @@ -42,7 +42,7 @@ public class BrRefTemplateServer extends BaseBean { @Column(name="SERVER_ID") @ApiParam(value ="服务编号" ,example = "-1") @JsonSerialize(using = ToStringSerializer.class) - private Long serverId; + private Integer serverId; @Column(name="SERVER_NAME_RDD") @ApiParam(value ="服务名称" , access ="模板名称") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java index 0a2be32..36fc139 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -95,6 +95,10 @@ public class BrTemplate extends BaseBean { private String templateHtml; @Transient + @ApiParam(value ="模板服务编号集合") + private List serverIdList; + + @Transient @ApiParam(value ="模板服务") private List serverList; diff --git a/pom.xml b/pom.xml index b8f4488..81d8228 100644 --- a/pom.xml +++ b/pom.xml @@ -107,6 +107,12 @@ ${project.version} + + i3plus.pojo + i3plus-pojo-report + ${project.version} + + com.fasterxml.jackson.core From e35113c51901f72c31f90c4eeaaebfbcb78ba2be Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Wed, 23 Jan 2019 12:00:12 +0800 Subject: [PATCH 15/24] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=8E=92=E7=89=88?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/enumutil/BlockReportEnumUtil.java | 40 ++++++++++++++ .../cn/estsh/i3plus/pojo/report/bean/BrLayout.java | 14 ++--- .../i3plus/pojo/report/bean/BrLayoutColumn.java | 4 +- .../estsh/i3plus/pojo/report/bean/BrLayoutRow.java | 8 +-- .../pojo/report/bean/BrRefReportTemplate.java | 64 ---------------------- ...fReportElement.java => BrRefReportTypeset.java} | 40 +++++--------- .../i3plus/pojo/report/bean/BrReportTemplate.java | 2 +- .../repository/BrRefReportTemplateRepository.java | 14 ----- ...tory.java => BrRefReportTypesetRepository.java} | 4 +- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 21 ++++++- 10 files changed, 88 insertions(+), 123 deletions(-) delete mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTemplate.java rename modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/{BrRefReportElement.java => BrRefReportTypeset.java} (59%) delete mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTemplateRepository.java rename modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/{BrRefReportElementRepository.java => BrRefReportTypesetRepository.java} (58%) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index 4a09da5..894e9cd 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -571,4 +571,44 @@ public class BlockReportEnumUtil { } } + /** + * 报表排版枚举 + * ELEMENT(1,"元素"),TEMPLATE(2,"模板"); + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum REPORT_TYPESET_TYPE{ + + ELEMENT(1,"元素"),TEMPLATE(2,"模板"); + + private int value; + private String description; + + REPORT_TYPESET_TYPE() { + } + + REPORT_TYPESET_TYPE(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + } + } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java index 87bf4b3..9f80884 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayout.java @@ -42,17 +42,17 @@ public class BrLayout extends BaseBean { @ApiParam(value ="布局高度") private Double layoutHeight; - @Column(name="ROW_COUNT") + @Column(name="LAYOUT_ROW_COUNT") @ApiParam(value ="行数") - private Integer rowCount; + private Integer layoutRowCount; - @Column(name="COLUMN_COUNT") + @Column(name="LAYOUT_COLUMN_COUNT") @ApiParam(value ="列数") - private Integer columnCount; + private Integer layoutColumnCount; - @Column(name="SEQ") - @ApiParam(value ="排序") - private Integer seq; + @Column(name="LAYOUT_REPORT_COUNT") + @ApiParam(value ="引用报表数量") + private Integer layoutReportCount; @Column(name="LAYOUT_HTML",columnDefinition = "TEXT") @ApiParam(value ="布局html") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java index 9ff426f..cb924bc 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java @@ -62,9 +62,9 @@ public class BrLayoutColumn extends BaseBean { @ApiParam(value ="列样式") private String columnStyle; - @Column(name="SEQ") + @Column(name="COLUMN_SEQ") @ApiParam(value ="排序") - private Integer seq; + private Integer columnSeq; @Column(name = "COLUMN_DESCRIPTION",columnDefinition = "TEXT") @ApiParam(value ="列描述") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java index f380477..ab8d365 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutRow.java @@ -45,11 +45,11 @@ public class BrLayoutRow extends BaseBean { @ApiParam(value ="行高") private Integer rowHeight; - @Column(name="SEQ") + @Column(name="ROW_SEQ") @ApiParam(value ="排序") - private Integer seq; + private Integer rowSeq; - @Column(name="ROW_STYLE") + @Column(name="ROW_STYLE",columnDefinition = "TEXT") @ApiParam(value ="行样式") private String rowStyle; @@ -57,7 +57,7 @@ public class BrLayoutRow extends BaseBean { @ApiParam(value ="行所关联列数") private Integer rowColNum; - @Column(name="ROW_HTML") + @Column(name="ROW_HTML",columnDefinition = "TEXT") @ApiParam(value ="行html") private String rowHtml; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTemplate.java deleted file mode 100644 index d213c6d..0000000 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTemplate.java +++ /dev/null @@ -1,64 +0,0 @@ -package cn.estsh.i3plus.pojo.report.bean; - -import cn.estsh.i3plus.pojo.base.bean.BaseBean; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiParam; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.hibernate.annotations.DynamicInsert; -import org.hibernate.annotations.DynamicUpdate; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Transient; - -/** - * @Description : 报表模板和报表关联表,多对多 - * @Reference : - * @Author : alwaysfrin - * @CreateDate : 2018-12-25 19:54 - * @Modify: - **/ -@Data -@Entity -@DynamicInsert -@DynamicUpdate -@EqualsAndHashCode(callSuper = true) -@Table(name="BR_REF_REPORT_TEMPLATE") -@Api(value="报表模板&报表",description = "报表模板和报表的关联表 * -》 *") -public class BrRefReportTemplate extends BaseBean { - - @Column(name="REPORT_ID") - @ApiParam(value ="报表主键") - @JsonSerialize(using = ToStringSerializer.class) - private Long reportId; - - @Column(name = "REPORT_NAME_RDD") - @ApiParam(value = "报表名称") - private String reportNameRdd; - - @Column(name="LAYOUT_COLUMN_ID") - @ApiParam(value ="列主键") - @JsonSerialize(using = ToStringSerializer.class) - private Long layoutColumnId; - - @Column(name="REPORT_TEMPLATE_ID") - @ApiParam(value ="报表模板主键") - @JsonSerialize(using = ToStringSerializer.class) - private Long reportTemplateId; - - @Column(name="REPORT_TEMPLATE_NAME_RDD") - @ApiParam(value ="报表模板名称") - private String reportTemplateNameRdd; - - @Column(name="REPORT_TEMPLATE_HTML_RDD") - @ApiParam(value ="报表模板html") - private String reportTemplateHtmlRdd; - - @Transient - @ApiParam(value = "报表模板") - private BrReportTemplate brReportTemplate; -} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java similarity index 59% rename from modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java rename to modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java index dfae91a..dd14e47 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportElement.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java @@ -13,8 +13,6 @@ import org.hibernate.annotations.DynamicUpdate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; -import javax.persistence.Transient; -import java.util.List; /** * @Description : 元素和报表关联表,多对多 @@ -28,9 +26,9 @@ import java.util.List; @DynamicInsert @DynamicUpdate @EqualsAndHashCode(callSuper = true) -@Table(name="BR_REF_REPORT_ELEMENT") -@Api(value="元素&报表",description = "元素和报表的关联表 * -》 *") -public class BrRefReportElement extends BaseBean { +@Table(name="BR_REF_REPORT_TYPESET") +@Api(value="元素&模板&报表",description = "报表,元素和模板的关联表 * -》 *") +public class BrRefReportTypeset extends BaseBean { @Column(name = "REPORT_ID") @ApiParam(value = "报表主键") @@ -41,30 +39,20 @@ public class BrRefReportElement extends BaseBean { @ApiParam(value = "报表名称") private String reportNameRdd; + @Column(name = "REPORT_Typeset_TYPE") + @ApiParam(value = "报表列类型") + private Integer reportTypesetType; + @Column(name = "LAYOUT_COLUMN_ID") - @ApiParam(value = "列主键") + @ApiParam(value = "布局列主键") @JsonSerialize(using = ToStringSerializer.class) private Long layoutColumnId; - @Column(name = "ELEMENT_ID") - @ApiParam(value = "元素主键") - @JsonSerialize(using = ToStringSerializer.class) - private Long elementId; - - @Column(name = "ELEMENT_NAME_RDD") - @ApiParam(value = "元素名称") - private String elementNameRdd; - - @Column(name = "ELEMENT_HTML_RDD",columnDefinition = "TEXT") - @ApiParam(value = "元素html") + /** + * 关联id,元素或模板id + */ + @Column(name = "REL_ID") + @ApiParam(value = "关联id") @JsonSerialize(using = ToStringSerializer.class) - private String elementHtmlRdd; - - @Transient - @ApiParam(value = "报表实例") - private BrReport brReport; - - @Transient - @ApiParam(value = "报表元素") - private BrElement brElement; + private Long contentId; } \ No newline at end of file diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java index 65480b8..8c3ead4 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReportTemplate.java @@ -48,7 +48,7 @@ public class BrReportTemplate extends BaseBean { @Transient @ApiParam(value ="报表模板列表") - private List brReportTemplateDetailList; + private List brRefReportTypesetList; @Transient @ApiParam(value ="元素所在的列") diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTemplateRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTemplateRepository.java deleted file mode 100644 index 1b22193..0000000 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTemplateRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.estsh.i3plus.pojo.report.repository; - -import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; -import cn.estsh.i3plus.pojo.report.bean.BrRefReportTemplate; - -/** - * @Description : - * @Reference : - * @Author : alwaysfrin - * @CreateDate : 2018-12-26 20:23 - * @Modify: - **/ -public interface BrRefReportTemplateRepository extends BaseRepository { -} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportElementRepository.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTypesetRepository.java similarity index 58% rename from modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportElementRepository.java rename to modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTypesetRepository.java index 90771e4..15695f9 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportElementRepository.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/repository/BrRefReportTypesetRepository.java @@ -1,7 +1,7 @@ package cn.estsh.i3plus.pojo.report.repository; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; -import cn.estsh.i3plus.pojo.report.bean.BrRefReportElement; +import cn.estsh.i3plus.pojo.report.bean.BrRefReportTypeset; /** * @Description : @@ -10,5 +10,5 @@ import cn.estsh.i3plus.pojo.report.bean.BrRefReportElement; * @CreateDate : 2018-12-26 20:23 * @Modify: **/ -public interface BrRefReportElementRepository extends BaseRepository { +public interface BrRefReportTypesetRepository extends BaseRepository { } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 0bcd1d9..716a9a6 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.report.bean.BrElement; import cn.estsh.i3plus.pojo.report.bean.BrLayout; import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import cn.estsh.i3plus.pojo.report.bean.BrReport; import org.apache.commons.lang3.StringUtils; /** @@ -103,7 +104,7 @@ public class ReportHqlPack { // 查询参数封装 HqlPack.getNumEqualPack(rowId,"layoutRowId",result); - HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"seq"},result); + HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"columnSeq"},result); return result.toString(); } @@ -113,12 +114,26 @@ public class ReportHqlPack { * @param layoutId * @return */ - public static String packHqlBrLayoutColumnByLayoutIdSortBySeq(Long layoutId){ + public static String packHqlBrLayoutRowByLayoutIdSortBySeq(Long layoutId){ StringBuffer result = new StringBuffer(); // 查询参数封装 HqlPack.getNumEqualPack(layoutId,"layoutId",result); - HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"seq"},result); + HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"rowSeq"},result); + + return result.toString(); + } + + /** + * 报表查询 + * @param brReport + * @return + */ + public static String packHqlBrReport(BrReport brReport){ + StringBuffer result = new StringBuffer(); + + // 查询参数封装 + HqlPack.getStringLikerPack(brReport.getReportName(),"reportName",result); return result.toString(); } From d0cee703feb9be05e30f6cef56f4fe7bfd1cdd70 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Sun, 27 Jan 2019 11:51:07 +0800 Subject: [PATCH 16/24] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/platform/bean/MailConfig.java | 34 ++++++++++++++++++++++ .../i3plus/pojo/report/bean/BrLayoutColumn.java | 2 +- .../pojo/report/bean/BrRefReportTypeset.java | 17 +++++++++-- .../cn/estsh/i3plus/pojo/report/bean/BrReport.java | 30 ++++++++++++++++--- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 5 ++-- 5 files changed, 78 insertions(+), 10 deletions(-) create mode 100644 modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/MailConfig.java diff --git a/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/MailConfig.java b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/MailConfig.java new file mode 100644 index 0000000..ba018d1 --- /dev/null +++ b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/MailConfig.java @@ -0,0 +1,34 @@ +package cn.estsh.i3plus.pojo.platform.bean; + +import io.swagger.annotations.ApiParam; +import lombok.Data; + +/** + * @Description : 邮件配置信息 + * @Reference : + * @Author : yunhao + * @CreateDate : 2019-01-27 10:53 + * @Modify: + **/ +@Data +public class MailConfig { + + @ApiParam(value = "邮箱服务器") + private String mailHost; + + @ApiParam(value = "邮箱端口") + private Integer mailPort; + + @ApiParam(value = "邮箱账号") + private String mailUser; + + @ApiParam(value = "邮箱密码") + private String mailPassword; + + @ApiParam(value = "发信昵称") + private String mailNick; + + @ApiParam(value = "测试收信人") + private String testTo; + +} diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java index cb924bc..8cc144b 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrLayoutColumn.java @@ -70,7 +70,7 @@ public class BrLayoutColumn extends BaseBean { @ApiParam(value ="列描述") private String columnDescription; - @Column(name="COLUMN_HTML") + @Column(name="COLUMN_HTML",columnDefinition = "TEXT") @ApiParam(value ="列html") private String columnHtml; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java index dd14e47..50648f9 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java @@ -51,8 +51,19 @@ public class BrRefReportTypeset extends BaseBean { /** * 关联id,元素或模板id */ - @Column(name = "REL_ID") + @Column(name = "REF_ID") @ApiParam(value = "关联id") - @JsonSerialize(using = ToStringSerializer.class) - private Long contentId; + @JsonSerialize (using = ToStringSerializer.class) + private Long refId; + + /** + * 关联元素或模板html + */ + @Column(name = "REF_HTML") + @ApiParam(value = "关联对象html") + private String refHtml; + + @Column(name = "TYPESET_DESCRIPTION",columnDefinition = "TEXT") + @ApiParam(value ="排版描述") + private String typesetDescription; } \ No newline at end of file diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java index 79d54e2..7cffe53 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.base.bean.BaseBean; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,6 +14,8 @@ import org.hibernate.annotations.DynamicUpdate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import javax.persistence.Transient; +import java.util.List; /** * @Description : 报表实例 @@ -39,16 +42,35 @@ public class BrReport extends BaseBean { @JsonSerialize(using = ToStringSerializer.class) private Long layoutId; - @Column(name="LAYOUT_ID_RDD") + @Column(name="LAYOUT_NAME_RDD") @ApiParam(value ="布局名称") - @JsonSerialize(using = ToStringSerializer.class) - private Long layoutNameRdd; + private String layoutNameRdd; @Column(name="LAYOUT_HTML") - @ApiParam(value ="布局html") + @ApiParam(value ="报表html") private String reportHtml; @Column(name="SEQ") @ApiParam(value ="排序") private Integer seq; + + @Column(name="TEMPLATE_NUM") + @ApiParam(value ="模板数量") + private Integer templateNum; + + @Column(name="ELEMENT_NUM") + @ApiParam(value ="元素数量") + private Integer elementNum; + + @Column(name = "REPORT_DESCRIPTION",columnDefinition = "TEXT") + @ApiParam(value ="报表描述") + private String reportDescription; + + @Transient + @ApiParam(value = "报表关联布局对象") + private BrLayout brLayout; + + @Transient + @ApiParam(value = "报表排版关系") + private List brRefReportTypesetList; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 716a9a6..d4350dc 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -104,7 +104,7 @@ public class ReportHqlPack { // 查询参数封装 HqlPack.getNumEqualPack(rowId,"layoutRowId",result); - HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"columnSeq"},result); + HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue(),CommonEnumUtil.ASC_OR_DESC.DESC.getValue()},new String[]{"columnSeq","modifyDatetime"},result); return result.toString(); } @@ -119,7 +119,7 @@ public class ReportHqlPack { // 查询参数封装 HqlPack.getNumEqualPack(layoutId,"layoutId",result); - HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()},new String[]{"rowSeq"},result); + HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue(),CommonEnumUtil.ASC_OR_DESC.DESC.getValue()},new String[]{"rowSeq","modifyDatetime"},result); return result.toString(); } @@ -134,6 +134,7 @@ public class ReportHqlPack { // 查询参数封装 HqlPack.getStringLikerPack(brReport.getReportName(),"reportName",result); + HqlPack.getNumEqualPack(brReport.getLayoutId(),"layoutId",result); return result.toString(); } From 40d37ed5c95027ddf21602b6c42e14ec89279b7b Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Mon, 28 Jan 2019 13:13:01 +0800 Subject: [PATCH 17/24] =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=BE=AE=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=8E=A5=E5=8F=A3=20=E6=8A=A5=E8=A1=A8=E5=85=83?= =?UTF-8?q?=E7=B4=A0=20=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java | 2 +- .../src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java index 50648f9..ff730f1 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefReportTypeset.java @@ -39,7 +39,7 @@ public class BrRefReportTypeset extends BaseBean { @ApiParam(value = "报表名称") private String reportNameRdd; - @Column(name = "REPORT_Typeset_TYPE") + @Column(name = "REPORT_TYPESET_TYPE") @ApiParam(value = "报表列类型") private Integer reportTypesetType; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java index 7cffe53..a88c054 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrReport.java @@ -42,6 +42,15 @@ public class BrReport extends BaseBean { @JsonSerialize(using = ToStringSerializer.class) private Long layoutId; + //get单独处理 + public Long getLayoutId() { + if(layoutId != null) { + return layoutId.longValue(); + }else{ + return layoutId; + } + } + @Column(name="LAYOUT_NAME_RDD") @ApiParam(value ="布局名称") private String layoutNameRdd; From 2bd16137bd95cff1608168614a51f7f77c7514fd Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Mon, 28 Jan 2019 18:14:28 +0800 Subject: [PATCH 18/24] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/bean/BaseResultBean.java | 1 + .../pojo/base/enumutil/BlockReportEnumUtil.java | 109 +++++- .../i3plus/pojo/base/enumutil/CommonEnumUtil.java | 7 +- .../i3plus/pojo/model/common/ClassFieldModel.java | 18 +- .../estsh/i3plus/pojo/model/common/ClassModel.java | 14 +- .../i3plus/pojo/model/report/TemplateModel.java | 14 +- .../i3plus/pojo/platform/bean/SysRefUserRole.java | 1 - .../i3plus/pojo/platform/bean/SysUserInfo.java | 3 - .../estsh/i3plus/pojo/report/bean/BrPojoAttr.java | 24 +- .../estsh/i3plus/pojo/report/bean/BrRefPojo.java | 8 +- .../i3plus/pojo/report/bean/BrRefServerPojo.java | 17 +- .../estsh/i3plus/pojo/report/bean/BrTemplate.java | 11 +- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 20 + .../pojo/report/sqlpack/TemplateHqlPack.java | 409 +++++++++++++++++++++ 14 files changed, 617 insertions(+), 39 deletions(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseResultBean.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseResultBean.java index 43d7a46..7a32a1c 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseResultBean.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseResultBean.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.pojo.base.bean; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import io.swagger.annotations.ApiParam; +import lombok.Data; import java.util.List; import java.util.Map; diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index 9d33da8..80627d7 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -425,16 +425,16 @@ public class BlockReportEnumUtil { GT_EQUAL(2, ">=", "大于等于"), LT(3, "<", "小于等于"), LT_EQUAL(4, "<=", "小于等于"), - LIKE(5, "like", "模糊"), - LIKE_LEFT(6, "like", "左模糊"), - LIKE_RIGHT(7, "like", "右模糊"), + LIKE(5, "LIKE", "模糊"), + LIKE_LEFT(6, "LIKE", "左模糊"), + LIKE_RIGHT(7, "LIKE", "右模糊"), EQUAL(8, "=", "等于"), EQUAL_NOT(9, "!=", "不等于"), - AND(10, "and", "AND"), - OR(11, "or", "OR"), - NOT(12, "not", "NOT"), - IS_NULL(13, "is null", "IS NULL"), - IS_NOT_NULL(14, "is not null", "IS NOT NULL"); + AND(10, "AND", "AND"), + OR(11, "OR", "OR"), + NOT(12, "NOT", "NOT"), + IS_NULL(13, "IS NULL", "IS NULL"), + IS_NOT_NULL(14, "IS NOT NULL", "IS NOT NULL"); private int value; private String name; @@ -461,14 +461,13 @@ public class BlockReportEnumUtil { return name; } - public static String valueOf(int val) { - String tmp = null; + public static HQL_WHERE valueOf(int val) { for (int i = 0; i < values().length; i++) { if (values()[i].value == val) { - tmp = values()[i].getName(); + return values()[i]; } } - return tmp; + return null; } public static int descOf(String desc) { @@ -516,14 +515,14 @@ public class BlockReportEnumUtil { return name; } - public static String valueOf(int val) { - String tmp = null; + public static HQL_REF valueOf(int val) { + HQL_REF tmp = null; for (int i = 0; i < values().length; i++) { if (values()[i].value == val) { - tmp = values()[i].getName(); + return values()[i]; } } - return tmp; + return null; } public static int descOf(String desc) { @@ -584,6 +583,84 @@ public class BlockReportEnumUtil { return tmp; } + public static HQL_AGGREGATION valueOf(Integer val) { + if(val != null){ + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val.intValue()) { + return values()[i]; + } + } + } + return null; + } + + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum HQL_ATTR_DATA_TYPE{ + + SHOW(1, "show", "显示"), + WHERE(2, "where", "查询"), + GROUP(3, "group", "分组"), + AGGREGATION(4, "聚合", "聚合"); + + private int value; + private String name; + private String description; + + HQL_ATTR_DATA_TYPE() { + } + + HQL_ATTR_DATA_TYPE(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + + public static HQL_ATTR_DATA_TYPE valueOf(Integer val) { + if(val != null){ + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val.intValue()) { + return values()[i]; + } + } + } + return null; + } + + public static int descOf(String desc) { int tmp = 1; for (int i = 0; i < values().length; i++) { diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java index 7c21d8c..17db269 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/CommonEnumUtil.java @@ -95,14 +95,13 @@ public class CommonEnumUtil { return null; } - public static String codeOfDescription(String code) { - String tmp = null; + public static SOFT_TYPE codeOfDescription(String code) { for (int i = 0; i < values().length; i++) { if (values()[i].code.equals(code)) { - tmp = values()[i].description; + return values()[i]; } } - return tmp; + return null; } } diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java index 5b6eab2..5278ac4 100644 --- a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java @@ -1,10 +1,15 @@ package cn.estsh.i3plus.pojo.model.common; +import cn.estsh.i3plus.pojo.base.annotation.RefPojo; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiParam; +import lombok.Data; import lombok.Getter; import lombok.Setter; import lombok.ToString; +import javax.persistence.Column; import java.io.Serializable; /** @@ -14,9 +19,7 @@ import java.io.Serializable; * @CreateDate : 2018-12-29 15:17 * @Modify: **/ -@Getter -@Setter -@ToString +@Data public class ClassFieldModel implements Serializable { @ApiParam(value ="包名") @@ -31,6 +34,15 @@ public class ClassFieldModel implements Serializable { @ApiParam(value ="属性名") private String fieldName; + @ApiParam(value ="属性别名") + private String fieldNameAlias; + @ApiParam(value ="属性描述") private String fieldDesc; + + @Column(name="AGGREGATION_TYPE") + @ApiParam(value ="聚合ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long aggregationId; + } diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java index 1ad7bc8..73d61dd 100644 --- a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassModel.java @@ -1,6 +1,9 @@ package cn.estsh.i3plus.pojo.model.common; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiParam; +import lombok.Data; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -15,9 +18,7 @@ import java.util.List; * @CreateDate : 2018-12-29 15:17 * @Modify: **/ -@Getter -@Setter -@ToString +@Data public class ClassModel implements Serializable { @ApiParam(value ="服务ID") @@ -26,6 +27,13 @@ public class ClassModel implements Serializable { @ApiParam(value ="服务ID") private String serverName; + @ApiParam(value ="服务对象ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long serverPojoId; + + @ApiParam(value ="服务对象别名") + private String serverPojoNameAlias; + @ApiParam(value ="包名") private String packageName; diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java index 7a70e01..361636c 100644 --- a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java @@ -1,8 +1,7 @@ package cn.estsh.i3plus.pojo.model.report; -import cn.estsh.i3plus.pojo.report.bean.BrTemplate; - -import java.util.List; +import io.swagger.annotations.ApiParam; +import lombok.Data; /** * @Description : @@ -11,6 +10,15 @@ import java.util.List; * @CreateDate : 2019-01-20 14:05 * @Modify: **/ +@Data public class TemplateModel { + @ApiParam("执行 HQL ") + private String hql; + + @ApiParam("执行 HQL 参数名称 ") + private String[] paramName; + + @ApiParam("执行 HQL 参数值 ") + private Object[] paramValue; } diff --git a/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysRefUserRole.java b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysRefUserRole.java index f28536b..223afa8 100644 --- a/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysRefUserRole.java +++ b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysRefUserRole.java @@ -30,7 +30,6 @@ import javax.persistence.Table; @Api(value="关系-用户角色",description = "关系-用户角色") public class SysRefUserRole extends BaseBean { - private static final long serialVersionUID = 1L; @Column(name="USER_ID") @ApiParam(value ="用户ID" , example = "-1") diff --git a/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysUserInfo.java b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysUserInfo.java index 5719306..7ac1d95 100644 --- a/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysUserInfo.java +++ b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysUserInfo.java @@ -3,9 +3,6 @@ package cn.estsh.i3plus.pojo.platform.bean; import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn; import cn.estsh.i3plus.pojo.base.bean.BaseBean; import cn.estsh.i3plus.pojo.base.bean.BaseConstWords; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.Api; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java index 08f2865..9c0fac3 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java @@ -36,13 +36,22 @@ public class BrPojoAttr extends BaseBean { private Long templateId; @Column(name="SERVER_ID") - @ApiParam(value ="服务编号",example = "-1") + @ApiParam(value ="服务ID",example = "-1") private Integer serverId; + @Column(name="POJO_ID") + @ApiParam(value ="模板对象ID" ,example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long pojoId; + @Column(name="POJO_NAME") @ApiParam(value ="对象名称") private String pojoName; + @Column(name="PACKAGE_NAME_RDD") + @ApiParam(value ="主服务对象包名称" , access ="服务对象包名称") + private String packageNameRdd; + @Column(name="POJO_NAME_ALIAS") @ApiParam(value ="对象别名") private String pojoNameAlias; @@ -71,10 +80,23 @@ public class BrPojoAttr extends BaseBean { @ApiParam(value ="聚合类型",example = "-1") private Integer aggregationType; + @Column(name="AGGREGATION_ID") + @ApiParam(value ="聚合类型",example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long aggregationId; + @Column(name="ATTR_SORT") @ApiParam(value ="字段排序") private Integer attrSort; + @Column(name="ATTR_DATA_SORT") + @ApiParam(value ="字段排序") + private Integer attrDataSort; + + @Column(name="ATTR_STYLE") + @ApiParam(value ="字段样式") + private Integer attrStyle; + @Column(name="ATTR_DEFAULT_VALUE") @ApiParam(value ="属性默认值") private String attrDefaultValue; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java index 05b6a68..ae634ed 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefPojo.java @@ -30,15 +30,19 @@ import javax.persistence.Table; @Api(value="对象关系",description = "对象关系") public class BrRefPojo extends BaseBean { - @Column(name="MASTER_TEMPLATE_ID") + @Column(name="TEMPLATE_ID") @ApiParam(value ="模板编号" ,example = "-1") @JsonSerialize(using = ToStringSerializer.class) - private Long masterTemplateId; + private Long templateId; @Column(name="REF_TYPE") @ApiParam(value ="关系类型") private Integer refType; + @Column(name="REF_SORT") + @ApiParam(value ="关系排序") + private Integer refSort; + @Column(name="MASTER_SERVER_ID") @ApiParam(value ="主服务编号" ,example = "-1") private Integer masterServerId; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java index 1d765cd..f6bc656 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrRefServerPojo.java @@ -13,6 +13,8 @@ import org.hibernate.annotations.DynamicUpdate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import javax.persistence.Transient; +import java.util.List; /** * @Description : @@ -71,9 +73,13 @@ public class BrRefServerPojo extends BaseBean { @ApiParam(value ="主对象别名") private String masterPojoNameAlias; + @Column(name="MASTER_POJO_NAME_DESC") + @ApiParam(value ="主对象中文名称") + private String masterPojoNameDesc; + @Column(name="MASTER_POJO_NAME_ATTR_NAME") @ApiParam(value ="主对象属性名称" ) - private String masterPojoAttName; + private String masterPojoAttrName; @Column(name="SECONDARY_SERVER_ID") @ApiParam(value ="主服务编号") @@ -81,7 +87,7 @@ public class BrRefServerPojo extends BaseBean { @Column(name="SECONDARY_SERVER_NAME") @ApiParam(value ="主服务编号") - private Integer secondaryServerName; + private String secondaryServerName; @Column(name="SECONDARY_POJO_NAME") @ApiParam(value ="副对象名称") @@ -95,8 +101,15 @@ public class BrRefServerPojo extends BaseBean { @ApiParam(value ="副对象别名" ) private String secondaryPojoNameAlias; + @Column(name="SECONDARY_POJO_NAME_DESC") + @ApiParam(value ="副对象中文名称") + private String secondaryPojoNameDesc; + @Column(name="SECONDARY_POJO_ATTR_NAME") @ApiParam(value ="副对象属性名称") private String secondaryPojoAttrName; + @Transient + @ApiParam(value ="模板服务对象属性") + private List pojoAttrList; } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java index 36fc139..07dc0f3 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -26,7 +26,7 @@ import java.util.List; @DynamicInsert @DynamicUpdate @EqualsAndHashCode(callSuper = true) -@Table(name="BR_CUSTOM_HQL") +@Table(name="BR_TEMPLATE") @Api(value="报表模板",description = "报表模板") public class BrTemplate extends BaseBean { @@ -54,6 +54,10 @@ public class BrTemplate extends BaseBean { @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") private Integer numServer; + @Column(name="TEMPLATE_SERVER_ID_LIST",columnDefinition = "TEXT") + @ApiParam(value ="数据服务ID集合" , access ="服务名称") + private String templateServerIdList; + @Column(name="TEMPLATE_SERVER_NAMES_RDD",columnDefinition = "TEXT") @ApiParam(value ="服务名称" , access ="服务名称") private String templateServerNamesRdd; @@ -111,6 +115,11 @@ public class BrTemplate extends BaseBean { private List serverPojoRefList; @Transient + @ApiParam(value ="模板服务对象关联属性") + private List pojoAttrList; + + + @Transient @ApiParam(value ="模板服务对象查询条件") private List pojoAttrWhereList; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 5a911a5..c434e19 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.report.bean.BrElement; import cn.estsh.i3plus.pojo.report.bean.BrLayout; import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import cn.estsh.i3plus.pojo.report.bean.BrTemplate; import org.apache.commons.lang3.StringUtils; /** @@ -69,6 +70,25 @@ public class ReportHqlPack { } /** + * 目录查询封装 + * @param template + * @return + */ + public static String packHqlBrTemplate(BrTemplate template){ + StringBuffer result = new StringBuffer(); + + // 查询参数封装 + HqlPack.getNumEqualPack(template.getTemplateType(),"templateType",result); + HqlPack.getNumEqualPack(template.getTemplateStatus(),"templateStatus",result); + HqlPack.getStringLikerPack(template.getName(),"name",result); + + // 添加默认排序 + HqlPack.getOrderDefault(template); + + return result.toString(); + } + + /** * 报表元素查询 * @param brElement * @return diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java index 1e6911b..2da95c0 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java @@ -1,5 +1,19 @@ package cn.estsh.i3plus.pojo.report.sqlpack; +import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; +import cn.estsh.i3plus.pojo.base.enumutil.BlockReportEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.model.report.TemplateModel; +import cn.estsh.i3plus.pojo.report.bean.BrPojoAttr; +import cn.estsh.i3plus.pojo.report.bean.BrRefServerPojo; +import cn.estsh.i3plus.pojo.report.bean.BrTemplateCustomHql; +import com.alibaba.fastjson.JSON; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.*; + /** * @Description : 报表对象封装 * @Reference : @@ -9,5 +23,400 @@ package cn.estsh.i3plus.pojo.report.sqlpack; **/ public class TemplateHqlPack { + private static final Logger LOGGER = LoggerFactory.getLogger(TemplateHqlPack.class); + + /** + * 拼接查询字段 + * + * @param attrs + * @return + */ + public static String getSelectHqlColumn(List attrs) { + StringBuffer result = new StringBuffer(); + BlockReportEnumUtil.HQL_AGGREGATION aggr = null; + if (attrs != null && attrs.size() > 0) { + for (BrPojoAttr attr : attrs) { + aggr = BlockReportEnumUtil.HQL_AGGREGATION.valueOf(attr.getAggregationType()); + + // 聚合函数控制 + if (aggr == null) { + result.append("," + attr.getPojoNameAlias() + "." + attr.getAttrName()); + } else { + result.append(", " + aggr.getName() + "(" + attr.getPojoNameAlias() + "." + attr.getAttrName() + ")"); + } + + // 添加别名 + if (StringUtils.isNotBlank(attr.getAttrNameAlias())) { + result.append(" AS " + attr.getAttrNameAlias()); + } else { + result.append(" AS " + attr.getPojoNameAlias() + "_" + attr.getAttrName()); + } + } + return result.substring(result.indexOf(",") + 1, result.length()); + } + return result.toString(); + } + + /** + * 拼接分组字段 + * + * @param attrs + * @return + */ + public static String getSelectHqlGroupColumn(List attrs) { + StringBuffer result = new StringBuffer(); + BlockReportEnumUtil.HQL_AGGREGATION aggr = null; + if (attrs != null && attrs.size() > 0) { + for (BrPojoAttr attr : attrs) { + result.append("," + attr.getPojoNameAlias() + "." + attr.getAttrName()); + } + } + return result.toString(); + } + + public static StringBuffer getSelectHqlJoin(List list) { + StringBuffer hqlJoin = new StringBuffer(); + if (list != null && list.size() > 0) { + BrRefServerPojo masterPojo = list.get(0); + BrRefServerPojo pojo; + BlockReportEnumUtil.HQL_REF refType; + BlockReportEnumUtil.HQL_WHERE whereType;// 对象连接封装 + hqlJoin.append(" " + masterPojo.getMasterPojoName() + " AS " + masterPojo.getMasterPojoNameAlias()); + for (int i = 1; i < list.size(); i++) { + pojo = list.get(i); + refType = BlockReportEnumUtil.HQL_REF.valueOf(pojo.getPojoRefType()); + whereType = BlockReportEnumUtil.HQL_WHERE.valueOf(pojo.getPojoWhereType()); + if (refType != null && whereType != null) { + hqlJoin.append(" " + refType.getName()); + hqlJoin.append(" " + pojo.getMasterPojoName() + " AS " + pojo.getMasterPojoNameAlias()); + hqlJoin.append(" ON " + pojo.getMasterPojoNameAlias() + "." + pojo.getMasterPojoAttrName()); + hqlJoin.append(" " + whereType.getName() + " " + pojo.getSecondaryPojoNameAlias() + "." + pojo.getSecondaryPojoAttrName()); + } else { + LOGGER.info(""); + } + } + } + return hqlJoin; + } + + public static String getSelectHqlWhere(List attrs, Map map) { + StringBuffer hqlWhere = new StringBuffer(); + if (attrs != null && attrs.size() > 0) { + BlockReportEnumUtil.HQL_WHERE whereType = null; + for (BrPojoAttr attr : attrs) { + whereType = BlockReportEnumUtil.HQL_WHERE.valueOf(attr.getAttrRefType()); + if (whereType != null) { + hqlWhere.append(" AND " + attr.getPojoNameAlias() + "." + attr.getAttrName()); + if (BlockReportEnumUtil.HQL_WHERE.LIKE.equals(whereType)) { // like %% + hqlWhere.append(" " + whereType.getName() + " :" + attr.getPojoNameAlias() + "_" + attr.getAttrName()); + map.put(attr.getPojoNameAlias() + "_" + attr.getAttrName(), "%" + attr.getAttrDefaultValue() + "%"); + } else if (BlockReportEnumUtil.HQL_WHERE.LIKE_LEFT.equals(whereType)) { + hqlWhere.append(" " + whereType.getName() + " :" + attr.getPojoNameAlias() + "_" + attr.getAttrName()); + map.put(attr.getPojoNameAlias() + "_" + attr.getAttrName(), "%" + attr.getAttrDefaultValue()); + } else if (BlockReportEnumUtil.HQL_WHERE.LIKE_RIGHT.equals(whereType)) { + hqlWhere.append(" " + whereType.getName() + " :" + attr.getPojoNameAlias() + "_" + attr.getAttrName()); + map.put(attr.getPojoNameAlias() + "_" + attr.getAttrName(), attr.getAttrDefaultValue() + "%"); + } + } else { + LOGGER.info(""); + } + } + } + return hqlWhere.toString(); + } + + public static String getSelectHqlWhereCustomHql(List customList) { + StringBuffer hqlWhere = new StringBuffer(); + if (customList != null && customList.size() > 0) { + for (BrTemplateCustomHql hql : customList) { + if(hql.getDataType().intValue() == BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.WHERE.getValue()){ + hqlWhere.append(" " + hql.getCustomContent()); + } + } + } + return hqlWhere.toString(); + } + + public static String getSelectHqlWhereGroup(List customList) { + StringBuffer hql = new StringBuffer(); + if (customList != null && customList.size() > 0) { + hql.append(" GROUP BY "); + for (BrPojoAttr attr : customList) { + hql.append(" " + attr.getPojoNameAlias() + "." + attr.getAttrName()); + } + } + return hql.toString(); + } + + /** + * 拼接查询语句 + * + * @param list + * @return + */ + public static TemplateModel getTemplateModel(List list,BrTemplateCustomHql hqlList) { + if (list != null && list.size() > 0) { + TemplateModel model = new TemplateModel(); + StringBuffer result = new StringBuffer(); // 查询语句主体 + List attrShowList = new ArrayList<>(); // 查询列的属性 + List attrWhereList = new ArrayList<>(); // 查询列的属性 + List attrGroupList = new ArrayList<>(); // 查询列的属性 + Map paramMap = new HashMap<>(); + List tmpList = null; + + // list 先排序下 + list.sort(Comparator.comparing(BrRefServerPojo::getPojoSort)); + + // 对象属性封装 + for (BrRefServerPojo refServerPojo : list) { + tmpList = refServerPojo.getPojoAttrList(); + if (tmpList != null && tmpList.size() > 0) { + for (BrPojoAttr attr : tmpList) { + if (BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue() == attr.getDataType().intValue() + || BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.AGGREGATION.getValue() == attr.getDataType().intValue()) { + attrShowList.add(attr); + } else if (BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.WHERE.getValue() == attr.getDataType().intValue()) { + attrWhereList.add(attr); + } else if (BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.GROUP.getValue() == attr.getDataType().intValue()) { + attrGroupList.add(attr); + } + } + } + } + attrShowList.sort(Comparator.comparing(BrPojoAttr::getAttrSort)); + attrGroupList.sort(Comparator.comparing(BrPojoAttr::getAttrSort)); + attrWhereList.sort(Comparator.comparing(BrPojoAttr::getAttrSort)); + // HQL 拼接 + + result.append(" SELECT "); + result.append(getSelectHqlColumn(attrShowList)); + result.append(" FROM "); + result.append(getSelectHqlJoin(list)); + result.append(" WHERE 1=1 "); + result.append(getSelectHqlWhere(attrWhereList, paramMap)); + result.append(getSelectHqlWhereGroup(attrGroupList)); + if(hqlList != null){ + result.append(getSelectHqlWhereCustomHql(Arrays.asList(hqlList))); + } + + model.setHql(result.toString()); + model.setParamName(paramMap.keySet().stream().toArray(String[]::new)); + model.setParamValue(paramMap.values().stream().toArray(Object[]::new)); + + return model; + } + return null; + } + + public static List> getResultListTable(BaseResultBean bean,TemplateModel model) { + List> result = new ArrayList<>(); + Map line = null; + if (bean != null && bean.isSuccess() && model != null) { + List list = bean.getResultList(); + if (list != null && list.size() > 0) { + List columnList = getSelectHqlColumnAs(model.getHql()); + if (columnList != null && columnList.size() > 0) { + if(columnList.size() == 1){ + for (Object value : list) { + line = new HashMap<>(); + line.put(columnList.get(0), value); + result.add(line); + } + }else { + for (List rows : list) { + line = new HashMap<>(); + for (int i = 0; i < rows.size(); i++) { + line.put(columnList.get(i), rows.get(i)); + } + result.add(line); + } + } + } else { + LOGGER.info("无法解析HQL 列属性"); + } + } + } + return result; + } + + public static List getSelectHqlColumnAs(String hql) { + List result = new ArrayList<>(); + // hql 中必须包含 select 和 from + if (StringUtils.isNotBlank(hql) && + hql.indexOf("SELECT") != -1 && hql.indexOf("FROM") != -1) { + + hql = hql.substring(hql.indexOf("SELECT") + 1, hql.indexOf("FROM")); + if (StringUtils.isNotBlank(hql)) { + String[] columnArray = hql.split(","); + if (columnArray != null && columnArray.length > 0) { + for (String column : columnArray) { + result.add(column.substring(column.indexOf("AS") + 2, column.length()).trim()); + } + } + } + } + return result; + } + + public static Map getResultMap(BaseResultBean bean,TemplateModel model){ + Map result = new HashMap<>(); + if(bean != null && model != null){ + if (ResourceEnumUtil.MESSAGE.SUCCESS.getCode().equals(bean.getCode())) { + if(StringUtils.isNotBlank(model.getHql())){ // 有HQL + String hql = model.getHql().substring(0,model.getHql().indexOf("FROM")); + System.out.println(hql); + } + }else { + LOGGER.info("请求处理失败"); + } + } + return result; + } + + + public static void main(String[] args) { + List suList = new ArrayList<>(); + List suiList = new ArrayList<>(); + List surList = new ArrayList<>(); + List pojoList = new ArrayList<>(); + +// ------------------------------------ SysUser Attr ------------------------------------ + BrPojoAttr suAttr = new BrPojoAttr(); + suAttr.setAttrSort(0); + suAttr.setPojoNameAlias("su"); + suAttr.setAttrName("userInfoId"); + suAttr.setAttrNameAlias("德玛西亚"); + suAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + BrPojoAttr suAttr1 = new BrPojoAttr(); + suAttr1.setAttrSort(1); + suAttr1.setPojoNameAlias("su"); + suAttr1.setAttrName("userName"); + suAttr1.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + BrPojoAttr suAttr2 = new BrPojoAttr(); + suAttr2.setAttrSort(2); + suAttr2.setPojoNameAlias("su"); + suAttr2.setAttrName("userLoginName"); + suAttr2.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + BrPojoAttr suAttr3 = new BrPojoAttr(); + suAttr3.setAttrSort(3); + suAttr3.setPojoNameAlias("su"); + suAttr3.setAttrName("userEmpNo"); + suAttr3.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + suList.add(suAttr); + suList.add(suAttr1); + suList.add(suAttr2); + suList.add(suAttr3); +// ------------------------------------ SysUserInfo Attr ------------------------------------ + + BrPojoAttr suiAttr = new BrPojoAttr(); + suiAttr.setAttrSort(0); + suiAttr.setPojoNameAlias("sui"); + suiAttr.setAttrName("name"); + suiAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + BrPojoAttr suiAttr1 = new BrPojoAttr(); + suiAttr1.setAttrSort(1); + suiAttr1.setPojoNameAlias("sui"); + suiAttr1.setAttrName("userEmployeeType"); + suiAttr1.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + + BrPojoAttr suiAttr2 = new BrPojoAttr(); + suiAttr2.setAttrSort(2); + suiAttr2.setPojoNameAlias("sui"); + suiAttr2.setAttrName("userBornDate"); + suiAttr2.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + + BrPojoAttr suiAttr3 = new BrPojoAttr(); + suiAttr3.setAttrSort(3); + suiAttr3.setPojoNameAlias("sui"); + suiAttr3.setAttrName("userSchool"); + suiAttr3.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + BrPojoAttr suiAttr4 = new BrPojoAttr(); + suiAttr4.setAttrSort(4); + suiAttr4.setPojoNameAlias("sui"); + suiAttr4.setAttrName("userEmpNo"); + suiAttr4.setAttrNameAlias("userEmpNo"); + suiAttr4.setAttrDefaultValue("英雄联盟"); + suiAttr4.setAttrRefType(BlockReportEnumUtil.HQL_WHERE.LIKE.getValue()); + suiAttr4.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.WHERE.getValue()); + + suiList.add(suiAttr); + suiList.add(suiAttr1); + suiList.add(suiAttr2); + suiList.add(suiAttr3); + suiList.add(suiAttr4); +// ------------------------------------ SysRefUserRole Attr ------------------------------------ + BrPojoAttr surAttr = new BrPojoAttr(); + surAttr.setAttrSort(1); + surAttr.setPojoNameAlias("sur"); + surAttr.setAttrName("id"); + surAttr.setAggregationType(BlockReportEnumUtil.HQL_AGGREGATION.COUNT.getValue()); + surAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.AGGREGATION.getValue()); + surAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); + + surList.add(surAttr); + +// ------------------------------------ Pojo SysUserInfo ------------------------------------ + + BrRefServerPojo suiPojo = new BrRefServerPojo(); + suiPojo.setMasterPojoName("SysUserInfo"); + suiPojo.setMasterPojoNameAlias("sui"); + suiPojo.setPojoSort(1); + suiPojo.setPojoAttrList(suiList); + +// ------------------------------------ Pojo SysUser ------------------------------------ + BrRefServerPojo suPojo = new BrRefServerPojo(); + suPojo.setMasterPojoName("SysUser"); + suPojo.setMasterPojoNameAlias("su"); + suPojo.setMasterPojoAttrName("userInfoId"); + + suPojo.setSecondaryPojoName("SysUserInfo"); + suPojo.setSecondaryPojoNameAlias("sui"); + suPojo.setSecondaryPojoAttrName("id"); + + suPojo.setPojoRefType(BlockReportEnumUtil.HQL_REF.LEFT_JOIN.getValue()); + suPojo.setPojoWhereType(BlockReportEnumUtil.HQL_WHERE.EQUAL.getValue()); + suPojo.setPojoSort(2); + suPojo.setPojoAttrList(suList); + +// ------------------------------------ Pojo SysRefUserRole ------------------------------------ + BrRefServerPojo surPojo = new BrRefServerPojo(); + surPojo.setMasterPojoName("SysRefUserRole"); + surPojo.setMasterPojoNameAlias("sur"); + surPojo.setMasterPojoAttrName("userId"); + + surPojo.setSecondaryPojoName("SysUser"); + surPojo.setSecondaryPojoNameAlias("su"); + surPojo.setSecondaryPojoAttrName("id"); + + surPojo.setPojoRefType(BlockReportEnumUtil.HQL_REF.LEFT_JOIN.getValue()); + surPojo.setPojoWhereType(BlockReportEnumUtil.HQL_WHERE.EQUAL.getValue()); + surPojo.setPojoSort(3); + surPojo.setPojoAttrList(surList); + + pojoList.add(suiPojo); + pojoList.add(suPojo); + pojoList.add(surPojo); + +// System.out.println(getSelectHqlColumn(suList)); +// System.out.println(JSON.toJSONString(getTemplateModel(pojoList))); + +// String json = "{\"code\":\"20001\",\"msg\":\"select sui.name as sui_name,su.userInfoId as 德玛西亚,sui.userEmployeeType as sui_userEmployeeType,su.userName as su_userName, count(sur.id) as sur_id,sui.userBornDate as sui_userBornDate,su.userLoginName as su_userLoginName,sui.userSchool as sui_userSchool,su.userEmpNo as su_userEmpNo from SysUserInfo as sui left join SysUser as su on su.userInfoId = sui.id left join SysRefUserRole as sur on sur.userId = su.id\",\"resultList\":[[\"管理员\",1077896159978196992,1,\"管理员\",2,\"1993-06-30\",\"admin\",\"复旦大学\",\"10001\"]],\"success\":true,\"totalCount\":0}"; +// BaseResultBean resultBean = JSON.parseObject(json,BaseResultBean.class); +// +// System.out.println(getSelectHqlColumnAs(resultBean.getMsg()));; +// +// System.out.println(resultBean.getMsg()); +// List> table = getResultListTable(resultBean); +// System.out.println(JSON.toJSONString(table)); + } + } From ae08c3ef769c3c30f038211296fdbf95ae56d2e1 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Mon, 28 Jan 2019 18:52:07 +0800 Subject: [PATCH 19/24] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/i3plus-pojo-model/pom.xml | 8 +- .../i3plus/pojo/model/common/ClassFieldModel.java | 4 - .../pojo/model/report/BeanBrPojoAttrModel.java | 35 ++ modules/i3plus-pojo-report/pom.xml | 4 - .../estsh/i3plus/pojo/report/bean/BrTemplate.java | 19 +- .../i3plus/pojo/report/sqlpack/ReportHqlPack.java | 4 +- .../pojo/report/sqlpack/TemplateHqlPack.java | 422 --------------------- 7 files changed, 50 insertions(+), 446 deletions(-) create mode 100644 modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/BeanBrPojoAttrModel.java delete mode 100644 modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java diff --git a/modules/i3plus-pojo-model/pom.xml b/modules/i3plus-pojo-model/pom.xml index edac7f5..24763f0 100644 --- a/modules/i3plus-pojo-model/pom.xml +++ b/modules/i3plus-pojo-model/pom.xml @@ -24,10 +24,10 @@ i3plus-pojo-platform - - - - + + i3plus.pojo + i3plus-pojo-report + diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java index 5278ac4..a7575d5 100644 --- a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/common/ClassFieldModel.java @@ -1,13 +1,9 @@ package cn.estsh.i3plus.pojo.model.common; -import cn.estsh.i3plus.pojo.base.annotation.RefPojo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiParam; import lombok.Data; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; import javax.persistence.Column; import java.io.Serializable; diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/BeanBrPojoAttrModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/BeanBrPojoAttrModel.java new file mode 100644 index 0000000..49e1cc3 --- /dev/null +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/BeanBrPojoAttrModel.java @@ -0,0 +1,35 @@ +package cn.estsh.i3plus.pojo.model.report; + +import cn.estsh.i3plus.pojo.report.bean.BrPojoAttr; +import cn.estsh.i3plus.pojo.report.bean.BrTemplateCustomHql; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import java.util.List; + +/** + * @Description ://TODO 提交注意修改 临时使用 带改动 + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-01-25 18:19 + * @Modify: + **/ +@Data +public class BeanBrPojoAttrModel { + + @ApiParam(value = "表单模板ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long templateId; + + @ApiParam(value = "数据类型") + private Integer dataType; + + @ApiParam(value = "对象属性") + private List attrList; + + @ApiParam(value = "自定义HQL") + private BrTemplateCustomHql customHql; + +} diff --git a/modules/i3plus-pojo-report/pom.xml b/modules/i3plus-pojo-report/pom.xml index e5de4f4..e36fcf7 100644 --- a/modules/i3plus-pojo-report/pom.xml +++ b/modules/i3plus-pojo-report/pom.xml @@ -19,9 +19,5 @@ i3plus.pojo i3plus-pojo-base - - i3plus.pojo - i3plus-pojo-model - \ No newline at end of file diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java index 07dc0f3..d8496ac 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -12,6 +12,7 @@ import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.Transient; +import java.util.ArrayList; import java.util.List; /** @@ -100,39 +101,39 @@ public class BrTemplate extends BaseBean { @Transient @ApiParam(value ="模板服务编号集合") - private List serverIdList; + private List serverIdList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务") - private List serverList; + private List serverList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象") - private List serverPojoList; + private List serverPojoList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象关系") - private List serverPojoRefList; + private List serverPojoRefList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象关联属性") - private List pojoAttrList; + private List pojoAttrList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象查询条件") - private List pojoAttrWhereList; + private List pojoAttrWhereList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象分组条件") - private List pojoAttrGroupList; + private List pojoAttrGroupList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象聚合条件") - private List pojoAttrAggrList; + private List pojoAttrAggrList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象显示属性") - private List pojoAttrShowList; + private List pojoAttrShowList = new ArrayList<>(); } diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java index 83b6b54..4e295e3 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/ReportHqlPack.java @@ -2,9 +2,7 @@ package cn.estsh.i3plus.pojo.report.sqlpack; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.HqlPack; -import cn.estsh.i3plus.pojo.report.bean.BrElement; -import cn.estsh.i3plus.pojo.report.bean.BrLayout; -import cn.estsh.i3plus.pojo.report.bean.BrMenu; +import cn.estsh.i3plus.pojo.report.bean.*; import org.apache.commons.lang3.StringUtils; /** diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java deleted file mode 100644 index 2da95c0..0000000 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/sqlpack/TemplateHqlPack.java +++ /dev/null @@ -1,422 +0,0 @@ -package cn.estsh.i3plus.pojo.report.sqlpack; - -import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; -import cn.estsh.i3plus.pojo.base.enumutil.BlockReportEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.model.report.TemplateModel; -import cn.estsh.i3plus.pojo.report.bean.BrPojoAttr; -import cn.estsh.i3plus.pojo.report.bean.BrRefServerPojo; -import cn.estsh.i3plus.pojo.report.bean.BrTemplateCustomHql; -import com.alibaba.fastjson.JSON; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; - -/** - * @Description : 报表对象封装 - * @Reference : - * @Author : wei peng - * @CreateDate : 2019-01-17 15:41 - * @Modify: - **/ -public class TemplateHqlPack { - - private static final Logger LOGGER = LoggerFactory.getLogger(TemplateHqlPack.class); - - /** - * 拼接查询字段 - * - * @param attrs - * @return - */ - public static String getSelectHqlColumn(List attrs) { - StringBuffer result = new StringBuffer(); - BlockReportEnumUtil.HQL_AGGREGATION aggr = null; - if (attrs != null && attrs.size() > 0) { - for (BrPojoAttr attr : attrs) { - aggr = BlockReportEnumUtil.HQL_AGGREGATION.valueOf(attr.getAggregationType()); - - // 聚合函数控制 - if (aggr == null) { - result.append("," + attr.getPojoNameAlias() + "." + attr.getAttrName()); - } else { - result.append(", " + aggr.getName() + "(" + attr.getPojoNameAlias() + "." + attr.getAttrName() + ")"); - } - - // 添加别名 - if (StringUtils.isNotBlank(attr.getAttrNameAlias())) { - result.append(" AS " + attr.getAttrNameAlias()); - } else { - result.append(" AS " + attr.getPojoNameAlias() + "_" + attr.getAttrName()); - } - } - return result.substring(result.indexOf(",") + 1, result.length()); - } - return result.toString(); - } - - /** - * 拼接分组字段 - * - * @param attrs - * @return - */ - public static String getSelectHqlGroupColumn(List attrs) { - StringBuffer result = new StringBuffer(); - BlockReportEnumUtil.HQL_AGGREGATION aggr = null; - if (attrs != null && attrs.size() > 0) { - for (BrPojoAttr attr : attrs) { - result.append("," + attr.getPojoNameAlias() + "." + attr.getAttrName()); - } - } - return result.toString(); - } - - public static StringBuffer getSelectHqlJoin(List list) { - StringBuffer hqlJoin = new StringBuffer(); - if (list != null && list.size() > 0) { - BrRefServerPojo masterPojo = list.get(0); - BrRefServerPojo pojo; - BlockReportEnumUtil.HQL_REF refType; - BlockReportEnumUtil.HQL_WHERE whereType;// 对象连接封装 - hqlJoin.append(" " + masterPojo.getMasterPojoName() + " AS " + masterPojo.getMasterPojoNameAlias()); - for (int i = 1; i < list.size(); i++) { - pojo = list.get(i); - refType = BlockReportEnumUtil.HQL_REF.valueOf(pojo.getPojoRefType()); - whereType = BlockReportEnumUtil.HQL_WHERE.valueOf(pojo.getPojoWhereType()); - if (refType != null && whereType != null) { - hqlJoin.append(" " + refType.getName()); - hqlJoin.append(" " + pojo.getMasterPojoName() + " AS " + pojo.getMasterPojoNameAlias()); - hqlJoin.append(" ON " + pojo.getMasterPojoNameAlias() + "." + pojo.getMasterPojoAttrName()); - hqlJoin.append(" " + whereType.getName() + " " + pojo.getSecondaryPojoNameAlias() + "." + pojo.getSecondaryPojoAttrName()); - } else { - LOGGER.info(""); - } - } - } - return hqlJoin; - } - - public static String getSelectHqlWhere(List attrs, Map map) { - StringBuffer hqlWhere = new StringBuffer(); - if (attrs != null && attrs.size() > 0) { - BlockReportEnumUtil.HQL_WHERE whereType = null; - for (BrPojoAttr attr : attrs) { - whereType = BlockReportEnumUtil.HQL_WHERE.valueOf(attr.getAttrRefType()); - if (whereType != null) { - hqlWhere.append(" AND " + attr.getPojoNameAlias() + "." + attr.getAttrName()); - if (BlockReportEnumUtil.HQL_WHERE.LIKE.equals(whereType)) { // like %% - hqlWhere.append(" " + whereType.getName() + " :" + attr.getPojoNameAlias() + "_" + attr.getAttrName()); - map.put(attr.getPojoNameAlias() + "_" + attr.getAttrName(), "%" + attr.getAttrDefaultValue() + "%"); - } else if (BlockReportEnumUtil.HQL_WHERE.LIKE_LEFT.equals(whereType)) { - hqlWhere.append(" " + whereType.getName() + " :" + attr.getPojoNameAlias() + "_" + attr.getAttrName()); - map.put(attr.getPojoNameAlias() + "_" + attr.getAttrName(), "%" + attr.getAttrDefaultValue()); - } else if (BlockReportEnumUtil.HQL_WHERE.LIKE_RIGHT.equals(whereType)) { - hqlWhere.append(" " + whereType.getName() + " :" + attr.getPojoNameAlias() + "_" + attr.getAttrName()); - map.put(attr.getPojoNameAlias() + "_" + attr.getAttrName(), attr.getAttrDefaultValue() + "%"); - } - } else { - LOGGER.info(""); - } - } - } - return hqlWhere.toString(); - } - - public static String getSelectHqlWhereCustomHql(List customList) { - StringBuffer hqlWhere = new StringBuffer(); - if (customList != null && customList.size() > 0) { - for (BrTemplateCustomHql hql : customList) { - if(hql.getDataType().intValue() == BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.WHERE.getValue()){ - hqlWhere.append(" " + hql.getCustomContent()); - } - } - } - return hqlWhere.toString(); - } - - public static String getSelectHqlWhereGroup(List customList) { - StringBuffer hql = new StringBuffer(); - if (customList != null && customList.size() > 0) { - hql.append(" GROUP BY "); - for (BrPojoAttr attr : customList) { - hql.append(" " + attr.getPojoNameAlias() + "." + attr.getAttrName()); - } - } - return hql.toString(); - } - - /** - * 拼接查询语句 - * - * @param list - * @return - */ - public static TemplateModel getTemplateModel(List list,BrTemplateCustomHql hqlList) { - if (list != null && list.size() > 0) { - TemplateModel model = new TemplateModel(); - StringBuffer result = new StringBuffer(); // 查询语句主体 - List attrShowList = new ArrayList<>(); // 查询列的属性 - List attrWhereList = new ArrayList<>(); // 查询列的属性 - List attrGroupList = new ArrayList<>(); // 查询列的属性 - Map paramMap = new HashMap<>(); - List tmpList = null; - - // list 先排序下 - list.sort(Comparator.comparing(BrRefServerPojo::getPojoSort)); - - // 对象属性封装 - for (BrRefServerPojo refServerPojo : list) { - tmpList = refServerPojo.getPojoAttrList(); - if (tmpList != null && tmpList.size() > 0) { - for (BrPojoAttr attr : tmpList) { - if (BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue() == attr.getDataType().intValue() - || BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.AGGREGATION.getValue() == attr.getDataType().intValue()) { - attrShowList.add(attr); - } else if (BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.WHERE.getValue() == attr.getDataType().intValue()) { - attrWhereList.add(attr); - } else if (BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.GROUP.getValue() == attr.getDataType().intValue()) { - attrGroupList.add(attr); - } - } - } - } - attrShowList.sort(Comparator.comparing(BrPojoAttr::getAttrSort)); - attrGroupList.sort(Comparator.comparing(BrPojoAttr::getAttrSort)); - attrWhereList.sort(Comparator.comparing(BrPojoAttr::getAttrSort)); - // HQL 拼接 - - result.append(" SELECT "); - result.append(getSelectHqlColumn(attrShowList)); - result.append(" FROM "); - result.append(getSelectHqlJoin(list)); - result.append(" WHERE 1=1 "); - result.append(getSelectHqlWhere(attrWhereList, paramMap)); - result.append(getSelectHqlWhereGroup(attrGroupList)); - if(hqlList != null){ - result.append(getSelectHqlWhereCustomHql(Arrays.asList(hqlList))); - } - - model.setHql(result.toString()); - model.setParamName(paramMap.keySet().stream().toArray(String[]::new)); - model.setParamValue(paramMap.values().stream().toArray(Object[]::new)); - - return model; - } - return null; - } - - public static List> getResultListTable(BaseResultBean bean,TemplateModel model) { - List> result = new ArrayList<>(); - Map line = null; - if (bean != null && bean.isSuccess() && model != null) { - List list = bean.getResultList(); - if (list != null && list.size() > 0) { - List columnList = getSelectHqlColumnAs(model.getHql()); - if (columnList != null && columnList.size() > 0) { - if(columnList.size() == 1){ - for (Object value : list) { - line = new HashMap<>(); - line.put(columnList.get(0), value); - result.add(line); - } - }else { - for (List rows : list) { - line = new HashMap<>(); - for (int i = 0; i < rows.size(); i++) { - line.put(columnList.get(i), rows.get(i)); - } - result.add(line); - } - } - } else { - LOGGER.info("无法解析HQL 列属性"); - } - } - } - return result; - } - - public static List getSelectHqlColumnAs(String hql) { - List result = new ArrayList<>(); - // hql 中必须包含 select 和 from - if (StringUtils.isNotBlank(hql) && - hql.indexOf("SELECT") != -1 && hql.indexOf("FROM") != -1) { - - hql = hql.substring(hql.indexOf("SELECT") + 1, hql.indexOf("FROM")); - if (StringUtils.isNotBlank(hql)) { - String[] columnArray = hql.split(","); - if (columnArray != null && columnArray.length > 0) { - for (String column : columnArray) { - result.add(column.substring(column.indexOf("AS") + 2, column.length()).trim()); - } - } - } - } - return result; - } - - public static Map getResultMap(BaseResultBean bean,TemplateModel model){ - Map result = new HashMap<>(); - if(bean != null && model != null){ - if (ResourceEnumUtil.MESSAGE.SUCCESS.getCode().equals(bean.getCode())) { - if(StringUtils.isNotBlank(model.getHql())){ // 有HQL - String hql = model.getHql().substring(0,model.getHql().indexOf("FROM")); - System.out.println(hql); - } - }else { - LOGGER.info("请求处理失败"); - } - } - return result; - } - - - public static void main(String[] args) { - List suList = new ArrayList<>(); - List suiList = new ArrayList<>(); - List surList = new ArrayList<>(); - List pojoList = new ArrayList<>(); - -// ------------------------------------ SysUser Attr ------------------------------------ - BrPojoAttr suAttr = new BrPojoAttr(); - suAttr.setAttrSort(0); - suAttr.setPojoNameAlias("su"); - suAttr.setAttrName("userInfoId"); - suAttr.setAttrNameAlias("德玛西亚"); - suAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - BrPojoAttr suAttr1 = new BrPojoAttr(); - suAttr1.setAttrSort(1); - suAttr1.setPojoNameAlias("su"); - suAttr1.setAttrName("userName"); - suAttr1.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - BrPojoAttr suAttr2 = new BrPojoAttr(); - suAttr2.setAttrSort(2); - suAttr2.setPojoNameAlias("su"); - suAttr2.setAttrName("userLoginName"); - suAttr2.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - BrPojoAttr suAttr3 = new BrPojoAttr(); - suAttr3.setAttrSort(3); - suAttr3.setPojoNameAlias("su"); - suAttr3.setAttrName("userEmpNo"); - suAttr3.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - suList.add(suAttr); - suList.add(suAttr1); - suList.add(suAttr2); - suList.add(suAttr3); -// ------------------------------------ SysUserInfo Attr ------------------------------------ - - BrPojoAttr suiAttr = new BrPojoAttr(); - suiAttr.setAttrSort(0); - suiAttr.setPojoNameAlias("sui"); - suiAttr.setAttrName("name"); - suiAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - BrPojoAttr suiAttr1 = new BrPojoAttr(); - suiAttr1.setAttrSort(1); - suiAttr1.setPojoNameAlias("sui"); - suiAttr1.setAttrName("userEmployeeType"); - suiAttr1.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - - BrPojoAttr suiAttr2 = new BrPojoAttr(); - suiAttr2.setAttrSort(2); - suiAttr2.setPojoNameAlias("sui"); - suiAttr2.setAttrName("userBornDate"); - suiAttr2.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - - BrPojoAttr suiAttr3 = new BrPojoAttr(); - suiAttr3.setAttrSort(3); - suiAttr3.setPojoNameAlias("sui"); - suiAttr3.setAttrName("userSchool"); - suiAttr3.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - BrPojoAttr suiAttr4 = new BrPojoAttr(); - suiAttr4.setAttrSort(4); - suiAttr4.setPojoNameAlias("sui"); - suiAttr4.setAttrName("userEmpNo"); - suiAttr4.setAttrNameAlias("userEmpNo"); - suiAttr4.setAttrDefaultValue("英雄联盟"); - suiAttr4.setAttrRefType(BlockReportEnumUtil.HQL_WHERE.LIKE.getValue()); - suiAttr4.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.WHERE.getValue()); - - suiList.add(suiAttr); - suiList.add(suiAttr1); - suiList.add(suiAttr2); - suiList.add(suiAttr3); - suiList.add(suiAttr4); -// ------------------------------------ SysRefUserRole Attr ------------------------------------ - BrPojoAttr surAttr = new BrPojoAttr(); - surAttr.setAttrSort(1); - surAttr.setPojoNameAlias("sur"); - surAttr.setAttrName("id"); - surAttr.setAggregationType(BlockReportEnumUtil.HQL_AGGREGATION.COUNT.getValue()); - surAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.AGGREGATION.getValue()); - surAttr.setDataType(BlockReportEnumUtil.HQL_ATTR_DATA_TYPE.SHOW.getValue()); - - surList.add(surAttr); - -// ------------------------------------ Pojo SysUserInfo ------------------------------------ - - BrRefServerPojo suiPojo = new BrRefServerPojo(); - suiPojo.setMasterPojoName("SysUserInfo"); - suiPojo.setMasterPojoNameAlias("sui"); - suiPojo.setPojoSort(1); - suiPojo.setPojoAttrList(suiList); - -// ------------------------------------ Pojo SysUser ------------------------------------ - BrRefServerPojo suPojo = new BrRefServerPojo(); - suPojo.setMasterPojoName("SysUser"); - suPojo.setMasterPojoNameAlias("su"); - suPojo.setMasterPojoAttrName("userInfoId"); - - suPojo.setSecondaryPojoName("SysUserInfo"); - suPojo.setSecondaryPojoNameAlias("sui"); - suPojo.setSecondaryPojoAttrName("id"); - - suPojo.setPojoRefType(BlockReportEnumUtil.HQL_REF.LEFT_JOIN.getValue()); - suPojo.setPojoWhereType(BlockReportEnumUtil.HQL_WHERE.EQUAL.getValue()); - suPojo.setPojoSort(2); - suPojo.setPojoAttrList(suList); - -// ------------------------------------ Pojo SysRefUserRole ------------------------------------ - BrRefServerPojo surPojo = new BrRefServerPojo(); - surPojo.setMasterPojoName("SysRefUserRole"); - surPojo.setMasterPojoNameAlias("sur"); - surPojo.setMasterPojoAttrName("userId"); - - surPojo.setSecondaryPojoName("SysUser"); - surPojo.setSecondaryPojoNameAlias("su"); - surPojo.setSecondaryPojoAttrName("id"); - - surPojo.setPojoRefType(BlockReportEnumUtil.HQL_REF.LEFT_JOIN.getValue()); - surPojo.setPojoWhereType(BlockReportEnumUtil.HQL_WHERE.EQUAL.getValue()); - surPojo.setPojoSort(3); - surPojo.setPojoAttrList(surList); - - pojoList.add(suiPojo); - pojoList.add(suPojo); - pojoList.add(surPojo); - -// System.out.println(getSelectHqlColumn(suList)); -// System.out.println(JSON.toJSONString(getTemplateModel(pojoList))); - -// String json = "{\"code\":\"20001\",\"msg\":\"select sui.name as sui_name,su.userInfoId as 德玛西亚,sui.userEmployeeType as sui_userEmployeeType,su.userName as su_userName, count(sur.id) as sur_id,sui.userBornDate as sui_userBornDate,su.userLoginName as su_userLoginName,sui.userSchool as sui_userSchool,su.userEmpNo as su_userEmpNo from SysUserInfo as sui left join SysUser as su on su.userInfoId = sui.id left join SysRefUserRole as sur on sur.userId = su.id\",\"resultList\":[[\"管理员\",1077896159978196992,1,\"管理员\",2,\"1993-06-30\",\"admin\",\"复旦大学\",\"10001\"]],\"success\":true,\"totalCount\":0}"; -// BaseResultBean resultBean = JSON.parseObject(json,BaseResultBean.class); -// -// System.out.println(getSelectHqlColumnAs(resultBean.getMsg()));; -// -// System.out.println(resultBean.getMsg()); -// List> table = getResultListTable(resultBean); -// System.out.println(JSON.toJSONString(table)); - } - - -} From 07d0661205e9c30b6b9e8ae384e2977de57aea65 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Mon, 28 Jan 2019 19:07:35 +0800 Subject: [PATCH 20/24] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java index 165dcd9..a1655f1 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java @@ -45,9 +45,9 @@ public class BrElement extends BaseBean { @ApiParam(value ="元素值") private String elementValue; - @Column(name="ELEMENT_LINK") - @ApiParam(value ="元素连接") - private String elementLink; + @Column(name="ELEMENT_FILE_ID") + @ApiParam(value ="元素文件id") + private Long elementFileId; @Column(name="ELEMENT_STYLE") @ApiParam(value ="元素样式css") From 42f00211c1f8093df2750e35b30b378122bb7ebb Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Mon, 28 Jan 2019 19:59:24 +0800 Subject: [PATCH 21/24] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=8C=E6=88=90=20=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=89=AD=E8=BD=AC=E5=8A=9F=E8=83=BD=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/enumutil/BlockReportEnumUtil.java | 78 +++++++++++++++++++++- .../estsh/i3plus/pojo/report/bean/BrTemplate.java | 24 +++++-- 2 files changed, 95 insertions(+), 7 deletions(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index 0658955..9256d4e 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -281,6 +281,83 @@ public class BlockReportEnumUtil { } /** + * 模板状态 + * 1 新建模板 + * 2 新建模板对象 + * 3 新建模板查询条件 + * 4 新建模板分组条件 + * 5 新建模板聚合条件 + * 6 新建模板显示条件 + * 7 新建模板确认 + * 8 新建模板完成 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum TEMPLATE_STATUS { + SAVE_TEMPLATE(1, "新建模板", "新建模板"), + SAVE_TEMPLATE_POJO(2, "新建模板对象", "新建模板对象"), + SAVE_TEMPLATE_ATTR_WHERE(3, "新建模板查询条件", "新建模板查询条件"), + SAVE_TEMPLATE_ATTR_GROUP(4, "新建模板分组条件", "新建模板分组条件"), + SAVE_TEMPLATE_ATTR_AGGREGATION(5, "新建模板聚合条件", "新建模板聚合条件"), + SAVE_TEMPLATE_ATTR_SHOW(6, "新建模板显示条件", "新建模板显示条件"), + SAVE_TEMPLATE_ATTR_CONFIRM(7, "新建模板确认条件", "新建模板确认条件"), + SAVE_TEMPLATE_FULFIL(8, "新建模板确认条件", "新建模板确认条件"); + + private int value; + private String name; + private String description; + + TEMPLATE_STATUS() { + } + + TEMPLATE_STATUS(int value, String name, String description) { + this.value = value; + this.name = name; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public String getName() { + return name; + } + + public static String valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].getName(); + } + } + return tmp; + } + public static TEMPLATE_STATUS enumOf(int val) { + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + return values()[i]; + } + } + return null; + } + + public static int descOf(String desc) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].name.equals(desc)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + + /** * 数据状态 * 1 启用 * 2 禁用 @@ -594,7 +671,6 @@ public class BlockReportEnumUtil { return null; } - public static int descOf(String desc) { int tmp = 1; for (int i = 0; i < values().length; i++) { diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java index d8496ac..9615431 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -44,7 +44,7 @@ public class BrTemplate extends BaseBean { private Integer templateStatus; @Column(name="NUM_POJO") - @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + @ApiParam(value ="对象数量" , example ="0" , access ="对象数量") private Integer numPojo; @Column(name="TEMPLATE_POJO_NAMES_RDD",columnDefinition = "TEXT") @@ -52,7 +52,7 @@ public class BrTemplate extends BaseBean { private String templatePojoNamesRdd; @Column(name="NUM_SERVER") - @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + @ApiParam(value ="对象数量" , example ="0" , access ="对象数量") private Integer numServer; @Column(name="TEMPLATE_SERVER_ID_LIST",columnDefinition = "TEXT") @@ -64,7 +64,7 @@ public class BrTemplate extends BaseBean { private String templateServerNamesRdd; @Column(name="NUM_TEMPLATE_ATTR_FILTER") - @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + @ApiParam(value ="对象数量" , example ="0" , access ="对象数量") private Integer numTemplateAttrFilter; @Column(name="template_attr_filter_list",columnDefinition = "TEXT") @@ -72,7 +72,7 @@ public class BrTemplate extends BaseBean { private String templateAttrFilterList; @Column(name="NUM_TEMPLATE_ATTR_FILTER_GROUP") - @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + @ApiParam(value ="对象数量" , example ="0" , access ="对象数量") private Integer numTemplateAttrFilterGroup; @Column(name="TEMPLATE_ATTR_FILTER_GROUP_LIST",columnDefinition = "TEXT") @@ -80,13 +80,21 @@ public class BrTemplate extends BaseBean { private String templateAttrFilterGroupList; @Column(name="NUM_TEMPLATE_ATTR_SHOW") - @ApiParam(value ="对象数量" , example ="0" , access ="权限模块数量") + @ApiParam(value ="对象数量" , example ="0" , access ="对象数量") private Integer numTemplateAttrShow; @Column(name="TEMPLATE_ATTR_SHOW_LIST",columnDefinition = "TEXT") @ApiParam(value ="模板显示属性" , access ="模板显示属性") private String templateAttrShowList; + @Column(name="NUM_TEMPLATE_AGGREGATION_SHOW") + @ApiParam(value ="对象聚集数量" , example ="0" , access ="对象聚集数量") + private Integer numTemplateAggregationShow; + + @Column(name="TEMPLATE_ATTR_AGGREGATION_LIST",columnDefinition = "TEXT") + @ApiParam(value ="模板聚集属性" , access ="模板聚集属性") + private String templateAttrAggregationList; + @Column(name="TEMPLATE_DESCRIPTION") @ApiParam(value ="模板描述" , access ="模板描述") private String templateDescription; @@ -130,10 +138,14 @@ public class BrTemplate extends BaseBean { @Transient @ApiParam(value ="模板服务对象聚合条件") - private List pojoAttrAggrList = new ArrayList<>(); + private List pojoAttrAggregationList = new ArrayList<>(); @Transient @ApiParam(value ="模板服务对象显示属性") private List pojoAttrShowList = new ArrayList<>(); + @Transient + @ApiParam(value ="模板服务集合") + private List serverNameList = new ArrayList<>(); + } From 4769c6bc29486ac100358641cc9d1080441b4aa5 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Mon, 28 Jan 2019 21:47:20 +0800 Subject: [PATCH 22/24] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java index a1655f1..0689b99 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrElement.java @@ -49,6 +49,10 @@ public class BrElement extends BaseBean { @ApiParam(value ="元素文件id") private Long elementFileId; + @Column(name="ELEMENT_FILE_URL") + @ApiParam(value ="元素文件Url") + private String elementFileUrl; + @Column(name="ELEMENT_STYLE") @ApiParam(value ="元素样式css") private String elementStyle; From c61d0882c57d73b680c3ce490e28ea3efdddf4f9 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Fri, 1 Feb 2019 10:53:19 +0800 Subject: [PATCH 23/24] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=94=9F=E6=88=90HTML=20=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/enumutil/BlockReportEnumUtil.java | 13 ++++++------- .../cn/estsh/i3plus/pojo/model/report/TemplateModel.java | 6 ++++++ .../java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java | 8 ++++++-- .../java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java | 4 ++-- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java index 9256d4e..833fbeb 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockReportEnumUtil.java @@ -427,9 +427,9 @@ public class BlockReportEnumUtil { @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum TEMPLATE_STYLE { - TABLE_LEFT(1, TEMPLATE_TYPE.TABLE, "left", "表单左对齐"), - TABLE_RIGHT(2, TEMPLATE_TYPE.TABLE, "right", "表单右对齐"), - TABLE_CENTER(3, TEMPLATE_TYPE.TABLE, "center", "表单居中"); + TABLE_LEFT(1, TEMPLATE_TYPE.TABLE, "text-left", "表单左对齐"), + TABLE_RIGHT(2, TEMPLATE_TYPE.TABLE, "text-center", "表单右对齐"), + TABLE_CENTER(3, TEMPLATE_TYPE.TABLE, "text-right", "表单居中"); private int value; private TEMPLATE_TYPE group; @@ -471,14 +471,13 @@ public class BlockReportEnumUtil { return name; } - public static String valueOf(int val) { - String tmp = null; + public static TEMPLATE_STYLE valueOf(int val) { for (int i = 0; i < values().length; i++) { if (values()[i].value == val) { - tmp = values()[i].getName(); + return values()[i]; } } - return tmp; + return null; } public static int descOf(String desc) { diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java index 361636c..f915a33 100644 --- a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java @@ -1,5 +1,7 @@ package cn.estsh.i3plus.pojo.model.report; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -13,6 +15,10 @@ import lombok.Data; @Data public class TemplateModel { + @ApiParam("模板ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long templateId; + @ApiParam("执行 HQL ") private String hql; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java index 9c0fac3..b804f90 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrPojoAttr.java @@ -57,11 +57,11 @@ public class BrPojoAttr extends BaseBean { private String pojoNameAlias; @Column(name="ATTR_NAME") - @ApiParam(value ="对象别名") + @ApiParam(value ="属性别名") private String attrName; @Column(name="ATTR_NAME_ALIAS") - @ApiParam(value ="对象别名") + @ApiParam(value ="属性别名") private String attrNameAlias; @Column(name="ATTR_TYPE") @@ -97,6 +97,10 @@ public class BrPojoAttr extends BaseBean { @ApiParam(value ="字段样式") private Integer attrStyle; + @Column(name="ATTR_STYLE_RDD") + @ApiParam(value ="字段样式") + private String attrStyleRdd; + @Column(name="ATTR_DEFAULT_VALUE") @ApiParam(value ="属性默认值") private String attrDefaultValue; diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java index 9615431..40ff440 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrTemplate.java @@ -87,9 +87,9 @@ public class BrTemplate extends BaseBean { @ApiParam(value ="模板显示属性" , access ="模板显示属性") private String templateAttrShowList; - @Column(name="NUM_TEMPLATE_AGGREGATION_SHOW") + @Column(name="NUM_TEMPLATE_AGGREGATION") @ApiParam(value ="对象聚集数量" , example ="0" , access ="对象聚集数量") - private Integer numTemplateAggregationShow; + private Integer numTemplateAggregation; @Column(name="TEMPLATE_ATTR_AGGREGATION_LIST",columnDefinition = "TEXT") @ApiParam(value ="模板聚集属性" , access ="模板聚集属性") From 6cffcaecaca94b951c629c7dcecc49c14b841b42 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Fri, 1 Feb 2019 15:19:09 +0800 Subject: [PATCH 24/24] =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java index 95941b3..9958379 100644 --- a/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java +++ b/modules/i3plus-pojo-report/src/main/java/cn/estsh/i3plus/pojo/report/bean/BrMenu.java @@ -59,6 +59,16 @@ public class BrMenu extends BaseBean { @ApiParam(value ="父级功能名称" , access ="父级功能名称") private String parentNameRdd; + // 根节点-1 + @Column(name="REPORT_ID") + @ApiParam(value ="报表ID" , example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long reportId; + + @Column(name="REPORT_NAME_RDD") + @ApiParam(value ="报表名称" , access ="父级功能名称") + private String reportNameRdd; + @Column(name="MENU_CLASS_PATH") @ApiParam(value ="功能 class path" , access ="资源class path") private String menuClassPath;