From fe20003918070ee711ac21ed1a812ec22bfb5c87 Mon Sep 17 00:00:00 2001 From: "wei.peng" <123456> Date: Fri, 27 Dec 2019 20:08:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=20=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/base/IReportService.java | 9 +++++++ .../i3plus/core/apiservice/dao/IReportDao.java | 7 +++--- .../core/apiservice/daoimpl/ReportDaoImpl.java | 29 ++++++++++++++++------ .../apiservice/serviceimpl/base/ReportService.java | 9 +++++-- .../serviceimpl/busi/SysMenuService.java | 2 +- 5 files changed, 42 insertions(+), 14 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IReportService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IReportService.java index 6e0a305..22b2803 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IReportService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IReportService.java @@ -29,4 +29,13 @@ public interface IReportService { */ @ApiOperation(value = "HQL 执行",notes = "执行 HQL") List selectTemplateModel(TemplateModel model) throws Exception; + + /** + * 执行 HQL + * @param model HQL Model + * @return 查询结果集 + * @throws Exception 运行异常 + */ + @ApiOperation(value = "HQL 执行",notes = "执行 HQL") + Long countTemplateModel(TemplateModel model) throws Exception; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IReportDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IReportDao.java index 0deef55..88ae3c4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IReportDao.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IReportDao.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.dao; import java.util.List; +import java.util.Map; /** * @Description : @@ -14,11 +15,11 @@ public interface IReportDao { /** * * @param hql hql - * @param paramName - * @param paramValue * @return * @throws Exception */ - List findByHqlObjects(String hql, String[] paramName, Object[] paramValue) throws Exception; + List findByHqlObjects(String hql, Map findParam) throws Exception; + + Long findByHqlCount(String hql, Map findParam) throws Exception; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java index 4f844bc..906cf6a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java @@ -5,10 +5,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.persistence.EntityManager; import javax.persistence.Query; import java.util.List; +import java.util.Map; /** * @Description : @@ -26,17 +28,28 @@ public class ReportDaoImpl implements IReportDao { private EntityManager entityManager; @Override - public List findByHqlObjects(String hql, String[] paramName, Object[] paramValue) throws Exception { - LOGGER.info(" find HQL:{} paramName:{} paramValue:{}", hql, paramName, paramValue); + public List findByHqlObjects(String hql, Map findParam) throws Exception { + LOGGER.info(" find HQL:{} find params :{}", hql, findParam); Query queryObject = entityManager.createQuery(hql); - if(paramName != null && paramValue != null){ - for (int i = 0; i < paramName.length; i++) { - if (paramValue[i] != null) { - queryObject.setParameter(paramName[i], paramValue[i].toString()); - } - } + + if(CollectionUtils.isEmpty(findParam)){ + findParam.forEach((K, V) -> queryObject.setParameter(K, V)); } + entityManager.clear(); return queryObject.getResultList(); } + + @Override + public Long findByHqlCount(String hql, Map findParam) throws Exception { + LOGGER.info(" find HQL:{} find params :{}", hql, findParam); + Query queryObject = entityManager.createQuery(hql); + + if(CollectionUtils.isEmpty(findParam)){ + findParam.forEach((K, V) -> queryObject.setParameter(K, V)); + } + + entityManager.clear(); + return (Long)queryObject.getSingleResult(); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java index 097028b..6176c7b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java @@ -4,7 +4,6 @@ import cn.estsh.i3plus.core.api.iservice.base.IReportService; import cn.estsh.i3plus.core.apiservice.dao.IReportDao; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.model.report.TemplateModel; -import org.hibernate.QueryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -36,8 +35,14 @@ public class ReportService implements IReportService { } @Override + public Long countTemplateModel(TemplateModel model) throws Exception { + LOGGER.info("报表执行 model :{}",model); + return reportDao.findByHqlCount(model.getCountHql(), model.getFindParam()); + } + + @Override public List selectTemplateModel(TemplateModel model) throws Exception{ LOGGER.info("报表执行 model :{}",model); - return reportDao.findByHqlObjects(model.getHql(), model.getParamName(), model.getParamValue()); + return reportDao.findByHqlObjects(model.getSelectHql(), model.getFindParam()); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java index 2903600..c419cad 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java @@ -190,7 +190,7 @@ public class SysMenuService implements ISysMenuService { public List refreshSysMenu(List list) { LOGGER.info("系统功能 SYS_MENU list :{}", list); - sysMenuRDao.deleteAll(); +// sysMenuRDao.deleteAll(); return sysMenuRDao.saveAll(list); }