|
@@ -144,6 +144,18 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
|
|
|
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));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 流程数据组匹配查询
|
|
|
*
|
|
@@ -152,19 +164,30 @@ public class SysRoleGroupMemberServiceImpl extends ServiceImpl<SysRoleGroupMembe
|
|
|
*/
|
|
|
@Override
|
|
|
public Map<String, SysRoleGroupMemberMatchResult> matchList(SysRoleGroupMemberMatchParams roleGroupMemberMatchParams) {
|
|
|
- Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = null;
|
|
|
+ Map<String, SysRoleGroupMemberMatchResult> approveUserResultMap = new LinkedHashMap<>();
|
|
|
Map<String, SysRoleGroupMemberMatch> map = roleGroupMemberMatchParams.getFlowRoleGroupMemberMatchMap();
|
|
|
+ List<Long> nextApproveUserList = null;
|
|
|
for (Map.Entry<String, SysRoleGroupMemberMatch> entry : map.entrySet()) {
|
|
|
- List<SysRoleGroupMember> sysRoleGroupMemberList = this.findByRoleIdsAndMemberId(entry.getValue().getRoleIdList(), entry.getValue().getUserId());
|
|
|
- boolean manual = false;
|
|
|
- if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() == 1) {//直接返回
|
|
|
- manual = false;
|
|
|
- } else if (Objects.nonNull(sysRoleGroupMemberList) && sysRoleGroupMemberList.size() > 1) {//前端选择
|
|
|
- manual = true;
|
|
|
+ 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) {
|
|
|
+ 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);
|
|
|
}
|
|
|
- approveUserResultMap = Objects.isNull(approveUserResultMap) ? new LinkedHashMap<>() : approveUserResultMap;
|
|
|
- List<ApproveUserResult> approveUserResultList = sysUserService.findByIdsForResult(sysRoleGroupMemberList.stream().map(s -> s.getUserId()).collect(Collectors.toList()));
|
|
|
- approveUserResultMap.put(entry.getKey(), new SysRoleGroupMemberMatchResult(manual, approveUserResultList));
|
|
|
}
|
|
|
return approveUserResultMap;
|
|
|
}
|