You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
JinJiHuJava/ruoyi-admin/src/main/resources/mapper/jjh/ent/JDataScreenMapper.xml

70 lines
3.4 KiB

<?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.jjh.ent.mapper.JDataScreenMapper">
<select id="getHonor" resultType="com.ruoyi.jjh.ent.entity.response.HonorResponse">
SELECT a.dict_label AS projectBigName,
a.dict_value AS projectBigType,
IFNULL(rs.count, 0) AS count1,
b.dict_label AS projectMiddleName,
b.dict_value AS projectMiddleType,
IFNULL(ys.count, 0) AS count2,
c.dict_label AS projectSmallName,
c.dict_value AS projectSmallType,
IFNULL(us.count, 0) AS count3,
IFNULL(ns.count, 0) AS currentYearAdd
FROM sys_dict_data a
JOIN sys_dict_data b ON a.remark = b.dict_type
JOIN sys_dict_data c ON b.remark = c.dict_type
LEFT JOIN (SELECT project_big_type,
IF
(
project_big_type = 1
OR project_big_type = 9,
COUNT(DISTINCT credit_code),
COUNT(*)) AS count
FROM j_project
GROUP BY project_big_type) AS rs ON a.dict_value = rs.project_big_type
LEFT JOIN (SELECT project_middle_type,
IF
(
project_middle_type = 1
OR project_middle_type = 9,
COUNT(DISTINCT credit_code),
COUNT(*)) AS count
FROM j_project
GROUP BY project_middle_type) AS ys ON b.dict_value = ys.project_middle_type
LEFT JOIN (SELECT project_small_type,
IF(project_small_type = 14, COUNT(DISTINCT credit_code), COUNT(*)) AS count
FROM j_project
GROUP BY project_small_type) AS us ON c.dict_value = us.project_small_type
LEFT JOIN (SELECT ns.project_small_type,
COUNT(*) AS count
FROM j_project ns
WHERE YEAR(
NOW()) = YEAR(ns.project_year)
GROUP BY ns.project_small_type) AS ns ON c.dict_value = ns.project_small_type
WHERE a.dict_type = 'project_categories'
ORDER BY CAST(c.dict_value AS UNSIGNED);
</select>
<select id="getProjectTracking" resultType="com.ruoyi.jjh.ent.entity.response.ProjectTrackingResponse">
SELECT
b.enterprise_directory,
b.start_time,
b.end_time,
COUNT(*) as count
FROM
bms_declaration_records a
INNER JOIN bms_template_record b ON a.template_record_id = b.id
WHERE
a.`status` != 0
GROUP BY
a.template_record_id
order by
count desc
</select>
</mapper>