添加统计(汇总和各县统计)

This commit is contained in:
sh
2026-01-22 11:43:45 +08:00
parent 10d8980095
commit 88043f44e6
8 changed files with 231 additions and 7 deletions

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cms.mapper.StaticsMapper">
<select id="qygwtjCount" parameterType="com.ruoyi.cms.domain.query.Staticsquery" resultType="com.ruoyi.cms.domain.StaticsJob">
WITH time_params AS (
SELECT
CAST(#{startTime} AS timestamp) AS start_time,
CAST(#{endTime} AS timestamp) AS end_time
),
job_stats AS (
SELECT COUNT(*) AS 归集岗位合计 FROM job, time_params tp
WHERE posting_date &gt;= tp.start_time AND posting_date &lt; tp.end_time
),
company_stats AS (
SELECT COUNT(company_id) AS 注册企业数 FROM company, time_params tp
WHERE del_flag='0' AND create_time &gt;= tp.start_time AND create_time &lt; tp.end_time
),
user_stats AS (
SELECT COUNT(*) AS 求职者实名数 FROM app_user, time_params tp
WHERE del_flag='0' AND is_company_user='1' AND id_card IS NOT NULL
AND create_time &gt;= tp.start_time AND create_time &lt; tp.end_time
),
apply_stats AS (
SELECT COUNT(id) AS 简历投递数量 FROM job_apply, time_params tp
WHERE del_flag='0' AND create_time &gt;= tp.start_time AND create_time &lt; tp.end_time
)
SELECT
js.归集岗位合计 gjgwhj, cs.注册企业数 zcqys,
us.求职者实名数 qzzsms, as2.简历投递数量 jlsl
FROM job_stats js, company_stats cs, user_stats us, apply_stats as2;
</select>
<select id="getGroutCityJobs" parameterType="com.ruoyi.cms.domain.query.Staticsquery" resultType="com.ruoyi.cms.domain.StaticsJob">
WITH job_stats AS (
SELECT job_location_area_code, COUNT(job_id) AS zs,
SUM(CASE WHEN education >= 3 THEN 1 ELSE 0 END) AS gxbysgw,
SUM(CASE WHEN del_flag = '0' THEN 1 ELSE 0 END) AS sszzgw
FROM job WHERE job_location_area_code IS NOT NULL
<if test="startTime!=null and startTime!='' ">
<![CDATA[ AND posting_date >= CAST(#{startTime} AS timestamp) ]]>
</if>
<if test="endTime!=null and endTime!='' ">
<![CDATA[ AND posting_date <= CAST(#{endTime} AS timestamp) ]]>
</if>
GROUP BY job_location_area_code
),apply_stats AS (
SELECT j.job_location_area_code, COUNT(ja.id) AS jlsl
FROM job j INNER JOIN job_apply ja ON j.job_id = ja.job_id
WHERE j.job_location_area_code IS NOT NULL
GROUP BY j.job_location_area_code )
SELECT js.zs, js.gxbysgw, js.sszzgw, COALESCE(as2.jlsl, 0) AS jlsl,
bdd.dict_label as label FROM job_stats js
LEFT JOIN bussiness_dict_data bdd ON js.job_location_area_code = bdd.dict_value AND bdd.dict_type = 'area'
LEFT JOIN apply_stats as2 ON js.job_location_area_code = as2.job_location_area_code
ORDER BY bdd.dict_sort
</select>
</mapper>