Browse Source

Merge branch 'dev_v3.0.0' of http://git.qmth.com.cn/wangliang/distributed-print-service into dev_v3.0.0

xiaof 3 years ago
parent
commit
f82fe1b88f

+ 14 - 7
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -48,6 +48,7 @@ import java.io.FileOutputStream;
 import java.io.OutputStream;
 import java.io.OutputStream;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchAlgorithmException;
 import java.util.*;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -603,14 +604,20 @@ public class SysController {
                                     newSysOrgList.addAll(sysOrgService.findByConnectByParentId(s.getId(), true, false));
                                     newSysOrgList.addAll(sysOrgService.findByConnectByParentId(s.getId(), true, false));
                                 }
                                 }
                             }
                             }
-                            Set<SysOrg> newSysOrgSet = newSysOrgList.stream().filter(s -> s.getType() == OrgTypeEnum.COLLEGE).collect(Collectors.toSet());
-                            dictionaryResultList = newSysOrgSet.stream().map(e -> {
+                            Map<Long, SysOrg> sysOrgMap = new LinkedHashMap<>();
+                            for (SysOrg s : newSysOrgList) {
+                                if (s.getType() == OrgTypeEnum.COLLEGE) {
+                                    sysOrgMap.put(s.getId(), s);
+                                }
+                            }
+                            List<DictionaryResult> finalDictionaryResultList = dictionaryResultList;
+                            sysOrgMap.forEach((k, v) -> {
                                 DictionaryResult dictionaryResult = new DictionaryResult();
                                 DictionaryResult dictionaryResult = new DictionaryResult();
-                                dictionaryResult.setId(e.getId());
-                                dictionaryResult.setCode(e.getCode());
-                                dictionaryResult.setName(e.getName());
-                                return dictionaryResult;
-                            }).collect(Collectors.toList());
+                                dictionaryResult.setId(v.getId());
+                                dictionaryResult.setCode(v.getCode());
+                                dictionaryResult.setName(v.getName());
+                                finalDictionaryResultList.add(dictionaryResult);
+                            });
                         }
                         }
                     }
                     }
                 } else {
                 } else {

+ 56 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/SysRoleGroupMemberResult.java

@@ -0,0 +1,56 @@
+package com.qmth.teachcloud.common.bean.result;
+
+import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 角色组成员返回
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/3/9
+ */
+public class SysRoleGroupMemberResult implements Serializable {
+
+    @ApiModelProperty(value = "用户信息")
+    ApproveUserResult user;
+
+    @ApiModelProperty(value = "成员信息")
+    List<ApproveUserResult> memberList;
+
+    public SysRoleGroupMemberResult() {
+
+    }
+
+    public SysRoleGroupMemberResult(ApproveUserResult user) {
+        this.user = user;
+    }
+
+    public SysRoleGroupMemberResult(List<ApproveUserResult> memberList) {
+        this.memberList = memberList;
+    }
+
+    public SysRoleGroupMemberResult(ApproveUserResult user, List<ApproveUserResult> memberList) {
+        this.user = user;
+        this.memberList = memberList;
+    }
+
+    public ApproveUserResult getUser() {
+        return user;
+    }
+
+    public void setUser(ApproveUserResult user) {
+        this.user = user;
+    }
+
+    public List<ApproveUserResult> getMemberList() {
+        return memberList;
+    }
+
+    public void setMemberList(List<ApproveUserResult> memberList) {
+        this.memberList = memberList;
+    }
+}

+ 14 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysRoleGroupMemberService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
+import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberResult;
 import com.qmth.teachcloud.common.entity.SysRoleGroupMember;
 import com.qmth.teachcloud.common.entity.SysRoleGroupMember;
 
 
 import java.util.List;
 import java.util.List;
@@ -33,7 +34,7 @@ public interface SysRoleGroupMemberService extends IService<SysRoleGroupMember>
      * @param roleId
      * @param roleId
      * @return
      * @return
      */
      */
-    public List<SysRoleGroupMember> findByRoleId(Long roleId);
+    public List<SysRoleGroupMemberResult> findByRoleId(Long roleId);
 
 
     /**
     /**
      * 根据roleId和userId查找数据
      * 根据roleId和userId查找数据
@@ -45,12 +46,22 @@ public interface SysRoleGroupMemberService extends IService<SysRoleGroupMember>
     public List<SysRoleGroupMember> findByRoleIdAndUserId(Long roleId, Long userId);
     public List<SysRoleGroupMember> findByRoleIdAndUserId(Long roleId, Long userId);
 
 
     /**
     /**
-     * 根据memberId查找数据
+     * 根据roleIds和memberId查找数据
      *
      *
+     * @param roleIds
      * @param memberId
      * @param memberId
      * @return
      * @return
      */
      */
-    public List<SysRoleGroupMember> findByMemberId(Long memberId);
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberId(List<Long> roleIds, Long memberId);
+
+    /**
+     * 根据roleIds和memberIds查找数据
+     *
+     * @param roleIds
+     * @param memberIds
+     * @return
+     */
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberIds(List<Long> roleIds, List<Long> memberIds);
 
 
     /**
     /**
      * 流程数据组匹配查询
      * 流程数据组匹配查询

+ 62 - 21
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleGroupMemberServiceImpl.java

@@ -8,12 +8,15 @@ import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatch;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberParams;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
+import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysRoleGroupMember;
 import com.qmth.teachcloud.common.entity.SysRoleGroupMember;
+import com.qmth.teachcloud.common.entity.SysUserRole;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.mapper.SysRoleGroupMemberMapper;
 import com.qmth.teachcloud.common.mapper.SysRoleGroupMemberMapper;
 import com.qmth.teachcloud.common.service.SysRoleGroupMemberService;
 import com.qmth.teachcloud.common.service.SysRoleGroupMemberService;
+import com.qmth.teachcloud.common.service.SysUserRoleService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.dao.DuplicateKeyException;
@@ -38,6 +41,9 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
     @Resource
     @Resource
     SysUserService sysUserService;
     SysUserService sysUserService;
 
 
+    @Resource
+    SysUserRoleService sysUserRoleService;
+
     /**
     /**
      * boolean
      * boolean
      *
      *
@@ -53,7 +59,7 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
             List<SysRoleGroupMember> sysRoleGroupMemberList = null;
             List<SysRoleGroupMember> sysRoleGroupMemberList = null;
             List<Long> memberIdList = roleGroupMemberParams.getMemberIdList();
             List<Long> memberIdList = roleGroupMemberParams.getMemberIdList();
             if (Objects.nonNull(sysRoleGroupMemberDbList) && sysRoleGroupMemberDbList.size() > 0) {//编辑
             if (Objects.nonNull(sysRoleGroupMemberDbList) && sysRoleGroupMemberDbList.size() > 0) {//编辑
-                int count = (int) sysRoleGroupMemberDbList.stream().filter(s -> memberIdList.contains(s.getUserId())).count();
+                int count = (int) sysRoleGroupMemberDbList.stream().filter(s -> memberIdList.contains(s.getMemberId())).count();
                 if (count != sysRoleGroupMemberDbList.size() || memberIdList.size() != sysRoleGroupMemberDbList.size()) {
                 if (count != sysRoleGroupMemberDbList.size() || memberIdList.size() != sysRoleGroupMemberDbList.size()) {
                     //全量删除
                     //全量删除
                     this.removeByIds(sysRoleGroupMemberDbList.stream().map(s -> s.getId()).collect(Collectors.toList()));
                     this.removeByIds(sysRoleGroupMemberDbList.stream().map(s -> s.getId()).collect(Collectors.toList()));
@@ -93,8 +99,25 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public List<SysRoleGroupMember> findByRoleId(Long roleId) {
-        return this.list(new QueryWrapper<SysRoleGroupMember>().lambda().eq(SysRoleGroupMember::getRoleId, roleId));
+    public List<SysRoleGroupMemberResult> findByRoleId(Long roleId) {
+        List<SysRoleGroupMemberResult> sysRoleGroupMemberResultList = null;
+        List<SysUserRole> sysUserRoles = sysUserRoleService.listByRoleId(roleId);
+        if (Objects.nonNull(sysUserRoles) && sysUserRoles.size() > 0) {
+            sysRoleGroupMemberResultList = new ArrayList<>();
+            for (SysUserRole s : sysUserRoles) {
+                List<ApproveUserResult> approveUserResult = sysUserService.findById(s.getUserId());
+                if (Objects.nonNull(approveUserResult) && approveUserResult.size() == 1) {
+                    List<SysRoleGroupMember> sysRoleGroupMemberList = this.findByRoleIdAndUserId(s.getRoleId(), s.getUserId());
+                    if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 0) {
+                        List<ApproveUserResult> approveUserResultList = sysUserService.findByIdsForResult(sysRoleGroupMemberList.stream().map(x -> x.getMemberId()).collect(Collectors.toList()));
+                        sysRoleGroupMemberResultList.add(new SysRoleGroupMemberResult(approveUserResult.get(0), approveUserResultList));
+                    } else {
+                        sysRoleGroupMemberResultList.add(new SysRoleGroupMemberResult(approveUserResult.get(0)));
+                    }
+                }
+            }
+        }
+        return sysRoleGroupMemberResultList;
     }
     }
 
 
     /**
     /**
@@ -110,16 +133,27 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
     }
     }
 
 
     /**
     /**
-     * 根据memberId查找数据
+     * 根据roleIds和memberId查找数据
      *
      *
+     * @param roleIds
      * @param memberId
      * @param memberId
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public List<SysRoleGroupMember> findByMemberId(Long memberId) {
-        QueryWrapper<SysRoleGroupMember> sysRoleGroupMemberQueryWrapper = new QueryWrapper<>();
-        sysRoleGroupMemberQueryWrapper.lambda().eq(SysRoleGroupMember::getMemberId, memberId);
-        return this.list(sysRoleGroupMemberQueryWrapper);
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberId(List<Long> roleIds, Long memberId) {
+        return this.list(new QueryWrapper<SysRoleGroupMember>().lambda().in(SysRoleGroupMember::getRoleId, roleIds).eq(SysRoleGroupMember::getMemberId, memberId));
+    }
+
+    /**
+     * 根据roleIds和memberIds查找数据
+     *
+     * @param roleIds
+     * @param memberIds
+     * @return
+     */
+    @Override
+    public List<SysRoleGroupMember> findByRoleIdsAndMemberIds(List<Long> roleIds, List<Long> memberIds) {
+        return this.list(new QueryWrapper<SysRoleGroupMember>().lambda().in(SysRoleGroupMember::getRoleId, roleIds).in(SysRoleGroupMember::getMemberId, memberIds));
     }
     }
 
 
     /**
     /**
@@ -130,22 +164,29 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
      */
      */
     @Override
     @Override
     public Map<String, SysRoleGroupMemberMatchResult> matchList(SysRoleGroupMemberMatchParams roleGroupMemberMatchParams) {
     public Map<String, SysRoleGroupMemberMatchResult> matchList(SysRoleGroupMemberMatchParams roleGroupMemberMatchParams) {
-        Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = null;
+        Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = new LinkedHashMap<>();
         Map<String, SysRoleGroupMemberMatch> map = roleGroupMemberMatchParams.getFlowRoleGroupMemberMatchMap();
         Map<String, SysRoleGroupMemberMatch> map = roleGroupMemberMatchParams.getFlowRoleGroupMemberMatchMap();
+        List<Long> nextApproveUserList = null;
         for (Map.Entry<String, SysRoleGroupMemberMatch> entry : map.entrySet()) {
         for (Map.Entry<String, SysRoleGroupMemberMatch> entry : map.entrySet()) {
-            List<SysRoleGroupMember> sysRoleGroupMemberList = this.findByMemberId(entry.getValue().getUserId());
-//            List<SysRoleGroupMember> sysRoleGroupMemberFilter = sysRoleGroupMemberList.stream().filter(s -> v.getRoleIdList().contains(s.getRoleId())).collect(Collectors.toList());
-//            boolean manual = false;
-//            if (Objects.nonNull(sysRoleGroupMemberFilter) && sysRoleGroupMemberFilter.size() == 1) {//直接返回
-//                manual = false;
-//            } else if (Objects.nonNull(sysRoleGroupMemberFilter) && sysRoleGroupMemberFilter.size() > 1) {//前端选择
-//                manual = true;
-//            }
-//            List<SysRoleGroupMember> sysRoleGroupMembers = this.findByRoleIds(sysRoleGroupMemberFilter.stream().map(s -> s.getRoleId()).collect(Collectors.toList()), v.getUserId());
+            List<SysRoleGroupMember> sysRoleGroupMemberList = null;
+            if (Objects.nonNull(entry.getValue().getUserId())) {
+                sysRoleGroupMemberList = this.findByRoleIdsAndMemberId(entry.getValue().getRoleIdList(), entry.getValue().getUserId());
+            } else if (Objects.nonNull(nextApproveUserList) && nextApproveUserList.size() > 0) {
+                sysRoleGroupMemberList = this.findByRoleIdsAndMemberIds(entry.getValue().getRoleIdList(), nextApproveUserList);
+            }
+
             if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 0) {
             if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 0) {
-                approveUserResultMap = Objects.isNull(approveUserResultMap) ? new LinkedHashMap<>() : approveUserResultMap;
-                List<ApproveUserResult> approveUserResultList = sysUserService.findByRoleIdsForResult(sysRoleGroupMemberList.stream().map(s -> s.getRoleId()).collect(Collectors.toList()));
-                approveUserResultMap.put(entry.getKey(), new SysRoleGroupMemberMatchResult(approveUserResultList));
+                boolean manual = false;
+                if (sysRoleGroupMemberList.size() == 1) {//直接返回
+                    manual = false;
+                } else if (sysRoleGroupMemberList.size() > 1) {//前端选择
+                    manual = true;
+                }
+                nextApproveUserList = sysRoleGroupMemberList.stream().map(s -> s.getUserId()).collect(Collectors.toList());
+                List<ApproveUserResult> approveUserResultList = sysUserService.findByIdsForResult(nextApproveUserList);
+                approveUserResultMap.put(entry.getKey(), new SysRoleGroupMemberMatchResult(manual, approveUserResultList));
+            } else {
+                approveUserResultMap.put(entry.getKey(), null);
             }
             }
         }
         }
         return approveUserResultMap;
         return approveUserResultMap;