|
@@ -1,8 +1,11 @@
|
|
package cn.com.qmth.stmms.admin.user;
|
|
package cn.com.qmth.stmms.admin.user;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.HashSet;
|
|
import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -22,7 +25,18 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
|
|
+import cn.com.qmth.stmms.admin.dto.MarkerDTO;
|
|
|
|
+import cn.com.qmth.stmms.admin.dto.SubjectUserDTO;
|
|
import cn.com.qmth.stmms.admin.exam.BaseExamController;
|
|
import cn.com.qmth.stmms.admin.exam.BaseExamController;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.SubjectUser;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.query.MarkerSearchQuery;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
|
|
import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
@@ -51,6 +65,18 @@ public class UserController extends BaseExamController {
|
|
@Autowired
|
|
@Autowired
|
|
private SubjectUserService subjectUserService;
|
|
private SubjectUserService subjectUserService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private MarkerService markerService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamSubjectService subjectService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private MarkGroupService groupService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamQuestionService questionService;
|
|
|
|
+
|
|
@Logging(menu = "查询用户", type = LogType.QUERY)
|
|
@Logging(menu = "查询用户", type = LogType.QUERY)
|
|
@RequestMapping("/list")
|
|
@RequestMapping("/list")
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@@ -188,21 +214,91 @@ public class UserController extends BaseExamController {
|
|
public String exportFile(UserSearchQuery query, HttpServletRequest request, HttpServletResponse response,
|
|
public String exportFile(UserSearchQuery query, HttpServletRequest request, HttpServletResponse response,
|
|
RedirectAttributes redirectAttributes) {
|
|
RedirectAttributes redirectAttributes) {
|
|
try {
|
|
try {
|
|
|
|
+ String fileName = "用户数据.xlsx";
|
|
User user = RequestUtils.getWebUser(request).getUser();
|
|
User user = RequestUtils.getWebUser(request).getUser();
|
|
query.setSchoolId(user.getSchoolId());
|
|
query.setSchoolId(user.getSchoolId());
|
|
query.setPageNumber(1);
|
|
query.setPageNumber(1);
|
|
query.setPageSize(Integer.MAX_VALUE);
|
|
query.setPageSize(Integer.MAX_VALUE);
|
|
|
|
+ int examId = getSessionExamId(request);
|
|
|
|
+ if (query.getRole() != null && query.getRole().equals(Role.MARKER)) {
|
|
|
|
+ Map<String, ExamSubject> subjectMap = new HashMap<String, ExamSubject>();
|
|
|
|
+ Map<String, MarkGroup> groupMap = new HashMap<String, MarkGroup>();
|
|
|
|
+ MarkerSearchQuery mQuery = new MarkerSearchQuery();
|
|
|
|
+ mQuery.setExamId(examId);
|
|
|
|
+ mQuery.setLoginName(query.getLoginName());
|
|
|
|
+ mQuery.setName(query.getName());
|
|
|
|
+ mQuery.setPageSize(Integer.MAX_VALUE);
|
|
|
|
+ mQuery = markerService.findByQuery(mQuery);
|
|
|
|
+ List<MarkerDTO> list = new ArrayList<MarkerDTO>();
|
|
|
|
+ for (Marker m : mQuery.getResult()) {
|
|
|
|
+ MarkerDTO s = new MarkerDTO();
|
|
|
|
+ ExamSubject subject = subjectMap.get(m.getSubjectCode());
|
|
|
|
+ if (subject == null) {
|
|
|
|
+ subject = subjectService.find(examId, m.getSubjectCode());
|
|
|
|
+ subjectMap.put(m.getSubjectCode(), subject);
|
|
|
|
+ }
|
|
|
|
+ s.setSubjectCode(m.getSubjectCode());
|
|
|
|
+ s.setSubjectName(subject.getName());
|
|
|
|
+ String groupKey = m.getSubjectCode() + "/t" + m.getGroupNumber();
|
|
|
|
+ MarkGroup group = groupMap.get(groupKey);
|
|
|
|
+ if (group == null) {
|
|
|
|
+ group = groupService.findOne(examId, m.getSubjectCode(), m.getGroupNumber());
|
|
|
|
+ group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
|
|
|
|
+ subject.getCode(), false, group.getNumber()));
|
|
|
|
+ groupMap.put(groupKey, group);
|
|
|
|
+ }
|
|
|
|
+ s.setGroupName(group.getTitle());
|
|
|
|
+ s.setGroupNumber(m.getGroupNumber());
|
|
|
|
+ s.setRole(Role.MARKER.getName());
|
|
|
|
+ s.setLoginName(userService.findById(m.getUserId()).getLoginName());
|
|
|
|
+ list.add(s);
|
|
|
|
+ }
|
|
|
|
+ new ExportExcel("评卷员数据", MarkerDTO.class).setDataList(list).write(response, fileName).dispose();
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ if (query.getRole() != null
|
|
|
|
+ && (query.getRole().equals(Role.SUBJECT_HEADER) || query.getRole().equals(Role.INSPECTOR))) {
|
|
|
|
+ List<SubjectUserDTO> list = new ArrayList<SubjectUserDTO>();
|
|
|
|
+ Map<String, ExamSubject> subjectMap = new HashMap<String, ExamSubject>();
|
|
|
|
+ query = userService.findByQuery(query);
|
|
|
|
+ for (User u : query.getResult()) {
|
|
|
|
+ List<SubjectUser> subjectUsers = subjectUserService.findByUserId(u.getId());
|
|
|
|
+ if (subjectUsers.isEmpty()) {
|
|
|
|
+ SubjectUserDTO s = new SubjectUserDTO();
|
|
|
|
+ s.setRole(query.getRole().getName());
|
|
|
|
+ s.setLoginName(user.getLoginName());
|
|
|
|
+ list.add(s);
|
|
|
|
+ } else {
|
|
|
|
+ for (SubjectUser subjectUser : subjectUsers) {
|
|
|
|
+ SubjectUserDTO s = new SubjectUserDTO();
|
|
|
|
+ s.setRole(query.getRole().getName());
|
|
|
|
+ s.setLoginName(u.getLoginName());
|
|
|
|
+ ExamSubject subject = subjectMap.get(subjectUser.getSubjectCode());
|
|
|
|
+ if (subject == null) {
|
|
|
|
+ subject = subjectService.find(examId, subjectUser.getSubjectCode());
|
|
|
|
+ subjectMap.put(subjectUser.getSubjectCode(), subject);
|
|
|
|
+ }
|
|
|
|
+ if (subject != null) {
|
|
|
|
+ s.setSubjectCode(subjectUser.getSubjectCode());
|
|
|
|
+ s.setSubjectName(subject.getName());
|
|
|
|
+ }
|
|
|
|
+ list.add(s);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ new ExportExcel("用户数据", SubjectUserDTO.class).setDataList(list).write(response, fileName).dispose();
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
query = userService.findByQuery(query);
|
|
query = userService.findByQuery(query);
|
|
for (User s : query.getResult()) {
|
|
for (User s : query.getResult()) {
|
|
s.setRoleName(s.getRole().getName());
|
|
s.setRoleName(s.getRole().getName());
|
|
}
|
|
}
|
|
- String fileName = "用户数据.xlsx";
|
|
|
|
new ExportExcel("用户数据", User.class).setDataList(query.getResult()).write(response, fileName).dispose();
|
|
new ExportExcel("用户数据", User.class).setDataList(query.getResult()).write(response, fileName).dispose();
|
|
return null;
|
|
return null;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- addMessage(redirectAttributes, "导出考生数据失败!" + e.getMessage());
|
|
|
|
|
|
+ addMessage(redirectAttributes, "导出用户数据失败!" + e.getMessage());
|
|
}
|
|
}
|
|
- return "redirect:/admin/exam/student";
|
|
|
|
|
|
+ return "redirect:/admin/user/list";
|
|
}
|
|
}
|
|
|
|
|
|
@Logging(menu = "用户启用/禁用", type = LogType.UPDATE)
|
|
@Logging(menu = "用户启用/禁用", type = LogType.UPDATE)
|