Browse Source

自定义报表的 功能

master
Rui_Li 4 years ago
parent
commit
e42e414c4d
  1. 50
      src/main/java/com/gaotao/modules/report/controller/ReportController.java
  2. 37
      src/main/java/com/gaotao/modules/report/dao/ReportDao.java
  3. 44
      src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java
  4. 51
      src/main/java/com/gaotao/modules/report/data/CustomerReportRoleData.java
  5. 28
      src/main/java/com/gaotao/modules/report/service/ReportService.java
  6. 55
      src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java

50
src/main/java/com/gaotao/modules/report/controller/ReportController.java

@ -2,6 +2,7 @@ package com.gaotao.modules.report.controller;
import com.gaotao.common.utils.R;
import com.gaotao.modules.report.data.CustomerReportData;
import com.gaotao.modules.report.data.CustomerReportRoleData;
import com.gaotao.modules.report.data.CustomerSearchColumnData;
import com.gaotao.modules.report.data.SearchReportData;
import com.gaotao.modules.report.service.ReportService;
@ -198,6 +199,55 @@ public class ReportController {
.put("msg", "操作成功!");
}
/**
* @Author LR
* @Description 获取需要授权的角色
* @DateTime 2022/4/18 15:08
* @Param [inData]
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "getAuthRoles")
public R getAuthRoles(@RequestBody SearchReportData inData){
List<CustomerReportRoleData> resultList = reportService.getAuthRoles(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!")
.put("rows", resultList)
.put("total", resultList.size());
}
/**
* @Author LR
* @Description 保存单个报表的权限数据
* @DateTime 2022/4/18 15:42
* @Param [inMap]
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "saveAuthSingleCustomerReport")
public R saveAuthSingleCustomerReport(@RequestBody Map<String, Object> inMap){
reportService.saveAuthSingleCustomerReport(inMap);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}
/**
* @Author LR
* @Description 获取用户的定制报表信息
* @DateTime 2022/4/18 16:32
* @Param [inData]
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "getUserCustomerReportList")
public R getUserCustomerReportList(@RequestBody SearchReportData inData){
List<CustomerReportData> resultList = reportService.getUserCustomerReportList(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!")
.put("rows", resultList)
.put("total", resultList.size());
}

37
src/main/java/com/gaotao/modules/report/dao/ReportDao.java

@ -1,6 +1,7 @@
package com.gaotao.modules.report.dao;
import com.gaotao.modules.report.data.CustomerReportData;
import com.gaotao.modules.report.data.CustomerReportRoleData;
import com.gaotao.modules.report.data.CustomerSearchColumnData;
import com.gaotao.modules.report.data.SearchReportData;
@ -129,4 +130,40 @@ public interface ReportDao {
* @return void
**/
void deleteCustomerReportByReportId(String reportId);
/**
* @Author LR
* @Description 获取需要授权的角色
* @DateTime 2022/4/18 15:10
* @Param [inData]
* @return java.util.List<com.gaotao.modules.report.data.CustomerReportRoleData>
**/
List<CustomerReportRoleData> getAuthRoles(String reportId);
/**
* @Author LR
* @Description 删除以前报表的权限
* @DateTime 2022/4/18 16:07
* @Param [reportId]
* @return void
**/
void deleteCustomerReportRoleByReportId(String reportId);
/**
* @Author LR
* @Description 批量新增报表的权限
* @DateTime 2022/4/18 16:08
* @Param [saveAuthRoles]
* @return void
**/
void batchInsertCustomerReportRoles(List<CustomerReportRoleData> saveAuthRoles);
/**
* @Author LR
* @Description 获取用户的定制报表信息
* @DateTime 2022/4/18 16:35
* @Param [site, username]
* @return java.util.List<com.gaotao.modules.report.data.CustomerReportData>
**/
List<CustomerReportData> getUserCustomerReportList(String site, String username);
}

44
src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java

