| | |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import liquibase.pro.packaged.L; |
| | | import org.springblade.common.utils.TimeSwitchUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.modules.apply.entity.Apply; |
| | |
| | | import org.springblade.modules.exam.vo.*; |
| | | import org.springblade.modules.training.entity.TrainingRegistration; |
| | | import org.springblade.modules.training.service.TrainingRegistrationService; |
| | | import org.springblade.modules.vip.entity.VipTopic; |
| | | import org.springblade.modules.vip.service.VipTopicService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | public class ExamPaperServiceImpl extends ServiceImpl<ExamPaperMapper, ExamPaper> implements ExamPaperService { |
| | | |
| | | @Autowired |
| | | private ExamExaminationSubjectService examExaminationSubjectService; |
| | | private VipTopicService vipTopicService; |
| | | |
| | | @Autowired |
| | | private ExamAnswerRecordService examAnswerRecordService; |
| | |
| | | |
| | | @Autowired |
| | | private ExamScoreService examScoreService; |
| | | |
| | | @Autowired |
| | | private TrainingRegistrationService trainingRegistrationService; |
| | | |
| | | |
| | | |
| | |
| | | public List<ExamSubjectChoicesVO> queryRandomSubject(ExamPaperVO paper) { |
| | | //保存题目信息 |
| | | if (null!=paper.getScoreId()){ |
| | | //随机分类信息 |
| | | List<ExamSubjectChoicesVO> examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper); |
| | | //查询该保安员是否为会员 |
| | | ExamScore score = examScoreService.getById(paper.getScoreId()); |
| | | TrainingRegistration trainingRegistration = trainingRegistrationService.getById(score.getApplyId()); |
| | | |
| | | List<ExamSubjectChoicesVO> examSubjectChoicesVOS = new ArrayList<>(); |
| | | if (null!=trainingRegistration.getVipStatus()){ |
| | | //如果是会员,从会员库里取题目 |
| | | if (trainingRegistration.getVipStatus().equals(1)){ |
| | | //查询该vip 用户的 vip 库,从该120题中取出题目 |
| | | VipTopic vipTopic = new VipTopic(); |
| | | vipTopic.setUserId(Long.parseLong(score.getUserId())); |
| | | // vipTopic.setApplyId(score.getApplyId()); |
| | | VipTopic topic = vipTopicService.getOne(Condition.getQueryWrapper(vipTopic)); |
| | | if (null!=topic){ |
| | | List<String> list = Arrays.asList(topic.getTopicIds().split(",")); |
| | | // System.out.println("list.size() = " + list.size()); |
| | | List<String> radio = list.subList(0, 49); |
| | | List<String> checkbox = list.subList(50, 69); |
| | | List<String> judge = list.subList(70, 109); |
| | | List<String> sort = list.subList(110, 119); |
| | | //随机题目 |
| | | List<ExamSubjectChoicesVO> radioRandomSubjectList = baseMapper.queryRandomSubjectList(radio,25); |
| | | List<ExamSubjectChoicesVO> checkboxRandomSubjectList = baseMapper.queryRandomSubjectList(checkbox,10); |
| | | List<ExamSubjectChoicesVO> judgeRandomSubjectList = baseMapper.queryRandomSubjectList(judge,20); |
| | | List<ExamSubjectChoicesVO> sortRandomSubjectList = baseMapper.queryRandomSubjectList(sort,5); |
| | | //合并集合数据 |
| | | examSubjectChoicesVOS.addAll(radioRandomSubjectList); |
| | | examSubjectChoicesVOS.addAll(checkboxRandomSubjectList); |
| | | examSubjectChoicesVOS.addAll(judgeRandomSubjectList); |
| | | examSubjectChoicesVOS.addAll(sortRandomSubjectList); |
| | | } |
| | | }else { |
| | | //随机分类信息 |
| | | examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper); |
| | | } |
| | | }else { |
| | | //随机分类信息 |
| | | examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper); |
| | | } |
| | | // long before = System.currentTimeMillis(); |
| | | List<ExamExaminationSubject> list = new ArrayList<>(); |
| | | examSubjectChoicesVOS.forEach(examSubjectChoicesVO -> { |
| | |
| | | @Override |
| | | public IPage<ExamStatisticsVO> getExamInfoByExamId(IPage<ExamStatisticsVO> page, ExamStatisticsVO examPaperVO) { |
| | | List<ExamStatisticsVO> statisticsVOS = baseMapper.getExamInfoByExamId(page, examPaperVO); |
| | | System.out.println("statisticsVOS = " + statisticsVOS); |
| | | //遍历,计算占比 |
| | | if (statisticsVOS.size()>0){ |
| | | statisticsVOS.forEach(examStatisticsVO -> { |
| | |
| | | } |
| | | return page.setRecords(statisticsVOS); |
| | | } |
| | | |
| | | /** |
| | | * 根据考试id 统计查询考试信息 |
| | | * @param examScoreVO |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ExamStatisticsVO> getExamInfoByExamIdList(ExamScoreVO examScoreVO) { |
| | | List<ExamStatisticsVO> statisticsVOS = baseMapper.getExamInfoByExamIdList(examScoreVO); |
| | | //遍历,计算占比 |
| | | if (statisticsVOS.size()>0){ |
| | | statisticsVOS.forEach(examStatisticsVO -> { |
| | | //格式化小数 |
| | | DecimalFormat df = new DecimalFormat("0.00"); |
| | | //返回的是String类型 |
| | | examStatisticsVO.setAbsentProportion(df.format((float)examStatisticsVO.getQknum()/examStatisticsVO.getZnum()*100)); |
| | | DecimalFormat df1 = new DecimalFormat("0.00"); |
| | | examStatisticsVO.setQualifiedProportion(df1.format((float)examStatisticsVO.getYknum()/examStatisticsVO.getZnum()*100)); |
| | | }); |
| | | } |
| | | return statisticsVOS; |
| | | } |
| | | |
| | | /** |
| | | * 查询考试成绩明细 |
| | | * @param examScoreVO |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ExamScoreVO> getExamScoreList(ExamScoreVO examScoreVO) { |
| | | return baseMapper.getExamScoreList(examScoreVO); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据id 取出题目信息(随机取) |
| | | * @param list 题目id集合 |
| | | * @param number 题目梳理 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ExamSubjectChoicesVO> queryRandomSubjectList(List<String> list, int number) { |
| | | return baseMapper.queryRandomSubjectList(list,number); |
| | | } |
| | | |
| | | /** |
| | | * 模拟考试随机抽题,未缴费人员 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ExamSubjectChoicesVO> simulateQueryRandomSubjectList() { |
| | | return baseMapper.simulateQueryRandomSubjectList(); |
| | | } |
| | | } |