|
@@ -34,6 +34,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.util.LinkedList;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Controller("scanInfoController")
|
|
@Controller("scanInfoController")
|
|
@RequestMapping("/admin/exam/scan")
|
|
@RequestMapping("/admin/exam/scan")
|
|
@@ -197,8 +198,9 @@ public class ScanController extends BaseExamController {
|
|
public ModelAndView examSite(HttpServletRequest request, ExamStudentSearchQuery query) {
|
|
public ModelAndView examSite(HttpServletRequest request, ExamStudentSearchQuery query) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
List<ScanInfoVO> list = new LinkedList<ScanInfoVO>();
|
|
List<ScanInfoVO> list = new LinkedList<ScanInfoVO>();
|
|
|
|
+ List<String> result = studentService.findDistinctExamSite(examId);
|
|
|
|
+ result = result.stream().filter(s -> StringUtils.isNotBlank(s)).collect(Collectors.toList());
|
|
if (StringUtils.isBlank(query.getExamSite())) {
|
|
if (StringUtils.isBlank(query.getExamSite())) {
|
|
- List<String> result = studentService.findDistinctExamSite(examId);
|
|
|
|
List<?> examSiteList = PageUtil.startPage(result, query.getPageNumber(), query.getPageSize());
|
|
List<?> examSiteList = PageUtil.startPage(result, query.getPageNumber(), query.getPageSize());
|
|
for (Object e : examSiteList) {
|
|
for (Object e : examSiteList) {
|
|
ScanInfoVO vo = new ScanInfoVO();
|
|
ScanInfoVO vo = new ScanInfoVO();
|
|
@@ -226,10 +228,44 @@ public class ScanController extends BaseExamController {
|
|
}
|
|
}
|
|
|
|
|
|
ModelAndView view = new ModelAndView("modules/exam/scanInfo");
|
|
ModelAndView view = new ModelAndView("modules/exam/scanInfo");
|
|
- view.addObject("examSiteList", studentService.findDistinctExamSite(examId));
|
|
|
|
|
|
+ view.addObject("examSiteList", result);
|
|
view.addObject("infoList", list);
|
|
view.addObject("infoList", list);
|
|
view.addObject("query", query);
|
|
view.addObject("query", query);
|
|
view.addObject("type", "examSite");
|
|
view.addObject("type", "examSite");
|
|
return view;
|
|
return view;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Logging(menu = "扫描进度导出", type = LogType.EXPORT)
|
|
|
|
+ @RequestMapping(value = "/examSite/export", method = RequestMethod.POST)
|
|
|
|
+ public String examSiteExport(ExamStudentSearchQuery query, HttpServletRequest request,
|
|
|
|
+ HttpServletResponse response, RedirectAttributes redirectAttributes) {
|
|
|
|
+ int examId = getSessionExamId(request);
|
|
|
|
+ List<ScanInfoVO> list = new LinkedList<ScanInfoVO>();
|
|
|
|
+ List<String> result = studentService.findDistinctExamSite(examId);
|
|
|
|
+ result = result.stream().filter(s -> StringUtils.isNotBlank(s)).collect(Collectors.toList());
|
|
|
|
+ if (StringUtils.isBlank(query.getExamSite())) {
|
|
|
|
+ List<?> examSiteList = PageUtil.startPage(result, query.getPageNumber(), query.getPageSize());
|
|
|
|
+ for (Object e : examSiteList) {
|
|
|
|
+ ScanInfoVO vo = new ScanInfoVO();
|
|
|
|
+ String examSite = (String) e;
|
|
|
|
+ vo.setName(examSite);
|
|
|
|
+ vo.setTotalCount(studentService.countByExamIdAndExamSite(examId, examSite));
|
|
|
|
+ vo.setScanCount(studentService.countByExamIdAndExamSite(examId, examSite, true));
|
|
|
|
+ vo.setScanSheetCount(studentService.countSheetCountByExamIdAndExamSite(examId, examSite) / 2);
|
|
|
|
+ list.add(vo);
|
|
|
|
+ }
|
|
|
|
+ query.setTotalCount(result.size());
|
|
|
|
+ query.setTotalPage(PageUtil.pageCount(result, query.getPageNumber(), query.getPageSize()));
|
|
|
|
+ query.setCurrentCount(examSiteList.size());
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ String fileName = "扫描进度.xlsx";
|
|
|
|
+ new ExportExcel("扫描进度", ScanInfoVO.class).setDataList(list).write(response, fileName).dispose();
|
|
|
|
+ return null;
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ addMessage(redirectAttributes, "导出扫描进度失败!" + e.getMessage());
|
|
|
|
+ return "redirect:/admin/exam/scan/examSite";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|