智慧保安后台管理-外网
1.培训考试报名接口修改,取消报名接口修改
2.考试成绩查询接口修改,保安个人考试查询接口修改
3.培训查询列表修改
13 files modified
365 ■■■■ changed files
src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/ExamScoreService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java 185 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/entity/TrainingRegistration.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.java 4 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml 67 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/service/TrainingRegistrationService.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java 23 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java
@@ -115,6 +115,25 @@
        return R.status(examScoreService.updateById(examScore));
    }
    /**
     * 缺考标记修改
     *
     * @param examScore 考试成绩信息对象
     */
    @PostMapping("/updateAbsent")
    public R updateAbsent(@RequestBody ExamScore examScore) {
        examScore.setQualified(3);
        boolean status = examScoreService.updateByIdAndQualifiee(examScore);
        //内网数据推送
        String s1 =
            "update exam_score set qualified = " + "'" + examScore.getQualified() + "'" +
                " " + "where id = " + "'" + examScore.getId() + "'";
        FtpUtil.sqlFileUpload(s1);
        return R.status(status);
    }
    /**
     * 修改总成绩
     *
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
@@ -190,6 +190,7 @@
        and is_exam = 1
        and ke.audit_status = 1
        and str.cancel = 1
        and str.audit_status = 1
        )
    </select>
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java
@@ -50,4 +50,11 @@
    List<Map<String,Object>> scoreStatistics(String deptid,String jurisdiction);
    List<Map<String,Object>> scoreStatisticssc(String deptid,String jurisdiction);
    /**
     * 修改成绩信息
     * @param examScore
     * @return
     */
    int updateByIdAndQualifiee(@Param("examScore") ExamScore examScore);
}
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -228,4 +228,9 @@
            bu.cardid = #{idCardNo}
            and es.exam_id = #{examId}
    </select>
    <!--修改成绩信息-->
    <update id="updateByIdAndQualifiee">
        update exam_score set qualified = #{examScore.qualified} where id = #{examScore.id}
    </update>
</mapper>
src/main/java/org/springblade/modules/exam/service/ExamScoreService.java
@@ -46,4 +46,11 @@
    List<Map<String,Object>> scoreStatistics(String deptid,String jurisdiction);
    List<Map<String,Object>> scoreStatisticssc(String deptid,String jurisdiction);
    /**
     * 修改成绩信息
     * @param examScore
     * @return
     */
    boolean updateByIdAndQualifiee(ExamScore examScore);
}
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -319,4 +319,18 @@
    public List<Map<String, Object>> scoreStatisticssc(String deptid,String jurisdiction) {
        return baseMapper.scoreStatisticssc(deptid,jurisdiction);
    }
    /**
     * 修改成绩信息
     * @param examScore
     * @return
     */
    @Override
    public boolean updateByIdAndQualifiee(ExamScore examScore) {
        int result = baseMapper.updateByIdAndQualifiee(examScore);
        if (result>0){
            return true;
        }
        return false;
    }
}
src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
@@ -83,6 +83,8 @@
            trainingRegistration.setCancel(1);
            //默认为未考试状态
            trainingRegistration.setIsExam(1);
            //未提交考试审核
            trainingRegistration.setAuditStatus(4);
            trainingRegistration.setTrainingTime(new Date());
            //报名
            trainingRegistrationService.save(trainingRegistration);
@@ -105,6 +107,8 @@
                trainingRegistration.setCancel(1);
                //默认为未考试状态
                trainingRegistration.setIsExam(1);
                //未提交考试审核
                trainingRegistration.setAuditStatus(4);
                trainingRegistration.setTrainingTime(new Date());
                //报名
                trainingRegistrationService.save(trainingRegistration);
@@ -129,13 +133,14 @@
    private void saveTrainingRegistration(TrainingRegistration trainingRegistration,User user1){
        String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        Long id = trainingRegistration.getId();
        String s = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam) " +
        String s = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " +
            "values(" + "'" + id + "'"
            + "," + "'" + trainingRegistration.getTrainingUnitId() +"'"
            + "," + "'" + formatStr +"'"
            + "," + "'" + trainingRegistration.getCancel() + "'"
            + "," + "'" + trainingRegistration.getUserId() + "'"
            + "," +"'" + trainingRegistration.getIsExam() + "'" + ");" +
            + "," + "'" + trainingRegistration.getIsExam() + "'"
            + "," +"'" + trainingRegistration.getAuditStatus() + "'" + ");" +
            "update blade_user set is_train = " + user1.getIsTrain() + " " +"where id = " + "'" + user1.getId() + "'";
        FtpUtil.sqlFileUpload(s);
    }
