Browse Source

添加表单、表单关联模块

master
Yen 3 years ago
parent
commit
a9f6aa6580
  1. 3
      src/main/java/com/qs/serve/common/model/enums/SystemModule.java
  2. 26
      src/main/java/com/qs/serve/modules/bpm/controller/BpmFlowDefinitionController.java
  3. 103
      src/main/java/com/qs/serve/modules/bpm/controller/BpmFormController.java
  4. 103
      src/main/java/com/qs/serve/modules/bpm/controller/BpmTaskFormController.java
  5. 76
      src/main/java/com/qs/serve/modules/bpm/entity/BpmForm.java
  6. 76
      src/main/java/com/qs/serve/modules/bpm/entity/BpmTaskForm.java
  7. 2
      src/main/java/com/qs/serve/modules/bpm/entity/dto/BpmnDto.java
  8. 2
      src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowCommentDto.java
  9. 2
      src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowFromFieldDTO.java
  10. 2
      src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowNextDto.java
  11. 71
      src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowProcDefDto.java
  12. 2
      src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowTaskDto.java
  13. 2
      src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowViewerDto.java
  14. 2
      src/main/java/com/qs/serve/modules/bpm/entity/vo/FlowTaskVo.java
  15. 14
      src/main/java/com/qs/serve/modules/bpm/mapper/BpmFormMapper.java
  16. 14
      src/main/java/com/qs/serve/modules/bpm/mapper/BpmTaskFormMapper.java
  17. 20
      src/main/java/com/qs/serve/modules/bpm/mapper/FlowDeployMapper.java
  18. 14
      src/main/java/com/qs/serve/modules/bpm/service/BpmFormService.java
  19. 14
      src/main/java/com/qs/serve/modules/bpm/service/BpmTaskFormService.java
  20. 22
      src/main/java/com/qs/serve/modules/bpm/service/impl/BpmFormServiceImpl.java
  21. 22
      src/main/java/com/qs/serve/modules/bpm/service/impl/BpmTaskFormServiceImpl.java
  22. 31
      src/main/resources/mapper/bpm/FlowDeployMapper.xml

3
src/main/java/com/qs/serve/common/model/enums/SystemModule.java

