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 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 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 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 concatSpecialField(List fields) { // List 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 idList, String formKey) { // formDataBaseService.asyncDeleteData(idList, formKey); // } /** * 查询表单分页数据 * * @param request 查询参数 * @return 表单分页数据 */ public FormDataTableVO search(QueryFormResultRequest request) { return formDataBaseService.search(request); } /** * 全部数据 * * @param request 请求 * @return 表单数据 */ // public List searchAll(QueryFormResultRequest request) { // return formDataBaseService.searchAll(request); // } }