微服务版后端初始化

This commit is contained in:
yaoyn
2025-02-08 17:51:37 +08:00
parent 54af6be188
commit da009a7cc4
1897 changed files with 429541 additions and 81 deletions

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xjrsoft-service-api</artifactId>
<groupId>com.xjrsoft</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xjrsoft-service-form-api</artifactId>
<properties>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.xjrsoft</groupId>
<artifactId>xjrsoft-service-generate-api</artifactId>
<version>${xjrsoft.framework.version}</version>
</dependency>
<dependency>
<groupId>com.xjrsoft</groupId>
<artifactId>xjrsoft-service-desktop-api</artifactId>
<version>${xjrsoft.framework.version}</version>
</dependency>
<dependency>
<groupId>com.xjrsoft</groupId>
<artifactId>xjrsoft-common-mybatis</artifactId>
<version>${xjrsoft.framework.version}</version>
</dependency>
<!--引入Lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<optional>true</optional>
</dependency>
<!--引入hutool依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,85 @@
package com.xjrsoft.form.client;
import cn.hutool.db.Entity;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.common.core.domain.page.PageOutput;
import com.xjrsoft.common.generate.model.QueryConfig;
import com.xjrsoft.desktop.dto.*;
import com.xjrsoft.form.fallback.FormExecuteClientFallBack;
import com.xjrsoft.form.vo.DeskFormReleaseVo;
import com.xjrsoft.form.vo.DeskTableInfoVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/10 16:19
*/
@FeignClient(value = GlobalConstant.CLIENT_FORM_NAME,fallback = FormExecuteClientFallBack.class)
public interface IFormExecuteClient {
/**
* 桌面设计调用新增
* @param dto
* @return
*/
@PostMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/complexAddFeign")
boolean complexAddFeign(@Valid @RequestBody AddDeskComplexDto dto);
/**
* 桌面设计调用编辑
* @param dto
* @return
*/
@PutMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/complexUpdateFeign")
boolean complexUpdateFeign(@Valid @RequestBody UpdateDeskComplexDto dto);
/**
* 桌面设计调用删除
* @param dto
* @return
*/
@PostMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/complexDeleteFeign")
boolean complexDeleteFeign(@Valid @RequestBody DeleteDeskComplexDto dto);
/**
* 桌面设计调用删除
* @param dto
* @return
*/
@PostMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME+ "/complexInfoFeign")
Object complexInfoFeign(@Valid @RequestBody DeskComplexInfoDto dto);
/**
* 桌面设计调用自定义表单获取发布id
* @param formId
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/getReleaseInfoFeign")
List<DeskFormReleaseVo> getReleaseInfoFeign(@RequestParam("formId") Long formId);
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/complexQueryFeign")
List<QueryConfig> complexQueryFeign(@Valid @RequestBody ComplexQueryDto dto);
/**
* 桌面设计-复杂列表页-获取列表数据 分页
* @param dto
* @return
*/
@PostMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/complexPageFeign")
PageOutput<Entity> complexPageFeign(@Valid @RequestBody ComplexPageDto dto);
/**
* 获取数据表信息
* @param formId
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/getTableInfoFeign")
DeskTableInfoVo getTableInfoFeign(@RequestParam("formId") Long formId);
}

View File

@ -0,0 +1,48 @@
package com.xjrsoft.form.client;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.form.entity.FormTemplate;
import com.xjrsoft.form.fallback.FormTemplateClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/11 9:29
*/
@FeignClient(value = GlobalConstant.CLIENT_FORM_NAME,fallback = FormTemplateClientFallBack.class)
public interface IFormTemplateClient {
/**
* 根据id 获取表单
* @param id
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/getFormTemplateByIdFeign")
FormTemplate getFormTemplateByIdFeign(@RequestParam("id") Long id);
/**
* 根据ids 获取表单模板列表
* @param ids
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/getFormTemplateListByIdsFeign")
List<FormTemplate> getFormTemplateListByIdsFeign(@RequestParam("ids") List<Long> ids);
/**
* 表单设计保存或者更新
* @param template
* @return
*/
@PostMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_FORM_NAME + "/formTemplateSaveOrUpdateFeign")
FormTemplate formTemplateSaveOrUpdateFeign(@RequestBody FormTemplate template);
}

View File

