大数据与最优化研究所 1 rok pred
rodič
commit
6bf6be12f1

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

@@ -56,6 +56,13 @@ public class BaseStudentInfoController {
         return RT.ok(result);
     }
 
+    @GetMapping(value = "/class-statistics")
+    @ApiOperation(value="班级统计")
+    @SaCheckPermission("basestudentpost:detail")
+    public RT<BaseStudentInfoPageDataVo> classStatistics(@Valid BaseStudentInfoPageDto dto){
+        BaseStudentInfoPageDataVo result = baseStudentSchoolRollService.getMobilePageStatistics(dto);
+        return RT.ok(result);
+    }
 
     @PutMapping
     @ApiOperation(value = "修改学生信息")
@@ -74,6 +81,4 @@ public class BaseStudentInfoController {
         }
         return RT.ok(BeanUtil.toBean(detailVo, BaseStudentInfoDetailVo.class));
     }
-
-
 }

+ 125 - 0
src/main/java/com/xjrsoft/module/student/controller/PbCseFeeitem2Controller.java

@@ -0,0 +1,125 @@
+package com.xjrsoft.module.student.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.student.dto.AddPbCseFeeitem2Dto;
+import com.xjrsoft.module.student.dto.UpdatePbCseFeeitem2Dto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.EasyExcel;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import org.springframework.http.ResponseEntity;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import com.xjrsoft.module.student.dto.PbCseFeeitem2PageDto;
+import com.xjrsoft.module.student.entity.PbCseFeeitem2;
+import com.xjrsoft.module.student.service.IPbCseFeeitem2Service;
+import com.xjrsoft.module.student.vo.PbCseFeeitem2PageVo;
+
+import com.xjrsoft.module.student.vo.PbCseFeeitem2Vo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/student" + "/pbCseFeeitem2")
+@Api(value = "/student"  + "/pbCseFeeitem2",tags = "代码")
+@AllArgsConstructor
+public class PbCseFeeitem2Controller {
+
+
+    private final IPbCseFeeitem2Service pbCseFeeitem2Service;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="列表(分页)")
+    @SaCheckPermission("pbcsefeeitem2:detail")
+    public RT<PageOutput<PbCseFeeitem2PageVo>> page(@Valid PbCseFeeitem2PageDto dto){
+
+        LambdaQueryWrapper<PbCseFeeitem2> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    //.orderByDesc(PbCseFeeitem2::getId)
+                .select(PbCseFeeitem2.class,x -> VoToColumnUtil.fieldsToColumns(PbCseFeeitem2PageVo.class).contains(x.getProperty()));
+        IPage<PbCseFeeitem2> page = pbCseFeeitem2Service.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<PbCseFeeitem2PageVo> pageOutput = ConventPage.getPageOutput(page, PbCseFeeitem2PageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询信息")
+    @SaCheckPermission("pbcsefeeitem2:detail")
+    public RT<PbCseFeeitem2Vo> info(@RequestParam Long id){
+        PbCseFeeitem2 pbCseFeeitem2 = pbCseFeeitem2Service.getById(id);
+        if (pbCseFeeitem2 == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(pbCseFeeitem2, PbCseFeeitem2Vo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增")
+    @SaCheckPermission("pbcsefeeitem2:add")
+    public RT<Boolean> add(@Valid @RequestBody AddPbCseFeeitem2Dto dto){
+        PbCseFeeitem2 pbCseFeeitem2 = BeanUtil.toBean(dto, PbCseFeeitem2.class);
+        boolean isSuccess = pbCseFeeitem2Service.save(pbCseFeeitem2);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改")
+    @SaCheckPermission("pbcsefeeitem2:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdatePbCseFeeitem2Dto dto){
+
+        PbCseFeeitem2 pbCseFeeitem2 = BeanUtil.toBean(dto, PbCseFeeitem2.class);
+        return RT.ok(pbCseFeeitem2Service.updateById(pbCseFeeitem2));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除")
+    @SaCheckPermission("pbcsefeeitem2:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(pbCseFeeitem2Service.removeBatchByIds(ids));
+
+    }
+    @PostMapping("/import")
+    @ApiOperation(value = "导入")
+    public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {
+        List<PbCseFeeitem2PageVo> savedDataList = EasyExcel.read(file.getInputStream()).head(PbCseFeeitem2PageVo.class).sheet().doReadSync();
+        Boolean result = pbCseFeeitem2Service.saveBatch(BeanUtil.copyToList(savedDataList, PbCseFeeitem2.class));
+        return RT.ok(result);
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid PbCseFeeitem2PageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<PbCseFeeitem2PageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<PbCseFeeitem2PageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, PbCseFeeitem2PageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "PbCseFeeitem2" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 48 - 0
src/main/java/com/xjrsoft/module/student/dto/AddPbCseFeeitem2Dto.java

@@ -0,0 +1,48 @@
+package com.xjrsoft.module.student.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Data
+public class AddPbCseFeeitem2Dto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String pkfeeitem;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String feeitemcode;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String feeitemname;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String shortname;
+
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/student/dto/PbCseFeeitem2PageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.student.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 分页查询入参
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class PbCseFeeitem2PageDto extends PageInput {
+
+
+}

+ 27 - 0
src/main/java/com/xjrsoft/module/student/dto/UpdatePbCseFeeitem2Dto.java

@@ -0,0 +1,27 @@
+package com.xjrsoft.module.student.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Data
+public class UpdatePbCseFeeitem2Dto extends AddPbCseFeeitem2Dto {
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 55 - 0
src/main/java/com/xjrsoft/module/student/entity/PbCseFeeitem2.java

@@ -0,0 +1,55 @@
+package com.xjrsoft.module.student.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Data
+@TableName("pb_cse_feeitem2")
+@ApiModel(value = "pb_cse_feeitem2", description = "")
+public class PbCseFeeitem2 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String pkfeeitem;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String feeitemcode;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String feeitemname;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String shortname;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/mapper/PbCseFeeitem2Mapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.student.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.student.entity.PbCseFeeitem2;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Mapper
+public interface PbCseFeeitem2Mapper extends MPJBaseMapper<PbCseFeeitem2> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/service/IPbCseFeeitem2Service.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.student.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.entity.PbCseFeeitem2;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+
+public interface IPbCseFeeitem2Service extends MPJBaseService<PbCseFeeitem2> {
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/student/service/impl/PbCseFeeitem2ServiceImpl.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.student.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.student.entity.PbCseFeeitem2;
+import com.xjrsoft.module.student.mapper.PbCseFeeitem2Mapper;
+import com.xjrsoft.module.student.service.IPbCseFeeitem2Service;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class PbCseFeeitem2ServiceImpl extends MPJBaseServiceImpl<PbCseFeeitem2Mapper, PbCseFeeitem2> implements IPbCseFeeitem2Service {
+}

+ 3 - 1
src/main/java/com/xjrsoft/module/student/service/impl/PbCseFeeobjupdateServiceImpl.java

@@ -186,8 +186,10 @@ public class PbCseFeeobjupdateServiceImpl extends MPJBaseServiceImpl<PbCseFeeobj
             //获取所有学生的缴费详情
             MPJLambdaWrapper<PbCseFeeobjupdate> feeobjupdateMPJLambdaWrapper = new MPJLambdaWrapper<>();
             feeobjupdateMPJLambdaWrapper
-                    .selectAs(PbVXssfdetail::getFeeitemname, PbVXssfdetail::getFeeitemname)
+                    .selectAs(PbCseFeeitem2::getShortname, PbVXssfdetail::getFeeitemname)
+                    .selectAs(PbCseFeeobjupdate::getPersonalid, PbVXssfdetail::getPersonalid)
                     .leftJoin(PbVXssfdetail.class, PbVXssfdetail::getPersonalid, PbCseFeeobjupdate::getPersonalid)
+                    .leftJoin(PbCseFeeitem2.class, PbCseFeeitem2::getFeeitemname, PbVXssfdetail::getFeeitemname)
                     .eq(dto.getYear() != null, PbCseFeeobjupdate::getEnteryear, dto.getYear())
                     .isNotNull(PbVXssfdetail::getFeeitemname)
             ;

+ 61 - 0
src/main/java/com/xjrsoft/module/student/vo/ClassStudentStatisticsInfoVo.java

@@ -0,0 +1,61 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class ClassStudentStatisticsInfoVo {
+    /**
+     * 报名人数
+     */
+    @ApiModelProperty("报名人数")
+    private Integer registrationPopulation;
+    /**
+     * 缴费人数
+     */
+    @ApiModelProperty("缴费人数")
+    private Integer payers;
+    /**
+     * 入账金额
+     */
+    @ApiModelProperty("入账金额")
+    private BigDecimal recordedAmountOfMoney;
+    /**
+     * 专业人数
+     */
+    @ApiModelProperty("专业人数")
+    private List<EnrollmentStatisticsInfoKeyValue> professionalHeadCount;
+    /**
+     * 学生来源
+     */
+    @ApiModelProperty("学生来源")
+    private List<EnrollmentStatisticsInfoKeyValue> studentSource;
+    /**
+     * 住宿类型
+     */
+    @ApiModelProperty("住宿类型")
+    private List<EnrollmentStatisticsInfoKeyValue> accommodationType;
+    /**
+     * 毕业院校
+     */
+    @ApiModelProperty("毕业院校")
+    private List<EnrollmentStatisticsInfoKeyValue> graduationList;
+    /**
+     * 每日招生人数
+     */
+    @ApiModelProperty("每日招生人数")
+    private List<EnrollmentStatisticsInfoKeyValue> cratetimeList;
+    /**
+     * 收费情况
+     */
+    @ApiModelProperty("收费情况")
+    private List<ChargingSituationVo> chargingSituationVoList;
+    /**
+     * 性别
+     */
+    @ApiModelProperty("性别")
+    private List<EnrollmentStatisticsInfoKeyValue> gender;
+}

+ 55 - 0
src/main/java/com/xjrsoft/module/student/vo/PbCseFeeitem2PageVo.java

@@ -0,0 +1,55 @@
+package com.xjrsoft.module.student.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 分页列表出参
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Data
+public class PbCseFeeitem2PageVo {
+
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private String pkfeeitem;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private String feeitemcode;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private String feeitemname;
+    /**
+    * 
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("")
+    @ApiModelProperty("")
+    private String shortname;
+
+}

+ 44 - 0
src/main/java/com/xjrsoft/module/student/vo/PbCseFeeitem2Vo.java

@@ -0,0 +1,44 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 表单出参
+* @Author szs
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Data
+public class PbCseFeeitem2Vo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String pkfeeitem;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String feeitemcode;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String feeitemname;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String shortname;
+
+
+
+}

+ 32 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -2629,4 +2629,36 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
 
     }
+
+    /**
+     * 专业大类
+     *
+     * @throws IOException
+     */
+    @Test
+    public void gcPbCseFeeitem() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("pb_cse_feeitem2");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("szs");//作者名称
+        params.setPackageName("student");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(true);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+
+    }
+
 }