From d2570148ec3884de3af721bd99c4b7acbbdee075 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 09 五月 2023 17:07:26 +0800
Subject: [PATCH] 前端代码提交

---
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 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
new file mode 100644
index 0000000..40100cc
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
@@ -0,0 +1,108 @@
+package com.vci.ubcs.starter.revision.service;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.vci.ubcs.starter.revision.model.BaseModel;
+import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.service.VciSecretServiceI;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.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, "鏁版嵁搴撲腑鐨勬暟鎹璞�"});
+		BaseModel tempModel = new BaseModel();
+		BeanUtilForVCI.copyPropertiesIgnoreCase(baseModel, tempModel);
+		BeanUtilForVCI.copyPropertiesIgnoreCase(dto, baseModel);
+		BeanUtilForVCI.copyPropertiesIgnoreCase(tempModel, baseModel);
+		baseModel.setId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("id", dto)));
+		baseModel.setName(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("name", dto)));
+		baseModel.setDescription(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("description", dto)));
+		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