增加form表单
This commit is contained in:
parent
ace8def854
commit
951fcbfebb
@ -0,0 +1,44 @@
|
||||
package com.qqchen.deploy.backend.workflow.api;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.api.Response;
|
||||
import com.qqchen.deploy.backend.framework.controller.BaseController;
|
||||
import com.qqchen.deploy.backend.workflow.dto.FormCategoryDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.query.FormCategoryQuery;
|
||||
import com.qqchen.deploy.backend.workflow.entity.FormCategory;
|
||||
import com.qqchen.deploy.backend.workflow.service.IFormCategoryService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 表单分类API控制器
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/forms/categories")
|
||||
@Tag(name = "表单分类管理", description = "表单分类管理相关接口")
|
||||
public class FormCategoryApiController extends BaseController<FormCategory, FormCategoryDTO, Long, FormCategoryQuery> {
|
||||
|
||||
@Resource
|
||||
private IFormCategoryService formCategoryService;
|
||||
|
||||
@Operation(summary = "查询所有启用的分类")
|
||||
@GetMapping("/enabled")
|
||||
public Response<List<FormCategoryDTO>> findAllEnabled() {
|
||||
List<FormCategoryDTO> result = formCategoryService.findAllEnabled();
|
||||
return Response.success(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void exportData(jakarta.servlet.http.HttpServletResponse response, java.util.List<FormCategoryDTO> data) {
|
||||
// 暂不支持导出
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/workflow/form-data")
|
||||
@RequestMapping("/api/v1/forms/data")
|
||||
@Tag(name = "表单数据管理", description = "表单数据管理相关接口")
|
||||
public class FormDataApiController extends BaseController<FormData, FormDataDTO, Long, FormDataQuery> {
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/workflow/form-definition")
|
||||
@RequestMapping("/api/v1/forms/definitions")
|
||||
@Tag(name = "表单定义管理", description = "表单定义管理相关接口")
|
||||
public class FormDefinitionApiController extends BaseController<FormDefinition, FormDefinitionDTO, Long, FormDefinitionQuery> {
|
||||
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package com.qqchen.deploy.backend.workflow.converter;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.converter.BaseConverter;
|
||||
import com.qqchen.deploy.backend.workflow.dto.FormCategoryDTO;
|
||||
import com.qqchen.deploy.backend.workflow.entity.FormCategory;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
/**
|
||||
* 表单分类转换器
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Mapper(config = BaseConverter.class)
|
||||
public interface FormCategoryConverter extends BaseConverter<FormCategory, FormCategoryDTO> {
|
||||
}
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 表单分类DTO
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Schema(description = "表单分类DTO")
|
||||
public class FormCategoryDTO extends BaseDTO {
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
@Schema(description = "分类名称", example = "审批表单")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 分类编码
|
||||
*/
|
||||
@Schema(description = "分类编码", example = "APPROVAL")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 分类描述
|
||||
*/
|
||||
@Schema(description = "分类描述", example = "用于审批流程的表单")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
@Schema(description = "图标", example = "CheckCircleOutlined")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@Schema(description = "排序", example = "1")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
@Schema(description = "是否启用", example = "true")
|
||||
private Boolean enabled;
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ package com.qqchen.deploy.backend.workflow.dto;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.form.FormSchema;
|
||||
import com.qqchen.deploy.backend.workflow.enums.FormCategoryEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.FormDefinitionStatusEnums;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@ -40,10 +39,16 @@ public class FormDefinitionDTO extends BaseDTO {
|
||||
private Integer formVersion;
|
||||
|
||||
/**
|
||||
* 表单分类
|
||||
* 表单分类ID
|
||||
*/
|
||||
@Schema(description = "表单分类")
|
||||
private FormCategoryEnums category;
|
||||
@Schema(description = "表单分类ID", example = "1")
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 表单分类信息(用于展示)
|
||||
*/
|
||||
@Schema(description = "表单分类信息")
|
||||
private FormCategoryDTO category;
|
||||
|
||||
/**
|
||||
* 表单描述
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.query;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.annotation.QueryField;
|
||||
import com.qqchen.deploy.backend.framework.enums.QueryType;
|
||||
import com.qqchen.deploy.backend.framework.query.BaseQuery;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 表单分类查询对象
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class FormCategoryQuery extends BaseQuery {
|
||||
|
||||
/**
|
||||
* 分类名称(模糊查询)
|
||||
*/
|
||||
@QueryField(field = "name", type = QueryType.LIKE)
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 分类编码(精确查询)
|
||||
*/
|
||||
@QueryField(field = "code", type = QueryType.EQUAL)
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 是否启用(精确查询)
|
||||
*/
|
||||
@QueryField(field = "enabled", type = QueryType.EQUAL)
|
||||
private Boolean enabled;
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@ package com.qqchen.deploy.backend.workflow.dto.query;
|
||||
import com.qqchen.deploy.backend.framework.annotation.QueryField;
|
||||
import com.qqchen.deploy.backend.framework.enums.QueryType;
|
||||
import com.qqchen.deploy.backend.framework.query.BaseQuery;
|
||||
import com.qqchen.deploy.backend.workflow.enums.FormCategoryEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.FormDefinitionStatusEnums;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -37,10 +36,10 @@ public class FormDefinitionQuery extends BaseQuery {
|
||||
private Integer formVersion;
|
||||
|
||||
/**
|
||||
* 表单分类(精确查询)
|
||||
* 表单分类ID(精确查询)
|
||||
*/
|
||||
@QueryField(field = "category", type = QueryType.EQUAL)
|
||||
private FormCategoryEnums category;
|
||||
@QueryField(field = "categoryId", type = QueryType.EQUAL)
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 状态(精确查询)
|
||||
|
||||
@ -0,0 +1,58 @@
|
||||
package com.qqchen.deploy.backend.workflow.entity;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.annotation.LogicDelete;
|
||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 表单分类实体
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Data
|
||||
@Table(name = "form_category")
|
||||
@jakarta.persistence.Entity
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@LogicDelete
|
||||
public class FormCategory extends Entity<Long> {
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
@Column(nullable = false, length = 100)
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 分类编码(唯一)
|
||||
*/
|
||||
@Column(nullable = false, length = 50, unique = true)
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 分类描述
|
||||
*/
|
||||
@Column(length = 500)
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
@Column(length = 50)
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private Boolean enabled;
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import com.qqchen.deploy.backend.framework.annotation.LogicDelete;
|
||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||
import com.qqchen.deploy.backend.workflow.dto.form.FormSchema;
|
||||
import com.qqchen.deploy.backend.workflow.entity.converter.FormSchemaType;
|
||||
import com.qqchen.deploy.backend.workflow.enums.FormCategoryEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.FormDefinitionStatusEnums;
|
||||
import com.vladmihalcea.hibernate.type.json.JsonType;
|
||||
import jakarta.persistence.*;
|
||||
@ -46,11 +45,10 @@ public class FormDefinition extends Entity<Long> {
|
||||
private Integer formVersion;
|
||||
|
||||
/**
|
||||
* 表单分类
|
||||
* 表单分类ID
|
||||
*/
|
||||
@Column(name = "category")
|
||||
@Enumerated(EnumType.STRING)
|
||||
private FormCategoryEnums category;
|
||||
@Column(name = "category_id")
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 表单描述
|
||||
@ -62,7 +60,7 @@ public class FormDefinition extends Entity<Long> {
|
||||
* 表单Schema(前端设计器导出的JSON结构)
|
||||
*/
|
||||
@Type(FormSchemaType.class)
|
||||
@Column(name = "schema", nullable = false, columnDefinition = "json")
|
||||
@Column(name = "`schema`", nullable = false, columnDefinition = "json")
|
||||
private FormSchema schema;
|
||||
|
||||
/**
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
package com.qqchen.deploy.backend.workflow.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 表单分类枚举
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Getter
|
||||
public enum FormCategoryEnums {
|
||||
|
||||
APPROVAL("APPROVAL", "审批"),
|
||||
DATA_COLLECTION("DATA_COLLECTION", "数据采集"),
|
||||
SURVEY("SURVEY", "问卷调查"),
|
||||
OTHER("OTHER", "其他");
|
||||
|
||||
private final String code;
|
||||
|
||||
private final String description;
|
||||
|
||||
FormCategoryEnums(String code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
package com.qqchen.deploy.backend.workflow.repository;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
|
||||
import com.qqchen.deploy.backend.workflow.entity.FormCategory;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 表单分类Repository接口
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Repository
|
||||
public interface IFormCategoryRepository extends IBaseRepository<FormCategory, Long> {
|
||||
|
||||
/**
|
||||
* 根据编码查询
|
||||
*
|
||||
* @param code 分类编码
|
||||
* @return 表单分类
|
||||
*/
|
||||
Optional<FormCategory> findByCodeAndDeletedFalse(String code);
|
||||
|
||||
/**
|
||||
* 检查编码是否存在
|
||||
*
|
||||
* @param code 分类编码
|
||||
* @return 是否存在
|
||||
*/
|
||||
boolean existsByCodeAndDeletedFalse(String code);
|
||||
|
||||
/**
|
||||
* 查询所有启用的分类(按排序)
|
||||
*
|
||||
* @return 分类列表
|
||||
*/
|
||||
List<FormCategory> findByEnabledTrueAndDeletedFalseOrderBySortAsc();
|
||||
}
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
package com.qqchen.deploy.backend.workflow.service;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.service.IBaseService;
|
||||
import com.qqchen.deploy.backend.workflow.dto.FormCategoryDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.query.FormCategoryQuery;
|
||||
import com.qqchen.deploy.backend.workflow.entity.FormCategory;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 表单分类服务接口
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
public interface IFormCategoryService extends IBaseService<FormCategory, FormCategoryDTO, FormCategoryQuery, Long> {
|
||||
|
||||
/**
|
||||
* 查询所有启用的分类
|
||||
*
|
||||
* @return 分类列表
|
||||
*/
|
||||
List<FormCategoryDTO> findAllEnabled();
|
||||
}
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
package com.qqchen.deploy.backend.workflow.service.impl;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
|
||||
import com.qqchen.deploy.backend.workflow.dto.FormCategoryDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.query.FormCategoryQuery;
|
||||
import com.qqchen.deploy.backend.workflow.entity.FormCategory;
|
||||
import com.qqchen.deploy.backend.workflow.repository.IFormCategoryRepository;
|
||||
import com.qqchen.deploy.backend.workflow.service.IFormCategoryService;
|
||||
import com.qqchen.deploy.backend.workflow.converter.FormCategoryConverter;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 表单分类服务实现
|
||||
*
|
||||
* @author qqchen
|
||||
* @date 2025-10-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class FormCategoryServiceImpl extends BaseServiceImpl<FormCategory, FormCategoryDTO, FormCategoryQuery, Long> implements IFormCategoryService {
|
||||
|
||||
@Resource
|
||||
private IFormCategoryRepository formCategoryRepository;
|
||||
|
||||
@Resource
|
||||
private FormCategoryConverter formCategoryConverter;
|
||||
|
||||
@Override
|
||||
public List<FormCategoryDTO> findAllEnabled() {
|
||||
log.info("查询所有启用的表单分类");
|
||||
List<FormCategory> categories = formCategoryRepository.findByEnabledTrueAndDeletedFalseOrderBySortAsc();
|
||||
return categories.stream()
|
||||
.map(formCategoryConverter::toDto)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public class FormDefinitionServiceImpl extends BaseServiceImpl<FormDefinition, F
|
||||
newVersion.setName(currentForm.getName());
|
||||
newVersion.setKey(currentForm.getKey());
|
||||
newVersion.setFormVersion(currentForm.getFormVersion() + 1);
|
||||
newVersion.setCategory(currentForm.getCategory());
|
||||
newVersion.setCategoryId(currentForm.getCategoryId());
|
||||
newVersion.setDescription(currentForm.getDescription());
|
||||
newVersion.setSchema(currentForm.getSchema());
|
||||
newVersion.setTags(currentForm.getTags());
|
||||
|
||||
@ -91,7 +91,12 @@ VALUES
|
||||
(230, '集成工具', '/integration', 'Layout', 'ApiOutlined', 1, NULL, 6, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||
(231, 'Jenkins集成', '/deploy/jenkins-manager', '/src/pages/Deploy/JenkinsManager/List', 'BuildOutlined', 2, 230, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||
(232, 'Git仓库', '/deploy/git-manager', '/src/pages/Deploy/GitManager/List', 'GithubOutlined', 2, 230, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||
(233, '外部服务', '/deploy/external', '/src/pages/Deploy/external/index', 'LinkOutlined', 2, 230, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);
|
||||
(233, '外部服务', '/deploy/external', '/src/pages/Deploy/external/index', 'LinkOutlined', 2, 230, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||
|
||||
-- 📄 表单管理
|
||||
(300, '表单管理', '/form', 'Layout', 'FormOutlined', 1, NULL, 7, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||
(301, '表单定义', '/form/definitions', '/src/pages/form/definitions/index', 'FileTextOutlined', 2, 300, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||
(302, '表单数据', '/form/data', '/src/pages/form/data/index', 'DatabaseOutlined', 2, 300, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);
|
||||
|
||||
-- 初始化角色数据
|
||||
INSERT INTO sys_role (id, create_time, code, name, type, description, sort)
|
||||
@ -130,6 +135,7 @@ SELECT 1, id FROM sys_menu; -- 超级管理员拥有所有菜单权限
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
VALUES
|
||||
(2, 1), (2, 2), (2, 3), (2, 4), (2, 5), -- 系统管理员拥有系统管理相关权限
|
||||
(2, 300), (2, 301), (2, 302), -- 系统管理员拥有表单管理权限
|
||||
(3, 233); -- 普通用户拥有外部服务权限
|
||||
|
||||
-- 初始化权限模板
|
||||
@ -143,7 +149,9 @@ INSERT INTO sys_template_menu (template_id, menu_id)
|
||||
SELECT 1, id FROM sys_menu; -- 完整权限模板关联所有菜单
|
||||
|
||||
INSERT INTO sys_template_menu (template_id, menu_id)
|
||||
VALUES (2, 233); -- 基础权限模板关联外部服务菜单
|
||||
VALUES
|
||||
(2, 233), -- 基础权限模板关联外部服务菜单
|
||||
(2, 300), (2, 302); -- 基础权限模板关联表单管理和表单数据(不包括表单定义)
|
||||
|
||||
-- 初始化权限数据
|
||||
INSERT INTO sys_permission (id, create_time, menu_id, code, name, type, sort)
|
||||
@ -166,7 +174,21 @@ VALUES
|
||||
(11, NOW(), 233, 'system:external:update', '外部服务修改', 'FUNCTION', 3),
|
||||
(12, NOW(), 233, 'system:external:delete', '外部服务删除', 'FUNCTION', 4),
|
||||
(13, NOW(), 233, 'system:external:test', '连接测试', 'FUNCTION', 5),
|
||||
(14, NOW(), 233, 'system:external:sync', '数据同步', 'FUNCTION', 6);
|
||||
(14, NOW(), 233, 'system:external:sync', '数据同步', 'FUNCTION', 6),
|
||||
|
||||
-- 表单定义权限
|
||||
(15, NOW(), 301, 'form:definition:list', '表单定义列表', 'FUNCTION', 1),
|
||||
(16, NOW(), 301, 'form:definition:create', '创建表单定义', 'FUNCTION', 2),
|
||||
(17, NOW(), 301, 'form:definition:update', '修改表单定义', 'FUNCTION', 3),
|
||||
(18, NOW(), 301, 'form:definition:delete', '删除表单定义', 'FUNCTION', 4),
|
||||
(19, NOW(), 301, 'form:definition:publish', '发布表单', 'FUNCTION', 5),
|
||||
|
||||
-- 表单数据权限
|
||||
(20, NOW(), 302, 'form:data:list', '表单数据列表', 'FUNCTION', 1),
|
||||
(21, NOW(), 302, 'form:data:view', '查看表单数据', 'FUNCTION', 2),
|
||||
(22, NOW(), 302, 'form:data:submit', '提交表单数据', 'FUNCTION', 3),
|
||||
(23, NOW(), 302, 'form:data:delete', '删除表单数据', 'FUNCTION', 4),
|
||||
(24, NOW(), 302, 'form:data:export', '导出表单数据', 'FUNCTION', 5);
|
||||
|
||||
-- --------------------------------------------------------------------------------------
|
||||
-- 初始化外部系统数据
|
||||
@ -835,3 +857,14 @@ VALUES
|
||||
-- 'DISABLED',
|
||||
-- '管理员邮件通知渠道(示例数据,请修改为实际配置)',
|
||||
-- 'admin', NOW(), 'admin', NOW(), 0, 0);
|
||||
|
||||
-- --------------------------------------------------------------------------------------
|
||||
-- 初始化表单分类数据
|
||||
-- --------------------------------------------------------------------------------------
|
||||
|
||||
INSERT INTO form_category (name, code, description, icon, sort, enabled, create_by, create_time, update_by, update_time, version, deleted)
|
||||
VALUES
|
||||
('审批表单', 'APPROVAL', '用于审批流程的表单', 'CheckCircleOutlined', 1, 1, 'system', NOW(), 'system', NOW(), 0, 0),
|
||||
('数据采集', 'DATA_COLLECTION', '用于数据采集的表单', 'DatabaseOutlined', 2, 1, 'system', NOW(), 'system', NOW(), 0, 0),
|
||||
('问卷调查', 'SURVEY', '用于问卷调查的表单', 'FormOutlined', 3, 1, 'system', NOW(), 'system', NOW(), 0, 0),
|
||||
('其他', 'OTHER', '其他类型的表单', 'FileOutlined', 99, 1, 'system', NOW(), 'system', NOW(), 0, 0);
|
||||
|
||||
@ -693,6 +693,38 @@ CREATE TABLE sys_notification_channel (
|
||||
-- 表单管理相关表
|
||||
-- =====================================================================================================================
|
||||
|
||||
-- 表单分类表
|
||||
CREATE TABLE form_category
|
||||
(
|
||||
-- 主键
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
|
||||
-- 基础信息
|
||||
name VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||||
code VARCHAR(50) NOT NULL COMMENT '分类编码(唯一)',
|
||||
description VARCHAR(500) NULL COMMENT '分类描述',
|
||||
icon VARCHAR(50) NULL COMMENT '图标',
|
||||
sort INT NOT NULL DEFAULT 0 COMMENT '排序',
|
||||
|
||||
-- 状态
|
||||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||||
|
||||
-- 审计字段
|
||||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
|
||||
-- 约束和索引
|
||||
UNIQUE KEY uk_code (code),
|
||||
INDEX idx_enabled (enabled),
|
||||
INDEX idx_deleted (deleted),
|
||||
INDEX idx_sort (sort)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
|
||||
COMMENT = '表单分类表';
|
||||
|
||||
-- 表单定义表
|
||||
CREATE TABLE form_definition
|
||||
(
|
||||
@ -703,11 +735,11 @@ CREATE TABLE form_definition
|
||||
name VARCHAR(255) NOT NULL COMMENT '表单名称',
|
||||
`key` VARCHAR(255) NOT NULL COMMENT '表单标识(业务唯一)',
|
||||
form_version INT NOT NULL DEFAULT 1 COMMENT '表单版本号',
|
||||
category VARCHAR(100) NULL COMMENT '表单分类(APPROVAL-审批、DATA_COLLECTION-数据采集、SURVEY-问卷调查、OTHER-其他)',
|
||||
category_id BIGINT NULL COMMENT '表单分类ID(外键关联form_category)',
|
||||
description TEXT NULL COMMENT '表单描述',
|
||||
|
||||
-- 表单配置
|
||||
schema JSON NOT NULL COMMENT '表单Schema(前端设计器导出的JSON结构)',
|
||||
`schema` JSON NOT NULL COMMENT '表单Schema(前端设计器导出的JSON结构)',
|
||||
tags JSON NULL COMMENT '标签(用于分类和搜索)',
|
||||
|
||||
-- 表单属性
|
||||
@ -724,10 +756,13 @@ CREATE TABLE form_definition
|
||||
|
||||
-- 约束和索引
|
||||
UNIQUE KEY uk_key_version (`key`, form_version),
|
||||
INDEX idx_category (category),
|
||||
INDEX idx_category_id (category_id),
|
||||
INDEX idx_status (status),
|
||||
INDEX idx_is_template (is_template),
|
||||
INDEX idx_deleted (deleted)
|
||||
INDEX idx_deleted (deleted),
|
||||
|
||||
-- 外键约束
|
||||
CONSTRAINT fk_form_definition_category FOREIGN KEY (category_id) REFERENCES form_category(id)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
|
||||
COMMENT = '表单定义表';
|
||||
|
||||
|
||||
@ -241,3 +241,7 @@ workflow.variable.serialize.error=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u5E8F\u5217\u53
|
||||
workflow.variable.deserialize.error=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u53CD\u5E8F\u5217\u5316\u5931\u8D25: {0}
|
||||
|
||||
workflow.config.error=\u5DE5\u4F5C\u6D41\u914D\u7F6E\u9519\u8BEF: {0}
|
||||
|
||||
# \u8868\u5355\u7BA1\u7406\u76F8\u5173\u9519\u8BEF\u7801 (2800-2899)
|
||||
form.definition.not.found=\u8868\u5355\u5B9A\u4E49\u4E0D\u5B58\u5728\u6216\u5DF2\u5220\u9664
|
||||
form.data.not.found=\u8868\u5355\u6570\u636E\u4E0D\u5B58\u5728\u6216\u5DF2\u5220\u9664
|
||||
Loading…
Reference in New Issue
Block a user