瀏覽代碼

WfForm =》BpmForm

YunaiV 3 年之前
父節點
當前提交
7ef86c14c0
共有 23 個文件被更改,包括 275 次插入404 次删除
  1. 0 36
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/convert/form/WfFormConvert.java
  2. 0 57
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/dal/dataobject/form/WfForm.java
  3. 0 55
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/dal/dataobject/form/WfFormData.java
  4. 0 14
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/enums/form/WfFormErrorCodeConstants.java
  5. 0 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/package-info.java
  6. 0 75
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/service/form/WfFormService.java
  7. 0 86
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/service/form/impl/WfFormServiceImpl.java
  8. 30 31
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/BpmFormController.java
  9. 2 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormBaseVO.java
  10. 2 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormCreateReqVO.java
  11. 5 5
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormExcelVO.java
  12. 2 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormExportReqVO.java
  13. 2 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormPageReqVO.java
  14. 2 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormRespVO.java
  15. 2 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormUpdateReqVO.java
  16. 36 0
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/form/BpmFormConvert.java
  17. 8 0
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/form/BpmForm.java
  18. 5 1
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/form/BpmFormData.java
  19. 11 12
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/form/BpmFormMapper.java
  20. 4 2
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
  21. 76 0
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/form/BpmFormService.java
  22. 85 0
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/form/BpmFormServiceImpl.java
  23. 3 16
      yudao-framework/yudao-spring-boot-starter-activiti/src/main/java/cn/iocoder/yudao/framework/activiti/config/YudaoActivitiConfiguration.java

+ 0 - 36
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/convert/form/WfFormConvert.java

@@ -1,36 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.convert.form;
-
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExcelVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormRespVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * 动态表单 Convert
- *
- * @author 芋艿
- */
-@Mapper
-public interface WfFormConvert {
-
-    WfFormConvert INSTANCE = Mappers.getMapper(WfFormConvert.class);
-
-    WfForm convert(WfFormCreateReqVO bean);
-
-    WfForm convert(WfFormUpdateReqVO bean);
-
-    WfFormRespVO convert(WfForm bean);
-
-    List<WfFormRespVO> convertList(List<WfForm> list);
-
-    PageResult<WfFormRespVO> convertPage(PageResult<WfForm> page);
-
-    List<WfFormExcelVO> convertList02(List<WfForm> list);
-
-}

+ 0 - 57
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/dal/dataobject/form/WfForm.java

@@ -1,57 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form;
-
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
-import lombok.*;
-
-import java.util.List;
-
-/**
- * 工作流的表单定义
- * 用于工作流的申请表单,需要动态配置的场景
- *
- * @author 芋道源码
- */
-@TableName(value = "wf_form", autoResultMap = true)
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class WfForm extends BaseDO {
-
-    /**
-     * 编号
-     */
-    @TableId
-    private Long id;
-    /**
-     * 表单名
-     */
-    private String name;
-    /**
-     * 状态
-     */
-    private Integer status;
-    /**
-     * 表单JSON
-     */
-    private String formJson;
-    /**
-     * 表单配置
-     *
-     * 目前直接将 https://github.com/JakHuang/form-generator 生成的 JSON 串,直接保存
-     * 定义:https://github.com/JakHuang/form-generator/issues/46
-     */
-    @TableField(typeHandler = JacksonTypeHandler.class)
-    private List<String> fields;
-    /**
-     * 备注
-     */
-    private String remark;
-
-}

+ 0 - 55
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/dal/dataobject/form/WfFormData.java

@@ -1,55 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form;
-
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
-import lombok.*;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * 工作流的表单结果
- * 用户每次填写工作流的申请表单时,会保存一条记录到该表】
- *
- * @author 芋道源码
- */
-@TableName(value = "wf_form", autoResultMap = true)
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class WfFormData extends BaseDO {
-
-    /**
-     * 编号
-     */
-    private Long id;
-    /**
-     * 表单编号
-     *
-     * 关联 {@link WfForm#getId()}
-     */
-    private Long formId;
-    /**
-     * 状态
-     */
-    private Integer status;
-    /**
-     * 表单配置
-     *
-     * 冗余 {@link WfForm#getFields()}
-     * 主要考虑,表单是可以修改的
-     */
-    @TableField(typeHandler = JacksonTypeHandler.class)
-    private List<String> fields;
-    /**
-     * 表单值
-     */
-    @TableField(typeHandler = JacksonTypeHandler.class)
-    private Map<String, Object> values;
-
-}

