|
@@ -13,6 +13,7 @@ import com.keao.edu.thirdparty.message.provider.YimeiSmsPlugin;
|
|
|
import com.keao.edu.user.api.enums.ExamModeEnum;
|
|
|
import com.keao.edu.user.dao.*;
|
|
|
import com.keao.edu.user.dto.ExamRoomExamTimeDto;
|
|
|
+import com.keao.edu.user.dto.ExamStatisticsDto;
|
|
|
import com.keao.edu.user.dto.ExaminationBasicDto;
|
|
|
import com.keao.edu.user.entity.*;
|
|
|
import com.keao.edu.user.enums.ExamStatusEnum;
|
|
@@ -447,6 +448,41 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public Map<String, Object> getHomePageExams(Integer organId) {
|
|
|
+ Map<String, Object> result=new HashMap<>();
|
|
|
+ List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
|
|
|
+ List<ExaminationBasicDto> dataList = examinationBasicDao.getUnderwayExams(childOrganIds);
|
|
|
+ if(CollectionUtils.isEmpty(dataList)){
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> examIds = dataList.stream().map(ExaminationBasicDto::getId).collect(Collectors.toList());
|
|
|
+ List<ExamOrganizationRelation> examOrgans = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(examIds)) {
|
|
|
+ examOrgans = examOrganizationRelationDao.getWithExamsAndOrgans(examIds, childOrganIds);
|
|
|
+ }
|
|
|
+ Map<Integer, List<ExamOrganizationRelation>> examOrgansMap = new HashMap<>();
|
|
|
+ if (!CollectionUtils.isEmpty(examOrgans)) {
|
|
|
+ examOrgansMap = examOrgans.stream().collect(Collectors.groupingBy(ExamOrganizationRelation::getExaminationBasicId));
|
|
|
+ }
|
|
|
+ for (ExaminationBasicDto examinationBasicDto : dataList) {
|
|
|
+ List<ExamOrganizationRelation> examOrganizationRelations = examOrgansMap.get(examinationBasicDto.getId().intValue());
|
|
|
+ if (CollectionUtils.isEmpty(examOrganizationRelations)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Integer totalRegistrationStudentNum = examOrganizationRelations.stream().mapToInt(ExamOrganizationRelation::getSelfRegistrationStudentNum).sum();
|
|
|
+ BigDecimal totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getSelfPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ examinationBasicDto.setTotalRegistrationStudentNum(totalRegistrationStudentNum);
|
|
|
+ examinationBasicDto.setTotalPaymentAmount(totalPaymentAmount);
|
|
|
+ }
|
|
|
+ result.put("exams", dataList);
|
|
|
+ ExamStatisticsDto tenantExamStatistics = examinationBasicDao.getTenantExamStatistics(childOrganIds);
|
|
|
+ result.put("statistics", tenantExamStatistics);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
public Object homeBalanceOfPayment(String tenantId,Integer day) {
|
|
|
SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
BigDecimal annualIncome = examRegistrationPaymentDao.getAnnualIncome(tenantId);
|