| | |
| | | @Override |
| | | public ExamPaperEditRequestVO examPaperToVM(Integer id) { |
| | | ExamPaper examPaper = examPaperMapper.selectByPrimaryKey(id); |
| | | if (Objects.isNull(examPaper)) { |
| | | throw new RuntimeException("该考试已被删除,无法查看"); |
| | | } |
| | | ExamPaperEditRequestVO vm = modelMapper.map(examPaper, ExamPaperEditRequestVO.class); |
| | | vm.setLevel(examPaper.getGradeLevel()); |
| | | vm.setMenuIds(examPaper.getUserIds()); |
| | |
| | | if(userDepartments.size() != 0){ |
| | | Department byId = departmentService.getById(userDepartments.get(0).getDepartmentId()); |
| | | e.setDepartmentName(byId.getName()); |
| | | e.setDeptId(byId.getId()); |
| | | } |
| | | return e; |
| | | }).collect(Collectors.toList()); |
| | | return paperExcel; |
| | | } |
| | | |
| | | @Override |
| | | public List<PaperExcelVO> getRandomPaperExcelById(Integer id) { |
| | | List<PaperExcelVO> paperExcel = examPaperMapper.getRandomPaperExcelById(id); |
| | | // 如果某考生存在多个部门,每个部门都加一遍数据 |
| | | List<PaperExcelVO> needAdd = new ArrayList<>(); |
| | | List<PaperExcelVO> needRemove = new ArrayList<>(); |
| | | paperExcel = paperExcel.stream().map(e->{ |
| | | e.setPaperScore(ExamUtil.scoreToVM(Integer.parseInt(e.getPaperScore()))); |
| | | e.setUserScore(ExamUtil.scoreToVM(Integer.parseInt(e.getUserScore()))); |
| | | List<Department> userDepartments = userDepartmentMapper.selectDeptByUserId(Integer.parseInt(e.getUserId())); |
| | | for (Department dept : userDepartments) { |
| | | PaperExcelVO vo = new PaperExcelVO(); |
| | | BeanUtils.copyProperties(e, vo); |
| | | vo.setDepartmentName(dept.getName()); |
| | | vo.setDeptId(dept.getId()); |
| | | needAdd.add(vo); |
| | | needRemove.add(e); |
| | | } |
| | | return e; |
| | | }).collect(Collectors.toList()); |
| | | paperExcel.removeAll(needRemove); |
| | | paperExcel.addAll(needAdd); |
| | | return paperExcel.stream().filter(e -> Objects.nonNull(e.getDeptId())).collect(Collectors.toList()); |
| | | } |
| | | |
| | | private void examPaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, ExamPaper examPaper, List<ExamPaperTitleItemVM> titleItemsVM) { |
| | | // Integer gradeLevel = subjectService.levelBySubjectId(examPaperEditRequestVM.getSubjectId()); |
| | | Integer questionCount = titleItemsVM.stream() |