@ -0,0 +1,28 @@
package com.xjrsoft.form.constant;
/**
* @Author: tzx
* @Date: 2022/5/17 9:31
*/
public interface FormComponentConstant {
/**
* 子表单组件type 值
*/
String FORM_COMPONENT_TYPE = "form";
/**
* 选项卡组件 type 值
*/
String TAB_COMPONENT_TYPE = "tab";
/**
* 布局组件 type 值
*/
String GRID_COMPONENT_TYPE = "grid";
/**
* 卡片组件 type 值
*/
String CARD_COMPONENT_TYPE = "card";
}

View File

@ -0,0 +1,41 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.form.entity.FormDesignConfig;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/5/9 16:46
*/
@Data
public class AddFormCodeFirstDto {
@Schema(name = "表单模板名称")
@NotBlank(message = "表单模板名称不能为空")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private Long category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
@Range(min = 0, max = 1, message = "表单类型错误")
private Integer formType = 1;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "备注")
private String remark;
@Schema(name = "表单设计json")
@NotNull(message = "表单设计json不能为空")
private FormDesignConfig formJson;
}

View File

@ -0,0 +1,42 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.form.entity.FormDesignConfig;
import com.xjrsoft.form.entity.FormDesignConfig;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 自定义表单设计数据优先 dto
* @Author: tzx
* @Date: 2022/5/9 16:37
*/
@Data
public class AddFormDataFirstDto {
@Schema(name = "表单模板名称")
@NotBlank(message = "表单模板名称不能为空")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private Long category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
@Range(min = 0, max = 1, message = "表单类型错误")
private Integer formType = 1;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "备注")
private String remark;
@Schema(name = "表单设计json")
@NotNull(message = "表单设计json不能为空")
private FormDesignConfig formJson;
}

View File

@ -0,0 +1,16 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.form.entity.FormReleaseConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Author: tzx
* @Date: 2022/5/10 16:18
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class AddFormReleaseDto extends FormReleaseConfig {
}

View File

@ -0,0 +1,34 @@
package com.xjrsoft.form.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/5/9 16:11
*/
@Data
public class AddFormTemplateDto {
@Schema(name = "表单模板名称")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private String category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
private Integer formType;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "表单设计json")
private String formJson;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
}

View File

@ -0,0 +1,24 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2023/8/17 14:58
*/
@Data
public class AppFormExecuteAddOrUpdateDto {
/**
* app功能id
*/
@NotNull(message = "app功能id 不能为空!")
private Long funcId;
/**
* 自定义表单 表单数据
*/
private Map<String,Object> formData;
}

View File

@ -0,0 +1,25 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/8/17 15:03
*/
@Data
public class AppFormExecuteDeleteDto {
/**
* 功能id
*/
@NotNull(message = "功能id 不能为空")
private Long funcId;
/**
* 主键id
*/
@NotNull(message = "自定义表单 主键 不能为空")
private List<String> ids;
}

View File

@ -0,0 +1,28 @@
package com.xjrsoft.form.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2023/8/17 14:55
*/
@Data
public class AppFormExecuteInfoDto {
/**
* 功能id
*/
@NotNull(message = "功能id 不能为空")
@Schema(name = "功能id 发布id")
private Long funcId;
/**
* 主键id
*/
@NotBlank(message = "自定义表单 发布id 不能为空")
@Schema(name = "自定义表单 主键id")
private String id;
}

View File

@ -0,0 +1,35 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2023/8/17 14:40
*/
@Data
public class AppFormExecuteListDto {
/**
* 功能id
*/
@NotNull(message = "功能id")
private Long funcId;
/**
* 自定义表单 查询参数
*/
private Map<String,Object> params;
/**
* 导出配置(是否是导出模板)
*/
private Boolean isTemplate = false;
/**
* 是否翻译为显示值
*/
private Boolean isTrans = true;
}

View File

@ -0,0 +1,37 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2023/8/17 14:50
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class AppFormExecutePageDto extends PageInput {
/**
* 功能id
*/
@NotNull(message = "功能id")
private Long funcId;
/**
* 自定义表单 查询参数
*/
private Map<String,Object> params;
/**
* 导出配置(是否是导出模板)
*/
private Boolean isTemplate = false;
/**
* 是否翻译为显示值
*/
private Boolean isTrans = true;
}

View File