@@ -189,11 +194,85 @@
    /**
     * 审核通过
     * @param trainingRegistration 考试报名信息对象
     */
    @PostMapping("/auditSucess")
    public R auditSucess(@RequestBody TrainingRegistration trainingRegistration){
        //查询人员信息
        User user = userService.getById(trainingRegistration.getUserId());
        boolean status = false;
        if (null!=user){
            //修改为已报名状态
            user.setIsTrain(1);
            userService.updateById(user);
            trainingRegistration.setAuditStatus(1);
            trainingRegistration.setCancel(1);
            status = trainingRegistrationService.updateById(trainingRegistration);
            //数据同步
            cancelTrainingRegistrationSync(trainingRegistration,user);
        }
        return R.data(status);
    }
    /**
     * 取消报名,并设置为审核不通过
     * @param trainingRegistration 考试报名信息对象
     */
    @PostMapping("/cancelTrainAudit")
    public R cancelApplyAudit(@RequestBody TrainingRegistration trainingRegistration){
        //查询人员是否已报名
        User user = userService.getById(trainingRegistration.getUserId());
        if(null==user.getIsTrain()){
            trainingRegistration.setCancel(2);
            trainingRegistration.setAuditStatus(2);
            boolean status = trainingRegistrationService.updateById(trainingRegistration);
            //修改保安报名状态
            user.setIsTrain(2);
            userService.updateById(user);
            //数据同步
            cancelTrainingRegistrationSync(trainingRegistration,user);
            if (status){
                return R.data(200,"取消报名成功");
            }
        }else {
            if(user.getIsTrain()==1){
                trainingRegistration.setCancel(2);
                trainingRegistration.setAuditStatus(2);
                boolean status = trainingRegistrationService.updateById(trainingRegistration);
                //修改保安报名状态
                user.setIsTrain(2);
                userService.updateById(user);
                //数据同步
                cancelTrainingRegistrationSync(trainingRegistration,user);
                if (status){
                    return R.data(200,"取消报名成功");
                }
            }else {
                return R.data(201,"尚未报名");
            }
        }
        return R.data(202,"取消报名失败");
    }
    /**
     * 取消报名同步
     */
    private void cancelTrainingRegistrationSync(TrainingRegistration trainingRegistration,User user){
        String s =
            "update sys_training_registration set cancel = " + trainingRegistration.getCancel() + " " +"where id = " + "'" + trainingRegistration.getId() + "';" +
            "update sys_training_registration set cancel = " + trainingRegistration.getCancel() +
                ",audit_status = " + "'" + trainingRegistration.getAuditStatus() + "'" +
                " " +"where id = " + "'" + trainingRegistration.getId() + "';" +
                "update blade_user set is_train = " + user.getIsTrain() + " " +"where id = " + "'" + user.getId() + "'";
        FtpUtil.sqlFileUpload(s);
    }
@@ -213,6 +292,8 @@
                trainingRegistration1.setCancel(1);
                //默认为未考试状态
                trainingRegistration1.setIsExam(1);
                //未提交考试审核
                trainingRegistration.setAuditStatus(4);
                trainingRegistration1.setTrainingTime(new Date());
                trainingRegistration1.setUserId(userId);
                trainingRegistration1.setTrainingUnitId(trainingRegistration.getTrainingUnitId());
@@ -229,6 +310,8 @@
                    trainingRegistration1.setCancel(1);
                    //默认为未考试状态
                    trainingRegistration1.setIsExam(1);
                    //未提交考试审核
                    trainingRegistration.setAuditStatus(4);
                    trainingRegistration1.setTrainingTime(new Date());
                    trainingRegistration1.setUserId(userId);
                    trainingRegistration1.setTrainingUnitId(trainingRegistration.getTrainingUnitId());
