|
@@ -13,7 +13,9 @@ import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
|
import cn.com.qmth.stmms.common.enums.LogType;
|
|
|
+import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
+
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -21,9 +23,13 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+
|
|
|
import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -63,11 +69,14 @@ public class ScanController extends BaseExamController {
|
|
|
query = subjectService.findByQuery(query);
|
|
|
for (ExamSubject subject : query.getResult()) {
|
|
|
ScanInfoVO vo = new ScanInfoVO();
|
|
|
- vo.setName(subject.getCode() + "-" + subject.getName() + (StringUtils.isNotBlank(subject.getRemark()) ?
|
|
|
- ("-" + StringUtils.trimToEmpty(subject.getRemark())) :
|
|
|
- ""));
|
|
|
+ vo.setName(subject.getCode()
|
|
|
+ + "-"
|
|
|
+ + subject.getName()
|
|
|
+ + (StringUtils.isNotBlank(subject.getRemark()) ? ("-" + StringUtils.trimToEmpty(subject.getRemark()))
|
|
|
+ : ""));
|
|
|
vo.setTotalCount(studentService.countByExamIdAndSubjectCode(examId, subject.getCode()));
|
|
|
vo.setScanCount(studentService.countByExamIdAndSubjectCode(examId, subject.getCode(), true));
|
|
|
+ vo.setScanSheetCount(studentService.countSheetCountByExamIdAndSubjectCode(examId, subject.getCode()));
|
|
|
list.add(vo);
|
|
|
}
|
|
|
|
|
@@ -144,4 +153,37 @@ public class ScanController extends BaseExamController {
|
|
|
view.addObject("fileServer", fileService.getFileServer());
|
|
|
return view;
|
|
|
}
|
|
|
+
|
|
|
+ @Logging(menu = "扫描进度导出", type = LogType.EXPORT)
|
|
|
+ @RequestMapping(value = "/export", method = RequestMethod.POST)
|
|
|
+ public String export(ExamSubjectSearchQuery query, HttpServletRequest request, HttpServletResponse response,
|
|
|
+ RedirectAttributes redirectAttributes) {
|
|
|
+ int examId = getSessionExamId(request);
|
|
|
+ List<ScanInfoVO> list = new LinkedList<ScanInfoVO>();
|
|
|
+ query.setExamId(examId);
|
|
|
+ query.setPageNumber(1);
|
|
|
+ query.setPageSize(Integer.MAX_VALUE);
|
|
|
+ query = subjectService.findByQuery(query);
|
|
|
+ for (ExamSubject subject : query.getResult()) {
|
|
|
+ ScanInfoVO vo = new ScanInfoVO();
|
|
|
+ vo.setName(subject.getCode()
|
|
|
+ + "-"
|
|
|
+ + subject.getName()
|
|
|
+ + (StringUtils.isNotBlank(subject.getRemark()) ? ("-" + StringUtils.trimToEmpty(subject.getRemark()))
|
|
|
+ : ""));
|
|
|
+ vo.setTotalCount(studentService.countByExamIdAndSubjectCode(examId, subject.getCode()));
|
|
|
+ vo.setScanCount(studentService.countByExamIdAndSubjectCode(examId, subject.getCode(), true));
|
|
|
+ vo.setScanSheetCount(studentService.countSheetCountByExamIdAndSubjectCode(examId, subject.getCode()));
|
|
|
+ list.add(vo);
|
|
|
+ }
|
|
|
+ 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/subject";
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|