1
0
Quellcode durchsuchen

修复导入复核问题

ting.yin vor 3 Jahren
Ursprung
Commit
d4745eb200

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamStudentDao.java

@@ -193,6 +193,6 @@ public interface ExamStudentDao extends PagingAndSortingRepository<ExamStudent,
     public void updateSubjectiveStatusAndTimeAndInspectorId(Integer studentId, SubjectiveStatus status,
             Date inspectTime, Integer inspectorId);
 
-    public List<ExamStudent> findByExamIdAndStudentCode(int examId, String studentCode);
+    public List<ExamStudent> findByExamIdAndStudentCodeAndSubjectCode(int examId, String studentCode, String subjectCode);
 
 }

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -143,7 +143,7 @@ public interface ExamStudentService {
     public void updateSubjectiveStatusAndTimeAndInspectorId(Integer studentId, SubjectiveStatus status,
             Date inspectTime, Integer inspectorId);
 
-    public List<ExamStudent> findByExamIdAndStudentCode(int examId, String studentCode);
+    public List<ExamStudent> findByExamIdAndStudentCodeAndSubjectCode(int examId, String studentCode, String subjectCode);
 
     long countByExamIdAndSubjectCodeAndStatus(int examId, String subjectCode, SubjectiveStatus status);
 

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -1030,8 +1030,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     }
 
     @Override
-    public List<ExamStudent> findByExamIdAndStudentCode(int examId, String studentCode) {
-        return studentDao.findByExamIdAndStudentCode(examId, studentCode);
+    public List<ExamStudent> findByExamIdAndStudentCodeAndSubjectCode(int examId, String studentCode, String subjectCode) {
+        return studentDao.findByExamIdAndStudentCodeAndSubjectCode(examId, studentCode, subjectCode);
     }
 
     @Override

+ 12 - 8
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ImportQueryController.java

@@ -80,6 +80,8 @@ public class ImportQueryController extends BaseExamController {
     @Autowired
     private ExamService examService;
 
+    public static final String DB_ITEM_JOINER = ":";
+
     @RequestMapping("/list")
     public String list(Model model, HttpServletRequest request, ExamStudentSearchQuery query) {
         int examId = getSessionExamId(request);
@@ -145,18 +147,18 @@ public class ImportQueryController extends BaseExamController {
                 return "redirect:/admin/exam/inspected";
             }
             for (InspectedStudentVO studentVO : list) {
-                if (StringUtils.isBlank(studentVO.getStudentCode())) {
+                if (StringUtils.isBlank(studentVO.getStudentCode()) || StringUtils.isBlank(studentVO.getSubjectCode())) {
                     continue;
                 }
-                List<ExamStudent> studentList = studentService.findByExamIdAndStudentCode(examId,
-                        studentVO.getStudentCode());
+                List<ExamStudent> studentList = studentService.findByExamIdAndStudentCodeAndSubjectCode(examId,
+                        studentVO.getStudentCode(), studentVO.getSubjectCode());
                 if (!studentList.isEmpty()) {
                     for (ExamStudent examStudent : studentList) {
                         successStudent.add(examStudent.getId());
                     }
                     successNum++;
                 } else {
-                    failureStudent.add(studentVO.getStudentCode());
+                    failureStudent.add(studentVO.getSubjectCode() + DB_ITEM_JOINER + studentVO.getStudentCode());
                     failureNum++;
                 }
             }
@@ -197,7 +199,8 @@ public class ImportQueryController extends BaseExamController {
             ImportQuery importQuery = queryService.findByExamIdAndUserIdAndType(examId, wu.getId(),
                     ImportType.INSPECTED);
             for (String studentCode : importQuery.getStudentCodeList()) {
-                list.add(new InspectedStudentVO(studentCode));
+                String[] s = studentCode.split(DB_ITEM_JOINER);
+                list.add(new InspectedStudentVO(s[0], s[1]));
             }
             new ExportExcel("错误信息", InspectedStudentVO.class, 2).setDataList(list).write(response, fileName).dispose();
             return null;
@@ -213,6 +216,7 @@ public class ImportQueryController extends BaseExamController {
         int examId = getSessionExamId(request);
         WebUser wu = RequestUtils.getWebUser(request);
         ImportQuery importQuery = queryService.findByExamIdAndUserIdAndType(examId, wu.getId(), ImportType.INSPECTED);
+        int inspectCount = importQuery.getStudentCodeList().size() > 0 ? 0 : importQuery.getStudentIdList().size();
         List<Integer> studentIds = importQuery.getStudentIdList();
         List<Integer> tagIds = importQuery.getTagIdList();
         if (studentId != null) {
@@ -222,11 +226,11 @@ public class ImportQueryController extends BaseExamController {
         JSONObject setting = new JSONObject();
         Exam exam = examService.findById(examId);
         setting.accumulate("examType", exam.getType());
-        setting.accumulate("inspectCount", studentIds.size());
+        setting.accumulate("inspectCount", inspectCount);
         setting.accumulate("fileServer", fileService.getFileServer());
-        setting.accumulate("studentIds", studentIds);
+        setting.accumulate("studentIds", inspectCount > 0 ? studentIds : new ArrayList<Integer>());
         setting.accumulate("tagIds", tagIds);
-        setting.accumulate("message", studentIds.size() > 0 ? "" : "没有待复核的任务");
+        setting.accumulate("message", inspectCount > 0 ? "" : "没有待复核的任务");
         return setting;
     }
 

+ 14 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/vo/InspectedStudentVO.java

@@ -4,10 +4,14 @@ import cn.com.qmth.stmms.common.annotation.ExcelField;
 
 public class InspectedStudentVO {
 
-    @ExcelField(title = "学号", align = 2, sort = 10)
+    @ExcelField(title = "科目代码", align = 2, sort = 10)
+    private String subjectCode;
+
+    @ExcelField(title = "学号", align = 2, sort = 20)
     private String studentCode;
 
-    public InspectedStudentVO(String studentCode) {
+    public InspectedStudentVO(String subjectCode, String studentCode) {
+        this.subjectCode = subjectCode;
         this.studentCode = studentCode;
     }
 
@@ -22,4 +26,12 @@ public class InspectedStudentVO {
         this.studentCode = studentCode;
     }
 
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
 }