|
@@ -1801,7 +1801,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
for (List<ArchiveTreeContract> subList: subGroupedList) {
|
|
|
|
|
|
//根据 authFilter函数过滤
|
|
|
- subList = authFilter(subList,contractId,nodeId);
|
|
|
+ subList = authFilterNum(subList,contractId,nodeId);
|
|
|
List<Long> ids = subList.stream()
|
|
|
.map(ArchiveTreeContract::getId)
|
|
|
.collect(Collectors.toList());
|
|
@@ -2151,6 +2151,79 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
return archiveTreeContracts;
|
|
|
}
|
|
|
|
|
|
+ for (ArchiveTreeContract contract : archiveTreeContracts) {
|
|
|
+ if (StringUtils.isEmpty(treeCode)) {
|
|
|
+ //业主合同段时treeCode为空串
|
|
|
+ if(StringUtils.isNotEmpty(nodeId)){
|
|
|
+ //如果还选择了节点
|
|
|
+ if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
|
|
|
+ result.add(contract);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if (StringUtils.isEmpty(contract.getTreeCode()) || contractId.toString().equals(contract.getTreeCode()) || contractId.equals(contract.getContractId())) {
|
|
|
+ result.add(contract);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (treeCode.equals(contract.getTreeCode()) || contractId.toString().equals(contract.getTreeCode()) || contractId.equals(contract.getContractId())) {
|
|
|
+ if(StringUtils.isNotEmpty(nodeId)){
|
|
|
+ //如果还选择了节点
|
|
|
+ if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
|
|
|
+ result.add(contract);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ result.add(contract);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 带权限筛选的档案列表筛选函数
|
|
|
+ * 规则,1. 合同段ID为空,则不过滤
|
|
|
+ * 2. 业主或者管理员,treeCode为空,则按照nodeid过滤,nodeid为空,则不过滤
|
|
|
+ * 3. 合同段用户,安装找contractId过滤,过滤该合同段所有节点。
|
|
|
+ * @param archiveTreeContracts 档案列表archiveTreeContracts
|
|
|
+ * @param contractId 合同编号,用于获取权限码
|
|
|
+ * @param nodeId 筛选条件:节点编号
|
|
|
+ * @return 符合条件的档案列表
|
|
|
+ */
|
|
|
+ public List<ArchiveTreeContract> authFilterNum(List<ArchiveTreeContract> archiveTreeContracts, Long contractId, Long nodeId) {
|
|
|
+ //合同段ID为空则全部返回
|
|
|
+ if (contractId == null) {
|
|
|
+ return archiveTreeContracts;
|
|
|
+ }
|
|
|
+
|
|
|
+ String treeCode = getAuthCode(contractId);
|
|
|
+ String strNodeId = "";
|
|
|
+ if (nodeId!= null) {
|
|
|
+ ArchiveTreeContract node = archiveTreeContractClient.getArchiveTreeContractById(nodeId);
|
|
|
+ strNodeId = nodeId.toString();
|
|
|
+ if(node.getContractId()==null || node.getContractId()==-1){
|
|
|
+ treeCode="";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return archiveTreeContractFilterNum(archiveTreeContracts, treeCode, strNodeId,contractId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 对档案列表进行筛选
|
|
|
+ * @param archiveTreeContracts 档案列表
|
|
|
+ * @param treeCode 筛选条件:权限码
|
|
|
+ * @param nodeId 筛选条件:节点编号
|
|
|
+ * @return 符合条件的档案列表
|
|
|
+ */
|
|
|
+ public List<ArchiveTreeContract> archiveTreeContractFilterNum(List<ArchiveTreeContract> archiveTreeContracts, String treeCode, String nodeId,Long contractId) {
|
|
|
+ List<ArchiveTreeContract> result = new ArrayList<>();
|
|
|
+
|
|
|
+ if (contractId==null) {
|
|
|
+ return archiveTreeContracts;
|
|
|
+ }
|
|
|
+
|
|
|
for (ArchiveTreeContract contract : archiveTreeContracts) {
|
|
|
if (StringUtils.isEmpty(treeCode)) {
|
|
|
//业主合同段时treeCode为空串
|
|
@@ -2174,6 +2247,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public void test(){
|
|
|
String ids = "1654406079229165569";
|
|
|
|