@ -0,0 +1,55 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.core.domain.generator.FormConfig;
import com.xjrsoft.common.generate.model.ListConfig;
import com.xjrsoft.common.generate.model.OutputConfig;
import com.xjrsoft.common.generate.model.TableConfig;
import com.xjrsoft.form.entity.MenuConfig;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class DateTestDto {
@NotNull
private Long formReleaseId;
@NotNull
private Long formTemplateId;
/**
* 数据库id
*/
private String databaseId;
/**
* 表关联信息
*/
private List<TableConfig> tableConfigs;
/**
* 表单设计json
*/
private FormConfig formJson;
/**
* 列表配置
*/
private ListConfig listConfig;
/**
* 输出配置
*/
@NotNull(message = "输出配置不能为空!")
@Valid
private OutputConfig outputConfig;
/**
* 菜单配置
*/
private MenuConfig menuConfig;
}

View File

@ -0,0 +1,24 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/5/11 15:01
*/
@Data
public class FormExecuteAddOrUpdateDto {
/**
* 发布id
*/
@NotNull(message = "发布id")
private Long releaseId;
/**
* 自定义表单 表单数据
*/
private Map<String,Object> formData;
}

View File

@ -0,0 +1,25 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author: tzx
* @Date: 2022/5/11 15:21
*/
@Data
public class FormExecuteDeleteDto {
/**
* 发布id
*/
@NotNull(message = "发布id")
private Long releaseId;
/**
* 主键id
*/
@NotNull(message = "自定义表单 发布id 不能为空")
private List<String> ids;
}

View File

@ -0,0 +1,34 @@
package com.xjrsoft.form.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/5/11 15:19
*/
@Data
public class FormExecuteInfoDto {
/**
* 发布id
*/
@NotNull(message = "发布id")
@Schema(name = "自定义表单 发布id")
private Long releaseId;
/**
* 主键id
*/
@NotBlank(message = "自定义表单 发布id 不能为空")
@Schema(name = "自定义表单 主键id")
private String id;
//
// /**
// * 表单id
// */
// @Schema(name = "自定义表单 表单id")
// private String formId;
}

View File

@ -0,0 +1,35 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/5/11 14:54
*/
@Data
public class FormExecuteListDto {
/**
* 发布id
*/
@NotNull(message = "发布id")
private Long releaseId;
/**
* 自定义表单 查询参数
*/
private Map<String,Object> params;
/**
* 导出配置(是否是导出模板)
*/
private Boolean isTemplate = false;
/**
* 是否翻译为显示值
*/
private Boolean isTrans = true;
}

View File

@ -0,0 +1,37 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/5/11 14:59
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class FormExecutePageDto extends PageInput {
/**
* 发布id
*/
@NotNull(message = "发布id")
private Long releaseId;
/**
* 自定义表单 查询参数
*/
private Map<String,Object> params;
/**
* 导出配置(是否是导出模板)
*/
private Boolean isTemplate = false;
/**
* 是否翻译为显示值
*/
private Boolean isTrans = true;
}

View File

@ -0,0 +1,23 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import java.util.Map;
/**
* 工作流调用自定义表单新增接口 dto
* @Author: tzx
* @Date: 2022/9/27 16:27
*/
@Data
public class FormExecuteWorkflowAddDto {
/**
* 表单模板id
*/
public Long formId;
public Map<String,Object> formData;
public Boolean isOldSystem;
}

View File

@ -0,0 +1,29 @@
package com.xjrsoft.form.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2023/3/30 15:04
*/
@Data
public class FormExecuteWorkflowInfoDto {
/**
* 自定义表单id
*/
@NotNull(message = "自定义表单 自定义表单id 不能为空")
@Schema(name = "自定义表单 id")
private Long formId;
/**
* 主键id
*/
@NotNull(message = "自定义表单 发布id 不能为空")
@Schema(name = "自定义表单 主键id")
private Long id;
}

View File

@ -0,0 +1,21 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import java.util.Map;
/**
* @author apple
*/
@Data
public class FormExecuteWorkflowUpdateDto {
/**
* 表单模板id
*/
public Long formId;
public Map<String,Object> formData;
public Boolean isOldSystem;
}

View File

@ -0,0 +1,19 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author hnyyzy
* @version 1.0
* @date 2024/1/24 9:10
*/
@Data
public class FormHistoryChangeDto {
@NotNull(message = "模板id 不能为空")
private Long formId;
@NotNull(message = "历史记录id 不能为空")
private Long id;
}

View File

@ -0,0 +1,14 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Author: tzx
* @Date: 2022/5/10 14:39
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class FormReleasePageDto extends PageInput {
}

View File

@ -0,0 +1,14 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;
@Data
@EqualsAndHashCode(callSuper = false)
public class FormTemplateDeskPageDto extends PageInput {
@Range(min = 0, max = 1, message = "表单类型只能为0或1")
private Integer type;
private Long category = 0L;
}

