فهرست منبع

统计模块接口

小么熊🐻 2 سال پیش
والد
کامیت
e844c0eb86

+ 47 - 15
jsjp-admin/src/main/java/com/miaxis/app/controller/tms/TmsStudentInfoController.java

@@ -5,6 +5,7 @@ import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.order.vo.QuerySchoolOrderListVo;
 import com.miaxis.tms.dto.*;
 import com.miaxis.tms.service.ITmsStudentInfoService;
 import com.miaxis.tms.vo.*;
@@ -18,7 +19,9 @@ import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -119,34 +122,63 @@ public class TmsStudentInfoController extends BaseController {
 
 
 
+
     /**
-     * 根据驾校ID查询当日报名情况
+     * 根据驾校ID 报名统计
      */
-    @GetMapping("/getDayStuCountBySchoolId")
-    @ApiOperation("根据ID获取学员员详细信息")
-    public Response<TmsBmCountVo> getDayStuCountBySchoolId(TmsBmDayDTO bmDayDTO) {
-        return Response.success(studentInfoService.getDayStuCountBySchoolId(bmDayDTO));
+    @GetMapping("/getStatisticsStuCountBySchoolId")
+    @ApiOperation("根据驾校ID 报名统计")
+    public Response<TmsBmVo> getStatisticsStuCountBySchoolId(TmsBmDTO bmDTO) {
+        return Response.success(studentInfoService.getStatisticsStuCountBySchoolId(bmDTO));
     }
 
 
     /**
-     * 根据驾校ID查询当月报名情况
+     * 根据驾校ID查询学员每日报名数
      */
-    @GetMapping("/getMonthStuCountBySchoolId")
-    @ApiOperation("根据驾校ID查询当月报名情况")
-    public Response<TmsBmCountVo> getMonthStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO) {
-        return Response.success(studentInfoService.getMonthStuCountBySchoolId(bmMonthDTO));
+    @GetMapping("/getEveryDayStuCountBySchoolId")
+    @ApiOperation("根据驾校ID查询学员每日报名数")
+    public ResponsePageInfo getEveryDayStuCountBySchoolId(@ModelAttribute TmsBmDayListDTO dayListDTO) {
+        List<TmsBmCountVo> list = studentInfoService.getEveryDayStuCountBySchoolId(dayListDTO);
+        ResponsePageInfo<TmsBmCountVo> reusltList = toResponsePageInfo(list);
+        Map<String,Integer> map = new HashMap<String,Integer>();
+        int total = list.stream().mapToInt(TmsBmCountVo::getStuCount).sum();
+        map.put("total",total);
+        reusltList.setData(map);
+        return reusltList;
     }
 
     /**
-     * 根据驾校ID查询当年报名情况
+     * 根据驾校ID查询学员每月报名数
      */
-    @GetMapping("/getYearStuCountBySchoolId")
-    @ApiOperation("根据驾校ID查询当年报名情况")
-    public Response<TmsBmCountVo> getYearStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO) {
-        return Response.success(studentInfoService.getYearStuCountBySchoolId(bmMonthDTO));
+    @GetMapping("/getEveryMonthStuCountBySchoolId")
+    @ApiOperation("根据驾校ID查询学员每月报名数")
+    public ResponsePageInfo getEveryMonthStuCountBySchoolId(@ModelAttribute TmsBmMonthListDTO monthListDTO) {
+        List<TmsBmCountVo> list = studentInfoService.getEveryMonthStuCountBySchoolId(monthListDTO);
+        ResponsePageInfo<TmsBmCountVo> reusltList = toResponsePageInfo(list);
+        Map<String,Integer> map = new HashMap<String,Integer>();
+        int total = list.stream().mapToInt(TmsBmCountVo::getStuCount).sum();
+        map.put("total",total);
+        reusltList.setData(map);
+        return reusltList;
     }
 
+    /**
+     * 根据驾校ID查询学员每年报名数
+     */
+    @GetMapping("/getEveryYearStuCountBySchoolId")
+    @ApiOperation("根据驾校ID查询学员每年报名数")
+    public ResponsePageInfo getEveryYearStuCountBySchoolId(@ModelAttribute TmsBmYearListDTO yearListDTO) {
+        List<TmsBmCountVo> list = studentInfoService.getEveryYearStuCountBySchoolId(yearListDTO);
+        ResponsePageInfo<TmsBmCountVo> reusltList = toResponsePageInfo(list);
+        Map<String,Integer> map = new HashMap<String,Integer>();
+        int total = list.stream().mapToInt(TmsBmCountVo::getStuCount).sum();
+        map.put("total",total);
+        reusltList.setData(map);
+        return reusltList;
+    }
+
+
 }
 
 

+ 28 - 0
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsBmDTO.java

@@ -0,0 +1,28 @@
+package com.miaxis.tms.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "TmsBmDTO", description = "查询报名人数DTO")
+public class TmsBmDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "驾校ID")
+    private Long schoolId;
+
+    @ApiModelProperty(value = "城市编号")
+    private String city;
+
+    @ApiModelProperty(value = "月份 '-1'为一个月前,0为当月")
+    private Integer month;
+
+}

