Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	yudao-module-as/yudao-module-as-biz/pom.xml
#	yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageService.java
#	yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageServiceImpl.java
houlai 5 mesiacov pred
rodič
commit
ee1b750f6c
61 zmenil súbory, kde vykonal 2420 pridanie a 760 odobranie
  1. 1 4
      yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java
  2. 14 0
      yudao-module-as/yudao-module-as-api/src/main/java/cn/iocoder/yudao/module/as/aidingstudentscollegemanage/AidingStudentsCollegeManageApi.java
  3. 58 0
      yudao-module-as/yudao-module-as-api/src/main/java/cn/iocoder/yudao/module/as/aidingstudentscollegemanage/dto/AidingStudentsCollegeManageDTO.java
  4. 3 0
      yudao-module-as/yudao-module-as-api/src/main/java/cn/iocoder/yudao/module/as/enums/ErrorCodeConstants.java
  5. 18 0
      yudao-module-as/yudao-module-as-biz/pom.xml
  6. 22 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/api/aidingstudentscollegemanage/AidingStudentsCollegeManageApiImpl.java
  7. 29 39
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/AidingStudentsPersonManageController.java
  8. 0 30
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageClassResultReqVO.java
  9. 4 4
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageClassVO.java
  10. 0 33
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageCollegeRespVO.java
  11. 0 29
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageDataPartRespVO.java
  12. 41 10
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageInfoPageReqVO.java
  13. 151 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageInfoRespVO.java
  14. 0 45
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageSchoolRespVO.java
  15. 9 4
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageSortReqVO.java
  16. 0 38
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManagerCollegePageReqVO.java
  17. 0 37
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentsPersonManageClassPageReqVO.java
  18. 0 51
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentsPersonManageClassRespVO.java
  19. 0 50
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentsPersonManageUploadRespVO.java
  20. 59 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/financialaidstudentmanage/FinancialAidStudentManageController.java
  21. 35 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/financialaidstudentmanage/vo/FinancialAidStudentManagePageReqVO.java
  22. 32 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/financialaidstudentmanage/vo/FinancialAidStudentManageRespVO.java
  23. 112 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/asProcessInstanceController.java
  24. 211 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/asTaskController.java
  25. 55 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/vo/task/asAidingPageReqVO.java
  26. 98 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/vo/task/asTaskRespVO.java
  27. 234 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/convert/task/asTaskConvert.java
  28. 4 5
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/dataobject/aidingstudentspersonmanage/AidingStudentPersonManageEvaluationResultDO.java
  29. 47 9
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/dataobject/aidingstudentspersonmanage/AidingStudentsPersonManageDO.java
  30. 54 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/dataobject/financialaidstudentmanage/FinancialAidStudentManageDO.java
  31. 47 4
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/mysql/aidingstudentspersonmanage/AidingStudentsPersonManageMapper.java
  32. 14 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/mysql/financialaidstudentmanage/FinancialAidStudentManageMapper.java
  33. 21 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageService.java
  34. 10 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageServiceImpl.java
  35. 33 23
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/AidingStudentsPersonManageService.java
  36. 160 109
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/AidingStudentsPersonManageServiceImpl.java
  37. 32 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/listener/BpmAidingStatusListener.java
  38. 33 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/financialaidstudentmanage/FinancialAidStudentManageService.java
  39. 102 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/financialaidstudentmanage/FinancialAidStudentManageServiceImpl.java
  40. 4 4
      yudao-module-as/yudao-module-as-biz/src/main/resources/mapper/aidingStudentsPersonManage/AidingStudentsPersonManageMapper.xml
  41. 12 0
      yudao-module-as/yudao-module-as-biz/src/main/resources/mapper/financialaidstudentmanage/FinancialAidStudentManageMapper.xml
  42. 4 0
      yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
  43. 2 2
      yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java
  44. 6 0
      yudao-module-bpm/yudao-module-bpm-biz/pom.xml
  45. 2 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java
  46. 2 2
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmActivityController.java
  47. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
  48. 3 3
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java
  49. 4 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskPageReqVO.java
  50. 7 6
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUndoReqVO.java
  51. 29 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmForCounselorExpression.java
  52. 185 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAidAssistantExpression.java
  53. 133 81
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAssignClassMutualExpression.java
  54. 119 101
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAssignClassSelfExpression.java
  55. 0 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
  56. 21 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java
  57. 82 6
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
  58. 5 5
      yudao-module-system/yudao-module-system-biz/pom.xml
  59. 40 2
      yudao-server/pom.xml
  60. 16 10
      yudao-server/src/main/resources/application-dev.yaml
  61. 0 10
      yudao-server/src/main/resources/application.yaml

+ 1 - 4
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java

@@ -74,10 +74,7 @@ public interface BaseMapperX<T> extends MPJBaseMapper<T> {
         // 转换返回
         return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
     }