View File

@ -0,0 +1,22 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.core.domain.page.ListInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;
/**
* @Author: tzx
* @Date: 2022/8/31 14:46
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class FormTemplateListDto extends ListInput {
@Range(min = 0, max = 1, message = "表单类型只能为0或1")
private Integer type;
private Long category = 0L;
}

View File

@ -0,0 +1,20 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;
/**
* @Author: tzx
* @Date: 2022/5/9 16:05
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class FormTemplatePageDto extends PageInput {
@Range(min = 0, max = 1, message = "表单类型只能为0或1")
private Integer type;
private Long category = 0L;
}

View File

@ -0,0 +1,51 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.form.entity.FormDesignConfig;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/5/9 16:46
*/
@Data
public class UpdateFormCodeFirstDto {
@Schema(name = "id")
@NotNull(message = "id不能为空")
private Long id;
@Schema(name = "表单模板名称")
@NotBlank(message = "表单模板名称不能为空")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private Long category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
@Range(min = 0, max = 1, message = "表单类型错误")
private Integer formType = 1;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "备注")
private String remark;
@Schema(name = "表单设计json")
@NotNull(message = "表单设计json不能为空")
private FormDesignConfig formJson;
@Schema(name = "是否需要修改表")
private Boolean isChange = false;
@Schema(name = "是否创建新表")
private Boolean isCreateNewTable = false;
}

View File

@ -0,0 +1,45 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.form.entity.FormDesignConfig;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 自定义表单设计数据优先 dto
* @Author: tzx
* @Date: 2022/5/9 16:37
*/
@Data
public class UpdateFormDataFirstDto {
@Schema(name = "id")
@NotNull(message = "id不能为空")
private Long id;
@Schema(name = "表单模板名称")
@NotBlank(message = "表单模板名称不能为空")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private Long category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
@Range(min = 0, max = 1, message = "表单类型错误")
private Integer formType = 1;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "备注")
private String remark;
@Schema(name = "表单设计json")
@NotNull(message = "表单设计json不能为空")
private FormDesignConfig formJson;
}

View File

@ -0,0 +1,33 @@
package com.xjrsoft.form.dto;
import com.xjrsoft.common.generate.model.ListConfig;
import com.xjrsoft.form.entity.MenuConfig;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/5/11 11:23
*/
@Data
public class UpdateFormReleaseDto {
@NotNull(message = "发布id不能为空")
private Long id;
@NotNull(message = "表单id不能为空")
private Long formId;
@NotNull(message = "菜单id不能为空")
private Long menuId;
@Valid
@NotNull(message = "菜单配置不能为空")
private MenuConfig menuConfig;
@Valid
@NotNull(message = "列表配置不能为空")
private ListConfig listConfig;
}

View File

@ -0,0 +1,37 @@
package com.xjrsoft.form.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/5/9 16:11
*/
@Data
public class UpdateFormTemplateDto {
@Schema(name = "主键")
private Long id;
@Schema(name = "表单模板名称")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private String category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
private Integer formType;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "表单设计json")
private String formJson;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.form.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/8/30 10:56
*/
@Data
public class UpdateTemplateStatusDto {
@NotNull(message = "模板id不能为空")
private Long id;
@NotNull(message = "模板状态不能为空")
private Integer enabledMark;
}

View File

@ -0,0 +1,59 @@
package com.xjrsoft.form.entity;
import com.xjrsoft.common.core.domain.generator.FormConfig;
import com.xjrsoft.common.generate.model.TableConfig;
import com.xjrsoft.common.generate.model.TableStructureConfig;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
/**
* 表单设计的json
* @Author: tzx
* @Date: 2022/5/11 16:44
*/
@Data
public class FormDesignConfig {
@Schema(name = "备注")
@NotBlank(message = "数据库id不能为空")
private String databaseId;
/**
* 表结构配置 代码优先!!!!
*/
@NotNull(message = "表结构配置不能为空!")
@Valid
private List<TableStructureConfig> tableStructureConfigs;
@Schema(name = "表单事件")
private Map<String, Object> formEventConfig;
/**
* 表关联信息 数据优先!!!!
*/
@NotNull(message = "表配置不能为空!")
@Valid
private List<TableConfig> tableConfigs;
@NotNull(message = "表单配置不能为空!")
@Valid
private FormConfig formJson;
/**
* 是否配置数据权限
*/
private Boolean isDataAuth;
/**
* 选择的数据权限id集合
*/
private List<String> dataAuthList;
}