@@ -456,32 +539,25 @@
    /**
     * 生成试卷,报名
     * @param ids 报名ids
     * @param startTime 考试开始时间
     * @param number 报名人数
     * @param endTime 截止时间
     * @param serialStart 报名序号开始
     * @param serialEnd 报名序号结束
     * @param trainingRegistrationVo 考试开始时
     */
    @PostMapping("/batchExam")
    public R batchExam(@RequestParam String ids,
                       String examTime,
                       @RequestParam Date startTime,
                       @RequestParam Integer number,
                       @RequestParam Date endTime,
                       @RequestParam Integer serialStart,
                       @RequestParam Integer serialEnd
    ){
        if (!ids.equals("")){
            List<String> list = Arrays.asList(ids.split(","));
            if (list.size()>0){
    public R batchExam(@RequestBody TrainingRegistrationVo trainingRegistrationVo){
        if (trainingRegistrationVo.getNumber()==0){
            return R.data("报名人数不能小于1人");
        }else {
            //查询已报名的人员前 number 个
            //查询已报名未关联试卷的人员,同步报名列表
            List<Long> applyIds = trainingRegistrationService.getTrainIds(trainingRegistrationVo);
            System.out.println("applyIds = " + applyIds);
            if (applyIds.size()>0){
                //生成考试
                ExamPaper examPaper = new ExamPaper();
//                examPaper.setExamTime(examTime);
                examPaper.setExamType(2);
                examPaper.setStartTime(startTime);
                examPaper.setEndTime(endTime);
                examPaper.setStartTime(trainingRegistrationVo.getStartTime());
                examPaper.setEndTime(trainingRegistrationVo.getEndTime());
                Calendar instance = Calendar.getInstance();
                instance.setTime(startTime);
                instance.setTime(trainingRegistrationVo.getStartTime());
                int year = instance.get(Calendar.YEAR);
                int month = instance.get(Calendar.MONTH)+1;
                int day = instance.get(Calendar.DAY_OF_MONTH);
@@ -504,71 +580,22 @@
                    ","  +"'" + examPaper.getAuditStatus() + "'" + ")";
                FtpUtil.sqlFileUpload(s);
                //修改报名信息
                list.forEach(id ->{
                applyIds.forEach(id ->{
                    TrainingRegistration trainingRegistration = new TrainingRegistration();
                    trainingRegistration.setId(Long.parseLong(id));
                    trainingRegistration.setId(id);
                    trainingRegistration.setTrainExamId(examPaper.getId().toString());
                    //提交考试审核
                    trainingRegistration.setAuditStatus(3);
                    trainingRegistrationService.updateById(trainingRegistration);
                    String s1 =
                        "update sys_training_registration set train_exam_id = " + "'" + trainingRegistration.getTrainExamId()+ "'"
                            +",audit_status = " + "'" + trainingRegistration.getAuditStatus()+ "'"
                            + " " +"where id = " + "'" + trainingRegistration.getId() + "'";
                    FtpUtil.sqlFileUpload(s1);
                });
            }
        }else {
            if (number==0){
                return R.data("报名人数不能小于1人");
            }else {
                //查询已报名的人员前 number 个
                //查询已报名未关联试卷的人员
                List<Long> applyIds = trainingRegistrationService.getTrainIds(number,serialStart,serialEnd);
                if (applyIds.size()>0){
                    //生成考试
                    ExamPaper examPaper = new ExamPaper();
//                examPaper.setExamTime(examTime);
                    examPaper.setExamType(2);
                    examPaper.setStartTime(startTime);
                    examPaper.setEndTime(endTime);
                    Calendar instance = Calendar.getInstance();
                    instance.setTime(startTime);
                    int year = instance.get(Calendar.YEAR);
                    int month = instance.get(Calendar.MONTH)+1;
                    int day = instance.get(Calendar.DAY_OF_MONTH);
                    String examName = year + "年" + month+ "月"+ day +"日" +"保安员证培训考试";
                    examPaper.setExamName(examName);
                    //待审核
                    examPaper.setAuditStatus(3);
                    //生成考试
                    examPaperService.save(examPaper);
                    Long sid = examPaper.getId();
                    String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(examPaper.getStartTime());
                    String endTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(examPaper.getEndTime());
                    String s = "insert into ksxt_exam(id,exam_name,exam_type,start_time,end_time,audit_status) " +
                        "values(" + "'" + sid + "'" +
                        "," + "'" + examPaper.getExamName() + "'" +
                        "," + "'" + examPaper.getExamType() +"'" +
                        "," + "'" + format +"'" +
                        "," + "'" + endTimeFormat +"'" +
                        ","  +"'" + examPaper.getAuditStatus() + "'" + ")";
                    FtpUtil.sqlFileUpload(s);
                    //修改报名信息
                    applyIds.forEach(id ->{
                        TrainingRegistration trainingRegistration = new TrainingRegistration();
                        trainingRegistration.setId(id);
                        trainingRegistration.setTrainExamId(examPaper.getId().toString());
                        trainingRegistrationService.updateById(trainingRegistration);
                        String s1 =
                            "update sys_training_registration set train_exam_id = " + "'" + trainingRegistration.getTrainExamId()+ "'"
                                + " " +"where id = " + "'" + trainingRegistration.getId() + "'";
                        FtpUtil.sqlFileUpload(s1);
                    });
                }
            }
        }
        return null;
src/main/java/org/springblade/modules/training/entity/TrainingRegistration.java
@@ -115,4 +115,10 @@
    @TableField("candidate_no")
    private String candidateNo;
    /**
     * 审核状态  1:审核通过   2:未通过审核  3:已提交审核  4:未提交审核
     */
    @TableField("audit_status")
    private Integer auditStatus;
}
src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.java
@@ -57,7 +57,5 @@
     * 查询已报名培训公司未关联考试的人员
     * @return
     */
    List<Long> getTrainIds(@Param("number") Integer number,
                           @Param("serialStart")Integer serialStart,
                           @Param("serialEnd")Integer serialEnd);
    List<Long> getTrainIds(@Param("trainingRegistration") TrainingRegistrationVo trainingRegistration);
}
src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
@@ -10,7 +10,7 @@
            bt0.dept_name AS trainUnitName,
            bu.real_name realName,bu.phone,bu.cardid idCardNo,
            ke.start_time trainExamTime,if(ke.audit_status=1,ke.exam_name,"") trainExamName,
            ke.exam_type examType,ke.audit_status auditStatus,
            ke.exam_type examType,sr.audit_status auditStatus,
            "保安证" applyCard
        FROM
            sys_training_registration sr
@@ -33,8 +33,6 @@
        WHERE
            1=1
        and is_exam = 1
        and bu.is_train = 1
        and sr.cancel = 1
        <if test="trainingRegistration.trainingUnitId!=null and  trainingRegistration.trainingUnitId!=''">
            and sr.training_unit_id = #{trainingRegistration.trainingUnitId}
        </if>
@@ -44,14 +42,22 @@
        <if test="trainingRegistration.userId!=null and  trainingRegistration.userId!=''">
            and sr.user_id = #{trainingRegistration.userId}
        </if>
        <if test="trainingRegistration.auditStatus!=null and trainingRegistration.auditStatus!=0">
            and sr.audit_status = #{trainingRegistration.auditStatus}
        </if>
        <if test="trainingRegistration.deptName!=null and  trainingRegistration.deptName!=''">
            and bt.dept_name like concat('%', #{trainingRegistration.deptName},'%')
        </if>
        <if test="trainingRegistration.realName!=null and  trainingRegistration.realName!=''">
            and bu.real_name like concat('%', #{trainingRegistration.realName},'%')
        </if>
        <if test="trainingRegistration.cancel!=null">
            and (sr.training_unit_id is null or ke.audit_status = 3)
        <if test="trainingRegistration.cancel==1">
            and sr.cancel = 1
            and bu.is_train = 1
        </if>
        <if test="trainingRegistration.cancel==2">
            and sr.cancel = 2
            and bu.is_train = 2
        </if>
    </select>
@@ -148,23 +154,54 @@
    <!--查询已报名培训公司未关联考试的报名信息-->
    <select id="getTrainIds" resultType="java.lang.Long">
        SELECT
        str.id
        sr.id
        FROM
        sys_training_registration str
        sys_training_registration sr
        LEFT JOIN
        blade_dept bt0
        ON
        sr.training_unit_id = bt0.id
        left join
        blade_user bu
        on
        str.user_id = bu.id
        sr.user_id = bu.id
        LEFT JOIN
        blade_dept bt
        ON
        bu.dept_id = bt.id
        left join
            ksxt_exam ke
        ksxt_exam ke
        on
            ke.id = str.train_exam_id
        ke.id = sr.train_exam_id
        WHERE
        1=1
        and str.is_exam = 1
        and str.cancel = 1
        and bu.is_train = 1
        and (str.train_exam_id is null or ke.audit_status = 3)
        limit #{serialStart},#{serialEnd}
        and is_exam = 1
        <if test="trainingRegistration.trainingUnitId!=null and  trainingRegistration.trainingUnitId!=''">
            and sr.training_unit_id = #{trainingRegistration.trainingUnitId}
        </if>
        <if test="trainingRegistration.examId!=null and  trainingRegistration.examId!=''">
            and ke.id = #{trainingRegistration.examId}
        </if>
        <if test="trainingRegistration.userId!=null and  trainingRegistration.userId!=''">
            and sr.user_id = #{trainingRegistration.userId}
        </if>
        <if test="trainingRegistration.auditStatus!=null and trainingRegistration.auditStatus!=0">
            and sr.audit_status = #{trainingRegistration.auditStatus}
        </if>
        <if test="trainingRegistration.deptName!=null and  trainingRegistration.deptName!=''">
            and bt.dept_name like concat('%', #{trainingRegistration.deptName},'%')
        </if>
        <if test="trainingRegistration.realName!=null and  trainingRegistration.realName!=''">
            and bu.real_name like concat('%', #{trainingRegistration.realName},'%')
        </if>
        <if test="trainingRegistration.cancel==1">
            and sr.cancel = 1
            and bu.is_train = 1
        </if>
        <if test="trainingRegistration.cancel==2">
            and sr.cancel = 2
            and bu.is_train = 2
        </if>
        limit #{trainingRegistration.serialStart},#{trainingRegistration.serialEnd}
    </select>
</mapper>
src/main/java/org/springblade/modules/training/service/TrainingRegistrationService.java
@@ -61,5 +61,5 @@
     * 查询已报名培训公司未关联考试的人员
     * @return
     */
    List<Long> getTrainIds(Integer number,Integer serialStart,Integer serialEnd);
    List<Long> getTrainIds(TrainingRegistrationVo trainingRegistrationVo);
}
src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
@@ -98,6 +98,7 @@
                        trainingRegistration.setIsExam(1);
                        trainingRegistration.setCancel(1);
                        trainingRegistration.setTrainingTime(new Date());
                        trainingRegistration.setAuditStatus(3);
                        //如果examId不为空
                        if (null!=examId){
                            //查询考试信息
@@ -107,6 +108,15 @@
                            if (examPaper.getAuditStatus()==1){
                                //生成准考证号
                                trainingRegistration.setCandidateNo(getCandidateNo(trainingRegistration));
                                trainingRegistration.setAuditStatus(1);
                            }
                            //考试审核不通过
                            if (examPaper.getAuditStatus()==2){
                                trainingRegistration.setAuditStatus(2);
                            }
                            //考试待审核
                            if (examPaper.getAuditStatus()==3){
                                trainingRegistration.setAuditStatus(3);
                            }
                        }
                        //新增报名
@@ -227,13 +237,14 @@
    private void saveTrainingRegistration(TrainingRegistration trainingRegistration,User user1){
        String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        Long id = trainingRegistration.getId();
        String s = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam) " +
        String s = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " +
            "values(" + "'" + id + "'"
            + "," + "'" + trainingRegistration.getTrainingUnitId() +"'"
            + "," + "'" + formatStr +"'"
            + "," + "'" + trainingRegistration.getCancel() + "'"
            + "," + "'" + trainingRegistration.getUserId() + "'"
            + "," +"'" + trainingRegistration.getIsExam() + "'" + ");" +
            + "," + "'" + trainingRegistration.getIsExam() + "'"
            + "," +"'" + trainingRegistration.getAuditStatus() + "'" + ");" +
            "update blade_user set is_train = " + user1.getIsTrain() + " " +"where id = " + "'" + user1.getId() + "'";
        FtpUtil.sqlFileUpload(s);
    }
@@ -264,9 +275,9 @@
     * @return
     */
    @Override
    public List<Long> getTrainIds(Integer number,Integer serialStart,Integer serialEnd) {
        serialStart = serialStart -1;
        serialEnd = serialEnd - serialStart;
        return baseMapper.getTrainIds(number,serialStart,serialEnd);
    public List<Long> getTrainIds(TrainingRegistrationVo trainingRegistrationVo) {
        trainingRegistrationVo.setSerialStart(trainingRegistrationVo.getSerialStart() -1);
        trainingRegistrationVo.setSerialEnd(trainingRegistrationVo.getSerialEnd() -trainingRegistrationVo.getSerialStart());
        return baseMapper.getTrainIds(trainingRegistrationVo);
    }
}
src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java
@@ -4,6 +4,7 @@
import lombok.Data;
import org.springblade.modules.training.entity.TrainingRegistration;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.Serializable;
import java.util.Date;
@@ -78,9 +79,29 @@
     */
    private String userIds;
    /**
     * 报名人数
     */
    private Integer number;
    /**
     * 审核状态  1:审核通过   2:未通过审核  3:审核中  4:待审核
     * 开始序列号
     */
    private Integer auditStatus;
    private Integer serialStart;
    /**
     * 结束序列号
     */
    private Integer serialEnd;
    /**
     * 培训考试开始时间
     */
    private Date startTime;
    /**
     * 培训考试结束时间
     */
    private Date endTime;
}