智慧保安后台管理-外网
Administrator
2022-06-11 bd024f2081dd68ddd2289b3f8fcbacfae1a6d104
新增定时任务重新计算当天成绩
6 files modified
295 ■■■■■ changed files
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java 6 ●●●●● 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 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java 221 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/quartz/task/Task.java 52 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java
@@ -108,4 +108,10 @@
     * @return
     */
    List<ExamSocreStatis> getExamStatisInfo(@Param("information") InformationVO information);
    /**
     * 查询考试成绩
     * @return
     */
    List<ExamScore> getExamScoreLists();
}
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -527,5 +527,10 @@
            id
    </select>
    <!--查询考试成绩-->
    <select id="getExamScoreLists" resultType="org.springblade.modules.exam.entity.ExamScore">
        SELECT * from exam_score where date_format(exam_time,'%Y-%M-%d') = date_format(now(),'%Y-%M-%d')
    </select>
</mapper>
src/main/java/org/springblade/modules/exam/service/ExamScoreService.java
@@ -105,4 +105,10 @@
     * @param
     */
    Object getExamStatisInfo(InformationVO information);
    /**
     * 查询考试成绩
     * @return
     */
    List<ExamScore> getExamScoreList();
}
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -317,13 +317,13 @@
                                            //数据推送
                                            Map<String, Object> map = new HashMap<>(1);
                                            map.put(uuid,pre);
                                            map.put(uuid, pre);
                                            myAsyncService.FTPSecurityNumberBit(map);
                                            int count = 0;
                                            Result result0 = new Result();
                                            //调用ftp获取返回数据
                                            while (true){
                                            while (true) {
                                                try {
                                                    Thread.sleep(1000);
                                                } catch (InterruptedException e) {
@@ -332,9 +332,9 @@
                                                //调用ftp获取返回数据
                                                result0 = Monitor.getSecurityNumberBit(uuid);
                                                //如果返回true,就退处
                                                if (result0.getCode()==200){
                                                if (result0.getCode() == 200) {
                                                    break;
                                                }else{
                                                } else {
                                                    //计数
                                                    count++;
                                                    //如果超过100s 没有读取到,则退出
@@ -372,7 +372,7 @@
                                            securityPaper.setApplyId(examScore.getApplyId());
                                            securityPaper.setSource(1);
                                            //内网对象
                                            SecurityPaper paper = Objects.requireNonNull(BeanUtil.copy(securityPaper,SecurityPaper.class));
                                            SecurityPaper paper = Objects.requireNonNull(BeanUtil.copy(securityPaper, SecurityPaper.class));
                                            //新增保安员证信息
                                            securityPaper.setNumber(DesensitizedUtil.desensitizedSecurityNumber(result));
                                            securityPaper.setIdCardNo("");
@@ -384,15 +384,15 @@
                                            String s1 =
                                                "insert into sys_security_paper(id,number,create_time,people_name,id_card_no,user_id,apply_id,exam_id,source) " +
                                                    "values(" + "'" + paper.getId() + "'"
                                                    + "," + "'" + paper.getNumber() +"'"
                                                    + "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(paper.getCreateTime()) +"'"
                                                    + "," + "'" + paper.getNumber() + "'"
                                                    + "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(paper.getCreateTime()) + "'"
                                                    + "," + "'" + paper.getPeopleName() + "'"
                                                    + "," + "'" + paper.getIdCardNo() + "'"
                                                    + "," + "'" + paper.getUserId() + "'"
                                                    + "," + "'" + paper.getApplyId() + "'"
                                                    + "," + "'" + paper.getExamId() + "'"
                                                    + "," +"'" + paper.getSource() + "'" + ");" +
                                                "update blade_user set hold = " + "'" + user.getHold() + "'" +
                                                    + "," + "'" + paper.getSource() + "'" + ");" +
                                                    "update blade_user set hold = " + "'" + user.getHold() + "'" +
                                                    ",securitynumber = " + "'" + result + "'" +
                                                    ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
                                                    ",user_type = " + "'" + user.getUserType() + "'" +
@@ -449,6 +449,200 @@
            }
        }
    }
//    /**
//     * 导入实操成绩
//     *
//     * @param examScoreExcelList
//     * @param isCovered          是否覆盖
//     */
//    @Override
//    public void importExamScore(List<ExamScoreExcel> examScoreExcelList, Boolean isCovered) {
//        if (examScoreExcelList.size() > 0) {
//            List<Object> errorList = new ArrayList<>();
//            //导入状态,默认为true ,如果有一个出现问题则为 false
//            AtomicBoolean status = new AtomicBoolean(true);
//            //遍历
//            examScoreExcelList.forEach(examScoreExcel -> {
//                if (null != examScoreExcel.getLearnGrade() && null != examScoreExcel.getIdCardNo() && examScoreExcel.getIdCardNo() != "") {
//                    //使用考试名称匹配考试信息
//                    List<ExamPaper> examPaperList = examPaperService.getExamInfoByExamName(examScoreExcel.getExamName());
//                    ExamPaper examPaper = examPaperList.get(0);
//                    //查询出成绩数据
//                    if (examPaperList.size() > 0) {
//                        //取第一个
//                        List<ExamScore> examScoreList = baseMapper.getExamScoreInfoByIdCardNo(examScoreExcel.getIdCardNo(), new SimpleDateFormat("yyyy-MM-dd").format(examPaper.getStartTime()));
//                        if (examScoreList.size() == 0) {
//                            //根据身份证号查询用户
//                            User user0 = userService.getUserInfoByIdCardNo(examScoreExcel.getIdCardNo());
//                            if (null == user0) {
//                                throw new ServiceException("没有找到用户:[" + examScoreExcel.getIdCardNo() + "]相关考试成绩信息,请检查身份证是否有误!");
////                                throw new ServiceException("用户:["+examScoreExcel.getIdCardNo()+"]不存在");
//                            }
//                        }
//                        //遍历集合
//                        examScoreList.forEach(examScore -> {
////                            ExamScore examScore1 = new ExamScore();
////                            examScore1.setCandidateNo(examScoreExcel.getCandidateNo());
////                            examScore1.setUserId(user0.getId().toString());
////                            //根据准考证号和用户id查询考试成绩
////                            ExamScore examScore = this.getOne(Condition.getQueryWrapper(examScore1));
//                            if (null != examScore) {
//                                //查询当前保安信息
//                                UserVO user = userService.getUserAgeById(Long.parseLong(examScore.getUserId()));
//                                //设置实操成绩
//                                examScore.setLearnGrade(examScoreExcel.getLearnGrade());
//                                if (null != examScore.getTheoryGrade()) {
//                                    if (examScore.getTheoryGrade() >= 60 && examScore.getLearnGrade() >= 60) {
//                                        //合格
//                                        examScore.setQualified(0);
//                                        //修改制证状态为未制证
//                                        user.setUserType(7);
//                                        //如果已有保安证编号,不更新用户信息
//                                        if (null == user.getSecuritynumber() || user.getSecuritynumber().equals("")) {
//                                            //去生成保安证编号
//                                            String pre = SecurityPaperUtil.getSecurityPaper();
//                                            //查询当前年份已有的保安证编号
////                                            int count = userService.getSecurityPaperCount(pre);
//                                            //需调用内网查询
//                                            //生成随机数
//                                            String uuid = UUID.randomUUID().toString();
//
//                                            //数据推送
//                                            Map<String, Object> map = new HashMap<>(1);
//                                            map.put(uuid,pre);
//                                            myAsyncService.FTPSecurityNumberBit(map);
//
//                                            int count = 0;
//                                            Result result0 = new Result();
//                                            //调用ftp获取返回数据
//                                            while (true){
//                                                try {
//                                                    Thread.sleep(1000);
//                                                } catch (InterruptedException e) {
//                                                    e.printStackTrace();
//                                                }
//                                                //调用ftp获取返回数据
//                                                result0 = Monitor.getSecurityNumberBit(uuid);
//                                                //如果返回true,就退处
//                                                if (result0.getCode()==200){
//                                                    break;
//                                                }else{
//                                                    //计数
//                                                    count++;
//                                                    //如果超过100s 没有读取到,则退出
//                                                    if (count == 100) {
//                                                        break;
//                                                    }
//                                                }
//                                            }
//                                            int max = Integer.parseInt(result0.getMsg());
//                                            String result = null;
//                                            if (max == 0) {
//                                                result = pre + "00001";
//                                            } else {
//                                                //格式化
//                                                DecimalFormat decimalFormat = new DecimalFormat("00000");
//                                                max++;
//                                                result = pre + (decimalFormat.format(max));
//                                            }
//                                            //脱敏处理
//                                            user.setSecuritynumber(DesensitizedUtil.desensitizedSecurityNumber(result));
//                                            //修改为持证保安
//                                            user.setHold("1");
//                                            user.setUpdateTime(new Date());
//                                            //更新保安数据
//                                            userService.updateById(user);
//
//                                            //生成保安证的同时向保安证管理表中插入一条数据
//                                            SecurityPaper securityPaper = new SecurityPaper();
//                                            securityPaper.setUserId(user.getId());
//                                            securityPaper.setNumber(result);
//                                            securityPaper.setCreateTime(new Date());
//                                            securityPaper.setIdCardNo(user.getCardid());
//                                            securityPaper.setPeopleName(user.getRealName());
//                                            securityPaper.setExamId(Long.parseLong(examScore.getExamId()));
//                                            securityPaper.setApplyId(examScore.getApplyId());
//                                            securityPaper.setSource(1);
//                                            //内网对象
//                                            SecurityPaper paper = Objects.requireNonNull(BeanUtil.copy(securityPaper,SecurityPaper.class));
//                                            //新增保安员证信息
//                                            securityPaper.setNumber(DesensitizedUtil.desensitizedSecurityNumber(result));
//                                            securityPaper.setIdCardNo("");
//                                            securityPaperService.save(securityPaper);
//
//                                            //设置id
//                                            paper.setId(securityPaper.getId());
//                                            //内网同步
//                                            String s1 =
//                                                "insert into sys_security_paper(id,number,create_time,people_name,id_card_no,user_id,apply_id,exam_id,source) " +
//                                                    "values(" + "'" + paper.getId() + "'"
//                                                    + "," + "'" + paper.getNumber() +"'"
//                                                    + "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(paper.getCreateTime()) +"'"
//                                                    + "," + "'" + paper.getPeopleName() + "'"
//                                                    + "," + "'" + paper.getIdCardNo() + "'"
//                                                    + "," + "'" + paper.getUserId() + "'"
//                                                    + "," + "'" + paper.getApplyId() + "'"
//                                                    + "," + "'" + paper.getExamId() + "'"
//                                                    + "," +"'" + paper.getSource() + "'" + ");" +
//                                                "update blade_user set hold = " + "'" + user.getHold() + "'" +
//                                                    ",securitynumber = " + "'" + result + "'" +
//                                                    ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
//                                                    ",user_type = " + "'" + user.getUserType() + "'" +
//                                                    " " + "where id = " + "'" + user.getId() + "'";
//                                            myAsyncService.FTP(s1);
//                                        }
//                                    }
//                                } else {
//                                    //不合格
//                                    examScore.setQualified(1);
//                                }
//                                //总成绩
//                                if (user.getAge() <= 50) {
//                                    if (null != examScore.getTheoryGrade()) {
//                                        examScore.setAllGrade(Math.round((examScore.getTheoryGrade() + examScoreExcel.getLearnGrade()) / 2));
//                                    } else {
//                                        examScore.setAllGrade(Math.round(examScoreExcel.getLearnGrade() / 2));
//                                    }
//                                }
//                                if (user.getAge() > 50) {
//                                    if (null != examScore.getTheoryGrade()) {
//                                        examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(examScore.getTheoryGrade() * 0.5)))
//                                            + Integer.parseInt(String.valueOf(Math.round(examScoreExcel.getLearnGrade() * 0.5))));
//                                    } else {
//                                        examScore.setAllGrade(Math.round(examScoreExcel.getLearnGrade() / 2));
//                                    }
//                                }
//
//                                //内网同步
//                                String s1 =
//                                    "update exam_score set learn_grade = " + "'" + examScore.getLearnGrade() + "'" +
//                                        ",all_grade = " + "'" + examScore.getAllGrade() + "'" +
//                                        ",qualified = " + "'" + examScore.getQualified() + "'" +
//                                        " " + "where id = " + "'" + examScore.getId() + "'";
//                                //FtpUtil.sqlFileUpload(s1);
//                                myAsyncService.FTP(s1);
//                                //更新成绩数据
//                                baseMapper.updateById(examScore);
//                            } else {
//                                errorList.add(examScoreExcel.getName());
//                                status.set(false);
//                            }
//                        });
//
//                    } else {
//                        throw new ServiceException("导入失败!考试名称:[" + examScoreExcel.getExamName() + "]不存在!请核对!");
//                    }
//                }
//            });
//            //如果所有数据导入有一个异常
//            if (!status.get()) {
//                String errorAccount = StringUtils.join(errorList, "\\\n");
//                throw new ServiceException("用户:[" + errorAccount + "]实操成绩导入失败!账号与准考证号不匹配!");
//            }
//        }
//    }
//    /**
@@ -945,4 +1139,13 @@
        //返回数据
        return objectList;
    }
    /**
     * 查询考试成绩
     * @return
     */
    @Override
    public List<ExamScore> getExamScoreList() {
        return baseMapper.getExamScoreLists();
    }
}
src/main/java/org/springblade/modules/quartz/task/Task.java
@@ -9,6 +9,10 @@
import org.apache.commons.net.ftp.FTPReply;
import org.springblade.common.utils.DesensitizedUtil;
import org.springblade.modules.FTP.*;
import org.springblade.modules.exam.entity.ExamAnswerRecord;
import org.springblade.modules.exam.entity.ExamScore;
import org.springblade.modules.exam.service.ExamAnswerRecordService;
import org.springblade.modules.exam.service.ExamScoreService;
import org.springblade.modules.log.entity.HandlerLog;
import org.springblade.modules.log.service.HandlerLogService;
import org.springblade.modules.system.entity.User;
@@ -56,6 +60,13 @@
    @Autowired
    private MyAsyncService myAsyncService;
    @Autowired
    private ExamAnswerRecordService examAnswerRecordService;
    @Autowired
    private ExamScoreService examScoreService;
    public void testTask(){
        System.out.println("测试定时任务执行-----------------");
@@ -866,5 +877,46 @@
        }
    }
    /**
     * 考试成绩同步
     * @return
     */
    public void examScoreSync() {
        System.out.println("考试成绩同步"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        //查询当天的考试成绩
        List<ExamScore> examScoreList = examScoreService.getExamScoreList();
        if (examScoreList.size()>0) {
            //遍历计算成绩
            for (ExamScore examScore : examScoreList) {
                ExamAnswerRecord record = new ExamAnswerRecord();
                record.setScoreId(examScore.getId());
                List<ExamAnswerRecord> list = examAnswerRecordService.list(new QueryWrapper<>(record));
                if (list.size()>0){
                    int num = 0;
                    for (ExamAnswerRecord examAnswerRecord : list) {
                        num = num + examAnswerRecord.getAnswerScore();
                        examScore.setExamEndTime(examAnswerRecord.getAnswerTime());
                    }
                    examScore.setTheoryGrade(num);
                    examScore.setAllGrade(Math.round(num/2));
                    //设置状态
                    if (num >= 60) {
                        examScore.setQualified(2);
                    } else {
                        examScore.setQualified(1);
                    }
                    String s1 =
                        "update exam_score set exam_id = " + examScore.getExamId() +
                            ",theory_grade = " + "'" + examScore.getTheoryGrade() + "'" +
                            ",all_grade = " + "'" + examScore.getAllGrade() + "'" +
                            ",exam_end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(examScore.getExamEndTime()) + "'" +
                            ",qualified = " + "'" + examScore.getQualified() + "'" +
                            " " + "where id = " + "'" + examScore.getId() + "'";
                    myAsyncService.FTP(s1);
                }
            }
        }
    }
}
src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
@@ -470,7 +470,6 @@
                                    + "'" + examScore.getUserId() + "'" + ","
                                    + "'" + examScore.getApplyId() + "'" + ","
                                    + "'" + examScore.getExamId() + "'" + ")";
                            //FtpUtil.sqlFileUpload(s);
                            myAsyncService.FTP(s);
                        }
                    }
@@ -525,7 +524,7 @@
                            examScore1.setQualified(1);
                        }
                        //更新成绩数据
                        examScoreService.updateById(examScore1);
//                        examScoreService.updateById(examScore1);
                        //数据同步
                        String s =
@@ -534,7 +533,6 @@
                            "update exam_score set theory_grade = " + examScore1.getTheoryGrade() +
                                ",qualified = " + "'" + examScore1.getQualified() + "'" +
                                " " + "where id = " + "'" + examScore1.getId() + "'";
                        //FtpUtil.sqlFileUpload(s);
                        myAsyncService.FTP(s);
                    });
                }else {
@@ -542,7 +540,6 @@
                    String s =
                        "update sys_training_registration set is_exam = " + trainingRegistration1.getIsExam() +
                            " " + "where id = " + "'" + trainingRegistration1.getId() + "'";
                    //FtpUtil.sqlFileUpload(s);
                    myAsyncService.FTP(s);
                }
            });