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); }