|
|
@@ -8,9 +8,11 @@ import com.xjrsoft.module.student.dto.EnrollmentStatisticsGraduationInfoDto;
|
|
|
import com.xjrsoft.module.student.entity.*;
|
|
|
import com.xjrsoft.module.student.mapper.PbCseFeeobjupdateMapper;
|
|
|
import com.xjrsoft.module.student.service.IPbCseFeeobjupdateService;
|
|
|
+import com.xjrsoft.module.student.service.IPbCseSpecplanService;
|
|
|
import com.xjrsoft.module.student.vo.*;
|
|
|
import com.xjrsoft.module.student.dto.EnrollmentStatisticsInfoDto;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.RoundingMode;
|
|
|
@@ -32,6 +34,10 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
|
public class PbCseFeeobjupdateServiceImpl extends MPJBaseServiceImpl<PbCseFeeobjupdateMapper, PbCseFeeobjupdate> implements IPbCseFeeobjupdateService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private final IPbCseSpecplanService pbCseSpecplanService;
|
|
|
+
|
|
|
@Override
|
|
|
public EnrollmentStatisticsInfoVo getEnrollmentStatisticsInfo(EnrollmentStatisticsInfoDto dto) {
|
|
|
EnrollmentStatisticsInfoVo result = new EnrollmentStatisticsInfoVo();
|
|
|
@@ -61,9 +67,33 @@ public class PbCseFeeobjupdateServiceImpl extends MPJBaseServiceImpl<PbCseFeeobj
|
|
|
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
|
|
|
(e1, e2) -> e1, LinkedHashMap::new));
|
|
|
}
|
|
|
- List<EnrollmentStatisticsInfoKeyValue> professionalHeadCountRes = new ArrayList<>();
|
|
|
+
|
|
|
+ //专业计划人数,余数
|
|
|
+ MPJLambdaWrapper<PbCseSpecplan> pbCseSpecplanMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ pbCseSpecplanMPJLambdaWrapper
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .distinct()
|
|
|
+ .select("ifnull(t2.name,t.specname) as kkey")
|
|
|
+ .selectAs(PbCseSpecplan::getNum, EnrollmentStatisticsInfoKeyValue::getValue)
|
|
|
+ .leftJoin(BaseMajorSet.class, BaseMajorSet::getName, PbCseSpecplan::getSpecname)
|
|
|
+ .leftJoin(BaseMajorCategor.class, BaseMajorCategor::getId, BaseMajorSet::getMajorCategorId)
|
|
|
+ .eq(dto.getYear() != null, PbCseSpecplan::getXyear, dto.getYear())
|
|
|
+ ;
|
|
|
+
|
|
|
+ List<EnrollmentStatisticsInfoKeyValue> pbCseSpecplanList = pbCseSpecplanService.selectJoinList(EnrollmentStatisticsInfoKeyValue.class, pbCseSpecplanMPJLambdaWrapper);
|
|
|
+
|
|
|
+ Map<String, Long> pbCseSpecplanSumMap = pbCseSpecplanList.stream().collect(Collectors.groupingBy(EnrollmentStatisticsInfoKeyValue::getKkey, Collectors.summingLong(EnrollmentStatisticsInfoKeyValue::getValue)));
|
|
|
+
|
|
|
+ List<ProfessionalHeadCoun> professionalHeadCountRes = new ArrayList<>();
|
|
|
for (Map.Entry<String, Long> entry : professionalHeadCount.entrySet()) {
|
|
|
- professionalHeadCountRes.add(new EnrollmentStatisticsInfoKeyValue(entry.getKey(), entry.getValue()));
|
|
|
+ professionalHeadCountRes.add(new ProfessionalHeadCoun(){{
|
|
|
+ setKey(entry.getKey());
|
|
|
+ setValue(entry.getValue());
|
|
|
+ if(pbCseSpecplanSumMap.get(entry.getKey()) != null){
|
|
|
+ setPlannedNumber(pbCseSpecplanSumMap.get(entry.getKey()));
|
|
|
+ setRemainder(pbCseSpecplanSumMap.get(entry.getKey()) - entry.getValue());
|
|
|
+ }
|
|
|
+ }});
|
|
|
}
|
|
|
|
|
|
//学生类型
|
|
|
@@ -96,13 +126,23 @@ public class PbCseFeeobjupdateServiceImpl extends MPJBaseServiceImpl<PbCseFeeobj
|
|
|
//获取所有学生的收费明细
|
|
|
MPJLambdaWrapper<PbCseFeeobjupdate> feeobjupdateXssfdetailMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
feeobjupdateXssfdetailMPJLambdaWrapper
|
|
|
- .selectCount(PbVXssfdetail::getPersonalid, EnrollmentStatisticsInfoVo::getPayers)
|
|
|
+ .select("count(distinct t1.personalid) as payers")
|
|
|
.selectSum(PbVXssfdetail::getMny, EnrollmentStatisticsInfoVo::getRecordedAmountOfMoney)
|
|
|
.leftJoin(PbVXssfdetail.class, PbVXssfdetail::getPersonalid, PbCseFeeobjupdate::getPersonalid)
|
|
|
.eq(dto.getYear() != null, PbCseFeeobjupdate::getEnteryear, dto.getYear())
|
|
|
;
|
|
|
EnrollmentStatisticsInfoVo enrollmentStatisticsInfoVo = this.selectJoinOne(EnrollmentStatisticsInfoVo.class, feeobjupdateXssfdetailMPJLambdaWrapper);
|
|
|
|
|
|
+ //退费金额
|
|
|
+// MPJLambdaWrapper<PbCseFeeobjupdate> feeobjupdateXssfdetailMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+// feeobjupdateXssfdetailMPJLambdaWrapper
|
|
|
+// .selectCount(PbVXssfdetail::getPersonalid, EnrollmentStatisticsInfoVo::getPayers)
|
|
|
+// .selectSum(PbVXssfdetail::getMny, EnrollmentStatisticsInfoVo::getRecordedAmountOfMoney)
|
|
|
+// .leftJoin(PbVXssfdetail.class, PbVXssfdetail::getPersonalid, PbCseFeeobjupdate::getPersonalid)
|
|
|
+// .eq(dto.getYear() != null, PbCseFeeobjupdate::getEnteryear, dto.getYear())
|
|
|
+// ;
|
|
|
+// EnrollmentStatisticsInfoVo enrollmentStatisticsInfoVo = this.selectJoinOne(EnrollmentStatisticsInfoVo.class, feeobjupdateXssfdetailMPJLambdaWrapper);
|
|
|
+
|
|
|
//缴费人数,入账金额
|
|
|
if(enrollmentStatisticsInfoVo != null){
|
|
|
result.setPayers(enrollmentStatisticsInfoVo.getPayers());
|