|
@@ -11,14 +11,17 @@ import com.keao.edu.common.page.PageInfo;
|
|
import com.keao.edu.common.service.impl.BaseServiceImpl;
|
|
import com.keao.edu.common.service.impl.BaseServiceImpl;
|
|
import com.keao.edu.common.tenant.TenantContextHolder;
|
|
import com.keao.edu.common.tenant.TenantContextHolder;
|
|
import com.keao.edu.user.api.entity.ExamRoom;
|
|
import com.keao.edu.user.api.entity.ExamRoom;
|
|
|
|
+import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
|
|
import com.keao.edu.user.api.enums.ExamModeEnum;
|
|
import com.keao.edu.user.api.enums.ExamModeEnum;
|
|
import com.keao.edu.user.dao.*;
|
|
import com.keao.edu.user.dao.*;
|
|
import com.keao.edu.user.dto.ExamRoomDto;
|
|
import com.keao.edu.user.dto.ExamRoomDto;
|
|
import com.keao.edu.user.dto.ExamRoomStatisticsDto;
|
|
import com.keao.edu.user.dto.ExamRoomStatisticsDto;
|
|
|
|
+import com.keao.edu.user.entity.ExamOrganizationRelation;
|
|
import com.keao.edu.user.entity.ExamRegistration;
|
|
import com.keao.edu.user.entity.ExamRegistration;
|
|
import com.keao.edu.user.entity.ExaminationBasic;
|
|
import com.keao.edu.user.entity.ExaminationBasic;
|
|
import com.keao.edu.user.page.ExamRoomQueryInfo;
|
|
import com.keao.edu.user.page.ExamRoomQueryInfo;
|
|
import com.keao.edu.user.service.ExamRoomService;
|
|
import com.keao.edu.user.service.ExamRoomService;
|
|
|
|
+import com.keao.edu.user.service.ExamTeacherSalaryService;
|
|
import com.keao.edu.user.service.OrganizationService;
|
|
import com.keao.edu.user.service.OrganizationService;
|
|
import com.keao.edu.util.collection.MapUtil;
|
|
import com.keao.edu.util.collection.MapUtil;
|
|
import com.keao.edu.util.date.DateUtil;
|
|
import com.keao.edu.util.date.DateUtil;
|
|
@@ -27,6 +30,7 @@ import org.apache.commons.lang.time.DateUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
@@ -47,6 +51,14 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
private ExaminationBasicDao examinationBasicDao;
|
|
private ExaminationBasicDao examinationBasicDao;
|
|
@Autowired
|
|
@Autowired
|
|
private SysUserDao sysUserDao;
|
|
private SysUserDao sysUserDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamTeacherSalaryService examTeacherSalaryService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamCertificationDao examCertificationDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private StudentExamResultDao studentExamResultDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamOrganizationRelationDao examOrganizationRelationDao;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public BaseDAO<Long, ExamRoom> getDAO() {
|
|
public BaseDAO<Long, ExamRoom> getDAO() {
|
|
@@ -100,6 +112,7 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
public void createExamRoom(ExamRoom examRoom) {
|
|
public void createExamRoom(ExamRoom examRoom) {
|
|
if(Objects.isNull(examRoom.getExaminationBasicId())){
|
|
if(Objects.isNull(examRoom.getExaminationBasicId())){
|
|
throw new BizException("请指定考级项目");
|
|
throw new BizException("请指定考级项目");
|
|
@@ -123,6 +136,12 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
if(StringUtils.isBlank(examRoom.getExamTimeJson())){
|
|
if(StringUtils.isBlank(examRoom.getExamTimeJson())){
|
|
throw new BizException("请指定考试时间");
|
|
throw new BizException("请指定考试时间");
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(examinationBasic.getId(), examRoom.getOrganId());
|
|
|
|
+ if(Objects.isNull(examOrganizationRelation)||examOrganizationRelation.getIsAllowArrangeExam()==0){
|
|
|
|
+ throw new BizException("无权操作");
|
|
|
|
+ }
|
|
|
|
+
|
|
examRoom.setTenantId(TenantContextHolder.getTenantId());
|
|
examRoom.setTenantId(TenantContextHolder.getTenantId());
|
|
examRoom.setExamPlanPushFlag(YesOrNoEnum.NO);
|
|
examRoom.setExamPlanPushFlag(YesOrNoEnum.NO);
|
|
examRoom.setExamRoomStudentNum(0);
|
|
examRoom.setExamRoomStudentNum(0);
|
|
@@ -191,6 +210,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
}
|
|
}
|
|
examRoomDao.batchInsert(examRooms);
|
|
examRoomDao.batchInsert(examRooms);
|
|
examinationBasicDao.update(examinationBasic);
|
|
examinationBasicDao.update(examinationBasic);
|
|
|
|
+
|
|
|
|
+ examTeacherSalaryService.teacherSalarySettlementWithExam(examinationBasic.getId());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -221,13 +242,27 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
public void deleteExamRooms(String examRoomIdsStr) {
|
|
public void deleteExamRooms(String examRoomIdsStr) {
|
|
if(StringUtils.isBlank(examRoomIdsStr)){
|
|
if(StringUtils.isBlank(examRoomIdsStr)){
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
List<Long> examRoomIds = Arrays.asList(examRoomIdsStr.split(",")).stream().map(e -> Long.valueOf(e)).collect(Collectors.toList());
|
|
List<Long> examRoomIds = Arrays.asList(examRoomIdsStr.split(",")).stream().map(e -> Long.valueOf(e)).collect(Collectors.toList());
|
|
- examRoomDao.batchDeleteExamRooms(examRoomIds);
|
|
|
|
|
|
+
|
|
|
|
+ ExamRoom examRoom = examRoomDao.get(examRoomIds.get(0));
|
|
|
|
+
|
|
|
|
+ List<ExamRoomStudentRelation> roomStudents = examRoomStudentRelationDao.findStudentsWithExamRooms(examRoomIds);
|
|
|
|
+ List<Long> registIds = roomStudents.stream().map(ExamRoomStudentRelation::getExamRegistrationId).collect(Collectors.toList());
|
|
|
|
+
|
|
examRoomStudentRelationDao.deleteWithExamRooms(examRoomIds);
|
|
examRoomStudentRelationDao.deleteWithExamRooms(examRoomIds);
|
|
|
|
+
|
|
|
|
+ examCertificationDao.deleteWithRegist(registIds);
|
|
|
|
+
|
|
|
|
+ studentExamResultDao.deleteWithRegists(registIds);
|
|
|
|
+
|
|
|
|
+ examTeacherSalaryService.teacherSalarySettlementWithExam(examRoom.getExaminationBasicId());
|
|
|
|
+
|
|
|
|
+ examRoomDao.batchDeleteExamRooms(examRoomIds);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -237,7 +272,6 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
if(withoutExamRoomStudentNum>0){
|
|
if(withoutExamRoomStudentNum>0){
|
|
throw new BizException("存在未安排教室的学员");
|
|
throw new BizException("存在未安排教室的学员");
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -270,6 +304,7 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
public void checkRoomTeachers(List<ExamRoom> examRooms) {
|
|
public void checkRoomTeachers(List<ExamRoom> examRooms) {
|
|
if(CollectionUtils.isEmpty(examRooms)){
|
|
if(CollectionUtils.isEmpty(examRooms)){
|
|
throw new BizException("考场信息异常");
|
|
throw new BizException("考场信息异常");
|