zjh
2025-02-21 2c785c3d4513daea9deb5c7edbb17a9f17111d25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package com.ltkj.tduck.utils;
 
import cn.hutool.core.collection.CollUtil;
import com.ltkj.tduck.domain.SysBaseEntity;
import com.ltkj.tduck.domain.TBaseEntity;
import com.ltkj.tduck.domain.UserFormDataEntity;
import com.ltkj.tduck.domain.UserFormEntity;
import com.ltkj.tduck.enums.FormItemTypeEnum;
import com.ltkj.tduck.request.QueryFormResultRequest;
import com.ltkj.tduck.service.data.FormDataBaseService;
import com.ltkj.tduck.vo.FormDataTableVO;
import com.ltkj.tduck.vo.FormFieldVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
 
import java.util.List;
 
/**
 * @author : tduck
 * @description : 表单收集结果工具类
 * @create :  2021/08/18 18:17
 **/
@Slf4j
@Component
@RequiredArgsConstructor
public class FormDataUtils {
 
 
    /**
     * 特殊字段 会多出一个xxx label字段存放显示值 默认字段存放原始值
     */
    public static final List<FormItemTypeEnum> specialFields = CollUtil.newArrayList(FormItemTypeEnum.SELECT, FormItemTypeEnum.IMAGE_SELECT, FormItemTypeEnum.CHECKBOX, FormItemTypeEnum.RADIO, FormItemTypeEnum.CASCADER);
 
    private final static String FIELD_USER_TYPE = "USER";
 
    private final FormDataBaseService formDataBaseService;
 
    /**
     * 添加表单基础数据字段
     * 所有表单都包含的字段
     */
    public static void addFormBaseDataField(List<FormFieldVO> fields) {
        fields.add(new FormFieldVO(UserFormDataEntity.Fields.serialNumber, "提交序号", UserFormDataEntity.Fields.serialNumber));
        fields.add(new FormFieldVO(UserFormDataEntity.Fields.extValue, "扩展字段", FormItemTypeEnum.INPUT.toString()));
        fields.add(new FormFieldVO(SysBaseEntity.Fields.updateBy, "修改用户", FIELD_USER_TYPE));
        fields.add(new FormFieldVO(SysBaseEntity.Fields.createBy, "提交用户", FIELD_USER_TYPE));
        fields.add(new FormFieldVO(TBaseEntity.Fields.createTime, "提交时间", FormItemTypeEnum.DATE.toString()));
        fields.add(new FormFieldVO(TBaseEntity.Fields.updateTime, "修改时间", FormItemTypeEnum.DATE.toString()));
 
    }
 
 
    /**
     * 添加系统默认字段
     */
    public static void addFormDefaultDataField(UserFormEntity entity, List<FormFieldVO> fields) {
        addFormBaseDataField(fields);
    }
 
 
    /***
     * 表单字段值是否存在
     * @param formKey 表单key
     * @param formItemId 表单字段id
     * @param value 字段值
     */
//    public Boolean valueExist(String formKey, String formItemId, Object value) {
//        return formDataBaseService.valueExist(formKey, formItemId, value);
//    }
 
 
    /**
     * 特殊字段添加复合字段
     */
//    public List<String> concatSpecialField(List<String> fields) {
//        List<String> newFields = CollUtil.newArrayList("id");
//        if (CollUtil.isEmpty(fields)) {
//            return newFields;
//        }
//        fields.forEach(field -> {
//            newFields.add(field);
//            boolean isSpecialField = StrUtil.startWithAny(field, specialFields.stream().map(item -> item.toString().toLowerCase()).collect(Collectors.joining(",")));
//            if (isSpecialField) {
//                newFields.add(field + "label");
//            }
//        });
//        return newFields;
//    }
 
 
    /**
     * 保存数据到其他数据库 比如es MonggDB等 用来扩展查询 作报表等
     */
//    public Boolean syncSaveFormData(UserFormDataEntity result) {
//        return formDataBaseService.syncSaveData(result);
//    }
 
 
    /**
     * 更新文档
     *
     * @param result
     */
//    public void asyncUpdateEsDocument(UserFormDataEntity result) {
//        formDataBaseService.asyncUpdateData(result);
//    }
 
    /**
     * 删除索引文档
     *
     * @param idList  doc Id
     * @param formKey index
     */
//    public void asyncDeleteEsDocument(List<String> idList, String formKey) {
//        formDataBaseService.asyncDeleteData(idList, formKey);
//    }
 
 
    /**
     * 查询表单分页数据
     *
     * @param request 查询参数
     * @return 表单分页数据
     */
    public FormDataTableVO search(QueryFormResultRequest request) {
        return formDataBaseService.search(request);
    }
 
    /**
     * 全部数据
     *
     * @param request 请求
     * @return 表单数据
     */
//    public List<Map> searchAll(QueryFormResultRequest request) {
//        return formDataBaseService.searchAll(request);
//    }
 
 
 
 
 
}