View File

@ -0,0 +1,42 @@
package com.xjrsoft.form.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
* 自定义表单历史表 每次修改自定义表单会新增一条数据
* </p>
*
* @author tzx
* @since 2022-05-09
*/
@TableName("xjr_form_history")
@Tag(name = "FormHistory对象", description = "自定义表单历史表 每次修改自定义表单会新增一条数据")
@Data
@EqualsAndHashCode(callSuper = false)
public class FormHistory extends AuditEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "表单id 关联 xjr_form_template 表")
private Long formId;
@Schema(name = "表单设计")
private String formJson;
@Schema(name = "版本号")
private Integer version;
@Schema(name = "是否为活动版本1-是0-否)")
private Integer activityFlag;
}

View File

@ -0,0 +1,47 @@
package com.xjrsoft.form.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
* 自定义表单 发布表
* </p>
*
* @author tzx
* @since 2022-05-09
*/
@TableName("xjr_form_release")
@Tag(name = "FormRelease对象", description = "自定义表单 发布表")
@Data
@EqualsAndHashCode(callSuper = false)
public class FormRelease extends AuditEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "表单id 关联 xjr_form_template 表")
private Long formId;
@Schema(name = "菜单id 关联 xjr_module表 唯一")
private Long menuId;
@Schema(name = "自定义表单发布配置json")
private String configJson;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
}

View File

@ -0,0 +1,26 @@
package com.xjrsoft.form.entity;
import com.xjrsoft.common.generate.model.ListConfig;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/5/11 16:33
*/
@Data
public class FormReleaseConfig {
@NotNull(message = "表单id不能为空")
private Long formId;
@Valid
@NotNull(message = "菜单配置不能为空")
private MenuConfig menuConfig;
@Valid
@NotNull(message = "列表配置不能为空")
private ListConfig listConfig;
}

View File

@ -0,0 +1,55 @@
package com.xjrsoft.form.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
* 表单设计模板
* </p>
*
* @author tzx
* @since 2022-05-09
*/
@TableName("xjr_form_template")
@Tag(name = "FormTemplate对象", description = "表单设计模板 ")
@Data
@EqualsAndHashCode(callSuper = false)
public class FormTemplate extends AuditEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "表单模板名称")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private Long category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
private Integer formType;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "表单设计json")
private String formJson;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
@Schema(name = "界面设计及菜单设计部分json")
private String configJson;
}

View File

@ -0,0 +1,36 @@
package com.xjrsoft.form.entity;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/5/11 16:35
*/
@Data
public class MenuConfig {
private static final long serialVersionUID = 1L;
/**
* 编号
*/
@NotNull(message = "菜单编号不能为空!")
@Length( max = 50, message = "编号长度不能超过50个字符!")
private String code;
@NotNull(message = "菜单名不能为空!")
@Length( max = 50, message = "编号长度不能超过50个字符!")
private String name;
private String parentId;
private Long systemId = 1L;
private String icon;
private Integer sortCode;
private String remark;
}

View File

@ -0,0 +1,60 @@
package com.xjrsoft.form.fallback;
import cn.hutool.db.Entity;
import com.xjrsoft.common.core.domain.page.PageOutput;
import com.xjrsoft.common.generate.model.QueryConfig;
import com.xjrsoft.desktop.dto.*;
import com.xjrsoft.form.client.IFormExecuteClient;
import com.xjrsoft.form.vo.DeskFormReleaseVo;
import com.xjrsoft.form.vo.DeskTableInfoVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/10 16:19
*/
@Component
public class FormExecuteClientFallBack implements IFormExecuteClient {
@Override
public boolean complexAddFeign(AddDeskComplexDto dto) {
return false;
}
@Override
public boolean complexUpdateFeign(UpdateDeskComplexDto dto) {
return false;
}
@Override
public boolean complexDeleteFeign(DeleteDeskComplexDto dto) {
return false;
}
@Override
public Object complexInfoFeign(DeskComplexInfoDto dto) {
return null;
}
@Override
public List<DeskFormReleaseVo> getReleaseInfoFeign(Long formId) {
return null;
}
@Override
public List<QueryConfig> complexQueryFeign(ComplexQueryDto dto) {
return null;
}
@Override
public PageOutput<Entity> complexPageFeign(ComplexPageDto dto) {
return null;
}
@Override
public DeskTableInfoVo getTableInfoFeign(Long formId) {
return null;
}
}

