Переглянути джерело

家庭经济困难认定审批流

yzx 7 місяців тому
батько
коміт
9bc5e27cd3
12 змінених файлів з 183 додано та 53 видалено
  1. 2 2
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/aidingstudentspersonmanage/vo/AidingStudentPersonManageClassVO.java
  2. 21 12
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/controller/admin/task/asTaskController.java
  3. 41 14
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/convert/task/asTaskConvert.java
  4. 36 4
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/dataobject/aidingstudentspersonmanage/AidingStudentsPersonManageDO.java
  5. 27 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/dal/mysql/aidingstudentspersonmanage/AidingStudentsPersonManageMapper.java
  6. 21 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageService.java
  7. 10 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentsmanage/AidingStudentsManageServiceImpl.java
  8. 2 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/AidingStudentsPersonManageService.java
  9. 6 0
      yudao-module-as/yudao-module-as-biz/src/main/java/cn/iocoder/yudao/module/as/service/aidingstudentspersonmanage/AidingStudentsPersonManageServiceImpl.java
  10. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskPageReqVO.java
  11. 16 10
      yudao-server/src/main/resources/application-dev.yaml
  12. 0 10
      yudao-server/src/main/resources/application.yaml

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

@@ -19,6 +19,8 @@ public class AidingStudentPersonManageClassVO {
     private String grade;
     // 班级名称
     private String className;
+    // 总提交人数
+    private Integer Count;
     // 审核人数
     private Integer classAll;
     // 待审核人数
@@ -27,6 +29,4 @@ public class AidingStudentPersonManageClassVO {
     private Integer classEdit;
     // 已经通过人数
     private Integer classPass;
-    // 流程
-    private String processInstanceId;
 }

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

@@ -10,7 +10,9 @@ import cn.iocoder.yudao.module.as.controller.admin.aidingstudentspersonmanage.vo
 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;
@@ -62,29 +64,36 @@ public class asTaskController {
     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<Map<String,List<AidingStudentPersonManageInfoPageReqVO>>> getTaskTodoPageAiding(@Valid BpmTaskPageReqVO pageVO) {
+    public CommonResult<List<AidingStudentPersonManageClassVO>> getTaskTodoPageAiding(
+            @Valid BpmTaskPageReqVO pageVO) {
         //获取我的任务中家困任务的列表
-        List<Task> pageResult = taskService.getTaskTodoPageAidingList(getLoginUserId(), pageVO);
+        List<Task> ListResult = taskService.getTaskTodoPageAidingList(getLoginUserId(), pageVO);
 
-        if (CollUtil.isEmpty(pageResult)) {
+        if (CollUtil.isEmpty(ListResult)) {
             return success(null);
         }
 
-        //根据当前任务的idList获取 ,返回关于项目与班级分组的学生材料
         List<AidingStudentsPersonManageDO> aidingStudentsPersonList =
-                aidingStudentsPersonManageService.getAidingStudentsPersonManageClassPage(
-                        convertList(pageResult,Task::getProcessInstanceId),pageVO
-                );
+                aidingStudentsPersonManageService.selectByProcessInstanceIdsGroupByClass(
+                        convertList(ListResult,Task::getProcessInstanceId),pageVO
+        );
 
-        Map<String, List<AidingStudentPersonManageInfoPageReqVO>> classNameMap =
-                BeanUtils.toBean(aidingStudentsPersonList, AidingStudentPersonManageInfoPageReqVO.class).stream()
-                        .collect(Collectors.groupingBy(AidingStudentPersonManageInfoPageReqVO::getClassName));
+        Map<Long, AidingStudentsManageDO> aidingStudentsManageMap =
+                aidingStudentsManageService.getAidingStudentsManageMap(convertSet(aidingStudentsPersonList
+                        , AidingStudentsPersonManageDO::getManageId));
 
-        return success(classNameMap);
+        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")

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

@@ -1,12 +1,25 @@
 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 static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * Bpm 任务 Convert
@@ -18,19 +31,33 @@ public interface asTaskConvert {
 
     asTaskConvert INSTANCE = Mappers.getMapper(asTaskConvert.class);
 
-//    default PageResult<eveTaskRespVO> buildTodoTaskPage(PageResult<Task> pageResult,
-//                                                        Map<String, ProcessInstance> processInstanceMap,
-//                                                        Map<Long, AdminUserRespDTO> userMap) {
-//        return BeanUtils.toBean(pageResult, eveTaskRespVO.class, taskVO -> {
-//            ProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId());
-//            if (processInstance == null) {
-//                return;
+    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());
 //            }
-//            taskVO.setProcessInstance(BeanUtils.toBean(processInstance, eveTaskRespVO.ProcessInstance.class));
-//            AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
-//            taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceRespVO.User.class));
-//        });
-//    }
+//
+//            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,

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

@@ -1,9 +1,6 @@
 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.*;
 
 
@@ -25,6 +22,9 @@ public class AidingStudentsPersonManageDO extends BaseDO {
     // 序号
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
+
+    //用户id
+    private Long userId;
     //姓名
     private String nickname;
     // 困难类型
@@ -71,4 +71,36 @@ public class AidingStudentsPersonManageDO extends BaseDO {
     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;
+
 }

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

@@ -55,6 +55,33 @@ public interface AidingStudentsPersonManageMapper extends BaseMapperX<AidingStud
         );
     }
 
+    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::getNotApprovedCount,
+                        AidingStudentsPersonManageDO::getApprovedCount,
+                        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

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

@@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.as.service.aidingstudentsmanage;
 
 import java.util.*;
 import javax.validation.*;
+
+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;
@@ -53,4 +55,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.module.as.service.aidingstudentsimportlist.AidingStudentsImportListService;
 import cn.iocoder.yudao.module.as.service.aidingstudentsimportlist.AidingStudentsImportListServiceImpl;
@@ -149,4 +151,12 @@ public class AidingStudentsManageServiceImpl implements AidingStudentsManageServ
         aidingStudentsManageMapper.updateById(aidingStudentsManageDO);
     }
 
+
+    @Override
+    public List<AidingStudentsManageDO> getManagetList(Collection<Long> ids) {
+        if (CollUtil.isEmpty(ids)) {
+            return Collections.emptyList();
+        }
+        return aidingStudentsManageMapper.selectBatchIds(ids);
+    }
 }

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

@@ -91,4 +91,6 @@ public interface AidingStudentsPersonManageService  {
      */
     void updateAppealStatus(Long id, Integer status);
 
+
+    List<AidingStudentsPersonManageDO> selectByProcessInstanceIdsGroupByClass(List<String> processInstanceIds,BpmTaskPageReqVO pageVO);
 }

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

@@ -375,4 +375,10 @@ public class AidingStudentsPersonManageServiceImpl extends ServiceImpl<AidingStu
             throw exception(AIDING_NOT_EXISTS);
         }
     }
+
+    @Override
+    public List<AidingStudentsPersonManageDO> selectByProcessInstanceIdsGroupByClass(List<String> processInstanceIds,
+                                                                                         BpmTaskPageReqVO pageVO){
+        return aidingStudentsPersonManageMapper.selectByProcessInstanceIdsGroupByUser(processInstanceIds,pageVO);
+    }
 }

+ 1 - 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;

+ 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 启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常