瀏覽代碼

招生统计

大数据与最优化研究所 1 年之前
父節點
當前提交
2807ca0c89

+ 2 - 2
src/main/java/com/xjrsoft/module/student/controller/PbCseFeeobjupdateController.java

@@ -40,8 +40,8 @@ import java.util.List;
 * @Version 1.0
 */
 @RestController
-@RequestMapping("/asset" + "/pbCseFeeobjupdate")
-@Api(value = "/asset"  + "/pbCseFeeobjupdate",tags = "代码")
+@RequestMapping("/student" + "/pbCseFeeobjupdate")
+@Api(value = "/student"  + "/pbCseFeeobjupdate",tags = "攀宝学生信息")
 @AllArgsConstructor
 public class PbCseFeeobjupdateController {
 

+ 34 - 4
src/main/java/com/xjrsoft/module/student/service/impl/PbCseFeeobjupdateServiceImpl.java

@@ -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;
     }

+ 4 - 4
src/main/java/com/xjrsoft/module/student/vo/EnrollmentStatisticsInfoVo.java

@@ -27,20 +27,20 @@ public class EnrollmentStatisticsInfoVo {
      * 专业人数
      */
     @ApiModelProperty("专业人数")
-    private Map<String, Integer> professionalHeadCount;
+    private Map<String, Long> professionalHeadCount;
     /**
      * 学生来源
      */
     @ApiModelProperty("学生来源")
-    private Map<String, Integer> studentSource;
+    private Map<String, Long> studentSource;
     /**
      * 住宿类型
      */
     @ApiModelProperty("住宿类型")
-    private Map<String, Integer> accommodationType;
+    private Map<String, Long> accommodationType;
     /**
      * 性别
      */
     @ApiModelProperty("性别")
-    private Map<String, Integer> gender;
+    private Map<String, Long> gender;
 }