+ 0 - 14
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/enums/form/WfFormErrorCodeConstants.java

@@ -1,14 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.enums.form;
-
-import cn.iocoder.yudao.framework.common.exception.ErrorCode;
-
-/**
- * activiti 系统 错误码枚举类
- *
- * 003 activiti
- * 001 oa
- * activiti 系统,使用 1-003-000-000 段
- */
-public interface WfFormErrorCodeConstants {
-    ErrorCode FORM_NOT_EXISTS = new ErrorCode(1003001002, "动态表单不存在");
-}

+ 0 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/package-info.java

@@ -1,2 +0,0 @@
-// TODO @芋艿:思考下 activiti、oa 的定位,边界,模块的拆分
-package cn.iocoder.yudao.adminserver.modules.activiti;

+ 0 - 75
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/service/form/WfFormService.java

@@ -1,75 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.service.form;
-
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExportReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-
-import java.util.*;
-import javax.validation.*;
-
-
-/**
- * 动态表单 Service 接口
- *
- * TODO @风里雾里
- */
-public interface WfFormService {
-
-    /**
-     * 创建动态表单
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createForm(@Valid WfFormCreateReqVO createReqVO);
-
-    /**
-     * 更新动态表单
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateForm(@Valid WfFormUpdateReqVO updateReqVO);
-
-    /**
-     * 删除动态表单
-     *
-     * @param id 编号
-     */
-    void deleteForm(Long id);
-
-    /**
-     * 获得动态表单
-     *
-     * @param id 编号
-     * @return 动态表单
-     */
-    WfForm getForm(Long id);
-
-    /**
-     * 获得动态表单列表
-     *
-     * @param ids 编号
-     * @return 动态表单列表
-     */
-    List<WfForm> getFormList(Collection<Long> ids);
-
-    /**
-     * 获得动态表单分页
-     *
-     * @param pageReqVO 分页查询
-     * @return 动态表单分页
-     */
-    PageResult<WfForm> getFormPage(WfFormPageReqVO pageReqVO);
-
-    /**
-     * 获得动态表单列表, 用于 Excel 导出
-     *
-     * @param exportReqVO 查询条件
-     * @return 动态表单列表
-     */
-    List<WfForm> getFormList(WfFormExportReqVO exportReqVO);
-
-}

+ 0 - 86
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/service/form/impl/WfFormServiceImpl.java

