| | |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.mindskip.xzs.base.BaseApiController; |
| | | import com.mindskip.xzs.base.RestResponse; |
| | | import com.mindskip.xzs.domain.ExamPaperAnswer; |
| | | import com.mindskip.xzs.domain.ExamTemplates; |
| | | import com.mindskip.xzs.domain.ExamTemplatesUserCount; |
| | | import com.mindskip.xzs.domain.User; |
| | | import com.mindskip.xzs.domain.*; |
| | | import com.mindskip.xzs.domain.vo.AnswerVO; |
| | | import com.mindskip.xzs.domain.vo.ExamTemplatesUserCountVO; |
| | | import com.mindskip.xzs.domain.vo.TeamplatesUserExcelVO; |
| | | import com.mindskip.xzs.domain.vo.UserCountExcelVO; |
| | | import com.mindskip.xzs.repository.ExamPaperAnswerMapper; |
| | | import com.mindskip.xzs.repository.ExamTemplatesMapper; |
| | | import com.mindskip.xzs.repository.ExamTemplatesUserMapper; |
| | | import com.mindskip.xzs.service.ExamPaperAnswerService; |
| | | import com.mindskip.xzs.service.ExamTemplatesUserCountService; |
| | | import com.mindskip.xzs.service.UserService; |
| | |
| | | import lombok.SneakyThrows; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.InputStream; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @RestController("AdminExamTemplatesUserCountController") |
| | |
| | | private final ExamTemplatesMapper examTemplatesMapper; |
| | | private final UserService userService; |
| | | private final ExamPaperAnswerService examPaperAnswerService; |
| | | private final ExamPaperAnswerMapper examPaperAnswerMapper; |
| | | private final ExamTemplatesUserMapper examTemplatesUserMapper; |
| | | |
| | | public ExamTemplatesUserCountController(ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesMapper examTemplatesMapper, UserService userService, ExamPaperAnswerService examPaperAnswerService) { |
| | | public ExamTemplatesUserCountController(ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesMapper examTemplatesMapper, UserService userService, ExamPaperAnswerService examPaperAnswerService, ExamPaperAnswerMapper examTemplatesUserCountMapper, ExamTemplatesUserMapper examTemplatesUserMapper) { |
| | | this.examTemplatesUserCountService = examTemplatesUserCountService; |
| | | this.examTemplatesMapper = examTemplatesMapper; |
| | | this.userService = userService; |
| | | this.examPaperAnswerService = examPaperAnswerService; |
| | | this.examPaperAnswerMapper = examTemplatesUserCountMapper; |
| | | this.examTemplatesUserMapper = examTemplatesUserMapper; |
| | | } |
| | | |
| | | @RequestMapping(value = "/list", method = RequestMethod.POST) |
| | |
| | | } |
| | | PageInfo<ExamTemplatesUserCountVO> info = examTemplatesUserCountService.list(model); |
| | | info.setList(info.getList().stream().map(e -> { |
| | | e.setName(examTemplatesMapper.getById(e.getId()).getName()); |
| | | e.setUserName(userService.getUserById(e.getUserId()).getRealName()); |
| | | ExamTemplates byId = examTemplatesMapper.getById(e.getId()); |
| | | if (Objects.nonNull(byId)) { |
| | | e.setName(byId.getName()); |
| | | } |
| | | User userById = userService.getUserById(e.getUserId()); |
| | | if (Objects.nonNull(userById)) { |
| | | e.setUserName(userById.getRealName()); |
| | | } |
| | | return e; |
| | | }).collect(Collectors.toList())); |
| | | return RestResponse.ok(info); |
| | |
| | | @SneakyThrows |
| | | public void exportTemplatesId(@PathVariable("id") Integer id, HttpServletResponse response, HttpServletRequest request) { |
| | | List<UserCountExcelVO> list = examTemplatesUserCountService.getByExamTemplates(id); |
| | | // response.setContentType("application/vnd.ms-excel"); |
| | | // response.setCharacterEncoding("UTF-8"); |
| | | // |
| | | // String fileName = URLEncoder.encode("1","UTF-8"); |
| | | // response.setHeader("Content-disposition","attachment;filename=" + fileName + ".xlsx"); |
| | | // |
| | | // ServletOutputStream outputStream = response.getOutputStream(); |
| | | // InputStream resourceAsStream = Application.class.getClassLoader().getResourceAsStream("count.xlsx"); |
| | | // EasyExcel.write(outputStream) |
| | | // .withTemplate(resourceAsStream) |
| | | // .sheet() |
| | | // .doFill(list); |
| | | ExcelUtils.export(response,"个人练习",list,UserCountExcelVO.class); |
| | | } |
| | | |
| | | @RequestMapping(value = "/exportRandownTemplatesId/{id}", method = RequestMethod.GET) |
| | | @SneakyThrows |
| | | public void exportRandownTemplatesId(@PathVariable("id") Integer id, HttpServletResponse response, HttpServletRequest request) { |
| | | // 查出试卷模板 |
| | | ExamTemplates byId = examTemplatesMapper.getById(id); |
| | | // 查出该模板的参考人数据 |
| | | List<ExamTemplatesUser> byId1 = examTemplatesUserMapper.getById(id); |
| | | // 查出这张试卷的参考记录 |
| | | List<ExamTemplatesUserCount> byTemplates = examTemplatesUserCountService.getByTemplates(id); |
| | | // 获取每个人的试卷ID |
| | | List<Integer> list = byTemplates.stream().map(ExamTemplatesUserCount::getExamPaperId).collect(Collectors.toList()); |
| | | // 获取参考用户ID |
| | | List<Integer> userIds = byId1.stream().map(e->Integer.parseInt(e.getUserId())).collect(Collectors.toList()); |
| | | // 答卷 |
| | | List<ExamPaperAnswer> result = new ArrayList<>(); |
| | | |
| | | // 获取考试答卷 |
| | | if(list.size()!=0){ |
| | | result = examPaperAnswerMapper.getResult(list); |
| | | } |
| | | |
| | | //用户 |
| | | List<User> users = userService.selectByIds(userIds); |
| | | |
| | | List<TeamplatesUserExcelVO> list1 = new ArrayList<>(); |
| | | |
| | | for (User user : users) { |
| | | TeamplatesUserExcelVO vo = new TeamplatesUserExcelVO(); |
| | | vo.setName(byId.getName()); |
| | | vo.setUserName(user.getRealName()); |
| | | Boolean str = false; |
| | | for (ExamPaperAnswer answer: result) { |
| | | if(user.getId().equals(answer.getCreateUser())){ |
| | | str = true; |
| | | vo.setUserScore(answer.getUserScore() == 0 ? "0" : String.valueOf(answer.getUserScore() / 10)); |
| | | vo.setPaperScore(answer.getPaperScore() == 0 ? "0" : String.valueOf(answer.getPaperScore() / 10)); |
| | | vo.setDoTime(answer.getDoTime().toString()); |
| | | list1.add(vo); |
| | | continue; |
| | | } |
| | | } |
| | | if(!str){ |
| | | list1.add(vo); |
| | | } |
| | | str = false; |
| | | |
| | | } |
| | | ExcelUtils.export(response,"个人练习",list1, TeamplatesUserExcelVO.class); |
| | | } |
| | | |
| | | @RequestMapping(value = "/timeOne", method = RequestMethod.GET) |
| | | @SneakyThrows |
| | | public void time( HttpServletResponse response, HttpServletRequest request) { |
| | | List<TeamplatesUserExcelVO> list = examPaperAnswerMapper.getByTimeOne(); |
| | | ExcelUtils.export(response,"个人练习",list,TeamplatesUserExcelVO.class); |
| | | } |
| | | |
| | | |
| | | |
| | | } |