Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/hbtk' into hbtk

wangliang 5 gadi atpakaļ
vecāks
revīzija
72ee934bb2

+ 31 - 0
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java

@@ -24,8 +24,10 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.*;
+import java.lang.reflect.Field;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.Random;
 
 /**
@@ -161,6 +163,9 @@ public class DataUploadService {
                 if (student == null && !isAbsent) {
                     student = new Student(dto.getName(), dto.getExamNumber(), dto.getAreaName(), dto.getAreaCode(),
                             workId, dto.getExamRoom(), dto.getSourceName());
+                    if (!checkObjFieldIsNotNull(student)) {
+                        throw new RuntimeException("考生信息缺失");
+                    }
                     studentRepo.save(student);
                 } else if (student != null) {
                     if (isAbsent) {
@@ -186,6 +191,9 @@ public class DataUploadService {
                         student.setExamRoom(dto.getExamRoom());
                         student.setSourceName(dto.getSourceName());
                     }
+                    if (!checkObjFieldIsNotNull(student)) {
+                        throw new RuntimeException("考生信息缺失");
+                    }
                     studentRepo.save(student);
                 }
                 return null;
@@ -268,4 +276,27 @@ public class DataUploadService {
         }
         return random;
     }
+
+    /**
+     * 校验学生导入所有属性
+     *
+     * @param obj
+     * @return
+     */
+    private boolean checkObjFieldIsNotNull(Object obj) {
+        for (Field field : obj.getClass().getDeclaredFields()) {
+            if (Objects.equals("id", field.getName())) {
+                continue;
+            }
+            field.setAccessible(true);
+            try {
+                if (field.get(obj) == null) {
+                    return false;
+                }
+            } catch (IllegalAccessException e) {
+                return false;
+            }
+        }
+        return true;
+    }
 }

+ 1 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Work.java

@@ -29,6 +29,7 @@ public class Work implements Serializable{
 
     @OneToMany(cascade = CascadeType.ALL)
     @JoinColumn(name = "workId")
+    @OrderBy("code")
     private List<Level> levels = new ArrayList<>();
 
     @OneToMany(cascade = CascadeType.REMOVE)