-
-    default T selectOne(String field, Object value) {
-        return selectOne(new QueryWrapper<T>().eq(field, value));
-    }
+    
 
     default T selectOne(SFunction<T, ?> field, Object value) {
         return selectOne(new LambdaQueryWrapper<T>().eq(field, value));

+ 14 - 0
yudao-module-as/yudao-module-as-api/src/main/java/cn/iocoder/yudao/module/as/aidingstudentscollegemanage/AidingStudentsCollegeManageApi.java

@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.as.aidingstudentscollegemanage;
+
+import cn.iocoder.yudao.module.as.aidingstudentscollegemanage.dto.AidingStudentsCollegeManageDTO;
+
+import java.util.Set;
+
+
+public interface AidingStudentsCollegeManageApi {
+
+    AidingStudentsCollegeManageDTO getManageId(String ProcessInstanceId);
+
+    Set<Long> getAidingStudentsCollegeAssistant(Long collegeId, Long manageId);
+
+}

+ 58 - 0
yudao-module-as/yudao-module-as-api/src/main/java/cn/iocoder/yudao/module/as/aidingstudentscollegemanage/dto/AidingStudentsCollegeManageDTO.java

@@ -0,0 +1,58 @@
+package cn.iocoder.yudao.module.as.aidingstudentscollegemanage.dto;
+
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 综测单项 DO
+ *
+ * @author 海绵宝宝
+ */
+@Data
+
+public class AidingStudentsCollegeManageDTO {
+
+    private Long id;
+    /**
+     * 学生提交时间段时间
+     */
+    private LocalDateTime submitTime;
+    /**
+     * 班级民主评议时间段
+     */
+    private LocalDateTime evaluationTime;
+    /**
+     * 学院审核时间段
+     */
+    private LocalDateTime auditTime;
+    /**
+     * 公示时间段
+     */
+    private LocalDateTime publicityTime;
+    /**
+     * 状态值,待发布0,评审中1,公示中2,,已上报3
+     */
+    private Integer comStatus;
+    /**
+     * 项目管理id
+     */
+    private Long manageId;
+    /**
+     * 学院部门id
+     */
+    private Long collegeId;
+    /**
+     * 学院通知文件
+     */
+    private String collegeNoticeFile;
+    /**
+     * 学院通知文件名称
+     */
+    private String collegeNoticeFileName;
+    /**
+     * 上报时间
+     */
+    private LocalDateTime reportingTime;
+}

+ 3 - 0
yudao-module-as/yudao-module-as-api/src/main/java/cn/iocoder/yudao/module/as/enums/ErrorCodeConstants.java

@@ -21,4 +21,7 @@ public interface ErrorCodeConstants {
 
 
 
+    ErrorCode STUDENT_INFO_EXISTS = new ErrorCode(2_009_000_009,  "学生信息已存在");
+    ErrorCode CLASS_DISCUSSION_INFO_EXISTS = new ErrorCode(2_009_000_010,  "班级材料已存在");
+
 }

+ 18 - 0
yudao-module-as/yudao-module-as-biz/pom.xml

@@ -68,6 +68,24 @@
             <groupId>org.springframework</groupId>
             <artifactId>spring-test</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-system-biz</artifactId>
+            <version>2.1.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-bpm-biz</artifactId>
+            <version>2.1.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-bpm-biz</artifactId>
+            <version>2.1.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
 
 
     </dependencies>

+ 22 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/api/aidingstudentscollegemanage/AidingStudentsCollegeManageApiImpl.java

@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.as.api.aidingstudentscollegemanage;
+
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.as.aidingstudentscollegemanage.AidingStudentsCollegeManageApi;
+import cn.iocoder.yudao.module.as.aidingstudentscollegemanage.dto.AidingStudentsCollegeManageDTO;
+import org.springframework.stereotype.Service;
+import java.util.Set;
+import javax.annotation.Resource;
+@Service
+public class AidingStudentsCollegeManageApiImpl implements AidingStudentsCollegeManageApi {
+
+    @Override
+    public AidingStudentsCollegeManageDTO getManageId(String ProcessInstanceId) {
+        return null;
+    }
+
+    @Override
+    public Set<Long> getAidingStudentsCollegeAssistant(Long collegeId, Long manageId) {
+        return null;
+    }
+
+}

+ 29 - 39
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/AidingStudentsPersonManageController.java

@@ -32,87 +32,77 @@ public class AidingStudentsPersonManageController {
     @GetMapping("/before-upload")
     @Operation(summary = "回显学生上传材料")
     @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:before-upload')")
-    public CommonResult<AidingStudentsPersonManageUploadRespVO> beforeuploadAidingStudentsPersonManage() {
+    public CommonResult<AidingStudentPersonManageInfoRespVO> beforeuploadAidingStudentsPersonManage() {
         return success(aidingStudentsPersonManageService.beforeuploadAidingStudentsManage());
     }
 
     @PostMapping("/upload")
     @Operation(summary = "学生上传材料")
     @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:upload')")
-    public CommonResult<Boolean> uploadAidingStudentsPersonManage(@Valid @RequestBody AidingStudentsPersonManageUploadRespVO uploadVO) {
+    public CommonResult<Boolean> uploadAidingStudentsPersonManage(@Valid @RequestBody AidingStudentPersonManageInfoRespVO uploadVO) {
         aidingStudentsPersonManageService.uploadAidingStudentsManage(uploadVO);
         return success(true);
     }
 
     @GetMapping("/check")
-    @Operation(summary = "学生查看申请信息")
+    @Operation(summary = "学生查看自己的申请信息")
     @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:check')")
-    public CommonResult<AidingStudentsPersonManageUploadRespVO> checkAidingStudentsPersonManage() {
+    public CommonResult<AidingStudentPersonManageInfoRespVO> checkAidingStudentsPersonManage() {
         return success(aidingStudentsPersonManageService.checkAidingStudentsManage());
     }
 
     @PutMapping("/edit")
     @Operation(summary = "学生修改申请信息")
     @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:edit')")
-    public CommonResult<Boolean> editAidingStudentsPersonManage(@Valid @RequestBody AidingStudentsPersonManageUploadRespVO uploadVO) {
+    public CommonResult<Boolean> editAidingStudentsPersonManage(@Valid @RequestBody AidingStudentPersonManageInfoRespVO uploadVO) {
         aidingStudentsPersonManageService.editAidingStudentsManage(uploadVO);
         return success(true);
     }
 
-    @GetMapping("/college-get-page")
-    @Operation(summary = "学院模糊查询获取学生申请名单分页")
-    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:college-get-page')")
-    public CommonResult<PageResult<AidingStudentPersonManageCollegeRespVO>> getAidingStudentsPersonManageCollegePage(@Valid @RequestBody AidingStudentPersonManagerCollegePageReqVO pageReqVO) {
-        return success(aidingStudentsPersonManageService.getAidingStudentsPersonManageCollegePage(pageReqVO));
+    @GetMapping("/college-get-student-data")
+    @Operation(summary = "学院信息数据统计")
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:college-get-student-data')")
+    public CommonResult<PageResult<AidingStudentPersonManageInfoRespVO>> getAidingStudentsPersonManageCollegeData(@Valid @RequestBody AidingStudentPersonManageInfoPageReqVO pageReqVO) {
+        return success(aidingStudentsPersonManageService.getAidingStudentsPersonManageCollegeData(pageReqVO));
     }
 
 
-    @GetMapping("/class-get-page")
-    @Operation(summary = "班级模糊查询获取学生申请名单分页")
-    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:class-get-page')")
-    public CommonResult<PageResult<AidingStudentsPersonManageClassRespVO>> getAidingStudentsPersonManagePage(@Valid @RequestBody AidingStudentsPersonManageClassPageReqVO pageReqVO) {
-        PageResult<AidingStudentsPersonManageDO> pageResult = aidingStudentsPersonManageService.getAidingStudentsPersonManageClassPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, AidingStudentsPersonManageClassRespVO.class));
-    }
-
-    @PutMapping("/all-sort")
-    @Operation(summary = "班级定序 - 集体")
-    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:all-sort')")
+    @PutMapping("/sort")
+    @Operation(summary = "定序")
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:sort')")
     public CommonResult<Boolean> allsortAidingStudentsPersonManage(@Valid @RequestBody List<AidingStudentPersonManageSortReqVO> ids){
         aidingStudentsPersonManageService.allsortAidingStudentsManage(ids);
         return success(true);
     }
 
-    @PutMapping("/person-sort")
-    @Operation(summary = "班级定序 - 单个人 - 防住发生错误")
-    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:person-sort')")
-    public CommonResult<Boolean> sortAidingStudentsPersonManage(@RequestParam("id") Long id,
-                                                                @RequestParam("sort")Integer sort,
-                                                                @RequestParam("difficultType")Integer difficultType){
-        aidingStudentsPersonManageService.sortAidingStudentsManage(id,sort,difficultType);
-        return success(true);
-    }
 
     @PostMapping("/upload-result")
     @Operation(summary = "班主任上传线下讨论结果照片")
     @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:upload-result')")
-    public CommonResult<Boolean> uploadResultAidingStudentsPersonManage(@Valid @RequestBody AidingStudentPersonManageClassResultReqVO classuploadVO) {
+    public CommonResult<Boolean> uploadResultAidingStudentsPersonManage(@Valid @RequestBody AidingStudentPersonManageInfoPageReqVO classuploadVO) {
         aidingStudentsPersonManageService.uploadResultAidingStudentsManage(classuploadVO);
         return success(true);
     }
 
-    @GetMapping("/school-get-page")
-    @Operation(summary = "学校模糊查询获取学生申请名单分页")
-    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:school-get-page')")
-    public CommonResult<PageResult<AidingStudentPersonManageSchoolRespVO>> teachergetAidingStudentsPersonManagePage(@Valid @RequestBody AidingStudentPersonManageSchoolPageReqVO pageReqVO) {
-        return success(aidingStudentsPersonManageService.schoolgetAidingStudentsPersonManagePage(pageReqVO));
+    @GetMapping("/page")
+    @Operation(summary = "学生信息分页")
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:page')")
+    public CommonResult<PageResult<AidingStudentPersonManageInfoRespVO>> AidingStudentsPersonManagePage(@Valid @RequestBody AidingStudentPersonManageInfoPageReqVO pageReqVO) {
+        return success(aidingStudentsPersonManageService.AidingStudentsPersonManagePage(pageReqVO));
     }
 
-    @GetMapping("/school-get-student-info-part")
+    @GetMapping("/school-get-student-data")
     @Operation(summary = "学校获取统计数据(部分)")
-    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:school-get-student-info-part')")
-    public CommonResult<AidingStudentPersonManageDataPartRespVO> tteachergetAidingStudentsPersonManageData(@Valid @RequestParam("manageId")Integer manageId) {
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:school-get-student-data')")
+    public CommonResult<AidingStudentPersonManageInfoRespVO> schoolgetAidingStudentsPersonManageData(@Valid @RequestParam("manageId")Long manageId) {
         return success(aidingStudentsPersonManageService.schoolgetAidingStudentsPersonManageData(manageId));
     }
 
+    @GetMapping("/school-audit-student-info")
+    @Operation(summary = "学校审核学生信息")
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:school-audit-student-info')")
+    public CommonResult<AidingStudentPersonManageInfoRespVO> schoolauditAidingStudentsPersonManageData(@Valid @RequestParam("id")Long id) {
+        return success(aidingStudentsPersonManageService.schoolauditAidingStudentsPersonManageData(id));
+    }
+
 }

+ 0 - 30
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageClassResultReqVO.java

@@ -1,30 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-/**
- * @autor WoVoM
- * @data 2024/7/8 19:59
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理 班级Resp VO")
-@Data
-@ExcelIgnoreUnannotated
-public class AidingStudentPersonManageClassResultReqVO {
-
-    private String major;
-
-    private String grade;
-    // 班级
-    private String className;
-    // 班主任名字(负责人)
-    private String teacherName;
-    // 照片
-    private String image;
-    // 学院id
-    private Integer collegeManageId;
-    // 项目ID
-    private Integer manageId;
-}

+ 4 - 4
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageClassVO.java

@@ -13,20 +13,20 @@ import lombok.Data;
 @Data
 @ExcelIgnoreUnannotated
 public class AidingStudentPersonManageClassVO {
+    // 专业
     private String major;
+    // 年级
     private String grade;
     // 班级名称
     private String className;
-
+    // 总提交人数
+    private Integer Count;
     // 审核人数
     private Integer classAll;
-
     // 待审核人数
     private Integer classAudit;
-
     // 待修改人数
     private Integer classEdit;
-
     // 已经通过人数
     private Integer classPass;
 }

+ 0 - 33
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageCollegeRespVO.java

@@ -1,33 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @autor WoVoM
- * @data 2024/7/9 10:14
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理 学院 Resp VO")
-@Data
-@ExcelIgnoreUnannotated
-public class AidingStudentPersonManageCollegeRespVO {
-    private String major;
-    private String grade;
-    // 学院申请人数
-    private Integer collegeAll;
-
-    // 学院待审核人数
-    private Integer collegeAudit;
-
-    // 学院待修改人数
-    private Integer collegeEdit;
-
-    // 已经通过人数
-    private Integer collegePass;
-
-    private List<AidingStudentPersonManageClassVO> list;
-}

+ 0 - 29
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageDataPartRespVO.java

@@ -1,29 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @autor WoVoM
- * @data 2024/7/11 14:22
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理 班级Resp VO")
-@Data
-@ExcelIgnoreUnannotated
-public class AidingStudentPersonManageDataPartRespVO {
-    private String major;
-
-    private String grade;
-
-    // 提交人数
-    private Integer allsubmit;
-    // 审批完成人数
-    private Integer completedNumber;
-    // 各个学院申请人数\通过人数
-    private List<Map<String, Object>> collegeNumber;
-}

+ 41 - 10
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageSchoolPageReqVO.java → yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageInfoPageReqVO.java

@@ -8,29 +8,60 @@ import lombok.ToString;
 
 /**
  * @autor WoVoM
- * @data 2024/7/10 10:06
+ * @data 2024/7/12 21:48
  * @@version 1.0
  */
 @Schema(description = "管理后台 - 家庭困难认定项目管理分页 - 学生 Request VO")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
-public class AidingStudentPersonManageSchoolPageReqVO extends PageParam {
+public class AidingStudentPersonManageInfoPageReqVO extends PageParam {
+    /**
+     * 公共字段
+     */
+    // 专业
+    private String major;
+    // 年级
+    private String grade;
+    // 班级
+    private String className;
+    // 班主任名字(负责人)
+    private String teacherName;
+    // 照片
+    private String image;
+    // 学院id
+    private Long collegeManageId;
+    // 项目ID
+    private Long manageId;
+    /**
+     * 班级分页请求
+     */
+    //姓名
+    private String nickname;
+    // 困难类型
+    private Integer difficultType;
+    // 学号
+    private String studentId;
+    // 状态
+    private Integer status;
+    /**
+     * 学院分页请求
+     */
+    // 学院项目ID
+    // 项目ID
+    // 专业
+    // 年级
+    // 班级
+    /**
+     * 学校分页请求
+     */
     // 学院
     private String collegeName;
     // 项目ID
-    private Integer manageId;
     // 年级
-    private String grade;
     // 班级
-    private String clName;
     // 学号
-    private String studentSno;
     // 姓名
-    private String nickname;
     // 申请类型
-    private Integer difficultType;
     // 专业
-    private String major;
-
 }

+ 151 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageInfoRespVO.java

@@ -0,0 +1,151 @@
+package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+
+ * @autor WoVoM
+    * @data 2024/7/12 20:58
+    * @@version 1.0
+    */
+@Schema(description = "管理后台 - 家庭困难认定项目管理 班级Resp VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AidingStudentPersonManageInfoRespVO {
+
+    /**
+     * 公共字段
+     */
+    // 序号(主键)
+    private Long id;
+    // 专业
+    private String major;
+    // 年级
+    private String grade;
+    // 姓名
+    private String nickname;
+    // 困难类型
+    private Integer difficultType;
+    // 附件PDF
+    private String pdf;
+    // 证明材料
+    private String evidence;
+    // 排序
+    private Integer sort;
+    // 学院项目id
+    private Long collegeManageId;
+    // 项目ID
+    private Long manageId;
+    // 班级
+    private String className;
+    // 备注
+    private String notes;
+    // 学号
+    private String studentId;
+    // 入学年份
+    private String enrollmentYear;
+    //身份证号
+    private String idCard;
+    // 户籍地
+    private String registeredResidence;
+    // 状态
+    private Integer status;
+    // 班级建议困难类型
+    private Integer classSuggestionDifficultType;
+    // 学院建议困难类型
+    private Integer collegeSuggestionDifficultType;
+    // 学校建议困难类型
+    private Integer schoolSuggestionDifficultType;
+    // 流程
+    private String processInstanceId;
+    /**
+     * 学生(上传材料)
+     */
+    // id
+    //姓名
+
+
+    /**
+     * 班级
+     */
+    //姓名
+    // 困难类型
+    // 附件PDF
+    // 证明材料
+    // 排序
+    // 学院id
+    // 项目ID
+    // 班级
+    // 备注
+    // 学号
+    // 入学年份
+    //身份证号
+    // 户籍地
+    // 状态
+    // 专业名称
+    // 年级
+
+
+    /**
+     * 学院
+     */
+    /**
+     * 数据部分
+     */
+    // 学院申请人数
+    private Integer collegeAll;
+    // 学院待审核人数
+    private Integer collegeAudit;
+    // 学院待修改人数
+    private Integer collegeEdit;
+    // 已经通过人数
+    private Integer collegePass;
+    // 待民主评议班级数量
+    private Integer waitingForEvaluationNumber;
+    // 已经评议班级数量
+    private Integer doneEvaluationNumber;
+    // 各个班级封装的信息
+    private List<AidingStudentPersonManageClassVO> list;
+
+    // TODO 往年申请人数、审批通过人数(没有项目编号跟学院项目编号,不太好找)
+
+    /**
+     * 学校
+     */
+
+    // 表格
+    // id
+    // 学院名字
+    private String collegeName;
+    // 年级
+    // 专业
+    // 班级
+    // 学院 项目管理ID
+    // 学号
+    // 姓名
+    // 申请类型
+    // 申请时间
+
+    private LocalDateTime createTime;
+    // 状态(待审核,待民主平移,通过,公示中,待学校审核,学校公示中,规定整理中,已经完结)
+
+
+    /**
+     * 补充部分数据
+     */
+    // 提交人数
+    private Integer allsubmit;
+    // 审批完成人数
+    private Integer completedNumber;
+    // 各个学院申请人数\通过人数
+    private List<Map<String, Object>> collegeNumber;
+    // 班级民主评议表
+    private String image;
+
+}

+ 0 - 45
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageSchoolRespVO.java

@@ -1,45 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @autor WoVoM
- * @data 2024/7/10 9:50
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理 班级Resp VO")
-@Data
-@ExcelIgnoreUnannotated
-public class AidingStudentPersonManageSchoolRespVO {
-    /**
-     * 表格需要数据
-     */
-    // id
-    private Integer id;
-    // 学院
-    private String collegeName;
-    // 年级
-    private String grade;
-    // 专业
-    private String major;
-    // 班级
-    private String className;
-    // 学院 项目管理ID
-    private Integer collegeManageId;
-    // 学号
-    private String studentSno;
-    // 姓名
-    private String nickname;
-    // 申请类型
-    private Integer difficultType;
-    // 申请时间
-    private LocalDateTime createTime;
-    // 状态(待审核,待民主平移,通过,公示中,待学校审核,学校公示中,规定整理中,已经完结)
-    private Integer status;
-}

+ 9 - 4
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageSortReqVO.java

@@ -15,12 +15,17 @@ import lombok.ToString;
 @ToString(callSuper = true)
 public class AidingStudentPersonManageSortReqVO {
     // 学生ID(主键)
-    private Integer id;
+    private Long id;
     // 排序
     private Integer sort;
-    // 困难类型
-    private Integer difficultType;
-
+    // 班级建议困难类型
+    private Integer classSuggestionDifficultType;
+    // 学院建议困难类型
+    private Integer collegeSuggestionDifficultType;
+    // 学校建议困难类型
+    private Integer schoolSuggestionDifficultType;
+    // 专业
     private String major;
+    // 年级
     private String grade;
 }

+ 0 - 38
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManagerCollegePageReqVO.java

@@ -1,38 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import java.util.List;
-
-/**
- * @autor WoVoM
- * @data 2024/7/9 10:19
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理分页 - 学生 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class AidingStudentPersonManagerCollegePageReqVO extends PageParam {
-
-    // 学院项目Id
-    private Integer collegeManageId;
-
-    // 项目ID
-    private Integer manageId;
-
-    // 专业
-    private String major;
-
-    // 年级
-    private String grade;
-
-    // 班级
-    private String clName;
-
-
-}

+ 0 - 37
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentsPersonManageClassPageReqVO.java

@@ -1,37 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import java.time.LocalDateTime;
-
-/**
- * @autor WoVoM
- * @data 2024/7/8 18:40
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理分页 - 学生 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class AidingStudentsPersonManageClassPageReqVO extends PageParam {
-    // 班级名称
-    private String className;
-    // 学院Id
-    private Integer collegeManageId;
-    // 项目ID
-    private Integer manageId;
-    //姓名
-    private String nickname;
-    // 困难类型
-    private Integer difficultType;
-    // 学号
-    private String studentSno;
-    // 状态
-    private Integer status;
-    private String major;
-    private String grade;
-}

+ 0 - 51
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentsPersonManageClassRespVO.java

@@ -1,51 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * @autor WoVoM
- * @data 2024/7/8 16:33
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理 Resp VO")
-@Data
-@ExcelIgnoreUnannotated
-public class AidingStudentsPersonManageClassRespVO {
-    private Integer id;
-    //姓名
-    private String nickname;
-    // 困难类型
-    private Integer difficultType;
-    // 附件PDF
-    private String pdf;
-    // 证明材料
-    private String evidence;
-    // 排序
-    private Integer sort;
-    // 学院id
-    private Integer collegeManageId;
-    // 项目ID
-    private Integer manageId;
-    // 班级 :计算机类2023-1班
-    private String className;
-    // 备注
-    private String notes;
-    // 学号
-    private String studentSno;
-    // 入学年份
-    private String enrollmentYear;
-    //身份证号
-    private String idCard;
-    // 户籍地
-    private String registeredResidence;
-    // 状态
-    private Integer status;
-    // 专业名称
-    private String major;
-    // 年级
-    private String grade;
-}

+ 0 - 50
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentsPersonManageUploadRespVO.java

@@ -1,50 +0,0 @@
-package cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * @autor WoVoM
- * @data 2024/7/8 15:57
- * @@version 1.0
- */
-@Schema(description = "管理后台 - 家庭困难认定项目管理 Upload VO")
-@Data
-@ExcelIgnoreUnannotated
-public class AidingStudentsPersonManageUploadRespVO {
-    // id
-    private Integer id;
-    //姓名
-    private String nickname;
-    // 困难类型
-    private Integer difficultType;
-    // 附件PDF
-    private String pdf;
-    // 证明材料
-    private String evidence;
-    // 排序
-    private Integer sort;
-    // 学院项目id
-    private Integer collegeManageId;
-    // 项目ID
-    private Integer manageId;
-    // 班级
-    private String className;
-    // 备注
-    private String notes;
-    // 学号
-    private String studentSno;
-    // 入学年份
-    private String enrollmentYear;
-    //身份证号
-    private String idCard;
-    // 户籍地
-    private String registeredResidence;
-    // 状态
-    private Integer status;
-    private String major;
-    private String grade;
-}

+ 59 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/financialaidstudentmanage/FinancialAidStudentManageController.java

@@ -0,0 +1,59 @@
+package cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo.FinancialAidStudentManagePageReqVO;
+import cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo.FinancialAidStudentManageRespVO;
+import cn.iocoder.yudao.module.as.service.financialaidstudentmanage.FinancialAidStudentManageService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+/**
+ * @autor WoVoM
+ * @data 2024/7/16 14:54
+ * @@version 1.0
+ */
+@Tag(name = "管理后台 - 助学金评定项目学生管理")
+@RestController
+@RequestMapping("/as/financial-aid-student-manage")
+@Validated
+public class FinancialAidStudentManageController {
+
+    @Autowired
+    private FinancialAidStudentManageService financialAidStudentManageService;
+
+    @GetMapping("/before-upload")
+    @Operation(summary = "回显学生上传材料")
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:before-upload')")
+    public CommonResult<FinancialAidStudentManageRespVO> beforeuploadAidingStudentsPersonManage(
+            @Valid @RequestParam("manageId")Integer manageId,
+            @Valid @RequestParam("collegeManageId")Integer collegeManageId) {
+        return success(financialAidStudentManageService.beforeuploadAidingStudentsManage(manageId, collegeManageId));
+    }
+
+    @PostMapping("/upload")
+    @Operation(summary = "学生上传材料")
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:upload')")
+    public CommonResult<Boolean> uploadAidingStudentsPersonManage(@Valid @RequestBody FinancialAidStudentManageRespVO uploadVO) {
+        financialAidStudentManageService.uploadAidingStudentsManage(uploadVO);
+        return success(true);
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "学生信息分页")
+    @PreAuthorize("@ss.hasPermission('as:aiding-students-person-manage:page')")
+    public CommonResult<PageResult<FinancialAidStudentManageRespVO>> schoolgetAidingStudentsPersonManagePage(@Valid @RequestBody FinancialAidStudentManagePageReqVO pageReqVO) {
+        return success(financialAidStudentManageService.getAidingStudentsPersonManagePage(pageReqVO));
+    }
+
+
+
+}

+ 35 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/financialaidstudentmanage/vo/FinancialAidStudentManagePageReqVO.java

@@ -0,0 +1,35 @@
+package cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @autor WoVoM
+ * @data 2024/7/16 19:46
+ * @@version 1.0
+ */
+@Schema(description = "管理后台 - 助学金评定项目学生管理 Requst VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class FinancialAidStudentManagePageReqVO extends PageParam {
+    // 学校项目ID
+    private Long manageId;
+    // 学校项目ID
+    private Long collegeManageId;
+    // 学院名称
+    private String collegeName;
+    // 班级名称
+    private String className;
+    // 学生名称
+    private String nickname;
+    // 专业
+    private String major;
+    // 年级
+    private String grade;
+    // 学号
+    private String studentId;
+}

+ 32 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/financialaidstudentmanage/vo/FinancialAidStudentManageRespVO.java

@@ -0,0 +1,32 @@
+package cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @autor WoVoM
+ * @data 2024/7/16 15:03
+ * @@version 1.0
+ */
+@Schema(description = "管理后台 - 助学金评定项目学生管理 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class FinancialAidStudentManageRespVO {
+    // 学校项目ID
+    private Long manageId;
+    // 学院项目ID
+    private Long collegeManageId;
+    // 学号
+    private String studentId;
+    // 学院名称
+    private String collegeName;
+    // 班级名称
+    private String className;
+    // 学生名称
+    private String nickname;
+    // 专业
+    private String major;
+    // 年级
+    private String grade;
+}

+ 112 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/asProcessInstanceController.java

@@ -0,0 +1,112 @@
+package cn.iocoder.yudao.module.as.controller.admin.task;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.eveProcessInstanceReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.eveProcessInstanceRespVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskPageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
+import cn.iocoder.yudao.module.bpm.convert.task.BpmProcessInstanceConvert;
+import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
+import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils;
+import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService;
+import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
+import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
+import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.flowable.engine.history.HistoricProcessInstance;
+import org.flowable.engine.repository.ProcessDefinition;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.task.api.Task;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+
+@Tag(name = "管理后台 - 流程实例") // 流程实例,通过流程定义创建的一次“申请”
+@RestController
+@RequestMapping("/as/process-instance")
+@Validated
+public class asProcessInstanceController {
+
+    @Resource
+    private BpmProcessInstanceService processInstanceService;
+    @Resource
+    private BpmTaskService taskService;
+    @Resource
+    private BpmProcessDefinitionService processDefinitionService;
+    @Resource
+    private BpmCategoryService categoryService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+    @Resource
+    private DeptApi deptApi;
+
+    @GetMapping("todo-page")
+    @Operation(summary = "获取 Todo 待办任务分页")
+    @PreAuthorize("@ss.hasPermission('bpm:task:query')")
+    public CommonResult<PageResult<BpmTaskRespVO>> getTaskTodoPage(@Valid BpmTaskPageReqVO pageVO) {
+        PageResult<Task> pageResult = taskService.getTaskTodoPage(WebFrameworkUtils.getLoginUserId(), pageVO);
+        if (CollUtil.isEmpty(pageResult.getList())) {
+            return success(PageResult.empty());
+        }
+
+        // 拼接数据
+        Map<String, ProcessInstance> processInstanceMap = processInstanceService.getProcessInstanceMap(
+                convertSet(pageResult.getList(), Task::getProcessInstanceId));
+        Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
+                convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
+        return success(BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, userMap));
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得指定流程实例", description = "在【流程详细】界面中,进行调用")
+    @Parameter(name = "id", description = "流程实例的编号", required = true)
+    @PreAuthorize("@ss.hasAnyPermissions('eve:task:query','eve:achievement:query')  || @ss.hasAnyRoles('xgcxueshengguanli')")
+    public CommonResult<BpmProcessInstanceRespVO> getProcessInstance(@RequestParam("id") String id) {
+        HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(id);
+        if (processInstance == null) {
+            return success(null);
+        }
+        // 拼接返回
+        ProcessDefinition processDefinition = processDefinitionService.getProcessDefinition(
+                processInstance.getProcessDefinitionId());
+        BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo(
+                processInstance.getProcessDefinitionId());
+        String bpmnXml = BpmnModelUtils.getBpmnXml(
+                processDefinitionService.getProcessDefinitionBpmnModel(processInstance.getProcessDefinitionId()));
+        AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(processInstance.getStartUserId()));
+        DeptRespDTO dept = null;
+        if (startUser != null) {
+            dept = deptApi.getDept(startUser.getDeptId());
+        }
+        return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstance(processInstance,
+                processDefinition, processDefinitionInfo, bpmnXml, startUser, dept));
+    }
+
+}

+ 211 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/asTaskController.java

@@ -0,0 +1,211 @@
+package cn.iocoder.yudao.module.as.controller.admin.task;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
+import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageClassVO;
+import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageInfoPageReqVO;
+import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageInfoRespVO;
+import cn.iocoder.yudao.module.as.controller.admin.task.vo.task.asTaskRespVO;
+import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentsmanage.AidingStudentsManageDO;
+import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.AidingStudentsPersonManageDO;
+import cn.iocoder.yudao.module.as.service.aidingstudentsmanage.AidingStudentsManageService;
+import cn.iocoder.yudao.module.as.service.aidingstudentspersonmanage.AidingStudentsPersonManageService;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
+import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
+import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
+import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
+import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
+import cn.iocoder.yudao.module.as.convert.task.asTaskConvert;
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.flowable.engine.history.HistoricProcessInstance;
+import org.flowable.task.api.Task;
+import org.flowable.task.api.history.HistoricTaskInstance;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
+import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
+
+@Tag(name = "管理后台 - 流程任务实例")
+@RestController
+@RequestMapping("/as/task")
+@Validated
+public class asTaskController {
+
+    @Resource
+    private BpmTaskService taskService;
+    @Resource
+    private BpmProcessInstanceService processInstanceService;
+    @Resource
+    private BpmFormService formService;
+    @Resource
+    private AdminUserApi adminUserApi;
+    @Resource
+    private DeptApi deptApi;
+    @Resource
+    private AidingStudentsPersonManageService aidingStudentsPersonManageService;
+    @Resource
+    private AidingStudentsManageService aidingStudentsManageService;
+    @GetMapping("/todo-page-aiding")
+    @Operation(summary = "获取 Todo 家庭经济困难认定审批待办任务分页")
+    @PreAuthorize("@ss.hasPermission('eve:task:query')")
+    public CommonResult<List<AidingStudentPersonManageClassVO>> getTaskTodoPageAiding(
+            @Valid BpmTaskPageReqVO pageVO) {
+        //获取我的任务中家困任务的列表
+        List<Task> ListResult = taskService.getTaskTodoPageAidingList(getLoginUserId(), pageVO);
+
+        if (CollUtil.isEmpty(ListResult)) {
+            return success(null);
+        }
+
+        List<AidingStudentsPersonManageDO> aidingStudentsPersonList =
+                aidingStudentsPersonManageService.selectByProcessInstanceIdsGroupByClass(
+                        convertList(ListResult,Task::getProcessInstanceId),pageVO
+        );
+
+        Map<Long, AidingStudentsManageDO> aidingStudentsManageMap =
+                aidingStudentsManageService.getAidingStudentsManageMap(convertSet(aidingStudentsPersonList
+                        , AidingStudentsPersonManageDO::getManageId));
+
+        Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
+                convertSet(aidingStudentsPersonList, AidingStudentsPersonManageDO::getUserId));
+        Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(
+                convertSet(userMap.values(), AdminUserRespDTO::getDeptId));
+
+        return success(asTaskConvert.INSTANCE.buildTodoTaskPageAiding(
+                userMap,deptMap,aidingStudentsManageMap,aidingStudentsPersonList));
+    }
+
+    @GetMapping("/done-page-aiding")
+    @Operation(summary = "获取 Done 家庭经济困难认定审批已办任务分页")
+    @PreAuthorize("@ss.hasPermission('eve:task:query')")
+    public CommonResult<Map<String,List<AidingStudentPersonManageInfoPageReqVO>>> getTaskDonePageComprehensive(@Valid BpmTaskPageReqVO pageVO) {
+        List<HistoricTaskInstance> pageResult = taskService.getTaskDonePageComprehensive(getLoginUserId(), pageVO);
+        if (CollUtil.isEmpty(pageResult)) {
+            return success(null);
+        }
+
+        //根据当前任务的idList获取 ,返回关于项目与班级分组的学生材料
+        List<AidingStudentsPersonManageDO> aidingStudentsPersonList =
+                aidingStudentsPersonManageService.getAidingStudentsPersonManageClassPage(
+                        convertList(pageResult,HistoricTaskInstance::getProcessInstanceId),pageVO
+                );
+
+        Map<String, List<AidingStudentPersonManageInfoPageReqVO>> classNameMap =
+                BeanUtils.toBean(aidingStudentsPersonList, AidingStudentPersonManageInfoPageReqVO.class).stream()
+                        .collect(Collectors.groupingBy(AidingStudentPersonManageInfoPageReqVO::getClassName));
+
+        return success(classNameMap);
+    }
+    @GetMapping("/list-by-process-instance-id")
+    @Operation(summary = "获得指定流程实例的任务列表", description = "包括完成的、未完成的")
+    @Parameter(name = "processInstanceId", description = "流程实例的编号", required = true)
+    @PreAuthorize("@ss.hasAnyPermissions('eve:task:query','eve:achievement:query') || @ss.hasAnyRoles('xgcxueshengguanli')" )
+    public CommonResult<List<BpmTaskRespVO>> getTaskListByProcessInstanceId(
+            @RequestParam("processInstanceId") String processInstanceId) {
+        List<HistoricTaskInstance> taskList = taskService.getTaskListByProcessInstanceId(processInstanceId);
+        if (CollUtil.isEmpty(taskList)) {
+            return success(Collections.emptyList());
+        }
+        // 拼接数据
+        HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(processInstanceId);
+        // 获得 User 和 Dept Map
+        Set<Long> userIds = convertSetByFlatMap(taskList, task ->
+                Stream.of(NumberUtils.parseLong(task.getAssignee()), NumberUtils.parseLong(task.getOwner())));
+        userIds.add(NumberUtils.parseLong(processInstance.getStartUserId()));
+        Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
+        Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(
+                convertSet(userMap.values(), AdminUserRespDTO::getDeptId));
+        // 获得 Form Map
+        Map<Long, BpmFormDO> formMap = formService.getFormMap(
+                convertSet(taskList, task -> NumberUtils.parseLong(task.getFormKey())));
+        return success(BpmTaskConvert.INSTANCE.buildTaskListByProcessInstanceId(taskList, processInstance,
+                formMap, userMap, deptMap));
+    }
+
+    @PutMapping("/approve")
+    @Operation(summary = "通过单项家庭经济困难认定审批")
+    @PreAuthorize("@ss.hasPermission('eve:task:update')")
+    public CommonResult<Boolean> approveTask(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
+        taskService.approveTaskAchievement(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/approve-edit")
+    @Operation(summary = "单项审批修改")
+    @PreAuthorize("@ss.hasPermission('eve:achievement:update')")
+    public CommonResult<Boolean> approveTaskEdit(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
+        taskService.approveTaskAchievement(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/approve-people")
+    @Operation(summary = "整体通过家庭经济困难认定审批")
+    @PreAuthorize("@ss.hasPermission('eve:task:update')")
+    public CommonResult<Boolean> approveTaskByPeople(@Valid @RequestBody List<BpmTaskApproveReqVO> reqVOList) {
+        taskService.approveTaskAchievementByPeople(getLoginUserId(), reqVOList);
+        return success(true);
+    }
+
+
+    @PutMapping("/reject-update")
+    @Operation(summary = "不通过任务:驳回到审批人处")
+    @PreAuthorize("@ss.hasPermission('eve:task:update')")
+    public CommonResult<Boolean> rejectAchievementTask(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
+        taskService.rejectAchievementTask(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/reject-people-update")
+    @Operation(summary = "整体不通过任务:驳回到审批人处")
+    @PreAuthorize("@ss.hasPermission('eve:task:update')")
+    public CommonResult<Boolean> rejectAchievementTaskByPeople(@Valid @RequestBody List<BpmTaskApproveReqVO> reqVOList) {
+        taskService.rejectAchievementTaskByPeople(getLoginUserId(), reqVOList);
+        return success(true);
+    }
+
+    @PutMapping("/reject")
+    @Operation(summary = "不通过任务:直接结束流程")
+    @PreAuthorize("@ss.hasPermission('eve:task:update')")
+    public CommonResult<Boolean> rejectTask(@Valid @RequestBody BpmTaskRejectReqVO reqVO) {
+        taskService.rejectTask(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/reject-people")
+    @Operation(summary = "整体不通过家庭经济困难认定:直接结束流程")
+    @PreAuthorize("@ss.hasPermission('eve:task:update')")
+    public CommonResult<Boolean> rejectTaskByPeople(@Valid @RequestBody List<BpmTaskRejectReqVO> reqVOList) {
+        taskService.rejectTaskByPeople(getLoginUserId(), reqVOList);
+        return success(true);
+    }
+
+    @PutMapping("/reject-undo")
+    @Operation(summary = "在下一个人审批前退回审批")
+    @PreAuthorize("@ss.hasPermission('eve:task:update')")
+    public CommonResult<Boolean> rejectUndoTask(@Valid @RequestBody BpmTaskUndoReqVO reqVO) {
+        taskService.UndoTask(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+}

+ 55 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/vo/task/asAidingPageReqVO.java

@@ -0,0 +1,55 @@
+package cn.iocoder.yudao.module.as.controller.admin.task.vo.task;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 综测单项分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class asAidingPageReqVO extends PageParam {
+
+    @Schema(description = "管理表外键", example = "1")
+    private Long manageId;
+
+    @Schema(description = "学号", example = "27854")
+    private String studentId;
+
+    @Schema(description = "用户Id", example = "27854")
+    private Long userId;
+
+    @Schema(description = "类型(德体美劳)", example = "1")
+    private String type;
+
+    @Schema(description = "级别(国家级、省部级)")
+    private String category;
+
+    @Schema(description = "名称", example = "芋艿")
+    private String name;
+
+    @Schema(description = "分值")
+    private Integer score;
+
+    @Schema(description = "附件路径")
+    private List<String> attachment;
+
+    @Schema(description = "状态值", example = "1")
+    private Integer status;
+
+    @Schema(description = "是否进入个人库")
+    private Integer isRepository;
+    
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 98 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/vo/task/asTaskRespVO.java

@@ -0,0 +1,98 @@
+package cn.iocoder.yudao.module.as.controller.admin.task.vo.task;
+
+import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageInfoPageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+@Schema(description = "管理后台 - 流程任务 Response VO")
+@Data
+public class asTaskRespVO {
+
+    @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private String id;
+
+    @Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
+    private String name;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    private LocalDateTime createTime;
+
+    @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    private LocalDateTime endTime;
+
+    @Schema(description = "持续时间", example = "1000")
+    private Long durationInMillis;
+
+    @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private Integer status; // 参见 BpmTaskStatusEnum 枚举
+
+    @Schema(description = "审批理由", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String reason;
+
+    /**
+     * 负责人的用户信息
+     */
+    private BpmProcessInstanceRespVO.User ownerUser;
+    /**
+     * 审核的用户信息
+     */
+    private BpmProcessInstanceRespVO.User assigneeUser;
+
+    @Schema(description = "任务定义的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "Activity_one")
+    private String taskDefinitionKey;
+
+    @Schema(description = "所属流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8888")
+    private String processInstanceId;
+    /**
+     * 所属流程实例
+     */
+    private ProcessInstance processInstance;
+
+    @Schema(description = "父任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private String parentTaskId;
+    @Schema(description = "子任务列表(由加签生成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "childrenTask")
+    private List<asTaskRespVO> children;
+
+    @Schema(description = "表单编号", example = "1024")
+    private Long formId;
+    @Schema(description = "表单名字", example = "请假表单")
+    private String formName;
+    @Schema(description = "表单的配置-JSON 字符串")
+    private String formConf;
+    @Schema(description = "表单项的数组")
+    private List<String> formFields;
+    @Schema(description = "提交的表单值", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Map<String, Object> formVariables;
+
+    @Schema(description = "综测单项的流程实例")
+    private AidingStudentPersonManageInfoPageReqVO aidingStudentPersonManageInfo;
+
+    @Data
+    @Schema(description = "流程实例")
+    public static class ProcessInstance {
+
+        @Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+        private String id;
+
+        @Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
+        private String name;
+
+        @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED)
+        private LocalDateTime createTime;
+
+        @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
+        private String processDefinitionId;
+
+        /**
+         * 发起人的用户信息
+         */
+        private BpmProcessInstanceRespVO.User startUser;
+
+    }
+
+}

+ 234 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/convert/task/asTaskConvert.java

@@ -0,0 +1,234 @@
+package cn.iocoder.yudao.module.as.convert.task;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageInfoPageReqVO;
+import cn.iocoder.yudao.module.as.controller.admin.task.vo.task.asTaskRespVO;
+import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentsmanage.AidingStudentsManageDO;
+import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.AidingStudentsPersonManageDO;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageClassVO;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.task.api.Task;
+import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Bpm 任务 Convert
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface asTaskConvert {
+
+    asTaskConvert INSTANCE = Mappers.getMapper(asTaskConvert.class);
+
+    default List<AidingStudentPersonManageClassVO>  buildTodoTaskPageAiding(Map<Long, AdminUserRespDTO> userMap,
+                                                                                  Map<Long, DeptRespDTO> deptMap,
+                                                                                  Map<Long, AidingStudentsManageDO> aidingStudentsManageMap,
+                                                                                  List<AidingStudentsPersonManageDO> aidingStudentsPersonList) {
+//        for (AidingStudentsPersonManageDO aidingStudentsPerson : aidingStudentsPersonList) {
+//            DeptRespDTO dept = deptMap.get(aidingStudentsPerson.getUserId());
+//            aidingStudentsPerson.setClassName(dept.getName());
+//             if (startUser != null) {
+//                MapUtils.findAndThen(deptMap, startUser.getDeptId(),
+//                        dept -> achievement.getStartUser().setDeptName(dept.getName())
+//                );
+//                MapUtils.findAndThen(deptMap, startUser.getDeptId(),
+//                        dept -> achievement.setReviewType(
+//                                Objects.equals(deptId, dept.getId()) ? "班级自评" : "班级互评"
+//                        )
+//                );
+//                achievement.getStartUser().setNickname(startUser.getNickname());
+//                achievement.setStudentId(startUser.getStudentId());
+//            }
+//
+//            MapUtils.findAndThen(comprehensiveManageDOMap, achievement.getManageId(),
+//                    ComprehensiveManage -> achievement.setComprehensiveManage(
+//                            BeanUtils.toBean(ComprehensiveManage,AchievementDO.ComprehensiveManage.class))
+//            );
+//        }
+        return BeanUtils.toBean(aidingStudentsPersonList, AidingStudentPersonManageClassVO.class);
+    }
+//
+//    default List<AchievementRespVO> buildTodoTaskPageComprehensive(Map<Long, AdminUserRespDTO> userMap,
+//                                                                   Map<Long, DeptRespDTO> deptMap,
+//                                                                   Map<Long, ComprehensiveManageDO> comprehensiveManageDOMap ,
+//                                                               List<AchievementDO> achievementList,
+//                                                                   Long deptId) {
+//
+//
+//        for (AchievementDO achievement : achievementList) {
+//            AdminUserRespDTO startUser = userMap.get(achievement.getUserId());
+//            achievement.setStartUser(BeanUtils.toBean(startUser, AchievementDO.User.class));
+//            if (startUser != null) {
+//                MapUtils.findAndThen(deptMap, startUser.getDeptId(),
+//                        dept -> achievement.getStartUser().setDeptName(dept.getName())
+//                );
+//                MapUtils.findAndThen(deptMap, startUser.getDeptId(),
+//                        dept -> achievement.setReviewType(
+//                                Objects.equals(deptId, dept.getId()) ? "班级自评" : "班级互评"
+//                        )
+//                );
+//                achievement.getStartUser().setNickname(startUser.getNickname());
+//                achievement.setStudentId(startUser.getStudentId());
+//            }
+//
+//            MapUtils.findAndThen(comprehensiveManageDOMap, achievement.getManageId(),
+//                    ComprehensiveManage -> achievement.setComprehensiveManage(
+//                            BeanUtils.toBean(ComprehensiveManage,AchievementDO.ComprehensiveManage.class))
+//            );
+//        }
+//        return BeanUtils.toBean(achievementList, AchievementRespVO.class);
+//    }
+//
+//
+//    default List<AchievementRespVO> buildTaskComprehensive(List<AchievementDO> achievementList,
+//                                                    Map<Long, AdminUserRespDTO> userMap,
+//                                                    Map<Long, DeptRespDTO> deptMap,
+//                                                    Map<Long, ComprehensiveManageDO> comprehensiveManageMap
+//                                                    ) {
+//
+//
+//        for (AchievementDO achievement : achievementList) {
+//            AdminUserRespDTO startUser = userMap.get(achievement.getUserId());
+//            achievement.setStartUser(BeanUtils.toBean(startUser, AchievementDO.User.class));
+//            MapUtils.findAndThen(deptMap, startUser.getDeptId(), dept -> achievement.getStartUser().setDeptName(dept.getName()));
+//            achievement.getStartUser().setNickname(startUser.getNickname());
+//            achievement.setStudentId(startUser.getStudentId());
+//            MapUtils.findAndThen(comprehensiveManageMap, achievement.getManageId(),
+//                    ComprehensiveManage -> achievement.setComprehensiveManage(
+//                            BeanUtils.toBean(ComprehensiveManage,AchievementDO.ComprehensiveManage.class))
+//            );
+//        }
+//        return BeanUtils.toBean(achievementList, AchievementRespVO.class);
+//    }
+//
+//    default List<eveTaskRespVO> buildTaskDoneByPeople(List<HistoricTaskInstance> pageResult,
+//                                                          Map<String, HistoricProcessInstance> processInstanceMap,
+//                                                          Map<Long, AdminUserRespDTO> userMap,
+//                                                          Map<String, AchievementDO> achievementDOMap
+//
+//    ) {
+//
+//        return CollectionUtils.convertList(pageResult, task -> {
+//            eveTaskRespVO taskVO = BeanUtils.toBean(task, eveTaskRespVO.class);
+//            taskVO.setStatus(FlowableUtils.getTaskStatus(task)).setReason(FlowableUtils.getTaskReason(task));
+//            // 流程实例
+//            HistoricProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId());
+//            if (processInstance != null) {
+//                AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
+//                taskVO.setProcessInstance(BeanUtils.toBean(processInstance, eveTaskRespVO.ProcessInstance.class));
+//                taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceRespVO.User.class));
+//                AchievementDO achievement = achievementDOMap.get(processInstance.getId());
+//                taskVO.setAchievement(BeanUtils.toBean(achievement, AchievementRespVO.class));
+//            }
+//            return taskVO;
+//        });
+//    }
+//
+//    default List<BpmTaskRespVO> buildTaskListByProcessInstanceId(List<HistoricTaskInstance> taskList,
+//                                                                 HistoricProcessInstance processInstance,
+//                                                                 Map<Long, BpmFormDO> formMap,
+//                                                                 Map<Long, AdminUserRespDTO> userMap,
+//                                                                 Map<Long, DeptRespDTO> deptMap) {
+//        List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(taskList, task -> {
+//            BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class);
+//            taskVO.setStatus(FlowableUtils.getTaskStatus(task)).setReason(FlowableUtils.getTaskReason(task));
+//            // 流程实例
+//            AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
+//            taskVO.setProcessInstance(BeanUtils.toBean(processInstance, BpmTaskRespVO.ProcessInstance.class));
+//            taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceRespVO.User.class));
+//            // 表单信息
+//            BpmFormDO form = MapUtil.get(formMap, NumberUtils.parseLong(task.getFormKey()), BpmFormDO.class);
+//            if (form != null) {
+//                taskVO.setFormId(form.getId()).setFormName(form.getName()).setFormConf(form.getConf())
+//                        .setFormFields(form.getFields()).setFormVariables(FlowableUtils.getTaskFormVariable(task));
+//            }
+//            // 用户信息
+//            AdminUserRespDTO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee()));
+//            if (assignUser != null) {
+//                taskVO.setAssigneeUser(BeanUtils.toBean(assignUser, BpmProcessInstanceRespVO.User.class));
+//                findAndThen(deptMap, assignUser.getDeptId(), dept -> taskVO.getAssigneeUser().setDeptName(dept.getName()));
+//            }
+//            AdminUserRespDTO ownerUser = userMap.get(NumberUtils.parseLong(task.getOwner()));
+//            if (ownerUser != null) {
+//                taskVO.setOwnerUser(BeanUtils.toBean(ownerUser, BpmProcessInstanceRespVO.User.class));
+//                findAndThen(deptMap, ownerUser.getDeptId(), dept -> taskVO.getOwnerUser().setDeptName(dept.getName()));
+//            }
+//            return taskVO;
+//        });
+//
+//        // 拼接父子关系
+//        Map<String, List<BpmTaskRespVO>> childrenTaskMap = convertMultiMap(
+//                filterList(taskVOList, r -> StrUtil.isNotEmpty(r.getParentTaskId())),
+//                BpmTaskRespVO::getParentTaskId);
+//        for (BpmTaskRespVO taskVO : taskVOList) {
+//            taskVO.setChildren(childrenTaskMap.get(taskVO.getId()));
+//        }
+//        return filterList(taskVOList, r -> StrUtil.isEmpty(r.getParentTaskId()));
+//    }
+//
+//    default List<BpmTaskRespVO> buildTaskListByParentTaskId(List<Task> taskList,
+//                                                            Map<Long, AdminUserRespDTO> userMap,
+//                                                            Map<Long, DeptRespDTO> deptMap) {
+//        return convertList(taskList, task -> BeanUtils.toBean(task, BpmTaskRespVO.class, taskVO -> {
+//            AdminUserRespDTO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee()));
+//            if (assignUser != null) {
+//                taskVO.setAssigneeUser(BeanUtils.toBean(assignUser, BpmProcessInstanceRespVO.User.class));
+//                DeptRespDTO dept = deptMap.get(assignUser.getDeptId());
+//                if (dept != null) {
+//                    taskVO.getAssigneeUser().setDeptName(dept.getName());
+//                }
+//            }
+//            AdminUserRespDTO ownerUser = userMap.get(NumberUtils.parseLong(task.getOwner()));
+//            if (ownerUser != null) {
+//                taskVO.setOwnerUser(BeanUtils.toBean(ownerUser, BpmProcessInstanceRespVO.User.class));
+//                findAndThen(deptMap, ownerUser.getDeptId(), dept -> taskVO.getOwnerUser().setDeptName(dept.getName()));
+//            }
+//        }));
+//    }
+//
+//    default BpmMessageSendWhenTaskCreatedReqDTO convert(ProcessInstance processInstance, AdminUserRespDTO startUser,
+//                                                        Task task) {
+//        BpmMessageSendWhenTaskCreatedReqDTO reqDTO = new BpmMessageSendWhenTaskCreatedReqDTO();
+//        reqDTO.setProcessInstanceId(processInstance.getProcessInstanceId())
+//                .setProcessInstanceName(processInstance.getName()).setStartUserId(startUser.getId())
+//                .setStartUserNickname(startUser.getNickname()).setTaskId(task.getId()).setTaskName(task.getName())
+//                .setAssigneeUserId(NumberUtils.parseLong(task.getAssignee()));
+//        return reqDTO;
+//    }
+
+    /**
+     * 将父任务的属性,拷贝到子任务(加签任务)
+     *
+     * 为什么不使用 mapstruct 映射?因为 TaskEntityImpl 还有很多其他属性,这里我们只设置我们需要的。
+     * 使用 mapstruct 会将里面嵌套的各个属性值都设置进去,会出现意想不到的问题。
+     *
+     * @param parentTask 父任务
+     * @param childTask 加签任务
+     */
+    default void copyTo(TaskEntityImpl parentTask, TaskEntityImpl childTask) {
+        childTask.setName(parentTask.getName());
+        childTask.setDescription(parentTask.getDescription());
+        childTask.setCategory(parentTask.getCategory());
+        childTask.setParentTaskId(parentTask.getId());
+        childTask.setProcessDefinitionId(parentTask.getProcessDefinitionId());
+        childTask.setProcessInstanceId(parentTask.getProcessInstanceId());
+//        childTask.setExecutionId(parentTask.getExecutionId()); // TODO 芋艿:新加的,不太确定;尴尬,不加时,子任务不通过会失败(报错);加了,子任务审批通过会失败(报错)
+        childTask.setTaskDefinitionKey(parentTask.getTaskDefinitionKey());
+        childTask.setTaskDefinitionId(parentTask.getTaskDefinitionId());
+        childTask.setPriority(parentTask.getPriority());
+        childTask.setCreateTime(new Date());
+        childTask.setTenantId(parentTask.getTenantId());
+    }
+
+}

+ 4 - 5
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/dataobject/aidingstudentspersonmanage/AidingStudentPersonManageEvaluationResultDO.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
 /**
+ * 班主任上传班级评审材料(图片)
  * @autor WoVoM
  * @data 2024/7/8 19:48
  * @@version 1.0
@@ -23,7 +24,7 @@ import lombok.*;
 public class AidingStudentPersonManageEvaluationResultDO extends BaseDO {
     // 序号
     @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    private Long id;
     // 班级
     private String className;
     // 班主任名字
@@ -33,9 +34,7 @@ public class AidingStudentPersonManageEvaluationResultDO extends BaseDO {
     // 状态(1已经评价,0未评价)
     private Integer status;
     // 学院项目管理id
-    private Integer collegeManageId;
+    private Long collegeManageId;
     // 项目ID
-    private Integer manageId;
-    private String major;
-    private String grade;
+    private Long manageId;
 }

+ 47 - 9
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/dataobject/aidingstudentspersonmanage/AidingStudentsPersonManageDO.java

@@ -1,14 +1,11 @@
 package cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.KeySequence;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.*;
 
-import java.time.LocalDateTime;
 
 /**
+ * 学生上传申请材料相关信息
  * @autor WoVoM
  * @data 2024/7/8 15:40
  * @@version 1.0
@@ -24,9 +21,10 @@ import java.time.LocalDateTime;
 public class AidingStudentsPersonManageDO extends BaseDO {
     // 序号
     @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
+    private Long id;
 
+    //用户id
+    private Long userId;
     //姓名
     private String nickname;
     // 困难类型
@@ -40,7 +38,7 @@ public class AidingStudentsPersonManageDO extends BaseDO {
     // 学院id
     private Long collegeId;
     // 项目ID
-    private Integer manageId;
+    private Long manageId;
     // 学院项目主键ID
     private Integer collegeManageId;
     // 班级 :计算机类2023-1班
@@ -48,7 +46,7 @@ public class AidingStudentsPersonManageDO extends BaseDO {
     // 备注
     private String notes;
     // 学号
-    private String studentSno;
+    private String studentId;
     // 入学年份
     private String enrollmentYear;
     //身份证号
@@ -65,4 +63,44 @@ public class AidingStudentsPersonManageDO extends BaseDO {
     private String grade;
     // 所在院系名称
     private String collegeName;
+    // 班级建议困难类型
+    private Integer classSuggestionDifficultType;
+    // 学院建议困难类型
+    private Integer collegeSuggestionDifficultType;
+    // 学校建议困难类型
+    private Integer schoolSuggestionDifficultType;
+    // 流程
+    private String processInstanceId;
+
+    /**
+     *
+     * 已审核人数统计
+     */
+    @TableField(
+            value = "sum(status IN (2, 3, 4, 5, 7))",
+            insertStrategy = FieldStrategy.NEVER,
+            updateStrategy = FieldStrategy.NEVER,
+            select = false)
+    private Integer classAll;
+
+    /**
+     *未审核人数统计
+     */
+    @TableField(
+            value = "sum(status IN (0,1,6))",
+            insertStrategy = FieldStrategy.NEVER,
+            updateStrategy = FieldStrategy.NEVER,
+            select = false)
+    private Integer classAudit;
+
+    /**
+     * 总人数
+     */
+    @TableField(
+            value = "count(*)",
+            insertStrategy = FieldStrategy.NEVER,
+            updateStrategy = FieldStrategy.NEVER,
+            select = false)
+    private Integer Count;
+
 }

+ 54 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/dataobject/financialaidstudentmanage/FinancialAidStudentManageDO.java

@@ -0,0 +1,54 @@
+package cn.iocoder.yudao.module.as.dal.dataobject.financialaidstudentmanage;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+/**
+ * 助学
+ * @autor WoVoM
+ * @data 2024/7/16 14:52
+ * @@version 1.0
+ */
+@TableName("as_stipend")
+@KeySequence("as_financial_aid_manage_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class FinancialAidStudentManageDO extends BaseDO {
+    // 序号
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    // 学校项目ID
+    private Long manageId;
+    // 学院项目ID
+    private Long collegeMangeId;
+    // 学院ID
+    private Long collegeId;
+    // 姓名
+    private String name;
+    // 学号
+    private String studentId;
+    // 流程
+    private String processInstanceId;
+    // 学院名称
+    private String collegeName;
+    // 专业
+    private String major;
+    // 年级
+    private String grade;
+    // 班级名称
+    private String className;
+    // 姓名
+    private String nickname;
+    // 排序
+    private Integer sort;
+    // 困难类型
+    private Integer difficultType;
+}

+ 47 - 4
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/mysql/aidingstudentspersonmanage/AidingStudentsPersonManageMapper.java

@@ -2,9 +2,10 @@ package cn.iocoder.yudao.module.as.dal.mysql.aidingstudentspersonmanage;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManagerCollegePageReqVO;
-import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentsPersonManageClassPageReqVO;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageInfoPageReqVO;
 import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.AidingStudentsPersonManageDO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskPageReqVO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Mapper;
@@ -21,7 +22,7 @@ import java.util.Map;
 @Mapper
 public interface AidingStudentsPersonManageMapper extends BaseMapperX<AidingStudentsPersonManageDO> {
 
-    default PageResult<AidingStudentsPersonManageDO> selectPage(AidingStudentsPersonManageClassPageReqVO reqVO) {
+    /*default PageResult<AidingStudentsPersonManageDO> selectPage(AidingStudentPersonManageInfoPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapper<AidingStudentsPersonManageDO>()
                 .eq(StringUtils.isNotBlank(reqVO.getClassName()),AidingStudentsPersonManageDO::getClassName, reqVO.getClassName())
                 .eq(reqVO.getCollegeManageId() != null,AidingStudentsPersonManageDO::getDifficultType, reqVO.getCollegeManageId())
@@ -32,6 +33,9 @@ public interface AidingStudentsPersonManageMapper extends BaseMapperX<AidingStud
                 .orderByDesc(AidingStudentsPersonManageDO::getId));
     }
 
+
+
+
     /**
      * 根据学生ID查询data_info数据
      * */
@@ -39,12 +43,51 @@ public interface AidingStudentsPersonManageMapper extends BaseMapperX<AidingStud
     Map getByStudentId(String Id);
 
 
+    default List<AidingStudentsPersonManageDO>  selectListByProcessInstanceId(List<String> ids,
+                                                                              BpmTaskPageReqVO pageVO){
+        return selectList(
+                new LambdaQueryWrapperX<AidingStudentsPersonManageDO>()
+                        .in(AidingStudentsPersonManageDO::getManageId,ids)
+                        .eqIfPresent(AidingStudentsPersonManageDO::getClass,pageVO.getClassId())
+                        .eqIfPresent(AidingStudentsPersonManageDO::getManageId,pageVO.getManageId())
+                        .eqIfPresent(AidingStudentsPersonManageDO::getCollegeId,pageVO.getCollegeId())
+                        .eqIfPresent(AidingStudentsPersonManageDO::getNickname,pageVO.getUsername())
+                        .groupBy(AidingStudentsPersonManageDO::getClassName)
+        );
+    }
+
+    default List<AidingStudentsPersonManageDO>  selectByProcessInstanceIdsGroupByUser(List<String> processInstanceIds,
+                                                                              BpmTaskPageReqVO pageVO){
+
+        LambdaQueryWrapper<AidingStudentsPersonManageDO> queryWrapper = new LambdaQueryWrapperX<AidingStudentsPersonManageDO>()
+                .select(
+                        AidingStudentsPersonManageDO::getManageId,
+                        AidingStudentsPersonManageDO::getCollegeId,
+                        AidingStudentsPersonManageDO::getClassName,
+                        AidingStudentsPersonManageDO::getClass,
+                        AidingStudentsPersonManageDO::getStudentId,
+                        AidingStudentsPersonManageDO::getClassAudit,
+                        AidingStudentsPersonManageDO::getClassAll,
+                        AidingStudentsPersonManageDO::getCount
+                )
+                .in(AidingStudentsPersonManageDO::getProcessInstanceId,processInstanceIds)
+                .groupBy(AidingStudentsPersonManageDO::getClassName)
+                .groupBy(AidingStudentsPersonManageDO::getManageId);
+
+
+        if (pageVO != null && pageVO.getStudentId() != null) {
+            queryWrapper.eq(AidingStudentsPersonManageDO::getStudentId, pageVO.getUserId());
+        }
+
+        return selectList(queryWrapper);
+    }
+
 
     /**
      * 查询学院各个班的数量跟申请人数
      * @return
      */
-    List<Map<String, Object>> countByClassName(AidingStudentPersonManagerCollegePageReqVO pageReqVO);
+    List<Map<String, Object>> countByClassName(AidingStudentPersonManageInfoPageReqVO pageReqVO);
 
 
     /**

+ 14 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/mysql/financialaidstudentmanage/FinancialAidStudentManageMapper.java

@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.as.dal.mysql.financialaidstudentmanage;
+
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.as.dal.dataobject.financialaidstudentmanage.FinancialAidStudentManageDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @autor WoVoM
+ * @data 2024/7/16 14:57
+ * @@version 1.0
+ */
+@Mapper
+public interface FinancialAidStudentManageMapper extends BaseMapperX<FinancialAidStudentManageDO> {
+}

+ 21 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageService.java

@@ -4,6 +4,8 @@ import java.util.*;
 import javax.validation.*;
 
 import cn.iocoder.yudao.module.as.controller.admin.aidingstudentsimportlist.vo.AidingStudentsImportExcelRespVO;
+
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.as.controller.admin.aidingstudentsmanage.vo.*;
 import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentsmanage.AidingStudentsManageDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -55,4 +57,23 @@ public interface AidingStudentsManageService {
     PageResult<AidingStudentsManageDO> getAidingStudentsManagePage(AidingStudentsManagePageReqVO pageReqVO);
 
     void updateAidingStudentsManageStatus(Long id);
+
+    /**
+     * 获得家庭困难认定项目管理MAp
+     *
+     * @param manageIds 管理id
+     * @return 家庭困难认定项目管理MAp
+     */
+    /**
+     * 获得指定编号的项目 Map
+     *
+     * @param manageIds 项目编号数组
+     * @return 项目 Map
+     */
+    default Map<Long, AidingStudentsManageDO> getAidingStudentsManageMap(Collection<Long> manageIds) {
+        List<AidingStudentsManageDO> list = getManagetList(manageIds);
+        return CollectionUtils.convertMap(list, AidingStudentsManageDO::getId);
+    }
+
+    List<AidingStudentsManageDO> getManagetList(Collection<Long> ids);
 }

+ 10 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageServiceImpl.java

@@ -1,4 +1,6 @@
 package cn.iocoder.yudao.module.as.service.aidingstudentsmanage;
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.io.FileUtils;
 import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -252,4 +254,12 @@ public class AidingStudentsManageServiceImpl implements AidingStudentsManageServ
 
     }
 
+
+    @Override
+    public List<AidingStudentsManageDO> getManagetList(Collection<Long> ids) {
+        if (CollUtil.isEmpty(ids)) {
+            return Collections.emptyList();
+        }
+        return aidingStudentsManageMapper.selectBatchIds(ids);
+    }
 }

+ 33 - 23
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/AidingStudentsPersonManageService.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.as.service.aidingstudentspersonmanage;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.*;
 import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.AidingStudentsPersonManageDO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskPageReqVO;
 
 import java.util.List;
 
@@ -16,55 +17,46 @@ public interface AidingStudentsPersonManageService  {
      *
      * @return
      */
-    AidingStudentsPersonManageUploadRespVO beforeuploadAidingStudentsManage();
+    AidingStudentPersonManageInfoRespVO beforeuploadAidingStudentsManage();
+
     /**
      * 学生上传材料
      * @param uploadVO
      * @return
      */
-    void uploadAidingStudentsManage(AidingStudentsPersonManageUploadRespVO uploadVO);
-
-    /**
-     * 获取学生申请信息分页
-     * @param pageReqVO
-     * @return
-     */
-    PageResult<AidingStudentsPersonManageDO> getAidingStudentsPersonManageClassPage(AidingStudentsPersonManageClassPageReqVO pageReqVO);
+    void uploadAidingStudentsManage(AidingStudentPersonManageInfoRespVO uploadVO);
 
 
-    /**
-     * 班级定序
-     * @param id
-     * @param sort
-     */
-    void sortAidingStudentsManage(Long id, Integer sort,Integer difficultType);
+    List<AidingStudentsPersonManageDO>  getAidingStudentsPersonManageClassPage(
+            List<String> ids,BpmTaskPageReqVO pageVO
+    );
 
     /**
      * 班主任上传线下讨论结果信息
      * @param classuploadVO
      */
-    void uploadResultAidingStudentsManage(AidingStudentPersonManageClassResultReqVO classuploadVO);
+    void uploadResultAidingStudentsManage(AidingStudentPersonManageInfoPageReqVO classuploadVO);
 
     /**
      * 学生查看申请信息
      */
-    AidingStudentsPersonManageUploadRespVO checkAidingStudentsManage();
+    AidingStudentPersonManageInfoRespVO checkAidingStudentsManage();
 
     /**
      * 学生修改申请信息
      * @param uploadVO
      */
-    void editAidingStudentsManage(AidingStudentsPersonManageUploadRespVO uploadVO);
+    void editAidingStudentsManage(AidingStudentPersonManageInfoRespVO uploadVO);
 
     /**
-     * 学院获取各个班级的分页信息
+     * 学院获取各个班级的信息统计
      * @param pageReqVO
      * @return
      */
-    PageResult<AidingStudentPersonManageCollegeRespVO> getAidingStudentsPersonManageCollegePage(AidingStudentPersonManagerCollegePageReqVO pageReqVO);
+    PageResult<AidingStudentPersonManageInfoRespVO> getAidingStudentsPersonManageCollegeData(AidingStudentPersonManageInfoPageReqVO pageReqVO);
 
     /**
-     * 班级定序,集体
+     * 定序
      * @param ids
      */
     void allsortAidingStudentsManage(List<AidingStudentPersonManageSortReqVO> ids);
@@ -75,12 +67,30 @@ public interface AidingStudentsPersonManageService  {
      * @param pageReqVO
      * @return
      */
-    PageResult<AidingStudentPersonManageSchoolRespVO> schoolgetAidingStudentsPersonManagePage(AidingStudentPersonManageSchoolPageReqVO pageReqVO);
+    PageResult<AidingStudentPersonManageInfoRespVO> AidingStudentsPersonManagePage(AidingStudentPersonManageInfoPageReqVO pageReqVO);
 
     /**
      * 获取各个学院的部分信息
      * @param manageId
      * @return
      */
-    AidingStudentPersonManageDataPartRespVO schoolgetAidingStudentsPersonManageData(Integer manageId);
+    AidingStudentPersonManageInfoRespVO schoolgetAidingStudentsPersonManageData(Long manageId);
+
+    /**
+     * 学校审核学生信息
+     * @param id
+     * @return
+     */
+    AidingStudentPersonManageInfoRespVO schoolauditAidingStudentsPersonManageData(Long id);
+
+    /**
+     * 更新申请的状态
+     *
+     * @param id 编号
+     * @param status 结果
+     */
+    void updateAppealStatus(Long id, Integer status);
+
+
+    List<AidingStudentsPersonManageDO> selectByProcessInstanceIdsGroupByClass(List<String> processInstanceIds,BpmTaskPageReqVO pageVO);
 }

+ 160 - 109
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/AidingStudentsPersonManageServiceImpl.java

@@ -6,21 +6,32 @@ import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.Aidi
 import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.AidingStudentsPersonManageDO;
 import cn.iocoder.yudao.module.as.dal.mysql.aidingstudentspersonmanage.AidingStudentPersonManageEvaluationResultMapper;
 import cn.iocoder.yudao.module.as.dal.mysql.aidingstudentspersonmanage.AidingStudentsPersonManageMapper;
+import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
+import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskPageReqVO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import javax.annotation.Resource;
 import java.util.*;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
+import static cn.iocoder.yudao.module.as.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.AIDING_NOT_EXISTS;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_LEAVE_NOT_EXISTS;
 
 /**
  * @autor WoVoM
@@ -31,6 +42,9 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
 @Slf4j
 public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStudentsPersonManageMapper, AidingStudentsPersonManageDO> implements AidingStudentsPersonManageService{
 
+
+    public static final String PROCESS_KEY = "familyDifficulties";
+
     @Autowired
     private AidingStudentsPersonManageMapper aidingStudentsPersonManageMapper;
 
@@ -43,28 +57,23 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
     @Autowired
     private AdminUserApi adminUserApi;
 
+    @Resource
+    private BpmProcessInstanceApi processInstanceApi;
     /**
      * 学生上传材料之前的信息回显
      * @return
      */
     @Override
-    public AidingStudentsPersonManageUploadRespVO beforeuploadAidingStudentsManage() {
+    public AidingStudentPersonManageInfoRespVO beforeuploadAidingStudentsManage() {
         try {
             AdminUserRespDTO user = adminUserApi.getUser(getLoginUser().getId());
-            AidingStudentsPersonManageUploadRespVO result = new AidingStudentsPersonManageUploadRespVO();
-            // 获取当前登录的用户表
+            AidingStudentPersonManageInfoRespVO result = new AidingStudentPersonManageInfoRespVO();
             Map map = aidingStudentsPersonManageMapper.getByStudentId(user.getStudentId());
-            log.info("map = {}" , map);
-            // *班级名称
-            result.setClassName((String) map.get("SZBJMC"));
-            // *学号
-            result.setStudentSno(user.getStudentId());
-            // *入学年份
-            result.setEnrollmentYear((String) map.get("RXNY"));
-            // *身份证
-            result.setIdCard((String) map.get("SFZJH"));
-            // *户籍
-            result.setRegisteredResidence((String) map.get("JG"));
+            result.setClassName((String) map.get("SZBJMC"))
+                    .setStudentId(user.getStudentId())
+                    .setEnrollmentYear((String) map.get("RXNY"))
+                    .setIdCard((String) map.get("SFZJH"))
+                    .setRegisteredResidence((String) map.get("JG"));
             return result;
         } catch (Exception exception) {
             exception.printStackTrace();
@@ -78,43 +87,49 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
      * @return
      */
     @Override
-    public void uploadAidingStudentsManage(AidingStudentsPersonManageUploadRespVO uploadVO) {
+    @Transactional
+    public void uploadAidingStudentsManage(AidingStudentPersonManageInfoRespVO uploadVO) {
+        // 0.检查数据库是否已经存在该信息
+        AidingStudentsPersonManageDO user1 = aidingStudentsPersonManageMapper
+                .selectOne(new LambdaQueryWrapper<AidingStudentsPersonManageDO>()
+                        .eq(AidingStudentsPersonManageDO::getManageId, uploadVO.getManageId())
+                        .eq(AidingStudentsPersonManageDO::getCollegeManageId, uploadVO.getCollegeManageId())
+                        .eq(AidingStudentsPersonManageDO::getStudentId, uploadVO.getStudentId()));
+        if (user1 != null) {
+            throw exception(STUDENT_INFO_EXISTS);
+        }
         // 1.获取当前登录的用户表
         AidingStudentsPersonManageDO aDo = BeanUtils.toBean(uploadVO, AidingStudentsPersonManageDO.class);
-        AdminUserRespDTO user =  adminUserApi.getUser(getLoginUser().getId());
+        AdminUserRespDTO user = adminUserApi.getUser(getLoginUser().getId());
         Map map = aidingStudentsPersonManageMapper.getByStudentId(user.getStudentId());
         // 2.补充字段
         // 项目ID跟学院项目ID前端传
-
-        // 学院ID
-        Long collegeId = deptApi.getCollegeId(user.getDeptId());
-        aDo.setCollegeId(collegeId);
-
         Map resultmap = aidingStudentsPersonManageMapper.getMajorById(map.get("SZZYM"));
-        log.info("resultMap = {}", resultmap);
-        // 专业名称
-        aDo.setMajor((String) resultmap.get("ZYMC"));
-        // 学院名称
-        aDo.setCollegeName((String) resultmap.get("DWMC"));
-        // 年级
-        aDo.setGrade((String) map.get("SZNJ"));
-        // 姓名
-        aDo.setNickname(user.getNickname());
-        // 状态
-        aDo.setStatus(0);
-        // 用户ID
+        aDo.setCollegeId(deptApi.getCollegeId(user.getDeptId()))
+                .setMajor((String) resultmap.get("ZYMC"))
+                .setCollegeName((String) resultmap.get("DWMC"))
+                .setGrade((String) map.get("SZNJ"))
+                .setNickname(user.getNickname())
+                .setStatus(0);
         aidingStudentsPersonManageMapper.insert(aDo);
+        String processInstanceId = processInstanceApi.createProcessInstance(user.getId(),
+                new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(PROCESS_KEY)
+                        .setBusinessKey(String.valueOf(aDo.getId())));
+        AidingStudentsPersonManageDO aDo2 =
+                new AidingStudentsPersonManageDO().setId(aDo.getId()).setProcessInstanceId(processInstanceId);
+        // 将工作流的编号,更新到综测审批单项中
+        aidingStudentsPersonManageMapper.updateById(aDo2);
     }
 
     /**
      * 学生查看自己的申请信息
      */
     @Override
-    public AidingStudentsPersonManageUploadRespVO checkAidingStudentsManage() {
-        AdminUserRespDTO Loginuser =  adminUserApi.getUser(getLoginUser().getId());
-        AidingStudentsPersonManageDO user = aidingStudentsPersonManageMapper
-                .selectOne(AidingStudentsPersonManageDO::getStudentSno, Loginuser.getStudentId());
-        return BeanUtils.toBean(user, AidingStudentsPersonManageUploadRespVO.class);
+    public AidingStudentPersonManageInfoRespVO checkAidingStudentsManage() {
+        return BeanUtils
+                .toBean(aidingStudentsPersonManageMapper
+                .selectOne(AidingStudentsPersonManageDO::getStudentId, adminUserApi.getUser(getLoginUser().getId()).getStudentId())
+                        , AidingStudentPersonManageInfoRespVO.class);
     }
 
     /**
@@ -122,30 +137,29 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
      * @param uploadVO
      */
     @Override
-    public void editAidingStudentsManage(AidingStudentsPersonManageUploadRespVO uploadVO) {
-        AidingStudentsPersonManageDO aDo = new AidingStudentsPersonManageDO();
-         aDo = BeanUtils.toBean(uploadVO, AidingStudentsPersonManageDO.class);
-         aDo.setRejectNotes("");
-         aidingStudentsPersonManageMapper.updateById(aDo);
+    public void editAidingStudentsManage(AidingStudentPersonManageInfoRespVO uploadVO) {
+         aidingStudentsPersonManageMapper.updateById(BeanUtils.toBean(uploadVO, AidingStudentsPersonManageDO.class));
     }
 
     /**
-     * 学院获取各个班级的分页信息
+     * 学院获取各个班级数据统计
      * @param pageReqVO
      * @return
      */
     @Override
-    public PageResult<AidingStudentPersonManageCollegeRespVO> getAidingStudentsPersonManageCollegePage(
-            AidingStudentPersonManagerCollegePageReqVO pageReqVO) {
-        AidingStudentPersonManageCollegeRespVO vo = new AidingStudentPersonManageCollegeRespVO();
+    public PageResult<AidingStudentPersonManageInfoRespVO> getAidingStudentsPersonManageCollegeData(
+            AidingStudentPersonManageInfoPageReqVO pageReqVO) {
+        AidingStudentPersonManageInfoRespVO vo = new AidingStudentPersonManageInfoRespVO();
         List<AidingStudentPersonManageClassVO> list = new ArrayList<>();
+        // 1.模糊查询
         List<AidingStudentsPersonManageDO> allList = aidingStudentsPersonManageMapper
                 .selectList(new LambdaQueryWrapper<AidingStudentsPersonManageDO>()
                         .eq(AidingStudentsPersonManageDO::getCollegeManageId, pageReqVO.getCollegeManageId())
                         .eq(AidingStudentsPersonManageDO::getManageId, pageReqVO.getManageId())
                         .like(StringUtils.isNotBlank(pageReqVO.getMajor()), AidingStudentsPersonManageDO::getMajor, pageReqVO.getMajor())
                         .like(StringUtils.isNotBlank(pageReqVO.getGrade()), AidingStudentsPersonManageDO::getGrade, pageReqVO.getGrade())
-                        .like(StringUtils.isNotBlank(pageReqVO.getClName()), AidingStudentsPersonManageDO::getClassName, pageReqVO.getClName()));
+                        .like(StringUtils.isNotBlank(pageReqVO.getClassName()), AidingStudentsPersonManageDO::getClassName, pageReqVO.getClassName()));
+        // 2.统计学院学生信息状态
         int wait = 0, edit = 0, pass = 0;
         for (int i = 0; i < allList.size(); i++) {
             AidingStudentsPersonManageDO aDo = allList.get(i);
@@ -159,24 +173,28 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
 
             }
         }
-        vo.setCollegeAll(allList.size());
-        vo.setCollegeAudit(wait);
-        vo.setCollegeEdit(edit);
-        vo.setCollegePass(pass);
-        log.info("vo信息如下{}", vo);
-        log.info("pageVo信息如下{}", pageReqVO);
+        // 3.查看班级数量
         List<Map<String, Object>> maps = aidingStudentsPersonManageMapper
                 .countByClassName(pageReqVO);
-        log.info("map信息如下{}", maps);
+        // 3.1 各班民主评议情况
+        List<AidingStudentPersonManageEvaluationResultDO> reviewList = aidingStudentPersonManageEvaluationResultMapper
+                .selectList(new LambdaQueryWrapper<AidingStudentPersonManageEvaluationResultDO>()
+                        .eq(AidingStudentPersonManageEvaluationResultDO::getCollegeManageId, pageReqVO.getCollegeManageId())
+                        .eq(AidingStudentPersonManageEvaluationResultDO::getManageId, pageReqVO.getManageId()));
+        vo.setCollegeAll(allList.size())
+                .setCollegeAudit(wait)
+                .setCollegeEdit(edit)
+                .setCollegePass(pass)
+                .setDoneEvaluationNumber(reviewList.size())
+        .setWaitingForEvaluationNumber(maps.size() - reviewList.size());
+        // 3.2 统计各个班级完成的情况
         for (Map<String, Object> map : maps) {
-            log.info("遍历Map{}", map);
             AidingStudentPersonManageClassVO classVo = new AidingStudentPersonManageClassVO();
             List<AidingStudentsPersonManageDO> classList = aidingStudentsPersonManageMapper
                     .selectList(new LambdaQueryWrapper<AidingStudentsPersonManageDO>()
                             .eq(AidingStudentsPersonManageDO::getCollegeManageId, pageReqVO.getCollegeManageId())
                             .eq(AidingStudentsPersonManageDO::getManageId, pageReqVO.getManageId())
                             .eq(AidingStudentsPersonManageDO::getClassName, map.get("class_name")));
-            log.info("classList = {}", classList);
             wait = 0;
             edit = 0;
             pass = 0;
@@ -191,69 +209,65 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
                 } else {
                 }
             }
-            log.info("classVo 如下{}", classVo);
-            classVo.setClassName((String) map.get("class_name"));
-            classVo.setClassAll(classList.size());
-            classVo.setClassAudit(wait);
-            classVo.setClassEdit(edit);
-            classVo.setClassPass(pass);
+            classVo
+                    .setClassName((String) map.get("class_name"))
+                    .setClassAll(classList.size())
+                    .setClassAudit(wait)
+                    .setClassEdit(edit)
+                    .setClassPass(pass);
             list.add(classVo);
         }
+
+        // 4.封装返回
         vo.setList(list);
-        log.info("vo = {}", vo);
         Long total = Long.valueOf(list.size());
-        log.info("total = {}", total);
-        List<AidingStudentPersonManageCollegeRespVO> Tlist = new ArrayList<>();
+        List<AidingStudentPersonManageInfoRespVO> Tlist = new ArrayList<>();
         Tlist.add(vo);
-        log.info("Tlist = {}", Tlist);
-        PageResult<AidingStudentPersonManageCollegeRespVO> result = new PageResult<>(Tlist, total);
+        PageResult<AidingStudentPersonManageInfoRespVO> result = new PageResult<>(Tlist, total);
         return result;
     }
 
-    /**
-     * 班级获取学生申请信息分页
-     * @param pageReqVO
-     * @return
-     */
+
     @Override
-    public PageResult<AidingStudentsPersonManageDO> getAidingStudentsPersonManageClassPage(
-            AidingStudentsPersonManageClassPageReqVO pageReqVO) {
-        return aidingStudentsPersonManageMapper.selectPage(pageReqVO);
-    }
+    public List<AidingStudentsPersonManageDO> getAidingStudentsPersonManageClassPage(List<String> ids,
+                                                                               BpmTaskPageReqVO pageVO){
+        return aidingStudentsPersonManageMapper.selectListByProcessInstanceId(ids,pageVO);
+    };
 
     /**
-     * 班级定序 - 集体
+     * 定序与建议等级
      * @param ids
      */
     @Override
     public void allsortAidingStudentsManage(List<AidingStudentPersonManageSortReqVO> ids) {
         for (AidingStudentPersonManageSortReqVO id : ids) {
-            sortAidingStudentsManage(Long.valueOf(id.getId()), id.getSort(), id.getDifficultType());
+            LambdaUpdateWrapper<AidingStudentsPersonManageDO> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(AidingStudentsPersonManageDO::getId, id.getId())
+                    .set(AidingStudentsPersonManageDO::getSort, id.getSort());
+            if (id.getClassSuggestionDifficultType() != null)
+                updateWrapper.set(AidingStudentsPersonManageDO::getClassSuggestionDifficultType, id.getClassSuggestionDifficultType());
+            else if (id.getCollegeSuggestionDifficultType() != null)
+                updateWrapper.set(AidingStudentsPersonManageDO::getCollegeSuggestionDifficultType, id.getCollegeSuggestionDifficultType());
+            else if (id.getSchoolSuggestionDifficultType() != null)
+                updateWrapper.set(AidingStudentsPersonManageDO::getSchoolSuggestionDifficultType, id.getSchoolSuggestionDifficultType());
+            aidingStudentsPersonManageMapper.update(null, updateWrapper);
         }
     }
 
-    /**
-     * 班级定序 - 个人
-     * @param id
-     * @param sort
-     */
-    @Override
-    public void sortAidingStudentsManage(Long id, Integer sort, Integer difficultType) {
-        UpdateWrapper<AidingStudentsPersonManageDO> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("id", id)
-                .set("sort", sort);
-        if(difficultType != null){
-            updateWrapper.set("difficult_type", difficultType);
-        }
-        aidingStudentsPersonManageMapper.update(null, updateWrapper);
-    }
-
     /**
      * 班主任上传线下讨论结果信息
      * @param classuploadVO
      */
     @Override
-    public void uploadResultAidingStudentsManage(AidingStudentPersonManageClassResultReqVO classuploadVO) {
+    public void uploadResultAidingStudentsManage(AidingStudentPersonManageInfoPageReqVO classuploadVO) {
+        AidingStudentPersonManageEvaluationResultDO aidingStudentPersonManageEvaluationResultDO = aidingStudentPersonManageEvaluationResultMapper
+                .selectOne(new LambdaQueryWrapper<AidingStudentPersonManageEvaluationResultDO>()
+                        .eq(AidingStudentPersonManageEvaluationResultDO::getCollegeManageId, classuploadVO.getCollegeManageId())
+                        .eq(AidingStudentPersonManageEvaluationResultDO::getManageId, classuploadVO.getManageId())
+                        .eq(AidingStudentPersonManageEvaluationResultDO::getClassName, classuploadVO.getClassName()));
+        if(aidingStudentPersonManageEvaluationResultDO != null){
+            throw exception(CLASS_DISCUSSION_INFO_EXISTS);
+        }
         AidingStudentPersonManageEvaluationResultDO ado = new AidingStudentPersonManageEvaluationResultDO();
         org.springframework.beans.BeanUtils.copyProperties(classuploadVO,ado);
         ado.setStatus(1);
@@ -262,12 +276,12 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
 
 
     /**
-     * (学校)办公室老师获取学生分页信息
+     * 学生分页信息
      * @param pageReqVO
      * @return
      */
     @Override
-    public PageResult<AidingStudentPersonManageSchoolRespVO> schoolgetAidingStudentsPersonManagePage(AidingStudentPersonManageSchoolPageReqVO pageReqVO) {
+    public PageResult<AidingStudentPersonManageInfoRespVO> AidingStudentsPersonManagePage(AidingStudentPersonManageInfoPageReqVO pageReqVO) {
         /**
          * 表格信息
          */
@@ -276,29 +290,29 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
                         .like(StringUtils.isNotBlank(pageReqVO.getCollegeName()), AidingStudentsPersonManageDO::getCollegeName, pageReqVO.getCollegeName())
                         .eq(pageReqVO.getManageId() != null ,AidingStudentsPersonManageDO::getManageId, pageReqVO.getManageId())
                         .eq(pageReqVO.getDifficultType() != null,AidingStudentsPersonManageDO::getDifficultType, pageReqVO.getDifficultType())
+                        .eq(pageReqVO.getCollegeManageId() != null,AidingStudentsPersonManageDO::getCollegeManageId, pageReqVO.getCollegeManageId())
                         .like(StringUtils.isNotBlank(pageReqVO.getMajor()), AidingStudentsPersonManageDO::getMajor, pageReqVO.getMajor())
                         .like(StringUtils.isNotBlank(pageReqVO.getGrade()), AidingStudentsPersonManageDO::getGrade, pageReqVO.getGrade())
-                        .like(StringUtils.isNotBlank(pageReqVO.getClName()), AidingStudentsPersonManageDO::getClassName, pageReqVO.getClName())
+                        .like(StringUtils.isNotBlank(pageReqVO.getClassName()), AidingStudentsPersonManageDO::getClassName, pageReqVO.getClassName())
                         .like(StringUtils.isNotBlank(pageReqVO.getNickname()), AidingStudentsPersonManageDO::getNickname, pageReqVO.getNickname())
-                        .like(StringUtils.isNotBlank(pageReqVO.getStudentSno()), AidingStudentsPersonManageDO::getStudentSno, pageReqVO.getStudentSno())
+                        .like(StringUtils.isNotBlank(pageReqVO.getStudentId()), AidingStudentsPersonManageDO::getStudentId, pageReqVO.getStudentId())
+                        .orderByAsc(AidingStudentsPersonManageDO::getSort)
                 );
-        log.info("allList = {}", allList);
-        return new PageResult<>(BeanUtils.toBean(allList, AidingStudentPersonManageSchoolRespVO.class), (long) allList.size());
+        return new PageResult<>(BeanUtils.toBean(allList, AidingStudentPersonManageInfoRespVO.class), (long) allList.size());
     }
 
     /**
-     * 获取各个学院的部分信息
+     * 学校-获取各个学院的数据
      * @param manageId
      * @return
      */
     @Override
-    public AidingStudentPersonManageDataPartRespVO schoolgetAidingStudentsPersonManageData(Integer manageId) {
-        AidingStudentPersonManageDataPartRespVO resultvo = new AidingStudentPersonManageDataPartRespVO();
+    public AidingStudentPersonManageInfoRespVO schoolgetAidingStudentsPersonManageData(Long manageId) {
+        AidingStudentPersonManageInfoRespVO resultvo = new AidingStudentPersonManageInfoRespVO();
         // 1.获得这个项目的所有信息(不分学院)
         List<AidingStudentsPersonManageDO> manageList = aidingStudentsPersonManageMapper
                 .selectList(new LambdaQueryWrapper<AidingStudentsPersonManageDO>()
                         .eq(AidingStudentsPersonManageDO::getCollegeManageId, manageId));
-        log.info("获取所有学院信息如下{}", manageList);
         int pass = 0;
         for (AidingStudentsPersonManageDO aDo : manageList) {
             if(aDo.getStatus() == 1){
@@ -312,14 +326,11 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
         queryWrapper.select("college_id", "COUNT(*) as collegeNumber")
                 .groupBy("college_id");
         List<Map<String, Object>> maps = aidingStudentsPersonManageMapper.selectMaps(queryWrapper);
-        log.info("学院人数如下:maps {}", maps);
         List<Map<String, Object>> list = new ArrayList<>();
         for (Map<String, Object> map : maps) {
             Map<String, Object> temp = new HashMap<>();
             Long collegeId = (Long) map.get("college_id");
             DeptRespDTO dept = deptApi.getDept(collegeId);
-            log.info("collegeId = {}, dept {}", collegeId, dept);
-            // dept DeptRespDTO(id=18429, name=计算机科学与工程学院, parentId=0, leaderUserId=null, status=0)
             temp.put("collegeName", dept.getName());
             temp.put("all", map.get("collegeNumber"));
             List<AidingStudentsPersonManageDO> passList = aidingStudentsPersonManageMapper
@@ -331,4 +342,44 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
         }
         return resultvo.setCollegeNumber(list);
     }
+
+    /**
+     * 学校审核学生信息
+     * @param id
+     * @return
+     */
+    @Override
+    public AidingStudentPersonManageInfoRespVO schoolauditAidingStudentsPersonManageData(Long id) {
+        // 1.获取申请表信息()
+        AidingStudentsPersonManageDO aDo = aidingStudentsPersonManageMapper.selectById(id);
+        // 2.获取评议结果信息
+        AidingStudentPersonManageEvaluationResultDO EvaluationResultDO = aidingStudentPersonManageEvaluationResultMapper
+                .selectOne(new LambdaQueryWrapper<AidingStudentPersonManageEvaluationResultDO>()
+                        .eq(AidingStudentPersonManageEvaluationResultDO::getClassName, aDo.getClassName()));
+        // 3.整合
+        AidingStudentPersonManageInfoRespVO vo = new AidingStudentPersonManageInfoRespVO();
+        org.springframework.beans.BeanUtils.copyProperties(EvaluationResultDO, vo);
+        org.springframework.beans.BeanUtils.copyProperties(aDo, vo);
+        return vo;
+    }
+
+    @Override
+    public void updateAppealStatus(Long id, Integer status) {
+        validateLeaveExists(id);
+        aidingStudentsPersonManageMapper.updateById(
+                new AidingStudentsPersonManageDO().setId(id).setStatus(status)
+        );
+    }
+
+    private void validateLeaveExists(Long id) {
+        if (aidingStudentsPersonManageMapper.selectById(id) == null) {
+            throw exception(AIDING_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public List<AidingStudentsPersonManageDO> selectByProcessInstanceIdsGroupByClass(List<String> processInstanceIds,
+                                                                                         BpmTaskPageReqVO pageVO){
+        return aidingStudentsPersonManageMapper.selectByProcessInstanceIdsGroupByUser(processInstanceIds,pageVO);
+    }
 }

+ 32 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/listener/BpmAidingStatusListener.java

@@ -0,0 +1,32 @@
+package cn.iocoder.yudao.module.as.service.aidingstudentspersonmanage.listener;
+
+import cn.iocoder.yudao.module.as.service.aidingstudentspersonmanage.AidingStudentsPersonManageService;
+import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceStatusEvent;
+import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceStatusEventListener;
+import cn.iocoder.yudao.module.as.service.aidingstudentspersonmanage.AidingStudentsPersonManageServiceImpl;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * OA 请假单的结果的监听器实现类
+ *
+ * @author 芋道源码
+ */
+@Component
+public class BpmAidingStatusListener extends BpmProcessInstanceStatusEventListener {
+
+    @Resource
+    private AidingStudentsPersonManageService aidingStudentsPersonManageService;
+
+    @Override
+    protected String getProcessDefinitionKey() {
+        return AidingStudentsPersonManageServiceImpl.PROCESS_KEY;
+    }
+
+    @Override
+    protected void onEvent(BpmProcessInstanceStatusEvent event) {
+        aidingStudentsPersonManageService.updateAppealStatus(Long.parseLong(event.getBusinessKey()), event.getStatus());
+    }
+
+}

+ 33 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/financialaidstudentmanage/FinancialAidStudentManageService.java

@@ -0,0 +1,33 @@
+package cn.iocoder.yudao.module.as.service.financialaidstudentmanage;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo.FinancialAidStudentManagePageReqVO;
+import cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo.FinancialAidStudentManageRespVO;
+
+/**
+ * @autor WoVoM
+ * @data 2024/7/16 14:55
+ * @@version 1.0
+ */
+public interface FinancialAidStudentManageService {
+
+    /**
+     * 先将家庭困难信息认定结果返回
+     * @return
+     */
+    FinancialAidStudentManageRespVO beforeuploadAidingStudentsManage(Integer manageId, Integer collegeManageId);
+
+    /**
+     * 学生上传材料
+     * @param uploadVO
+     */
+    void uploadAidingStudentsManage(FinancialAidStudentManageRespVO uploadVO);
+
+
+    /**
+     * 信息分页
+     * @param pageReqVO
+     * @return
+     */
+    PageResult<FinancialAidStudentManageRespVO> getAidingStudentsPersonManagePage(FinancialAidStudentManagePageReqVO pageReqVO);
+}

+ 102 - 0
yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/financialaidstudentmanage/FinancialAidStudentManageServiceImpl.java

@@ -0,0 +1,102 @@
+package cn.iocoder.yudao.module.as.service.financialaidstudentmanage;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo.FinancialAidStudentManagePageReqVO;
+import cn.iocoder.yudao.module.as.controller.admin.financialaidstudentmanage.vo.FinancialAidStudentManageRespVO;
+import cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.AidingStudentsPersonManageDO;
+import cn.iocoder.yudao.module.as.dal.dataobject.financialaidstudentmanage.FinancialAidStudentManageDO;
+import cn.iocoder.yudao.module.as.dal.mysql.aidingstudentspersonmanage.AidingStudentsPersonManageMapper;
+import cn.iocoder.yudao.module.as.dal.mysql.financialaidstudentmanage.FinancialAidStudentManageMapper;
+import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
+import static cn.iocoder.yudao.module.as.enums.ErrorCodeConstants.STUDENT_INFO_EXISTS;
+
+/**
+ * @autor WoVoM
+ * @data 2024/7/16 14:56
+ * @@version 1.0
+ */
+@Service
+@Slf4j
+public class FinancialAidStudentManageServiceImpl extends ServiceImpl<FinancialAidStudentManageMapper, FinancialAidStudentManageDO> implements FinancialAidStudentManageService {
+
+    @Autowired
+    private AdminUserApi adminUserApi;
+
+    @Autowired
+    private AidingStudentsPersonManageMapper aidingStudentsPersonManageMapper;
+
+    @Autowired
+    private FinancialAidStudentManageMapper financialAidStudentManageMapper;
+
+    /**
+     * 先将家庭困难信息认定结果返回
+     * @return
+     */
+    @Override
+    public FinancialAidStudentManageRespVO beforeuploadAidingStudentsManage(Integer manageId, Integer collegeManagerId) {
+        AdminUserRespDTO user = adminUserApi.getUser(getLoginUser().getId());
+        AidingStudentsPersonManageDO aDo = aidingStudentsPersonManageMapper
+                .selectOne(new LambdaQueryWrapper<AidingStudentsPersonManageDO>()
+                        .eq(AidingStudentsPersonManageDO::getStudentId, user.getStudentId())
+                        .eq(AidingStudentsPersonManageDO::getManageId, manageId)
+                        .eq(AidingStudentsPersonManageDO::getCollegeManageId, collegeManagerId));
+        return BeanUtils.toBean(aDo, FinancialAidStudentManageRespVO.class);
+    }
+
+
+    /**
+     * 学生上传材料
+     * @param uploadVO
+     */
+    @Override
+    public void uploadAidingStudentsManage(FinancialAidStudentManageRespVO uploadVO) {
+        // 0.验证
+        FinancialAidStudentManageDO aDo = financialAidStudentManageMapper
+                .selectOne(new LambdaQueryWrapper<FinancialAidStudentManageDO>()
+                        .eq(FinancialAidStudentManageDO::getStudentId, uploadVO.getStudentId())
+                        .eq(FinancialAidStudentManageDO::getManageId, uploadVO.getManageId())
+                        .eq(FinancialAidStudentManageDO::getCollegeMangeId,uploadVO.getCollegeManageId()));
+        if(aDo != null){
+            throw exception(STUDENT_INFO_EXISTS);
+        }
+        // 1.上传
+        financialAidStudentManageMapper.insert(BeanUtils.toBean(uploadVO,FinancialAidStudentManageDO.class));
+    }
+
+    /**
+     * 分页
+     * @param pageReqVO
+     * @return
+     */
+    @Override
+    public PageResult<FinancialAidStudentManageRespVO> getAidingStudentsPersonManagePage(FinancialAidStudentManagePageReqVO pageReqVO) {
+        List<FinancialAidStudentManageDO> allList = financialAidStudentManageMapper
+                .selectList(new LambdaQueryWrapper<FinancialAidStudentManageDO>()
+                        .like(StringUtils.isNotBlank(pageReqVO.getCollegeName()), FinancialAidStudentManageDO::getCollegeName, pageReqVO.getCollegeName())
+                        .eq(pageReqVO.getManageId() != null ,FinancialAidStudentManageDO::getManageId, pageReqVO.getManageId())
+                        .eq(pageReqVO.getCollegeManageId() != null,FinancialAidStudentManageDO::getCollegeMangeId, pageReqVO.getCollegeManageId())
+                        .like(StringUtils.isNotBlank(pageReqVO.getMajor()), FinancialAidStudentManageDO::getMajor, pageReqVO.getMajor())
+                        .like(StringUtils.isNotBlank(pageReqVO.getGrade()), FinancialAidStudentManageDO::getGrade, pageReqVO.getGrade())
+                        .like(StringUtils.isNotBlank(pageReqVO.getClassName()), FinancialAidStudentManageDO::getClassName, pageReqVO.getClassName())
+                        .like(StringUtils.isNotBlank(pageReqVO.getNickname()), FinancialAidStudentManageDO::getNickname, pageReqVO.getNickname())
+                        .like(StringUtils.isNotBlank(pageReqVO.getStudentId()), FinancialAidStudentManageDO::getStudentId, pageReqVO.getStudentId())
+                        .orderByAsc(FinancialAidStudentManageDO::getSort)
+                );
+        return new PageResult<>(BeanUtils.toBean(allList, FinancialAidStudentManageRespVO.class), (long) allList.size());
+    }
+
+
+}

+ 4 - 4
yudao-module-as/yudao-module-as-biz/src/main/resources/mapper/aidingStudentsPersonManage/AidingStudentsPersonManageMapper.xml

@@ -10,11 +10,11 @@
      -->
     <select id="selectPage"
             resultType="cn.iocoder.yudao.module.as.dal.dataobject.aidingstudentspersonmanage.AidingStudentsPersonManageDO"
-            parameterType="cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentsPersonManageClassPageReqVO">
+            parameterType="cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageInfoPageReqVO">
 
     </select>
     <select id="countByClassName" resultType="java.util.Map"
-            parameterType="cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManagerCollegePageReqVO">
+            parameterType="cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo.AidingStudentPersonManageInfoPageReqVO">
         select class_name, COUNT(*) AS count from as_aiding_students_person_manage
         <where>
             <if test="collegeManageId != null">
@@ -29,8 +29,8 @@
             <if test="grade != null and grade != ''">
                 and class_name like concat('%',#{grade},'%')
             </if>
-            <if test="clName != null and clName != ''">
-                and class_name like concat('%',#{clName},'%')
+            <if test="className != null and className != ''">
+                and class_name like concat('%',#{className},'%')
             </if>
         </where>
         GROUP BY class_name

+ 12 - 0
yudao-module-as/yudao-module-as-biz/src/main/resources/mapper/financialaidstudentmanage/FinancialAidStudentManageMapper.xml

@@ -0,0 +1,12 @@
+<?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="cn.iocoder.yudao.module.as.dal.mysql.financialaidstudentmanage.FinancialAidStudentManageMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 4 - 0
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java

@@ -14,6 +14,10 @@ public interface ErrorCodeConstants {
     // ========== OA 流程模块 1-009-001-000 ==========
     ErrorCode OA_LEAVE_NOT_EXISTS = new ErrorCode(1_009_001_001, "请假申请不存在");
 
+    ErrorCode EVE_APPEAL_NOT_EXISTS = new ErrorCode(1_009_001_001, "综测申请不存在");
+
+    ErrorCode AIDING_NOT_EXISTS = new ErrorCode(1_009_001_001, "家庭经济困难认定不存在");
+
     // ========== 流程模型 1-009-002-000 ==========
     ErrorCode MODEL_KEY_EXISTS = new ErrorCode(1_009_002_000, "已经存在流程标识为【{}】的流程");
     ErrorCode MODEL_NOT_EXISTS = new ErrorCode(1_009_002_001, "流程模型不存在");

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java

@@ -22,8 +22,8 @@ public enum BpmCommentTypeEnum {
     TRANSFER("7", "转派", "[{}]将任务转派给[{}],转派理由为:{}"),
     ADD_SIGN("8", "加签", "[{}]{}给了[{}],理由为:{}"),
     SUB_SIGN("9", "减签", "[{}]操作了【减签】,审批人[{}]的任务被取消"),
-    MODIFICATION("10", "驳回修改", "[{}]操作了【驳回修改】,审批人[{}]的任务被取消")
-    ;
+    MODIFICATION("10", "驳回修改", "[{}]操作了【驳回修改】,审批人[{}]的任务被取消"),
+    UNDO("11", "被撤回", "执行人[{}]的任务【被撤回】") ;
 
     /**
      * 操作类型

+ 6 - 0
yudao-module-bpm/yudao-module-bpm-biz/pom.xml

@@ -86,5 +86,11 @@
 <!--            <version>2.1.0-jdk8-snapshot</version>-->
 <!--            <scope>compile</scope>-->
 <!--        </dependency>-->
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-as-api</artifactId>
+            <version>2.1.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>

+ 2 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java

@@ -96,7 +96,8 @@ public class BpmProcessDefinitionController {
     @Operation(summary = "获得流程定义")
     @Parameter(name = "id", description = "流程编号", required = true, example = "1024")
     @Parameter(name = "key", description = "流程定义标识", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')")
+    @PreAuthorize("@ss.hasAnyPermissions('bpm:process-definition:query'," +
+            "'eve:task:query','eve:achievement:query','eve:appeal:approval') || @ss.hasAnyRoles('xgcxueshengguanli')")
     public CommonResult<BpmProcessDefinitionRespVO> getProcessDefinition(
             @RequestParam(value = "id", required = false) String id,
             @RequestParam(value = "key", required = false) String key) {

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmActivityController.java

@@ -31,8 +31,8 @@ public class BpmActivityController {
     @Operation(summary = "生成指定流程实例的高亮流程图",
             description = "只高亮进行中的任务。不过要注意,该接口暂时没用,通过前端的 ProcessViewer.vue 界面的 highlightDiagram 方法生成")
     @Parameter(name = "processInstanceId", description = "流程实例的编号", required = true)
-    @PreAuthorize("@ss.hasPermission('bpm:task:query')")
-    public CommonResult<List<BpmActivityRespVO>> getActivityList(
+    @PreAuthorize("@ss.hasAnyPermissions('bpm:task:query','eve:appeal:approval')")
+     public CommonResult<List<BpmActivityRespVO>> getActivityList(
             @RequestParam("processInstanceId") String processInstanceId) {
         return success(activityService.getActivityListByProcessInstanceId(processInstanceId));
     }

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java

@@ -119,7 +119,7 @@ public class BpmProcessInstanceController {
     @GetMapping("/get")
     @Operation(summary = "获得指定流程实例", description = "在【流程详细】界面中,进行调用")
     @Parameter(name = "id", description = "流程实例的编号", required = true)
-    @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
+    @PreAuthorize("@ss.hasAnyPermissions('bpm:process-instance:query','eve:task:query','eve:achievement:query','eve:appeal:approval')")
     public CommonResult<BpmProcessInstanceRespVO> getProcessInstance(@RequestParam("id") String id) {
         HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(id);
         if (processInstance == null) {

+ 3 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java

@@ -157,7 +157,7 @@ public class BpmTaskController {
     @GetMapping("/list-by-process-instance-id")
     @Operation(summary = "获得指定流程实例的任务列表", description = "包括完成的、未完成的")
     @Parameter(name = "processInstanceId", description = "流程实例的编号", required = true)
-    @PreAuthorize("@ss.hasPermission('bpm:task:query')")
+    @PreAuthorize("@ss.hasAnyPermissions('bpm:task:query','eve:appeal:approval')")
     public CommonResult<List<BpmTaskRespVO>> getTaskListByProcessInstanceId(
             @RequestParam("processInstanceId") String processInstanceId) {
         List<HistoricTaskInstance> taskList = taskService.getTaskListByProcessInstanceId(processInstanceId);
@@ -183,7 +183,7 @@ public class BpmTaskController {
 
     @PutMapping("/approve")
     @Operation(summary = "通过任务")
-    @PreAuthorize("@ss.hasPermission('bpm:task:update')")
+    @PreAuthorize("@ss.hasAnyPermissions('bpm:task:update','eve:appeal:approval')")
     public CommonResult<Boolean> approveTask(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
         taskService.approveTask(getLoginUserId(), reqVO);
         return success(true);
@@ -191,7 +191,7 @@ public class BpmTaskController {
 
     @PutMapping("/reject")
     @Operation(summary = "不通过任务")
-    @PreAuthorize("@ss.hasPermission('bpm:task:update')")
+    @PreAuthorize("@ss.hasAnyPermissions('bpm:task:update','eve:appeal:approval')")
     public CommonResult<Boolean> rejectTask(@Valid @RequestBody BpmTaskRejectReqVO reqVO) {
         taskService.rejectTask(getLoginUserId(), reqVO);
         return success(true);

+ 4 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskPageReqVO.java

@@ -21,7 +21,7 @@ public class BpmTaskPageReqVO extends PageParam {
     private String username;
 
     @Schema(description = "任务发起人", example = "芋道")
-    private String stundentId;
+    private String StudentId;
 
     @Schema(description = "任务发起人", example = "芋道")
     private Long userId;
@@ -32,6 +32,9 @@ public class BpmTaskPageReqVO extends PageParam {
     @Schema(description = "学院ID", example = "123")
     private Long collegeId;
 
+    @Schema(description = "学院ID", example = "123")
+    private Long classId;
+
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;

+ 7 - 6
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUndoReqVO.java

@@ -9,16 +9,17 @@ import javax.validation.constraints.NotEmpty;
 @Data
 public class BpmTaskUndoReqVO {
 
-    @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
-    @NotEmpty(message = "任务编号不能为空")
+
+    private String processInstanceId;
+
     private String id;
 
-    @Schema(description = "撤销到的任务 Key", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @NotEmpty(message = "撤销的任务 Key 不能为空")
+
+    private Long userId;
+
+
     private String targetTaskDefinitionKey;
 
-    @Schema(description = "撤销原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "我就是想驳回")
-    @NotEmpty(message = "撤销意见不能为空")
     private String reason;
 
 }

+ 29 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmForCounselorExpression.java

@@ -72,6 +72,35 @@ public class BpmForCounselorExpression {
 
         List<AdminUserRespDTO> userRespDTOList =  adminUserApi.getUserListByDeptIds(deptIds);
 
+
+        Set<Long> RoleIdSet = getRoleByUserLists(userRespDTOList);
+
+        return RoleIdSet.isEmpty() ? emptySet() : RoleIdSet;
+    }
+
+    //学工管理员
+    public Set<Long> calculateUsersBySchoolAdmin(DelegateExecution execution) {
+
+        // 获得发起人
+        ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId());
+        Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId());
+
+        //获得发起人所在的部门
+        DeptRespDTO dept = getStartUserDept(startUserId);
+        if (dept == null) {
+            // 找不到发起人的部门,所以无法使用该规则
+            return emptySet();
+        }
+        //获取所在学院id
+        Long collegeId = deptApi.getCollegeId(dept.getId());
+
+        List<DeptRespDTO> collegeList = deptApi.getChildDeptList(collegeId);
+
+        //根据部门id获取部门内的成员
+        Collection<Long> deptIds = convertSet(collegeList, DeptRespDTO::getId);
+
+        List<AdminUserRespDTO> userRespDTOList =  adminUserApi.getUserListByDeptIds(deptIds);
+
         //获取“评审成员”
         Set<Long> RoleIdSet = getRoleByUserLists(userRespDTOList);
 

+ 185 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAidAssistantExpression.java

@@ -0,0 +1,185 @@
+package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.expression;
+
+import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
+import cn.iocoder.yudao.module.as.aidingstudentscollegemanage.AidingStudentsCollegeManageApi ;
+import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
+
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import cn.iocoder.yudao.module.system.service.permission.PermissionService;
+import org.flowable.engine.delegate.DelegateExecution;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static java.util.Collections.emptySet;
+
+/**
+ *
+ * 尝试通过部门和岗位获取当前班级的自评小组信息并分配为审批人
+ * @author yzx
+ */
+@Component
+public class BpmTaskAidAssistantExpression {
+
+    @Resource
+    private AdminUserApi adminUserApi;
+    @Resource
+    private DeptApi deptApi;
+
+
+    @Resource
+    private PermissionService permissionService;
+
+    @Resource
+    private BpmProcessInstanceService processInstanceService;
+
+    @Resource
+    private AidingStudentsCollegeManageApi aidingStudentsCollegeManageApi;
+    /**
+     * 资助助理
+     * @param execution 流程执行实体
+     * @return 学院资助助理
+     */
+    public Set<Long> calculateUsers(DelegateExecution execution) {
+
+        // 获得发起人
+        ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId());
+
+        Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId());
+        Long deptId = adminUserApi.getUser(startUserId).getDeptId();
+        Long collegeId =  deptApi.getCollegeId(deptId);
+        Map<String, Object> variablesMap = processInstance.getProcessVariables();
+        Long manageId = (long)variablesMap.get("manageId");
+        Set<Long> aidAssistant = aidingStudentsCollegeManageApi.getAidingStudentsCollegeAssistant(collegeId,manageId);
+        if(aidAssistant == null){
+            return emptySet();
+        }else{
+            return aidAssistant;
+        }
+    }
+    /**
+     * 资助助理+ 辅导员
+     * @param execution 流程执行实体
+     * @return 学院资助助理 + 辅导员
+     */
+    public Set<Long> calculateUsersForCounselor(DelegateExecution execution) {
+
+        // 获得发起人
+        ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId());
+
+        Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId());
+
+        Map<String, Object> variablesMap = processInstance.getProcessVariables();
+        Long manageId = (long)variablesMap.get("manageId");
+
+        //获得发起人所在的部门
+        DeptRespDTO dept = getStartUserDept(startUserId);
+        if (dept == null) {
+            // 找不到发起人的部门,所以无法使用该规则
+            return emptySet();
+        }
+
+        //获取所在学院id
+        Long collegeId = deptApi.getCollegeId(dept.getId());
+
+        List<DeptRespDTO> collegeList = deptApi.getChildDeptList(collegeId);
+
+        //根据部门id获取部门内的成员
+        Collection<Long> deptIds = convertSet(collegeList, DeptRespDTO::getId);
+
+        List<AdminUserRespDTO> userRespDTOList =  adminUserApi.getUserListByDeptIds(deptIds);
+
+        //获取“评审成员”
+        Set<Long> RoleIdSet = getRoleByUserLists(userRespDTOList);
+
+        Set<Long> aidAssistant = aidingStudentsCollegeManageApi.getAidingStudentsCollegeAssistant(collegeId,manageId);
+
+        Set<Long> result = new HashSet<>();
+
+        result.addAll(RoleIdSet);
+        result.addAll(aidAssistant);
+
+        if(result.isEmpty()){
+            return emptySet();
+        }else{
+            return result;
+        }
+    }
+
+    /**
+     * 班主任
+     * @param execution 流程执行实体
+     * @return 班主任
+     */
+    public Set<Long> calculateTeacher(DelegateExecution execution) {
+
+        // 获得发起人
+        ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId());
+
+        Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId());
+
+        Long deptId = adminUserApi.getUser(startUserId).getDeptId();
+
+        //根据部门id获取部门内的成员
+        Collection<Long> deptIds = new HashSet<>();
+        deptIds.add(deptId);
+        List<AdminUserRespDTO> userRespDTOList =  adminUserApi.getUserListByDeptIds(deptIds);
+
+        //获取“班主任”
+        Set<Long> RoleIdSet = getTeacherByUserLists(userRespDTOList);
+
+        if(RoleIdSet.isEmpty()){
+
+            return emptySet();
+
+        }else{
+
+            return RoleIdSet;
+
+        }
+    }
+
+
+    private DeptRespDTO getStartUserDept(Long startUserId) {
+        AdminUserRespDTO startUser = adminUserApi.getUser(startUserId);
+        if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则
+            return null;
+        }
+        return deptApi.getDept(startUser.getDeptId());
+    }
+
+    // 在当前用户列表中筛选出具有“fudaoyuan”角色的用户
+    private  Set<Long> getRoleByUserLists(List<AdminUserRespDTO> userRespDTOList) {
+        Set<Long> RoleIdSet = new HashSet<>();
+        for (AdminUserRespDTO userRespDTO : userRespDTOList) {
+            Long userRespDTOId = userRespDTO.getId();
+            Set<Long> theUserIdList =  permissionService.getUserRoleIdListByUserId(userRespDTOId);
+            boolean contains154 = theUserIdList.contains(156L);
+            if(contains154){
+                RoleIdSet.add(userRespDTO.getId());
+            }
+        }
+        return RoleIdSet;
+    }
+
+    // 在当前用户列表中筛选出具有“fudaoyuan”角色的用户
+    private  Set<Long> getTeacherByUserLists(List<AdminUserRespDTO> userRespDTOList) {
+        Set<Long> RoleIdSet = new HashSet<>();
+        for (AdminUserRespDTO userRespDTO : userRespDTOList) {
+            Long userRespDTOId = userRespDTO.getId();
+            Set<Long> theUserIdList =  permissionService.getUserRoleIdListByUserId(userRespDTOId);
+            boolean contains154 = theUserIdList.contains(156L);
+            if(contains154){
+                RoleIdSet.add(userRespDTO.getId());
+            }
+        }
+        return RoleIdSet;
+    }
+}

+ 133 - 81
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAssignClassMutualExpression.java

@@ -1,81 +1,133 @@
-package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.expression;
-
-import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
-import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
-
-
-import cn.iocoder.yudao.module.system.api.dept.DeptApi;
-import cn.iocoder.yudao.module.system.api.dept.PostApi;
-import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
-import cn.iocoder.yudao.module.system.service.permission.PermissionService;
-
-import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
-import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
-
-import org.flowable.engine.delegate.DelegateExecution;
-import org.flowable.engine.runtime.ProcessInstance;
-import org.springframework.stereotype.Component;
-import javax.annotation.Resource;
-import java.util.*;
-
-import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
-import static java.util.Collections.emptySet;
-
-/**
- *
- * 尝试通过部门和岗位获取同年级不同班级的自评小组信息并分配为审批人
- * @author yzx
- */
-@Component
-public class BpmTaskAssignClassMutualExpression {
-
-    @Resource
-    private AdminUserApi adminUserApi;
-    @Resource
-    private DeptApi deptApi;
-
-    @Resource
-    private PostApi postApi;
-
-    @Resource
-    private PermissionApi permissionApi;
-
-    @Resource
-    private PermissionService permissionService;
-
-    @Resource
-    private BpmProcessInstanceService processInstanceService;
-
-
-
-
-
-    private DeptRespDTO getStartUserDept(Long startUserId) {
-        AdminUserRespDTO startUser = adminUserApi.getUser(startUserId);
-        if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则
-            return null;
-        }
-        return deptApi.getDept(startUser.getDeptId());
-    }
-
-    // 在当前用户列表中筛选出具有“评审成员”角色的用户
-    private  Set<Long> getRoleByUserLists(List<AdminUserRespDTO> userRespDTOList) {
-
-        Set<Long> RoleIdSet = new HashSet<>();
-        for (AdminUserRespDTO userRespDTO : userRespDTOList) {
-            Long userRespDTOId = userRespDTO.getId();
-            Set<Long> theUserIdList =  permissionService.getUserRoleIdListByUserId(userRespDTOId);
-            boolean contains154 = theUserIdList.contains(154L);
-            if(contains154){
-                RoleIdSet.add(userRespDTO.getId());
-            }
-        }
-        return RoleIdSet;
-    }
-
-
-
-
-
-}
+//package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.expression;
+//
+//import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
+//import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
+//
+//import cn.iocoder.yudao.module.eve.api.achievement.AchievementApi;
+//import cn.iocoder.yudao.module.eve.api.achievement.dto.AchievementDTO;
+//import cn.iocoder.yudao.module.eve.api.classmutual.ClassMutualApi;
+//import cn.iocoder.yudao.module.eve.api.classmutual.dto.ClassMutualDTO;
+//
+//import cn.iocoder.yudao.module.eve.api.classreviewer.ClassReviewerApi;
+//import cn.iocoder.yudao.module.eve.api.classreviewer.DTO.ClassReviewerDTO;
+//import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+//import cn.iocoder.yudao.module.system.api.dept.PostApi;
+//import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
+//import cn.iocoder.yudao.module.system.service.permission.PermissionService;
+//
+//import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+//import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+//import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+//
+//import org.flowable.engine.delegate.DelegateExecution;
+//import org.flowable.engine.runtime.ProcessInstance;
+//import org.springframework.stereotype.Component;
+//import javax.annotation.Resource;
+//import java.util.*;
+//
+//import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
+//import static java.util.Collections.emptySet;
+//
+///**
+// *
+// * 尝试通过部门和岗位获取同年级不同班级的自评小组信息并分配为审批人
+// * @author yzx
+// */
+//@Component
+//public class BpmTaskAssignClassMutualExpression {
+//
+//    @Resource
+//    private AdminUserApi adminUserApi;
+//    @Resource
+//    private DeptApi deptApi;
+//
+//    @Resource
+//    private PostApi postApi;
+//
+//    @Resource
+//    private PermissionApi permissionApi;
+//
+//    @Resource
+//    private PermissionService permissionService;
+//
+//    @Resource
+//    private BpmProcessInstanceService processInstanceService;
+//
+//    @Resource
+//    private ClassMutualApi classMutualApi;
+//
+//    @Resource
+//    private AchievementApi achievementApi;
+//
+//    @Resource
+//    private ClassReviewerApi classReviewerApi;
+//    /**
+//     * 计算审批的候选人
+//     * @param execution 流程执行实体
+//     * @return 班级互评审批人
+//     */
+//    public Set<Long> calculateUsers(DelegateExecution execution) {
+//
+//        // 获得发起人
+//        ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId());
+//        Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId());
+//        String processInstanceId = processInstance.getProcessInstanceId();
+//        Long manageId = achievementApi.getManageId(processInstanceId).getManageId();
+//
+//        //获得发起人所在的部门
+//        DeptRespDTO dept = null;
+//        dept = getStartUserDept(startUserId);
+//        if (dept == null) {
+//            // 找不到发起人的部门,所以无法使用该规则
+//            return emptySet();
+//        }
+//        //获取对应班级
+//        ClassMutualDTO reviewClass = classMutualApi.getClassMutualByReviewed(dept.getId(),manageId);
+//
+//        List<ClassReviewerDTO> ClassReviewerList =
+//                classReviewerApi.getClassReviewerByClass(manageId,reviewClass.getReviewClass());
+//
+//        Long result = ClassReviewerList.stream()
+//                .filter(dto -> dto.getClassMutualReviewed().contains(startUserId))
+//                .findFirst()
+//                .map(ClassReviewerDTO::getUserId)
+//                .orElse(null);
+//        if(result == null){
+//            return emptySet();
+//        }
+//
+////        //根据部门id获取部门内所有的成员
+////        Collection<Long> deptIds = new ArrayList<>();
+////        deptIds.add(reviewClass.getReviewClass());
+////        List<AdminUserRespDTO> userRespDTOList =  adminUserApi.getUserListByDeptIds(deptIds);
+////
+////        //筛选出“评审成员”
+////        Set<Long> RoleIdSet = getRoleByUserLists(userRespDTOList);
+//        Set<Long> RoleIdSet = new HashSet<>();
+//        RoleIdSet.add(result);
+//        return RoleIdSet;
+//    }
+//
+//    private DeptRespDTO getStartUserDept(Long startUserId) {
+//        AdminUserRespDTO startUser = adminUserApi.getUser(startUserId);
+//        if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则
+//            return null;
+//        }
+//        return deptApi.getDept(startUser.getDeptId());
+//    }
+//
+//    // 在当前用户列表中筛选出具有“评审成员”角色的用户
+//    private  Set<Long> getRoleByUserLists(List<AdminUserRespDTO> userRespDTOList) {
+//
+//        Set<Long> RoleIdSet = new HashSet<>();
+//        for (AdminUserRespDTO userRespDTO : userRespDTOList) {
+//            Long userRespDTOId = userRespDTO.getId();
+//            Set<Long> theUserIdList =  permissionService.getUserRoleIdListByUserId(userRespDTOId);
+//            boolean contains154 = theUserIdList.contains(154L);
+//            if(contains154){
+//                RoleIdSet.add(userRespDTO.getId());
+//            }
+//        }
+//        return RoleIdSet;
+//    }
+//}

+ 119 - 101
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAssignClassSelfExpression.java

@@ -1,101 +1,119 @@
-package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.expression;
-
-import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
-import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
-import cn.iocoder.yudao.module.system.api.dept.DeptApi;
-import cn.iocoder.yudao.module.system.api.dept.PostApi;
-import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
-import cn.iocoder.yudao.module.system.service.permission.PermissionService;
-
-import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
-import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
-import org.flowable.engine.delegate.DelegateExecution;
-import org.flowable.engine.runtime.ProcessInstance;
-import org.springframework.stereotype.Component;
-import javax.annotation.Resource;
-import java.util.*;
-
-import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
-import static java.util.Collections.emptySet;
-
-/**
- *
- * 尝试通过部门和岗位获取当前班级的自评小组信息并分配为审批人
- * @author yzx
- */
-@Component
-public class BpmTaskAssignClassSelfExpression {
-
-    @Resource
-    private AdminUserApi adminUserApi;
-    @Resource
-    private DeptApi deptApi;
-
-    @Resource
-    private PostApi postApi;
-
-    @Resource
-    private PermissionApi permissionApi;
-
-    @Resource
-    private PermissionService permissionService;
-
-    @Resource
-    private BpmProcessInstanceService processInstanceService;
-
-    /**
-     * 计算审批的候选人
-     * @param execution 流程执行实体
-     * @return 班级自评小组内部审批人
-     */
-    public Set<Long> calculateUsers(DelegateExecution execution) {
-
-        // 获得发起人
-        ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId());
-        Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId());
-
-        //获得发起人所在的部门
-        DeptRespDTO dept = null;
-        dept = getStartUserDept(startUserId);
-        if (dept == null) {
-            // 找不到发起人的部门,所以无法使用该规则
-            return emptySet();
-        }
-
-        //根据部门id获取部门内的成员
-        Collection<Long> deptIds = new ArrayList<Long>();
-        deptIds.add(dept.getId());
-        List<AdminUserRespDTO> userRespDTOList =  adminUserApi.getUserListByDeptIds(deptIds);
-
-        //获取“评审成员”
-        Set<Long> RoleIdSet = getRoleByUserLists(userRespDTOList);
-
-        return RoleIdSet.isEmpty() ? emptySet() : RoleIdSet;
-    }
-
-    private DeptRespDTO getStartUserDept(Long startUserId) {
-        AdminUserRespDTO startUser = adminUserApi.getUser(startUserId);
-        if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则
-            return null;
-        }
-        return deptApi.getDept(startUser.getDeptId());
-    }
-
-    // 在当前用户列表中筛选出具有“评审成员”角色的用户
-    private  Set<Long> getRoleByUserLists(List<AdminUserRespDTO> userRespDTOList) {
-
-        Set<Long> RoleIdSet = new HashSet<>();
-        for (AdminUserRespDTO userRespDTO : userRespDTOList) {
-            Long userRespDTOId = userRespDTO.getId();
-            Set<Long> theUserIdList =  permissionService.getUserRoleIdListByUserId(userRespDTOId);
-            boolean contains154 = theUserIdList.contains(154L);
-            if(contains154){
-                RoleIdSet.add(userRespDTO.getId());
-            }
-        }
-        return RoleIdSet;
-    }
-
-
-}
+//package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.expression;
+//
+//import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
+//import cn.iocoder.yudao.framework.security.core.LoginUser;
+//import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
+//import cn.iocoder.yudao.module.eve.api.achievement.AchievementApi;
+//import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+//import cn.iocoder.yudao.module.system.api.dept.PostApi;
+//import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
+//import cn.iocoder.yudao.module.system.service.permission.PermissionService;
+//
+//import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+//import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+//import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+//import org.flowable.engine.delegate.DelegateExecution;
+//import org.flowable.engine.runtime.ProcessInstance;
+//import org.springframework.stereotype.Component;
+//import javax.annotation.Resource;
+//import java.util.*;
+//import cn.iocoder.yudao.module.eve.api.classreviewer.ClassReviewerApi;
+//import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
+//import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+//import static java.util.Collections.emptySet;
+//import cn.iocoder.yudao.module.eve.api.classreviewer.ClassReviewerApi ;
+//import cn.iocoder.yudao.module.eve.api.classreviewer.DTO.ClassReviewerDTO;
+///**
+// *
+// * 尝试通过部门和岗位获取当前班级的自评小组信息并分配为审批人
+// * @author yzx
+// */
+//@Component
+//public class BpmTaskAssignClassSelfExpression {
+//
+//    @Resource
+//    private AdminUserApi adminUserApi;
+//    @Resource
+//    private DeptApi deptApi;
+//
+//    @Resource
+//    private ClassReviewerApi classReviewerApi;
+//
+//    @Resource
+//    private PermissionService permissionService;
+//
+//    @Resource
+//    private BpmProcessInstanceService processInstanceService;
+//
+//    @Resource
+//    private AchievementApi achievementApi;
+//    /**
+//     * 计算审批的候选人
+//     * @param execution 流程执行实体
+//     * @return 班级自评小组内部审批人
+//     */
+//    public Set<Long> calculateUsers(DelegateExecution execution) {
+//
+//        // 获得发起人
+//        ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId());
+//
+//        Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId());
+//
+//        Map<String, Object> variablesMap = processInstance.getProcessVariables();
+//        Long manageId = (long)variablesMap.get("manageId");
+//        List<ClassReviewerDTO> ClassReviewerList = classReviewerApi.getClassReviewer(manageId);
+//
+//        Long result = ClassReviewerList.stream()
+//                .filter(dto -> dto.getReviewed().contains(startUserId))
+//                .findFirst()
+//                .map(ClassReviewerDTO::getUserId)
+//                .orElse(null);
+//        if(result == null){
+//            return emptySet();
+//        }
+////        //获得发起人所在的部门
+////        DeptRespDTO dept = null;
+////        dept = getStartUserDept(startUserId);
+////        if (dept == null) {
+////            // 找不到发起人的部门,所以无法使用该规则
+////            return emptySet();
+////        }
+////
+////        //根据部门id获取部门内的成员
+////        Collection<Long> deptIds = new ArrayList<Long>();
+////        deptIds.add(dept.getId());
+////        List<AdminUserRespDTO> userRespDTOList =  adminUserApi.getUserListByDeptIds(deptIds);
+////
+////        //获取“评审成员”
+////        Set<Long> RoleIdSet = getRoleByUserLists(userRespDTOList);
+//
+//        Set<Long> RoleIdSet = new HashSet<>();
+//        RoleIdSet.add(result);
+//        return RoleIdSet;
+//    }
+//
+//    private DeptRespDTO getStartUserDept(Long startUserId) {
+//        AdminUserRespDTO startUser = adminUserApi.getUser(startUserId);
+//        if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则
+//            return null;
+//        }
+//        return deptApi.getDept(startUser.getDeptId());
+//    }
+//
+//    // 在当前用户列表中筛选出具有“评审成员”角色的用户
+//    private  Set<Long> getRoleByUserLists(List<AdminUserRespDTO> userRespDTOList) {
+//
+//        Set<Long> RoleIdSet = new HashSet<>();
+//        for (AdminUserRespDTO userRespDTO : userRespDTOList) {
+//            Long userRespDTOId = userRespDTO.getId();
+//            Set<Long> theUserIdList =  permissionService.getUserRoleIdListByUserId(userRespDTOId);
+//            boolean contains154 = theUserIdList.contains(154L);
+//            if(contains154 && !Objects.equals(userRespDTO.getId(), getLoginUserId())){
+//                RoleIdSet.add(userRespDTO.getId());
+//            }
+//        }
+//        return RoleIdSet;
+//    }
+//
+//
+//}

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java


+ 21 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java

@@ -41,6 +41,16 @@ public interface BpmTaskService {
      */
     List<Task> getTaskTodoPageComprehensive(Long userId, BpmTaskPageReqVO pageReqVO);
 
+
+    /**
+     * 获得待办综测审批的流程任务分页
+     *
+     * @param userId    用户编号
+     * @param pageReqVO 分页请求
+     * @return 流程任务分页
+     */
+    List<Task> getTaskTodoPageAidingList(Long userId, BpmTaskPageReqVO pageReqVO);
+
     /**
      * 获得待办综测审批的流程任务分页
      *
@@ -78,6 +88,15 @@ public interface BpmTaskService {
      */
     List<HistoricTaskInstance> getTaskDoneByPeople(Long userId, BpmTaskPageReqVO pageReqVO);
 
+    /**
+     * 获得已办的流程任务分页根据发起人
+     *
+     * @param userId    用户编号
+     * @param pageReqVO 分页请求
+     * @return 流程任务分页
+     */
+    List<HistoricTaskInstance> getTaskDoneByPeopleAndProcessInstanceIds(Long userId, BpmTaskPageReqVO pageReqVO,Collection<String> processInstanceIds);
+
     /**
      * 获得全部的流程任务分页
      *
@@ -287,7 +306,8 @@ public interface BpmTaskService {
      * @param userId 用户编号
      * @param reqVO  回退的任务key和当前所在的任务ID
      */
-    void UndoTask(Long userId, BpmTaskReturnReqVO reqVO);
+    void UndoTask(Long userId, BpmTaskUndoReqVO reqVO);
+
     /**
      * 获取指定任务的子任务列表
      *

+ 82 - 6
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java

@@ -125,6 +125,25 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         }
         return taskQuery.list();
     }
+
+    @Override
+    public List<Task> getTaskTodoPageAidingList(Long userId, BpmTaskPageReqVO pageVO) {
+        TaskQuery taskQuery = taskService.createTaskQuery()
+                .taskAssignee(String.valueOf(userId)) // 分配给自己
+                .processDefinitionKey("familyDifficulties") //流程定义
+                .active()
+                .includeProcessVariables()
+                .orderByTaskCreateTime().desc(); // 创建时间倒序
+        if (StrUtil.isNotBlank(pageVO.getName())) {
+            taskQuery.taskNameLike("%" + pageVO.getName() + "%");
+        }
+        if (ArrayUtil.isNotEmpty(pageVO.getCreateTime())) {
+            taskQuery.taskCreatedAfter(DateUtils.of(pageVO.getCreateTime()[0]));
+            taskQuery.taskCreatedAfter(DateUtils.of(pageVO.getCreateTime()[1]));
+        }
+        return taskQuery.list();
+    }
+
     @Override
     public List<Task> getTaskTodoPageComprehensiveByPeople(Long userId, eveProcessInstanceReqVO pageVO) {
         TaskQuery taskQuery = taskService.createTaskQuery()
@@ -203,7 +222,24 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         }
         return taskQuery.list();
     }
-
+    @Override
+    public List<HistoricTaskInstance> getTaskDoneByPeopleAndProcessInstanceIds(Long userId, BpmTaskPageReqVO pageVO,Collection<String> processInstanceIds) {
+        HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery()
+                .finished() // 已完成
+                .taskAssignee(String.valueOf(userId)) // 分配给自己
+                .processDefinitionKey("comprehensive")
+                .includeTaskLocalVariables()
+                .processInstanceIdIn(processInstanceIds)
+                .orderByHistoricTaskInstanceEndTime().desc(); // 审批时间倒序
+        if (StrUtil.isNotBlank(pageVO.getName())) {
+            taskQuery.taskNameLike("%" + pageVO.getName() + "%");
+        }
+        if (ArrayUtil.isNotEmpty(pageVO.getCreateTime())) {
+            taskQuery.taskCreatedAfter(DateUtils.of(pageVO.getCreateTime()[0]));
+            taskQuery.taskCreatedAfter(DateUtils.of(pageVO.getCreateTime()[1]));
+        }
+        return taskQuery.list();
+    }
 
     @Override
     public PageResult<HistoricTaskInstance> getTaskPage(Long userId, BpmTaskPageReqVO pageVO) {
@@ -765,7 +801,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
                 }
                 ProcessInstance processInstance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
                 AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(processInstance.getStartUserId()));
-                messageService.sendMessageWhenTaskAssigned(BpmTaskConvert.INSTANCE.convert(processInstance, startUser, task));
+//                messageService.sendMessageWhenTaskAssigned(BpmTaskConvert.INSTANCE.convert(processInstance, startUser, task));
             }
 
         });
@@ -865,7 +901,47 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         List<String> runTaskKeyList = convertList(taskList, Task::getTaskDefinitionKey);
         // 1.2 通过 targetElement 的出口连线,计算在 runTaskKeyList 有哪些 key 需要被撤回
         // 为什么不直接使用 runTaskKeyList 呢?因为可能存在多个审批分支,例如说:A -> B -> C 和 D -> F,而只要 C 撤回到 A,需要排除掉 F
-        List<UserTask> returnUserTaskList = BpmnModelUtils.iteratorFindChildUserTasks(targetElement, runTaskKeyList, null, null);
+        List<UserTask> returnUserTaskList = BpmnModelUtils.iteratorFindChildUserTasks(targetElement, runTaskKeyList,
+                null, null);
+        List<String> returnTaskKeyList = convertList(returnUserTaskList, UserTask::getId);
+
+        // 2. 给当前要被回退的 task 数组,设置回退意见
+        taskList.forEach(task -> {
+            // 需要排除掉,不需要设置回退意见的任务
+            if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) {
+                return;
+            }
+            // 2.1 添加评论
+            taskService.addComment(task.getId(), currentTask.getProcessInstanceId(), BpmCommentTypeEnum.RETURN.getType(),
+                    BpmCommentTypeEnum.RETURN.formatComment(reqVO.getReason()));
+            // 2.2 更新 task 状态 + 原因
+            updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.RETURN.getStatus(), reqVO.getReason());
+        });
+
+        // 3. 执行驳回
+        runtimeService.createChangeActivityStateBuilder()
+                .processInstanceId(currentTask.getProcessInstanceId())
+                .moveActivityIdsToSingleActivityId(returnTaskKeyList, // 当前要跳转的节点列表( 1 或多)
+                        reqVO.getTargetTaskDefinitionKey()) // targetKey 跳转到的节点(1)
+                .changeState();
+    }
+
+    /**
+     * 执行回退逻辑
+     *
+     * @param currentTask   当前回退的任务
+     * @param targetElement 需要回退到的目标任务
+     * @param reqVO         前端参数封装
+     */
+    public void returnTask(Task currentTask, FlowElement targetElement, BpmTaskUndoReqVO reqVO) {
+        // 1. 获得所有需要回撤的任务 taskDefinitionKey,用于稍后的 moveActivityIdsToSingleActivityId 回撤
+        // 1.1 获取所有正常进行的任务节点 Key
+        List<Task> taskList = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).list();
+        List<String> runTaskKeyList = convertList(taskList, Task::getTaskDefinitionKey);
+        // 1.2 通过 targetElement 的出口连线,计算在 runTaskKeyList 有哪些 key 需要被撤回
+        // 为什么不直接使用 runTaskKeyList 呢?因为可能存在多个审批分支,例如说:A -> B -> C 和 D -> F,而只要 C 撤回到 A,需要排除掉 F
+        List<UserTask> returnUserTaskList = BpmnModelUtils.iteratorFindChildUserTasks(targetElement, runTaskKeyList,
+                null, null);
         List<String> returnTaskKeyList = convertList(returnUserTaskList, UserTask::getId);
 
         // 2. 给当前要被回退的 task 数组,设置回退意见
@@ -1096,9 +1172,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void UndoTask(Long userId, BpmTaskReturnReqVO reqVO) {
+    public void UndoTask(Long userId, BpmTaskUndoReqVO reqVO) {
         // 1.1 当前任务 task
-        Task task = validateTask(userId, reqVO.getId());
+        Task task = validateTask(reqVO.getUserId(), reqVO.getId());
         if (task.isSuspended()) {
             throw exception(TASK_IS_PENDING);
         }
@@ -1108,7 +1184,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 
         // 2. 调用 Flowable 框架的回退逻辑
         returnTask(task, targetElement, reqVO);
-     }
+    }
 
 
     /**

+ 5 - 5
yudao-module-system/yudao-module-system-biz/pom.xml

@@ -23,11 +23,11 @@
             <artifactId>yudao-module-system-api</artifactId>
             <version>${revision}</version>
         </dependency>
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-module-system-biz</artifactId>
-            <version>${revision}</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>cn.iocoder.boot</groupId>-->
+<!--            <artifactId>yudao-module-system-biz</artifactId>-->
+<!--            <version>${revision}</version>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-module-infra-api</artifactId>

+ 40 - 2
yudao-server/pom.xml

@@ -9,7 +9,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>fdy-server</artifactId>
+    <artifactId>yudao-server</artifactId>
     <packaging>jar</packaging>
 
     <name>${project.artifactId}</name>
@@ -32,13 +32,51 @@
             <version>${revision}</version>
         </dependency>
 
+         <!-- 会员中心。默认注释,保证编译速度 -->
+<!--        <dependency>-->
+<!--            <groupId>cn.iocoder.boot</groupId>-->
+<!--            <artifactId>yudao-module-member-biz</artifactId>-->
+<!--            <version>${revision}</version>-->
+<!--        </dependency>-->
+
+
+        <!-- 数据报表。默认注释,保证编译速度 -->
+<!--        <dependency>-->
+<!--            <groupId>cn.iocoder.boot</groupId>-->
+<!--            <artifactId>yudao-module-report-biz</artifactId>-->
+<!--            <version>${revision}</version>-->
+<!--        </dependency>-->
         <!-- 工作流。默认注释,保证编译速度 -->
         <dependency>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-module-bpm-biz</artifactId>
             <version>${revision}</version>
         </dependency>
-        <!-- 助学模块。默认注释,保证编译速度 -->
+        <!-- 支付服务。默认注释,保证编译速度 -->
+<!--        <dependency>-->
+<!--            <groupId>cn.iocoder.boot</groupId>-->
+<!--            <artifactId>yudao-module-pay-biz</artifactId>-->
+<!--            <version>${revision}</version>-->
+<!--        </dependency>-->
+
+        <!-- 微信公众号模块。默认注释,保证编译速度 -->
+<!--        <dependency>-->
+<!--            <groupId>cn.iocoder.boot</groupId>-->
+<!--            <artifactId>yudao-module-mp-biz</artifactId>-->
+<!--            <version>${revision}</version>-->
+<!--        </dependency>-->
+
+        <!-- 数据报表分析模块。默认注释,保证编译速度 -->
+
+
+        <!-- 综测模块。默认注释,保证编译速度 -->
+<!--        <dependency>-->
+<!--            <groupId>cn.iocoder.boot</groupId>-->
+<!--            <artifactId>yudao-module-eve-biz</artifactId>-->
+<!--            <version>${revision}</version>-->
+<!--        </dependency>-->
+
+<!--        &lt;!&ndash; 助学模块。默认注释,保证编译速度 &ndash;&gt;-->
         <dependency>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-module-as-biz</artifactId>

+ 16 - 10
yudao-server/src/main/resources/application-dev.yaml

@@ -43,21 +43,27 @@ spring:
       primary: master
       datasource:
         master:
-          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
-          username: root
-          password: 123456
-        slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改
+          #url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+          url: jdbc:mysql://172.16.59.99:3306/spirit?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+
+          username: spirit
+          password: K6LYxiERSrxAbjcx
+
+        slave: # 模拟从库,可根据自己需要修改
           lazy: true # 开启懒加载,保证启动速度
-          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
-          username: root
-          password: 123456
+          #url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+          url: jdbc:mysql://172.16.59.99:3306/spirit?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+          username: spirit
+          password: K6LYxiERSrxAbjcx
+  #          username: root
+  #          password: 123456
 
   # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
   redis:
-    host: 400-infra.server.iocoder.cn # 地址
+    host: 172.16.59.99  # 地址
     port: 6379 # 端口
-    database: 1 # 数据库索引
-#    password: 123456 # 密码,建议生产环境开启
+    database: 0 # 数据库索引
+    password: 123456 # 密码,建议生产环境开启
 
 --- #################### 定时任务相关配置 ####################
 

+ 0 - 10
yudao-server/src/main/resources/application.yaml

@@ -50,16 +50,6 @@ knife4j:
   setting:
     language: zh_cn
 
-# minio 配置#
-minio:
-  endpoint: 127.0.0.1
-  port: 9000
-  accessKey: minioadmin
-  secretKey: minioadmin
-  secure: true
-  bucketName: "fdy-ptf-bucket"
-
-
 # 工作流 Flowable 配置
 flowable:
   # 1. false: 默认值,Flowable 启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov