Browse Source

Merge branch 'dev_1.5.1' of http://git.qmth.com.cn/luoshi/stmms-ft.git into dev_1.5.1

xiatian 10 months ago
parent
commit
2f00a033da

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

@@ -81,6 +81,8 @@ public interface ExamStudentService {
 
     void updateManualAbsent(int examId, String examNumber, boolean manualAbsent);
 
+    void updateManualAbsent(int examId, List<String> examNumberIn, boolean manualAbsent);
+
     void clearManualAbsent(int examId);
 
     void updateException(int id, boolean exception);

+ 14 - 7
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamStudentController.java

@@ -39,6 +39,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 
 import java.text.DecimalFormat;
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -533,14 +534,20 @@ public class ExamStudentController extends BaseApiController {
         }
         studentService.clearManualAbsent(examId);
         if (datas != null && datas.length > 0) {
+            List<String> examNumberIn = new ArrayList<>();
             for (MenualAbsentDTO dto : datas) {
-                ExamStudent student = studentService.findByExamIdAndExamNumber(examId, dto.getExamNumber());
-                if (student != null) {
-                    studentService.updateManualAbsent(examId, student.getExamNumber(), true);
-                    JSONObject obj = new JSONObject();
-                    obj.accumulate("examNumber", student.getExamNumber());
-                    array.add(obj);
-                }
+                examNumberIn.add(dto.getExamNumber());
+            }
+            ExamStudentSearchQuery query  =new ExamStudentSearchQuery();
+            query.setExamId(examId);
+            query.setExamNumberIn(StringUtils.join(examNumberIn, ","));
+            query.setPageSize(Integer.MAX_VALUE);
+            query = studentService.findByQuery(query);
+            studentService.updateManualAbsent(examId, examNumberIn, true);
+            for (ExamStudent student :query.getResult()){
+                JSONObject obj = new JSONObject();
+                obj.accumulate("examNumber", student.getExamNumber());
+                array.add(obj);
             }
         }
         return array;