@ -2,6 +2,7 @@ package com.gaotao.modules.report.dao.impl;
import com.gaotao.modules.report.dao.ReportDao;
import com.gaotao.modules.report.data.CustomerReportData;
import com.gaotao.modules.report.data.CustomerReportRoleData;
import com.gaotao.modules.report.data.CustomerSearchColumnData;
import com.gaotao.modules.report.data.SearchReportData;
import org.springframework.beans.factory.annotation.Autowired;
@ -174,5 +175,48 @@ public class ReportDaoImpl implements ReportDao {
parameterJdbcTemplate.update(sql.toString(), paramMap);
}
@Override
public List<CustomerReportRoleData> getAuthRoles(String reportId) {
StringBuilder sql = new StringBuilder();
Map<String, Object> paramMap = new HashMap<>();
sql.append("SELECT crr.site, sr.role_id, sr.role_name, crr.report_id, (CASE WHEN crr.report_id IS NULL THEN 'N' ELSE 'Y' END) checkedFlag");
sql.append(" FROM sys_role sr");
sql.append(" LEFT JOIN customer_report_role crr ON crr.role_id = sr.role_id AND crr.report_id = :reportId");
paramMap.put("reportId", reportId);
return parameterJdbcTemplate.query(sql.toString(), paramMap, new BeanPropertyRowMapper<>(CustomerReportRoleData.class));
}
@Override
public void deleteCustomerReportRoleByReportId(String reportId) {
StringBuilder sql = new StringBuilder();
Map<String, Object> paramMap = new HashMap<>();
sql.append("DELETE FROM customer_report_role WHERE report_id = :reportId");
paramMap.put("reportId", reportId);
parameterJdbcTemplate.update(sql.toString(), paramMap);
}
@Override
public void batchInsertCustomerReportRoles(List<CustomerReportRoleData> saveAuthRoles) {
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO customer_report_role(site, role_id, report_id, created_by, created_date)");
sql.append(" VALUES(:site, :roleId, :reportId, :createdBy, :createdDate)");
parameterJdbcTemplate.batchUpdate(sql.toString(), SqlParameterSourceUtils.createBatch(saveAuthRoles.toArray()));
}
@Override
public List<CustomerReportData> getUserCustomerReportList(String site, String username) {
StringBuilder sql = new StringBuilder();
Map<String, Object> 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,");
sql.append(" crh.sort_no, crh.created_by, crh.created_date, crh.updated_by, crh.updated_date FROM customer_report_header crh");
sql.append(" LEFT JOIN customer_report_role crr ON crr.site = crh.site AND crr.report_id = crh.report_id");
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");
paramMap.put("site", site);
paramMap.put("username", username);
return parameterJdbcTemplate.query(sql.toString(), paramMap, new BeanPropertyRowMapper<>(CustomerReportData.class));
}
}

51
src/main/java/com/gaotao/modules/report/data/CustomerReportRoleData.java