+ 1 - 1
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsBmDayDTO.java

@@ -10,7 +10,7 @@ import java.io.Serializable;
 
 @Data
 @EqualsAndHashCode(callSuper = false)
-@ApiModel(value = "TmsBmCountDTO", description = "查询报名人数DTO")
+@ApiModel(value = "TmsBmDayDTO", description = "查询报名人数DTO")
 public class TmsBmDayDTO implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 33 - 0
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsBmDayListDTO.java

@@ -0,0 +1,33 @@
+package com.miaxis.tms.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "TmsBmDayListDTO", description = "查询报名人数DTO")
+public class TmsBmDayListDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "驾校ID")
+    private Long schoolId;
+
+    @ApiModelProperty(value = "请年份(默认传当前年)")
+    private String year;
+
+    @ApiModelProperty(value = "请月份(默认传当前月)")
+    private String month;
+
+    @ApiModelProperty(value = "城市编号")
+    private String city;
+
+
+
+}

+ 1 - 1
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsBmMonthDTO.java

@@ -10,7 +10,7 @@ import java.io.Serializable;
 
 @Data
 @EqualsAndHashCode(callSuper = false)
-@ApiModel(value = "TmsBmCountDTO", description = "查询报名人数DTO")
+@ApiModel(value = "TmsBmMonthDTO", description = "查询报名人数DTO")
 public class TmsBmMonthDTO implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 30 - 0
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsBmMonthListDTO.java

@@ -0,0 +1,30 @@
+package com.miaxis.tms.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "TmsBmMonthListDTO", description = "查询报名人数DTO")
+public class TmsBmMonthListDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "驾校ID")
+    private Long schoolId;
+
+    @ApiModelProperty(value = "年份(请默认传当前年)")
+    private String year;
+
+    @ApiModelProperty(value = "城市编号")
+    private String city;
+
+
+
+}

+ 32 - 0
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsBmYearListDTO.java

@@ -0,0 +1,32 @@
+package com.miaxis.tms.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "TmsBmMonthListDTO", description = "查询报名人数DTO")
+public class TmsBmYearListDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "驾校ID")
+    private Long schoolId;
+
+    @ApiModelProperty(value = "开始年份(请默认传当前年)")
+    private String startYear;
+
+    @ApiModelProperty(value = "结束年份(请默认传当前年-5年)")
+    private String endYear;
+
+    @ApiModelProperty(value = "城市编号")
+    private String city;
+
+
+}

+ 1 - 1
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsStudentInfoDTO.java

