Browse Source

Merge remote-tracking branch 'origin/dev' into dev

phoenix 1 year ago
parent
commit
7d009d3d04
35 changed files with 1601 additions and 61 deletions
  1. 39 0
      src/main/java/com/xjrsoft/common/enums/GenderEnum.java
  2. 44 0
      src/main/java/com/xjrsoft/module/liteflow/node/WfScholarshipNode.java
  3. 19 2
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentBursariesApplicantController.java
  4. 102 0
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentBursariesProjectController.java
  5. 102 0
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentBursariesStudentController.java
  6. 68 0
      src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentBursariesProjectDto.java
  7. 88 0
      src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentBursariesStudentDto.java
  8. 26 0
      src/main/java/com/xjrsoft/module/student/dto/BaseStudentBursariesProjectPageDto.java
  9. 26 0
      src/main/java/com/xjrsoft/module/student/dto/BaseStudentBursariesStudentPageDto.java
  10. 32 0
      src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentBursariesProjectDto.java
  11. 32 0
      src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentBursariesStudentDto.java
  12. 118 0
      src/main/java/com/xjrsoft/module/student/entity/BaseStudentBursariesProject.java
  13. 101 0
      src/main/java/com/xjrsoft/module/student/entity/BaseStudentBursariesStudent.java
  14. 2 2
      src/main/java/com/xjrsoft/module/student/entity/BaseStudentScholarshipApplicant.java
  15. 17 0
      src/main/java/com/xjrsoft/module/student/mapper/BaseStudentBursariesProjectMapper.java
  16. 17 0
      src/main/java/com/xjrsoft/module/student/mapper/BaseStudentBursariesStudentMapper.java
  17. 7 0
      src/main/java/com/xjrsoft/module/student/mapper/BaseStudentMapper.java
  18. 17 0
      src/main/java/com/xjrsoft/module/student/service/IBaseStudentBursariesProjectService.java
  19. 17 0
      src/main/java/com/xjrsoft/module/student/service/IBaseStudentBursariesStudentService.java
  20. 7 0
      src/main/java/com/xjrsoft/module/student/service/IBaseStudentScholarshipApplicantService.java
  21. 25 0
      src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentBursariesProjectServiceImpl.java
  22. 25 0
      src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentBursariesStudentServiceImpl.java
  23. 40 5
      src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentScholarshipApplicantServiceImpl.java
  24. 56 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesApplicantPageVo.java
  25. 99 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesProjectPageVo.java
  26. 69 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesProjectVo.java
  27. 89 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesStudentPageVo.java
  28. 89 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesStudentVo.java
  29. 41 0
      src/main/java/com/xjrsoft/module/student/vo/StudentInfoVo.java
  30. 13 0
      src/main/java/com/xjrsoft/module/workflow/dto/MyProcessPageDto.java
  31. 61 51
      src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java
  32. 15 0
      src/main/resources/mapper/student/BaseStudentMapper.xml
  33. 2 1
      src/main/resources/sqlScript/20231120_sql.sql
  34. 36 0
      src/test/java/com/xjrsoft/xjrsoftboot/CompletableFutureTest.java
  35. 60 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 39 - 0
src/main/java/com/xjrsoft/common/enums/GenderEnum.java

@@ -0,0 +1,39 @@
+package com.xjrsoft.common.enums;
+
+public enum GenderEnum {
+    /**
+     * 男
+     */
+    MALE(1, "男"),
+    /**
+     * 女
+     */
+    FEMALE(2, "女");
+
+    final int code;
+    final String value;
+
+    public int getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    public static String getValue(int code) {
+        for (GenderEnum item : values()) {
+            if (item.getCode() == code) {
+                return  item.getValue();
+            }
+        }
+        return null;
+    }
+
+    GenderEnum(final int code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+
+
+}

+ 44 - 0
src/main/java/com/xjrsoft/module/liteflow/node/WfScholarshipNode.java

@@ -0,0 +1,44 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.oa.service.IFileReceiveService;
+import com.xjrsoft.module.oa.utils.SendMessageUtil;
+import com.xjrsoft.module.student.service.IBaseStudentScholarshipApplicantService;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+
+/**
+ * 申请奖学金流程数据赋值
+ */
+@Component("wf_scholarship_node")
+public class WfScholarshipNode extends NodeComponent {
+    @Autowired
+    private IBaseStudentScholarshipApplicantService scholarshipApplicantService;
+    @Override
+    public void process() throws Exception {
+        // 获取表单中数据编号
+        Map<String, Object> params = this.getFirstContextBean();
+        Object value = util.getFormDatKey(params,"id");
+        Map<String,Object> form = util.getFormData(params);
+        assert form != null;
+        form.put("class_name","123123123123");
+        Long formId = Convert.toLong(value);
+        if (formId != null) {
+            // 数据处理
+            CompletableFuture.runAsync(() -> {
+                try {
+                    Thread.sleep(1000*30); // 暂停1分钟
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+                scholarshipApplicantService.processDataHandler(formId);
+                System.out.println("执行完成");
+            });
+        }
+    }
+}

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

@@ -2,17 +2,24 @@ package com.xjrsoft.module.student.controller;
 
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.toolkit.MPJWrappers;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.student.dto.AddBaseStudentBursariesApplicantDto;
 import com.xjrsoft.module.student.dto.AddBaseStudentBursariesApplicantDto;
 import com.xjrsoft.module.student.dto.BaseStudentBursariesApplicantPageDto;
 import com.xjrsoft.module.student.dto.BaseStudentBursariesApplicantPageDto;
 import com.xjrsoft.module.student.dto.UpdateBaseStudentBursariesApplicantDto;
 import com.xjrsoft.module.student.dto.UpdateBaseStudentBursariesApplicantDto;
 import com.xjrsoft.module.student.entity.BaseStudentBursariesApplicant;
 import com.xjrsoft.module.student.entity.BaseStudentBursariesApplicant;
+import com.xjrsoft.module.student.entity.BaseStudentBursariesStudent;
+import com.xjrsoft.module.student.entity.BaseStudentUser;
 import com.xjrsoft.module.student.service.IBaseStudentBursariesApplicantService;
 import com.xjrsoft.module.student.service.IBaseStudentBursariesApplicantService;
 import com.xjrsoft.module.student.vo.BaseStudentBursariesApplicantPageVo;
 import com.xjrsoft.module.student.vo.BaseStudentBursariesApplicantPageVo;
 import com.xjrsoft.module.student.vo.BaseStudentBursariesApplicantVo;
 import com.xjrsoft.module.student.vo.BaseStudentBursariesApplicantVo;
+import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
@@ -46,8 +53,18 @@ public class BaseStudentBursariesApplicantController {
     @GetMapping(value = "/page")
     @GetMapping(value = "/page")
     @ApiOperation(value="助学金申请列表(分页)")
     @ApiOperation(value="助学金申请列表(分页)")
     @SaCheckPermission("basestudentbursariesapplicant:detail")
     @SaCheckPermission("basestudentbursariesapplicant:detail")
-    public RT<PageOutput<BaseStudentBursariesApplicantPageVo>> page(@Valid BaseStudentBursariesApplicantPageDto dto){
-        Page<BaseStudentBursariesApplicantPageVo> page = baseStudentBursariesApplicantService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+    public RT<PageOutput<BaseStudentBursariesApplicantPageVo>> page(@Valid BaseStudentBursariesApplicantPageDto dto) {
+
+        IPage<BaseStudentBursariesApplicantPageVo> page = baseStudentBursariesApplicantService.selectJoinListPage(
+                ConventPage.getPage(dto), BaseStudentBursariesApplicantPageVo.class,
+                MPJWrappers.<BaseStudentBursariesApplicant>lambdaJoin()
+                        .eq(BaseStudentBursariesApplicant::getBaseStudentBursariesProjectId, dto.getProjectId())
+                        .select(BaseStudentBursariesStudent::getId)
+                        .select(BaseStudentBursariesApplicant.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentBursariesApplicantPageVo.class).contains(x.getProperty()))
+                        .leftJoin(BaseStudentBursariesStudent.class,BaseStudentBursariesStudent::getBaseStudentBursariesApplicantId,BaseStudentBursariesApplicant::getId)
+                        .select(BaseStudentBursariesStudent.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentBursariesApplicantPageVo.class).contains(x.getProperty()))
+//                        .selectAs(BaseStudentBursariesStudent::getGradeName, BaseStudentBursariesApplicantPageVo::getGradeName)
+        );
         PageOutput<BaseStudentBursariesApplicantPageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentBursariesApplicantPageVo.class);
         PageOutput<BaseStudentBursariesApplicantPageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentBursariesApplicantPageVo.class);
         return RT.ok(pageOutput);
         return RT.ok(pageOutput);
     }
     }

