diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfFormController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfFormController.java new file mode 100644 index 000000000..8262fa1a0 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfFormController.java @@ -0,0 +1,97 @@ +package org.dromara.workflow.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.QueryGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.workflow.domain.bo.WfFormBo; +import org.dromara.workflow.domain.vo.WfFormVo; +import org.dromara.workflow.service.IWfFormService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; + +/** + * 流程表单Controller + * + * @author KonBAI + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/form") +public class WfFormController extends BaseController { + + private final IWfFormService formService; + + /** + * 查询流程表单列表 + */ + @SaCheckPermission("workflow:form:list") + @GetMapping("/list") + public TableDataInfo list(@Validated(QueryGroup.class) WfFormBo bo, PageQuery pageQuery) { + return formService.queryPageList(bo, pageQuery); + } + + /** + * 导出流程表单列表 + */ + @SaCheckPermission("workflow:form:export") + @Log(title = "流程表单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(@Validated WfFormBo bo, HttpServletResponse response) { + List list = formService.queryList(bo); + ExcelUtil.exportExcel(list, "流程表单", WfFormVo.class, response); + } + + /** + * 获取流程表单详细信息 + * @param formId 主键 + */ + @SaCheckPermission("workflow:form:query") + @GetMapping(value = "/{formId}") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("formId") Long formId) { + return R.ok(formService.queryById(formId)); + } + + /** + * 新增流程表单 + */ + @SaCheckPermission("workflow:form:add") + @Log(title = "流程表单", businessType = BusinessType.INSERT) + @PostMapping + public R add(@RequestBody WfFormBo bo) { + return toAjax(formService.insertForm(bo)); + } + + /** + * 修改流程表单 + */ + @SaCheckPermission("workflow:form:edit") + @Log(title = "流程表单", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@RequestBody WfFormBo bo) { + return toAjax(formService.updateForm(bo)); + } + + /** + * 删除流程表单 + * @param formIds 主键串 + */ + @SaCheckPermission("workflow:form:remove") + @Log(title = "流程表单", businessType = BusinessType.DELETE) + @DeleteMapping("/{formIds}") + public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] formIds) { + return toAjax(formService.deleteWithValidByIds(Arrays.asList(formIds))); + } +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/WfForm.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/WfForm.java new file mode 100644 index 000000000..59a5c972d --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/WfForm.java @@ -0,0 +1,49 @@ +package org.dromara.workflow.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; + +/** + * 流程表单对象 wf_form + * + * @author KonBAI + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wf_form") +public class WfForm extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表单主键 + */ + @TableId(value = "form_id") + private Long formId; + + /** + * 表单名称 + */ + private String formName; + + /** + * 表单配置 + */ + private String formConfig; + + /** + * 表单内容 + */ + private String content; + + /** + * 备注 + */ + private String remark; +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/WfFormBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/WfFormBo.java new file mode 100644 index 000000000..5f17a527e --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/WfFormBo.java @@ -0,0 +1,56 @@ +package org.dromara.workflow.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.workflow.domain.WfForm; + +import java.io.Serial; + +/** + * 流程表单业务对象 + * + * @author KonBAI + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WfForm.class, reverseConvertGenerate = false) +public class WfFormBo extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表单主键 + */ + @NotNull(message = "表单ID不能为空", groups = { EditGroup.class }) + private Long formId; + + /** + * 表单名称 + */ + @NotBlank(message = "表单名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String formName; + + /** + * 表单配置 + */ + @NotBlank(message = "表单配置不能为空", groups = { AddGroup.class, EditGroup.class }) + private String formConfig; + + /** + * 表单内容 + */ + @NotBlank(message = "表单内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String content; + + /** + * 备注 + */ + private String remark; +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfFormVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfFormVo.java new file mode 100644 index 000000000..75e80b107 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfFormVo.java @@ -0,0 +1,46 @@ +package org.dromara.workflow.domain.vo; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.workflow.domain.WfForm; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 流程分类视图对象 + * + * @author KonBAI + */ +@Data +@AutoMapper(target = WfForm.class) +public class WfFormVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表单主键 + */ + private Long formId; + + /** + * 表单名称 + */ + private String formName; + + /** + * 表单配置 + */ + private String formConfig; + + /** + * 表单内容 + */ + private String content; + + /** + * 备注 + */ + private String remark; +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/WfFormMapper.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/WfFormMapper.java new file mode 100644 index 000000000..97b8fb664 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/WfFormMapper.java @@ -0,0 +1,13 @@ +package org.dromara.workflow.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.workflow.domain.WfForm; +import org.dromara.workflow.domain.vo.WfFormVo; + +/** + * 流程表单Mapper接口 + * + * @author KonBAI + */ +public interface WfFormMapper extends BaseMapperPlus { +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfFormService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfFormService.java new file mode 100644 index 000000000..d699ccf6b --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfFormService.java @@ -0,0 +1,64 @@ +package org.dromara.workflow.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.workflow.domain.bo.WfFormBo; +import org.dromara.workflow.domain.vo.WfFormVo; + +import java.util.Collection; +import java.util.List; + +/** + * 流程表单 服务层 + * + * @author KonBAI + */ +public interface IWfFormService { + /** + * 查询流程表单 + * + * @param formId 流程表单ID + * @return 流程表单 + */ + WfFormVo queryById(Long formId); + + /** + * 查询流程表单列表 + * + * @param bo 流程表单 + * @return 流程表单集合 + */ + TableDataInfo queryPageList(WfFormBo bo, PageQuery pageQuery); + + /** + * 查询流程表单列表 + * + * @param bo 流程表单 + * @return 流程表单集合 + */ + List queryList(WfFormBo bo); + + /** + * 新增流程表单 + * + * @param bo 流程表单 + * @return 结果 + */ + int insertForm(WfFormBo bo); + + /** + * 修改流程表单 + * + * @param bo 流程表单 + * @return 结果 + */ + int updateForm(WfFormBo bo); + + /** + * 批量删除流程表单 + * + * @param formIds 需要删除的流程表单ID + * @return 结果 + */ + Boolean deleteWithValidByIds(Collection formIds); +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfFormServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfFormServiceImpl.java new file mode 100644 index 000000000..eab42ff4d --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfFormServiceImpl.java @@ -0,0 +1,115 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.workflow.domain.WfForm; +import org.dromara.workflow.domain.bo.WfFormBo; +import org.dromara.workflow.domain.vo.WfFormVo; +import org.dromara.workflow.mapper.WfFormMapper; +import org.dromara.workflow.service.IWfFormService; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 流程表单Service业务层处理 + * + * @author KonBAI + */ +@RequiredArgsConstructor +@Service +public class WfFormServiceImpl implements IWfFormService { + + private final WfFormMapper baseMapper; + + /** + * 查询流程表单 + * + * @param formId 流程表单ID + * @return 流程表单 + */ + @Override + public WfFormVo queryById(Long formId) { + return baseMapper.selectVoById(formId); + } + + /** + * 查询流程表单列表 + * + * @param bo 流程表单 + * @return 流程表单 + */ + @Override + public TableDataInfo queryPageList(WfFormBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询流程表单列表 + * + * @param bo 流程表单 + * @return 流程表单 + */ + @Override + public List queryList(WfFormBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + /** + * 新增流程表单 + * + * @param bo 流程表单 + * @return 结果 + */ + @Override + public int insertForm(WfFormBo bo) { + WfForm WfForm = MapstructUtils.convert(bo, WfForm.class); + return baseMapper.insert(WfForm); + } + + /** + * 修改流程表单 + * + * @param bo 流程表单 + * @return 结果 + */ + @Override + public int updateForm(WfFormBo bo) { + return baseMapper.update(new WfForm(), new LambdaUpdateWrapper() + .set(StrUtil.isNotBlank(bo.getFormName()), WfForm::getFormName, bo.getFormName()) + .set(StrUtil.isNotBlank(bo.getContent()), WfForm::getContent, bo.getContent()) + .set(StrUtil.isNotBlank(bo.getRemark()), WfForm::getRemark, bo.getRemark()) + .eq(WfForm::getFormId, bo.getFormId())); + } + + /** + * 批量删除流程表单 + * + * @param ids 需要删除的流程表单ID + * @return 结果 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids) { + return baseMapper.deleteBatchIds(ids) > 0; + } + + private LambdaQueryWrapper buildQueryWrapper(WfFormBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getFormName()), WfForm::getFormName, bo.getFormName()); + return lqw; + } +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfFormMapper.xml b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfFormMapper.xml new file mode 100644 index 000000000..5d3a0c955 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfFormMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/script/sql/oracle/oracle_ry_vue_5.X.sql b/script/sql/oracle/oracle_ry_vue_5.X.sql index 0456f11ec..d0a887efe 100644 --- a/script/sql/oracle/oracle_ry_vue_5.X.sql +++ b/script/sql/oracle/oracle_ry_vue_5.X.sql @@ -1106,6 +1106,37 @@ insert into sys_oss_config values (3, '000000', 'aliyun', 'XXXXXXXXXXXXXXX', 'X insert into sys_oss_config values (4, '000000', 'qcloud', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi-1250000000', '', 'cos.ap-beijing.myqcloud.com', '','N', 'ap-beijing', '1', '1', '', NULL, 103, 1, sysdate, 1, sysdate); insert into sys_oss_config values (5, '000000', 'image', 'ruoyi', 'ruoyi123', 'ruoyi', 'image', '127.0.0.1:9000', '','N', '', '1', '1', '', NULL, 103, 1, sysdate, 1, sysdate); +-- ---------------------------- +-- 流程表单信息表 +-- ---------------------------- +create table wf_form ( + form_id number(20) not null, + form_name varchar(64) default '', + form_config nclob, + content nclob, + create_dept number(20) default null, + create_by number(20) default null, + create_time date, + update_by number(20) default null, + update_time date, + remark varchar(255) default '', + del_flag char(1) default '0' +); + +alter table wf_form add constraint pk_wf_form primary key (form_id); + +comment on table wf_form is '流程表单信息表'; +comment on column wf_form.form_id is '表单主键'; +comment on column wf_form.form_name is '表单名称'; +comment on column wf_form.form_config is '表单配置'; +comment on column wf_form.content is '表单内容'; +comment on column wf_form.create_dept is '创建部门'; +comment on column wf_form.create_by is '创建者'; +comment on column wf_form.create_time is '创建时间'; +comment on column wf_form.update_by is '更新者'; +comment on column wf_form.update_time is '更新时间'; +comment on column wf_form.remark is '备注'; +comment on column wf_form.del_flag is '删除标志(0代表存在 2代表删除)'; -- ---------------------------- -- 钩子 ,用于session连接之后 自动设置默认的date类型格式化 简化时间查询 diff --git a/script/sql/postgres/postgres_ry_vue_5.X.sql b/script/sql/postgres/postgres_ry_vue_5.X.sql index bdf28b493..65b5b1998 100644 --- a/script/sql/postgres/postgres_ry_vue_5.X.sql +++ b/script/sql/postgres/postgres_ry_vue_5.X.sql @@ -1130,6 +1130,39 @@ insert into sys_oss_config values (3, '000000', 'aliyun', 'XXXXXXXXXXXXXXX', 'X insert into sys_oss_config values (4, '000000', 'qcloud', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi-1250000000', '', 'cos.ap-beijing.myqcloud.com', '','N', 'ap-beijing', '1', '1', '', 103, 1, now(), 1, now(), null); insert into sys_oss_config values (5, '000000', 'image', 'ruoyi', 'ruoyi123', 'ruoyi', 'image', '127.0.0.1:9000', '','N', '', '1', '1', '', 103, 1, now(), 1, now(), NULL); +-- ---------------------------- +-- 流程表单信息表 +-- ---------------------------- +drop table if exists bpmn_form; +create table if not exists bpmn_form +( + form_id int8, + tenant_id varchar(20) default '000000'::varchar, + form_name varchar(255) default ''::varchar not null, + form_config text, + content text, + create_dept int8, + create_by int8, + create_time timestamp, + update_by int8, + update_time timestamp, + remark varchar(500) default ''::varchar, + constraint bpmn_form_pk primary key (bpmn_form) +); + +comment on table wf_form is '流程表单信息表'; +comment on column bpmn_form.form_id is '表单主键'; +comment on column bpmn_form.form_name is '表单名称'; +comment on column bpmn_form.form_config is '表单配置'; +comment on column bpmn_form.content is '表单内容'; +comment on column bpmn_form.create_dept is '创建部门'; +comment on column bpmn_form.create_by is '创建者'; +comment on column bpmn_form.create_time is '创建时间'; +comment on column bpmn_form.update_by is '更新者'; +comment on column bpmn_form.update_time is '更新时间'; +comment on column bpmn_form.remark is '备注'; +comment on column bpmn_form.del_flag is '删除标志(0代表存在 2代表删除)'; + -- 字符串自动转时间 避免框架时间查询报错问题 create or replace function cast_varchar_to_timestamp(varchar) returns timestamptz as $$ select to_timestamp($1, 'yyyy-mm-dd hh24:mi:ss'); diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql index 2b3ea0c1c..a05cdfefe 100644 --- a/script/sql/ry_vue_5.X.sql +++ b/script/sql/ry_vue_5.X.sql @@ -794,3 +794,22 @@ insert into sys_oss_config values (2, '000000', 'qiniu', 'XXXXXXXXXXXXXXX', 'X insert into sys_oss_config values (3, '000000', 'aliyun', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi', '', 'oss-cn-beijing.aliyuncs.com', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), NULL); insert into sys_oss_config values (4, '000000', 'qcloud', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi-1250000000', '', 'cos.ap-beijing.myqcloud.com', '','N', 'ap-beijing', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), NULL); insert into sys_oss_config values (5, '000000', 'image', 'ruoyi', 'ruoyi123', 'ruoyi', 'image', '127.0.0.1:9000', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), NULL); + +-- ---------------------------- +-- 流程表单信息表 +-- ---------------------------- +drop table if exists wf_form; +create table wf_form ( + form_id bigint not null comment '表单id', + tenant_id varchar(20) default '000000'comment '租户编号', + form_name varchar(255) default null comment '表单名称', + form_config longtext comment '表单配置', + content longtext comment '表单内容', + create_dept bigint default null comment '创建部门', + create_by bigint default null comment '创建者', + create_time datetime default null comment '创建时间', + update_by bigint default null comment '更新者', + update_time datetime default null comment '更新时间', + remark varchar(500) default null comment '备注', + primary key (form_id) +) engine=innodb comment='流程表单信息表'; diff --git a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql index f72dfffcd..ca1025fcc 100644 --- a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql +++ b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql @@ -2812,3 +2812,94 @@ INSERT INTO sys_oss_config VALUES (N'4', N'000000', N'qcloud', N'XXXXXXXXXXXXXXX GO INSERT INTO sys_oss_config VALUES (N'5', N'000000', N'image', N'ruoyi', N'ruoyi123', N'ruoyi', N'image', N'127.0.0.1:9000', N'',N'N', N'', N'1', N'1', N'', 103, 1, getdate(), 1, getdate(), NULL) GO + +CREATE TABLE wf_form +( + form_id bigint NOT NULL, + form_name nvarchar(64) DEFAULT '' NULL, + form_config nvarchar(max) NULL, + content nvarchar(max) NULL, + create_dept bigint NULL, + create_by nvarchar(64) DEFAULT '' NULL, + create_time datetime2(7) NULL, + update_by nvarchar(64) DEFAULT '' NULL, + update_time datetime2(7) NULL, + remark nvarchar(255) NULL, + del_flag nchar(1) DEFAULT ('0') NULL, + CONSTRAINT [PK__wf_form] PRIMARY KEY CLUSTERED ([form_id]) + WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) + ON [PRIMARY] +) +GO + +EXEC sp_addextendedproperty + 'MS_Description', N'表单主键', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'form_id' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'表单名称', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'form_name' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'表单配置', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'form_config' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'表单内容', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'content' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'创建部门' , + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'create_dept' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'创建者', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'create_by' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'创建时间', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'create_time' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'更新者', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'update_by' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'更新时间', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'update_time' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'备注', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'remark' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'删除标志(0代表存在 2代表删除)', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form', + 'COLUMN', N'del_flag' +GO +EXEC sp_addextendedproperty + 'MS_Description', N'流程表单信息表', + 'SCHEMA', N'dbo', + 'TABLE', N'wf_form' +GO