diff --git a/src/main/java/com/gaotao/modules/report/controller/ReportController.java b/src/main/java/com/gaotao/modules/report/controller/ReportController.java index 012bf53..1c3bd66 100644 --- a/src/main/java/com/gaotao/modules/report/controller/ReportController.java +++ b/src/main/java/com/gaotao/modules/report/controller/ReportController.java @@ -68,10 +68,11 @@ public class ReportController { **/ @RequestMapping(value = "addCustomerReport") public R addCustomerReport(@RequestBody SearchReportData inData){ - reportService.addCustomerReport(inData); + SearchReportData resultRow = reportService.addCustomerReport(inData); return R.ok() .put("code", 200) - .put("msg", "操作成功!"); + .put("msg", "操作成功!") + .put("row", resultRow); } /** diff --git a/src/main/java/com/gaotao/modules/report/dao/ReportDao.java b/src/main/java/com/gaotao/modules/report/dao/ReportDao.java index aa9b3f1..f780bbe 100644 --- a/src/main/java/com/gaotao/modules/report/dao/ReportDao.java +++ b/src/main/java/com/gaotao/modules/report/dao/ReportDao.java @@ -165,7 +165,7 @@ public interface ReportDao { * @Param [site, username] * @return java.util.List **/ - List getUserCustomerReportList(String site, String username); + List getUserCustomerReportList(String site, String username, String reportType, String reportName); /** * @Author LR diff --git a/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java b/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java index 17baff4..89d1762 100644 --- a/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java +++ b/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java @@ -57,7 +57,7 @@ public class ReportDaoImpl implements ReportDao { paramMap.put("reportType", reportType); } if(!(null == reportName || "".equals(reportName))){ - sql.append(" AND crh.report_name LIKE %" + reportName+ "%"); + sql.append(" AND crh.report_name LIKE '%" + reportName+ "%'"); } paramMap.put("site", site); return parameterJdbcTemplate.query(sql.toString(), paramMap, new BeanPropertyRowMapper<>(CustomerReportData.class)); @@ -204,7 +204,7 @@ public class ReportDaoImpl implements ReportDao { } @Override - public List getUserCustomerReportList(String site, String username) { + public List getUserCustomerReportList(String site, String username, String reportType, String reportName) { StringBuilder sql = new StringBuilder(); Map paramMap = new HashMap<>(); sql.append("SELECT DISTINCT crh.id, crh.site, crh.report_id, crh.report_name, crh.report_type, crh.report_sql, crh.report_remark, crh.report_status,"); @@ -213,6 +213,14 @@ public class ReportDaoImpl implements ReportDao { sql.append(" LEFT JOIN sys_user_role sur ON sur.role_id = crr.role_id"); sql.append(" LEFT JOIN sys_user su ON su.user_id = sur.user_id"); sql.append(" WHERE crh.site = :site AND su.username = :username"); + //判断查询条件 + if(!"ALL".equalsIgnoreCase(reportType)){ + sql.append(" AND crh.report_type = :reportType"); + paramMap.put("reportType", reportType); + } + if(!(null == reportName || "".equals(reportName))){ + sql.append(" AND crh.report_name LIKE '%"+reportName+"%'"); + } paramMap.put("site", site); paramMap.put("username", username); return parameterJdbcTemplate.query(sql.toString(), paramMap, new BeanPropertyRowMapper<>(CustomerReportData.class)); diff --git a/src/main/java/com/gaotao/modules/report/service/ReportService.java b/src/main/java/com/gaotao/modules/report/service/ReportService.java index 0f78523..14c1e82 100644 --- a/src/main/java/com/gaotao/modules/report/service/ReportService.java +++ b/src/main/java/com/gaotao/modules/report/service/ReportService.java @@ -39,7 +39,7 @@ public interface ReportService { * @Param [inData] * @return void **/ - void addCustomerReport(SearchReportData inData); + SearchReportData addCustomerReport(SearchReportData inData); /** * @Author LR diff --git a/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java b/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java index c262992..c743050 100644 --- a/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java +++ b/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java @@ -65,7 +65,7 @@ public class ReportServiceImpl implements ReportService { @Override @Transactional - public void addCustomerReport(SearchReportData inData) { + public SearchReportData addCustomerReport(SearchReportData inData) { //公共参数 String site = inData.getSite(); String currentDate = DateUtil.getStringDate(new Date(), "yyyyMMdd"); @@ -78,6 +78,7 @@ public class ReportServiceImpl implements ReportService { inData.setCreatedDate(new Date()); //保存定制报表的对象 reportDao.insertCustomerReport(inData); + return inData; } /** @@ -139,8 +140,15 @@ public class ReportServiceImpl implements ReportService { } //处理sql中的字段 CustomerReportData customerReportData = reportDao.getCustomerReportByReportId(inData); + //判断是否存在sql + String reportSql = customerReportData.getReportSql(); + if(reportSql == null || "".equals(reportSql.trim())){ + throw new RRException("请先为当前报表添加SQL语句"); + }else{ + reportSql = reportSql.trim(); + } //获取查询条件的字段 - List tempColumns = this.processReportSqlSearchCon(customerReportData.getReportSql()); + List tempColumns = this.processReportSqlSearchCon(reportSql); //去转Map 保存已经保存在数据中的 Map saveColumnMap = new HashMap<>(); for (CustomerSearchColumnData searchColumn : columnList){ @@ -182,7 +190,7 @@ public class ReportServiceImpl implements ReportService { //判断sql是否合法 int checkIndex = reportSql.indexOf("${"); if(checkIndex <= 0){ - throw new RRException("自定义报表的SQL语句非法!"); + return new ArrayList<>(); } //拆分字符串 int lastIndex = reportSql.lastIndexOf("}"); @@ -264,6 +272,10 @@ public class ReportServiceImpl implements ReportService { queryColumnSql.append("''"); } } + //判断是否替换过查询条件 + if(startIndex == 0 && endIndex == 0){ + queryColumnSql = new StringBuilder(columnSql); + } //执行临时的sql 看看返回的sql字段 List columnList = this.parseSqlColumns(queryColumnSql.toString(), JdbcConstants.SQL_SERVER); //处理数据 @@ -423,7 +435,9 @@ public class ReportServiceImpl implements ReportService { //公共参数 String site = inData.getSite(); String username = inData.getUsername(); - return reportDao.getUserCustomerReportList(site, username); + String reportType = inData.getReportType(); + String reportName = inData.getReportName().trim(); + return reportDao.getUserCustomerReportList(site, username, reportType, reportName); } @Override