@@ -13,7 +13,7 @@ public class TmsStudentInfoDTO implements Serializable {
     @ApiModelProperty(value = "身份证号或姓名或手机")
     private String field;
 
-    @ApiModelProperty(value = "驾校ID")
+    @ApiModelProperty(value = "驾校ID",required = true)
     private Long schoolId;
 
     @ApiModelProperty(value = "教练员ID")

+ 13 - 1
jsjp-service/src/main/java/com/miaxis/tms/mapper/TmsStudentInfoMapper.java

@@ -29,9 +29,21 @@ public interface TmsStudentInfoMapper extends BaseMapper<TmsStudentInfoVo> {
 
     List<TmsStudentInfoTempVo> getTmsStudentInfoTempList(TmsStudentInfoTempDTO studentInfoDto);
 
-    TmsBmCountVo getDayStuCountBySchoolId(TmsBmDayDTO bmCountDTO);
+    TmsBmCountVo getDayStuCountBySchoolId(TmsBmDayDTO bmDayDTO);
 
     TmsBmCountVo getMonthStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO);
 
     TmsBmCountVo getYearStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO);
+
+    TmsBmCountVo getDayStuTempCountBySchoolId(TmsBmDayDTO bmDayDTO);
+
+
+    List<TmsBmCountVo> getEveryDayStuCountBySchoolId(TmsBmDayListDTO bmDayListDTO);
+
+    List<TmsBmCountVo> getEveryMonthStuCountBySchoolId(TmsBmMonthListDTO bmMonthListDTO);
+
+    List<TmsBmCountVo> getEveryYearStuCountBySchoolId(TmsBmYearListDTO bmMonthListDTO);
+
+
+
 }

+ 4 - 7
jsjp-service/src/main/java/com/miaxis/tms/service/ITmsStudentInfoService.java

@@ -30,16 +30,13 @@ public interface ITmsStudentInfoService extends IService<TmsStudentInfoVo> {
 
     List<TmsSignVo> getTmsSignListByStuId(TmsStudentInfoIdDTO studentInfoIdDTO);
 
-    TmsBmCountVo getDayStuCountBySchoolId(TmsBmDayDTO bmDayDTO);
-
-    TmsBmCountVo getMonthStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO);
-
-    TmsBmCountVo getYearStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO);
-
-
+    TmsBmVo getStatisticsStuCountBySchoolId(TmsBmDTO bmDTO);
 
+    List<TmsBmCountVo> getEveryDayStuCountBySchoolId(TmsBmDayListDTO dayListDTO);
 
+    List<TmsBmCountVo> getEveryMonthStuCountBySchoolId(TmsBmMonthListDTO monthListDTO);
 
+    List<TmsBmCountVo> getEveryYearStuCountBySchoolId(TmsBmYearListDTO yearListDTO);
 
 
 

+ 84 - 6
jsjp-service/src/main/java/com/miaxis/tms/service/impl/TmsStudentInfoServiceImpl.java

@@ -3,6 +3,7 @@ package com.miaxis.tms.service.impl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.miaxis.common.annotation.DataSource;
 import com.miaxis.common.enums.DataSourceTypeEnum;
+import com.miaxis.common.utils.bean.BeanUtils;
 import com.miaxis.tms.dto.*;
 import com.miaxis.tms.mapper.TmsStudentInfoMapper;
 import com.miaxis.tms.service.ITmsStudentInfoService;
@@ -61,19 +62,96 @@ public class TmsStudentInfoServiceImpl extends ServiceImpl<TmsStudentInfoMapper,
         return mapper.getTmsSignListByStuId(studentInfoIdDTO);
     }
 
