From 62eb499b0c969f246d3245d1429a97da4de1ce28 Mon Sep 17 00:00:00 2001
From: 钟日健 <arsn163@163.com>
Date: Mon, 01 Jun 2026 20:46:13 +0800
Subject: [PATCH] feat: 成绩查询增加年龄查询返回

---
 src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.xml |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 107 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.xml b/src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.xml
index 89d853e..e67b2e0 100644
--- a/src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.xml
+++ b/src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.xml
@@ -41,4 +41,111 @@
         order by ssir.id desc
     </select>
 
+
+    <select id="getSignStatisticsPie" resultType="org.springblade.modules.signinrecords.vo.SignStatistics">
+        SELECT
+            basic.shouldNum,basic.realNum,(basic.shouldNum-basic.realNum) as unArriveNum,
+            (basic.realNum/basic.shouldNum) as sign,((basic.shouldNum-basic.realNum)/basic.shouldNum) as unSign
+        FROM(
+                SELECT
+                    (SELECT COUNT(*) FROM sys_training_registration
+                        WHERE
+                        cancel = '1' and audit_status = '1'
+                        <if test="statistics.examId != null and statistics.examId !='' ">
+                            AND train_exam_id = #{statistics.examId}
+                        </if>
+                         ) as shouldNum,
+                    (SELECT COUNT(*) FROM sys_sign_in_records
+                                     WHERE 1=1
+                                    <if test="statistics.examId != null and statistics.examId !='' ">
+                                        AND exam_id = #{statistics.examId}
+                                    </if>
+                                     ) as realNum
+            )basic
+    </select>
+
+
+    <select id="getSignStatisticsBar" resultType="org.springblade.modules.signinrecords.vo.SignStatistics">
+        SELECT
+            shouldTemp.shouldNum,
+            realTemp.realNum,
+            shouldTemp.shouldNum - realTemp.realNum AS unArriveNum,
+            shouldTemp.dept_name,
+            shouldTemp.id as deptId
+        FROM
+            (
+                SELECT
+                    COUNT(*) shouldNum,
+                    bd.dept_name,
+                    bd.id
+                FROM
+                    sys_training_registration str
+                        LEFT JOIN blade_user bu ON bu.id = str.user_id
+                        LEFT JOIN blade_dept bd ON bd.id = bu.dept_id
+                WHERE 1=1
+                    <if test="statistics.examId != null and statistics.examId !='' ">
+                        AND str.train_exam_id = #{statistics.examId}
+                    </if>
+                GROUP BY
+                    bd.dept_name,
+                    bd.id
+                ORDER BY
+                    dept_name DESC
+            ) shouldTemp
+                LEFT JOIN (
+                SELECT
+                    COUNT(*) realNum,
+                    bd.dept_name,
+                    bd.id
+                FROM
+                    sys_sign_in_records ssir
+                        LEFT JOIN blade_user bu ON bu.id = ssir.user_id
+                        LEFT JOIN blade_dept bd ON bd.id = bu.dept_id
+                WHERE
+                    1=1
+                    <if test="statistics.examId != null and statistics.examId !='' ">
+                        AND ssir.exam_id = #{statistics.examId}
+                    </if>
+                GROUP BY
+                    bd.dept_name,
+                    bd.id
+                ORDER BY
+                    dept_name DESC
+            ) realTemp ON shouldTemp.id = realTemp.id
+    </select>
+    <select id="getSignSituationList" resultType="org.springblade.modules.signinrecords.vo.SignInfo">
+        SELECT * FROM (
+            SELECT
+            str.candidate_no,
+            bu.avatar,
+            bu.real_name,
+            bu.cardId,
+            str.train_exam_id as examId,
+            bu.sex,
+            bd.id AS deptId,
+            bd.dept_name AS deptName,
+            CASE WHEN ssir.id IS NULL THEN
+            '未签到' ELSE '已签到'
+            END AS state
+            FROM
+            sys_training_registration str
+            LEFT JOIN blade_user bu ON bu.id = str.user_id
+            LEFT JOIN blade_dept bd ON bd.id = bu.dept_id
+            LEFT JOIN sys_sign_in_records ssir ON ssir.candidate_no = str.candidate_no
+            AND ssir.exam_id = #{signInfo.examId}
+            WHERE str.audit_status = '1' and str.cancel = '1'
+            and str.train_exam_id = #{signInfo.examId}
+            <if test="signInfo.deptId != null and signInfo.deptId !='' ">
+                AND bd.id = #{signInfo.deptId}
+            </if>
+
+            ORDER BY str.candidate_no ASC
+        ) result WHERE 1=1
+        <if test="signInfo.state != null and signInfo.state !='' ">
+            AND result.state = #{signInfo.state}
+        </if>
+
+
+    </select>
+
 </mapper>

--
Gitblit v1.9.3