View File

@ -0,0 +1,31 @@
package com.xjrsoft.form.fallback;
import com.xjrsoft.form.client.IFormTemplateClient;
import com.xjrsoft.form.entity.FormTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/11 9:35
*/
@Component
public class FormTemplateClientFallBack implements IFormTemplateClient {
@Override
public FormTemplate getFormTemplateByIdFeign(Long id) {
return null;
}
@Override
public List<FormTemplate> getFormTemplateListByIdsFeign(List<Long> ids) {
return null;
}
@Override
public FormTemplate formTemplateSaveOrUpdateFeign(FormTemplate template) {
return null;
}
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.form.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.form.entity.FormHistory;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 自定义表单历史表 每次修改自定义表单会新增一条数据 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-05-09
*/
@Mapper
public interface FormHistoryMapper extends MPJBaseMapper<FormHistory> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.form.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.form.entity.FormRelease;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 自定义表单 发布表 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-05-09
*/
@Mapper
public interface FormReleaseMapper extends MPJBaseMapper<FormRelease> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.form.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.form.entity.FormTemplate;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 表单设计模板 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-05-09
*/
@Mapper
public interface FormTemplateMapper extends MPJBaseMapper<FormTemplate> {
}

View File

@ -0,0 +1,184 @@
package com.xjrsoft.form.utils;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.DbType;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.common.core.domain.generator.ComponentConfig;
import com.xjrsoft.common.core.domain.generator.LayoutOptionModel;
import com.xjrsoft.common.generate.model.TableConfig;
import com.xjrsoft.common.generate.model.TableFieldConfig;
import com.xjrsoft.common.generate.model.TableStructureConfig;
import com.xjrsoft.common.mybatis.utils.DatasourceUtil;
import com.xjrsoft.form.constant.FormComponentConstant;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
* 代码模板模块工具类
*/
public class FromTemplateUtil {
/**
* 数据优先 根据配置 构建表结构配置 tableConfig 转 tableStructureConfigs
*
* @param list 组件配置
* @param mainTableConfig 主表配置
* @return 表结构配置
*/
public static List<TableStructureConfig> wrapperTableStructureConfig(List<ComponentConfig> list, TableConfig mainTableConfig) {
List<TableStructureConfig> tableStructureConfigs = new ArrayList<>();
TableStructureConfig mainTableStructureConfig = new TableStructureConfig();
mainTableStructureConfig.setIsMain(true);
mainTableStructureConfig.setTableName(mainTableConfig.getTableName());
List<TableFieldConfig> mainTableFieldConfigs = new ArrayList<>();
mainTableStructureConfig.setTableFieldConfigs(mainTableFieldConfigs);
//遍历所有所有组件中的子表单组件
list.forEach(componentConfig -> {
//是否为子表单组件
if (StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.FORM_COMPONENT_TYPE)) {
getChildTableStructureConfig(tableStructureConfigs, componentConfig);
} else {
//是否为选项卡 或者 布局组件
if (
StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.GRID_COMPONENT_TYPE) ||
StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.TAB_COMPONENT_TYPE) ||
StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.CARD_COMPONENT_TYPE)
) {
//遍历所有布局数据
getLayoutComponentsStructureConfig(tableStructureConfigs, mainTableFieldConfigs, componentConfig);
} else {
TableFieldConfig tableFieldConfig = new TableFieldConfig();
tableFieldConfig.setFieldName(componentConfig.getBindField());
tableFieldConfig.setFieldComment(componentConfig.getLabel());
mainTableFieldConfigs.add(tableFieldConfig);
}
}
});
tableStructureConfigs.add(mainTableStructureConfig);
//将转换好的表结构配置存入到dto的FormJson 然后存入数据库
return tableStructureConfigs;
}
/**
* 代码优先 根据配置 构建表配置 tableStructureConfigs 转 tableConfig
* @param tableStructureConfigs 表结构配置
* @return 表配置
*/
public static List<TableConfig> wrapperTableConfig(String dbId, List<TableStructureConfig> tableStructureConfigs) {
List<TableConfig> tableConfigs = new ArrayList<>();
DbType dbType = DatasourceUtil.getDbType(dbId);
boolean isUpperCase = ArrayUtils.contains(new DbType[]{DbType.ORACLE, DbType.ORACLE_12C, DbType.DM}, dbType);
for (TableStructureConfig tableStructureConfig : tableStructureConfigs) {
//因为要统一自定义表单存入到数据库的json格式 所以 在这里需要将codefirst的表结构配置json格式转换成datafirst的json格式
// TableStructureConfig -> TableConfig
TableConfig tableConfig = new TableConfig();
tableConfig.setTableName(tableStructureConfig.getTableName());
tableConfig.setIsMain(tableStructureConfig.getIsMain());
tableConfig.setPkField(isUpperCase ? StringUtils.upperCase(GlobalConstant.DEFAULT_PK) : GlobalConstant.DEFAULT_PK);
tableConfig.setPkType(GlobalConstant.DEFAULT_PK_TYPE);
tableConfig.setRelationField(tableStructureConfig.getIsMain() ? null : isUpperCase ? StringUtils.upperCase(GlobalConstant.DEFAULT_FK) : GlobalConstant.DEFAULT_FK);
tableConfig.setRelationTableField(tableStructureConfig.getIsMain() ? null : isUpperCase ? StringUtils.upperCase(GlobalConstant.DEFAULT_PK) : GlobalConstant.DEFAULT_PK);
tableConfigs.add(tableConfig);
}
return tableConfigs;
}
/**
* 获取子表单组件的表结构配置
*
* @param tableStructureConfigs 所有表结构配置
* @param componentConfig 子表单组件
*/
public static void getChildTableStructureConfig(List<TableStructureConfig> tableStructureConfigs, ComponentConfig componentConfig) {
TableStructureConfig tableStructureConfig = new TableStructureConfig();
tableStructureConfig.setIsMain(false);
tableStructureConfig.setTableName(componentConfig.getBindTable());
List<TableFieldConfig> tableFieldConfigs = new ArrayList<>();
tableStructureConfig.setTableFieldConfigs(tableFieldConfigs);
//是否为子表单组件
if (StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.FORM_COMPONENT_TYPE)) {
//子表单不能再包含子表单
componentConfig.getChildren().forEach(child -> {
TableFieldConfig tableFieldConfig = new TableFieldConfig();
tableFieldConfig.setFieldName(child.getBindField());
tableFieldConfig.setFieldComment(child.getLabel());
tableFieldConfigs.add(tableFieldConfig);
});
}
tableStructureConfigs.add(tableStructureConfig);
}
/**
* 获取布局组件下的所有组件表结构配置
*
* @param tableStructureConfigs
* @param mainTableFieldConfigs
* @param componentConfig
*/
public static void getLayoutComponentsStructureConfig(List<TableStructureConfig> tableStructureConfigs, List<TableFieldConfig> mainTableFieldConfigs, ComponentConfig componentConfig) {
//是否为子表单组件
if (StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.FORM_COMPONENT_TYPE)) {
getChildTableStructureConfig(tableStructureConfigs, componentConfig);
} else {
//是否为选项卡 或者 布局组件
if (
StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.GRID_COMPONENT_TYPE) ||
StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.TAB_COMPONENT_TYPE) ||
StrUtil.equalsIgnoreCase(componentConfig.getType(), FormComponentConstant.CARD_COMPONENT_TYPE)
) {
//遍历所有布局数据
for (LayoutOptionModel layoutOptionModel : componentConfig.getLayout()) {
//遍历布局下 所有的组件
for (ComponentConfig config : layoutOptionModel.getList()) {
//是否为子表单组件
if (StrUtil.equalsIgnoreCase(config.getType(), FormComponentConstant.FORM_COMPONENT_TYPE)) {
getChildTableStructureConfig(tableStructureConfigs, config);
}
//是否为选项卡 或者 布局组件
else if (
StrUtil.equalsIgnoreCase(config.getType(), FormComponentConstant.GRID_COMPONENT_TYPE) ||
StrUtil.equalsIgnoreCase(config.getType(), FormComponentConstant.TAB_COMPONENT_TYPE) ||
StrUtil.equalsIgnoreCase(config.getType(), FormComponentConstant.CARD_COMPONENT_TYPE)
) {
getLayoutComponentsStructureConfig(tableStructureConfigs, mainTableFieldConfigs, config);
} else {
TableFieldConfig tableFieldConfig = new TableFieldConfig();
tableFieldConfig.setFieldName(config.getBindField());
tableFieldConfig.setFieldComment(config.getLabel());
mainTableFieldConfigs.add(tableFieldConfig);
}
}
}
} else {
TableFieldConfig tableFieldConfig = new TableFieldConfig();
tableFieldConfig.setFieldName(componentConfig.getBindField());
tableFieldConfig.setFieldComment(componentConfig.getLabel());
mainTableFieldConfigs.add(tableFieldConfig);
}
}
}
}

