wangwei 7 vuotta sitten
vanhempi
commit
f0469bd1ab

+ 1 - 0
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/StudentCloudServiceProvider.java

@@ -118,6 +118,7 @@ public class StudentCloudServiceProvider extends ControllerSupport implements St
 		studentBean.setIdentityNumber(student.getIdentityNumber());
 		studentBean.setStudentCode(student.getStudentCode());
 		studentBean.setRootOrgId(student.getRootOrgId());
+		studentBean.setOrgId(org.getId());
 		studentBean.setOrgCode(org.getCode());
 		studentBean.setOrgName(org.getName());
 		studentBean.setPhoneNumber(student.getPhoneNumber());

+ 17 - 8
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/StudentServiceImpl.java

@@ -159,6 +159,9 @@ public class StudentServiceImpl implements StudentService {
 
 		String identityNumber = studentInfo.getIdentityNumber();
 		String studentCode = studentInfo.getStudentCode();
+		if (StringUtils.isBlank(studentCode)) {
+			studentCode = null;
+		}
 
 		List<Student> list = studentRepo.findAllByIdentityNumberAndRootOrgId(identityNumber,
 				rootOrgId);
@@ -166,9 +169,12 @@ public class StudentServiceImpl implements StudentService {
 			throw new StatusException("B-160007",
 					"已经存在不同考生的身份证号相同的数据. identityNumber: " + identityNumber);
 		}
-		list = studentRepo.findAllByStudentCodeAndRootOrgId(studentCode, rootOrgId);
-		if (1 < list.size()) {
-			throw new StatusException("B-160008", "已经存在不同考生的学号相同的数据. studentCode: " + studentCode);
+		if (StringUtils.isNotBlank(studentCode)) {
+			list = studentRepo.findAllByStudentCodeAndRootOrgId(studentCode, rootOrgId);
+			if (1 < list.size()) {
+				throw new StatusException("B-160008",
+						"已经存在不同考生的学号相同的数据. studentCode: " + studentCode);
+			}
 		}
 
 		Student studentByIdentity = studentRepo.findByIdentityNumberAndRootOrgId(identityNumber,
@@ -181,11 +187,14 @@ public class StudentServiceImpl implements StudentService {
 			}
 		}
 
-		Student studentByCode = studentRepo.findByStudentCodeAndRootOrgId(studentCode, rootOrgId);
-		if (null != studentByCode) {
-			String curIdentityNumber = studentByCode.getIdentityNumber();
-			if (!curIdentityNumber.equals(identityNumber)) {
-				throw new StatusException("B-160006", "studentCode is wrong");
+		if (StringUtils.isNotBlank(studentCode)) {
+			Student studentByCode = studentRepo.findByStudentCodeAndRootOrgId(studentCode,
+					rootOrgId);
+			if (null != studentByCode) {
+				String curIdentityNumber = studentByCode.getIdentityNumber();
+				if (!curIdentityNumber.equals(identityNumber)) {
+					throw new StatusException("B-160006", "studentCode is wrong");
+				}
 			}
 		}