From 98ab342e7f21664b34a5e187ddfafd99f3492a70 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Sun, 17 Sep 2023 17:41:43 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WfBusinessFormController.java | 106 +++++++++++++++ .../workflow/controller/WfFormController.java | 11 ++ .../workflow/domain/WfBusinessForm.java | 64 +++++++++ .../workflow/domain/bo/WfBusinessFormBo.java | 58 ++++++++ .../workflow/domain/vo/WfBusinessFormVo.java | 63 +++++++++ .../dromara/workflow/domain/vo/WfFormVo.java | 11 ++ .../workflow/mapper/WfBusinessFormMapper.java | 15 +++ .../dromara/workflow/mapper/package-info.java | 1 - .../service/IWfBusinessFormService.java | 49 +++++++ .../impl/WfBusinessFormServiceImpl.java | 124 ++++++++++++++++++ .../service/impl/WfFormServiceImpl.java | 17 ++- .../mapper/workflow/WfBusinessFormMapper.xml | 7 + .../mapper/workflow/WfFormMapper.xml | 3 - script/sql/ry_vue_5.X.sql | 40 +++++- 14 files changed, 554 insertions(+), 15 deletions(-) create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/WfBusinessForm.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/WfBusinessFormBo.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfBusinessFormVo.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/WfBusinessFormMapper.java delete mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/package-info.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfBusinessFormMapper.xml diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java new file mode 100644 index 000000000..153fa462b --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java @@ -0,0 +1,106 @@ +package org.dromara.workflow.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.workflow.domain.WfBusinessForm; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.workflow.domain.vo.WfBusinessFormVo; +import org.dromara.workflow.domain.bo.WfBusinessFormBo; +import org.dromara.workflow.service.IWfBusinessFormService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 发起流程 + * + * @author may + * @date 2023-09-16 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/businessForm") +public class WfBusinessFormController extends BaseController { + + private final IWfBusinessFormService wfBusinessFormService; + + /** + * 查询发起流程列表 + */ + @SaCheckPermission("workflow:businessForm:list") + @GetMapping("/list") + public TableDataInfo list(WfBusinessFormBo bo, PageQuery pageQuery) { + return wfBusinessFormService.queryPageList(bo, pageQuery); + } + + /** + * 导出发起流程列表 + */ + @SaCheckPermission("workflow:businessForm:export") + @Log(title = "发起流程", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WfBusinessFormBo bo, HttpServletResponse response) { + List list = wfBusinessFormService.queryList(bo); + ExcelUtil.exportExcel(list, "发起流程", WfBusinessFormVo.class, response); + } + + /** + * 获取发起流程详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("workflow:businessForm:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(wfBusinessFormService.queryById(id)); + } + + /** + * 新增发起流程 + */ + @SaCheckPermission("workflow:businessForm:add") + @Log(title = "发起流程", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WfBusinessFormBo bo) { + return R.ok(wfBusinessFormService.insertByBo(bo)); + } + + /** + * 修改发起流程 + */ + @SaCheckPermission("workflow:businessForm:edit") + @Log(title = "发起流程", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WfBusinessFormBo bo) { + return R.ok(wfBusinessFormService.updateByBo(bo)); + } + + /** + * 删除发起流程 + * + * @param ids 主键串 + */ + @SaCheckPermission("workflow:businessForm:remove") + @Log(title = "发起流程", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(wfBusinessFormService.deleteWithValidByIds(List.of(ids), true)); + } +} 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 index 8262fa1a0..35e981e40 100644 --- 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 @@ -6,6 +6,7 @@ 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.enums.UserStatus; import org.dromara.common.core.validate.QueryGroup; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; @@ -43,6 +44,16 @@ public class WfFormController extends BaseController { return formService.queryPageList(bo, pageQuery); } + /** + * 查询流程表单列表 + */ + @SaCheckPermission("workflow:form:list") + @GetMapping("/queryList") + public R> queryList(WfFormBo bo) { + bo.setStatus(UserStatus.OK.getCode()); + return R.ok(formService.queryList(bo)); + } + /** * 导出流程表单列表 */ diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/WfBusinessForm.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/WfBusinessForm.java new file mode 100644 index 000000000..9de2ad210 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/WfBusinessForm.java @@ -0,0 +1,64 @@ +package org.dromara.workflow.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Map; + +/** + * 发起流程对象 wf_business_form + * + * @author may + * @date 2023-09-16 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wf_business_form") +public class WfBusinessForm extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 申请编码 + */ + private String applyCode; + + /** + * 表单id + */ + private Long formId; + + /** + * 表单名称 + */ + private String formName; + + /** + * 表单内容 + */ + private String content; + + /** + * 表单值 + */ + private String contentValue; + + /** + * 流程变量 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map variable; + +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/WfBusinessFormBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/WfBusinessFormBo.java new file mode 100644 index 000000000..2ac5c27bc --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/WfBusinessFormBo.java @@ -0,0 +1,58 @@ +package org.dromara.workflow.domain.bo; + +import org.dromara.workflow.domain.WfBusinessForm; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 发起流程业务对象 wf_business_form + * + * @author may + * @date 2023-09-16 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WfBusinessForm.class, reverseConvertGenerate = false) +public class WfBusinessFormBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 申请编码 + */ + private String applyCode; + + /** + * 表单id + */ + @NotNull(message = "表单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long formId; + + /** + * 表单名称 + */ + @NotBlank(message = "表单名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String formName; + + /** + * 表单内容 + */ + @NotBlank(message = "表单内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String content; + + /** + * 表单值 + */ + private String contentValue; + + +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfBusinessFormVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfBusinessFormVo.java new file mode 100644 index 000000000..7d47469d8 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfBusinessFormVo.java @@ -0,0 +1,63 @@ +package org.dromara.workflow.domain.vo; + +import org.dromara.workflow.domain.WfBusinessForm; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 发起流程视图对象 wf_business_form + * + * @author may + * @date 2023-09-16 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WfBusinessForm.class) +public class WfBusinessFormVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 申请编码 + */ + @ExcelProperty(value = "申请编码") + private String applyCode; + + /** + * 表单id + */ + @ExcelProperty(value = "表单id") + private Long formId; + + /** + * 表单名称 + */ + @ExcelProperty(value = "表单名称") + private String formName; + + /** + * 表单内容 + */ + @ExcelProperty(value = "表单内容") + private String content; + + /** + * 表单值 + */ + @ExcelProperty(value = "表单值") + private String contentValue; + +} 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 index 2a2aa400a..7f8fa8e67 100644 --- 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 @@ -6,6 +6,7 @@ import org.dromara.workflow.domain.WfForm; import java.io.Serial; import java.io.Serializable; +import java.util.Date; /** * 流程分类视图对象 @@ -49,6 +50,16 @@ public class WfFormVo implements Serializable { */ private String remark; + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; + /** * 动态单与流程定义关联信息业务对象 */ diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/WfBusinessFormMapper.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/WfBusinessFormMapper.java new file mode 100644 index 000000000..8e850aa93 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/WfBusinessFormMapper.java @@ -0,0 +1,15 @@ +package org.dromara.workflow.mapper; + +import org.dromara.workflow.domain.WfBusinessForm; +import org.dromara.workflow.domain.vo.WfBusinessFormVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 发起流程Mapper接口 + * + * @author may + * @date 2023-09-16 + */ +public interface WfBusinessFormMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/package-info.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/package-info.java deleted file mode 100644 index 580707211..000000000 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package org.dromara.workflow.mapper; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java new file mode 100644 index 000000000..010e04111 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java @@ -0,0 +1,49 @@ +package org.dromara.workflow.service; + +import org.dromara.workflow.domain.WfBusinessForm; +import org.dromara.workflow.domain.vo.WfBusinessFormVo; +import org.dromara.workflow.domain.bo.WfBusinessFormBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 发起流程Service接口 + * + * @author may + * @date 2023-09-16 + */ +public interface IWfBusinessFormService { + + /** + * 查询发起流程 + */ + WfBusinessFormVo queryById(Long id); + + /** + * 查询发起流程列表 + */ + TableDataInfo queryPageList(WfBusinessFormBo bo, PageQuery pageQuery); + + /** + * 查询发起流程列表 + */ + List queryList(WfBusinessFormBo bo); + + /** + * 新增发起流程 + */ + WfBusinessForm insertByBo(WfBusinessFormBo bo); + + /** + * 修改发起流程 + */ + WfBusinessForm updateByBo(WfBusinessFormBo bo); + + /** + * 校验并批量删除发起流程信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java new file mode 100644 index 000000000..c6c0a7610 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java @@ -0,0 +1,124 @@ +package org.dromara.workflow.service.impl; + +import com.fasterxml.jackson.core.type.TypeReference; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.workflow.domain.bo.WfBusinessFormBo; +import org.dromara.workflow.domain.vo.WfBusinessFormVo; +import org.dromara.workflow.domain.WfBusinessForm; +import org.dromara.workflow.mapper.WfBusinessFormMapper; +import org.dromara.workflow.service.IWfBusinessFormService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 发起流程Service业务层处理 + * + * @author may + * @date 2023-09-16 + */ +@RequiredArgsConstructor +@Service +public class WfBusinessFormServiceImpl implements IWfBusinessFormService { + + private final WfBusinessFormMapper baseMapper; + + /** + * 查询发起流程 + */ + @Override + public WfBusinessFormVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 查询发起流程列表 + */ + @Override + public TableDataInfo queryPageList(WfBusinessFormBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询发起流程列表 + */ + @Override + public List queryList(WfBusinessFormBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WfBusinessFormBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getApplyCode()), WfBusinessForm::getApplyCode, bo.getApplyCode()); + lqw.like(StringUtils.isNotBlank(bo.getFormName()), WfBusinessForm::getFormName, bo.getFormName()); + return lqw; + } + + /** + * 新增发起流程 + */ + @Override + public WfBusinessForm insertByBo(WfBusinessFormBo bo) { + WfBusinessForm add = MapstructUtils.convert(bo, WfBusinessForm.class); + validEntityBeforeSave(add); + add.setApplyCode(DateUtils.dateTimeNow()); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + if (StringUtils.isNotBlank(add.getContentValue())) { + Map variable = JsonUtils.parseObject(add.getContentValue(), new TypeReference<>() { + }); + add.setVariable(variable); + } + return add; + } + + /** + * 修改发起流程 + */ + @Override + public WfBusinessForm updateByBo(WfBusinessFormBo bo) { + WfBusinessForm update = MapstructUtils.convert(bo, WfBusinessForm.class); + validEntityBeforeSave(update); + baseMapper.updateById(update); + if (StringUtils.isNotBlank(update.getContentValue())) { + Map variable = JsonUtils.parseObject(update.getContentValue(), new TypeReference<>() { + }); + update.setVariable(variable); + } + return update; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WfBusinessForm entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除发起流程 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} 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 index e86427976..1a7aacb1d 100644 --- 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 @@ -24,7 +24,6 @@ import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; -import java.util.Map; /** * 流程表单Service业务层处理 @@ -47,7 +46,14 @@ public class WfFormServiceImpl implements IWfFormService { */ @Override public WfFormVo queryById(Long formId) { - return baseMapper.selectVoById(formId); + WfFormVo wfFormVo = baseMapper.selectVoById(formId); + if (wfFormVo != null) { + WfFormDefinitionVo wfFormDefinitionVo = wfFormDefinitionMapper.selectVoOne( + new LambdaQueryWrapper().eq(WfFormDefinition::getFormId, wfFormVo.getFormId()) + ); + wfFormVo.setWfFormDefinitionVo(wfFormDefinitionVo); + } + return wfFormVo; } /** @@ -61,14 +67,14 @@ public class WfFormServiceImpl implements IWfFormService { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); List records = result.getRecords(); - if(CollUtil.isNotEmpty(records)){ + if (CollUtil.isNotEmpty(records)) { List formIds = StreamUtils.toList(records, WfFormVo::getFormId); List wfFormDefinitionVos = wfFormDefinitionMapper.selectVoList( new LambdaQueryWrapper().in(WfFormDefinition::getFormId, formIds) ); for (WfFormVo record : records) { - if(CollUtil.isNotEmpty(wfFormDefinitionVos)){ - wfFormDefinitionVos.stream().filter(e->String.valueOf(e.getFormId()).equals(String.valueOf(record.getFormId()))).findFirst().ifPresent(record::setWfFormDefinitionVo); + if (CollUtil.isNotEmpty(wfFormDefinitionVos)) { + wfFormDefinitionVos.stream().filter(e -> String.valueOf(e.getFormId()).equals(String.valueOf(record.getFormId()))).findFirst().ifPresent(record::setWfFormDefinitionVo); } } } @@ -127,7 +133,6 @@ public class WfFormServiceImpl implements IWfFormService { } 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/WfBusinessFormMapper.xml b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfBusinessFormMapper.xml new file mode 100644 index 000000000..f8ec725f6 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfBusinessFormMapper.xml @@ -0,0 +1,7 @@ + + + + + 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 index 5d3a0c955..e9ee055c1 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfFormMapper.xml +++ b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/WfFormMapper.xml @@ -4,7 +4,4 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql index 7d9210254..043a8e6eb 100644 --- a/script/sql/ry_vue_5.X.sql +++ b/script/sql/ry_vue_5.X.sql @@ -289,12 +289,14 @@ insert into sys_menu values('115', '代码生成', '3', '2', 'gen', insert into sys_menu values('121', '租户管理', '6', '1', 'tenant', 'system/tenant/index', '', 1, 0, 'C', '0', '0', 'system:tenant:list', 'list', 103, 1, sysdate(), null, null, '租户管理菜单'); insert into sys_menu values('122', '租户套餐管理', '6', '2', 'tenantPackage', 'system/tenantPackage/index', '', 1, 0, 'C', '0', '0', 'system:tenantPackage:list', 'form', 103, 1, sysdate(), null, null, '租户套餐管理菜单'); insert into sys_menu values('123', '客户端管理', '1', '11', 'client', 'system/client/index', '', 1, 0, 'C', '0', '0', 'system:client:list', 'international', 103, 1, sysdate(), null, null, '客户端管理菜单'); -insert into sys_menu values('1617', '模型管理', '1616', '1', 'model', 'workflow/model/index', '', 1, 1, 'C', '0', '0', 'workflow:model:list', 'tree-table', 103, 1, sysdate(), null, null, '模型管理菜单'); -insert into sys_menu values('1618', '我的待办', '1616', '4', 'task', '', '', 1, 0, 'M', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '我的待办菜单'); -insert into sys_menu values('1620', '流程定义', '1616', '2', 'processDefinition', 'workflow/processDefinition/index', '', 1, 1, 'C', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '流程定义菜单'); insert into sys_menu values('1622', '流程分类', '1616', '1', 'category', 'workflow/category/index', '', 1, 0, 'C', '0', '0', 'workflow:category:list', 'tree-table', 103, 1, sysdate(), null, null, '流程分类菜单'); -insert into sys_menu values('1628', '动态表单', '1616', '5', 'form', 'workflow/form/index', '', 1, 1, 'C', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '动态表单菜单'); -insert into sys_menu values('1630', '流程监控', '1616', '3', 'monitor', '', '', 1, 0, 'M', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '流程监控菜单'); +insert into sys_menu values('1617', '模型管理', '1616', '2', 'model', 'workflow/model/index', '', 1, 1, 'C', '0', '0', 'workflow:model:list', 'tree-table', 103, 1, sysdate(), null, null, '模型管理菜单'); +insert into sys_menu values('1620', '流程定义', '1616', '3', 'processDefinition', 'workflow/processDefinition/index', '', 1, 1, 'C', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '流程定义菜单'); +insert into sys_menu values('1630', '流程监控', '1616', '4', 'monitor', '', '', 1, 0, 'M', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '流程监控菜单'); +insert into sys_menu values('1618', '我的待办', '1616', '5', 'task', '', '', 1, 0, 'M', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '我的待办菜单'); +insert into sys_menu values('1628', '动态表单', '1616', '6', 'form', 'workflow/form/index', '', 1, 1, 'C', '0', '0', '', 'tree-table', 103, 1, sysdate(), null, null, '动态表单菜单'); +insert into sys_menu values('1638', '发起流程', '1616', '7', 'businessForm', 'workflow/businessForm/index', '', 1, 1, 'C', '0', '0', 'workflow:businessForm:list', 'tree-table', 103, 1, sysdate(), null, null, '发起流程菜单'); +insert into sys_menu values('1639', '我的单据', '1616', '8', 'businessFormList', 'workflow/businessForm/list', '', 1, 1, 'C', '0', '0', 'workflow:businessForm:list', 'tree-table', 103, 1, sysdate(), null, null, '我的单据菜单'); -- springboot-admin监控 insert into sys_menu values('117', 'Admin监控', '2', '5', 'Admin', 'monitor/admin/index', '', 1, 0, 'C', '0', '0', 'monitor:admin:list', 'dashboard', 103, 1, sysdate(), null, null, 'Admin监控菜单'); @@ -414,6 +416,12 @@ insert into sys_menu values('1062', '客户端管理新增', '123', '2', '#', ' insert into sys_menu values('1063', '客户端管理修改', '123', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:edit', '#', 103, 1, sysdate(), null, null, ''); insert into sys_menu values('1064', '客户端管理删除', '123', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:remove', '#', 103, 1, sysdate(), null, null, ''); insert into sys_menu values('1065', '客户端管理导出', '123', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:export', '#', 103, 1, sysdate(), null, null, ''); +-- 发起流程按钮 +insert into sys_menu values('1640', '发起流程查询', '1638', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:businessForm:query', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('1641', '发起流程新增', '1638', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:businessForm:add', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('1642', '发起流程修改', '1638', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:businessForm:edit', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('1643', '发起流程删除', '1638', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:businessForm:remove','#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('1644', '发起流程导出', '1638', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:businessForm:export','#', 103, 1, sysdate(), null, null, ''); -- ---------------------------- -- 6、用户和角色关联表 用户N-1角色 @@ -940,6 +948,28 @@ create table wf_form_definition update_time datetime null comment '更新时间' ) engine=innodb comment= '动态表单与流程定义关联信息'; +-- ---------------------------- +-- 业务单据表 +-- ---------------------------- +drop table if exists wf_business_form; +create table wf_business_form +( + id bigint not null comment '主键' + primary key, + apply_code varchar(255) not null comment '申请编码', + form_id bigint not null comment '表单id', + form_name varchar(255) not null comment '表单名称', + content longtext not null comment '表单内容', + tenant_id varchar(20) default '000000' null comment '租户编号', + create_dept bigint null comment '创建部门', + create_by bigint null comment '创建者', + create_time datetime null comment '创建时间', + update_by bigint null comment '更新者', + update_time datetime null comment '更新时间', + content_value longtext null comment '表单值' +) engine=innodb comment= '业务单据表'; + + -- ---------------------------- -- 系统授权表 -- ----------------------------