From 4e13584a74c860f9fa8fd2d6aee3021fe6bb6b77 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 11 四月 2023 20:07:26 +0800
Subject: [PATCH] 对象建模
---
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java | 82 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 81 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..c724777 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,15 +7,28 @@
//package com.vci.starter.revision.service;
+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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
@Component
public class RevisionModelUtil implements VciSecretServiceI {
-
+ private Logger logger = LoggerFactory.getLogger(this.getClass());
public void copyFromDTOIgnore(Object dto, BaseModel baseModel) {
VciBaseUtil.alertNotNull(new Object[]{dto, "鏁版嵁浼犺緭瀵硅薄", baseModel, "鏁版嵁搴撲腑鐨勬暟鎹璞�"});
BaseModel tempModel = new BaseModel();
@@ -27,5 +40,72 @@
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 (StringUtil.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 (!StringUtil.isBlank(tree.getParentId()) && (!StringUtil.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