+ 102 - 0
src/main/java/com/xjrsoft/module/student/controller/BaseStudentBursariesProjectController.java

@@ -0,0 +1,102 @@
+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.AddBaseStudentBursariesProjectDto;
+import com.xjrsoft.module.student.dto.UpdateBaseStudentBursariesProjectDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+import com.xjrsoft.module.student.dto.BaseStudentBursariesProjectPageDto;
+import com.xjrsoft.module.student.entity.BaseStudentBursariesProject;
+import com.xjrsoft.module.student.service.IBaseStudentBursariesProjectService;
+import com.xjrsoft.module.student.vo.BaseStudentBursariesProjectPageVo;
+
+import com.xjrsoft.module.student.vo.BaseStudentBursariesProjectVo;
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/student" + "/baseStudentBursariesProject")
+@Api(value = "/student"  + "/baseStudentBursariesProject",tags = "助学金项目代码")
+@AllArgsConstructor
+public class BaseStudentBursariesProjectController {
+
+
+    private final IBaseStudentBursariesProjectService baseStudentBursariesProjectService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="助学金项目列表(分页)")
+    @SaCheckPermission("basestudentbursariesproject:detail")
+    public RT<PageOutput<BaseStudentBursariesProjectPageVo>> page(@Valid BaseStudentBursariesProjectPageDto dto){
+
+        LambdaQueryWrapper<BaseStudentBursariesProject> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(BaseStudentBursariesProject::getId)
+                .select(BaseStudentBursariesProject.class,x -> VoToColumnUtil.fieldsToColumns(BaseStudentBursariesProjectPageVo.class).contains(x.getProperty()));
+        IPage<BaseStudentBursariesProject> page = baseStudentBursariesProjectService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<BaseStudentBursariesProjectPageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentBursariesProjectPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询助学金项目信息")
+    @SaCheckPermission("basestudentbursariesproject:detail")
+    public RT<BaseStudentBursariesProjectVo> info(@RequestParam Long id){
+        BaseStudentBursariesProject baseStudentBursariesProject = baseStudentBursariesProjectService.getById(id);
+        if (baseStudentBursariesProject == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(baseStudentBursariesProject, BaseStudentBursariesProjectVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增助学金项目")
+    @SaCheckPermission("basestudentbursariesproject:add")
+    public RT<Boolean> add(@Valid @RequestBody AddBaseStudentBursariesProjectDto dto){
+        BaseStudentBursariesProject baseStudentBursariesProject = BeanUtil.toBean(dto, BaseStudentBursariesProject.class);
+        boolean isSuccess = baseStudentBursariesProjectService.save(baseStudentBursariesProject);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改助学金项目")
+    @SaCheckPermission("basestudentbursariesproject:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateBaseStudentBursariesProjectDto dto){
+
+        BaseStudentBursariesProject baseStudentBursariesProject = BeanUtil.toBean(dto, BaseStudentBursariesProject.class);
+        return RT.ok(baseStudentBursariesProjectService.updateById(baseStudentBursariesProject));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除助学金项目")
+    @SaCheckPermission("basestudentbursariesproject:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(baseStudentBursariesProjectService.removeBatchByIds(ids));
+
+    }
+
+}

+ 102 - 0
src/main/java/com/xjrsoft/module/student/controller/BaseStudentBursariesStudentController.java

@@ -0,0 +1,102 @@
+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.AddBaseStudentBursariesStudentDto;
+import com.xjrsoft.module.student.dto.UpdateBaseStudentBursariesStudentDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+import com.xjrsoft.module.student.dto.BaseStudentBursariesStudentPageDto;
+import com.xjrsoft.module.student.entity.BaseStudentBursariesStudent;
+import com.xjrsoft.module.student.service.IBaseStudentBursariesStudentService;
+import com.xjrsoft.module.student.vo.BaseStudentBursariesStudentPageVo;
+
+import com.xjrsoft.module.student.vo.BaseStudentBursariesStudentVo;
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/student" + "/baseStudentBursariesStudent")
+@Api(value = "/student"  + "/baseStudentBursariesStudent",tags = "助学金申请学生信息代码")
+@AllArgsConstructor
+public class BaseStudentBursariesStudentController {
+
+
+    private final IBaseStudentBursariesStudentService baseStudentBursariesStudentService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="助学金申请学生信息列表(分页)")
+    @SaCheckPermission("basestudentbursariesstudent:detail")
+    public RT<PageOutput<BaseStudentBursariesStudentPageVo>> page(@Valid BaseStudentBursariesStudentPageDto dto){
+
+        LambdaQueryWrapper<BaseStudentBursariesStudent> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(BaseStudentBursariesStudent::getId)
+                .select(BaseStudentBursariesStudent.class,x -> VoToColumnUtil.fieldsToColumns(BaseStudentBursariesStudentPageVo.class).contains(x.getProperty()));
+        IPage<BaseStudentBursariesStudent> page = baseStudentBursariesStudentService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<BaseStudentBursariesStudentPageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentBursariesStudentPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询助学金申请学生信息信息")
+    @SaCheckPermission("basestudentbursariesstudent:detail")
+    public RT<BaseStudentBursariesStudentVo> info(@RequestParam Long id){
+        BaseStudentBursariesStudent baseStudentBursariesStudent = baseStudentBursariesStudentService.getById(id);
+        if (baseStudentBursariesStudent == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(baseStudentBursariesStudent, BaseStudentBursariesStudentVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增助学金申请学生信息")
+    @SaCheckPermission("basestudentbursariesstudent:add")
+    public RT<Boolean> add(@Valid @RequestBody AddBaseStudentBursariesStudentDto dto){
+        BaseStudentBursariesStudent baseStudentBursariesStudent = BeanUtil.toBean(dto, BaseStudentBursariesStudent.class);
+        boolean isSuccess = baseStudentBursariesStudentService.save(baseStudentBursariesStudent);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改助学金申请学生信息")
+    @SaCheckPermission("basestudentbursariesstudent:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateBaseStudentBursariesStudentDto dto){
+
+        BaseStudentBursariesStudent baseStudentBursariesStudent = BeanUtil.toBean(dto, BaseStudentBursariesStudent.class);
+        return RT.ok(baseStudentBursariesStudentService.updateById(baseStudentBursariesStudent));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除助学金申请学生信息")
+    @SaCheckPermission("basestudentbursariesstudent:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(baseStudentBursariesStudentService.removeBatchByIds(ids));
+
+    }
+
+}

+ 68 - 0
src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentBursariesProjectDto.java

@@ -0,0 +1,68 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class AddBaseStudentBursariesProjectDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 名称
+    */
+    @ApiModelProperty("名称")
+    private String name;
+    /**
+    * 助学金类型(xjr_dictionary_item[bursaries_type])
+    */
+    @ApiModelProperty("助学金类型(xjr_dictionary_item[bursaries_type])")
+    private String bursariesType;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 总金额
+    */
+    @ApiModelProperty("总金额")
+    private Double totalAmount;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+}

+ 88 - 0
src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentBursariesStudentDto.java

@@ -0,0 +1,88 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class AddBaseStudentBursariesStudentDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 助学金申请ID(base_student_bursaries_applicant)
+    */
+    @ApiModelProperty("助学金申请ID(base_student_bursaries_applicant)")
+    private Long baseStudentBursariesApplicantId;
+    /**
+    * 学生id
+    */
+    @ApiModelProperty("学生id")
+    private Long userId;
+    /**
+    * 年级名称
+    */
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+    /**
+    * 班级名称
+    */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 姓名
+    */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+    * 学号
+    */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 招生类型名称
+    */
+    @ApiModelProperty("招生类型名称")
+    private String enrollTypeCn;
+    /**
+    * 在读专业
+    */
+    @ApiModelProperty("在读专业")
+    private String majorName;
+    /**
+    * 收款银行(xjr_dictionary_item[bank_type])
+    */
+    @ApiModelProperty("收款银行(xjr_dictionary_item[bank_type])")
+    private String bankType;
+    /**
+    * 银行卡号
+    */
+    @ApiModelProperty("银行卡号")
+    private String bankNo;
+    /**
+    * 申请金额
+    */
+    @ApiModelProperty("申请金额")
+    private Double applicantAmount;
+
+}

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

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

+ 32 - 0
src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentBursariesProjectDto.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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class UpdateBaseStudentBursariesProjectDto extends AddBaseStudentBursariesProjectDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentBursariesStudentDto.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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class UpdateBaseStudentBursariesStudentDto extends AddBaseStudentBursariesStudentDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 118 - 0
src/main/java/com/xjrsoft/module/student/entity/BaseStudentBursariesProject.java

@@ -0,0 +1,118 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+@TableName("base_student_bursaries_project")
+@ApiModel(value = "base_student_bursaries_project", description = "助学金项目")
+public class BaseStudentBursariesProject 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 Integer sortCode;
+    /**
+    * 名称
+    */
+    @ApiModelProperty("名称")
+    private String name;
+    /**
+    * 助学金类型(xjr_dictionary_item[bursaries_type])
+    */
+    @ApiModelProperty("助学金类型(xjr_dictionary_item[bursaries_type])")
+    private String bursariesType;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 总金额
+    */
+    @ApiModelProperty("总金额")
+    private Double totalAmount;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+}

+ 101 - 0
src/main/java/com/xjrsoft/module/student/entity/BaseStudentBursariesStudent.java

@@ -0,0 +1,101 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+@TableName("base_student_bursaries_student")
+@ApiModel(value = "base_student_bursaries_student", description = "助学金申请学生信息")
+public class BaseStudentBursariesStudent implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 助学金申请ID(base_student_bursaries_applicant)
+    */
+    @ApiModelProperty("助学金申请ID(base_student_bursaries_applicant)")
+    private Long baseStudentBursariesApplicantId;
+    /**
+    * 学生id
+    */
+    @ApiModelProperty("学生id")
+    private Long userId;
+    /**
+    * 年级名称
+    */
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+    /**
+    * 班级名称
+    */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 姓名
+    */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+    * 学号
+    */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 招生类型名称
+    */
+    @ApiModelProperty("招生类型名称")
+    private String enrollTypeCn;
+    /**
+    * 在读专业
+    */
+    @ApiModelProperty("在读专业")
+    private String majorName;
+    /**
+    * 收款银行(xjr_dictionary_item[bank_type])
+    */
+    @ApiModelProperty("收款银行(xjr_dictionary_item[bank_type])")
+    private String bankType;
+    /**
+    * 银行卡号
+    */
+    @ApiModelProperty("银行卡号")
+    private String bankNo;
+    /**
+    * 申请金额
+    */
+    @ApiModelProperty("申请金额")
+    private Double applicantAmount;
+
+
+}

+ 2 - 2
src/main/java/com/xjrsoft/module/student/entity/BaseStudentScholarshipApplicant.java

@@ -94,9 +94,9 @@ public class BaseStudentScholarshipApplicant implements Serializable {
     @ApiModelProperty("学期Id")
     @ApiModelProperty("学期Id")
     private String baseSemesterId;
     private String baseSemesterId;
     /**
     /**
-    * 入学名称
+    * 年级名称
     */
     */
-    @ApiModelProperty("入学名称")
+    @ApiModelProperty("年级名称")
     private String gradeName;
     private String gradeName;
     /**
     /**
     * 班级名称
     * 班级名称

+ 17 - 0
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentBursariesProjectMapper.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.BaseStudentBursariesProject;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 助学金项目
+* @Author devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Mapper
+public interface BaseStudentBursariesProjectMapper extends MPJBaseMapper<BaseStudentBursariesProject> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentBursariesStudentMapper.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.BaseStudentBursariesStudent;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 助学金申请学生信息
+* @Author devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Mapper
+public interface BaseStudentBursariesStudentMapper extends MPJBaseMapper<BaseStudentBursariesStudent> {
+
+}

+ 7 - 0
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentMapper.java

@@ -2,6 +2,8 @@ package com.xjrsoft.module.student.mapper;
 
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.student.entity.BaseStudent;
 import com.xjrsoft.module.student.entity.BaseStudent;
+import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobileVo;
+import com.xjrsoft.module.student.vo.StudentInfoVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
 /**
 /**
@@ -12,4 +14,9 @@ import org.apache.ibatis.annotations.Mapper;
  */
  */
 @Mapper
 @Mapper
 public interface BaseStudentMapper extends MPJBaseMapper<BaseStudent> {
 public interface BaseStudentMapper extends MPJBaseMapper<BaseStudent> {
+    /**
+     * 根据用户编号查询学生信息
+     * @return
+     */
+    StudentInfoVo getStudentInfo(Long userId);
 }
 }

+ 17 - 0
src/main/java/com/xjrsoft/module/student/service/IBaseStudentBursariesProjectService.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.BaseStudentBursariesProject;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 助学金项目
+* @Author devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+
+public interface IBaseStudentBursariesProjectService extends MPJBaseService<BaseStudentBursariesProject> {
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/service/IBaseStudentBursariesStudentService.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.BaseStudentBursariesStudent;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 助学金申请学生信息
+* @Author devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+
+public interface IBaseStudentBursariesStudentService extends MPJBaseService<BaseStudentBursariesStudent> {
+}

+ 7 - 0
src/main/java/com/xjrsoft/module/student/service/IBaseStudentScholarshipApplicantService.java

@@ -15,6 +15,13 @@ import com.xjrsoft.module.student.vo.BaseStudentScholarshipApplicantCategoryPage
 
 
 public interface IBaseStudentScholarshipApplicantService extends MPJBaseService<BaseStudentScholarshipApplicant> {
 public interface IBaseStudentScholarshipApplicantService extends MPJBaseService<BaseStudentScholarshipApplicant> {
 
 
+    /**
+     * 流程数据处理
+     *
+     * @return
+     */
+    Boolean processDataHandler(Long dataId);
+
     /**
     /**
      * app分页查询
      * app分页查询
      * @param page
      * @param page

+ 25 - 0
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentBursariesProjectServiceImpl.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.BaseStudentBursariesProject;
+import com.xjrsoft.module.student.mapper.BaseStudentBursariesProjectMapper;
+import com.xjrsoft.module.student.service.IBaseStudentBursariesProjectService;
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BaseStudentBursariesProjectServiceImpl extends MPJBaseServiceImpl<BaseStudentBursariesProjectMapper, BaseStudentBursariesProject> implements IBaseStudentBursariesProjectService {
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentBursariesStudentServiceImpl.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.BaseStudentBursariesStudent;
+import com.xjrsoft.module.student.mapper.BaseStudentBursariesStudentMapper;
+import com.xjrsoft.module.student.service.IBaseStudentBursariesStudentService;
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BaseStudentBursariesStudentServiceImpl extends MPJBaseServiceImpl<BaseStudentBursariesStudentMapper, BaseStudentBursariesStudent> implements IBaseStudentBursariesStudentService {
+}

+ 40 - 5
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentScholarshipApplicantServiceImpl.java

@@ -2,20 +2,31 @@ package com.xjrsoft.module.student.service.impl;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.GenderEnum;
 import com.xjrsoft.module.student.dto.BaseStudentScholarshipApplicantCategoryPageDto;
 import com.xjrsoft.module.student.dto.BaseStudentScholarshipApplicantCategoryPageDto;
 import com.xjrsoft.module.student.entity.BaseStudentScholarshipApplicant;
 import com.xjrsoft.module.student.entity.BaseStudentScholarshipApplicant;
+import com.xjrsoft.module.student.entity.BaseStudentUser;
+import com.xjrsoft.module.student.mapper.BaseStudentMapper;
 import com.xjrsoft.module.student.mapper.BaseStudentScholarshipApplicantMapper;
 import com.xjrsoft.module.student.mapper.BaseStudentScholarshipApplicantMapper;
 import com.xjrsoft.module.student.service.IBaseStudentScholarshipApplicantService;
 import com.xjrsoft.module.student.service.IBaseStudentScholarshipApplicantService;
+import com.xjrsoft.module.student.vo.StudentInfoVo;
 import com.xjrsoft.module.student.vo.BaseStudentScholarshipApplicantCategoryPageVo;
 import com.xjrsoft.module.student.vo.BaseStudentScholarshipApplicantCategoryPageVo;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 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 dzx
-* @Date: 2023-11-23
-* @Version 1.0
-*/
+ * @title: 奖学金申请
+ * @Author dzx
+ * @Date: 2023-11-23
+ * @Version 1.0
+ */
 @Service
 @Service
 @AllArgsConstructor
 @AllArgsConstructor
 public class BaseStudentScholarshipApplicantServiceImpl extends MPJBaseServiceImpl<BaseStudentScholarshipApplicantMapper, BaseStudentScholarshipApplicant> implements IBaseStudentScholarshipApplicantService {
 public class BaseStudentScholarshipApplicantServiceImpl extends MPJBaseServiceImpl<BaseStudentScholarshipApplicantMapper, BaseStudentScholarshipApplicant> implements IBaseStudentScholarshipApplicantService {
@@ -25,4 +36,28 @@ public class BaseStudentScholarshipApplicantServiceImpl extends MPJBaseServiceIm
         Page<BaseStudentScholarshipApplicantCategoryPageVo> result = baseStudentScholarshipApplicantMapper.getScholarshiPage(page, dto);
         Page<BaseStudentScholarshipApplicantCategoryPageVo> result = baseStudentScholarshipApplicantMapper.getScholarshiPage(page, dto);
         return result;
         return result;
     }
     }
+
+    private final BaseStudentScholarshipApplicantMapper scholarshipApplicantMapper;
+
+    private final BaseStudentMapper studentMapper;
+
+    @Override
+    public Boolean processDataHandler(Long dataId) {
+        if (dataId == null) {
+            return false;
+        }
+        // 原始数据
+        BaseStudentScholarshipApplicant scholarshipApplicant = scholarshipApplicantMapper.selectById(dataId);
+        // 获取学生信息
+        StudentInfoVo studentInfo = studentMapper.getStudentInfo(scholarshipApplicant.getApplicantUserId());
+        scholarshipApplicant.setGradeName(studentInfo.getGradeName());
+        scholarshipApplicant.setClassName(studentInfo.getClassName());
+        scholarshipApplicant.setName(studentInfo.getStudentName());
+        scholarshipApplicant.setStudentId(studentInfo.getStudentId());
+        scholarshipApplicant.setGenderName(GenderEnum.getValue(studentInfo.getGender()));
+        scholarshipApplicant.setEnrollTypeCn(studentInfo.getEnrollmentType());
+        scholarshipApplicant.setMajorName(studentInfo.getMajorName());
+
+        return updateById(scholarshipApplicant);
+    }
 }
 }

+ 56 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesApplicantPageVo.java

@@ -53,4 +53,60 @@ public class BaseStudentBursariesApplicantPageVo {
     @ApiModelProperty("状态(1:结束 0:未结束)")
     @ApiModelProperty("状态(1:结束 0:未结束)")
     private Integer status;
     private Integer status;
 
 
+    /**
+     * 学生id
+     */
+    @ApiModelProperty("学生id")
+    private Long userId;
+    /**
+     * 年级名称
+     */
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+    /**
+     * 班级名称
+     */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+     * 学号
+     */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+     * 性别
+     */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+     * 招生类型名称
+     */
+    @ApiModelProperty("招生类型名称")
+    private String enrollTypeCn;
+    /**
+     * 在读专业
+     */
+    @ApiModelProperty("在读专业")
+    private String majorName;
+    /**
+     * 收款银行(xjr_dictionary_item[bank_type])
+     */
+    @ApiModelProperty("收款银行(xjr_dictionary_item[bank_type])")
+    private String bankType;
+    /**
+     * 银行卡号
+     */
+    @ApiModelProperty("银行卡号")
+    private String bankNo;
+    /**
+     * 申请金额
+     */
+    @ApiModelProperty("申请金额")
+    private Double applicantAmount;
+
 }
 }

+ 99 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesProjectPageVo.java

@@ -0,0 +1,99 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class BaseStudentBursariesProjectPageVo {
+
+    /**
+    * 主键编号
+    */
+    @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 Integer sortCode;
+    /**
+    * 名称
+    */
+    @ApiModelProperty("名称")
+    private String name;
+    /**
+    * 助学金类型(xjr_dictionary_item[bursaries_type])
+    */
+    @ApiModelProperty("助学金类型(xjr_dictionary_item[bursaries_type])")
+    private String bursariesType;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 总金额
+    */
+    @ApiModelProperty("总金额")
+    private Double totalAmount;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+}

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

@@ -0,0 +1,69 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class BaseStudentBursariesProjectVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 名称
+    */
+    @ApiModelProperty("名称")
+    private String name;
+    /**
+    * 助学金类型(xjr_dictionary_item[bursaries_type])
+    */
+    @ApiModelProperty("助学金类型(xjr_dictionary_item[bursaries_type])")
+    private String bursariesType;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 总金额
+    */
+    @ApiModelProperty("总金额")
+    private Double totalAmount;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+
+}

+ 89 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesStudentPageVo.java

@@ -0,0 +1,89 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class BaseStudentBursariesStudentPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 助学金申请ID(base_student_bursaries_applicant)
+    */
+    @ApiModelProperty("助学金申请ID(base_student_bursaries_applicant)")
+    private Long baseStudentBursariesApplicantId;
+    /**
+    * 学生id
+    */
+    @ApiModelProperty("学生id")
+    private Long userId;
+    /**
+    * 年级名称
+    */
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+    /**
+    * 班级名称
+    */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 姓名
+    */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+    * 学号
+    */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 招生类型名称
+    */
+    @ApiModelProperty("招生类型名称")
+    private String enrollTypeCn;
+    /**
+    * 在读专业
+    */
+    @ApiModelProperty("在读专业")
+    private String majorName;
+    /**
+    * 收款银行(xjr_dictionary_item[bank_type])
+    */
+    @ApiModelProperty("收款银行(xjr_dictionary_item[bank_type])")
+    private String bankType;
+    /**
+    * 银行卡号
+    */
+    @ApiModelProperty("银行卡号")
+    private String bankNo;
+    /**
+    * 申请金额
+    */
+    @ApiModelProperty("申请金额")
+    private Double applicantAmount;
+
+}

+ 89 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentBursariesStudentVo.java

@@ -0,0 +1,89 @@
+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 devil
+* @Date: 2023-11-28
+* @Version 1.0
+*/
+@Data
+public class BaseStudentBursariesStudentVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 助学金申请ID(base_student_bursaries_applicant)
+    */
+    @ApiModelProperty("助学金申请ID(base_student_bursaries_applicant)")
+    private Long baseStudentBursariesApplicantId;
+    /**
+    * 学生id
+    */
+    @ApiModelProperty("学生id")
+    private Long userId;
+    /**
+    * 年级名称
+    */
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+    /**
+    * 班级名称
+    */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 姓名
+    */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+    * 学号
+    */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 招生类型名称
+    */
+    @ApiModelProperty("招生类型名称")
+    private String enrollTypeCn;
+    /**
+    * 在读专业
+    */
+    @ApiModelProperty("在读专业")
+    private String majorName;
+    /**
+    * 收款银行(xjr_dictionary_item[bank_type])
+    */
+    @ApiModelProperty("收款银行(xjr_dictionary_item[bank_type])")
+    private String bankType;
+    /**
+    * 银行卡号
+    */
+    @ApiModelProperty("银行卡号")
+    private String bankNo;
+    /**
+    * 申请金额
+    */
+    @ApiModelProperty("申请金额")
+    private Double applicantAmount;
+
+
+
+}

+ 41 - 0
src/main/java/com/xjrsoft/module/student/vo/StudentInfoVo.java

@@ -0,0 +1,41 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StudentInfoVo {
+
+    @ApiModelProperty("用户ID(xjr_user)")
+    private Long userId;
+
+    @ApiModelProperty("学号")
+    private String studentId;
+
+    @ApiModelProperty("年级ID")
+    private Long gradeId;
+
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+
+    @ApiModelProperty("班级ID")
+    private Long classId;
+
+    @ApiModelProperty("班级名称")
+    private String className;
+
+    @ApiModelProperty("学生名称")
+    private String studentName;
+
+    @ApiModelProperty("性别 1=男 2=女")
+    private Integer gender;
+
+    @ApiModelProperty("招生类型名称")
+    private String enrollmentType;
+
+    @ApiModelProperty("专业ID")
+    private Long majorId;
+
+    @ApiModelProperty("专业名称")
+    private String majorName;
+}

+ 13 - 0
src/main/java/com/xjrsoft/module/workflow/dto/MyProcessPageDto.java

@@ -1,10 +1,12 @@
 package com.xjrsoft.module.workflow.dto;
 package com.xjrsoft.module.workflow.dto;
 
 
 import com.xjrsoft.common.page.PageInput;
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 
 
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 import java.util.Date;
 
 
 /**
 /**
@@ -31,6 +33,11 @@ public class MyProcessPageDto extends PageInput {
      */
      */
     private String name;
     private String name;
 
 
+    /**
+     * 模板id
+     */
+    private String schemaId;
+
 
 
     /**
     /**
      * 发起人
      * 发起人
@@ -41,4 +48,10 @@ public class MyProcessPageDto extends PageInput {
      * 流水号
      * 流水号
      */
      */
     private String serialNumber;
     private String serialNumber;
+
+    /**
+     * 1完成 2未完成
+     */
+    @ApiModelProperty("类型 1完成 2未完成 ")
+    private Integer type;
 }
 }

+ 61 - 51
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -235,7 +235,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             List<ProcessParamConfig> processParamConfigs = workflowSchemaConfig.getProcessConfig().getProcessParamConfigs();
             List<ProcessParamConfig> processParamConfigs = workflowSchemaConfig.getProcessConfig().getProcessParamConfigs();
 
 
             long count = historyService.createHistoricProcessInstanceQuery().count();
             long count = historyService.createHistoricProcessInstanceQuery().count();
-            Map<String, Object> processParam = WorkFlowUtil.getProcessParam(processParamConfigs, workflowSchema, count + 1,null);
+            Map<String, Object> processParam = WorkFlowUtil.getProcessParam(processParamConfigs, workflowSchema, count + 1, null);
 
 
             Map<String, Map<String, Object>> formAssignmentData = new HashMap<>();
             Map<String, Map<String, Object>> formAssignmentData = new HashMap<>();
 
 
@@ -1106,7 +1106,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
 
         long count = historyService.createHistoricProcessInstanceQuery().count();
         long count = historyService.createHistoricProcessInstanceQuery().count();
 
 
-        Map<String, Object> processParam = WorkFlowUtil.getProcessParam(processParamConfigs, workflowSchema, count + 1,null);
+        Map<String, Object> processParam = WorkFlowUtil.getProcessParam(processParamConfigs, workflowSchema, count + 1, null);
 
 
         //表单赋值
         //表单赋值
 //        initFormAssignment(dto.getFormData(), workflowSchema, workflowSchemaConfig, processParam);
 //        initFormAssignment(dto.getFormData(), workflowSchema, workflowSchemaConfig, processParam);
@@ -1263,7 +1263,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
 
         long count = historyService.createHistoricProcessInstanceQuery().count();
         long count = historyService.createHistoricProcessInstanceQuery().count();
 
 
-        Map<String, Object> processParam = WorkFlowUtil.getProcessParam(processParamConfigs, workflowSchema, count + 1,null);
+        Map<String, Object> processParam = WorkFlowUtil.getProcessParam(processParamConfigs, workflowSchema, count + 1, null);
 
 
         //表单赋值
         //表单赋值
 //        initFormAssignment(dto.getFormData(), workflowSchema, workflowSchemaConfig, processParam);
 //        initFormAssignment(dto.getFormData(), workflowSchema, workflowSchemaConfig, processParam);
@@ -1494,7 +1494,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 result.add(vo);
                 result.add(vo);
             }
             }
         }
         }
