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