浏览代码

canal集成、数据权限

4.0
yaoq 2 年前
父节点
当前提交
73d3becb83
共有 4 个文件被更改,包括 78 次插入9 次删除
  1. +28
    -6
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/DeptDataRightTreeWork.java
  2. +5
    -3
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/PartyDataRightTreeWork.java
  3. +29
    -0
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dept/DeptCache.java
  4. +16
    -0
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/party/PartyCache.java

+ 28
- 6
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/DeptDataRightTreeWork.java 查看文件

@@ -6,11 +6,13 @@ import cc.smtweb.system.bpm.web.common.BpmConst;
import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.IDataRightTreeWorker;
import cc.smtweb.system.bpm.web.sys.user.dept.Dept;
import cc.smtweb.system.bpm.web.sys.user.dept.DeptCache;
import cc.smtweb.system.bpm.web.sys.user.party.Party;
import cc.smtweb.system.bpm.web.sys.user.party.PartyCache;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

/**
* @Author yaoq
@@ -32,21 +34,41 @@ public class DeptDataRightTreeWork implements IDataRightTreeWorker {
List<SwMap> list = new ArrayList<>();
list.add(buildExtraValue(BpmConst.DataRight.ALL_DEPT, "所有部门"));
list.add(buildExtraValue(BpmConst.DataRight.CUR_VALUE, "所属部门"));
Set<Party> partys = filterParty(PartyCache.getInstance().getTopSet());
if (CommUtil.isEmpty(partys)) return list;
partys.forEach(party -> {
list.add(buildExtraValue(party.getId(), party.getName()));
});
return list;
}

@Override
public List<SwMap> getChildren(long id) {
List<SwMap> list = new ArrayList<>();
list.addAll(getExtraValues());
Collection<Dept> depts = DeptCache.getInstance().getAll();
if (CommUtil.isEmpty(depts)) return list;
depts.forEach(dept -> {
list.add(buildExtraValue(dept.getId(), dept.getName()));
if (id <= 0) {
list.addAll(getExtraValues());
return list;
}
Set<Dept> depts = DeptCache.getInstance().getByP(String.valueOf(id));
if (!CommUtil.isEmpty(depts)) {
depts.forEach(dept -> {
list.add(buildExtraValue(dept.getId(), dept.getName()));
});
}
Set<Party> partys = filterParty(PartyCache.getInstance().getChildren(id));
if (CommUtil.isEmpty(partys)) return list;
partys.forEach(party -> {
list.add(buildExtraValue(party.getId(), party.getName()));
});
return list;
}

private Set<Party> filterParty(Set<Party> partySet) {
if (CommUtil.isEmpty(partySet)) return partySet;
return partySet.stream().filter((party) ->
!CommUtil.isEmpty(DeptCache.getInstance().getAllByPartyEx(party.getId()))).collect(Collectors.toSet());
}

@Override
public String getText(long value) {
if (BpmConst.DataRight.CUR_VALUE == value) return "所属部门";


+ 5
- 3
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/PartyDataRightTreeWork.java 查看文件

@@ -35,11 +35,13 @@ public class PartyDataRightTreeWork implements IDataRightTreeWorker {

@Override
public List<SwMap> getChildren(long id) {
List<SwMap> list = new ArrayList<>();
long key = id;
if (key <= 0) key = -1;
if (key <= 0) {
key = -1;
list.addAll(getExtraValues());
}
Set<Party> partys = PartyCache.getInstance().getChildren(key);
List<SwMap> list = new ArrayList<>();
list.addAll(getExtraValues());
if (CommUtil.isEmpty(partys)) return list;
partys.forEach(party -> {
list.add(buildExtraValue(party.getId(), party.getName()));


+ 29
- 0
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dept/DeptCache.java 查看文件

@@ -3,7 +3,11 @@ package cc.smtweb.system.bpm.web.sys.user.dept;
import cc.smtweb.framework.core.annotation.SwCache;
import cc.smtweb.framework.core.cache.AbstractEntityCache;
import cc.smtweb.framework.core.cache.CacheManager;
import cc.smtweb.framework.core.util.CommUtil;
import cc.smtweb.system.bpm.web.sys.user.party.Party;
import cc.smtweb.system.bpm.web.sys.user.party.PartyCache;

import java.util.HashSet;
import java.util.Set;

/**
@@ -37,4 +41,29 @@ public class DeptCache extends AbstractEntityCache<Dept> {
public final Set<Dept> getByP(String key) {
return getListByKey(mk_p, key);
}

public final String getNameById(Long id) {
Dept dept = get(id);
if (dept == null) return "";
return dept.getName();
}

/**
* @Author yaoq
* @Date 2022/9/22 17:08
* @Params
* @Return java.util.Set<cc.smtweb.system.bpm.web.sys.user.dept.Dept>
* @Description 根据单位获取,该单位级下级单位所有部门集合
*/
public final Set<Dept> getAllByPartyEx(long party_id) {
Set<Dept> set = getByP(String.valueOf(party_id));
if (set == null) set = new HashSet<>();
Set<Party> child = PartyCache.getInstance().getAllChildren(party_id);
for (Party party : child) {
Set<Dept> depts = getByP(String.valueOf(party.getId()));
if (CommUtil.isEmpty(depts)) continue;
set.addAll(depts);
}
return set;
}
}

+ 16
- 0
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/party/PartyCache.java 查看文件

@@ -5,6 +5,7 @@ import cc.smtweb.framework.core.cache.AbstractEntityCache;
import cc.smtweb.framework.core.cache.CacheManager;
import cc.smtweb.framework.core.util.CommUtil;

import java.util.HashSet;
import java.util.Set;

/**
@@ -32,6 +33,21 @@ public class PartyCache extends AbstractEntityCache<Party> {
return getListByKey(mk_pr, String.valueOf(key));
}

public final Set<Party> getAllChildren(Long key) {
Set<Party> set = new HashSet<>();
buildChildren(key, set);
return set;
}

private final void buildChildren(Long key, Set<Party> set) {
Set<Party> child = getChildren(key);
if (CommUtil.isEmpty(child)) return;
set.addAll(child);
for (Party party : child) {
buildChildren(party.getId(), set);
}
}

//获取顶级集合
public final Set<Party> getTopSet() {
return getChildren(-1L);


正在加载...
取消
保存