-        if (StrUtil.isNotBlank(dto.getSerialNumber()) && !StrUtil.isNumeric(dto.getSerialNumber())){//流水号不为数字类型,直接对结果集置空
+        if (StrUtil.isNotBlank(dto.getSerialNumber()) && !StrUtil.isNumeric(dto.getSerialNumber())) {//流水号不为数字类型,直接对结果集置空
             result.clear();
             result.clear();
         }
         }
         PageOutput<PendingTaskVo> output = new PageOutput<>();
         PageOutput<PendingTaskVo> output = new PageOutput<>();
@@ -1611,7 +1611,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 Map<String, Object> param = new HashMap<>();
                 Map<String, Object> param = new HashMap<>();
                 param.put("language", buttonConfig.getScriptLanguage());
                 param.put("language", buttonConfig.getScriptLanguage());
                 param.put("content", buttonConfig.getScriptContent());
                 param.put("content", buttonConfig.getScriptContent());
-                redisUtil.set(WorkflowConstant.BUTTON_EVENT_CACHE_PRE + task.getId(), param,10);
+                redisUtil.set(WorkflowConstant.BUTTON_EVENT_CACHE_PRE + task.getId(), param, 10);
             }
             }
 
 
 
 
@@ -1799,7 +1799,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
 
             Object resultName = new Object();
             Object resultName = new Object();
             //获取会签流程的结果,防止会签节点后面直接跟结束节点,导致拿不到流程数据
             //获取会签流程的结果,防止会签节点后面直接跟结束节点,导致拿不到流程数据