+
+    @Override
+    public TmsBmVo getStatisticsStuCountBySchoolId(TmsBmDTO bmDTO) {
+
+        TmsBmDayDTO dayDTO = new TmsBmDayDTO();
+        BeanUtils.copyProperties(bmDTO,dayDTO);
+
+        dayDTO.setDay(0);
+        TmsBmCountVo yDay = mapper.getDayStuTempCountBySchoolId(dayDTO);
+        TmsBmCountVo day = mapper.getDayStuCountBySchoolId(dayDTO);
+
+        dayDTO.setDay(1);
+        TmsBmCountVo yesterday = mapper.getDayStuCountBySchoolId(dayDTO);
+
+        TmsBmMonthDTO monthDTO = new TmsBmMonthDTO();
+        BeanUtils.copyProperties(bmDTO,monthDTO);
+        monthDTO.setMonth(0);
+        TmsBmCountVo month = mapper.getMonthStuCountBySchoolId(monthDTO);
+
+        monthDTO.setMonth(-1);
+        TmsBmCountVo lastMonth = mapper.getMonthStuCountBySchoolId(monthDTO);
+
+        monthDTO.setMonth(0);
+        TmsBmCountVo year = mapper.getYearStuCountBySchoolId(monthDTO);
+        monthDTO.setMonth(-12);
+        TmsBmCountVo lastYear = mapper.getYearStuCountBySchoolId(monthDTO);
+
+
+        TmsBmVo bmVo = new TmsBmVo();
+
+        //今日预报名
+        if (yDay!=null) {
+            bmVo.setYDay(day.getStuCount());
+        } else {
+            bmVo.setYDay(0);
+        }
+
+        //今日报名
+        if (day!=null) {
+            bmVo.setDay(day.getStuCount());
+        } else {
+            bmVo.setDay(0);
+        }
+        //昨天报名
+        if(yesterday!=null) {
+            bmVo.setYesterday(yesterday.getStuCount());
+        } else {
+            bmVo.setYesterday(0);
+        }
+        //本月报名
+        if(month!=null) {
+            bmVo.setMonth(month.getStuCount());
+        } else {
+            bmVo.setMonth(0);
+        }
+        //上月报名
+        if(lastMonth!=null) {
+            bmVo.setLastMonth(lastMonth.getStuCount());
+        } else {
+            bmVo.setLastMonth(0);
+        }
+        //本年报名
+        if(year!=null) {
+            bmVo.setYear(year.getStuCount());
+        } else {
+            bmVo.setYear(0);
+        }
+        //去年报名
+        if(lastYear!=null) {
+            bmVo.setLastYear(lastYear.getStuCount());
+        } else {
+            bmVo.setLastYear(0);
+        }
+
+        return bmVo;
+    }
+
     @Override
-    public TmsBmCountVo getDayStuCountBySchoolId(TmsBmDayDTO bmCountDTO) {
-        return mapper.getDayStuCountBySchoolId(bmCountDTO);
+    public List<TmsBmCountVo> getEveryDayStuCountBySchoolId(TmsBmDayListDTO dayListDTO) {
+        return mapper.getEveryDayStuCountBySchoolId(dayListDTO);
     }
 
     @Override
-    public TmsBmCountVo getMonthStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO) {
-        return mapper.getMonthStuCountBySchoolId(bmMonthDTO);
+    public List<TmsBmCountVo> getEveryMonthStuCountBySchoolId(TmsBmMonthListDTO monthListDTO) {
+        return mapper.getEveryMonthStuCountBySchoolId(monthListDTO);
     }
 
     @Override
-    public TmsBmCountVo getYearStuCountBySchoolId(TmsBmMonthDTO bmMonthDTO) {
-        return mapper.getYearStuCountBySchoolId(bmMonthDTO);
+    public List<TmsBmCountVo> getEveryYearStuCountBySchoolId(TmsBmYearListDTO yearListDTO) {
+        return mapper.getEveryYearStuCountBySchoolId(yearListDTO);
     }
 
 

+ 0 - 2
jsjp-service/src/main/java/com/miaxis/tms/vo/TmsBmCountVo.java

@@ -1,13 +1,11 @@
 package com.miaxis.tms.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * 用户对象 user_info

+ 41 - 0
jsjp-service/src/main/java/com/miaxis/tms/vo/TmsBmVo.java

@@ -0,0 +1,41 @@
+package com.miaxis.tms.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "TmsBmVo", description = "报名统计")
+public class TmsBmVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "今天预报名人数")
+    private Integer yDay;
+
+    @ApiModelProperty(value = "今天报名人数")
+    private Integer day;
+
+    @ApiModelProperty(value = "昨天报名人数")
+    private Integer yesterday;
+
+    @ApiModelProperty(value = "本月报名人数")
+    private Integer month;
+
+    @ApiModelProperty(value = "上月报名人数")
+    private Integer lastMonth;
+
+    @ApiModelProperty(value = "今年报名人数")
+    private Integer year;
+
+    @ApiModelProperty(value = "去年报名人数")
+    private Integer lastYear;
+
+
+}