View File

@ -0,0 +1,16 @@
package com.xjrsoft.form.vo;
import lombok.Data;
/**
* @Author: hnyyzy
* @Date: 2023/9/19 11:34
*/
@Data
public class DeskColumnsVo {
private String prop;
private String label;
}

View File

@ -0,0 +1,25 @@
package com.xjrsoft.form.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author: hnyyzy
* @Date: 2023/9/19 11:34
*/
@Data
public class DeskFormReleaseVo {
@Schema(name = "表单发布id")
private Long id;
@Schema(name = "表单id 关联 xjr_form_template 表")
private String formId;
@Schema(name = "表单名")
private String formName;
@Schema(name = "菜单id 关联 xjr_menu表 唯一")
private String menuId;
@Schema(name = "功能名")
private String menuName;
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.form.vo;
import lombok.Data;
import java.util.List;
/**
* @Author: hnyyzy
* @Date: 2023/9/19 11:34
*/
@Data
public class DeskTableInfoVo {
private String pkName;
private List<DeskColumnsVo> deskColumnsVoList;
}

View File

@ -0,0 +1,28 @@
package com.xjrsoft.form.vo;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @Author: tzx
* @Date: 2022/5/10 10:38
*/
@Data
public class FormHistoryListVo {
private Long id;
private Long formId;
private String createUserName;
private LocalDateTime createDate;
private Integer status;
private Integer version;
private Integer activityFlag;
}

View File

@ -0,0 +1,34 @@
package com.xjrsoft.form.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/5/10 14:40
*/
@Data
public class FormReleasePageVo {
@Schema(name = "主键")
private String id;
@Schema(name = "表单id 关联 xjr_form_template 表")
private String formId;
@Schema(name = "表单名")
private String formName;
@Schema(name = "菜单id 关联 xjr_module表 唯一")
private String menuId;
@Schema(name = "功能名")
private String menuName;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
}

View File

@ -0,0 +1,33 @@
package com.xjrsoft.form.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/5/11 11:34
*/
@Data
public class FormReleaseVo {
@Schema(name = "表单id 关联 xjr_form_template 表")
private String formId;
@Schema(name = "表单名")
private String formName;
@Schema(name = "菜单id 关联 xjr_menu表 唯一")
private String menuId;
@Schema(name = "配置json")
private String configJson;
@Schema(name = "功能名")
private String menuName;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
}

View File

@ -0,0 +1,32 @@
package com.xjrsoft.form.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/5/9 15:55
*/
@Data
public class FormTemplateListVo {
@Schema(name = "主键")
private String id;
@Schema(name = "表单模板名称")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private String category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
private Integer formType;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
}

View File

@ -0,0 +1,70 @@
package com.xjrsoft.form.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @Author: tzx
* @Date: 2022/5/9 15:56
*/
@Data
public class FormTemplatePageVo {
@Schema(name = "主键")
private Long id;
@Schema(name = "表单模板名称")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private String category;
@Schema(name = "表单分类 关联 数据字典")
private String categoryName;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
private Integer formType;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "状态")
private Integer enabledMark;
@Schema(name = "备注")
private String remark;
@Schema(name = "创建时间")
private LocalDateTime createDate;
@Schema(name = "创建人名称")
private String createUserName;
/**
* 功能模块名称
*/
private String functionalModule;
/**
* 功能名称
*/
private String functionName;
/**
* Form页面名称
*/
private String functionFormName;
/**
* 关联的菜单id
*/
private Long menuId;
/**
* 关联菜单的组件
*/
private String menuComponent;
}

View File

@ -0,0 +1,50 @@
package com.xjrsoft.form.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/5/9 15:58
*/
@Data
public class FormTemplateVo {
@Schema(name = "表单模板名称")
private String name;
@Schema(name = "表单分类 关联 数据字典")
private String category;
@Schema(name = "表单类型:0 系统表单 1 自定义表单")
private Integer formType;
@Schema(name = "表单设计类型0-数据优先1-界面优先2-简易模板)")
private Integer formDesignType;
@Schema(name = "表单设计json")
private String formJson;
@Schema(name = "排序号")
private Integer sortCode;
@Schema(name = "备注")
private String remark;
/**
* 功能模块名称
*/
private String functionalModule;
/**
* 功能名称
*/
private String functionName;
/**
* Form页面名称
*/
private String functionFormName;
}