-            if (userTaskConfig.getCountersignConfig().getMultipleInstancesType() != WorkflowMultiInstanceType.NONE.getCode()){
+            if (userTaskConfig.getCountersignConfig().getMultipleInstancesType() != WorkflowMultiInstanceType.NONE.getCode()) {
                 resultName = runtimeService.getVariable(task.getProcessInstanceId(), resultVarName);
                 resultName = runtimeService.getVariable(task.getProcessInstanceId(), resultVarName);
             }
             }
 
 
@@ -1831,7 +1831,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 invokeAutoAgree(task.getProcessInstanceId(), workflowSchema.getId(), workflowSchemaConfig, list);
                 invokeAutoAgree(task.getProcessInstanceId(), workflowSchema.getId(), workflowSchemaConfig, list);
 
 
                 //新增工作流程信息数据
                 //新增工作流程信息数据
-                addWorkflowRecord(userTaskConfig, nextTaskNameList, user, record, oldTaskName, buttonConfig.getButtonName(), dto.getApprovedContent(), task,resultName);
+                addWorkflowRecord(userTaskConfig, nextTaskNameList, user, record, oldTaskName, buttonConfig.getButtonName(), dto.getApprovedContent(), task, resultName);
 
 
             }
             }
 
 
@@ -2145,7 +2145,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
 
                 Object resultName = new Object();
                 Object resultName = new Object();
                 //获取会签流程的结果,防止会签节点后面直接跟结束节点,导致拿不到流程数据
                 //获取会签流程的结果,防止会签节点后面直接跟结束节点,导致拿不到流程数据
