From 244494d77b0a793e2b9fdaeee8e5e89eb82e59a4 Mon Sep 17 00:00:00 2001 From: alwaysfrin <39822157+alwaysfrin@users.noreply.github.com> Date: Fri, 29 Mar 2019 20:07:07 +0800 Subject: [PATCH 1/3] =?UTF-8?q?hql=E5=B0=81=E8=A3=85=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../estsh/i3plus/pojo/base/bean/DdlPackBean.java | 114 ++++++ .../i3plus/pojo/base/jpa/dao/BaseRepository.java | 206 ++++++---- .../pojo/base/jpa/daoimpl/BaseRepositoryImpl.java | 156 ++++++- .../i3plus/pojo/base/tool/DdlPreparedPack.java | 449 +++++++++++++++++++++ .../cn/estsh/i3plus/pojo/base/tool/HqlPack.java | 17 +- 5 files changed, 845 insertions(+), 97 deletions(-) create mode 100644 modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/DdlPackBean.java create mode 100644 modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/DdlPreparedPack.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/DdlPackBean.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/DdlPackBean.java new file mode 100644 index 0000000..05c06fd --- /dev/null +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/DdlPackBean.java @@ -0,0 +1,114 @@ +package cn.estsh.i3plus.pojo.base.bean; + +import javafx.scene.text.Font; + +import java.util.HashMap; + +/** + * @Description : hql脚本封装类 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-03-29 15:57 + * @Modify: + **/ +public class DdlPackBean { + + /** + * String 为属性及条件 + * example: and name = :name + * and num > :num or ..... + * Object 为属性值 + * example: 值 + * + * dao层将map进行解封,hql部分直接添加key值,然后再进行value赋值 + */ + private HashMap hqlPreparedMap; + + //是否是hql + private boolean isHql; + + //排序内容 + private String orderByStr; + + //where后跟着的hql/sql + private String whereAppend; + + //需要拼接的hql + private StringBuilder sb = null; + + public DdlPackBean(){ + this.isHql = true; + sb = new StringBuilder(); + } + + public DdlPackBean(boolean isHql){ + this.isHql = isHql; + sb = new StringBuilder(); + } + + public boolean isHql() { + return isHql; + } + + public void setHql(boolean hql) { + isHql = hql; + } + + public String getOrderByStr() { + return orderByStr; + } + + public void setOrderByStr(String orderByStr) { + this.orderByStr = orderByStr; + } + + public String getWhereAppend() { + return whereAppend; + } + + public void setWhereAppend(String whereAppend) { + this.whereAppend = whereAppend; + } + + public HashMap getHqlPreparedMap() { + return hqlPreparedMap; + } + + /** + * 添加查询条件 + * @param hql + * @param val + */ + public void addColumnQuery(String column,String hql,Object val){ + if(hqlPreparedMap == null){ + hqlPreparedMap = new HashMap<>(); + } + if(column != null && val != null) { + hqlPreparedMap.put(column, val); + } + + sb.append(hql); + } + + /** + * 需要查询属性的数量 + * @return + */ + public int getColumnSize(){ + return hqlPreparedMap.size(); + } + + /** + * 获取最终的ddl + * @return + */ + public String getPackedHql(){ + if(whereAppend != null){ + sb.append(whereAppend); + } + if(orderByStr != null){ + sb.append(orderByStr); + } + return sb.toString(); + } +} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java index cbedf52..8ac9fdc 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.pojo.base.jpa.dao; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.common.Pager; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.NoRepositoryBean; @@ -39,6 +40,7 @@ public interface BaseRepository extends JpaReposito /** * 执行ql语句 + * hql写法:update obj set name = ?,问号舒徐需要和list顺序一致 * @param qlString 基于jpa标准的ql语句 * @param values ql中的T参数值,单个参数值或者多个参数值 * @return 返回执行后受影响的数据个数 @@ -47,6 +49,7 @@ public interface BaseRepository extends JpaReposito /** * 执行ql语句 + * hql写法:update obj set name = :name * @param qlString 基于jpa标准的ql语句 * @param params key表示ql中参数变量名,value表示该参数变量值 * @return 返回执行后受影响的数据个数 @@ -55,6 +58,7 @@ public interface BaseRepository extends JpaReposito /** * 执行ql语句,可以是更新或者删除操作 + * hql写法:update obj set name = ?,问号舒徐需要和list顺序一致 * @param qlString 基于jpa标准的ql语句 * @param values ql中的T参数值 * @return 返回执行后受影响的数据个数 @@ -65,11 +69,11 @@ public interface BaseRepository extends JpaReposito /** * 强删除 */ - public void deleteById(ID id); - public int deleteByProperty(String propName, Object propValue); - public int deleteByPropertyIn(String propName, Object[] propValues); - public int deleteByIds(ID[] ids); - public int deleteByProperties(String[] propNames, Object[] objValues); + void deleteById(ID id); + int deleteByProperty(String propName, Object propValue); + int deleteByPropertyIn(String propName, Object[] propValues); + int deleteByIds(ID[] ids); + int deleteByProperties(String[] propNames, Object[] objValues); /** * 通过多单属性进行单个值更新 @@ -78,7 +82,7 @@ public interface BaseRepository extends JpaReposito * @param propertyName * @param propertyValue */ - public int updateByProperties(String conditionName, Object conditionValue, String propertyName, Object propertyValue); + int updateByProperties(String conditionName, Object conditionValue, String propertyName, Object propertyValue); /** * 通过单个属性进行多个值更新 @@ -87,7 +91,7 @@ public interface BaseRepository extends JpaReposito * @param propertyName * @param propertyValue */ - public int updateByProperties(String conditionName, Object conditionValue, String[] propertyName, Object[] propertyValue); + int updateByProperties(String conditionName, Object conditionValue, String[] propertyName, Object[] propertyValue); /** * 通过多个属性进行单个值更新 @@ -96,7 +100,7 @@ public interface BaseRepository extends JpaReposito * @param propertyName * @param propertyValue */ - public int updateByProperties(String[] conditionName, Object[] conditionValue, String propertyName, Object propertyValue); + int updateByProperties(String[] conditionName, Object[] conditionValue, String propertyName, Object propertyValue); /** * 通过多个属性进行多个值更新 @@ -105,7 +109,7 @@ public interface BaseRepository extends JpaReposito * @param propertyName 更新属性名称 * @param propertyValue 更新属性值 */ - public int updateByProperties(String[] conditionName, Object[] conditionValue, String[] propertyName, Object[] propertyValue); + int updateByProperties(String[] conditionName, Object[] conditionValue, String[] propertyName, Object[] propertyValue); /** * 根据 hqlWhere 批量修改制定字段 @@ -114,7 +118,7 @@ public interface BaseRepository extends JpaReposito * @param propertyValue 修改后的值 * @return */ - public int updateByHqlWhere(String hqlWhere,String propertyName, Object propertyValue); + int updateByHqlWhere(String hqlWhere,String propertyName, Object propertyValue); /** * 批量修改数据熟悉 @@ -123,98 +127,135 @@ public interface BaseRepository extends JpaReposito * @param propertyValue 修改后的值 * @return */ - public int updateByHqlWhere(String hqlWhere,String[] propertyName, Object[] propertyValue); + int updateByHqlWhere(String hqlWhere,String[] propertyName, Object[] propertyValue); - public T getById(long id); + T getById(long id); - public List list(); + List list(); - public List list(final String hql); + List list(final String hql); - public List listPager(Pager pager); + List listPager(Pager pager); - public List findByPage(final String hql, final int offset,final int pageSize); + List findByPage(final DdlPackBean packBean, final int offset, final int pageSize); - public List findByPage(final String hql, final Object[] values, final int offset, final int pageSize); + /** + * @param hql hql入参需要用问号代替 + * @param values 按照入参问号的顺序进行赋值 + * @param offset + * @param pageSize + * @return + */ + List findByPage(final String hql, final Object[] values, final int offset, final int pageSize); + + List findByProperty(String propertyName, Object value); + + List findByProperty(String[] propertyNames, Object[] values); + + List findByProperty(String propertyName, Object value,String orderByStuff); - public List findByProperty(String propertyName, Object value); + List findByProperty(String[] propertyNames, Object[] values,String orderByStuff); - public List findByProperty(String[] propertyNames, Object[] values); + T getByProperty(String propertyName, Object value); - public List findByProperty(String propertyName, Object value,String orderByStuff); + T getByProperty(String[] propertyNames, Object[] values); - public List findByProperty(String[] propertyNames, Object[] values,String orderByStuff); + int listCount(); - public T getByProperty(String propertyName, Object value); + int findByPropertyCount(String propertyName, Object value); - public T getByProperty(String[] propertyNames, Object[] values); + int findByPropertyCount(String[] propertyNames, Object[] values); - public int listCount(); + List findByPropertyPage(String propertyName, Object value,String orderByStuff,Pager pager); - public int findByPropertyCount(String propertyName, Object value); + List findByPropertyPage(String[] propertyNames, Object[] values,String orderByStuff,Pager pager); - public int findByPropertyCount(String[] propertyNames, Object[] values); + @Deprecated + List findByHql(String hql); - public List findByPropertyPage(String propertyName, Object value,String orderByStuff,Pager pager); + @Deprecated + List findByHqlWhere(String hqlWhere); - public List findByPropertyPage(String[] propertyNames, Object[] values,String orderByStuff,Pager pager); + List findByHqlWhere(DdlPackBean packBean); - public List findByHql(String hql); + List findByHqlWhere(String hqlWhere,String[] propertyNames, Object[] values,String orderByStuff); - public List findByHqlWhere(String hqlWhere); + int findByHqlWhereCount(String hqlWhere,String[] propertyNames, Object[] values); - public List findByHqlWhere(String hqlWhere,String[] propertyNames, Object[] values,String orderByStuff); + List findByHqlWherePage(String hqlWhere, Pager pager,String[] propertyNames, Object[] values,String orderByStuff); - public int findByHqlWhereCount(String hqlWhere,String[] propertyNames, Object[] values); + @Deprecated + List findByHqlWherePage(String hqlWhere, Pager pager); - public List findByHqlWherePage(String hqlWhere, Pager pager,String[] propertyNames, Object[] values,String orderByStuff); + List findByHqlWherePage(DdlPackBean packBean, Pager pager); - public List findByHqlWherePage(String hqlWhere, Pager pager); + @Deprecated + int findByHqlWhereCount(String hqlWhere); - public int findByHqlWhereCount(String hqlWhere); + int findByHqlWhereCount(DdlPackBean packBean); - public int findByHqlCount(String hql); + int findByHqlCount(String hql); - public int findByHqlCount(String hql,String[] paramName,Object[] paramValue); + int findByHqlCount(String hql,String[] paramName,Object[] paramValue); - public List findByHqlPage(String hql, Pager pager); + @Deprecated + List findByHqlPage(String hql, Pager pager); - public List findByHqlPage(String hql, Pager pager,String[] paramName,Object[] paramValue); + List findByHqlPage(DdlPackBean packBean, Pager pager); - public List findBySql(String sql); + List findByHqlPage(String hql, Pager pager,String[] paramName,Object[] paramValue); - public List findBySql(String sql,Class entity); + @Deprecated + List findBySql(String sql); - public List findBySqlPage(String sql,Pager pager); + @Deprecated + List findBySql(String sql,Class entity); - public List findBySqlPage(String sql,Class entity,Pager pager); + @Deprecated + List findBySqlPage(String sql,Pager pager); - public int executeSql(String sql); + @Deprecated + List findBySqlPage(String sql,Class entity,Pager pager); - public int findBySqlCount(String sql); + @Deprecated + int executeSql(String sql); - public double findBySqlSumDouble(String sql,String columnName); + @Deprecated + int findBySqlCount(String sql); - public double findByHqlDouble(String hql); + @Deprecated + double findBySqlSumDouble(String sql,String columnName); - public long findByHqlLong(String hql); + @Deprecated + double findByHqlDouble(String hql); - public List findByHqlTopWhere(String hqlWhere,int topNum); + double findByHqlDouble(DdlPackBean packBean); - public List findColumnsByHql(String hql, String hqlWhere, String orderByStuff, Pager pager); + @Deprecated + long findByHqlLong(String hql); + + long findByHqlLong(DdlPackBean packBean); + + @Deprecated + List findByHqlTopWhere(String hqlWhere,int topNum); + + List findByHqlTopWhere(DdlPackBean packBean,int topNum); + + @Deprecated + List findColumnsByHql(String hql, String hqlWhere, String orderByStuff, Pager pager); /********************** 多表联查,返回Object[]数组根据hql查询翻页信息 开始 ****************************/ - public List findByHqlObjects(String hql); + List findByHqlObjects(String hql); - public List findByHqlObjects(String hql,String[] paramName,Object[] paramValue); + List findByHqlObjects(String hql,String[] paramName,Object[] paramValue); - public List findByHqlPageObjects(String hql, Pager pager); + List findByHqlPageObjects(String hql, Pager pager); - public List findByHqlPageObjects(String hql, Pager pager,String[] paramName,Object[] paramValue); + List findByHqlPageObjects(String hql, Pager pager,String[] paramName,Object[] paramValue); - public List findBySqlObjList(String sql); + List findBySqlObjList(String sql); - public List findBySqlObjListByPager(String sql,Pager pager); + List findBySqlObjListByPager(String sql,Pager pager); /****************** 部分业务处理 *******************/ @@ -222,49 +263,52 @@ public interface BaseRepository extends JpaReposito * 弱删除 * @return count */ - public int deleteWeaklyById(ID id,String username); - public int deleteWeaklyByIds(Long[] ids,String username) ; - public int deleteWeaklyByProperty(String propName, Object propValue,String username); - public int deleteWeaklyByPropertyIn(String propName, Object[] propValues,String username); - public int deleteWeaklyByProperties(String[] propNames, Object[] objValues,String username); + int deleteWeaklyById(ID id,String username); + int deleteWeaklyByIds(Long[] ids,String username) ; + int deleteWeaklyByProperty(String propName, Object propValue,String username); + int deleteWeaklyByPropertyIn(String propName, Object[] propValues,String username); + int deleteWeaklyByProperties(String[] propNames, Object[] objValues,String username); /** * 更新启用禁用 * @return count */ - public int updateValidStatusById(ID id,int status,String username); - public int updateValidStatusByIds(Long[] ids,int status,String username) ; - public int updateValidStatusByProperty(String propName, Object propValue,int status,String username); - public int updateValidStatusByPropertyIn(String propName, Object[] propValues,int status,String username); - public int updateValidStatusByProperties(String[] propNames, Object[] objValues,int status,String username); + int updateValidStatusById(ID id,int status,String username); + int updateValidStatusByIds(Long[] ids,int status,String username) ; + int updateValidStatusByProperty(String propName, Object propValue,int status,String username); + int updateValidStatusByPropertyIn(String propName, Object[] propValues,int status,String username); + int updateValidStatusByProperties(String[] propNames, Object[] objValues,int status,String username); + + boolean isExitByProperty(String propertyName, Object value); - public boolean isExitByProperty(String propertyName, Object value); + boolean isExitByProperty(String[] propertyNames, Object[] values); - public boolean isExitByProperty(String[] propertyNames, Object[] values); + boolean isExitByHqlWhere(String hqlWhere,String[] propertyNames, Object[] values); - public boolean isExitByHqlWhere(String hqlWhere,String[] propertyNames, Object[] values); + boolean isExitByHqlWhere(String hqlWhere); - public boolean isExitByHqlWhere(String hqlWhere); + @Deprecated + boolean isExitByHql(String hql); - public boolean isExitByHql(String hql); + boolean isExitByHql(DdlPackBean packBean); - public boolean isExitByHql(String hql,String[] paramName,Object[] paramValue); + boolean isExitByHql(String hql,String[] paramName,Object[] paramValue); - public boolean isExitBySql(String sql); + boolean isExitBySql(String sql); - public double findSumByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); + double findSumByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); - public double findSumByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); + double findSumByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); - public double findAvgByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); + double findAvgByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); - public double findAvgByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); + double findAvgByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); - public double findMaxByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); + double findMaxByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); - public double findMaxByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); + double findMaxByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); - public double findMinByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); + double findMinByProperty(String sumPropertyName,String groupByName,String propertyName, Object value); - public double findMinByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); + double findMinByProperties(String sumPropertyName,String groupByName,String[] paramName,Object[] paramValue); } 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 5509994..86cae1c 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 @@ -1,5 +1,6 @@ package cn.estsh.i3plus.pojo.base.jpa.daoimpl; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; @@ -277,11 +278,23 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override - public List findByPage(String hql, int offset, int pageSize) { - return entityManager.createQuery("from " + persistentClass.getName()) - .setFirstResult(offset) - .setMaxResults(pageSize) - .getResultList(); + public List findByPage(DdlPackBean packBean, int offset, int pageSize) { + Query query = null; + String ddl = "from " + persistentClass.getName() + " where 1=1 " +packBean.getPackedHql(); + + if(packBean.isHql()){ + query = entityManager.createQuery(ddl); + }else{ + query = entityManager.createNativeQuery(ddl); + } + + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter(key,packBean.getHqlPreparedMap().get(key)); + } + + return query.setFirstResult(offset) + .setMaxResults(pageSize) + .getResultList(); } @Override @@ -523,11 +536,13 @@ public class BaseRepositoryImpl extends SimpleJpaRep } } + @Deprecated @Override public List findByHql(String hql) { return entityManager.createQuery(hql).getResultList(); } + @Deprecated @Override public List findByHqlWhere(String hqlWhere) { StringBuffer queryString = new StringBuffer(); @@ -541,9 +556,22 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public List findByHqlWhere(DdlPackBean packBean) { + Query query = entityManager.createQuery("from " + persistentClass.getSimpleName() + + " as model where 1=1 " + packBean.getPackedHql()); + + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter(key,packBean.getHqlPreparedMap().get(key)); + } + + return query.getResultList(); + } + + @Override public List findByHqlWhere(String hqlWhere, String[] propertyNames, Object[] values, String orderByStuff) { if(propertyNames.length != values.length){ - throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length); + throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + + propertyNames.length + ",values:" + values.length); } StringBuffer queryString = new StringBuffer(); queryString.append("from " + persistentClass.getSimpleName() + " as model where 1=1 "); @@ -638,6 +666,7 @@ public class BaseRepositoryImpl extends SimpleJpaRep } } + @Deprecated @Override public List findByHqlWherePage(String hqlWhere, Pager pager) { if(pager.getTotalRows() > 0) { @@ -658,6 +687,25 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public List findByHqlWherePage(DdlPackBean packBean, Pager pager) { + if(pager.getTotalRows() > 0) { + Query query = entityManager.createQuery("from " + persistentClass.getSimpleName() + + " as model where 1=1 " + packBean.getPackedHql()); + + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key)); + } + + return query.setFirstResult(pager.getStartRow()) + .setMaxResults(pager.getPageSize()) + .getResultList(); + }else{ + return new ArrayList(); + } + } + + @Deprecated + @Override public int findByHqlWhereCount(String hqlWhere) { StringBuffer queryString = new StringBuffer(); queryString.append("select count(distinct model) from " + persistentClass.getSimpleName() + " as model where 1=1 "); @@ -674,6 +722,24 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public int findByHqlWhereCount(DdlPackBean packBean) { + StringBuffer queryString = new StringBuffer(); + queryString.append("select count(distinct model) from " + persistentClass.getSimpleName() + + " as model where 1=1 " + packBean.getPackedHql()); + + Query query = entityManager.createQuery(queryString.toString(), Long.class); + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key)); + } + try{ + Long count = (Long) query.getSingleResult(); + return count == null ? 0 : count.intValue(); + }catch(NoResultException e){ + return 0; + } + } + + @Override public int findByHqlCount(String hql) { try{ Long count = entityManager.createQuery(hql,Long.class).getSingleResult(); @@ -709,9 +775,27 @@ public class BaseRepositoryImpl extends SimpleJpaRep } return entityManager.createQuery(queryString.toString()) - .setFirstResult(pager.getStartRow()) - .setMaxResults(pager.getPageSize()) - .getResultList(); + .setFirstResult(pager.getStartRow()) + .setMaxResults(pager.getPageSize()) + .getResultList(); + }else{ + return new ArrayList(); + } + } + + @Override + public List findByHqlPage(DdlPackBean packBean, Pager pager) { + if(pager.getTotalRows() > 0){ + Query query = entityManager.createQuery("from " + persistentClass.getSimpleName() + + " as model where 1=1 " + packBean.getPackedHql()); + + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key)); + } + + return query.setFirstResult(pager.getStartRow()) + .setMaxResults(pager.getPageSize()) + .getResultList(); }else{ return new ArrayList(); } @@ -808,6 +892,23 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public double findByHqlDouble(DdlPackBean packBean) { + try{ + Query query = entityManager.createQuery("from " + persistentClass.getSimpleName() + + " as model where 1=1 " + packBean.getPackedHql(),Double.class); + + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key)); + } + + Double result = (Double) query.getSingleResult(); + return result == null ? 0 : result; + }catch(NoResultException e){ + return 0; + } + } + + @Override public long findByHqlLong(String hql) { try{ return entityManager.createQuery(hql,Long.class).getSingleResult(); @@ -817,6 +918,22 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public long findByHqlLong(DdlPackBean packBean) { + try{ + Query query = entityManager.createQuery("from " + persistentClass.getSimpleName() + + " as model where 1=1 " + packBean.getPackedHql(),Long.class); + + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key)); + } + + return (long) query.getSingleResult(); + }catch(NoResultException e){ + return 0; + } + } + + @Override public List findByHqlTopWhere(String hqlWhere, int topNum) { StringBuffer queryString = new StringBuffer(); queryString.append("from " + persistentClass.getSimpleName() + " as model where 1=1 "); @@ -828,6 +945,17 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public List findByHqlTopWhere(DdlPackBean packBean, int topNum) { + Query query = entityManager.createQuery("from " + persistentClass.getSimpleName() + + " as model where 1=1 " + packBean.getPackedHql()); + + for (String key : packBean.getHqlPreparedMap().keySet()) { + query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key)); + } + return query.setFirstResult(0).setMaxResults(topNum).getResultList(); + } + + @Override public List findColumnsByHql(String hql, String hqlWhere, String orderByStuff, Pager pager) { if(pager.getTotalRows() > 0) { StringBuffer queryString = new StringBuffer(); @@ -840,7 +968,10 @@ public class BaseRepositoryImpl extends SimpleJpaRep queryString.append(" " + orderByStuff); - return entityManager.createQuery(queryString.toString()).setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()).getResultList(); + return entityManager.createQuery(queryString.toString()) + .setFirstResult(pager.getStartRow()) + .setMaxResults(pager.getPageSize()) + .getResultList(); }else{ return new ArrayList(); } @@ -1119,6 +1250,11 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public boolean isExitByHql(DdlPackBean packBean) { + return findByHqlWhereCount(packBean) > 0; + } + + @Override public boolean isExitByHql(String hql, String[] paramName, Object[] paramValue) { return findByHqlCount(hql) > 0; } diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/DdlPreparedPack.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/DdlPreparedPack.java new file mode 100644 index 0000000..4dd2b98 --- /dev/null +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/DdlPreparedPack.java @@ -0,0 +1,449 @@ +package cn.estsh.i3plus.pojo.base.tool; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import org.apache.commons.lang3.StringUtils; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @Description : 数据库脚本封装方法,封装成预加载hql,HqlPack仅限用于一些特定的sql,可能造成性能低下 + * example: name = :name + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-03-29 + * @Modify: + **/ +public class DdlPreparedPack { + + /** + * 封装日期 + * + * @param startDate 开始日期 + * @param endDate 开始日期和结束日期,以逗号分隔(分为开始时间和结束时间) + * @param columnName HQL里对应的时间字段 + * @param packBean 封装的HQL对象 + * @param isShowTime 是否包含时分秒 + */ + public static void timeBuilder(String startDate, String endDate, String columnName, + DdlPackBean packBean, boolean isShowTime) { + if (startDate == null || startDate.trim().length() == 0) { + startDate = "1900-01-01"; + } else { + startDate = startDate.trim(); + } + if (isShowTime && startDate.trim().length() <= 11) { + startDate += " 00:00:00"; + } + if (endDate == null || endDate.trim().length() == 0) { + endDate = "2100-01-01"; + } else { + endDate = endDate.trim(); + } + if (isShowTime && endDate.trim().length() <= 11) { + endDate += " 23:59:59"; + } + + packBean.addColumnQuery(columnName,"and model." + columnName + " >= :m_" + columnName, startDate); + packBean.addColumnQuery(columnName,"and model." + columnName + " <= :m_" + columnName, endDate); + } + + /** + * 封装日期 + * + * @param date 开始日期和结束日期,以逗号分隔(分为开始时间和结束时间) + * @param columnName HQL里对应的时间字段 + * @param packBean 封装的HQL + * @param showTaday 如果没有开始时间和结束时间,是否查询当天时间,还是查询所有时间。true:查询当天时间,false:查询所有 + * @param isShowTime 是否包含时分秒 + */ + public static void timeBuilder(String date, String columnName, DdlPackBean packBean, Boolean showTaday, boolean isShowTime) { + if (date != null && date.trim().length() > 0) { + String today = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date()); + if (date != null && date.trim().length() > 0 && (date.length() == 1 || ",".equals(date))) { + //只有一个逗号 + date = ""; + } + + String[] time = date.split(","); + if (time.length == 1) { + //只有开始日期,没有结束日期 + packBean.addColumnQuery(columnName,"and model." + columnName + " like :m_" + columnName, "%" + time[0] + "%"); + } else if (time.length == 2 && ((time[0] != null && time[0].trim().length() > 0) + || (time[1] != null & time[1].trim().length() > 0))) { + if (time[0] == null || time[0].trim().length() == 0) { + time[0] = "1900-01-01"; + } else { + time[0] = time[0].trim(); + } + if (isShowTime && time[0].trim().length() <= 11) { + time[0] += " 00:00:00"; + } + if (time[1] == null || time[1].trim().length() == 0) { + time[1] = "2100-01-01"; + } else { + time[1] = time[1].trim(); + } + if (isShowTime && time[1].trim().length() <= 11) { + time[1] += " 23:59:59"; + } + packBean.addColumnQuery(columnName,"and model." + columnName + " >= :m_" + columnName, time[0]); + packBean.addColumnQuery(columnName,"and model." + columnName + " <= :m_" + columnName, time[1]); + } else { + if (showTaday) { + if (isShowTime) { + packBean.addColumnQuery(columnName,"and model." + columnName + " >= :m_" + columnName, today + " 00:00:00"); + packBean.addColumnQuery(columnName,"and model." + columnName + " <= :m_" + columnName, today + " 23:59:59"); + } else { + packBean.addColumnQuery(columnName,"and model." + columnName + " >= :m_" + columnName, today); + packBean.addColumnQuery(columnName,"and model." + columnName + " <= :m_" + columnName, today); + } + } + } + } + } + + + /** + * 封装日期 + * + * @param date 日期,需要和时间字段的值格式相同 + * @param startColumnName HQL里对应的开始时间字段 + * @param endColumnName HQL里对应的结束时间字段 + * @param packBean 封装的HQL + * @param isShowTime 是否包含时分秒 + */ + public static void getTimeBetweenCol(String date, String startColumnName, String endColumnName, + DdlPackBean packBean, boolean isShowTime) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (date == null || date.trim().length() == 0) { + date = sdf.format(new Date()); + } + if (!isShowTime) { + date = date.substring(0, 10); + packBean.addColumnQuery(null," and '" + date + "' between substring(model." + startColumnName + + ",1,10) and substring(model." + endColumnName + ",1,10)", null); + return; + } else if (date.trim().length() <= 11) { + date += " 00:00:00"; + } + packBean.addColumnQuery(null," and '" + date + "' between model." + startColumnName + + " and model." + endColumnName, null); + } + + /** + * 封装String对象成order by排序 + * + * @param columnName 列名 + * @param packBean + */ + public static void getOrderByPack(Object order[], String[] columnName, DdlPackBean packBean) { + String sqlStr = ""; + String orderByStr = ""; + for (int i = 0; i < order.length; i++) { + if (order[i] != null && order[i].toString().trim().length() > 0) { + if (Integer.parseInt(order[i].toString()) == 1) { + order[i] = "asc"; + } else { + order[i] = "desc"; + } + sqlStr += " model." + columnName[i] + " " + order[i].toString() + ","; + } + } + + if (sqlStr.length() > 0 && sqlStr.lastIndexOf(",") == sqlStr.length() - 1) { + sqlStr = sqlStr.substring(0, sqlStr.length() - 1); + orderByStr = " order by " + sqlStr; + } + + packBean.setOrderByStr(orderByStr); + } + + /** + * 对象默认排序 + */ + public static void getOrderDefault(BaseBean bean) { + if (bean != null && StringUtils.isBlank(bean.getOrderByParam())) { + bean.setOrderByParam("modifyDatetime"); + bean.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + } + } + + /** + * 封装String对象成like语句 + * + * @param val 对象值 + * @param columnName 列名 + * @param packBean + */ + public static void getStringLikerPack(String val, String columnName, DdlPackBean packBean) { + if (val != null && val.trim().length() > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " like :m_" + columnName, "%" + val + "%"); + } + } + + /** + * 封装String对象成like语句 + * + * @param val 对象值 + * @param columnName 列名 + * @param packBean + */ + public static void getStringLikerPackOr(String val, String columnName, DdlPackBean packBean) { + if (val != null && val.trim().length() > 0) { + packBean.addColumnQuery(columnName," or model." + columnName + " like :m_" + columnName, "%" + val + "%"); + } + } + + /** + * 封装String对象成like语句(右侧模糊) + * + * @param val 对象值 + * @param columnName 列名 + * @param packBean + */ + public static void getStringRightLikerPack(String val, String columnName, DdlPackBean packBean) { + if (val != null && val.trim().length() > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " like :m_" + columnName, val + "%"); + } + } + + /** + * 封装String对象成like语句(左侧模糊) + * + * @param val 对象值 + * @param columnName 列名 + * @param packBean + */ + public static void getStringLeftLikerPack(String val, String columnName, DdlPackBean packBean) { + if (val != null && val.trim().length() > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " like :m_" + columnName, "%" + val); + } + } + + /** + * 封装String对象成equal语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getStringEqualPack(String val, String columnName, DdlPackBean packBean) { + if (val != null && val.trim().length() > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " = :m_" + columnName, val); + } + } + + /** + * 封装String对象成equal语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getStringEqualPackOr(String val, String columnName, DdlPackBean packBean) { + if (val != null && val.trim().length() > 0) { + packBean.addColumnQuery(columnName," or model." + columnName + " = :m_" + columnName, val); + } + } + + /** + * 封装long或者int的整数对象成equal语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getNumEqualPack(Object data, String columnName, DdlPackBean packBean) { + if (data != null) { + packBean.addColumnQuery(columnName," and model." + columnName + " = :m_" + columnName, data); + } + } + + /** + * 封装long或者int的整数对象成equal语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getNumEqualPackOr(Object data, String columnName, DdlPackBean packBean) { + if (data != null && Long.parseLong(data.toString()) > 0) { + packBean.addColumnQuery(columnName," or model." + columnName + " = :m_" + columnName, data); + } + } + + /** + * 封装long或者int的整数对象成equal语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getNumEqualPackOverZero(Object data, String columnName, DdlPackBean packBean) { + if (data != null && Double.parseDouble(data.toString()) > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " = :m_" + columnName, data); + } + } + + /** + * 封装long或者int的整数对象成equal语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getNumWithZeroEqualPack(Object data, String columnName, DdlPackBean packBean) { + if (data != null && Double.parseDouble(data.toString()) >= 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " = :m_" + columnName, data); + } + } + + /** + * 封装double对象成大于语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getNumberBiggerPack(Object data, String columnName, DdlPackBean packBean) { + if (data != null && Double.parseDouble(data.toString()) > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " > :m_" + columnName, data); + } + } + + /** + * 封装double对象成小于语句 + * + * @param columnName 列名 + * @param packBean + */ + public static void getNumberSmallerPack(Object data, String columnName, DdlPackBean packBean) { + if (data != null && Double.parseDouble(data.toString()) > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " < :m_" + columnName, data); + } + } + + /** + * 封装long或者int的整数对象成equal语句(不等于) + * + * @param columnName 列名 + * @param packBean + */ + public static void getNumNOEqualPack(Object data, String columnName, DdlPackBean packBean) { + if (data != null) { + packBean.addColumnQuery(columnName," and model." + columnName + " <> :m_" + columnName, data); + } + } + + /** + * 封装in查询语句 + * + * @param data + * @param columnName + * @param packBean + */ + public static void getInPack(String data, String columnName, DdlPackBean packBean) { + if (data != null && data.trim().length() > 0) { + packBean.addColumnQuery(columnName," and model." + columnName + " in (:m_" + columnName + ")", data); + } + } + + /** + * 封装in查询语句 + * + * @param data + * @param columnName + * @param packBean + */ + public static void getOrInPack(String data, String columnName, DdlPackBean packBean) { + if (data != null && data.trim().length() > 0) { + packBean.addColumnQuery(columnName," or model." + columnName + " in (:m_" + columnName + ")", data); + } + } + + /** + * 封装in String查询语句 + * + * @param data + * @param columnName + * @param packBean + */ + public static void getInPackString(String data, String columnName, DdlPackBean packBean) { + if (data != null && data.trim().length() > 0) { + //判断最后一位是不是逗号 + if (data.lastIndexOf(",") != (data.length() - 1)) { + data += ","; + } + String[] dataArray = data.substring(0, data.length() - 1).split(","); + data = ""; + for (int i = 0; i < dataArray.length; i++) { + if (i == dataArray.length - 1) { + data += "'" + dataArray[i] + "'"; + } else { + data += "'" + dataArray[i] + "',"; + } + } + packBean.addColumnQuery(columnName," and model." + columnName + " in (:m_" + columnName + ")", data); + } + } + + /** + * 封装in String查询语句 + * + * @param data + * @param columnName + * @param packBean + */ + public static void getInOrPackString(String data, String columnName, DdlPackBean packBean) { + if (data != null && data.trim().length() > 0) { + //判断最后一位是不是逗号 + if (data.lastIndexOf(",") != (data.length() - 1)) { + data += ","; + } + String[] dataArray = data.substring(0, data.length() - 1).split(","); + data = ""; + for (int i = 0; i < dataArray.length; i++) { + if (i == dataArray.length - 1) { + data += "'" + dataArray[i] + "'"; + } else { + data += "'" + dataArray[i] + "',"; + } + } + packBean.addColumnQuery(columnName," or model." + columnName + " in (:m_" + columnName + ")", data); + } + } + + /** + * 封装in String查询语句 + * + * @param data + * @param columnName + * @param packBean + */ + public static void getNotInPackString(String data, String columnName, DdlPackBean packBean) { + if (data != null && data.trim().length() > 0) { + //判断最后一位是不是逗号 + if (data.lastIndexOf(",") != (data.length() - 1)) { + data += ","; + } + String[] dataArray = data.substring(0, data.length() - 1).split(","); + data = ""; + for (int i = 0; i < dataArray.length; i++) { + if (i == dataArray.length - 1) { + data += "'" + dataArray[i] + "'"; + } else { + data += "'" + dataArray[i] + "',"; + } + } + packBean.addColumnQuery(columnName," and." + columnName + " not in (:m_" + columnName + ")", data); + } + } + + /** + * 封装not in查询语句 + * + * @param data + * @param columnName + * @param packBean + */ + public static void getNotInPack(String data, String columnName, DdlPackBean packBean) { + if (data != null && data.trim().length() > 0) { + packBean.addColumnQuery(columnName," and." + columnName + " not in (:m_" + columnName + ")", data); + } + } +} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java index 802e693..0e8af5f 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java @@ -7,6 +7,13 @@ import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFormat; import java.util.Date; +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:17 + * @Modify: + **/ public class HqlPack { /** @@ -165,11 +172,9 @@ public class HqlPack { * 对象默认排序 */ public static void getOrderDefault(BaseBean bean) { - if(bean != null){ - if(StringUtils.isBlank(bean.getOrderByParam())){ - bean.setOrderByParam("modifyDatetime"); - bean.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); - } + if(bean != null && StringUtils.isBlank(bean.getOrderByParam())){ + bean.setOrderByParam("modifyDatetime"); + bean.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); } } @@ -279,7 +284,7 @@ public class HqlPack { * @param result */ public static void getNumEqualPackForZero(Object data,String columnName, StringBuffer result) { - if (data != null && Long.parseLong(data.toString()) >= 0) { + if (data != null && Long.parseLong(data.toString()) > 0) { data = getSafeParam(data); result.append(" and model."+columnName+" = " + data + ""); } From 865add1f7fb79a1f5b9af5480702fdffc86dde72 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Tue, 2 Apr 2019 17:19:01 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/enumutil/BlockFormEnumUtil.java | 11 +++---- .../cn/estsh/i3plus/pojo/form/bean/BfButton.java | 35 +++++++++++++--------- .../i3plus/pojo/form/sqlpack/FormHqlPack.java | 15 ++++++++++ 3 files changed, 40 insertions(+), 21 deletions(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java index 672767d..11363f8 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java @@ -1,9 +1,6 @@ package cn.estsh.i3plus.pojo.base.enumutil; import com.fasterxml.jackson.annotation.JsonFormat; -import javafx.scene.chart.Chart; - -import java.util.Date; /** * @Description : 模块表单枚举类 @@ -1572,9 +1569,9 @@ public class BlockFormEnumUtil { * 表单功能明细 触发效果信息 */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) - public enum TRIGGER_EFFECT { + public enum BUTTON_TRIGGER_EFFECT { DIALOG(10, "DIALOG", "弹出窗口"), - WINDOW_NEW(20, "NEW_WINDOW", "新开窗口"), + NEW_WINDOW(20, "NEW_WINDOW", "新开窗口"), SQL(30, "SQL", "执行SQL"), CLASS_METHOD(40, "CLASS_METHOD", "执行类方法"); @@ -1582,7 +1579,7 @@ public class BlockFormEnumUtil { private String name; private String description; - TRIGGER_EFFECT(int value, String name, String description) { + BUTTON_TRIGGER_EFFECT(int value, String name, String description) { this.value = value; this.name = name; this.description = description; @@ -1600,7 +1597,7 @@ public class BlockFormEnumUtil { return name; } - public static TRIGGER_EFFECT valueOf(int val) { + public static BUTTON_TRIGGER_EFFECT valueOf(int val) { for (int i = 0; i < values().length; i++) { if (values()[i].value == val) { return values()[i]; diff --git a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfButton.java b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfButton.java index 7b20d71..bc8a73b 100644 --- a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfButton.java +++ b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfButton.java @@ -9,7 +9,6 @@ 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; @@ -26,31 +25,39 @@ import javax.persistence.Table; @DynamicInsert @DynamicUpdate @EqualsAndHashCode(callSuper = true) -@Table(name="BF_BUTTON") -@Api(value="表单按钮",description = "表单按钮") +@Table(name = "BF_BUTTON") +@Api(value = "表单按钮", description = "表单按钮") public class BfButton extends BaseBean { - @Column(name="BUTTON_NAME") - @ApiParam(value ="按钮名称") + @Column(name = "BUTTON_NAME") + @ApiParam(value = "按钮名称") private String buttonName; - // 枚举:BlockFormEnumUtil.TRIGGER_EFFECT - @Column(name="TRIGGER_MODE") - @ApiParam(value ="触发方式") + // 枚举:BlockFormEnumUtil.BUTTON_TRIGGER_EFFECT + @Column(name = "TRIGGER_MODE") + @ApiParam(value = "触发方式") private Integer triggerMode; + public Integer getTriggerMode() { + if (triggerMode == null) { + return null; + } else { + return triggerMode.intValue(); + } + } + // 关联表单功能表id - @Column(name="METHOD_ID") - @ApiParam(value ="表单功能id") + @Column(name = "METHOD_ID") + @ApiParam(value = "表单功能id") @JsonSerialize(using = ToStringSerializer.class) private Long methodId; - @Column(name="METHOD_NAME_RDD") - @ApiParam(value ="表单功能名称") + @Column(name = "METHOD_NAME_RDD") + @ApiParam(value = "表单功能名称") private String methodNameRdd; // 执行类方法,sql,脚本 - @Column(name="METHOD_CONTENT") - @ApiParam(value ="执行内容") + @Column(name = "METHOD_CONTENT") + @ApiParam(value = "执行内容") private String methodContent; } diff --git a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java index 428758e..c03a7c4 100644 --- a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java +++ b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java @@ -164,4 +164,19 @@ public final class FormHqlPack { return result.toString(); } + + /** + * 表单按钮复杂查询 + * @param bfButton 查询条件 + */ + public static String packHqlBfButton(BfButton bfButton){ + StringBuffer result = new StringBuffer(); + + HqlPack.getStringLikerPack(bfButton.getButtonName(), "buttonName", result); + HqlPack.getNumEqualPack(bfButton.getTriggerMode(), "triggerMode", result); + HqlPack.getNumEqualPack(bfButton.getIsDeleted(), "isDeleted", result); + result.append(bfButton.orderBy()); + + return result.toString(); + } } From 4f0e3756dfdf50bcf5639b33cab5189394d82fd3 Mon Sep 17 00:00:00 2001 From: alwaysfrin <39822157+alwaysfrin@users.noreply.github.com> Date: Tue, 2 Apr 2019 18:26:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/estsh/i3plus/pojo/base/enumutil/ResourceEnumUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ResourceEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ResourceEnumUtil.java index 1a7d0cd..f6481e7 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ResourceEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/ResourceEnumUtil.java @@ -22,7 +22,8 @@ public class ResourceEnumUtil { NUM_NOT_EQUAL("10007", "字符值不相同"), STRING_NOT_EQUAL("10008", "数字值不相同"), OVER_SIZE("10009", "长度超出"), - NOT_ZERO("10010", "不能为0"); + NOT_ZERO("10010", "不能为0"), + CLOUD_CRAP("10011", "无法使用服务"); private String code; private String description;