StatisticsCQuery.xml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.hz.employmentsite.mapper.cquery.StatisticsCQuery">
  4. <select id="findSystemDataCount" resultType="com.hz.employmentsite.vo.statistics.SystemDataCount">
  5. SELECT
  6. site.SiteID,
  7. site.RegionCode,
  8. site.SiteName,
  9. area.`name` AS regionName,
  10. -- 驿站人员数量
  11. (
  12. SELECT
  13. COUNT( 1 )
  14. FROM
  15. pc_site_user site_user
  16. LEFT JOIN sys_user sys_user ON site_user.UserID = sys_user.UserID
  17. WHERE
  18. site_user.SiteID = site.SiteID
  19. AND sys_user.RecordStatus = 1
  20. ) AS siteUserCount,
  21. -- 指定时间段的登记企业数量
  22. (
  23. SELECT
  24. COUNT( 1 )
  25. FROM
  26. pc_company
  27. WHERE
  28. SiteID = site.SiteID
  29. <if test="startDate != null">
  30. and DATE(CreateTime) <![CDATA[ >= ]]> DATE(#{startDate})
  31. </if>
  32. <if test="endDate != null ">
  33. and DATE(CreateTime) <![CDATA[ <= ]]> DATE(#{endDate})
  34. </if>
  35. ) AS companyCount,
  36. -- 指定时间段的登记岗位数量
  37. (
  38. SELECT
  39. COUNT( 1 )
  40. FROM
  41. pc_post post
  42. WHERE
  43. CompanyID IN ( SELECT company.CompanyID FROM pc_company company WHERE company.SiteID = site.SiteID )
  44. <if test="startDate != null">
  45. and DATE(CreateTime) <![CDATA[ >= ]]> DATE(#{startDate})
  46. </if>
  47. <if test="endDate != null ">
  48. and DATE(CreateTime) <![CDATA[ <= ]]> DATE(#{endDate})
  49. </if>
  50. ) AS postCount,
  51. -- 指定时间段的登记求职人员数量
  52. (
  53. SELECT
  54. COUNT( 1 )
  55. FROM
  56. pc_jobuser
  57. WHERE
  58. SiteID = site.SiteID
  59. <if test="startDate != null">
  60. and DATE(CreateTime) <![CDATA[ >= ]]> DATE(#{startDate})
  61. </if>
  62. <if test="endDate != null ">
  63. and DATE(CreateTime) <![CDATA[ <= ]]> DATE(#{endDate})
  64. </if>
  65. ) AS jobUserCount
  66. FROM
  67. pc_site site
  68. LEFT JOIN area_code area ON site.RegionCode = area.`code`
  69. ORDER BY site.RegionCode
  70. </select>
  71. <select id="findWeekSystemDataCount" resultType="com.hz.employmentsite.vo.statistics.RegionSystemDataCount">
  72. SELECT
  73. subquery.RegionCode,
  74. area.`name` AS regionName,
  75. SUM(subquery.companyCount) AS companyCount,
  76. SUM(subquery.postCount) AS postCount,
  77. SUM(subquery.jobUserCount) AS jobUserCount
  78. FROM
  79. (
  80. SELECT
  81. site.SiteID,
  82. site.RegionCode,
  83. -- 指定时间段的登记企业数量
  84. (
  85. SELECT COUNT(1)
  86. FROM pc_company
  87. WHERE
  88. SiteID = site.SiteID
  89. <if test="startDate != null">
  90. and DATE(CreateTime) <![CDATA[ >= ]]> DATE(#{startDate})
  91. </if>
  92. <if test="endDate != null ">
  93. and DATE(CreateTime) <![CDATA[ <= ]]> DATE(#{endDate})
  94. </if>
  95. ) AS companyCount,
  96. -- 指定时间段的登记岗位数量
  97. (
  98. SELECT COUNT(1)
  99. FROM pc_post post
  100. WHERE
  101. CompanyID IN (SELECT company.CompanyID FROM pc_company company WHERE company.SiteID = site.SiteID)
  102. <if test="startDate != null">
  103. and DATE(CreateTime) <![CDATA[ >= ]]> DATE(#{startDate})
  104. </if>
  105. <if test="endDate != null ">
  106. and DATE(CreateTime) <![CDATA[ <= ]]> DATE(#{endDate})
  107. </if>
  108. ) AS postCount,
  109. -- 指定时间段的登记求职人员数量
  110. (
  111. SELECT COUNT(1)
  112. FROM pc_jobuser
  113. WHERE
  114. SiteID = site.SiteID
  115. <if test="startDate != null">
  116. and DATE(CreateTime) <![CDATA[ >= ]]> DATE(#{startDate})
  117. </if>
  118. <if test="endDate != null ">
  119. and DATE(CreateTime) <![CDATA[ <= ]]> DATE(#{endDate})
  120. </if>
  121. ) AS jobUserCount
  122. FROM
  123. pc_site site
  124. ) AS subquery
  125. LEFT JOIN area_code area ON subquery.RegionCode = area.`code`
  126. GROUP BY
  127. subquery.RegionCode, area.`name`
  128. ORDER BY
  129. subquery.RegionCode;
  130. </select>
  131. <select id="findRegionSiteUserCount" resultType="Map">
  132. SELECT
  133. area.`code`,
  134. area.`name`,
  135. COUNT( sysUser.UserID ) AS siteUserCount
  136. FROM
  137. area_code area
  138. LEFT JOIN pc_site site ON site.RegionCode = area.`code`
  139. LEFT JOIN pc_site_user siteUser ON site.SiteID = siteUser.SiteID
  140. LEFT JOIN sys_user sysUser ON siteUser.UserID = sysUser.UserID AND sysUser.RecordStatus = 1
  141. WHERE
  142. area.lv = 3
  143. GROUP BY
  144. area.`code`,
  145. area.`name`
  146. ORDER BY
  147. area.`code`
  148. </select>
  149. </mapper>