|
@@ -12,10 +12,12 @@ import com.keao.edu.user.dto.ExaminationBasicDto;
|
|
|
import com.keao.edu.user.entity.*;
|
|
|
import com.keao.edu.user.enums.ExamStatusEnum;
|
|
|
import com.keao.edu.user.page.ExaminationQueryInfo;
|
|
|
+import com.keao.edu.user.service.ExamOrganizationRelationService;
|
|
|
import com.keao.edu.user.service.ExaminationBasicService;
|
|
|
import com.keao.edu.user.service.OrganizationService;
|
|
|
import com.keao.edu.util.collection.MapUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.lang3.time.DateUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -31,6 +33,8 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
@Autowired
|
|
|
private ExaminationBasicDao examinationBasicDao;
|
|
|
@Autowired
|
|
|
+ private ExamOrganizationRelationService examOrganizationRelationService;
|
|
|
+ @Autowired
|
|
|
private ExamOrganizationRelationDao examOrganizationRelationDao;
|
|
|
@Autowired
|
|
|
private MusicTheoryDao musicTheoryDao;
|
|
@@ -49,6 +53,7 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public ExaminationBasic addExaminationBasic(ExaminationBasic examinationBasic) {
|
|
|
if (StringUtils.isBlank(examinationBasic.getName())) {
|
|
|
throw new BizException("请填写项目名称");
|
|
@@ -73,6 +78,10 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
}
|
|
|
|
|
|
examinationBasic.setTenantId(TenantContextHolder.getTenantId());
|
|
|
+ examinationBasic.setEnrollStartTime(DateUtils.setSeconds(examinationBasic.getEnrollStartTime(), 0));
|
|
|
+ examinationBasic.setEnrollEndTime(DateUtils.setSeconds(examinationBasic.getEnrollEndTime(), 0));
|
|
|
+ examinationBasic.setExpectExamStartTime(DateUtils.setSeconds(examinationBasic.getExpectExamStartTime(), 0));
|
|
|
+ examinationBasic.setExpectExamEndTime(DateUtils.setSeconds(examinationBasic.getExpectExamEndTime(), 0));
|
|
|
|
|
|
List<MusicTheory> musicTheories = musicTheoryDao.getWithTenant(Integer.valueOf(examinationBasic.getTenantId()));
|
|
|
if (CollectionUtils.isEmpty(musicTheories)) {
|
|
@@ -93,7 +102,6 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
}
|
|
|
|
|
|
examMusicTheoryDao.batchInsert(examMusicTheories);
|
|
|
-
|
|
|
return examinationBasic;
|
|
|
}
|
|
|
|
|
@@ -120,6 +128,25 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void updateExamBasicStatus(Long examId, ExamStatusEnum statusEnum) {
|
|
|
+ if(Objects.isNull(examId)){
|
|
|
+ throw new BizException("请指定考级项目");
|
|
|
+ }
|
|
|
+ ExaminationBasic existsExam = examinationBasicDao.get(examId);
|
|
|
+ if(Objects.isNull(existsExam)){
|
|
|
+ throw new BizException("考级项目不存在");
|
|
|
+ }
|
|
|
+ if(ExamStatusEnum.RESULT_CONFIRM.equals(existsExam.getStatus())){
|
|
|
+ throw new BizException("考级项目结果已确认");
|
|
|
+ }
|
|
|
+ if(ExamStatusEnum.SETTING.equals(existsExam.getStatus())&&ExamStatusEnum.NOT_START.equals(statusEnum)){
|
|
|
+ examOrganizationRelationService.addExamOrganizations(existsExam.getId(),existsExam.getOrganId().toString());
|
|
|
+ }
|
|
|
+ existsExam.setStatus(statusEnum);
|
|
|
+ examinationBasicDao.update(existsExam);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public PageInfo<ExaminationBasicDto> findExaminationBasics(ExaminationQueryInfo queryInfo) {
|
|
|
PageInfo<ExaminationBasicDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
@@ -169,10 +196,10 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
}
|
|
|
List<ExamOrganizationRelation> examOrganizationRelations = examOrganizationRelationDao.getWithExam(examId);
|
|
|
if (!CollectionUtils.isEmpty(examOrganizationRelations)) {
|
|
|
- long totalRegistrationStudentNum = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalRegistrationStudentNum).count();
|
|
|
- long totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).count();
|
|
|
- examinationBasic.setTotalRegistrationStudentNum((int) totalRegistrationStudentNum);
|
|
|
- examinationBasic.setTotalPaymentAmount(new BigDecimal(totalPaymentAmount));
|
|
|
+ Integer totalRegistrationStudentNum = examOrganizationRelations.stream().mapToInt(ExamOrganizationRelation::getTotalRegistrationStudentNum).sum();
|
|
|
+ BigDecimal totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ examinationBasic.setTotalRegistrationStudentNum(totalRegistrationStudentNum);
|
|
|
+ examinationBasic.setTotalPaymentAmount(totalPaymentAmount);
|
|
|
examinationBasic.setOrganNum(examOrganizationRelations.size());
|
|
|
}
|
|
|
if(Objects.nonNull(examinationBasic.getCreatorId())){
|
|
@@ -192,11 +219,17 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
if(Objects.isNull(existsExam)){
|
|
|
throw new BizException("考级项目不存在");
|
|
|
}
|
|
|
+ if(ExamStatusEnum.RESULT_CONFIRM.equals(existsExam.getStatus())){
|
|
|
+ throw new BizException("考级项目结果已确认");
|
|
|
+ }
|
|
|
+ if(ExamStatusEnum.CLOSE.equals(existsExam.getStatus())){
|
|
|
+ throw new BizException("考级项目已关闭");
|
|
|
+ }
|
|
|
return examinationBasicDao.update(examinationBasic);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void closeExam(Integer examId, String reason) {
|
|
|
+ public void closeExam(Integer organId, Integer examId, String reason) {
|
|
|
if (Objects.isNull(examId)) {
|
|
|
throw new BizException("请指定考级项目");
|
|
|
}
|
|
@@ -204,6 +237,9 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
if (Objects.isNull(examinationBasic)) {
|
|
|
throw new BizException("考级项目不存在");
|
|
|
}
|
|
|
+
|
|
|
+ List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
|
|
|
+
|
|
|
if (StringUtils.isBlank(reason)) {
|
|
|
reason = "后台手动关闭";
|
|
|
}
|