فهرست منبع

消费管理我的消费页面

大数据与最优化研究所 1 سال پیش
والد
کامیت
a0ed3b0a9c
21فایلهای تغییر یافته به همراه774 افزوده شده و 89 حذف شده
  1. 1 1
      src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskAssignServiceImpl.java
  2. 0 1
      src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java
  3. 11 3
      src/main/java/com/xjrsoft/module/student/controller/ConsumptionController.java
  4. 144 0
      src/main/java/com/xjrsoft/module/student/controller/PbSemesterConfigController.java
  5. 38 0
      src/main/java/com/xjrsoft/module/student/dto/AddPbSemesterConfigDto.java
  6. 26 0
      src/main/java/com/xjrsoft/module/student/dto/PbSemesterConfigPageDto.java
  7. 31 0
      src/main/java/com/xjrsoft/module/student/dto/PbVXsxxsfytbPageDto.java
  8. 32 0
      src/main/java/com/xjrsoft/module/student/dto/UpdatePbSemesterConfigDto.java
  9. 88 0
      src/main/java/com/xjrsoft/module/student/entity/PbSemesterConfig.java
  10. 17 0
      src/main/java/com/xjrsoft/module/student/mapper/PbSemesterConfigMapper.java
  11. 17 0
      src/main/java/com/xjrsoft/module/student/service/IPbSemesterConfigService.java
  12. 8 0
      src/main/java/com/xjrsoft/module/student/service/IPbVXsxxsfytbService.java
  13. 25 0
      src/main/java/com/xjrsoft/module/student/service/impl/PbSemesterConfigServiceImpl.java
  14. 41 1
      src/main/java/com/xjrsoft/module/student/service/impl/PbVXsxxsfytbServiceImpl.java
  15. 69 0
      src/main/java/com/xjrsoft/module/student/vo/PbSemesterConfigPageVo.java
  16. 39 0
      src/main/java/com/xjrsoft/module/student/vo/PbSemesterConfigVo.java
  17. 79 79
      src/main/java/com/xjrsoft/module/student/vo/PbVXsxxsfytbPageVo.java
  18. 29 0
      src/main/java/com/xjrsoft/module/student/vo/SemesterYeatTreeVo.java
  19. 1 1
      src/test/java/com/xjrsoft/module/oa/service/impl/OfficialDocumentReceivedServiceImplTest.java
  20. 47 3
      src/test/java/com/xjrsoft/xjrsoftboot/DateTime.java
  21. 31 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 1 - 1
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskAssignServiceImpl.java

@@ -99,7 +99,7 @@ public class MaterialTaskAssignServiceImpl   extends MPJBaseServiceImpl<Material
 //                            materialTaskAssign.setExecutiveStatus(3);
 //                        }
                     }
-                    if (dto.getStatus() == 2) {
+                    if (dto.getStatus() == 2) {//重做
                         materialTaskAssign.setStatus(4);
                     }
 

+ 0 - 1
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java

@@ -358,7 +358,6 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
         MPJLambdaWrapper<MaterialTaskAssign> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
                 .distinct()
-                .disableSubLogicDel()
                 .like(dto.getName() != null && !dto.getName().equals(""), XjrUser::getName, dto.getName())
                 .eq(MaterialTaskAssign::getMaterialTaskId, dto.getMaterialTaskId())
                 .eq(dto.getState() != null, MaterialTaskAssign::getStatus, dto.getState())

+ 11 - 3
src/main/java/com/xjrsoft/module/student/controller/ConsumptionController.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.stp.StpUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
@@ -64,8 +65,6 @@ public class ConsumptionController {
             setName("毕业年级");
         }});
 
