From 52ffefd06e59cbd56c1a919972866592379cfed2 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期四, 21 九月 2023 11:27:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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