From 86ff330e3270baa153744400ca116e7d049c3ac8 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 12 Dec 2023 10:25:02 +0800
Subject: [PATCH] 大屏接口

---
 src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.xml |   95 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 95 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..a2c131d 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,99 @@
         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
+        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
+            str.candidate_no,
+            bu.avatar,
+            bu.real_name,
+            bu.cardId,
+            str.train_exam_id as examId,
+            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 sys_sign_in_records ssir ON ssir.candidate_no = str.candidate_no
+                <if test="signInfo.examId != null and signInfo.examId !='' ">
+                    AND ssir.exam_id = #{signInfo.examId}
+                </if>
+        WHERE str.audit_status = '1' and str.cancel = '1'
+        <if test="signInfo.examId != null and signInfo.examId !='' ">
+            and str.train_exam_id = #{signInfo.examId}
+        </if>
+        ORDER BY str.candidate_no ASC
+    </select>
+
 </mapper>

--
Gitblit v1.9.3