-
-
         baseGradeService.list().forEach((node) -> {
             if(node.getStatus() == 1){
                 voList.add(new BaseStudentTreeVo(){{
@@ -105,7 +104,7 @@ public class ConsumptionController {
     }
 
     @GetMapping(value = "/detail-page")
-    @ApiOperation(value="学生消费流水分页查询")
+    @ApiOperation(value="学生收费明细分页查询")
     @SaCheckPermission("consumption:detail")
     public RT<PageOutput<PbVXssfdetailPageVo>> detailPage(@Valid PbVXssfdetailPageDto dto){
         Page<PbVXssfdetailPageVo> page = pbVXssfdetailService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
@@ -113,6 +112,15 @@ public class ConsumptionController {
         return RT.ok(pageOutput);
     }
 
+    @GetMapping(value = "/pb_vx_sxxsfytbPage")
+    @ApiOperation(value="学生消费管理页分页查询")
+    @SaCheckPermission("consumption:detail")
+    public RT<PageOutput<PbVXsxxsfytbPageVo>> pbVXsxxsfytbPage(@Valid PbVXsxxsfytbPageDto dto){
+        IPage<PbVXsxxsfytbPageVo> page = pbVXsxxsfytbService.getPage(dto);
+        PageOutput<PbVXsxxsfytbPageVo> pageOutput = ConventPage.getPageOutput(page, PbVXsxxsfytbPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
     @GetMapping(value = "/cost-information")
     @ApiOperation(value="费用信息")
     @SaCheckPermission("consumption:detail")

+ 144 - 0
src/main/java/com/xjrsoft/module/student/controller/PbSemesterConfigController.java

@@ -0,0 +1,144 @@
+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.TreeUtil;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.base.service.IBaseSemesterService;
+import com.xjrsoft.module.student.dto.AddPbSemesterConfigDto;
+import com.xjrsoft.module.student.dto.UpdatePbSemesterConfigDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+import com.xjrsoft.module.student.dto.PbSemesterConfigPageDto;
+import com.xjrsoft.module.student.entity.PbSemesterConfig;
+import com.xjrsoft.module.student.service.IPbSemesterConfigService;
+import com.xjrsoft.module.student.vo.BaseStudentTreeVo;
+import com.xjrsoft.module.student.vo.PbSemesterConfigPageVo;
+
+import com.xjrsoft.module.student.vo.PbSemesterConfigVo;
+import com.xjrsoft.module.student.vo.SemesterYeatTreeVo;
+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.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 攀宝学期对应
+* @Author zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/student" + "/pbSemesterConfig")
+@Api(value = "/student"  + "/pbSemesterConfig",tags = "攀宝学期对应代码")
+@AllArgsConstructor
+public class PbSemesterConfigController {
+
+    private final IPbSemesterConfigService pbSemesterConfigService;
+
+    private final IBaseSemesterService baseSemesterService;
+
+    @GetMapping(value = "/tree")
+    @ApiOperation(value = "年和学期树")
+    @SaCheckPermission("pbsemesterconfig:detail")
+    public RT<List<SemesterYeatTreeVo>> tree() {
+        List<BaseSemester> baseSemesterList = baseSemesterService.list();
+
+        baseSemesterList.stream().forEach(element -> {
+            // 处理元素
+            element.setModifyUserId(Long.parseLong(element.getName().substring(0,4)));
+        });
+
+
+        Map<Long, SemesterYeatTreeVo> yearMap = new HashMap<>();
+        for (BaseSemester node : baseSemesterList) {
+            Long year = node.getModifyUserId();
+            if (!yearMap.containsKey(year)) {
+                yearMap.put(year, new SemesterYeatTreeVo() {{
+                    setId(year);
+                    setName(year + "年");
+                    setChildren(new ArrayList<>());
+                }});
+            }
+            yearMap.get(year).getChildren().add(new SemesterYeatTreeVo() {{
+                setId(node.getId());
+                setName(node.getName());
+                setParentId(year);
+                setChildren(new ArrayList<>());
+            }});
+        }
+        List<SemesterYeatTreeVo> voList = new ArrayList<>(yearMap.values());
+        return RT.ok(voList);
+    }
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="攀宝学期对应列表(分页)")
+    @SaCheckPermission("pbsemesterconfig:detail")
+    public RT<PageOutput<PbSemesterConfigPageVo>> page(@Valid PbSemesterConfigPageDto dto){
+
+        LambdaQueryWrapper<PbSemesterConfig> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(PbSemesterConfig::getId)
+                .select(PbSemesterConfig.class,x -> VoToColumnUtil.fieldsToColumns(PbSemesterConfigPageVo.class).contains(x.getProperty()));
+        IPage<PbSemesterConfig> page = pbSemesterConfigService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<PbSemesterConfigPageVo> pageOutput = ConventPage.getPageOutput(page, PbSemesterConfigPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询攀宝学期对应信息")
+    @SaCheckPermission("pbsemesterconfig:detail")
+    public RT<PbSemesterConfigVo> info(@RequestParam Long id){
+        PbSemesterConfig pbSemesterConfig = pbSemesterConfigService.getById(id);
+        if (pbSemesterConfig == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(pbSemesterConfig, PbSemesterConfigVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增攀宝学期对应")
+    @SaCheckPermission("pbsemesterconfig:add")
+    public RT<Boolean> add(@Valid @RequestBody AddPbSemesterConfigDto dto){
+        PbSemesterConfig pbSemesterConfig = BeanUtil.toBean(dto, PbSemesterConfig.class);
+        boolean isSuccess = pbSemesterConfigService.save(pbSemesterConfig);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改攀宝学期对应")
+    @SaCheckPermission("pbsemesterconfig:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdatePbSemesterConfigDto dto){
+
+        PbSemesterConfig pbSemesterConfig = BeanUtil.toBean(dto, PbSemesterConfig.class);
+        return RT.ok(pbSemesterConfigService.updateById(pbSemesterConfig));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除攀宝学期对应")
+    @SaCheckPermission("pbsemesterconfig:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(pbSemesterConfigService.removeBatchByIds(ids));
+
+    }
+
+}

+ 38 - 0
src/main/java/com/xjrsoft/module/student/dto/AddPbSemesterConfigDto.java

@@ -0,0 +1,38 @@
+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 zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Data
+public class AddPbSemesterConfigDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 学期
+    */
+    @ApiModelProperty("学期")
+    private Long baseSemesterId;
+    /**
+    * 攀宝学期code
+    */
+    @ApiModelProperty("攀宝学期code")
+    private String beltcode;
+
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/student/dto/PbSemesterConfigPageDto.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 zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class PbSemesterConfigPageDto extends PageInput {
+
+
+}

+ 31 - 0
src/main/java/com/xjrsoft/module/student/dto/PbVXsxxsfytbPageDto.java

@@ -1,9 +1,12 @@
 package com.xjrsoft.module.student.dto;
 
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 
 /**
 * @title: 分页查询入参
@@ -15,5 +18,33 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = false)
 public class PbVXsxxsfytbPageDto extends PageInput {
 
+    @ApiModelProperty("学期Id")
+    private Long semesterId;
+
+    @ApiModelProperty("收费项目")
+    private String feeitemname;
+
+    @ApiModelProperty("学生姓名")
+    private String name;
+
+    @ApiModelProperty("学生学号")
+    private String studentId;
+
+    @ApiModelProperty("订单号")
+    private String payorder;
+
+    @ApiModelProperty("支付时间-开始")
+    private String startDate;
+
+    @ApiModelProperty("支付时间-结束")
+    private String endDate;
+
+    @ApiModelProperty("缴费类型(-1:退费 1:缴费)")
+    private Integer category;
+
+    @ApiModelProperty("班级Id")
+    private String classIds;
 
+    @ApiModelProperty(value = "班级Id",hidden = true)
+    private List<String> classIdList;
 }

+ 32 - 0
src/main/java/com/xjrsoft/module/student/dto/UpdatePbSemesterConfigDto.java

@@ -0,0 +1,32 @@
+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 zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Data
+public class UpdatePbSemesterConfigDto extends AddPbSemesterConfigDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 88 - 0
src/main/java/com/xjrsoft/module/student/entity/PbSemesterConfig.java

@@ -0,0 +1,88 @@
+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 zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Data
+@TableName("pb_semester_config")
+@ApiModel(value = "pb_semester_config", description = "攀宝学期对应")
+public class PbSemesterConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 学期
+    */
+    @ApiModelProperty("学期")
+    private Long baseSemesterId;
+    /**
+    * 攀宝学期code
+    */
+    @ApiModelProperty("攀宝学期code")
+    private String beltcode;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/mapper/PbSemesterConfigMapper.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.PbSemesterConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 攀宝学期对应
+* @Author zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Mapper
+public interface PbSemesterConfigMapper extends MPJBaseMapper<PbSemesterConfig> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/service/IPbSemesterConfigService.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.PbSemesterConfig;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 攀宝学期对应
+* @Author zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+
+public interface IPbSemesterConfigService extends MPJBaseService<PbSemesterConfig> {
+}

+ 8 - 0
src/main/java/com/xjrsoft/module/student/service/IPbVXsxxsfytbService.java

@@ -1,8 +1,14 @@
 package com.xjrsoft.module.student.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.dto.PbVXssfdetailPageDto;
+import com.xjrsoft.module.student.dto.PbVXsxxsfytbPageDto;
 import com.xjrsoft.module.student.dto.PersonalPortraitFeeInformationDto;
 import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
+import com.xjrsoft.module.student.vo.PbVXssfdetailPageVo;
+import com.xjrsoft.module.student.vo.PbVXsxxsfytbPageVo;
 import com.xjrsoft.module.student.vo.PersonalPortraitFeeInformationVo;
 import com.xjrsoft.module.student.vo.PersonalPortraitPersonalInfoVo;
 
@@ -17,4 +23,6 @@ import java.util.List;
 
 public interface IPbVXsxxsfytbService extends MPJBaseService<PbVXsxxsfytb> {
     List<PersonalPortraitFeeInformationVo> listCostInformation(PersonalPortraitFeeInformationDto dto);
+
+    IPage<PbVXsxxsfytbPageVo> getPage(PbVXsxxsfytbPageDto dto);
 }

+ 25 - 0
src/main/java/com/xjrsoft/module/student/service/impl/PbSemesterConfigServiceImpl.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.PbSemesterConfig;
+import com.xjrsoft.module.student.mapper.PbSemesterConfigMapper;
+import com.xjrsoft.module.student.service.IPbSemesterConfigService;
+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 zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class PbSemesterConfigServiceImpl extends MPJBaseServiceImpl<PbSemesterConfigMapper, PbSemesterConfig> implements IPbSemesterConfigService {
+}

+ 41 - 1
src/main/java/com/xjrsoft/module/student/service/impl/PbVXsxxsfytbServiceImpl.java

@@ -1,14 +1,27 @@
 package com.xjrsoft.module.student.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.material.entity.MaterialTaskAssign;
+import com.xjrsoft.module.student.dto.PbVXsxxsfytbPageDto;
 import com.xjrsoft.module.student.dto.PersonalPortraitFeeInformationDto;
-import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
+import com.xjrsoft.module.student.entity.*;
 import com.xjrsoft.module.student.mapper.PbVXsxxsfytbMapper;
 import com.xjrsoft.module.student.service.IPbVXsxxsfytbService;
+import com.xjrsoft.module.student.vo.BaseClassMajorSetPageVo;
+import com.xjrsoft.module.student.vo.PbVXsxxsfytbPageVo;
 import com.xjrsoft.module.student.vo.PersonalPortraitFeeInformationVo;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -25,4 +38,31 @@ public class PbVXsxxsfytbServiceImpl extends MPJBaseServiceImpl<PbVXsxxsfytbMapp
     listCostInformation(PersonalPortraitFeeInformationDto dto) {
         return null;
     }
+
+    @Override
+    public IPage<PbVXsxxsfytbPageVo> getPage(PbVXsxxsfytbPageDto dto) {
+        if(dto.getClassIds() != null && !dto.getClassIds().equals("")){
+            String[] strArray = dto.getClassIds().split(",");
+            List<String> strList = Arrays.asList(strArray);
+            dto.setClassIdList(strList);
+        }
+
+        MPJLambdaWrapper<PbVXsxxsfytb> pbVXsxxsfytbMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        if (dto.getSemesterId() != null && dto.getSemesterId() > 0) {
+            pbVXsxxsfytbMPJLambdaWrapper.exists("select 1 from `pb_semester_config` where base_semester_id = " + dto.getSemesterId() + " and beltcode = pb_v_xsxxsfytb.beltcode");
+        }
+        pbVXsxxsfytbMPJLambdaWrapper
+                .disableSubLogicDel()
+                .like(dto.getFeeitemname() != null && !dto.getFeeitemname().equals(""), PbVXsxxsfytb::getFeeitemname, dto.getFeeitemname())
+                .like(dto.getName() != null && !dto.getName().equals(""), PbVXsxxsfytb::getFeeobjname, dto.getName())
+                .eq(dto.getStudentId() != null && !dto.getStudentId().equals(""), PbVXsxxsfytb::getStudentcode, dto.getStudentId())
+                .in(dto.getClassIdList() != null && !dto.getClassIdList().isEmpty(), PbVXsxxsfytb::getStudentcode, dto.getStudentId())
+                .leftJoin(XjrUser.class, XjrUser::getCredentialNumber, PbVXsxxsfytb::getPersonalid)
+                .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
+                .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
+                .select(PbVXsxxsfytb.class, x -> VoToColumnUtil.fieldsToColumns(PbVXsxxsfytbPageVo.class).contains(x.getProperty()))
+                ;
+
+        return this.selectJoinListPage(ConventPage.getPage(dto), PbVXsxxsfytbPageVo.class, pbVXsxxsfytbMPJLambdaWrapper);
+    }
 }

+ 69 - 0
src/main/java/com/xjrsoft/module/student/vo/PbSemesterConfigPageVo.java

@@ -0,0 +1,69 @@
+package com.xjrsoft.module.student.vo;
+
+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 zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Data
+public class PbSemesterConfigPageVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer enabledMark;
+    /**
+    * 学期
+    */
+    @ApiModelProperty("学期")
+    private Long baseSemesterId;
+    /**
+    * 攀宝学期code
+    */
+    @ApiModelProperty("攀宝学期code")
+    private String beltcode;
+
+}

+ 39 - 0
src/main/java/com/xjrsoft/module/student/vo/PbSemesterConfigVo.java

@@ -0,0 +1,39 @@
+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 zsz
+* @Date: 2024-03-18
+* @Version 1.0
+*/
+@Data
+public class PbSemesterConfigVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 学期
+    */
+    @ApiModelProperty("学期")
+    private Long baseSemesterId;
+    /**
+    * 攀宝学期code
+    */
+    @ApiModelProperty("攀宝学期code")
+    private String beltcode;
+
+
+
+}

+ 79 - 79
src/main/java/com/xjrsoft/module/student/vo/PbVXsxxsfytbPageVo.java

@@ -15,74 +15,74 @@ import java.math.BigDecimal;
 public class PbVXsxxsfytbPageVo {
 
     /**
-    * 
+    * 学生主键
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("学生主键")
     private String pkfeeobj;
     /**
-    * 
+    * 学号
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("学号")
     private String Studentcode;
     /**
-    * 
+    * 姓名
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("姓名")
     private String feeobjname;
     /**
-    * 
+    * 所属班级名称
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属班级名称")
     private String classname;
     /**
-    * 
+    * 所属班级编码
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属班级编码")
     private String classcode;
     /**
-    * 
+    * 所属专业名称
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属专业名称")
     private String specname;
     /**
-    * 
+    * 所属专业编码
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属专业编码")
     private String speccode;
     /**
-    * 
+    * 所属院系名称
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属院系名称")
     private String deptname;
     /**
-    * 
+    * 所属院系编码
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属院系编码")
     private String deptcode;
     /**
-    * 
+    * 入校年度
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("入校年度")
     private String enteryear;
     /**
-    * 
+    * 离校年度
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("离校年度")
     private String leaveyear;
     /**
-    * 
+    * 身份证号
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("身份证号")
     private String personalid;
     /**
-    * 
+    *
     */
     @ApiModelProperty("")
     private String userdef1;
     /**
-    * 
+    * 招生老师
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("招生老师")
     private String recruiters;
     /**
     * 
@@ -90,134 +90,134 @@ public class PbVXsxxsfytbPageVo {
     @ApiModelProperty("")
     private String userdef2;
     /**
-    * 
+    * 录取号
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("录取号")
     private String admissions;
     /**
-    * 
+    * 地址
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("地址")
     private String address;
     /**
-    * 
+    * 电话
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("电话")
     private String telephone;
     /**
-    * 
+    * 民族
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("民族")
     private String nationality;
     /**
-    * 
+    * 政治面貌
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("政治面貌")
     private String property;
     /**
-    * 
+    * 备注
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("备注")
     private String remarks;
     /**
-    * 
+    * 毕业学校
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("毕业学校")
     private String graduations;
     /**
-    * 
+    * 学生状态
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("学生状态")
     private String state;
     /**
-    * 
+    * 姓名
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("姓名")
     private String sex;
     /**
-    * 
+    * 收费标准金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("收费标准金额")
     private BigDecimal standardar;
     /**
-    * 
+    * 应缴金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("应缴金额 ")
     private BigDecimal factar;
     /**
-    * 
+    * 调整(减免)金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("调整(减免)金额")
     private BigDecimal adjustmny;
     /**
-    * 
+    * 减免金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("减免金额")
     private BigDecimal jmje;
     /**
-    * 
+    * 欠费金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("欠费金额")
     private BigDecimal arrearagemny;
     /**
-    * 
+    * 实缴金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("实缴金额")
     private BigDecimal factrecarmny;
     /**
-    * 
+    * 退款金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("退款金额")
     private BigDecimal refundmny;
     /**
-    * 
+    * 欠费金额
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("欠费金额")
     private BigDecimal qfje;
     /**
-    * 
+    * 缴费状态
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("缴费状态")
     private String jfzt;
     /**
-    * 
+    * 收费项目编码
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("收费项目编码")
     private String feeitemcode;
     /**
-    * 
+    * 收费项目名称
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("收费项目名称")
     private String feeitemname;
     /**
-    * 
+    * 收费项目编码
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("收费项目编码")
     private String beltcode;
     /**
-    * 
+    * 收费区间名称
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("收费区间名称")
     private String beltname;
     /**
-    * 
+    * 学制
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("学制")
     private String ratetypename;
     /**
-    * 
+    * 学生来源
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("学生来源")
     private String resourcename;
     /**
-    * 
+    * 住宿类型
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("住宿类型")
     private String quartername;
     /**
-    * 
+    * 主键
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("主键")
     private String pksfxxytb;
 
 }

+ 29 - 0
src/main/java/com/xjrsoft/module/student/vo/SemesterYeatTreeVo.java

@@ -0,0 +1,29 @@
+package com.xjrsoft.module.student.vo;
+
+import com.xjrsoft.common.model.tree.ITreeNode;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class SemesterYeatTreeVo implements ITreeNode<SemesterYeatTreeVo,Long>, Serializable {
+
+
+    @ApiModelProperty("id")
+    private Long id;
+
+
+    @ApiModelProperty("name")
+    private String name;
+
+
+    @ApiModelProperty("parentId")
+    private Long parentId;
+
+
+    @ApiModelProperty("children")
+    private List<SemesterYeatTreeVo> children;
+
+}

+ 1 - 1
src/test/java/com/xjrsoft/module/oa/service/impl/OfficialDocumentReceivedServiceImplTest.java

@@ -15,6 +15,6 @@ class OfficialDocumentReceivedServiceImplTest {
 
     @Test
     void dataHandle() {
-        officialDocumentReceivedService.dataHandle(1742764908022394880L);
+
     }
 }

+ 47 - 3
src/test/java/com/xjrsoft/xjrsoftboot/DateTime.java

@@ -5,9 +5,7 @@ import org.junit.jupiter.api.Test;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 public class DateTime {
     @Test
@@ -37,4 +35,50 @@ public class DateTime {
         LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
         System.err.println(dateTime);
     }
+
+    @Test
+    public void MapTest(){
+        List<String> data = Arrays.asList(
+                "2023年秋期", "2023年春期", "2022年秋期", "2022年春期",
+                "2021年秋期", "2021年春期", "2020年秋期", "2020年春期",
+                "2019年秋期", "2019年春期", "2018年秋期", "2018年春期",
+                "2017年秋期", "2017年春期", "2024年春期"
+        );
+
+        List<TreeNode> treeNodes = new ArrayList<>();
+        for (String item : data) {
+            int year = Integer.parseInt(item.substring(0, 4));
+            String season = item.substring(5);
+            TreeNode node = new TreeNode(year, season);
+            treeNodes.add(node);
+        }
+
+        Map<Integer, TreeNode> yearMap = new HashMap<>();
+        for (TreeNode node : treeNodes) {
+            int year = node.year;
+            if (!yearMap.containsKey(year)) {
+                yearMap.put(year, new TreeNode(year, ""));
+            }
+            yearMap.get(year).children.add(node);
+        }
+
+        List<TreeNode> tree = new ArrayList<>(yearMap.values());
+        for (TreeNode node : tree) {
+            System.out.println("Year: " + node.year);
+            for (TreeNode child : node.children) {
+                System.out.println("  Season: " + child.season);
+            }
+        }
+    }
+    class TreeNode {
+        int year;
+        String season;
+        List<TreeNode> children;
+
+        public TreeNode(int year, String season) {
+            this.year = year;
+            this.season = season;
+            this.children = new ArrayList<>();
+        }
+    }
 }

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

@@ -2398,4 +2398,35 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
 
     }
+
+    /**
+     * 攀宝学期对应配置表
+     *
+     * @throws IOException
+     */
+    @Test
+    public void gcpbSemesterConfig() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("pb_semester_config");//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("zsz");//作者名称
+        params.setPackageName("student");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(false);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+
+    }
 }