From e83f644cce0865d50a9585de0c37dd32e435f9ef Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期三, 20 九月 2023 17:14:23 +0800
Subject: [PATCH] 1、增加分类授权查询树的接口。 2、增加分类授权保存接口。

---
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java |  105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 105 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
index a982c88..4eaffc8 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
@@ -9,6 +9,7 @@
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
@@ -107,4 +108,108 @@
 		}
 	}
 
+	public <T, R> List<Tree> doListSystemClassTrees(List<T> doList, TreeWrapperOptions wrapperOptions, Function<T, R> f) {
+		if (CollectionUtils.isEmpty(doList)) {
+			return new ArrayList();
+		} else {
+			List<Tree> allTree = new ArrayList();
+			List<Tree> children = new ArrayList();
+			Iterator var6 = doList.iterator();
+
+			while(true) {
+				while(var6.hasNext()) {
+					T doObject = (T) var6.next();
+					Tree tree = new Tree();
+					List<String> oidFieldNames = VciBaseUtil.str2List(wrapperOptions.getOidFieldName());
+					List<String> oidValues = new LinkedList();
+					oidFieldNames.stream().forEach((s) -> {
+						oidValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("oid", doObject)));
+					});
+					tree.setOid((String)oidValues.stream().collect(Collectors.joining(wrapperOptions.getOidValueSep())));
+					tree.setName((String) VciBaseUtil.getValueFromField("name", doObject));
+					if (f != null) {
+						tree.setText((String)f.apply(doObject));
+					} else {
+						List<String> textFieldNames = VciBaseUtil.str2List(wrapperOptions.getTextFieldName());
+						List<String> textValues = new LinkedList();
+						textFieldNames.stream().forEach((s) -> {
+							textValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(s, doObject)));
+						});
+						tree.setText((String)textValues.stream().collect(Collectors.joining(wrapperOptions.getTextValueSep())));
+					}
+
+					if (StringUtils.isNotBlank(wrapperOptions.getParentFieldName())) {
+						String stringValueFromObject = VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(wrapperOptions.getParentFieldName(), doObject));
+						tree.setParentId(stringValueFromObject);
+					}
+
+					if (wrapperOptions.isAllAttributes()) {
+						try {
+							tree.setAttributes(VciBaseUtil.objectToMapString(doObject));
+						} catch (Exception var13) {
+							if (this.logger.isErrorEnabled()) {
+								this.logger.error("鎶婂璞¤浆鎹负map鏃跺嚭鐜颁簡閿欒锛屼絾鏄笉褰卞搷鏍戠殑灞曠ず锛屽涓氬姟鍙兘鏈夊奖鍝�");
+							}
+						}
+					}
+
+					if (wrapperOptions.isMultipleSelect() || wrapperOptions.isShowCheckBox()) {
+						tree.setShowCheckbox(true);
+					}
+
+					if (wrapperOptions.getParentOid() == null) {
+						wrapperOptions.setParentOid("");
+					}
+
+					if (!StringUtils.isBlank(tree.getParentId()) && (!StringUtils.isNotBlank(wrapperOptions.getParentOid()) || !wrapperOptions.getParentOid().equalsIgnoreCase(tree.getParentId()))) {
+						children.add(tree);
+					} else {
+						allTree.add(tree);
+					}
+				}
+
+				(new Tree()).findSystemClassChild(allTree, children);
+				if (allTree.size() <= 0) {
+					allTree.addAll(children);
+				}
+
+				return allTree;
+			}
+		}
+	}
+//
+//	public void findSystemClassChild(List<Tree> treenode, List<Tree> children) {
+//		Tree node;
+//		for(Iterator var3 = treenode.iterator(); var3.hasNext(); {
+//			if (var3 == null) {
+//				var3.next();
+//			} else {
+//				((Tree) var3.next()).getChildren().add(node);
+//			}
+//		}) {
+//			node = (Tree)var3.next();
+//			Iterator var5 = children.iterator();
+//
+//			while(var5.hasNext()) {
+//				Tree childnode = (Tree)var5.next();
+//				if (node.getAttributes().get("classifyOid").equalsIgnoreCase(childnode.getParentId())) {
+//					childnode.setParentName(node.getText());
+//					if (StringUtil.isBlank(childnode.getParentBtmName())) {
+//						childnode.setParentBtmName((String)node.getAttributes().getOrDefault("btmname", ""));
+//					}
+//
+//					node.getChildren().add(childnode);
+//				}
+//			}
+//
+//			if (node.getChildren().size() > 0) {
+//				this.findSystemClassChild(node.getChildren(), children);
+//				node.setLeaf(false);
+//			} else {
+//				node.setLeaf(true);
+//			}
+//		}
+//
+//	}
+
 }

--
Gitblit v1.9.3