ShowIndividualService.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package com.server;
  2. import com.dao.ChartsConfigMapper;
  3. import com.dao.ShowChartsMapper;
  4. import com.model.bo.ChartsColumnConfig;
  5. import com.model.bo.Screen;
  6. import com.model.bo.ScreenStr;
  7. import com.model.pojo.RepCode;
  8. import com.model.pojo.RepEntity;
  9. import com.model.vo.configVo.IndividualConfigInfo;
  10. import com.model.vo.dataVo.PopAndIndDataInfo;
  11. import com.util.BasesSource.DynamicDataSourceContextHolder;
  12. import com.util.ScreenUtil;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.util.ArrayList;
  16. import java.util.LinkedHashMap;
  17. import java.util.List;
  18. /*
  19. 个人统计表
  20. */
  21. @Service
  22. public class ShowIndividualService {
  23. @Autowired
  24. ChartsConfigMapper chartsConfigMapper;
  25. @Autowired
  26. GetChartsDataUtilService getChartsDataUtilService;
  27. @Autowired
  28. ShowChartsMapper showChartsMapper;
  29. @Autowired
  30. ScreenUtil screenUtil;
  31. @Autowired
  32. ChartsUtilService chartsUtilService;
  33. public RepEntity showIndividual(IndividualConfigInfo individualConfigInfo, String token){
  34. if (individualConfigInfo == null || "".equals(individualConfigInfo)){
  35. return new RepEntity(RepCode.Null);
  36. }
  37. PopAndIndDataInfo popAndIndDataInfo = new PopAndIndDataInfo();
  38. List<LinkedHashMap<String, Object>> targetValue = new ArrayList<>();
  39. //取表名
  40. int id = individualConfigInfo.getId();
  41. //获取列配置
  42. ChartsColumnConfig chartsColumn = chartsConfigMapper.getChartsColumn(id);
  43. if (chartsColumn == null || "".equals(chartsColumn)){
  44. return new RepEntity(RepCode.Null);
  45. }
  46. String style = chartsColumn.getChartStyle();
  47. String config = chartsColumn.getChartConfig();
  48. popAndIndDataInfo.setChartsConfig(config);
  49. popAndIndDataInfo.setChartsStyle(style);
  50. String tableName = chartsUtilService.getSqlStr(token, id);
  51. if ("".equals(tableName)){
  52. return new RepEntity(RepCode.NoAuthority);
  53. }
  54. int baseId = getChartsDataUtilService.getBaseId(id);
  55. System.out.println("切换数据库"+String.valueOf(baseId));
  56. try{
  57. if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
  58. //joinPoint.getSignature() :获取连接点的方法签名对象
  59. System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> ");
  60. } else {
  61. System.out.println("使用数据源:" + String.valueOf(baseId));
  62. DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
  63. }
  64. //取主建名
  65. // String tableKey = tableName + "_PK";
  66. // String keyName = showChartsMapper.getTableKey(tableName, tableKey);
  67. //
  68. //
  69. //取筛选列表
  70. List<Screen> screens = individualConfigInfo.getFilters();
  71. ScreenStr scr = new ScreenStr();
  72. String screen = "";
  73. String screenStr = "";
  74. if ("".equals(screens) || screens == null || screens.size() == 0){
  75. screen = "";
  76. screenStr = "";
  77. }else {
  78. scr = screenUtil.screensUtil(screens, "", "");
  79. screen = scr.getRet();
  80. StringBuilder sb = new StringBuilder(screen);
  81. screenStr = String.valueOf(sb .replace(1, 5, "where "));
  82. }
  83. String columnName = individualConfigInfo.getSortColumn();
  84. System.out.println("columnName:"+columnName);
  85. //查询其他列
  86. String columnListName = individualConfigInfo.getColumnListName().toString();
  87. String line = String.valueOf(individualConfigInfo.getShowLine() + 1);
  88. String sort = individualConfigInfo.getSort();
  89. String tableListName = this.getString(columnListName);
  90. targetValue = showChartsMapper.getOtherData(tableListName, tableName, columnName, sort, line, screenStr);
  91. popAndIndDataInfo.setValueList(targetValue);
  92. }catch (Exception e){
  93. e.printStackTrace();
  94. System.out.println("异常");
  95. return new RepEntity(RepCode.erro);
  96. }finally {
  97. DynamicDataSourceContextHolder.clearDataSourceType();
  98. }
  99. return new RepEntity(RepCode.success, popAndIndDataInfo);
  100. }
  101. private String getString(String str){
  102. String st1 = "[";
  103. String st2 = "]";
  104. String strA = str.replace(st1, "");
  105. String strB = strA.replace(st2, "");
  106. System.out.println("str:"+ strB);
  107. return strB;
  108. }
  109. }