@@ -1,86 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.service.form.impl;
-
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExportReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.convert.form.WfFormConvert;
-import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm;
-import cn.iocoder.yudao.adminserver.modules.activiti.dal.mysql.form.WfFormMapper;
-import cn.iocoder.yudao.adminserver.modules.activiti.service.form.WfFormService;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.List;
-
-import static cn.iocoder.yudao.adminserver.modules.activiti.enums.form.WfFormErrorCodeConstants.FORM_NOT_EXISTS;
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-
-/**
- * 动态表单 Service 实现类
- *
- * TODO @风里雾里
- */
-@Service
-@Validated
-public class WfFormServiceImpl implements WfFormService {
-
-    @Resource
-    private WfFormMapper formMapper;
-
-    @Override
-    public Long createForm(WfFormCreateReqVO createReqVO) {
-        // 插入
-        WfForm form = WfFormConvert.INSTANCE.convert(createReqVO);
-        formMapper.insert(form);
-        // 返回
-        return form.getId();
-    }
-
-    @Override
-    public void updateForm(WfFormUpdateReqVO updateReqVO) {
-        // 校验存在
-        this.validateFormExists(updateReqVO.getId());
-        // 更新
-        WfForm updateObj = WfFormConvert.INSTANCE.convert(updateReqVO);
-        formMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteForm(Long id) {
-        // 校验存在
-        this.validateFormExists(id);
-        // 删除
-        formMapper.deleteById(id);
-    }
-
-    private void validateFormExists(Long id) {
-        if (formMapper.selectById(id) == null) {
-            throw exception(FORM_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public WfForm getForm(Long id) {
-        return formMapper.selectById(id);
-    }
-
-    @Override
-    public List<WfForm> getFormList(Collection<Long> ids) {
-        return formMapper.selectBatchIds(ids);
-    }
-
-    @Override
-    public PageResult<WfForm> getFormPage(WfFormPageReqVO pageReqVO) {
-        return formMapper.selectPage(pageReqVO);
-    }
-
-    @Override
-    public List<WfForm> getFormList(WfFormExportReqVO exportReqVO) {
-        return formMapper.selectList(exportReqVO);
-    }
-
-}

+ 30 - 31
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/WlFormController.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/BpmFormController.java

@@ -1,9 +1,9 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form;
 
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.*;
-import cn.iocoder.yudao.adminserver.modules.activiti.convert.form.WfFormConvert;
-import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm;
-import cn.iocoder.yudao.adminserver.modules.activiti.service.form.WfFormService;
+import cn.iocoder.yudao.adminserver.modules.bpm.convert.form.BpmFormConvert;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmForm;
+import cn.iocoder.yudao.adminserver.modules.bpm.service.form.BpmFormService;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.*;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -25,27 +25,26 @@ import java.util.List;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
 
-// TODO @风里雾里: Os=》Wf,/os 改成 /wl 开头。目前这个模块,咱先定位成给工作流用的
 @Api(tags = "动态表单")
 @RestController
-@RequestMapping("/wl/form")
+@RequestMapping("/bpm/form")
 @Validated
-public class WlFormController {
+public class BpmFormController {
 
     @Resource
-    private WfFormService formService;
+    private BpmFormService formService;
 
     @PostMapping("/create")
     @ApiOperation("创建动态表单")
-    @PreAuthorize("@ss.hasPermission('os:form:create')")
-    public CommonResult<Long> createForm(@Valid @RequestBody WfFormCreateReqVO createReqVO) {
+    @PreAuthorize("@ss.hasPermission('bpm:form:create')")
+    public CommonResult<Long> createForm(@Valid @RequestBody BpmFormCreateReqVO createReqVO) {
         return success(formService.createForm(createReqVO));
     }
 
     @PutMapping("/update")
     @ApiOperation("更新动态表单")
-    @PreAuthorize("@ss.hasPermission('os:form:update')")
-    public CommonResult<Boolean> updateForm(@Valid @RequestBody WfFormUpdateReqVO updateReqVO) {
+    @PreAuthorize("@ss.hasPermission('bpm:form:update')")
+    public CommonResult<Boolean> updateForm(@Valid @RequestBody BpmFormUpdateReqVO updateReqVO) {
         formService.updateForm(updateReqVO);
         return success(true);
     }
@@ -53,7 +52,7 @@ public class WlFormController {
     @DeleteMapping("/delete")
     @ApiOperation("删除动态表单")
     @ApiImplicitParam(name = "id", value = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('os:form:delete')")
+    @PreAuthorize("@ss.hasPermission('bpm:form:delete')")
     public CommonResult<Boolean> deleteForm(@RequestParam("id") Long id) {
         formService.deleteForm(id);
         return success(true);
@@ -62,39 +61,39 @@ public class WlFormController {
     @GetMapping("/get")
     @ApiOperation("获得动态表单")
     @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
-    @PreAuthorize("@ss.hasPermission('os:form:query')")
-    public CommonResult<WfFormRespVO> getForm(@RequestParam("id") Long id) {
-        WfForm form = formService.getForm(id);
-        return success(WfFormConvert.INSTANCE.convert(form));
+    @PreAuthorize("@ss.hasPermission('bpm:form:query')")
+    public CommonResult<BpmFormRespVO> getForm(@RequestParam("id") Long id) {
+        BpmForm form = formService.getForm(id);
+        return success(BpmFormConvert.INSTANCE.convert(form));
     }
 
     @GetMapping("/list")
     @ApiOperation("获得动态表单列表")
     @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
-    @PreAuthorize("@ss.hasPermission('os:form:query')")
-    public CommonResult<List<WfFormRespVO>> getFormList(@RequestParam("ids") Collection<Long> ids) {
-        List<WfForm> list = formService.getFormList(ids);
-        return success(WfFormConvert.INSTANCE.convertList(list));
+    @PreAuthorize("@ss.hasPermission('bpm:form:query')")
+    public CommonResult<List<BpmFormRespVO>> getFormList(@RequestParam("ids") Collection<Long> ids) {
+        List<BpmForm> list = formService.getFormList(ids);
+        return success(BpmFormConvert.INSTANCE.convertList(list));
     }
 
     @GetMapping("/page")
     @ApiOperation("获得动态表单分页")
-    @PreAuthorize("@ss.hasPermission('os:form:query')")
-    public CommonResult<PageResult<WfFormRespVO>> getFormPage(@Valid WfFormPageReqVO pageVO) {
-        PageResult<WfForm> pageResult = formService.getFormPage(pageVO);
-        return success(WfFormConvert.INSTANCE.convertPage(pageResult));
+    @PreAuthorize("@ss.hasPermission('bpm:form:query')")
+    public CommonResult<PageResult<BpmFormRespVO>> getFormPage(@Valid BpmFormPageReqVO pageVO) {
+        PageResult<BpmForm> pageResult = formService.getFormPage(pageVO);
+        return success(BpmFormConvert.INSTANCE.convertPage(pageResult));
     }
 
     @GetMapping("/export-excel")
     @ApiOperation("导出动态表单 Excel")
-    @PreAuthorize("@ss.hasPermission('os:form:export')")
+    @PreAuthorize("@ss.hasPermission('bpm:form:export')")
     @OperateLog(type = EXPORT)
-    public void exportFormExcel(@Valid WfFormExportReqVO exportReqVO,
+    public void exportFormExcel(@Valid BpmFormExportReqVO exportReqVO,
               HttpServletResponse response) throws IOException {
-        List<WfForm> list = formService.getFormList(exportReqVO);
+        List<BpmForm> list = formService.getFormList(exportReqVO);
         // 导出 Excel
-        List<WfFormExcelVO> datas = WfFormConvert.INSTANCE.convertList02(list);
-        ExcelUtils.write(response, "动态表单.xls", "数据", WfFormExcelVO.class, datas);
+        List<BpmFormExcelVO> datas = BpmFormConvert.INSTANCE.convertList02(list);
+        ExcelUtils.write(response, "动态表单.xls", "数据", BpmFormExcelVO.class, datas);
     }
 
 }

+ 2 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/vo/WfFormBaseVO.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormBaseVO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo;
 
 import lombok.*;
 import io.swagger.annotations.*;
@@ -9,7 +9,7 @@ import javax.validation.constraints.*;
 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
 */
 @Data
-public class WfFormBaseVO {
+public class BpmFormBaseVO {
 
     @ApiModelProperty(value = "表单名称", required = true)
     @NotNull(message = "表单名称不能为空")

+ 2 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/vo/WfFormCreateReqVO.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormCreateReqVO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo;
 
 import lombok.*;
 import io.swagger.annotations.*;
@@ -7,6 +7,6 @@ import io.swagger.annotations.*;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
-public class WfFormCreateReqVO extends WfFormBaseVO {
+public class BpmFormCreateReqVO extends BpmFormBaseVO {
 
 }

+ 5 - 5
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/vo/WfFormExcelVO.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormExcelVO.java

@@ -1,9 +1,9 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo;
-
-import lombok.*;
-import java.util.*;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
 
 /**
  * 动态表单 Excel VO
@@ -11,7 +11,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
  * @author 芋艿
  */
 @Data
-public class WfFormExcelVO {
+public class BpmFormExcelVO {
 
     @ExcelProperty("表单编号")
     private Long id;

+ 2 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/vo/WfFormExportReqVO.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormExportReqVO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo;
 
 import lombok.*;
 import java.util.*;
@@ -8,7 +8,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
 
 @ApiModel(value = "动态表单 Excel 导出 Request VO", description = "参数和 OsFormPageReqVO 是一致的")
 @Data
-public class WfFormExportReqVO {
+public class BpmFormExportReqVO {
 
     @ApiModelProperty(value = "表单名称")
     private String name;

+ 2 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/vo/WfFormPageReqVO.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormPageReqVO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo;
 
 import lombok.*;
 import java.util.*;
@@ -11,7 +11,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
-public class WfFormPageReqVO extends PageParam {
+public class BpmFormPageReqVO extends PageParam {
 
     @ApiModelProperty(value = "表单名称")
     private String name;

+ 2 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/vo/WfFormRespVO.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormRespVO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo;
 
 import lombok.*;
 import java.util.*;
@@ -8,7 +8,7 @@ import io.swagger.annotations.*;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
-public class WfFormRespVO extends WfFormBaseVO {
+public class BpmFormRespVO extends BpmFormBaseVO {
 
     @ApiModelProperty(value = "表单编号", required = true)
     private Long id;

+ 2 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/form/vo/WfFormUpdateReqVO.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/form/vo/BpmFormUpdateReqVO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo;
+package cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo;
 
 import lombok.*;
 import io.swagger.annotations.*;
@@ -8,7 +8,7 @@ import javax.validation.constraints.*;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
-public class WfFormUpdateReqVO extends WfFormBaseVO {
+public class BpmFormUpdateReqVO extends BpmFormBaseVO {
 
     @ApiModelProperty(value = "表单编号", required = true)
     @NotNull(message = "表单编号不能为空")

+ 36 - 0
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/form/BpmFormConvert.java

@@ -0,0 +1,36 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.convert.form;
+
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormExcelVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormRespVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmForm;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * 动态表单 Convert
+ *
+ * @author 芋艿
+ */
+@Mapper
+public interface BpmFormConvert {
+
+    BpmFormConvert INSTANCE = Mappers.getMapper(BpmFormConvert.class);
+
+    BpmForm convert(BpmFormCreateReqVO bean);
+
+    BpmForm convert(BpmFormUpdateReqVO bean);
+
+    BpmFormRespVO convert(BpmForm bean);
+
+    List<BpmFormRespVO> convertList(List<BpmForm> list);
+
+    PageResult<BpmFormRespVO> convertPage(PageResult<BpmForm> page);
+
+    List<BpmFormExcelVO> convertList02(List<BpmForm> list);
+
+}

+ 8 - 0
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/form/BpmForm.java

@@ -33,6 +33,14 @@ public class BpmForm extends BaseDO {
      * 表单名
      */
     private String name;
+    /**
+     * 状态
+     */
+    private Integer status;
+    /**
+     * 表单JSON
+     */
+    private String formJson;
     /**
      * 表单配置
      *

+ 5 - 1
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/form/BpmFormData.java

@@ -15,7 +15,7 @@ import java.util.Map;
  *
  * @author 芋道源码
  */
-@TableName(value = "wf_form", autoResultMap = true)
+@TableName(value = "bpm_form_data", autoResultMap = true)
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
@@ -34,6 +34,10 @@ public class BpmFormData extends BaseDO {
      * 关联 {@link BpmForm#getId()}
      */
     private Long formId;
+    /**
+     * 状态
+     */
+    private Integer status;
     /**
      * 表单配置
      *

+ 11 - 12
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/dal/mysql/form/WfFormMapper.java → yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/form/BpmFormMapper.java

@@ -1,10 +1,9 @@
-package cn.iocoder.yudao.adminserver.modules.activiti.dal.mysql.form;
+package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.form;
 
 
-
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExportReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormExportReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmForm;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
@@ -18,26 +17,26 @@ import java.util.List;
  * @author 风里雾里
  */
 @Mapper
-public interface WfFormMapper extends BaseMapperX<WfForm> {
+public interface BpmFormMapper extends BaseMapperX<BpmForm> {
 
-    default PageResult<WfForm> selectPage(WfFormPageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<WfForm>()
+    default PageResult<BpmForm> selectPage(BpmFormPageReqVO reqVO) {
+        return selectPage(reqVO, new QueryWrapperX<BpmForm>()
                 .likeIfPresent("name", reqVO.getName())
                 .eqIfPresent("status", reqVO.getStatus())
                 .eqIfPresent("form_json", reqVO.getFormJson())
                 .eqIfPresent("remark", reqVO.getRemark())
                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-                .orderByDesc("id")        );
+                .orderByDesc("id"));
     }
 
-    default List<WfForm> selectList(WfFormExportReqVO reqVO) {
-        return selectList(new QueryWrapperX<WfForm>()
+    default List<BpmForm> selectList(BpmFormExportReqVO reqVO) {
+        return selectList(new QueryWrapperX<BpmForm>()
                 .likeIfPresent("name", reqVO.getName())
                 .eqIfPresent("status", reqVO.getStatus())
                 .eqIfPresent("form_json", reqVO.getFormJson())
                 .eqIfPresent("remark", reqVO.getRemark())
                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-                .orderByDesc("id")        );
+                .orderByDesc("id"));
     }
 
 }

+ 4 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java

@@ -23,11 +23,13 @@ public interface BpmErrorCodeConstants {
     ErrorCode OA_HR_POST_NOT_EXISTS = new ErrorCode(1003001006, "HR岗位未设置");
     ErrorCode OA_DAY_LEAVE_ERROR = new ErrorCode(1003001007, "请假天数必须>=1");
 
-
-    // ========== OA 工作流模块 1-004-001-000 ==========
+    // ========== OA 工作流模块 1-003-002-000 ==========
     ErrorCode BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS = new ErrorCode(1004001001, "模型数据为空,请先成功设计流程并保存");
     ErrorCode BPMN_MODEL_ERROR = new ErrorCode(1004001002, "工作流模型异常");
     ErrorCode BPMN_MODEL_PROCESS_NOT_EXISTS = new ErrorCode(1004001003, "流程数据为空");
     ErrorCode BPMN_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1004001004, "流程定义不存在");
 
+    // ========== 动态表单模块 1-003-003-000 ==========
+    ErrorCode BPM_FORM_NOT_EXISTS = new ErrorCode(1003001002, "动态表单不存在");
+
 }

+ 76 - 0
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/form/BpmFormService.java

@@ -0,0 +1,76 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.service.form;
+
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormExportReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmForm;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+
+import javax.validation.Valid;
+import java.util.Collection;
+import java.util.List;
+
+
+/**
+ * 动态表单 Service 接口
+ *
+ * @author  @风里雾里
+ */
+public interface BpmFormService {
+
+    /**
+     * 创建动态表单
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createForm(@Valid BpmFormCreateReqVO createReqVO);
+
+    /**
+     * 更新动态表单
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateForm(@Valid BpmFormUpdateReqVO updateReqVO);
+
+    /**
+     * 删除动态表单
+     *
+     * @param id 编号
+     */
+    void deleteForm(Long id);
+
+    /**
+     * 获得动态表单
+     *
+     * @param id 编号
+     * @return 动态表单
+     */
+    BpmForm getForm(Long id);
+
+    /**
+     * 获得动态表单列表
+     *
+     * @param ids 编号
+     * @return 动态表单列表
+     */
+    List<BpmForm> getFormList(Collection<Long> ids);
+
+    /**
+     * 获得动态表单分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 动态表单分页
+     */
+    PageResult<BpmForm> getFormPage(BpmFormPageReqVO pageReqVO);
+
+    /**
+     * 获得动态表单列表, 用于 Excel 导出
+     *
+     * @param exportReqVO 查询条件
+     * @return 动态表单列表
+     */
+    List<BpmForm> getFormList(BpmFormExportReqVO exportReqVO);
+
+}

+ 85 - 0
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/form/BpmFormServiceImpl.java

@@ -0,0 +1,85 @@
+package cn.iocoder.yudao.adminserver.modules.bpm.service.form;
+
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormCreateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormExportReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormPageReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.form.vo.BpmFormUpdateReqVO;
+import cn.iocoder.yudao.adminserver.modules.bpm.convert.form.BpmFormConvert;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmForm;
+import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.form.BpmFormMapper;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.List;
+
+import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.BPM_FORM_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+/**
+ * 动态表单 Service 实现类
+ *
+ * @author 风里雾里
+ */
+@Service
+@Validated
+public class BpmFormServiceImpl implements BpmFormService {
+
+    @Resource
+    private BpmFormMapper formMapper;
+
+    @Override
+    public Long createForm(BpmFormCreateReqVO createReqVO) {
+        // 插入
+        BpmForm form = BpmFormConvert.INSTANCE.convert(createReqVO);
+        formMapper.insert(form);
+        // 返回
+        return form.getId();
+    }
+
+    @Override
+    public void updateForm(BpmFormUpdateReqVO updateReqVO) {
+        // 校验存在
+        this.validateFormExists(updateReqVO.getId());
+        // 更新
+        BpmForm updateObj = BpmFormConvert.INSTANCE.convert(updateReqVO);
+        formMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteForm(Long id) {
+        // 校验存在
+        this.validateFormExists(id);
+        // 删除
+        formMapper.deleteById(id);
+    }
+
+    private void validateFormExists(Long id) {
+        if (formMapper.selectById(id) == null) {
+            throw exception(BPM_FORM_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public BpmForm getForm(Long id) {
+        return formMapper.selectById(id);
+    }
+
+    @Override
+    public List<BpmForm> getFormList(Collection<Long> ids) {
+        return formMapper.selectBatchIds(ids);
+    }
+
+    @Override
+    public PageResult<BpmForm> getFormPage(BpmFormPageReqVO pageReqVO) {
+        return formMapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    public List<BpmForm> getFormList(BpmFormExportReqVO exportReqVO) {
+        return formMapper.selectList(exportReqVO);
+    }
+
+}

+ 3 - 16
yudao-framework/yudao-spring-boot-starter-activiti/src/main/java/cn/iocoder/yudao/framework/activiti/config/YudaoActivitiConfiguration.java

@@ -1,14 +1,11 @@
 package cn.iocoder.yudao.framework.activiti.config;
 
-import lombok.AllArgsConstructor;
 import org.activiti.image.ProcessDiagramGenerator;
 import org.activiti.image.impl.DefaultProcessDiagramGenerator;
-import org.activiti.spring.SpringProcessEngineConfiguration;
 import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.stereotype.Component;
 
 @Configuration
 public class YudaoActivitiConfiguration {
@@ -24,19 +21,9 @@ public class YudaoActivitiConfiguration {
     /**
      * ProcessEngineConfigurationConfigurer 实现类,设置使用 MyBatis SqlSessionFactory
      */
-    @Component
-    @AllArgsConstructor
-    public static class SqlSessionFactoryProcessEngineConfigurationConfigurer
-            implements ProcessEngineConfigurationConfigurer {
-
-        private final SqlSessionFactory sqlSessionFactory;
-
-        @Override
-        public void configure(SpringProcessEngineConfiguration springProcessEngineConfiguration) {
-            springProcessEngineConfiguration.setSqlSessionFactory(sqlSessionFactory);
-        }
-
+    @Bean
+    public ProcessEngineConfigurationConfigurer processEngineConfigurationConfigurer(SqlSessionFactory sqlSessionFactory) {
+        return springProcessEngineConfiguration -> springProcessEngineConfiguration.setSqlSessionFactory(sqlSessionFactory);
     }
 
-
 }