ShowChartsMapper.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package com.dao.chart;
  2. import com.model.po.TargetData;
  3. import com.model.pojo.TestPage;
  4. import org.apache.ibatis.annotations.Mapper;
  5. import org.apache.ibatis.annotations.Param;
  6. import org.apache.ibatis.annotations.Select;
  7. import org.springframework.stereotype.Repository;
  8. import java.util.LinkedHashMap;
  9. import java.util.List;
  10. @Mapper
  11. @Repository
  12. public interface ShowChartsMapper {
  13. /*
  14. 查询X轴列数
  15. */
  16. @Select("select count(*) from (select DISTINCT ${xAxisName} from ${tableName})")
  17. int getNumForX(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName);
  18. //x轴
  19. @Select("select * from (select DISTINCT ${xAxisName} from ${tableName}) where rownum <= #{num}")
  20. List<String> getXAxis(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName, @Param("screenToColumn") String screenToColumn, @Param("num") int num);
  21. //x轴数据
  22. @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xColumn} = #{xdata} ${screen}")
  23. String getValues(@Param("yAxisName") String yAxisName, @Param("xColumn") String xColumn,
  24. @Param("tableName") String tableName, @Param("dataType") String dataType,
  25. @Param("xdata") String xdata, @Param("screen") String screen);
  26. //x轴为空时的数据
  27. @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xColumn} is null ${screen}")
  28. String getValuesIsNull(@Param("yAxisName") String yAxisName, @Param("xColumn") String xColumn,
  29. @Param("tableName") String tableName, @Param("dataType") String dataType,
  30. @Param("screen") String screen);
  31. //查询分组系列
  32. @Select("select ${groupsBy} from ${tableName} where 1=1 ${screen} and rownum<=#{count} group by ${groupsBy}")
  33. List<String> getGroups(@Param("groupsBy") String groupsBy, @Param("tableName") String tableName, @Param("screen") String screen, @Param("count") int count);
  34. //查询分组系列个数
  35. @Select("select count(*) from (select ${groupsBy} from ${tableName} where 1=1 ${screen} group by ${groupsBy})")
  36. int getGroupsCount(@Param("groupsBy") String groupsBy, @Param("tableName") String tableName, @Param("screen") String screen);
  37. //查询分组的值
  38. @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${groupsColumn} and ${xColumn} ${screen}")
  39. String getGroupsValue(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
  40. @Param("groupsColumn") String groupsColumn,
  41. @Param("xColumn") String xColumn,
  42. @Param("screen") String screen);
  43. //时间类型的X轴
  44. @Select("select distinct to_char(${xAxisName},${timeType})time from ${tableName} where rownum <= #{count} ORDER by to_char(${xAxisName},${timeType}) ASC")
  45. List<String> getTimeDate(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName,
  46. @Param("timeType") String timeType, @Param("screen") String screen, @Param("count") int count);
  47. //时间类型的X轴查count
  48. @Select("select count(*) from (select distinct to_char(${xAxisName},${timeType})time from ${tableName} ${screen} ORDER by to_char(${xAxisName},${timeType}) ASC)")
  49. int getTimeDateConunt(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName,
  50. @Param("timeType") String timeType, @Param("screen") String screen);
  51. //半年
  52. @Select("select distinct case when to_char(${xAxisName},'MM')<=6 then to_char(${xAxisName},'YYYY')|| '-H1'" +
  53. "else to_char(${xAxisName},'YYYY')||'-H2' end time from ${tableName} ${screen} order by time")
  54. List<String> getTimeYear(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName, @Param("screen") String screen);
  55. //无分组时间类型值
  56. @Select("select ${dataType}(${yAxisName}) from ${tableName} where (to_char(${xAxisName},${timeType})) = #{xColumnIndex} ${screen}")
  57. String getTimeValue (@Param("dataType") String dataType, @Param("yAxisName") String yAxisName,
  58. @Param("tableName") String tableName, @Param("xAxisName") String xAxisName,
  59. @Param("timeType") String timeType, @Param("xColumnIndex") String xColumnIndex,
  60. @Param("screen") String screen);
  61. //无分组半年时间值
  62. @Select("select ${dataType}(${yAxisName}) from ${tableName} where TO_CHAR(${xAxisName},'YYYY-MM') between #{firstIndex} and #{afterIndex} ${screen}")
  63. String getTimeValueYear(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
  64. @Param("xAxisName") String xAxisName, @Param("firstIndex") String firstIndex,
  65. @Param("afterIndex") String afterIndex, @Param("screen") String screen);
  66. //时间为空时间值
  67. @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xAxisName} is null ${screen}")
  68. String getTimeIsNull(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
  69. @Param("xAxisName") String xAxisName, @Param("screen") String screen);
  70. //查询时间类型分组的值
  71. @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${groupsColumn}=#{groupsIndex} and TO_CHAR(${xColumn},${timeType})=#{xColumnIndex} ")
  72. String getGroupsValueTime(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
  73. @Param("groupsColumn") String groupsColumn, @Param("groupsIndex") String groupsIndex,
  74. @Param("xColumn") String xColumn, @Param("timeType") String timeType, @Param("xColumnIndex") String xColumnIndex
  75. );
  76. //有分组时时间类型为空值
  77. @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${groupsColumn} is null and TO_CHAR(${xColumn},${timeType})=#{xColumnIndex} ${screen}")
  78. String getGroupsValueTimeIsNull(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
  79. @Param("groupsColumn") String groupsColumn, @Param("groupsIndex") String groupsIndex,
  80. @Param("xColumn") String xColumn, @Param("timeType") String timeType,
  81. @Param("xColumnIndex") String xColumnIndex, @Param("screen") String screen
  82. );
  83. //查询分组的值(时间类型半年)
  84. //分组半年时间值
  85. @Select("select ${dataType}(${yAxisName}) from ${tableName} where TO_CHAR(${xAxisName},'YYYY-MM') between #{firstIndex} and #{afterIndex} and ${groupsColumn}=#{groupsIndex} ${screen}")
  86. String getTimeValueHalfYear(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
  87. @Param("xAxisName") String xAxisName, @Param("firstIndex") String firstIndex, @Param("afterIndex") String afterIndex,
  88. @Param("groupsColumn") String groupsColumn, @Param("groupsIndex") String groupsIndex, @Param("screen") String screen);
  89. /*
  90. 总体未分组
  91. */
  92. @Select("select ${operation}(${columnName}) from ${tableName} ${screen}")
  93. Double getColumnDev(@Param("tableName") String tableName, @Param("columnName") String columnName,
  94. @Param("operation") String operation, @Param("screen") String screen);
  95. /*
  96. 总体未分组
  97. */
  98. @Select("select ${operation}(${columnName}) from ${tableName} ${screen}")
  99. Double getColumnData(@Param("tableName") String tableName, @Param("columnName") String columnName,
  100. @Param("operation") String operation, @Param("screen") String screen);
  101. /*
  102. 取主键名称
  103. */
  104. @Select("select column_name from user_cons_columns where table_name = #{tableName} and constraint_name = #{tableKey}")
  105. String getTableKey(@Param("tableName") String tableName, @Param("tableKey") String tableKey, @Param("screen") String screen);
  106. /*
  107. 取目标列的值
  108. */
  109. @Select("select ${keyName} as id,${columnName} as data from (select ${keyName},${columnName} from ${tableName} order by ${columnName} ${sort}) where rownum<${line}")
  110. List<TargetData> getTargetData(@Param("keyName") String keyName, @Param("columnName") String columnName, @Param("tableName") String tableName, @Param("sort") String sort, @Param("line") String line);
  111. /*
  112. 获取其他类数据
  113. */
  114. @Select("select ${columnList} from (select ${columnList} from ${tableName} ${screen} order by ${columnName} ${sort})")
  115. List<LinkedHashMap<String, Object>> getOtherData(@Param("columnList") String columnList, @Param("tableName") String tableName, @Param("columnName") String columnName,
  116. @Param("sort") String sort, @Param("screen") String screen, TestPage testPage);
  117. /*
  118. 总体统计求值
  119. */
  120. @Select("select ${operation}(${columnName}) from ${tableName} where ${columnName} between #{first} and #{last}")
  121. Double getValue(@Param("tableName") String tableName, @Param("columnName") String columnName, @Param("operation") String operation, @Param("first") Double first,
  122. @Param("last") Double last);
  123. /*
  124. 总体分组的值
  125. */
  126. @Select("select ${groupBy},${operation} from ${tableName} ${screen} group by ${groupBy} order by ${groupByOne}")
  127. List<LinkedHashMap<String, Object>> getGroupByValue(@Param("groupBy") String groupBy, @Param("operation") String operation, @Param("tableName") String tableName,
  128. @Param("groupByOne") String groupByOne, @Param("screen") String screen);
  129. /*
  130. 总体TH值
  131. */
  132. @Select("select median(${columnName}) from sale where ${columnName} between " +
  133. " (select ${fOperation}(${columnName}) from sale) and (select ${aOperation}(${columnName}) from ${tableName})" +
  134. " group by " +
  135. " ${groupBy} order by ${groupByOne}")
  136. List<LinkedHashMap<String, Object>> getGroupByValueTh(@Param("groupBy") String groupBy, @Param("columnName") String columnName, @Param("tableName") String tableName,
  137. @Param("groupByOne") String groupByOne, @Param("screen") String screen, @Param("fOperation") String fOperation,
  138. @Param("aOperation") String aOperation);
  139. /*
  140. 查询筛选列信息
  141. */
  142. @Select("select * from (select distinct ${columnName} from ${tableName} )where rownum <= 20")
  143. List<Object> getScreenData(@Param("columnName") String columnName, @Param("tableName") String tableName);
  144. }