|
|
@@ -9,10 +9,17 @@ import com.xjrsoft.module.student.mapper.PbCseFeeobjupdateMapper;
|
|
|
import com.xjrsoft.module.student.service.IPbCseFeeobjupdateService;
|
|
|
import com.xjrsoft.module.student.vo.EnrollmentStatisticsInfoVo;
|
|
|
import com.xjrsoft.module.student.vo.FeeobjupdateXssfdetail;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @title:
|
|
|
@@ -26,6 +33,7 @@ public class PbCseFeeobjupdateServiceImpl extends MPJBaseServiceImpl<PbCseFeeobj
|
|
|
@Override
|
|
|
public EnrollmentStatisticsInfoVo getEnrollmentStatisticsInfo() {
|
|
|
EnrollmentStatisticsInfoVo result = new EnrollmentStatisticsInfoVo();
|
|
|
+
|
|
|
//获取所有学生的信息
|
|
|
LambdaQueryWrapper<PbCseFeeobjupdate> pbCseFeeobjupdateLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
pbCseFeeobjupdateLambdaQueryWrapper
|
|
|
@@ -33,17 +41,39 @@ public class PbCseFeeobjupdateServiceImpl extends MPJBaseServiceImpl<PbCseFeeobj
|
|
|
|
|
|
List<PbCseFeeobjupdate> pbCseFeeobjupdateList = this.list(pbCseFeeobjupdateLambdaQueryWrapper);
|
|
|
|
|
|
+ if(pbCseFeeobjupdateList != null && !pbCseFeeobjupdateList.isEmpty()){
|
|
|
+ Map<String, Long> professionalHeadCount = pbCseFeeobjupdateList.stream().collect(Collectors.groupingBy(PbCseFeeobjupdate::getSpecname, Collectors.counting()));
|
|
|
+ if(!professionalHeadCount.isEmpty()){
|
|
|
+ professionalHeadCount = professionalHeadCount.entrySet().stream()
|
|
|
+ .sorted(Map.Entry.<String, Long>comparingByValue().reversed())
|
|
|
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
|
|
|
+ (e1, e2) -> e1, LinkedHashMap::new));
|
|
|
+ }
|
|
|
+ Map<String, Long> studentSource = pbCseFeeobjupdateList.stream().collect(Collectors.groupingBy(PbCseFeeobjupdate::getResourcename, Collectors.counting()));
|
|
|
+ Map<String, Long> accommodationType = pbCseFeeobjupdateList.stream().collect(Collectors.groupingBy(PbCseFeeobjupdate::getQuartername, Collectors.counting()));
|
|
|
+ Map<String, Long> gender = pbCseFeeobjupdateList.stream().collect(Collectors.groupingBy(PbCseFeeobjupdate::getSex, Collectors.counting()));
|
|
|
+
|
|
|
+ result.setRegistrationPopulation(pbCseFeeobjupdateList.size());
|
|
|
+ result.setProfessionalHeadCount(professionalHeadCount);
|
|
|
+ result.setStudentSource(studentSource);
|
|
|
+ result.setAccommodationType(accommodationType);
|
|
|
+ result.setGender(gender);
|
|
|
+ }
|
|
|
+
|
|
|
//获取所有学生的收费明细
|
|
|
MPJLambdaWrapper<PbCseFeeobjupdate> feeobjupdateXssfdetailMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
feeobjupdateXssfdetailMPJLambdaWrapper
|
|
|
- .selectAs(PbVXssfdetail::getMny, FeeobjupdateXssfdetail::getMny)
|
|
|
- .selectAs(PbCseFeeobjupdate::getPersonalid, FeeobjupdateXssfdetail::getPersonalid)
|
|
|
+ .selectCount(PbVXssfdetail::getPersonalid, EnrollmentStatisticsInfoVo::getPayers)
|
|
|
+ .selectSum(PbVXssfdetail::getMny, EnrollmentStatisticsInfoVo::getRecordedAmountOfMoney)
|
|
|
.leftJoin(PbVXssfdetail.class, PbVXssfdetail::getPersonalid, PbCseFeeobjupdate::getPersonalid)
|
|
|
.eq(PbCseFeeobjupdate::getEnteryear, "2024")
|
|
|
;
|
|
|
- List<FeeobjupdateXssfdetail> feeobjupdateXssfdetailList = this.selectJoinList(FeeobjupdateXssfdetail.class, feeobjupdateXssfdetailMPJLambdaWrapper);
|
|
|
-
|
|
|
+ EnrollmentStatisticsInfoVo enrollmentStatisticsInfoVo = this.selectJoinOne(EnrollmentStatisticsInfoVo.class, feeobjupdateXssfdetailMPJLambdaWrapper);
|
|
|
|
|
|
+ if(enrollmentStatisticsInfoVo != null){
|
|
|
+ result.setPayers(enrollmentStatisticsInfoVo.getPayers());
|
|
|
+ result.setRecordedAmountOfMoney(enrollmentStatisticsInfoVo.getRecordedAmountOfMoney().setScale(2, RoundingMode.DOWN));
|
|
|
+ }
|
|
|
|
|
|
return result;
|
|
|
}
|