From d7a83f1396425c4e47da9b95f287b26cd5bb3344 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 12 四月 2023 10:18:53 +0800
Subject: [PATCH] 后端代码整合

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

diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java
index 42d044a..3364bc2 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java
@@ -7,14 +7,30 @@
 
 //package com.vci.starter.revision.service;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.vci.ubcs.code.bo.TreeWrapperOptions;
 import com.vci.ubcs.code.entity.BaseModel;
-import com.vci.ubcs.com.vci.starter.util.VciBaseUtil;
+import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
 import com.vci.ubcs.com.vci.starter.web.service.VciSecretServiceI;
 import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Component
 public class RevisionModelUtil implements VciSecretServiceI {
+
+	private Logger logger = LoggerFactory.getLogger(this.getClass());
+	public static volatile Map<String, Map<String, String>> modelColumnAnnotationMap = new ConcurrentHashMap();
+//	public static volatile Map<String, VciBtmType> modelAnnotationMap = new ConcurrentHashMap();
+	public static boolean CHECK_IDEMPOTENCE = false;
 
 	public void copyFromDTOIgnore(Object dto, BaseModel baseModel) {
 		VciBaseUtil.alertNotNull(new Object[]{dto, "鏁版嵁浼犺緭瀵硅薄", baseModel, "鏁版嵁搴撲腑鐨勬暟鎹璞�"});
@@ -28,4 +44,72 @@
 		tempModel = null;
 	}
 
+	public <T, R> List<Tree> doList2Trees(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(s, doObject)));
+					});
+					tree.setOid((String)oidValues.stream().collect(Collectors.joining(wrapperOptions.getOidValueSep())));
+					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())) {
+						tree.setParentId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(wrapperOptions.getParentFieldName(), doObject)));
+					}
+
+					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()).findChild(allTree, children);
+				if (allTree.size() <= 0) {
+					allTree.addAll(children);
+				}
+
+				return allTree;
+			}
+		}
+	}
+
 }

--
Gitblit v1.9.3