mitao
2024-04-19 604d00f67ddcf25a9d079ceddd1c668b2a4e5288
ruoyi-system/src/main/java/com/ruoyi/system/utils/FieldBuildUtil.java
@@ -1,10 +1,11 @@
package com.ruoyi.system.utils;
import com.ruoyi.common.enums.FieldInputTypeEnum;
import com.ruoyi.common.enums.FieldTypeEnum;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.TbBasicDataField;
import com.ruoyi.system.domain.TbField;
import com.ruoyi.system.vo.FieldsTreeVO;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
@@ -15,6 +16,7 @@
 * @date 2024/4/3
 */
public class FieldBuildUtil {
    /**
     * 构建基础数据字段树形层级
     *
@@ -22,7 +24,8 @@
     * @param fieldMap        字段Map
     * @param roots           返回的vo
     */
    public static void buildTreeStructure(List<TbBasicDataField> basicDataFields, Map<Long, TbField> fieldMap, List<FieldsTreeVO> roots) {
    public static void buildTreeStructure(List<TbBasicDataField> basicDataFields,
            Map<Long, TbField> fieldMap, List<FieldsTreeVO> roots) {
        Map<String, FieldsTreeVO> levelTwoMap = new HashMap<>();
        Map<String, FieldsTreeVO> levelThreeMap = new HashMap<>();
@@ -34,12 +37,18 @@
                String levelThreeCategory = tbField.getLevelThreeCategory();
                Long id = tbField.getId();
                String fieldName = tbField.getFieldName();
                String fieldValue = formatNumberWithCommas(item.getFieldValue());
                String fieldValue = item.getFieldValue();
                FieldsTreeVO field = new FieldsTreeVO();
                field.setId(id);
                field.setName(fieldName);
                field.setValue(fieldValue);
                field.setCategory(Boolean.FALSE);
                field.setFieldType(tbField.getFieldType());
                if (tbField.getFieldType().equals(FieldTypeEnum.TEXT) && tbField.getTextInputType()
                        .equals(FieldInputTypeEnum.FIXED_CONTENT)) {
                    field.setDropdown(tbField.getTextContent());
                    field.setDropdownState(Boolean.TRUE);
                }
                FieldsTreeVO levelOneField = null;
                for (FieldsTreeVO root : roots) {
                    if (root.getName().equals(levelOneCategory)) {
@@ -63,7 +72,8 @@
                    }
                    if (StringUtils.isNotBlank(levelThreeCategory)) {
                        FieldsTreeVO levelThreeField = levelThreeMap.getOrDefault(levelThreeCategory, null);
                        FieldsTreeVO levelThreeField = levelThreeMap.getOrDefault(
                                levelThreeCategory, null);
                        if (levelThreeField == null) {
                            levelThreeField = new FieldsTreeVO();
                            levelThreeField.setName(levelThreeCategory);
@@ -86,7 +96,8 @@
     *
     * @param tbFieldList 字段列表
     */
    public static void buildTreeFromTbFieldList(List<TbField> tbFieldList, List<FieldsTreeVO> roots) {
    public static void buildTreeFromTbFieldList(List<TbField> tbFieldList,
            List<FieldsTreeVO> roots) {
        Map<String, FieldsTreeVO> levelOneMap = new HashMap<>();
        Map<String, FieldsTreeVO> levelTwoMap = new HashMap<>();
@@ -100,6 +111,12 @@
            field.setId(id);
            field.setName(fieldName);
            field.setCategory(Boolean.FALSE);
            field.setFieldType(tbField.getFieldType());
            if (tbField.getFieldType().equals(FieldTypeEnum.TEXT) &&
                    tbField.getTextInputType().equals(FieldInputTypeEnum.FIXED_CONTENT)) {
                field.setDropdown(tbField.getTextContent());
                field.setDropdownState(Boolean.TRUE);
            }
            FieldsTreeVO levelOneField = null;
            for (FieldsTreeVO root : roots) {
                if (root.getName().equals(levelOneCategory)) {