@ -12,7 +12,8 @@ import lombok.Getter;
public enum SystemModule {
SYSTEM("sys","系统");
SYSTEM("sys","系统"),
BPM("bpm","工作流");
String code;

26
src/main/java/com/qs/serve/modules/bpm/controller/BpmFlowDefinitionController.java

@ -0,0 +1,26 @@
package com.qs.serve.modules.bpm.controller;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 流程定义
* @author YenHex
* @since 2022/8/18
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bpm/definition")
public class BpmFlowDefinitionController {
//流程定义列表
//保存流程
//获取流程
//删除流程
//启动流程实例
//激活或挂起流程定义
}

103
src/main/java/com/qs/serve/modules/bpm/controller/BpmFormController.java

@ -0,0 +1,103 @@
package com.qs.serve.modules.bpm.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bpm.entity.BpmForm;
import com.qs.serve.modules.bpm.service.BpmFormService;
import javax.validation.Valid;
import java.util.List;
/**
* 流程表单
* @author YenHex
* @since 2022-08-18
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bpm/form")
public class BpmFormController {
private BpmFormService bpmFormService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('bpm:form:query')")
public R<PageVo<BpmForm>> getPage(BpmForm param){
PageUtil.startPage();
LambdaQueryWrapper<BpmForm> formWrapper = new LambdaQueryWrapper<>(param);
List<BpmForm> list = bpmFormService.list(formWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BPM, title = "流程表单", biz = BizType.QUERY)
@PreAuthorize("hasRole('bpm:form:query')")
public R<BpmForm> getById(@PathVariable("id") String id){
BpmForm bpmForm = bpmFormService.getById(id);
return R.ok(bpmForm);
}
/**
* 根据ID更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BPM, title = "流程表单", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bpm:form:update')")
public R<?> updateById(@RequestBody @Valid BpmForm param){
boolean result = bpmFormService.updateById(param);
return R.isTrue(result);
}
/**
* 新增流程表单
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BPM, title = "流程表单", biz = BizType.INSERT)
@PreAuthorize("hasRole('bpm:form:insert')")
public R<?> save(@RequestBody @Valid BpmForm param){
boolean result = bpmFormService.save(param);
return R.isTrue(result);
}
/**
* 删除流程表单
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BPM, title = "流程表单", biz = BizType.DELETE)
@PreAuthorize("hasRole('bpm:form:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = bpmFormService.removeById(id);
return R.isTrue(result);
}
}

103
src/main/java/com/qs/serve/modules/bpm/controller/BpmTaskFormController.java

@ -0,0 +1,103 @@
package com.qs.serve.modules.bpm.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bpm.entity.BpmTaskForm;
import com.qs.serve.modules.bpm.service.BpmTaskFormService;
import javax.validation.Valid;
import java.util.List;
/**
* 流程表单与任务关联
* @author YenHex
* @since 2022-08-18
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bpm/taskForm")
public class BpmTaskFormController {
private BpmTaskFormService bpmTaskFormService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('bpm:taskForm:query')")
public R<PageVo<BpmTaskForm>> getPage(BpmTaskForm param){
PageUtil.startPage();
LambdaQueryWrapper<BpmTaskForm> taskFormWrapper = new LambdaQueryWrapper<>(param);
List<BpmTaskForm> list = bpmTaskFormService.list(taskFormWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BPM, title = "流程表单与任务关联", biz = BizType.QUERY)
@PreAuthorize("hasRole('bpm:taskForm:query')")
public R<BpmTaskForm> getById(@PathVariable("id") String id){
BpmTaskForm bpmTaskForm = bpmTaskFormService.getById(id);
return R.ok(bpmTaskForm);
}
/**
* 根据ID更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BPM, title = "流程表单与任务关联", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bpm:taskForm:update')")
public R<?> updateById(@RequestBody @Valid BpmTaskForm param){
boolean result = bpmTaskFormService.updateById(param);
return R.isTrue(result);
}
/**
* 新增流程表单与任务关联
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BPM, title = "流程表单与任务关联", biz = BizType.INSERT)
@PreAuthorize("hasRole('bpm:taskForm:insert')")
public R<?> save(@RequestBody @Valid BpmTaskForm param){
boolean result = bpmTaskFormService.save(param);
return R.isTrue(result);
}
/**
* 删除流程表单与任务关联
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BPM, title = "流程表单与任务关联", biz = BizType.DELETE)
@PreAuthorize("hasRole('bpm:taskForm:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = bpmTaskFormService.removeById(id);
return R.isTrue(result);
}
}

76
src/main/java/com/qs/serve/modules/bpm/entity/BpmForm.java

@ -0,0 +1,76 @@
package com.qs.serve.modules.bpm.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
/**
* 流程表单 实体类
* @author YenHex
* @since 2022-08-18
*/
@Data
@TableName("bpm_form")
public class BpmForm implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 表单名称 */
@TableField(condition = SqlCondition.LIKE)
@NotNull(message = "表单名称不能为空")
@Length(max = 30,message = "表单名称长度不能超过30字")
private String formName;
/** 表单内容(json) */
@NotNull(message = "表单内容不能为空")
private String formContext;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

76
src/main/java/com/qs/serve/modules/bpm/entity/BpmTaskForm.java

@ -0,0 +1,76 @@
package com.qs.serve.modules.bpm.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 流程表单与任务关联 实体类
* @author YenHex
* @since 2022-08-18
*/
@Data
@TableName("bpm_task_form")
public class BpmTaskForm implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 表单id */
@NotNull(message = "表单id不能为空")
private Long formId;
/** 任务id */
@NotBlank(message = "任务id不能为空")
@Length(max = 32,message = "任务id长度不能超过32字")
private String taskId;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

2
src/main/java/com/qs/serve/modules/bpm/domian/dto/BpmnDto.java → src/main/java/com/qs/serve/modules/bpm/entity/dto/BpmnDto.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bpm.domian.dto;
package com.qs.serve.modules.bpm.entity.dto;
import lombok.Data;

2
src/main/java/com/qs/serve/modules/bpm/domian/dto/FlowCommentDto.java → src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowCommentDto.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bpm.domian.dto;
package com.qs.serve.modules.bpm.entity.dto;
import lombok.Builder;
import lombok.Data;

2
src/main/java/com/qs/serve/modules/bpm/domian/dto/FlowFromFieldDTO.java → src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowFromFieldDTO.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bpm.domian.dto;
package com.qs.serve.modules.bpm.entity.dto;
import lombok.Data;

2
src/main/java/com/qs/serve/modules/bpm/domian/dto/FlowNextDto.java → src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowNextDto.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bpm.domian.dto;
package com.qs.serve.modules.bpm.entity.dto;
import com.qs.serve.modules.sys.entity.SysRole;
import com.qs.serve.modules.sys.entity.SysUser;

71
src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowProcDefDto.java

@ -0,0 +1,71 @@
package com.qs.serve.modules.bpm.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* 流程定义
* @author YenHex
* @since 2022/8/18
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FlowProcDefDto {
/**
* 流程id
*/
private String id;
/**
* 流程名称
*/
private String name;
/**
* 流程key
*/
private String flowKey;
/**
* 流程分类
*/
private String category;
/**
* 配置表单名称
*/
private String formName;
/**
* 配置表单id
*/
private Long formId;
/**
* 版本
*/
private int version;
/**
* 部署ID
*/
private String deploymentId;
/**
* 流程定义状态: 1:激活 , 2:中止
*/
private int suspensionState;
/**
* 部署时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date deploymentTime;
}

2
src/main/java/com/qs/serve/modules/bpm/domian/dto/FlowTaskDto.java → src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowTaskDto.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bpm.domian.dto;
package com.qs.serve.modules.bpm.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

2
src/main/java/com/qs/serve/modules/bpm/domian/dto/FlowViewerDto.java → src/main/java/com/qs/serve/modules/bpm/entity/dto/FlowViewerDto.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bpm.domian.dto;
package com.qs.serve.modules.bpm.entity.dto;
import lombok.Data;

2
src/main/java/com/qs/serve/modules/bpm/domian/vo/FlowTaskVo.java → src/main/java/com/qs/serve/modules/bpm/entity/vo/FlowTaskVo.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bpm.domian.vo;
package com.qs.serve.modules.bpm.entity.vo;
import lombok.Data;

14
src/main/java/com/qs/serve/modules/bpm/mapper/BpmFormMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bpm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bpm.entity.BpmForm;
/**
* 流程表单 Mapper
* @author YenHex
* @date 2022-08-18
*/
public interface BpmFormMapper extends BaseMapper<BpmForm> {
}

14
src/main/java/com/qs/serve/modules/bpm/mapper/BpmTaskFormMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bpm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bpm.entity.BpmTaskForm;
/**
* 流程表单与任务关联 Mapper
* @author YenHex
* @date 2022-08-18
*/
public interface BpmTaskFormMapper extends BaseMapper<BpmTaskForm> {
}

20
src/main/java/com/qs/serve/modules/bpm/mapper/FlowDeployMapper.java

@ -0,0 +1,20 @@
package com.qs.serve.modules.bpm.mapper;
import com.qs.serve.modules.bpm.entity.dto.FlowProcDefDto;
import java.util.List;
/**
* @author YenHex
* @since 2022/8/18
*/
public interface FlowDeployMapper {
/**
* 流程定义列表
* @param name
* @return
*/
List<FlowProcDefDto> selectDeployList(String name);
}

14
src/main/java/com/qs/serve/modules/bpm/service/BpmFormService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bpm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bpm.entity.BpmForm;
/**
* 流程表单 服务接口
* @author YenHex
* @date 2022-08-18
*/
public interface BpmFormService extends IService<BpmForm> {
}

14
src/main/java/com/qs/serve/modules/bpm/service/BpmTaskFormService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bpm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bpm.entity.BpmTaskForm;
/**
* 流程表单与任务关联 服务接口
* @author YenHex
* @date 2022-08-18
*/
public interface BpmTaskFormService extends IService<BpmTaskForm> {
}

22
src/main/java/com/qs/serve/modules/bpm/service/impl/BpmFormServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.bpm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.bpm.entity.BpmForm;
import com.qs.serve.modules.bpm.service.BpmFormService;
import com.qs.serve.modules.bpm.mapper.BpmFormMapper;
/**
* 流程表单 服务实现类
* @author YenHex
* @since 2022-08-18
*/
@Slf4j
@Service
@AllArgsConstructor
public class BpmFormServiceImpl extends ServiceImpl<BpmFormMapper,BpmForm> implements BpmFormService {
}

22
src/main/java/com/qs/serve/modules/bpm/service/impl/BpmTaskFormServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.bpm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.bpm.entity.BpmTaskForm;
import com.qs.serve.modules.bpm.service.BpmTaskFormService;
import com.qs.serve.modules.bpm.mapper.BpmTaskFormMapper;
/**
* 流程表单与任务关联 服务实现类
* @author YenHex
* @since 2022-08-18
*/
@Slf4j
@Service
@AllArgsConstructor
public class BpmTaskFormServiceImpl extends ServiceImpl<BpmTaskFormMapper,BpmTaskForm> implements BpmTaskFormService {
}

31
src/main/resources/mapper/bpm/FlowDeployMapper.xml

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.bpm.mapper.FlowDeployMapper">
<select id="selectDeployList" resultType="com.qs.serve.modules.bpm.entity.dto.FlowProcDefDto">
SELECT
rp.id_ as id,
rd.id_ as deploymentId,
rd.name_ as name,
rd.category_ as category,
rp.key_ as flowKey,
rp.version_ as version,
rp.suspension_state_ as suspensionState,
rd.deploy_time_ as deploymentTime
FROM
ACT_RE_PROCDEF rp
LEFT JOIN ACT_RE_DEPLOYMENT rd ON rp.deployment_id_ = rd.id_
<where>
<if test="name != null and name != ''">
and rd.name_ like concat('%', #{name}, '%')
</if>
</where>
order by rd.deploy_time_ desc
</select>
</mapper>
Loading…
Cancel
Save