智慧保安后台管理-外网项目备份
guoshilong
2023-12-12 86ff330e3270baa153744400ca116e7d049c3ac8
大屏接口
17 files modified
2 files added
392 ■■■■■ changed files
src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/entity/ExamPaper.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml 88 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/ExamPaperService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/ExamScoreService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/signinrecords/controller/SignInRecordsController.java 37 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.xml 95 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/signinrecords/service/SignInRecordsService.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/signinrecords/service/impl/SignInRecordsServiceImpl.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/signinrecords/vo/SignInfo.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/signinrecords/vo/SignStatistics.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IUserService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java
@@ -127,6 +127,18 @@
        return R.data(pages);
    }
    /**
     * 查询列表
     *
     * @param examPaperVO 查询参数
     * @return
     */
    @GetMapping("/getList")
    public R getList(ExamPaperVO examPaperVO) {
        List<ExamPaperVO>list = examPaperService.getList(examPaperVO);
        return R.data(list);
    }
    /**
     * 新增
src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java
@@ -476,4 +476,15 @@
    }
    /**
     * 获取考试成绩列表
     * @param examScoreVO
     * @return
     */
    @GetMapping("/getList")
    public R getList(ExamScoreVO examScoreVO) {
        return R.data(examScoreService.getList(examScoreVO));
    }
}
src/main/java/org/springblade/modules/exam/entity/ExamPaper.java
@@ -66,11 +66,15 @@
    /**
     * 考试开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 考试结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
@@ -173,4 +173,6 @@
     * @return
     */
    List<ExamSubjectChoicesVO> simulateQueryRandomSubjectList();
    List<ExamPaperVO> getList(@Param("vo") ExamPaperVO examPaperVO);
}
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
@@ -596,6 +596,13 @@
            ) esc
            LEFT JOIN exam_subject_option eso ON esc.id = eso.subject_choices_id
    </select>
    <select id="getList" resultType="org.springblade.modules.exam.vo.ExamPaperVO">
        SELECT * FROM ksxt_exam
        where 1=1
        <if test="vo.examTime != null and vo.examTime != ''">
            AND DATE_FORMAT(start_time,'%Y-%m-%d') = DATE_FORMAT(#{vo.examTime},'%Y-%m-%d')
        </if>
    </select>
</mapper>
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java
@@ -108,4 +108,6 @@
     * @return
     */
    List<ExamSocreStatis> getExamStatisInfo(@Param("information") InformationVO information);
    List<ExamScoreVO> getList(@Param("examScore") ExamScoreVO examScoreVO);
}
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -524,6 +524,94 @@
        ORDER BY
            id
    </select>
    <select id="getList" resultType="org.springblade.modules.exam.vo.ExamScoreVO">
        SELECT
        es.id,es.theory_grade theoryGrade,ifnull(learn_grade,-1) learnGrade,es.user_id userId,es.exam_id examId,
        es.exam_time examTime,all_grade allGrade,exam_end_time examEndTime,qualified,es.candidate_no candidateNo,
        ke.exam_name examName,date_format(ke.start_time,'%Y-%m-%d') startTime,date_format(ke.end_time,'%Y-%m-%d %H:%i:%s') endTime,
        str.is_exam isExam,
        bu.real_name securityName,company,bu.account,bu.sex,bu.paper_time paperTime,bu.securitynumber securityNumber,bu.avatar,
        bd.dept_name companyName,bu.user_type isPaper,bud.unit_name unitName
        from
        exam_score es
        left join ksxt_exam ke on ke.id = es.exam_id
        left join blade_user bu on es.user_id = bu.id
        left join blade_user_detail bud on bud.user_id = bu.id
        left join blade_dept bd on bd.id = bu.dept_id
        left join sys_information si on si.departmentid = bd.id
        left join sys_jurisdiction sj on sj.id = si.jurisdiction
        left join sys_training_registration str on str.id = es.apply_id
        where 1=1 and es.is_deleted = 0
        and (str.is_exam = 2 or str.is_exam = 3 or str.is_exam = 4 or str.is_exam = 5)
        <if test="examScore.examName!=null and  examScore.examName!=''">
            and ke.exam_name like concat('%', #{examScore.examName},'%')
        </if>
        <if test="examScore.companyName!=null and  examScore.companyName!=''">
            and bd.dept_name like concat('%', #{examScore.companyName},'%')
        </if>
        <if test="examScore.unitName!=null and  examScore.unitName!=''">
            and bud.unit_name like concat('%', #{examScore.unitName},'%')
        </if>
        <if test="examScore.securityName!=null and  examScore.securityName!=''">
            and bu.real_name like concat('%', #{examScore.securityName},'%')
        </if>
        <if test="examScore.account!=null and  examScore.account!=''">
            and bu.account like concat('%', #{examScore.account},'%')
        </if>
        <if test="examScore.trainUnitId!=null">
            and str.training_unit_id = #{examScore.trainUnitId}
        </if>
        <if test="examScore.userId!=null and  examScore.userId!=''">
            and es.user_id = #{examScore.userId}
        </if>
        <if test="examScore.jurisdiction!=null and examScore.jurisdiction!='' and examScore.jurisdiction!='1372091709474910209'">
            and (sj.id=#{examScore.jurisdiction} or sj.parent_id = #{examScore.jurisdiction})
        </if>
        <if test="examScore.deptId!=null and  examScore.deptId!=''">
            and bd.id = #{examScore.deptId}
        </if>
        <if test="examScore.isExam!=null and  examScore.isExam!=''">
            and str.is_exam = #{examScore.isExam}
        </if>
        <if test="examScore.examType!=null and  examScore.examType!=''">
            and ke.exam_type = #{examScore.examType}
        </if>
        <if test="examScore.examId!=null">
            and es.exam_id = #{examScore.examId}
        </if>
        <if test="examScore.isPaper==6">
            and bu.user_type = #{examScore.isPaper}
        </if>
        <if test="examScore.isPaper==7">
            and (bu.user_type = #{examScore.isPaper} or bu.user_type is null)
        </if>
        <if test="examScore.isAvatar==1">
            and bu.avatar is not null and bu.avatar!=""
        </if>
        <if test="examScore.isAvatar==2">
            and (bu.avatar is null or bu.avatar="")
        </if>
        <if test="examScore.candidateNo!=null and  examScore.candidateNo!=''">
            and es.candidate_no = #{examScore.candidateNo}
        </if>
        <if test="examScore.qualified!=null">
            and es.qualified = #{examScore.qualified}
        </if>
        <if test="examScore.examDate!=null  and examScore.examDate!=''">
            and date_format(ke.start_time,'%Y-%m-%d') = #{examScore.examDate}
        </if>
        <if test="examScore.sortName!=null and examScore.sortName!='' and examScore.sortName!='companyName'">
            ORDER BY es.${examScore.sortName} ${examScore.sort},es.id desc
        </if>
        <if test="examScore.sortName=='companyName'">
            ORDER BY bd.dept_name ${examScore.sort},es.id desc
        </if>
        <if test="examScore.sortName==null or examScore.sortName==''">
            order by es.id desc
        </if>
    </select>
</mapper>
src/main/java/org/springblade/modules/exam/service/ExamPaperService.java
@@ -151,4 +151,11 @@
     * @return
     */
    List<ExamSubjectChoicesVO> simulateQueryRandomSubjectList();
    /**
     * 获取列表
     * @param examPaperVO
     * @return
     */
    List<ExamPaperVO> getList(ExamPaperVO examPaperVO);
}
src/main/java/org/springblade/modules/exam/service/ExamScoreService.java
@@ -105,4 +105,6 @@
     * @param
     */
    Object getExamStatisInfo(InformationVO information);
    List<ExamScoreVO> getList(ExamScoreVO examScoreVO);
}
src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
@@ -418,4 +418,9 @@
    public List<ExamSubjectChoicesVO> simulateQueryRandomSubjectList() {
        return baseMapper.simulateQueryRandomSubjectList();
    }
    @Override
    public List<ExamPaperVO> getList(ExamPaperVO examPaperVO) {
        return baseMapper.getList(examPaperVO);
    }
}
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -890,4 +890,9 @@
        //返回数据
        return objectList;
    }
    @Override
    public List<ExamScoreVO> getList(ExamScoreVO examScoreVO) {
        return baseMapper.getList(examScoreVO);
    }
}
src/main/java/org/springblade/modules/signinrecords/controller/SignInRecordsController.java
@@ -11,7 +11,11 @@
import org.springblade.modules.signinrecords.entity.SignInRecords;
import org.springblade.modules.signinrecords.service.SignInRecordsService;
import org.springblade.modules.signinrecords.vo.SignInRecordsVo;
import org.springblade.modules.signinrecords.vo.SignInfo;
import org.springblade.modules.signinrecords.vo.SignStatistics;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @author zhongrj
@@ -86,4 +90,37 @@
        return R.data(detail);
    }
    /**
     * 签到情况,饼图
     * @param signStatistics
     * @return
     */
    @GetMapping("/signSituation/pie")
    public R getSignStatisticsPie(SignStatistics signStatistics){
        SignStatistics statistics = signInRecordsService.getSignStatisticsPie(signStatistics);
        return R.data(statistics);
    }
    /**
     * 签到情况,柱状图
     * @param signStatistics
     * @return
     */
    @GetMapping("/signSituation/bar")
    public R getSignStatisticsBar(SignStatistics signStatistics){
        List<SignStatistics> list= signInRecordsService.getSignStatisticsBar(signStatistics);
        return R.data(list);
    }
    /**
     * 签到情况列表
     * @param signInfo
     * @return
     */
    @GetMapping("/signSituation/list")
    public R getSignSituationList(SignInfo signInfo){
        List<SignInfo> list = signInRecordsService.getSignSituationList(signInfo);
        return R.data(list);
    }
}
src/main/java/org/springblade/modules/signinrecords/mapper/SignInRecordsMapper.java
@@ -6,6 +6,8 @@
import org.springblade.modules.absentrecords.entity.AbsentRecords;
import org.springblade.modules.signinrecords.entity.SignInRecords;
import org.springblade.modules.signinrecords.vo.SignInRecordsVo;
import org.springblade.modules.signinrecords.vo.SignInfo;
import org.springblade.modules.signinrecords.vo.SignStatistics;
import java.util.List;
@@ -23,4 +25,10 @@
     */
    List<SignInRecordsVo> selectSignInRecordsPage(@Param("page") IPage<SignInRecordsVo> page,
                                                  @Param("signInRecords") SignInRecordsVo signInRecords);
    SignStatistics getSignStatisticsPie(@Param("statistics") SignStatistics signStatistics);
    List<SignStatistics> getSignStatisticsBar(@Param("statistics") SignStatistics signStatistics);
    List<SignInfo> getSignSituationList(@Param("signInfo") SignInfo signInfo);
}
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>
src/main/java/org/springblade/modules/signinrecords/service/SignInRecordsService.java
@@ -4,6 +4,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.signinrecords.entity.SignInRecords;
import org.springblade.modules.signinrecords.vo.SignInRecordsVo;
import org.springblade.modules.signinrecords.vo.SignInfo;
import org.springblade.modules.signinrecords.vo.SignStatistics;
import java.util.List;
/**
 * 考试签到记录服务类
@@ -17,4 +21,25 @@
     * @param signInRecords 考试签到记录信息对象
     */
    IPage<SignInRecordsVo> selectSignInRecordsPage(IPage<SignInRecordsVo> page, SignInRecordsVo signInRecords);
    /**
     * 获取大屏签到情况饼图数据
     * @param signStatistics
     * @return
     */
    SignStatistics getSignStatisticsPie(SignStatistics signStatistics);
    /**
     * 大屏签到柱状图
     * @param signStatistics
     * @return
     */
    List<SignStatistics> getSignStatisticsBar(SignStatistics signStatistics);
    /**
     * 大屏签到情况列表
     * @param signInfo
     * @return
     */
    List<SignInfo> getSignSituationList(SignInfo signInfo);
}
src/main/java/org/springblade/modules/signinrecords/service/impl/SignInRecordsServiceImpl.java
@@ -8,7 +8,11 @@
import org.springblade.modules.signinrecords.mapper.SignInRecordsMapper;
import org.springblade.modules.signinrecords.service.SignInRecordsService;
import org.springblade.modules.signinrecords.vo.SignInRecordsVo;
import org.springblade.modules.signinrecords.vo.SignInfo;
import org.springblade.modules.signinrecords.vo.SignStatistics;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * 考试签到记录服务实现类
@@ -25,4 +29,19 @@
    public IPage<SignInRecordsVo> selectSignInRecordsPage(IPage<SignInRecordsVo> page, SignInRecordsVo signInRecords) {
        return page.setRecords(baseMapper.selectSignInRecordsPage(page,signInRecords));
    }
    @Override
    public SignStatistics getSignStatisticsPie(SignStatistics signStatistics) {
        return baseMapper.getSignStatisticsPie(signStatistics);
    }
    @Override
    public List<SignStatistics> getSignStatisticsBar(SignStatistics signStatistics) {
        return baseMapper.getSignStatisticsBar(signStatistics);
    }
    @Override
    public List<SignInfo> getSignSituationList(SignInfo signInfo) {
        return baseMapper.getSignSituationList(signInfo);
    }
}
src/main/java/org/springblade/modules/signinrecords/vo/SignInfo.java
New file
@@ -0,0 +1,28 @@
package org.springblade.modules.signinrecords.vo;
import lombok.Data;
/**
 * 签到情况
 */
@Data
public class SignInfo {
    //准考证号
    private String candidateNo;
    //头像
    private String avatar;
    //姓名
    private String realName;
    //身份证号
    private String cardId;
    //签到情况
    private String state;
    //考试id
    private String examId;
}
src/main/java/org/springblade/modules/signinrecords/vo/SignStatistics.java
New file
@@ -0,0 +1,33 @@
package org.springblade.modules.signinrecords.vo;
import liquibase.pro.packaged.S;
import lombok.Data;
@Data
public class SignStatistics{
    //考试id
    private String examId;
    //已签到
    private Double sign;
    //未签到
    private Double unSign;
    //机构
    private String deptName;
    //应到
    private Integer shouldNum;
    //实到
    private Integer realNum;
    //未到
    private Integer unArriveNum;
    //日期
    private String time;
}
src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -431,4 +431,6 @@
     * @return
     */
    Object dataHandler();
    Boolean wxRegister(User user);
}