ReportMapper.xml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.huike.report.mapper.ReportMapper">
  6. <select id="getCluesNum" resultType="Integer">
  7. SELECT COUNT(id) AS cluesNum FROM `tb_clue`
  8. WHERE id IN (
  9. SELECT
  10. assign_id
  11. FROM
  12. `tb_assign_record`
  13. WHERE
  14. DATE_FORMAT(create_time,'%Y-%m-%d') BETWEEN #{startTime}
  15. AND #{endTime}
  16. AND `type` = 0
  17. AND `latest` = 1
  18. AND `user_name` = #{username}
  19. )
  20. AND `status` IN (1, 2)
  21. </select>
  22. <select id="getBusinessNum" resultType="Integer">
  23. SELECT
  24. COUNT(DISTINCT(id)) AS businessNum
  25. FROM
  26. `tb_business`
  27. WHERE
  28. id IN (
  29. SELECT
  30. assign_id
  31. FROM
  32. `tb_assign_record`
  33. WHERE
  34. DATE_FORMAT(`create_time`,'%Y-%m-%d') BETWEEN #{startTime}
  35. AND #{endTime}
  36. AND `type` = 1
  37. AND `latest` = 1
  38. AND `user_name` = #{username}) AND `status` IN (1,2)
  39. </select>
  40. <select id="getContractNum" resultType="Integer">
  41. SELECT
  42. COUNT(DISTINCT(id)) AS contractNum
  43. FROM
  44. `tb_contract`
  45. WHERE
  46. DATE_FORMAT(`create_time`,'%Y-%m-%d') BETWEEN #{startTime}
  47. AND #{endTime}
  48. AND create_by = #{username}
  49. AND `status` = 4
  50. </select>
  51. <select id="getSalesAmount" resultType="Double">
  52. SELECT
  53. CAST(
  54. IFNULL(SUM(h.`contract_order`),0) AS DECIMAL (30, 0)
  55. ) AS salesAmount
  56. FROM
  57. `tb_contract` h
  58. WHERE
  59. h.create_by = #{username}
  60. AND DATE_FORMAT(h.create_time,'%Y-%m-%d') BETWEEN #{startTime}
  61. AND #{endTime}
  62. </select>
  63. <!-- ========= ================ =========== 今日简报 ============== ========== ========-->
  64. <select id="getTodayCluesNum" resultType="Integer">
  65. SELECT COUNT(id) AS todayCluesNum FROM `tb_clue`
  66. WHERE id IN (
  67. SELECT assign_id
  68. FROM `tb_assign_record`
  69. WHERE
  70. DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') BETWEEN #{startTime}
  71. AND #{endTime}
  72. AND `type` = 0
  73. AND `user_name` = #{username}
  74. )
  75. </select>
  76. <select id="getTodayBusinessNum" resultType="Integer">
  77. SELECT COUNT(DISTINCT(id)) AS todayBusinessNum
  78. FROM`tb_business`
  79. WHERE id IN (
  80. SELECT
  81. assign_id
  82. FROM
  83. `tb_assign_record`
  84. WHERE
  85. DATE_FORMAT(`create_time`,'%Y-%m-%d %H:%i:%S') BETWEEN #{startTime}
  86. AND #{endTime}
  87. AND `type` = 1
  88. AND `user_name` = #{username})
  89. </select>
  90. <select id="getTodayContractNum" resultType="Integer">
  91. SELECT COUNT(DISTINCT(id)) AS todayContractNum
  92. FROM `tb_contract`
  93. WHERE
  94. DATE_FORMAT(`create_time`,'%Y-%m-%d %H:%i:%S') BETWEEN #{startTime}
  95. AND #{endTime}
  96. AND create_by = #{username}
  97. </select>
  98. <select id="getTodaySalesAmount" resultType="Double">
  99. SELECT CAST(
  100. IFNULL(SUM(h.`contract_order`),0) AS DECIMAL (30, 0)
  101. ) AS todaySalesAmount
  102. FROM `tb_contract` h
  103. WHERE
  104. h.create_by = #{username}
  105. AND DATE_FORMAT(h.create_time,'%Y-%m-%d %H:%i:%S') BETWEEN #{startTime}
  106. AND #{endTime}
  107. </select>
  108. <!--============== ============================= 特办事项 ============================= -->
  109. <select id="getTofollowedCluesNum" resultType="Integer">
  110. SELECT COUNT(id) AS tofollowedCluesNum FROM `tb_clue`
  111. WHERE id IN (SELECT assign_id FROM `tb_assign_record`
  112. WHERE
  113. DATE_FORMAT(create_time,'%Y-%m-%d') BETWEEN #{startTime}
  114. AND #{endTime}
  115. AND `type` = 0
  116. AND `user_name` = #{username}
  117. )
  118. AND `status`=1
  119. </select>
  120. <select id="getTofollowedBusinessNum" resultType="Integer">
  121. SELECT COUNT(DISTINCT(id)) AS businessNum FROM `tb_business`
  122. WHERE id IN (SELECT
  123. assign_id
  124. FROM
  125. `tb_assign_record`
  126. WHERE
  127. DATE_FORMAT(`create_time`,'%Y-%m-%d') BETWEEN #{startTime}
  128. AND #{endTime}
  129. AND `type` = 1
  130. AND `user_name` = #{username}) AND `status`=1
  131. </select>
  132. <select id="getToallocatedCluesNum" resultType="Integer">
  133. SELECT COUNT(distinct (id)) AS toallocatedCluesNum FROM `tb_clue`
  134. WHERE id IN (SELECT assign_id FROM
  135. `tb_assign_record`
  136. WHERE
  137. DATE_FORMAT(create_time,'%Y-%m-%d') BETWEEN #{startTime}
  138. AND #{endTime}
  139. and `latest` = 1
  140. AND `user_name` = #{username}
  141. )
  142. </select>
  143. <select id="getToallocatedBusinessNum" resultType="Integer">
  144. SELECT COUNT(DISTINCT(id)) AS toallocatedBusinessNum FROM
  145. `tb_business`
  146. WHERE id IN ( SELECT assign_id FROM
  147. `tb_assign_record`
  148. WHERE
  149. DATE_FORMAT(`create_time`,'%Y-%m-%d') BETWEEN #{startTime}
  150. AND #{endTime}
  151. and `latest` = 1
  152. AND `user_name` = #{username})
  153. </select>
  154. <!--饼图-->
  155. <select id="subjectStatistics" resultType="java.util.Map">
  156. select a.dict_label as subject,b.w as num
  157. from (select s.dict_label,s.dict_value
  158. from sys_dict_data s where s.dict_type="course_subject") a,
  159. (select c2.subject c,count(c2.subject) w
  160. from tb_contract c1,
  161. tb_course c2
  162. where c1.course_id = c2.id and DATE_FORMAT(c1.create_time,'%Y-%m-%d') BETWEEN #{startTime}
  163. AND #{endTime} group by c1.subject) b
  164. where a.dict_value=b.c
  165. </select>
  166. <select id="cluesStatistics" resultType="java.util.Map">
  167. select DATE_FORMAT(tc.create_time,'%Y-%m-%d') t,count(tc.create_time) n
  168. from tb_clue tc
  169. where DATE_FORMAT(tc.create_time,'%Y-%m-%d') BETWEEN #{startTime} and #{endTime} group by DATE_FORMAT(tc.create_time,'%Y-%m-%d');
  170. </select>
  171. </mapper>