-                if (userTaskConfig.getCountersignConfig().getMultipleInstancesType() != WorkflowMultiInstanceType.NONE.getCode()){
+                if (userTaskConfig.getCountersignConfig().getMultipleInstancesType() != WorkflowMultiInstanceType.NONE.getCode()) {
                     resultName = runtimeService.getVariable(task.getProcessInstanceId(), resultVarName);
                     resultName = runtimeService.getVariable(task.getProcessInstanceId(), resultVarName);
                 }
                 }
 
 
@@ -2179,7 +2179,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     approveMultiVo.setCurrentNodeName(task.getName());
                     approveMultiVo.setCurrentNodeName(task.getName());
                     if (dto.getApprovedType() == WorkflowApproveType.AGREE.getCode()) {
                     if (dto.getApprovedType() == WorkflowApproveType.AGREE.getCode()) {
                         //新增工作流程信息数据
                         //新增工作流程信息数据
-                        addWorkflowRecord(userTaskConfig, nextTaskNameList, user, record, task.getName(), "同意", dto.getApprovedContent(), task,resultName);
+                        addWorkflowRecord(userTaskConfig, nextTaskNameList, user, record, task.getName(), "同意", dto.getApprovedContent(), task, resultName);
 
 
                         if (nextTaskNameList.size() == 0) {
                         if (nextTaskNameList.size() == 0) {
                             String message = "【" + user.getName() + "】【同意】审批,审批意见为:“【" + dto.getApprovedContent() + "】”,由【" + task.getName() + "】 流转到【结束节点】";
                             String message = "【" + user.getName() + "】【同意】审批,审批意见为:“【" + dto.getApprovedContent() + "】”,由【" + task.getName() + "】 流转到【结束节点】";
@@ -2201,7 +2201,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     }
                     }
                     if (dto.getApprovedType() == WorkflowApproveType.DISAGREE.getCode()) {
                     if (dto.getApprovedType() == WorkflowApproveType.DISAGREE.getCode()) {
                         //新增工作流程信息数据
                         //新增工作流程信息数据
-                        addWorkflowRecord(userTaskConfig, nextTaskNameList, user, record, task.getName(), "拒绝", dto.getApprovedContent(), task,resultName);
+                        addWorkflowRecord(userTaskConfig, nextTaskNameList, user, record, task.getName(), "拒绝", dto.getApprovedContent(), task, resultName);
                         if (nextTaskNameList.size() == 0) {
                         if (nextTaskNameList.size() == 0) {
                             String message = "【" + user.getName() + "】【拒绝】审批,审批意见为:“【" + dto.getApprovedContent() + "】”,由【" + task.getName() + "】 流转到【结束节点】";
                             String message = "【" + user.getName() + "】【拒绝】审批,审批意见为:“【" + dto.getApprovedContent() + "】”,由【" + task.getName() + "】 流转到【结束节点】";
                             approveMultiVo.setApproveDetail(message);
                             approveMultiVo.setApproveDetail(message);
@@ -2889,7 +2889,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 modelElementById = bpmnModelInstance.getModelElementById(replace);
                 modelElementById = bpmnModelInstance.getModelElementById(replace);
             }
             }
             Collection<SequenceFlow> outgoing = ((FlowNodeImpl) modelElementById).getOutgoing();
             Collection<SequenceFlow> outgoing = ((FlowNodeImpl) modelElementById).getOutgoing();
-            if (outgoing !=null && outgoing.size()>0){
+            if (outgoing != null && outgoing.size() > 0) {
                 for (SequenceFlow sequenceFlow : outgoing) {
                 for (SequenceFlow sequenceFlow : outgoing) {
                     outgoingList.add(sequenceFlow.getId());
                     outgoingList.add(sequenceFlow.getId());
                 }
                 }
@@ -2907,16 +2907,16 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             Collection<SequenceFlow> incoming = ((FlowNodeImpl) modelElementById).getIncoming();
             Collection<SequenceFlow> incoming = ((FlowNodeImpl) modelElementById).getIncoming();
 
 
             if (incoming != null && incoming.size() > 0) {
             if (incoming != null && incoming.size() > 0) {
-                if (incoming.size() > 1){
+                if (incoming.size() > 1) {
                     //查询已经走过的节点的outgoing数据
                     //查询已经走过的节点的outgoing数据
-                    if (CollectionUtil.isNotEmpty(outgoingList)){
+                    if (CollectionUtil.isNotEmpty(outgoingList)) {
                         for (SequenceFlow sequenceFlow : incoming) {
                         for (SequenceFlow sequenceFlow : incoming) {
-                            if (outgoingList.contains(sequenceFlow.getId())){
+                            if (outgoingList.contains(sequenceFlow.getId())) {
                                 finishedActivity.add(sequenceFlow.getId());
                                 finishedActivity.add(sequenceFlow.getId());
                             }
                             }
                         }
                         }
                     }
                     }
-                }else {
+                } else {
                     for (SequenceFlow sequenceFlow : incoming) {
                     for (SequenceFlow sequenceFlow : incoming) {
                         finishedActivity.add(sequenceFlow.getId());
                         finishedActivity.add(sequenceFlow.getId());
                     }
                     }
@@ -3010,7 +3010,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                         .orderByDesc(WorkflowCirculated::getId)
                         .orderByDesc(WorkflowCirculated::getId)
                         .like(StrUtil.isNotBlank(dto.getTaskName()), WorkflowCirculated::getTaskName, dto.getTaskName())
                         .like(StrUtil.isNotBlank(dto.getTaskName()), WorkflowCirculated::getTaskName, dto.getTaskName())
                         .like(StrUtil.isNotBlank(dto.getName()), WorkflowSchema::getName, dto.getName())
                         .like(StrUtil.isNotBlank(dto.getName()), WorkflowSchema::getName, dto.getName())
-                        .like(StrUtil.isNotBlank(dto.getKeyword()),WorkflowSchema::getName,dto.getKeyword())
+                        .like(StrUtil.isNotBlank(dto.getKeyword()), WorkflowSchema::getName, dto.getKeyword())
                         .eq(StrUtil.isNotBlank(dto.getOriginator()), User::getId, dto.getOriginator())
                         .eq(StrUtil.isNotBlank(dto.getOriginator()), User::getId, dto.getOriginator())
                         .eq(StrUtil.isNotBlank(dto.getSerialNumber()), WorkflowCirculated::getSerialNumber, dto.getSerialNumber())
                         .eq(StrUtil.isNotBlank(dto.getSerialNumber()), WorkflowCirculated::getSerialNumber, dto.getSerialNumber())
                         .between(ObjectUtil.isNotNull(dto.getStartTime()) && ObjectUtil.isNotNull(dto.getEndTime()), WorkflowCirculated::getCreateTime, dto.getStartTime(), dto.getEndTime())
                         .between(ObjectUtil.isNotNull(dto.getStartTime()) && ObjectUtil.isNotNull(dto.getEndTime()), WorkflowCirculated::getCreateTime, dto.getStartTime(), dto.getEndTime())
@@ -3070,7 +3070,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                         .orderByDesc(WorkflowApproveRecord::getId)
                         .orderByDesc(WorkflowApproveRecord::getId)
                         .like(StrUtil.isNotBlank(dto.getTaskName()), WorkflowCirculated::getTaskName, dto.getTaskName())
                         .like(StrUtil.isNotBlank(dto.getTaskName()), WorkflowCirculated::getTaskName, dto.getTaskName())
                         .like(StrUtil.isNotBlank(dto.getName()), WorkflowSchema::getName, dto.getName())
                         .like(StrUtil.isNotBlank(dto.getName()), WorkflowSchema::getName, dto.getName())
-                        .like(StrUtil.isNotBlank(dto.getKeyword()),WorkflowSchema::getName,dto.getKeyword())
+                        .like(StrUtil.isNotBlank(dto.getKeyword()), WorkflowSchema::getName, dto.getKeyword())
                         .eq(StrUtil.isNotBlank(dto.getOriginator()), WorkflowExtra::getStartUserId, dto.getOriginator())
                         .eq(StrUtil.isNotBlank(dto.getOriginator()), WorkflowExtra::getStartUserId, dto.getOriginator())
                         .eq(StrUtil.isNotBlank(dto.getSerialNumber()), WorkflowCirculated::getSerialNumber, dto.getSerialNumber())
                         .eq(StrUtil.isNotBlank(dto.getSerialNumber()), WorkflowCirculated::getSerialNumber, dto.getSerialNumber())
                         .between(ObjectUtil.isNotNull(dto.getStartTime()) && ObjectUtil.isNotNull(dto.getEndTime()), WorkflowExtra::getLaunchTime, dto.getStartTime(), dto.getEndTime())
                         .between(ObjectUtil.isNotNull(dto.getStartTime()) && ObjectUtil.isNotNull(dto.getEndTime()), WorkflowExtra::getLaunchTime, dto.getStartTime(), dto.getEndTime())
@@ -3112,7 +3112,10 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         if (StrUtil.isNotBlank(dto.getName())) {
         if (StrUtil.isNotBlank(dto.getName())) {
             historicProcessInstanceQuery.variableValueLike(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY, StringPool.PERCENT + dto.getName() + StringPool.PERCENT);
             historicProcessInstanceQuery.variableValueLike(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY, StringPool.PERCENT + dto.getName() + StringPool.PERCENT);
         }
         }
-        if (StrUtil.isNotBlank(dto.getKeyword())){
+        if (StrUtil.isNotBlank(dto.getSchemaId())) {
+            historicProcessInstanceQuery.variableValueEquals(WorkflowConstant.PROCESS_SCHEMA_ID_KEY, Convert.toLong(dto.getSchemaId()));
+        }
+        if (StrUtil.isNotBlank(dto.getKeyword())) {
             historicProcessInstanceQuery.variableValueLike(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY, StringPool.PERCENT + dto.getKeyword() + StringPool.PERCENT);
             historicProcessInstanceQuery.variableValueLike(WorkflowConstant.PROCESS_SCHEMA_NAME_KEY, StringPool.PERCENT + dto.getKeyword() + StringPool.PERCENT);
         }
         }
         if (StrUtil.isNotBlank(dto.getOriginator())) {
         if (StrUtil.isNotBlank(dto.getOriginator())) {
@@ -3122,6 +3125,13 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     .endOr();
                     .endOr();
         }
         }
 
 
+        if (!ObjectUtil.isNull(dto.getType()) && dto.getType() == 1) {
+            historicProcessInstanceQuery.finished();
+        }
+        if (!ObjectUtil.isNull(dto.getType()) && dto.getType() == 2) {
+            historicProcessInstanceQuery.unfinished();
+        }
+
 
 
         long count = historicProcessInstanceQuery.count();
         long count = historicProcessInstanceQuery.count();
         List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.orderByProcessInstanceStartTime().desc().listPage(Convert.toInt((dto.getLimit() - 1) * dto.getSize()), dto.getSize());
         List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.orderByProcessInstanceStartTime().desc().listPage(Convert.toInt((dto.getLimit() - 1) * dto.getSize()), dto.getSize());
@@ -3173,7 +3183,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             }
             }
         }
         }
 
 
-        if (StrUtil.isNotBlank(dto.getSerialNumber()) && !StrUtil.isNumeric(dto.getSerialNumber())){//非数字类型置空
+        if (StrUtil.isNotBlank(dto.getSerialNumber()) && !StrUtil.isNumeric(dto.getSerialNumber())) {//非数字类型置空
             result.clear();
             result.clear();
         }
         }
         PageOutput<MyProcessPageVo> output = new PageOutput<>();
         PageOutput<MyProcessPageVo> output = new PageOutput<>();
@@ -3488,7 +3498,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
 
         List<Long> ids = new ArrayList<>();
         List<Long> ids = new ArrayList<>();
         //发起人分割数组
         //发起人分割数组
-        if (StrUtil.isNotBlank(dto.getOriginator())){
+        if (StrUtil.isNotBlank(dto.getOriginator())) {
             String allUserIdStr = StrUtil.join(StringPool.COMMA, dto.getOriginator());
             String allUserIdStr = StrUtil.join(StringPool.COMMA, dto.getOriginator());
             ids = Arrays.stream(allUserIdStr.split(StringPool.COMMA)).map(Convert::toLong).collect(Collectors.toList());
             ids = Arrays.stream(allUserIdStr.split(StringPool.COMMA)).map(Convert::toLong).collect(Collectors.toList());
         }
         }
@@ -3498,7 +3508,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 MPJWrappers.<WorkflowDraft>lambdaJoin()
                 MPJWrappers.<WorkflowDraft>lambdaJoin()
                         .disableSubLogicDel()
                         .disableSubLogicDel()
                         .eq(StrUtil.isNotBlank(dto.getName()), WorkflowSchema::getName, dto.getName())
                         .eq(StrUtil.isNotBlank(dto.getName()), WorkflowSchema::getName, dto.getName())
-                        .in(CollectionUtil.isNotEmpty(ids),WorkflowDraft::getCreateUserId,ids)
+                        .in(CollectionUtil.isNotEmpty(ids), WorkflowDraft::getCreateUserId, ids)
                         .between(ObjectUtil.isNotNull(dto.getStartTime()) && ObjectUtil.isNotNull(dto.getEndTime()), WorkflowDraft::getCreateDate, dto.getStartTime(), dto.getEndTime())
                         .between(ObjectUtil.isNotNull(dto.getStartTime()) && ObjectUtil.isNotNull(dto.getEndTime()), WorkflowDraft::getCreateDate, dto.getStartTime(), dto.getEndTime())
                         .orderByDesc(WorkflowDraft::getCreateDate)
                         .orderByDesc(WorkflowDraft::getCreateDate)
                         .select(WorkflowDraft::getId)
                         .select(WorkflowDraft::getId)
@@ -4747,7 +4757,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
      * @param oldTaskName      前一个节点的名称
      * @param oldTaskName      前一个节点的名称
      * @param buttonName       按钮名称
      * @param buttonName       按钮名称
      */
      */
-    private void addWorkflowRecord(UserTaskConfig userTaskConfig, List<String> nextTaskNameList, User user, WorkflowRecord record, String oldTaskName, String buttonName, String approvedContent, Task task,Object resultName) {
+    private void addWorkflowRecord(UserTaskConfig userTaskConfig, List<String> nextTaskNameList, User user, WorkflowRecord record, String oldTaskName, String buttonName, String approvedContent, Task task, Object resultName) {
         //单实例
         //单实例
         if (userTaskConfig.getCountersignConfig().getMultipleInstancesType() == WorkflowMultiInstanceType.NONE.getCode()) {
         if (userTaskConfig.getCountersignConfig().getMultipleInstancesType() == WorkflowMultiInstanceType.NONE.getCode()) {
             //用户节点到结束节点或者脚本节点,点击按钮时,也需要设置流程信息
             //用户节点到结束节点或者脚本节点,点击按钮时,也需要设置流程信息
@@ -4873,7 +4883,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
     }
     }
 
 
     @Override
     @Override
-    public Boolean dealTimeoutTask(Integer handleType,String taskId) {
+    public Boolean dealTimeoutTask(Integer handleType, String taskId) {
         //根据taskid  获取任务信息
         //根据taskid  获取任务信息
         Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
         Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
 
 
@@ -4901,7 +4911,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
 
         List<LaunchAndApproveVo> result = new ArrayList<>();
         List<LaunchAndApproveVo> result = new ArrayList<>();
 
 
-        if (handleType == 1){//自动驳回
+        if (handleType == 1) {//自动驳回
             //获取到当前活动的实例
             //获取到当前活动的实例
             ActivityInstance activityInstance = runtimeService.getActivityInstance(task.getProcessInstanceId());
             ActivityInstance activityInstance = runtimeService.getActivityInstance(task.getProcessInstanceId());
 
 
@@ -4915,19 +4925,19 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                     .asc()
                     .asc()
                     .list();
                     .list();
 
 
-            if(null == resultList || resultList.size() == 0){
+            if (null == resultList || resultList.size() == 0) {
                 throw new MyException("当前任务之前不存在用户任务无法驳回!");
                 throw new MyException("当前任务之前不存在用户任务无法驳回!");
             }
             }
             //得到第一个任务节点的id
             //得到第一个任务节点的id
             HistoricActivityInstance historicActivityInstance = resultList.get(0);
             HistoricActivityInstance historicActivityInstance = resultList.get(0);
             String startActId = historicActivityInstance.getActivityId();
             String startActId = historicActivityInstance.getActivityId();
-            if(startActId.equals(task.getTaskDefinitionKey())){
+            if (startActId.equals(task.getTaskDefinitionKey())) {
                 throw new MyException("开始节点无法驳回!");
                 throw new MyException("开始节点无法驳回!");
             }
             }
 
 
             //得到上一个任务节点的ActivityId和待办人
             //得到上一个任务节点的ActivityId和待办人
-            Map<String,String> lastNode = getLastNode(resultList,task.getTaskDefinitionKey());
-            if(null == lastNode){
+            Map<String, String> lastNode = getLastNode(resultList, task.getTaskDefinitionKey());
+            if (null == lastNode) {
                 throw new MyException("回退节点异常!");
                 throw new MyException("回退节点异常!");
             }
             }
             String toActId = lastNode.get("toActId");
             String toActId = lastNode.get("toActId");
@@ -4965,7 +4975,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 record.setMessage("审批信息:由于审批超时,【系统】【自动驳回】审批,审批意见为:“系统自动驳回审批”,由【" + task.getName() + "】 流转到【" + rejectUserTaskConfig.getName() + "】");
                 record.setMessage("审批信息:由于审批超时,【系统】【自动驳回】审批,审批意见为:“系统自动驳回审批”,由【" + task.getName() + "】 流转到【" + rejectUserTaskConfig.getName() + "】");
                 workflowRecordMapper.insert(record);
                 workflowRecordMapper.insert(record);
             });
             });
-        }else if(handleType == 2){//同意
+        } else if (handleType == 2) {//同意
             //新增流程发起流程记录
             //新增流程发起流程记录
             WorkflowRecord record = new WorkflowRecord();
             WorkflowRecord record = new WorkflowRecord();
             record.setNodeId(task.getId());
             record.setNodeId(task.getId());
@@ -4996,11 +5006,11 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             }
             }
             //单流向
             //单流向
             if (nextTaskNameList.size() == 1) {
             if (nextTaskNameList.size() == 1) {
-                String message = "审批信息:由于审批超时,【系统】【自动同意】审批,审批意见为:“系统自动同意审批”,由【" +  oldTaskName + "】 流转到【" + nextTaskNameList.get(0) + "】";
+                String message = "审批信息:由于审批超时,【系统】【自动同意】审批,审批意见为:“系统自动同意审批”,由【" + oldTaskName + "】 流转到【" + nextTaskNameList.get(0) + "】";
                 record.setMessage(message);
                 record.setMessage(message);
             }//多流向
             }//多流向
             if (nextTaskNameList.size() > 1) {
             if (nextTaskNameList.size() > 1) {
-                String message = "审批信息:由于审批超时,【系统】【自动同意】审批,审批意见为:“系统自动同意审批”,由【" +  oldTaskName + "】 流转到【" + nextTaskNameList.get(0) + "】";
+                String message = "审批信息:由于审批超时,【系统】【自动同意】审批,审批意见为:“系统自动同意审批”,由【" + oldTaskName + "】 流转到【" + nextTaskNameList.get(0) + "】";
                 for (int i = 1; i < nextTaskNameList.size(); i++) {
                 for (int i = 1; i < nextTaskNameList.size(); i++) {
                     message = message + "、【" + nextTaskNameList.get(i) + "】";
                     message = message + "、【" + nextTaskNameList.get(i) + "】";
                 }
                 }
@@ -5018,20 +5028,20 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
      * 1、当前节点不在历史节点里
      * 1、当前节点不在历史节点里
      * 2、当前节点在历史节点里
      * 2、当前节点在历史节点里
      * 比如,resultList={1,2,3}
      * 比如,resultList={1,2,3}
-     *     (1)当前节点是4,表示3是完成节点,4驳回需要回退到3
-     *     (2)当前节点是2,表示3是驳回节点,3驳回到当前2节点,2驳回需要回退到1
+     * (1)当前节点是4,表示3是完成节点,4驳回需要回退到3
+     * (2)当前节点是2,表示3是驳回节点,3驳回到当前2节点,2驳回需要回退到1
      * 其他驳回过的情况也都包含在情况2中。
      * 其他驳回过的情况也都包含在情况2中。
      *
      *
-     * @param resultList 历史节点列表
+     * @param resultList        历史节点列表
      * @param currentActivityId 当前待办节点ActivityId
      * @param currentActivityId 当前待办节点ActivityId
      * @return 返回值:上一节点的ActivityId和待办人(toActId, assignee)
      * @return 返回值:上一节点的ActivityId和待办人(toActId, assignee)
      */
      */
-    private static Map<String,String> getLastNode(List<HistoricActivityInstance> resultList, String currentActivityId){
-        Map<String,String> backNode = new HashMap<>();
+    private static Map<String, String> getLastNode(List<HistoricActivityInstance> resultList, String currentActivityId) {
+        Map<String, String> backNode = new HashMap<>();
         //新建一个有序不重复集合
         //新建一个有序不重复集合
-        LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap();
-        for(HistoricActivityInstance hai : resultList){
-            linkedHashMap.put(hai.getActivityId(),hai.getAssignee());
+        LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap();
+        for (HistoricActivityInstance hai : resultList) {
+            linkedHashMap.put(hai.getActivityId(), hai.getAssignee());
         }
         }
         //分两种情况:当前节点在不在历史节点里面,当前节点在历史节点里
         //分两种情况:当前节点在不在历史节点里面,当前节点在历史节点里
         //情况1、当前节点不在历史节点里
         //情况1、当前节点不在历史节点里
@@ -5040,13 +5050,13 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         //判断历史节点中是否有重复节点
         //判断历史节点中是否有重复节点
         //if(originSize == duplicateRemovalSize){
         //if(originSize == duplicateRemovalSize){
         boolean flag = false;
         boolean flag = false;
-        for(Map.Entry entry: linkedHashMap.entrySet()){
-            if(currentActivityId.equals(entry.getKey())){
+        for (Map.Entry entry : linkedHashMap.entrySet()) {
+            if (currentActivityId.equals(entry.getKey())) {
                 flag = true;
                 flag = true;
                 break;
                 break;
             }
             }
         }
         }
-        if(!flag) {
+        if (!flag) {
             //当前节点不在历史节点里:最后一个节点是完成节点
             //当前节点不在历史节点里:最后一个节点是完成节点
             HistoricActivityInstance historicActivityInstance = resultList.get(originSize - 1);
             HistoricActivityInstance historicActivityInstance = resultList.get(originSize - 1);
             backNode.put("toActId", historicActivityInstance.getActivityId());
             backNode.put("toActId", historicActivityInstance.getActivityId());
@@ -5078,18 +5088,18 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         return null;
         return null;
     }
     }
 
 
-    private static Map<String,String> currentNodeInHis(LinkedHashMap<String,String> linkedHashMap,String currentActivityId){
+    private static Map<String, String> currentNodeInHis(LinkedHashMap<String, String> linkedHashMap, String currentActivityId) {
         //情况2、当前节点在历史节点里(已回退过的)
         //情况2、当前节点在历史节点里(已回退过的)
-        Map<String,String> backNode = new HashMap<>();
-        ListIterator<Map.Entry<String,String>> li = new ArrayList<>(linkedHashMap.entrySet()).listIterator();
+        Map<String, String> backNode = new HashMap<>();
+        ListIterator<Map.Entry<String, String>> li = new ArrayList<>(linkedHashMap.entrySet()).listIterator();
         //System.out.println("已回退过的");
         //System.out.println("已回退过的");
-        while (li.hasNext()){
-            Map.Entry<String,String> entry = li.next();
-            if(currentActivityId.equals(entry.getKey())){
+        while (li.hasNext()) {
+            Map.Entry<String, String> entry = li.next();
+            if (currentActivityId.equals(entry.getKey())) {
                 li.previous();
                 li.previous();
-                Map.Entry<String,String> previousEntry = li.previous();
-                backNode.put("toActId",previousEntry.getKey());
-                backNode.put("assignee",previousEntry.getValue());
+                Map.Entry<String, String> previousEntry = li.previous();
+                backNode.put("toActId", previousEntry.getKey());
+                backNode.put("assignee", previousEntry.getValue());
                 return backNode;
                 return backNode;
             }
             }
         }
         }

+ 15 - 0
src/main/resources/mapper/student/BaseStudentMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.student.mapper.BaseStudentMapper">
+    <select id="getStudentInfo" resultType="com.xjrsoft.module.student.vo.StudentInfoVo">
+        SELECT t1.user_id,t5.id as grade_id,t5.name AS grade_name,t4.id as class_id,t4.name AS class_name,t2.name AS student_name,t1.student_id,t2.gender,t3.enrollment_type,t6.id as major_id,t6.name AS major_name FROM base_student t1
+        INNER JOIN xjr_user t2 ON t1.user_id = t2.id
+        LEFT JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
+        LEFT JOIN base_class t4 ON t3.class_id = t4.id
+        LEFT JOIN base_grade t5 ON t3.grade_id = t5.id
+        LEFT JOIN base_major_set t6 ON t3.major_set_id = t6.id
+        where  t1.delete_mark=0 and t2.delete_mark=0 and t1.user_id=#{userId};
+    </select>
+</mapper>

+ 2 - 1
src/main/resources/sqlScript/20231120_sql.sql

@@ -58,9 +58,10 @@ CREATE TABLE base_student_scholarship_applicant
     `enabled_mark` INT NOT NULL COMMENT '有效标志',
     `enabled_mark` INT NOT NULL COMMENT '有效标志',
     `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
     `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
     `base_student_scholarship_category_id` bigint NULL DEFAULT NULL COMMENT '奖学金类别ID(base_student_scholarship_category)',
     `base_student_scholarship_category_id` bigint NULL DEFAULT NULL COMMENT '奖学金类别ID(base_student_scholarship_category)',
+    `scholarship_level` int NOT NULL DEFAULT 0 COMMENT '奖学金等级 0=无等级',
+    `amount` double NOT NULL DEFAULT 0 COMMENT '金额',
     `applicant_user_id` BIGINT NULL DEFAULT NULL COMMENT '申请人',
     `applicant_user_id` BIGINT NULL DEFAULT NULL COMMENT '申请人',
     `base_semester_id` bigint NULL DEFAULT NULL COMMENT '学期ID(base_semester)',
     `base_semester_id` bigint NULL DEFAULT NULL COMMENT '学期ID(base_semester)',
-    `scholarship_level` int NOT NULL DEFAULT 0 COMMENT '奖学金等级 0=无等级',
     `grade_name` VARCHAR(200) NULL DEFAULT NULL COMMENT '年级名称',
     `grade_name` VARCHAR(200) NULL DEFAULT NULL COMMENT '年级名称',
     `class_name` VARCHAR(200) NULL DEFAULT NULL COMMENT '班级名称',
     `class_name` VARCHAR(200) NULL DEFAULT NULL COMMENT '班级名称',
     `name` VARCHAR(200) NULL DEFAULT NULL COMMENT '姓名',
     `name` VARCHAR(200) NULL DEFAULT NULL COMMENT '姓名',

+ 36 - 0
src/test/java/com/xjrsoft/xjrsoftboot/CompletableFutureTest.java

@@ -0,0 +1,36 @@
+package com.xjrsoft.xjrsoftboot;
+
+import org.apache.tools.ant.taskdefs.Sleep;
+import org.junit.jupiter.api.Test;
+
+import java.util.concurrent.CompletableFuture;
+
+public class CompletableFutureTest {
+
+    @Test
+    public void CompletableFutureTest() throws InterruptedException {
+        CompletableFuture.runAsync(() -> {
+            try {
+                Thread.sleep(2000); // 暂停2秒
+                System.out.println(Thread.currentThread());
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+            System.out.println(1);
+        });
+
+        CompletableFuture.runAsync(() -> {
+            try {
+                Thread.sleep(1000); // 暂停1秒
+                System.out.println(Thread.currentThread());
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+
+            System.out.println(2);
+        });
+
+
+        Thread.sleep(1000000);
+    }
+}

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

@@ -762,6 +762,66 @@ public class FreeMarkerGeneratorTest {
         params.setDs(ds);
         params.setDs(ds);
 
 
 
 
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
+
+    /**
+     * 助学金项目
+     */
+    @Test
+    public void gcBaseStudentBursariesProject() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("base_student_bursaries_project");//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("devil");//作者名称
+        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);
+    }
+
+    /**
+     * 助学金申请学生信息
+     */
+    @Test
+    public void gcBaseStudentBursariesStudent() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("base_student_bursaries_student");//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("devil");//作者名称
+        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();
         IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
 
 
         apiGeneratorService.generateCodes(params);
         apiGeneratorService.generateCodes(params);