@ -0,0 +1,51 @@
package com.gaotao.modules.report.data;
import com.gaotao.modules.schedule.data.BaseData;
import org.apache.ibatis.type.Alias;
/**
* @author LR
* @date 2022/4/13 14:48
*/
@Alias("CustomerReportRoleData")
public class CustomerReportRoleData extends BaseData {
private String reportId;//
private String roleId;//
private String roleName;//
private String checkedFlag;//
public CustomerReportRoleData() {
}
public String getReportId() {
return reportId;
}
public void setReportId(String reportId) {
this.reportId = reportId;
}
public String getRoleId() {
return roleId;
}
public void setRoleId(String roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public String getCheckedFlag() {
return checkedFlag;
}
public void setCheckedFlag(String checkedFlag) {
this.checkedFlag = checkedFlag;
}
}

28
src/main/java/com/gaotao/modules/report/service/ReportService.java

@ -1,6 +1,7 @@
package com.gaotao.modules.report.service;
import com.gaotao.modules.report.data.CustomerReportData;
import com.gaotao.modules.report.data.CustomerReportRoleData;
import com.gaotao.modules.report.data.CustomerSearchColumnData;
import com.gaotao.modules.report.data.SearchReportData;
@ -111,4 +112,31 @@ public interface ReportService {
* @return void
**/
void deleteCustomerReportSearchColumn(CustomerSearchColumnData inData);
/**
* @Author LR
* @Description 获取需要授权的角色
* @DateTime 2022/4/18 15:09
* @Param [inData]
* @return java.util.List<com.gaotao.modules.report.data.CustomerReportRoleData>
**/
List<CustomerReportRoleData> getAuthRoles(SearchReportData inData);
/**
* @Author LR
* @Description 保存单个报表的权限数据
* @DateTime 2022/4/18 15:44
* @Param [inMap]
* @return void
**/
void saveAuthSingleCustomerReport(Map<String, Object> inMap);
/**
* @Author LR
* @Description 获取用户的定制报表信息
* @DateTime 2022/4/18 16:32
* @Param [inData]
* @return java.util.List<com.gaotao.modules.report.data.CustomerReportData>
**/
List<CustomerReportData> getUserCustomerReportList(SearchReportData inData);
}

55
src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java

@ -15,10 +15,7 @@ import com.gaotao.common.exception.RRException;
import com.gaotao.common.utils.DateUtil;
import com.gaotao.modules.report.dao.ProcedureDao;
import com.gaotao.modules.report.dao.ReportDao;
import com.gaotao.modules.report.data.CustomerReportColumnData;
import com.gaotao.modules.report.data.CustomerReportData;
import com.gaotao.modules.report.data.CustomerSearchColumnData;
import com.gaotao.modules.report.data.SearchReportData;
import com.gaotao.modules.report.data.*;
import com.gaotao.modules.report.service.ReportService;
import com.gaotao.modules.schedule.data.SearchScheduleData;
import com.gaotao.modules.schedule.data.SfdcMaterialData;
@ -378,4 +375,54 @@ public class ReportServiceImpl implements ReportService {
//执行删除操作
reportDao.deleteCustomerReportSearchColumn(reportId, columnField);
}
@Override
public List<CustomerReportRoleData> getAuthRoles(SearchReportData inData) {
//公共参数
String reportId = inData.getReportId();
return reportDao.getAuthRoles(reportId);
}
@Override
@Transactional
public void saveAuthSingleCustomerReport(Map<String, Object> inMap) {
//条件
String strPageData = String.valueOf(inMap.get("pageData"));
SearchReportData pageData = JSON.parseObject(strPageData, SearchReportData.class);
String strAuthRoles = String.valueOf(inMap.get("authRoles"));
List<CustomerReportRoleData> currentColumnList = JSON.parseArray(strAuthRoles, CustomerReportRoleData.class);
//查询当前的列表
String site = pageData.getSite();
String reportId = pageData.getReportId();
String username = pageData.getUsername();
//新增的对象
List<CustomerReportRoleData> saveAuthRoles = new ArrayList<>();
//循环判断是否已经保存了
for (CustomerReportRoleData reportRoleData: currentColumnList){
String checkedFlag = reportRoleData.getCheckedFlag();
//没有保存的才需要保存
if("Y".equalsIgnoreCase(checkedFlag)){
reportRoleData.setSite(site);
reportRoleData.setReportId(reportId);
reportRoleData.setCreatedBy(username);
reportRoleData.setCreatedDate(new Date());
saveAuthRoles.add(reportRoleData);
}
}
//先删除以前报表的权限 在新增
reportDao.deleteCustomerReportRoleByReportId(reportId);
//判断是否新增 批量新增报表的权限
if(saveAuthRoles.size() > 0){
reportDao.batchInsertCustomerReportRoles(saveAuthRoles);
}
}
@Override
public List<CustomerReportData> getUserCustomerReportList(SearchReportData inData) {
//公共参数
String site = inData.getSite();
String username = inData.getUsername();
return reportDao.getUserCustomerReportList(site, username);
}
}
Loading…
Cancel
Save