+ 0 - 2
jsjp-service/src/main/java/com/miaxis/tms/vo/TmsStudentInfoIdVo.java

@@ -1,7 +1,5 @@
 package com.miaxis.tms.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;

+ 40 - 1
jsjp-service/src/main/resources/mapper/tms/TmsStudentInfoMapper.xml

@@ -202,13 +202,22 @@
     </select>
 
 
+    <select id="getDayStuTempCountBySchoolId" parameterType="com.miaxis.tms.dto.TmsBmDayDTO" resultType="com.miaxis.tms.vo.TmsBmCountVo"  >
+        select trunc(t.tso_applydate) as dateTime,count(1) as stuCount
+        from tms_student_info_temp@tms${city} t
+        where 1=1
+          and t.tso_school_id = #{schoolId}
+          and trunc(t.tso_applydate) = trunc(sysdate - #{day})
+        group by trunc(t.tso_applydate)
+    </select>
+
 
     <select id="getDayStuCountBySchoolId" parameterType="com.miaxis.tms.dto.TmsBmDayDTO" resultType="com.miaxis.tms.vo.TmsBmCountVo"  >
         select trunc(t.tso_applydate) as dateTime,count(1) as stuCount
         from tms_student_info@tms${city} t
         where 1=1
           and t.tso_school_id = #{schoolId}
-          and trunc(t.tso_applydate) = trunc(sysdate #{day})
+          and trunc(t.tso_applydate) = trunc(sysdate - #{day})
         group by trunc(t.tso_applydate)
     </select>
 
@@ -236,8 +245,38 @@
 
 
 
+    <select id="getEveryDayStuCountBySchoolId" parameterType="com.miaxis.tms.dto.TmsBmDayListDTO" resultType="com.miaxis.tms.vo.TmsBmCountVo"  >
+        select to_char(tso_applydate, 'yyyy-MM-dd') as dateTime,count(1) as stuCount
+        from tms_student_info@tms${city} t
+        where 1=1
+          and t.tso_school_id = #{schoolId}
+          AND EXTRACT(MONTH FROM t.tso_applydate) = #{month}
+          AND EXTRACT(YEAR FROM t.tso_applydate) = #{year}
+        group by to_char(tso_applydate, 'yyyy-MM-dd')
+        order by to_char(tso_applydate, 'yyyy-MM-dd') desc
+    </select>
 
 
+    <select id="getEveryMonthStuCountBySchoolId" parameterType="com.miaxis.tms.dto.TmsBmMonthListDTO" resultType="com.miaxis.tms.vo.TmsBmCountVo" >
+        SELECT TO_CHAR(tso_applydate, 'yyyy-MM') AS dateTime, COUNT(1) AS stuCount
+        FROM tms_student_info@tms${city} t
+        WHERE t.tso_school_id = #{schoolId}
+          AND EXTRACT(YEAR FROM t.tso_applydate) = #{year}
+        GROUP BY TO_CHAR(tso_applydate, 'yyyy-MM')
+        ORDER BY TO_CHAR(tso_applydate, 'yyyy-MM') DESC
+    </select>
+
+
+
+    <select id="getEveryYearStuCountBySchoolId" parameterType="com.miaxis.tms.dto.TmsBmYearListDTO" resultType="com.miaxis.tms.vo.TmsBmCountVo" >
+        SELECT TO_CHAR(tso_applydate, 'yyyy') AS dateTime, COUNT(1) AS stuCount
+        FROM tms_student_info@tms${city} t
+        WHERE t.tso_school_id = #{schoolId}
+        AND EXTRACT(YEAR FROM t.tso_applydate) <![CDATA[ >= ]]> #{startYear}
+        AND EXTRACT(YEAR FROM t.tso_applydate) <![CDATA[ <= ]]> #{endYear}
+        GROUP BY TO_CHAR(tso_applydate, 'yyyy')
+        ORDER BY TO_CHAR(tso_applydate, 'yyyy') DESC
+    </select>
 
 
     <update id="upStuAppCoachIdById" parameterType="com.miaxis.tms.dto.TmsStudentInfoQrDTO">