
93 changed files with 6179 additions and 0 deletions
@ -0,0 +1,52 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|||
<parent> |
|||
<artifactId>supervise-flowable</artifactId> |
|||
<groupId>com.yxt.supervise</groupId> |
|||
<version>0.0.1</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<artifactId>supervise-flowable-api</artifactId> |
|||
|
|||
<dependencies> |
|||
<dependency> |
|||
<groupId>com.yxt</groupId> |
|||
<artifactId>yxt-common-base</artifactId> |
|||
<version>0.0.1</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework.cloud</groupId> |
|||
<artifactId>spring-cloud-starter-openfeign</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.projectlombok</groupId> |
|||
<artifactId>lombok</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>com.baomidou</groupId> |
|||
<artifactId>mybatis-plus-annotation</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.flowable</groupId> |
|||
<artifactId>flowable-bpmn-model</artifactId> |
|||
<version>6.5.0</version> |
|||
<scope>compile</scope> |
|||
</dependency> |
|||
|
|||
</dependencies> |
|||
|
|||
<distributionManagement> |
|||
<repository> |
|||
<id>nexus-releases</id> |
|||
<url>http://172.18.0.3:8081/repository/yxt-mvn-releases/</url> |
|||
</repository> |
|||
<snapshotRepository> |
|||
<id>nexus-snapshots</id> |
|||
<url>http://172.18.0.3:8081/repository/yxt-mvn-snapshot/</url> |
|||
</snapshotRepository> |
|||
</distributionManagement> |
|||
|
|||
</project> |
@ -0,0 +1,40 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import lombok.Builder; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @author XuanXuan |
|||
* @date 2021/3/28 15:50 |
|||
*/ |
|||
@Data |
|||
@Builder |
|||
/*@NoArgsConstructor |
|||
@AllArgsConstructor*/ |
|||
public class FlowCommentDto implements Serializable { |
|||
public FlowCommentDto() { |
|||
} |
|||
|
|||
public FlowCommentDto(String type, String comment) { |
|||
this.type = type; |
|||
this.comment = comment; |
|||
} |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private static final long serialVersionUID = 1929734226858491967L; |
|||
|
|||
/** |
|||
* 意见类别 1正常(同意)意见 2退回意见 3 驳回意见 4 委派意见 5 转办意见 6 终止流程 7 撤回流程 |
|||
*/ |
|||
private String type; |
|||
|
|||
/** |
|||
* 意见内容 |
|||
*/ |
|||
private String comment; |
|||
|
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@ApiModel("工作流数据") |
|||
@Data |
|||
public class FlowDto { |
|||
|
|||
@ApiModelProperty("业务sid") |
|||
private String businessSid; |
|||
|
|||
@ApiModelProperty("意见") |
|||
private String comment; |
|||
|
|||
@ApiModelProperty("流程实例id") |
|||
private String instanceId; |
|||
|
|||
@ApiModelProperty("任务id") |
|||
private String taskId; |
|||
@ApiModelProperty("流程定义id") |
|||
private String modelId; |
|||
@ApiModelProperty("下一环节的代办人sid") |
|||
private String nextNodeUserSids; |
|||
} |
@ -0,0 +1,175 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
public class FlowProcinst { |
|||
private String ID_;// `varchar (192),
|
|||
private String REV_;//` int (11),
|
|||
private String PROC_INST_ID_;//` varchar (192),
|
|||
private String BUSINESS_KEY_;//` varchar (765),
|
|||
private String PROC_DEF_ID_;//` varchar (192),
|
|||
private String START_TIME_;//` datetime ,
|
|||
private String END_TIME_;//` datetime ,
|
|||
private String DURATION_;//` bigint (20),
|
|||
private String START_USER_ID_;//` varchar (765),
|
|||
private String START_ACT_ID_;//` varchar (765),
|
|||
private String END_ACT_ID_;//` varchar (765),
|
|||
private String SUPER_PROCESS_INSTANCE_ID_;//` varchar (192),
|
|||
private String DELETE_REASON_;//` varchar (12000),
|
|||
private String TENANT_ID_;//` varchar (765),
|
|||
private String NAME_;//` varchar (765),
|
|||
private String CALLBACK_ID_;//` varchar (765),
|
|||
private String CALLBACK_TYPE_;//` varchar (765),
|
|||
private String REFERENCE_ID_;//` varchar (765),
|
|||
private String REFERENCE_TYPE_;//` varchar (765)
|
|||
|
|||
public String getID_() { |
|||
return ID_; |
|||
} |
|||
|
|||
public void setID_(String ID_) { |
|||
this.ID_ = ID_; |
|||
} |
|||
|
|||
public String getREV_() { |
|||
return REV_; |
|||
} |
|||
|
|||
public void setREV_(String REV_) { |
|||
this.REV_ = REV_; |
|||
} |
|||
|
|||
public String getPROC_INST_ID_() { |
|||
return PROC_INST_ID_; |
|||
} |
|||
|
|||
public void setPROC_INST_ID_(String PROC_INST_ID_) { |
|||
this.PROC_INST_ID_ = PROC_INST_ID_; |
|||
} |
|||
|
|||
public String getBUSINESS_KEY_() { |
|||
return BUSINESS_KEY_; |
|||
} |
|||
|
|||
public void setBUSINESS_KEY_(String BUSINESS_KEY_) { |
|||
this.BUSINESS_KEY_ = BUSINESS_KEY_; |
|||
} |
|||
|
|||
public String getPROC_DEF_ID_() { |
|||
return PROC_DEF_ID_; |
|||
} |
|||
|
|||
public void setPROC_DEF_ID_(String PROC_DEF_ID_) { |
|||
this.PROC_DEF_ID_ = PROC_DEF_ID_; |
|||
} |
|||
|
|||
public String getSTART_TIME_() { |
|||
return START_TIME_; |
|||
} |
|||
|
|||
public void setSTART_TIME_(String START_TIME_) { |
|||
this.START_TIME_ = START_TIME_; |
|||
} |
|||
|
|||
public String getEND_TIME_() { |
|||
return END_TIME_; |
|||
} |
|||
|
|||
public void setEND_TIME_(String END_TIME_) { |
|||
this.END_TIME_ = END_TIME_; |
|||
} |
|||
|
|||
public String getDURATION_() { |
|||
return DURATION_; |
|||
} |
|||
|
|||
public void setDURATION_(String DURATION_) { |
|||
this.DURATION_ = DURATION_; |
|||
} |
|||
|
|||
public String getSTART_USER_ID_() { |
|||
return START_USER_ID_; |
|||
} |
|||
|
|||
public void setSTART_USER_ID_(String START_USER_ID_) { |
|||
this.START_USER_ID_ = START_USER_ID_; |
|||
} |
|||
|
|||
public String getSTART_ACT_ID_() { |
|||
return START_ACT_ID_; |
|||
} |
|||
|
|||
public void setSTART_ACT_ID_(String START_ACT_ID_) { |
|||
this.START_ACT_ID_ = START_ACT_ID_; |
|||
} |
|||
|
|||
public String getEND_ACT_ID_() { |
|||
return END_ACT_ID_; |
|||
} |
|||
|
|||
public void setEND_ACT_ID_(String END_ACT_ID_) { |
|||
this.END_ACT_ID_ = END_ACT_ID_; |
|||
} |
|||
|
|||
public String getSUPER_PROCESS_INSTANCE_ID_() { |
|||
return SUPER_PROCESS_INSTANCE_ID_; |
|||
} |
|||
|
|||
public void setSUPER_PROCESS_INSTANCE_ID_(String SUPER_PROCESS_INSTANCE_ID_) { |
|||
this.SUPER_PROCESS_INSTANCE_ID_ = SUPER_PROCESS_INSTANCE_ID_; |
|||
} |
|||
|
|||
public String getDELETE_REASON_() { |
|||
return DELETE_REASON_; |
|||
} |
|||
|
|||
public void setDELETE_REASON_(String DELETE_REASON_) { |
|||
this.DELETE_REASON_ = DELETE_REASON_; |
|||
} |
|||
|
|||
public String getTENANT_ID_() { |
|||
return TENANT_ID_; |
|||
} |
|||
|
|||
public void setTENANT_ID_(String TENANT_ID_) { |
|||
this.TENANT_ID_ = TENANT_ID_; |
|||
} |
|||
|
|||
public String getNAME_() { |
|||
return NAME_; |
|||
} |
|||
|
|||
public void setNAME_(String NAME_) { |
|||
this.NAME_ = NAME_; |
|||
} |
|||
|
|||
public String getCALLBACK_ID_() { |
|||
return CALLBACK_ID_; |
|||
} |
|||
|
|||
public void setCALLBACK_ID_(String CALLBACK_ID_) { |
|||
this.CALLBACK_ID_ = CALLBACK_ID_; |
|||
} |
|||
|
|||
public String getCALLBACK_TYPE_() { |
|||
return CALLBACK_TYPE_; |
|||
} |
|||
|
|||
public void setCALLBACK_TYPE_(String CALLBACK_TYPE_) { |
|||
this.CALLBACK_TYPE_ = CALLBACK_TYPE_; |
|||
} |
|||
|
|||
public String getREFERENCE_ID_() { |
|||
return REFERENCE_ID_; |
|||
} |
|||
|
|||
public void setREFERENCE_ID_(String REFERENCE_ID_) { |
|||
this.REFERENCE_ID_ = REFERENCE_ID_; |
|||
} |
|||
|
|||
public String getREFERENCE_TYPE_() { |
|||
return REFERENCE_TYPE_; |
|||
} |
|||
|
|||
public void setREFERENCE_TYPE_(String REFERENCE_TYPE_) { |
|||
this.REFERENCE_TYPE_ = REFERENCE_TYPE_; |
|||
} |
|||
} |
@ -0,0 +1,98 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* <p>工作流任务<p> |
|||
* |
|||
* @author XuanXuan |
|||
* @date 2021-04-03 |
|||
*/ |
|||
@ApiModel("工作流任务相关-返回参数") |
|||
@Data |
|||
public class FlowTask extends BaseEntity implements Serializable { |
|||
|
|||
@ApiModelProperty("任务编号") |
|||
private String taskId; |
|||
|
|||
@ApiModelProperty("任务名称") |
|||
private String taskName; |
|||
|
|||
@ApiModelProperty("任务Key") |
|||
private String taskDefKey; |
|||
|
|||
@ApiModelProperty("任务执行人Id") |
|||
private Long assigneeId; |
|||
|
|||
@ApiModelProperty("部门名称") |
|||
private String deptName; |
|||
|
|||
@ApiModelProperty("流程发起人部门名称") |
|||
private String startDeptName; |
|||
|
|||
@ApiModelProperty("任务执行人名称") |
|||
private String assigneeName; |
|||
|
|||
@ApiModelProperty("任务执行人头像") |
|||
private String assigneeHeadImage; |
|||
|
|||
@ApiModelProperty("流程发起人Id") |
|||
private String startUserId; |
|||
|
|||
@ApiModelProperty("流程发起人名称") |
|||
private String startUserName; |
|||
|
|||
@ApiModelProperty("流程类型") |
|||
private String category; |
|||
|
|||
@ApiModelProperty("流程变量信息") |
|||
private Object procVars; |
|||
|
|||
@ApiModelProperty("局部变量信息") |
|||
private Object taskLocalVars; |
|||
|
|||
@ApiModelProperty("流程部署编号") |
|||
private String deployId; |
|||
|
|||
@ApiModelProperty("流程ID") |
|||
private String procDefId; |
|||
|
|||
@ApiModelProperty("流程key") |
|||
private String procDefKey; |
|||
|
|||
@ApiModelProperty("流程定义名称") |
|||
private String procDefName; |
|||
|
|||
@ApiModelProperty("流程定义内置使用版本") |
|||
private int procDefVersion; |
|||
|
|||
@ApiModelProperty("流程实例ID") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("历史流程实例ID") |
|||
private String hisProcInsId; |
|||
|
|||
@ApiModelProperty("任务耗时") |
|||
private String duration; |
|||
|
|||
@ApiModelProperty("任务意见") |
|||
private FlowCommentDto comment = new FlowCommentDto(); |
|||
|
|||
@ApiModelProperty("候选执行人") |
|||
private String candidate; |
|||
|
|||
@ApiModelProperty("任务创建时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date createTime; |
|||
|
|||
@ApiModelProperty("任务完成时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date finishTime; |
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author hanweijia |
|||
* @date 2021/11/06 13:53 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class FlowTaskQuery implements Query { |
|||
private static final long serialVersionUID = -7395299971899690002L; |
|||
@ApiModelProperty(value = "用户sid", required = true) |
|||
private String userSid; |
|||
@ApiModelProperty(value = "zd", required = true) |
|||
private String zd; |
|||
@ApiModelProperty(value = "days", required = true) |
|||
private String days; |
|||
|
|||
|
|||
} |
@ -0,0 +1,51 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* <p>流程任务<p> |
|||
* |
|||
* @author XuanXuan |
|||
* @date 2021-04-03 |
|||
*/ |
|||
@ApiModel("工作流任务相关--请求参数") |
|||
@Data |
|||
public class FlowTaskVo { |
|||
|
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
|
|||
@ApiModelProperty("用户Id") |
|||
private String userId; |
|||
@ApiModelProperty("用户Sid") |
|||
private String userSid; |
|||
|
|||
@ApiModelProperty("任务意见") |
|||
private String comment; |
|||
|
|||
@ApiModelProperty("流程实例Id") |
|||
private String instanceId; |
|||
|
|||
@ApiModelProperty("节点") |
|||
private String targetKey; |
|||
|
|||
@ApiModelProperty("流程变量信息") |
|||
private Map<String, Object> values=new HashMap<>(); |
|||
|
|||
@ApiModelProperty("审批人") |
|||
private String assignee; |
|||
|
|||
@ApiModelProperty("候选人") |
|||
private List<String> candidateUsers=new ArrayList<>(); |
|||
|
|||
@ApiModelProperty("审批组") |
|||
private List<String> candidateGroups=new ArrayList<>(); |
|||
|
|||
} |
@ -0,0 +1,8 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class Flowable extends BaseEntity { |
|||
} |
@ -0,0 +1,74 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Map; |
|||
|
|||
@Component |
|||
public class FlowableFallback implements FlowableFeign { |
|||
@Override |
|||
public ResultBean businessStart(BusinessVariables bv) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean processPagerList(Integer pageNum, Integer pageSize) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean stopProcess(FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean deleteProcess(String procInsId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv ) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfSubmit(BusinessVariables bv ) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<UpdateFlowFieldVo> startProcess(BusinessVariables dto) { |
|||
return null; |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public ResultBean handleProsess(BusinessVariables bv) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean revokeProcess(com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl ) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean taskReject(com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean breakProcess(com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl) { |
|||
return null; |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,116 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.Map; |
|||
|
|||
@Api(tags = "Flowable") |
|||
@FeignClient( |
|||
contextId = "anrui-flowable-Flowable", |
|||
name = "anrui-flowable", |
|||
path = "v1/flow", |
|||
fallback = FlowableFallback.class) |
|||
public interface FlowableFeign { |
|||
/** |
|||
* 业务系统发起流程申请 |
|||
* |
|||
* @return |
|||
*/ |
|||
@PostMapping("/businessStart") |
|||
public ResultBean businessStart(@RequestBody BusinessVariables bv); |
|||
|
|||
/** |
|||
* 流程定义列表 一般业务中不需要查询该列表 |
|||
* |
|||
* @param pageNum 页数 |
|||
* @param pageSize 容量 |
|||
* @return |
|||
*/ |
|||
@PostMapping("/processPagerList/{userSid}") |
|||
public ResultBean processPagerList(@ApiParam(value = "当前页码", required = true) @RequestParam("pageNum") Integer pageNum, |
|||
@ApiParam(value = "每页条数", required = true) @RequestParam("pageSize") Integer pageSize); |
|||
|
|||
/** |
|||
* 我的流程 我发起的流程 |
|||
* |
|||
* @param userSid 用户sid |
|||
* @param taskQueryPagerQuery 查询参数 |
|||
* @return |
|||
*/ |
|||
@PostMapping("/myprocess/{userSid}") |
|||
public ResultBean myprocess(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid, |
|||
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery); |
|||
|
|||
/** |
|||
* 取消申请 |
|||
* |
|||
* @param flowTaskVo |
|||
* @return |
|||
*/ |
|||
@ApiOperation(value = "取消申请") |
|||
@PostMapping(value = "/task/stopProcess") |
|||
@ResponseBody |
|||
ResultBean stopProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
/** |
|||
* 删除流程实例 |
|||
* |
|||
* @param procInsId 流程实例id |
|||
* @return |
|||
*/ |
|||
@ApiOperation(value = "删除流程实例") |
|||
@DeleteMapping(value = "/task/deleteProcess/{procInsId}") |
|||
@ResponseBody |
|||
ResultBean deleteProcess(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId); |
|||
|
|||
/** |
|||
* 创建流程实例时取下一环节的用户sid |
|||
* |
|||
* @return |
|||
*/ |
|||
@ApiOperation(value = "创建流程实例时取下一环节的用户sid") |
|||
@GetMapping(value = "/getNextNodeUserSidsOfCreate") |
|||
@ResponseBody |
|||
ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate( @RequestBody BusinessVariables bv); |
|||
/** |
|||
* 提交流程实例时取下一环节的用户sid |
|||
* |
|||
* @return |
|||
*/ |
|||
@ApiOperation(value = "提交流程实例时取下一环节的用户sid") |
|||
@GetMapping(value = "/getNextNodeUserSidsOfSubmit") |
|||
@ResponseBody |
|||
ResultBean<UserAndOrgPath> getNextNodeUserSidsOfSubmit(@RequestBody BusinessVariables bv); |
|||
|
|||
@ApiOperation(value = "启动流程") |
|||
@PostMapping(value = "/startProcess") |
|||
@ResponseBody |
|||
ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables dto); |
|||
|
|||
@ApiOperation(value = "处理流程") |
|||
@PostMapping(value = "/handleProsess") |
|||
@ResponseBody |
|||
ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv); |
|||
|
|||
@ApiOperation(value = "撤回流程") |
|||
@PostMapping(value = "/revokeProcess") |
|||
@ResponseBody |
|||
ResultBean<UpdateFlowFieldVo> revokeProcess(@RequestBody com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl); |
|||
|
|||
@ApiOperation(value = "驳回流程") |
|||
@PostMapping(value = "/taskReject") |
|||
@ResponseBody |
|||
ResultBean<UpdateFlowFieldVo> taskReject(@RequestBody com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl); |
|||
|
|||
@ApiOperation(value = "终止流程") |
|||
@PostMapping(value = "/breakProcess") |
|||
@ResponseBody |
|||
ResultBean<UpdateFlowFieldVo> breakProcess(@RequestBody com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl); |
|||
} |
@ -0,0 +1,60 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import java.util.Map; |
|||
|
|||
public class StartProcessDto { |
|||
private String orgSidPath; |
|||
private String businessSid; |
|||
private String orgSid; //部门sid
|
|||
private String proDefId; |
|||
private String userSid; |
|||
private Map<String, Object> variables; |
|||
|
|||
public String getOrgSidPath() { |
|||
return orgSidPath; |
|||
} |
|||
|
|||
public void setOrgSidPath(String orgSidPath) { |
|||
this.orgSidPath = orgSidPath; |
|||
} |
|||
|
|||
public String getBusinessSid() { |
|||
return businessSid; |
|||
} |
|||
|
|||
public void setBusinessSid(String businessSid) { |
|||
this.businessSid = businessSid; |
|||
} |
|||
|
|||
public String getOrgSid() { |
|||
return orgSid; |
|||
} |
|||
|
|||
public void setOrgSid(String orgSid) { |
|||
this.orgSid = orgSid; |
|||
} |
|||
|
|||
public String getProDefId() { |
|||
return proDefId; |
|||
} |
|||
|
|||
public void setProDefId(String proDefId) { |
|||
this.proDefId = proDefId; |
|||
} |
|||
|
|||
public String getUserSid() { |
|||
return userSid; |
|||
} |
|||
|
|||
public void setUserSid(String userSid) { |
|||
this.userSid = userSid; |
|||
} |
|||
|
|||
public Map<String, Object> getVariables() { |
|||
return variables; |
|||
} |
|||
|
|||
public void setVariables(Map<String, Object> variables) { |
|||
this.variables = variables; |
|||
} |
|||
} |
@ -0,0 +1,90 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
|
|||
/** |
|||
* Project: anrui-parent <br/> |
|||
* File: TaskQuery.java <br/> |
|||
* Class: com.yxt.anrui.portal.biz.flow.TaskQuery <br/> |
|||
* Description: <描述类的功能>. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2021/10/27 下午3:36 <br/> |
|||
* |
|||
* @author popo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
public class TaskQuery implements Query { |
|||
|
|||
private String userSid; |
|||
private String days; |
|||
private String zd1; |
|||
private String processDefinitionId; |
|||
private String startTime; |
|||
|
|||
public String getZd1() { |
|||
return zd1; |
|||
} |
|||
|
|||
public void setZd1(String zd1) { |
|||
this.zd1 = zd1; |
|||
} |
|||
|
|||
public String getProcessDefinitionId() { |
|||
return processDefinitionId; |
|||
} |
|||
|
|||
public void setProcessDefinitionId(String processDefinitionId) { |
|||
this.processDefinitionId = processDefinitionId; |
|||
} |
|||
|
|||
public String getUserSid() { |
|||
return userSid; |
|||
} |
|||
|
|||
public void setUserSid(String userSid) { |
|||
this.userSid = userSid; |
|||
} |
|||
|
|||
public String getDays() { |
|||
return days; |
|||
} |
|||
|
|||
public void setDays(String days) { |
|||
this.days = days; |
|||
} |
|||
|
|||
public String getStartTime() { |
|||
return startTime; |
|||
} |
|||
|
|||
public void setStartTime(String startTime) { |
|||
this.startTime = startTime; |
|||
} |
|||
} |
@ -0,0 +1,70 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; |
|||
|
|||
public class UpdateFlowFieldVo { |
|||
|
|||
private String sid; |
|||
private String procDefId; |
|||
private String nodeState; |
|||
private String procInsId; |
|||
private String taskDefKey; |
|||
private String taskId; |
|||
private String nextNodeUserSids; |
|||
|
|||
public String getNextNodeUserSids() { |
|||
return nextNodeUserSids; |
|||
} |
|||
|
|||
public void setNextNodeUserSids(String nextNodeUserSids) { |
|||
this.nextNodeUserSids = nextNodeUserSids; |
|||
} |
|||
|
|||
public String getSid() { |
|||
return sid; |
|||
} |
|||
|
|||
public void setSid(String sid) { |
|||
this.sid = sid; |
|||
} |
|||
|
|||
public String getProcDefId() { |
|||
return procDefId; |
|||
} |
|||
|
|||
public void setProcDefId(String procDefId) { |
|||
this.procDefId = procDefId; |
|||
} |
|||
|
|||
public String getNodeState() { |
|||
return nodeState; |
|||
} |
|||
|
|||
public void setNodeState(String nodeState) { |
|||
this.nodeState = nodeState; |
|||
} |
|||
|
|||
public String getProcInsId() { |
|||
return procInsId; |
|||
} |
|||
|
|||
public void setProcInsId(String procInsId) { |
|||
this.procInsId = procInsId; |
|||
} |
|||
|
|||
public String getTaskDefKey() { |
|||
return taskDefKey; |
|||
} |
|||
|
|||
public void setTaskDefKey(String taskDefKey) { |
|||
this.taskDefKey = taskDefKey; |
|||
} |
|||
|
|||
public String getTaskId() { |
|||
return taskId; |
|||
} |
|||
|
|||
public void setTaskId(String taskId) { |
|||
this.taskId = taskId; |
|||
} |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.yxt.anrui.flowable.api.flow; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserAndOrgPath { |
|||
/** |
|||
* 用户sid |
|||
*/ |
|||
private String userSid; |
|||
/** |
|||
* 组织及部门sid全路径 |
|||
*/ |
|||
private String orgPath; |
|||
} |
@ -0,0 +1,60 @@ |
|||
package com.yxt.anrui.flowable.api.flowcomment; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/16 9:05 |
|||
* @description 流程意见类型 |
|||
*/ |
|||
|
|||
public enum FlowComment { |
|||
|
|||
/** |
|||
* 说明 |
|||
*/ |
|||
START("0", "发起"), |
|||
|
|||
NORMAL("1", "同意"), |
|||
|
|||
REBACK("2", "退回"), |
|||
|
|||
REJECT("3", "驳回"), |
|||
DELEGATE("4", "委派意见"), |
|||
|
|||
ASSIGN("5", "转办意见"), |
|||
STOP("6", "终止"), |
|||
|
|||
RECALL("7", "撤回"), |
|||
SETTLE("8", "已办结"), |
|||
AGAIN("9", "重新提交"); |
|||
|
|||
/** |
|||
* 类型 |
|||
*/ |
|||
private final String type; |
|||
|
|||
/** |
|||
* 说明 |
|||
*/ |
|||
private final String remark; |
|||
|
|||
FlowComment(String type, String remark) { |
|||
this.type = type; |
|||
this.remark = remark; |
|||
} |
|||
|
|||
public String getType() { |
|||
return type; |
|||
} |
|||
|
|||
public String getRemark() { |
|||
return remark; |
|||
} |
|||
public static String getRemarkByType(String type){ |
|||
for(FlowComment f : FlowComment.values()){ |
|||
if(type.equals(f.type)){ |
|||
return f.getRemark(); |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,39 @@ |
|||
package com.yxt.anrui.flowable.api.flowcomment; |
|||
|
|||
import lombok.Builder; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @author XuanXuan |
|||
* @date 2021/3/28 15:50 |
|||
*/ |
|||
@Data |
|||
@Builder |
|||
/*@NoArgsConstructor |
|||
@AllArgsConstructor*/ |
|||
public class FlowCommentDto implements Serializable { |
|||
public FlowCommentDto() { |
|||
} |
|||
|
|||
public FlowCommentDto(String type, String comment) { |
|||
this.type = type; |
|||
this.comment = comment; |
|||
} |
|||
/** |
|||
* |
|||
*/ |
|||
private static final long serialVersionUID = 1929734226858491967L; |
|||
|
|||
/** |
|||
* 意见类别 1正常(同意)意见 2退回意见 3 驳回意见 4 委派意见 5 转办意见 6 终止流程 7 撤回流程 |
|||
*/ |
|||
private String type; |
|||
|
|||
/** |
|||
* 意见内容 |
|||
*/ |
|||
private String comment; |
|||
|
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.flowable.api.flowcomment; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/23 15:02 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class FlowCommentVo implements Vo { |
|||
private static final long serialVersionUID = 8476778511839065050L; |
|||
|
|||
/** |
|||
* 意见类别 意见类别 1正常(同意)意见 2退回意见 3 驳回意见 4 委派意见 5 转办意见 6 终止流程 7 撤回流程 |
|||
*/ |
|||
private String type; |
|||
|
|||
/** |
|||
* 意见内容 |
|||
*/ |
|||
private String comment; |
|||
} |
@ -0,0 +1,85 @@ |
|||
package com.yxt.anrui.flowable.api.flowdefinition; |
|||
|
|||
import com.yxt.anrui.flowable.api.flowtask.FlowTask; |
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/16 17:16 |
|||
* @description 流程定义 |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "anrui-flowable-FlowDefinition", |
|||
name = "anrui-flowable", |
|||
path = "/v1/flowable/definition", |
|||
fallback = FlowDefinitionFeignFallBack.class) |
|||
public interface FlowDefinitionFeign { |
|||
|
|||
@ApiOperation(value = "导入流程文件", notes = "上传bpmn20的xml文件") |
|||
@PostMapping("/import") |
|||
@ResponseBody |
|||
public ResultBean importFile(@RequestParam( name ="name", required = false) String name, |
|||
@RequestParam(name ="category",required = false) String category, |
|||
MultipartFile file); |
|||
|
|||
@ApiOperation(value = "流程定义分页列表") |
|||
@PostMapping("/pagerList") |
|||
@ResponseBody |
|||
public ResultBean pagerList(@ApiParam(value = "当前页码", required = true) @RequestParam("pageNum") Integer pageNum, |
|||
@ApiParam(value = "每页条数", required = true) @RequestParam("pageSize") Integer pageSize); |
|||
|
|||
/** |
|||
* 挂起后,就不可以再开启一个流程实例了,也就是 runtimeService.startProcessInstanceByKey("流程定义ID");会抛出异常 |
|||
* 流程定义的挂起,不影响已经启动的流程实例继续 |
|||
*/ |
|||
@ApiOperation(value = "激活或挂起流程定义") |
|||
@PostMapping(value = "/updateState") |
|||
public ResultBean updateState(@ApiParam(value = "1:激活,2:挂起", required = true) @RequestParam("state") Integer state, |
|||
@ApiParam(value = "流程部署ID", required = true) @RequestParam("deployId") String deployId); |
|||
|
|||
@ApiOperation(value = "删除流程") |
|||
@DeleteMapping(value = "/delete") |
|||
@ResponseBody |
|||
public ResultBean delete(@ApiParam(value = "流程部署ID", required = true) @RequestParam("deployId") String deployId); |
|||
|
|||
@ApiOperation(value = "保存xml文件") |
|||
@PostMapping(value = "/save") |
|||
@ResponseBody |
|||
public ResultBean save(@RequestBody FlowSaveXmlQuery flowSaveXmlQuery); |
|||
|
|||
@ApiOperation(value = "读取xml文件") |
|||
@GetMapping("/readXml/{deployId}") |
|||
@ResponseBody |
|||
public ResultBean readXml(@ApiParam(value = "流程定义id") @PathVariable(value = "deployId") String deployId); |
|||
|
|||
|
|||
@ApiOperation(value = "指定流程办理人员列表") |
|||
@GetMapping("/userList") |
|||
@ResponseBody |
|||
public ResultBean userList(SysUser user); |
|||
|
|||
@ApiOperation(value = "指定流程办理候选组(角色)") |
|||
@GetMapping("/roleList") |
|||
@ResponseBody |
|||
public ResultBean roleList(); |
|||
|
|||
@ApiOperation(value = "根据流程定义id启动流程实例") |
|||
@PostMapping("/start/{procDefId}") |
|||
@ResponseBody |
|||
public ResultBean start(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId, |
|||
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables); |
|||
|
|||
/* @ApiOperation(value = "业务系统发起流程根据流程定义id启动流程实例") |
|||
@PostMapping("/businessStart") |
|||
@ResponseBody |
|||
public ResultBean<FlowTask> businessStart(@ApiParam(value = "请求参数") @RequestBody |
|||
BusinessVariables dto);*/ |
|||
} |
@ -0,0 +1,78 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.flowdefinition; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* Project: anrui-parent <br/> |
|||
* File: FlowDefinitionFeignDTO.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.flowdefinition.FlowDefinitionFeignDTO <br/> |
|||
* Description: <描述类的功能>. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2021/10/25 上午11:47 <br/> |
|||
* |
|||
* @author popo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
public class FlowDefinitionFeignBusinessStartDTO { |
|||
|
|||
@ApiModelProperty("流程定义id") |
|||
private String procDefId; |
|||
@ApiModelProperty("用户sid") |
|||
private String userSid; |
|||
@ApiModelProperty("流程定义id") |
|||
private Map<String, Object> variables = new HashMap<>(); |
|||
|
|||
public String getProcDefId() { |
|||
return procDefId; |
|||
} |
|||
|
|||
public void setProcDefId(String procDefId) { |
|||
this.procDefId = procDefId; |
|||
} |
|||
|
|||
public String getUserSid() { |
|||
return userSid; |
|||
} |
|||
|
|||
public void setUserSid(String userSid) { |
|||
this.userSid = userSid; |
|||
} |
|||
|
|||
public Map<String, Object> getVariables() { |
|||
return variables; |
|||
} |
|||
|
|||
public void setVariables(Map<String, Object> variables) { |
|||
this.variables = variables; |
|||
} |
|||
} |
@ -0,0 +1,68 @@ |
|||
package com.yxt.anrui.flowable.api.flowdefinition; |
|||
|
|||
import com.yxt.anrui.flowable.api.flowtask.FlowTask; |
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Component; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/20 15:44 |
|||
* @description |
|||
*/ |
|||
@Component |
|||
public class FlowDefinitionFeignFallBack implements FlowDefinitionFeign { |
|||
@Override |
|||
public ResultBean importFile(String name, String category, MultipartFile file) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean pagerList(Integer pageNum, Integer pageSize) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean updateState(Integer state, String deployId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean delete(String deployId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean save(FlowSaveXmlQuery flowSaveXmlQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean readXml(String deployId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean userList(SysUser user) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean roleList() { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean start(String procDefId, Map<String, Object> variables) { |
|||
return null; |
|||
} |
|||
|
|||
/* @Override |
|||
public ResultBean<FlowTask> businessStart(BusinessVariables dto) { |
|||
return null; |
|||
} |
|||
*/ |
|||
} |
@ -0,0 +1,49 @@ |
|||
package com.yxt.anrui.flowable.api.flowdefinition; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/18 8:57 |
|||
* @description 流程定义 |
|||
*/ |
|||
@Data |
|||
public class FlowDefinitionVo implements Vo { |
|||
private static final long serialVersionUID = 2046175148595754071L; |
|||
|
|||
@ApiModelProperty("流程id") |
|||
private String id; |
|||
|
|||
@ApiModelProperty("流程名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty("流程key") |
|||
private String key; |
|||
|
|||
@ApiModelProperty("流程分类") |
|||
private String category; |
|||
|
|||
@ApiModelProperty("配置表单名称") |
|||
private String formName; |
|||
|
|||
@ApiModelProperty("配置表单id") |
|||
private Long formId; |
|||
|
|||
@ApiModelProperty("版本") |
|||
private int version; |
|||
|
|||
@ApiModelProperty("部署ID") |
|||
private String deploymentId; |
|||
|
|||
@ApiModelProperty("流程定义状态: 1:激活 , 2:中止") |
|||
private int suspensionState; |
|||
|
|||
@ApiModelProperty("部署时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date deploymentTime; |
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.yxt.anrui.flowable.api.flowdefinition; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/21 19:15 |
|||
* @description 流程实例dto |
|||
*/ |
|||
@Data |
|||
public class FlowInstanceDto implements Dto { |
|||
|
|||
private static final long serialVersionUID = -2972287297281145598L; |
|||
@ApiModelProperty(value = "流程定义id") |
|||
private String processId; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.flowable.api.flowdefinition; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/31 16:56 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class FlowSaveXmlQuery implements Query { |
|||
private static final long serialVersionUID = -9097158378333761305L; |
|||
|
|||
|
|||
@ApiModelProperty(value = "流程名称") |
|||
private String name; |
|||
|
|||
|
|||
@ApiModelProperty(value = "流程分类") |
|||
private String category; |
|||
|
|||
|
|||
@ApiModelProperty(value = "xml文件") |
|||
private String xml; |
|||
} |
@ -0,0 +1,64 @@ |
|||
package com.yxt.anrui.flowable.api.flowdefinition; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* Project: anrui_portal(门户建设) <br/> |
|||
* File: SysUser.java <br/> |
|||
* Class: com.yxt.anrui.portal.api.sysuser.SysUser <br/> |
|||
* Description: 用户表. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2021-08-03 00:24:30 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
public class SysUser extends BaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
@ApiModelProperty("登录名,登录名不能相同") |
|||
private String userName; |
|||
|
|||
@ApiModelProperty("密码(加密或签名后)") |
|||
private String password; |
|||
|
|||
@ApiModelProperty("密码修改时限") |
|||
private String pwdDayslimit; |
|||
|
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
|||
@ApiModelProperty("最后一次密码修改时间") |
|||
private Date pwdModifyTime; |
|||
|
|||
@ApiModelProperty("在线状态(0为离线、1为在线)") |
|||
private Integer onlineState; |
|||
|
|||
@ApiModelProperty("用户登录时随机生成身份验证字符串") |
|||
private String token; |
|||
|
|||
@ApiModelProperty("是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员") |
|||
private String isAdmin; |
|||
|
|||
@ApiModelProperty("手机登录唯一标识,手机与用户绑定字段") |
|||
private String appId; |
|||
|
|||
@ApiModelProperty("关联的人员sid") |
|||
private String staffSid; |
|||
|
|||
@ApiModelProperty("手机号") |
|||
private String mobile; |
|||
|
|||
@ApiModelProperty("用户类型:1员工、2客户、3供应商") |
|||
private Integer userType; |
|||
|
|||
@ApiModelProperty("用户头像") |
|||
private String headImage; |
|||
} |
@ -0,0 +1,44 @@ |
|||
package com.yxt.anrui.flowable.api.flowinstance; |
|||
|
|||
import com.yxt.anrui.flowable.api.flowdefinition.FlowInstanceDto; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/16 10:33 |
|||
* @description 工作流流程实例管理 |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "anrui-flowable-FlowInstance", |
|||
name = "anrui-flowable", |
|||
path = "v1/flowable/instance", |
|||
fallback = FlowInstanceFeignFallBack.class) |
|||
public interface FlowInstanceFeign { |
|||
|
|||
@PostMapping("/start") |
|||
@ResponseBody |
|||
@ApiOperation(value = "启动流程") |
|||
public ResultBean<FlowInstanceVo> startProcess(@RequestBody FlowInstanceDto flowTaskDto); |
|||
|
|||
|
|||
@ApiOperation(value = "根据流程定义id启动流程实例") |
|||
@PostMapping("/startBy/{procDefId}") |
|||
@ResponseBody |
|||
public ResultBean startById(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId); |
|||
|
|||
|
|||
@ApiOperation(value = "删除流程实例") |
|||
@DeleteMapping(value = "/delete") |
|||
public ResultBean delete(@ApiParam(value = "流程实例ID", required = true) @RequestParam(value = "instanceId") String instanceId, |
|||
@ApiParam(value = "删除原因") @RequestParam(value = "deleteReason", required = false) String deleteReason); |
|||
|
|||
@ApiOperation(value = "激活或挂起流程实例") |
|||
@PostMapping(value = "/updateState") |
|||
public ResultBean updateState(@ApiParam(value = "1:激活,2:挂起", required = true) @RequestParam(value = "state") Integer state, |
|||
@ApiParam(value = "流程实例ID", required = true) @RequestParam(value = "instanceId") String instanceId); |
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.yxt.anrui.flowable.api.flowinstance; |
|||
|
|||
import com.yxt.anrui.flowable.api.flowdefinition.FlowInstanceDto; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/22 10:51 |
|||
* @description |
|||
*/ |
|||
@Component |
|||
public class FlowInstanceFeignFallBack implements FlowInstanceFeign { |
|||
@Override |
|||
public ResultBean<FlowInstanceVo> startProcess(FlowInstanceDto flowTaskDto) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean startById(String procDefId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean delete(String instanceId, String deleteReason) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean updateState(Integer state, String instanceId) { |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.yxt.anrui.flowable.api.flowinstance; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/16 11:18 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class FlowInstanceVo implements Vo { |
|||
|
|||
private static final long serialVersionUID = -7702924188219076066L; |
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
|
|||
@ApiModelProperty("流程实例Id") |
|||
private String instanceId; |
|||
@ApiModelProperty(value = "表单sid") |
|||
private String formSid; |
|||
|
|||
|
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/7/28 16:24 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppUserVo implements Vo { |
|||
private static final long serialVersionUID = -3220584066025636920L; |
|||
@ApiModelProperty(value = "名称") |
|||
@JsonProperty("name") |
|||
private String assigneeName; |
|||
@ApiModelProperty(value = "头像") |
|||
@JsonProperty("image") |
|||
private String assigneeHeadImage; |
|||
|
|||
} |
@ -0,0 +1,42 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/4 18:22 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class CompleteTaskQuery implements Query { |
|||
private static final long serialVersionUID = 5847441978537887466L; |
|||
|
|||
@ApiModelProperty(value = "用户sid") |
|||
private String userSid; |
|||
|
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
|
|||
@ApiModelProperty("用户Id") |
|||
private String userId; |
|||
|
|||
@ApiModelProperty("任务意见") |
|||
private String comment; |
|||
|
|||
@ApiModelProperty("流程实例Id") |
|||
private String instanceId; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
@ApiModelProperty(value = "流程标题", required = false) |
|||
private String formTitle; |
|||
|
|||
@ApiModelProperty(value = "任务参数", required = false) |
|||
private Map<String, Object> variables; |
|||
} |
@ -0,0 +1,16 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
public class FlowRecordVo { |
|||
private List<FlowTask> flowList = new ArrayList<>(); |
|||
|
|||
public List<FlowTask> getFlowList() { |
|||
return flowList; |
|||
} |
|||
|
|||
public void setFlowList(List<FlowTask> flowList) { |
|||
this.flowList = flowList; |
|||
} |
|||
} |
@ -0,0 +1,107 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* <p>工作流任务<p> |
|||
* |
|||
* @author XuanXuan |
|||
* @date 2021-04-03 |
|||
*/ |
|||
@ApiModel("工作流任务相关-返回参数") |
|||
@Data |
|||
public class FlowTask extends BaseEntity implements Serializable { |
|||
|
|||
@ApiModelProperty("任务编号") |
|||
private String taskId; |
|||
|
|||
@ApiModelProperty("任务名称") |
|||
private String taskName; |
|||
|
|||
@ApiModelProperty("任务Key") |
|||
private String taskDefKey; |
|||
|
|||
@ApiModelProperty("任务执行人Id") |
|||
private Long assigneeId; |
|||
|
|||
@ApiModelProperty("部门名称") |
|||
private String deptName; |
|||
|
|||
@ApiModelProperty("流程发起人部门名称") |
|||
private String startDeptName; |
|||
|
|||
@ApiModelProperty("任务执行人名称") |
|||
private String assigneeName; |
|||
|
|||
@ApiModelProperty("任务执行人头像") |
|||
private String assigneeHeadImage; |
|||
|
|||
@ApiModelProperty("流程发起人Id") |
|||
private String startUserId; |
|||
|
|||
@ApiModelProperty("流程发起人名称") |
|||
private String startUserName; |
|||
|
|||
@ApiModelProperty("流程类型") |
|||
private String category; |
|||
|
|||
@ApiModelProperty("流程变量信息") |
|||
private Object procVars; |
|||
|
|||
@ApiModelProperty("局部变量信息") |
|||
private Object taskLocalVars; |
|||
|
|||
@ApiModelProperty("流程部署编号") |
|||
private String deployId; |
|||
|
|||
@ApiModelProperty("流程ID") |
|||
private String procDefId; |
|||
|
|||
@ApiModelProperty("流程key") |
|||
private String procDefKey; |
|||
|
|||
@ApiModelProperty("流程定义名称") |
|||
private String procDefName; |
|||
|
|||
@ApiModelProperty("流程定义内置使用版本") |
|||
private int procDefVersion; |
|||
|
|||
@ApiModelProperty("流程实例ID") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("历史流程实例ID") |
|||
private String hisProcInsId; |
|||
|
|||
@ApiModelProperty("任务耗时") |
|||
private String duration; |
|||
|
|||
@ApiModelProperty("任务意见") |
|||
private FlowCommentDto comment = new FlowCommentDto(); |
|||
|
|||
@ApiModelProperty("候选执行人") |
|||
private String candidate; |
|||
|
|||
/* @ApiModelProperty("任务创建时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ) |
|||
private String createTime;*/ |
|||
|
|||
@ApiModelProperty("任务完成时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") |
|||
private String finishTime; |
|||
|
|||
@ApiModelProperty("流程完成时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS" ) |
|||
private String processEndTime; |
|||
|
|||
@ApiModelProperty("环节的办理人信息") |
|||
private List<TaskUserInfo> taskUserInfos; |
|||
} |
@ -0,0 +1,118 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto; |
|||
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* <p>工作流任务<p> |
|||
* |
|||
* @author XuanXuan |
|||
* @date 2021-04-03 |
|||
*/ |
|||
@ApiModel("工作流任务相关-返回参数") |
|||
@Data |
|||
public class FlowTaskDto implements Serializable { |
|||
|
|||
@ApiModelProperty("任务编号") |
|||
private String taskId; |
|||
|
|||
@ApiModelProperty("任务名称") |
|||
private String taskName; |
|||
|
|||
@ApiModelProperty("任务Key") |
|||
private String taskDefKey; |
|||
|
|||
@ApiModelProperty("任务执行人Id") |
|||
private String assigneeSid; |
|||
|
|||
@ApiModelProperty("部门名称") |
|||
private String deptName; |
|||
|
|||
@ApiModelProperty("流程发起人部门名称") |
|||
private String startDeptName; |
|||
|
|||
@ApiModelProperty("任务执行人名称") |
|||
private String assigneeName; |
|||
|
|||
@ApiModelProperty("流程发起人Id") |
|||
private String startUserSid; |
|||
|
|||
@ApiModelProperty("流程发起人名称") |
|||
private String startUserName; |
|||
|
|||
@ApiModelProperty("流程类型") |
|||
private String category; |
|||
|
|||
@ApiModelProperty("流程变量信息") |
|||
private Object procVars; |
|||
|
|||
@ApiModelProperty("局部变量信息") |
|||
private Object taskLocalVars; |
|||
|
|||
@ApiModelProperty("流程部署编号") |
|||
private String deployId; |
|||
|
|||
@ApiModelProperty("流程ID") |
|||
private String procDefId; |
|||
|
|||
@ApiModelProperty("流程key") |
|||
private String procDefKey; |
|||
|
|||
@ApiModelProperty("流程定义名称") |
|||
private String procDefName; |
|||
|
|||
@ApiModelProperty("流程定义内置使用版本") |
|||
private int procDefVersion; |
|||
|
|||
@ApiModelProperty("流程实例ID") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("历史流程实例ID") |
|||
private String hisProcInsId; |
|||
|
|||
@ApiModelProperty("任务耗时") |
|||
private String duration; |
|||
|
|||
@ApiModelProperty("任务意见") |
|||
private FlowCommentDto comment; |
|||
|
|||
@ApiModelProperty("候选执行人") |
|||
private String candidate; |
|||
@ApiModelProperty("结束事件ID") |
|||
private String endActId; |
|||
|
|||
@ApiModelProperty("流程创建时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date processCreateTime; |
|||
@ApiModelProperty("任务创建时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date createTime; |
|||
@ApiModelProperty("任务结束时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date endTime; |
|||
|
|||
@ApiModelProperty("任务完成时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date finishTime; |
|||
@ApiModelProperty("业务表单参数集合") |
|||
private Map<String, Object> processVariables; |
|||
|
|||
/*@ApiModelProperty("手机端参数集合") |
|||
private Map<String, Object> appVariables; |
|||
|
|||
@ApiModelProperty("pc端参数集合") |
|||
private Map<String, Object> pcVariables;*/ |
|||
|
|||
@ApiModelProperty("是否显示撤回按钮(登录用户与待办人是否为同一个)") |
|||
private boolean hasRevokeButton = false; |
|||
@ApiModelProperty("办理的url") |
|||
private SysProUrlVo sysProUrlVo ; |
|||
} |
@ -0,0 +1,188 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.yxt.anrui.flowable.api.flow.UserAndOrgPath; |
|||
import com.yxt.anrui.flowable.api.utils.RecordQuery; |
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessTaskQuery; |
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|||
import com.yxt.anrui.flowable.test.StartProcessInstanceQuery; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import org.flowable.bpmn.model.FlowElement; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/7/29 14:37 |
|||
* @description |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "anrui-flowable-FlowTask", |
|||
name = "anrui-flowable", |
|||
path = "v1/flowable/task", |
|||
fallback = FlowTaskFeignFallBack.class) |
|||
public interface FlowTaskFeign { |
|||
|
|||
@ApiOperation(value = "启动流程") |
|||
@PostMapping("/startProcessInstanceByKey") |
|||
@ResponseBody |
|||
ResultBean<String> startProcessInstanceByKey(@RequestBody StartProcessInstanceQuery startProcessInstanceQuery); |
|||
|
|||
@ApiOperation(value = "业务系统审批") |
|||
@PostMapping("/businessComplete") |
|||
@ResponseBody |
|||
ResultBean<FlowTask> businessComplete(@RequestBody BusinessVariables dto); |
|||
|
|||
@ApiOperation(value = "审批") |
|||
@PostMapping("/complete") |
|||
@ResponseBody |
|||
ResultBean<String> complete(@RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
@ApiOperation(value = "待办任务列表") |
|||
@PostMapping("/todoList") |
|||
@ResponseBody |
|||
ResultBean todoList(@RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery); |
|||
|
|||
@ApiOperation(value = "业务系统查询待办任务列表") |
|||
@PostMapping("/businessTodoList/{userSid}") |
|||
@ResponseBody |
|||
ResultBean<Page<FlowTaskDto>> businessTodoList(@ApiParam(value = "当前用户sid") @PathVariable(value = "userSid")String userSid, |
|||
@RequestBody PagerQuery<BusinessTaskQuery> taskQueryPagerQuery); |
|||
@ApiOperation(value = "业务系统查询待办任务列表包含url") |
|||
@PostMapping("/businessTodoListForApp/{userSid}") |
|||
@ResponseBody |
|||
ResultBean<Page<FlowTaskDto>> businessTodoListForApp(@ApiParam(value = "当前用户sid") @PathVariable(value = "userSid")String userSid, |
|||
@RequestBody PagerQuery<BusinessTaskQuery> taskQueryPagerQuery); |
|||
|
|||
@ApiOperation(value = "业务系统查询待办任务列表数量") |
|||
@GetMapping("/getTodoNum/{userSid}") |
|||
ResultBean<Integer> getTodoNum(@PathVariable(value = "userSid")String userSid); |
|||
|
|||
@ApiOperation(value = "业务系统查询待办任务列表数量") |
|||
@PostMapping("/getTodoNum") |
|||
@ResponseBody |
|||
ResultBean<Integer> getTodoNum(@RequestBody UserAndOrgPath uaop); |
|||
|
|||
@ApiOperation(value = "已办任务列表") |
|||
@PostMapping("/doneList") |
|||
@ResponseBody |
|||
ResultBean doneList(@RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery); |
|||
|
|||
@ApiOperation(value = "业务系统查询已办任务列表") |
|||
@PostMapping("/businessDoneList/{userSid}") |
|||
@ResponseBody |
|||
ResultBean businessDoneList(@ApiParam(value = "当前用户sid") @PathVariable(value = "userSid")String userSid, |
|||
@RequestBody PagerQuery<BusinessTaskQuery> taskQueryPagerQuery); |
|||
@ApiOperation(value = "业务系统查询已办任务列表_移动端") |
|||
@PostMapping("/businessDoneListForApp/{userSid}") |
|||
@ResponseBody |
|||
ResultBean<Page<FlowTaskDto>> businessDoneListForApp(@ApiParam(value = "当前用户sid") @PathVariable(value = "userSid")String userSid, |
|||
@RequestBody PagerQuery<BusinessTaskQuery> taskQueryPagerQuery); |
|||
|
|||
@ApiOperation(value = "流程历史流转记录") |
|||
@PostMapping(value = "/flowRecord") |
|||
@ResponseBody |
|||
ResultBean flowRecord(@RequestBody RecordQuery recordQuery); |
|||
|
|||
@ApiOperation(value = "取消申请") |
|||
@PostMapping(value = "/stopProcess/{userSid}") |
|||
@ResponseBody |
|||
ResultBean stopProcess(@ApiParam(value = "当前用户sid") @PathVariable(value = "userSid")String userSid, |
|||
@RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
@ApiOperation(value = "我的流程分页列表") |
|||
@PostMapping(value = "/myprocess") |
|||
@ResponseBody |
|||
ResultBean myprocess(@RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery); |
|||
|
|||
@ApiOperation(value = "业务系统查询我的流程分页列表") |
|||
@PostMapping(value = "/businessMyprocess/{userSid}") |
|||
@ResponseBody |
|||
ResultBean businessMyprocess(@ApiParam(value = "当前用户sid") @PathVariable(value = "userSid")String userSid, |
|||
@RequestBody PagerQuery<BusinessTaskQuery> taskQueryPagerQuery); |
|||
|
|||
@ApiOperation(value = "获取流程变量") |
|||
@GetMapping(value = "/processVariables/{taskId}") |
|||
@ResponseBody |
|||
ResultBean processVariables(@ApiParam(value = "流程任务Id") @PathVariable(value = "taskId") String taskId); |
|||
|
|||
/** |
|||
* 生成流程图 |
|||
* |
|||
* @param procInsId 任务ID |
|||
*/ |
|||
@RequestMapping("/flowViewer/{procInsId}") |
|||
public ResultBean getFlowViewer(@PathVariable("procInsId") String procInsId) ; |
|||
|
|||
@ApiOperation(value = "获取所有可回退的节点") |
|||
@PostMapping(value = "/returnList") |
|||
public ResultBean findReturnTaskList(@RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
|
|||
@ApiOperation(value = "退回任务") |
|||
@PostMapping(value = "/return") |
|||
public ResultBean taskReturn(@RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
@ApiOperation(value = "驳回任务") |
|||
@PostMapping(value = "/reject") |
|||
public ResultBean<List<LatestTaskVo>> taskReject(@RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
@ApiOperation(value = "撤回流程", response = FlowTaskDto.class) |
|||
@PostMapping(value = "/revokeProcess") |
|||
public ResultBean<List<LatestTaskVo>> revokeProcess(@RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
@ApiOperation(value = "终止流程") |
|||
@PostMapping(value = "/breakProcess") |
|||
public ResultBean breakProcess(@RequestBody FlowTaskVo flowTaskVo); |
|||
|
|||
@ApiOperation(value = "流程历史流转记录" ) |
|||
@GetMapping(value = "/flowRecord/{procInsId}/{deployId}") |
|||
public ResultBean flowRecord(@PathVariable(value = "procInsId")String procInsId, |
|||
@PathVariable(value = "deployId")String deployId); |
|||
|
|||
@ApiOperation(value = "业务系统流程历史流转记录" ) |
|||
@GetMapping(value = "/businessFlowRecord/{procInsId}") |
|||
public ResultBean<FlowRecordVo> businessFlowRecord(@PathVariable(value = "procInsId")String procInsId); |
|||
|
|||
@ApiOperation(value = "删除流程实例") |
|||
@DeleteMapping(value = "/deleteProcess/{procInsId}") |
|||
@ResponseBody |
|||
ResultBean deleteProcess(@PathVariable(value = "procInsId")String procInsId); |
|||
|
|||
@ApiOperation(value = "获取当前环节的下一分支节点") |
|||
@PostMapping(value = "/getNextTasks/{taskId}") |
|||
public ResultBean getNextTasks(@PathVariable(value = "taskId")String taskId); |
|||
|
|||
@ApiOperation(value = "根据流程实例的id获取最新待办环节") |
|||
@PostMapping(value = "/getLatestTasks/{procId}") |
|||
ResultBean<List<LatestTaskVo>> getLatestTasks(@PathVariable(value = "procId") String procId); |
|||
|
|||
|
|||
@ApiOperation(value = "根据流程实例的id获取最新待办环节") |
|||
@PostMapping(value = "/getProcessCirculationNodes") |
|||
ResultBean< List<FlowElement>> getProcessCirculationNodes(@RequestParam(value = "procId") String procI, |
|||
@RequestParam(value = "modelId") String modelId, |
|||
@RequestParam(value = "k")String k, |
|||
@RequestParam(value = "v")String v, |
|||
@RequestParam(value = "outcome")String outcome); |
|||
|
|||
@ApiOperation(value = "根据流程实例的id获取最新待办环节") |
|||
@PostMapping(value = "/getProcessCirculationNodesByMap") |
|||
ResultBean getProcessCirculationNodesByMap(@RequestBody BusinessVariables bv); |
|||
|
|||
@ApiOperation("获取流程图") |
|||
@GetMapping("/readXml/{sid}") |
|||
ResultBean readXml(@PathVariable(value ="sid") String sid); |
|||
@ApiOperation(value = "获取下一个环节") |
|||
@PostMapping(value = "/getNextNodesForSubmit") |
|||
ResultBean getNextNodesForSubmit(@RequestBody BusinessVariables bv); |
|||
@ApiOperation(value = "根据流程实例的id获取最新待办环节") |
|||
@PostMapping(value = "/获取上一个环节") |
|||
ResultBean getPreviousNodesForReject(@RequestBody BusinessVariables bv); |
|||
} |
@ -0,0 +1,186 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.yxt.anrui.flowable.api.flow.UserAndOrgPath; |
|||
import com.yxt.anrui.flowable.api.utils.RecordQuery; |
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessTaskQuery; |
|||
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|||
import com.yxt.anrui.flowable.test.StartProcessInstanceQuery; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import feign.Param; |
|||
import org.flowable.bpmn.model.FlowElement; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/20 15:43 |
|||
* @description |
|||
*/ |
|||
@Component |
|||
public class FlowTaskFeignFallBack implements FlowTaskFeign { |
|||
@Override |
|||
public ResultBean<String> startProcessInstanceByKey(StartProcessInstanceQuery startProcessInstanceQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<FlowTask>businessComplete (BusinessVariables dto) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> complete(FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<Page<FlowTaskDto>> todoList(PagerQuery<FlowTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<Page<FlowTaskDto>> businessTodoList(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<Page<FlowTaskDto>> businessTodoListForApp(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getTodoNum(String userSid) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<Integer> getTodoNum(UserAndOrgPath uaop) { |
|||
return null; |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public ResultBean doneList(PagerQuery<FlowTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean businessDoneList(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean businessDoneListForApp(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean flowRecord(RecordQuery recordQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean stopProcess(String userSid, FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public ResultBean myprocess(PagerQuery<FlowTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean businessMyprocess(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean processVariables(String taskId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getFlowViewer(String procInsId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean findReturnTaskList(FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean taskReturn(FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean taskReject(FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
@Override |
|||
public ResultBean revokeProcess(FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean breakProcess(FlowTaskVo flowTaskVo) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean flowRecord(String procInsId, String deployId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean businessFlowRecord(String procInsId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean deleteProcess(String procInsId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getNextTasks(String procInsId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getLatestTasks(String procId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean< List<FlowElement> > getProcessCirculationNodes(String procId, String modelId, |
|||
String k, String v, String outcome) { |
|||
return null; |
|||
} |
|||
@Override |
|||
public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean readXml(String deployId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getNextNodesForSubmit(BusinessVariables bv) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getPreviousNodesForReject(BusinessVariables bv) { |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/20 13:53 |
|||
* @description |
|||
*/ |
|||
public class FlowTaskQuery implements Query { |
|||
private static final long serialVersionUID = -7395299971899690002L; |
|||
@ApiModelProperty(value = "用户sid", required = true) |
|||
private String userSid; |
|||
|
|||
public String getUserSid() { |
|||
return userSid; |
|||
} |
|||
|
|||
public void setUserSid(String userSid) { |
|||
this.userSid = userSid; |
|||
} |
|||
} |
@ -0,0 +1,46 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/9/2 15:41 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
@ApiModel("工作流任务相关--请求参数") |
|||
public class FlowTaskQueryOne { |
|||
|
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
|
|||
@ApiModelProperty("用户sid") |
|||
private String userSid; |
|||
|
|||
@ApiModelProperty("任务意见") |
|||
private String comment; |
|||
|
|||
@ApiModelProperty("流程实例Id") |
|||
private String instanceId; |
|||
|
|||
@ApiModelProperty("节点") |
|||
private String targetKey; |
|||
|
|||
@ApiModelProperty("流程变量信息") |
|||
private Map<String, Object> values=new HashMap<>(); |
|||
|
|||
@ApiModelProperty("审批人") |
|||
private String assignee; |
|||
|
|||
@ApiModelProperty("候选人") |
|||
private List<String> candidateUsers; |
|||
|
|||
@ApiModelProperty("审批组") |
|||
private List<String> candidateGroups; |
|||
} |
@ -0,0 +1,53 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* <p>流程任务<p> |
|||
* |
|||
* @author XuanXuan |
|||
* @date 2021-04-03 |
|||
*/ |
|||
@ApiModel("工作流任务相关--请求参数") |
|||
@Data |
|||
public class FlowTaskVo { |
|||
|
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
@ApiModelProperty("业务sid") |
|||
private String businessSid; |
|||
@ApiModelProperty("用户Id") |
|||
private String userId; |
|||
@ApiModelProperty("用户Sid") |
|||
private String userSid; |
|||
|
|||
@ApiModelProperty("任务意见") |
|||
private String comment; |
|||
|
|||
@ApiModelProperty("流程实例Id") |
|||
private String instanceId; |
|||
|
|||
@ApiModelProperty("节点") |
|||
private String targetKey; |
|||
|
|||
@ApiModelProperty("流程变量信息") |
|||
private Map<String, Object> values=new HashMap<>(); |
|||
|
|||
@ApiModelProperty("审批人") |
|||
private String assignee; |
|||
|
|||
@ApiModelProperty("候选人") |
|||
private List<String> candidateUsers; |
|||
|
|||
@ApiModelProperty("审批组") |
|||
private List<String> candidateGroups; |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @author Xuan xuan |
|||
* @date 2021/4/21 20:55 |
|||
*/ |
|||
public class FlowViewerDto implements Serializable { |
|||
|
|||
private String key; |
|||
private boolean completed; |
|||
public String getKey() { |
|||
return key; |
|||
} |
|||
public void setKey(String key) { |
|||
this.key = key; |
|||
} |
|||
public boolean isCompleted() { |
|||
return completed; |
|||
} |
|||
public void setCompleted(boolean completed) { |
|||
this.completed = completed; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,34 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author liuguohui |
|||
* @Date 2022/1/11 |
|||
*/ |
|||
@ApiModel("最近环节") |
|||
@Data |
|||
public class LatestTaskVo implements Vo { |
|||
|
|||
@ApiModelProperty(value = "name_") |
|||
private String name_; |
|||
|
|||
@ApiModelProperty(value = "task_def_key_") |
|||
private String task_def_key_; |
|||
|
|||
@ApiModelProperty(value = "id_") |
|||
private String id_; |
|||
|
|||
@ApiModelProperty(value = "name_") |
|||
private String ASSIGNEE_; |
|||
|
|||
@ApiModelProperty(value = "orgPath") |
|||
private String orgPath; |
|||
|
|||
@ApiModelProperty(value = "incomingSourceRef") |
|||
private String incomingSourceRef; |
|||
} |
@ -0,0 +1,34 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/6 10:50 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class TaskQuery implements Query { |
|||
private static final long serialVersionUID = -6335769975925521118L; |
|||
@ApiModelProperty(value = "用户sid") |
|||
private String userSid; |
|||
@ApiModelProperty(value = "表单名称") |
|||
private String formName; |
|||
@ApiModelProperty(value = "开始时间") |
|||
private String startTime; |
|||
@ApiModelProperty(value = "结束时间") |
|||
private String endTime; |
|||
@ApiModelProperty(value = "业务系统的sid") |
|||
private String businessKey; |
|||
@ApiModelProperty(value = "待办人") |
|||
private String assignee; |
|||
@ApiModelProperty(value = "流程实例id") |
|||
private String processInstanceId; |
|||
@ApiModelProperty(value = "审批状态") |
|||
private Integer flowStatus; |
|||
@ApiModelProperty(value = "节点名称") |
|||
private String taskName; |
|||
|
|||
} |
@ -0,0 +1,111 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.yxt.anrui.flowable.api.utils.ORDERBY; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* QueryParamsVo |
|||
* |
|||
* @author bruce.liu |
|||
* @date 2021/04/22 15:03 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "TaskQueryParamsVo", description = "查询任务实例的参数") |
|||
public class TaskQueryParamsVo implements Serializable { |
|||
//用户的工号
|
|||
@ApiModelProperty( |
|||
value = "用户的工号", |
|||
example = "00004737" |
|||
) |
|||
private String userCode; |
|||
//系统标识
|
|||
@ApiModelProperty( |
|||
value = "系统标识", |
|||
example = "flow" |
|||
) |
|||
private String appSn; |
|||
//系统标识
|
|||
@ApiModelProperty( |
|||
value = "系统标识列表", |
|||
example = "flow itp" |
|||
) |
|||
private List<String> appSns; |
|||
//表单名称
|
|||
@ApiModelProperty( |
|||
value = "表单名称", |
|||
example = "费用报销" |
|||
) |
|||
private String formName; |
|||
//开始时间
|
|||
@ApiModelProperty( |
|||
value = "开始时间", |
|||
example = "2020-08-05 08:12:41" |
|||
) |
|||
private String startTime; |
|||
//结束时间
|
|||
@ApiModelProperty( |
|||
value = "结束时间", |
|||
example = "2020-08-05 08:12:41" |
|||
) |
|||
private String endTime; |
|||
//业务系统的id
|
|||
@ApiModelProperty( |
|||
value = "业务主键", |
|||
example = "1234656" |
|||
) |
|||
private String businessKey; |
|||
//待办人
|
|||
@ApiModelProperty( |
|||
value = "待办人", |
|||
example = "00004737" |
|||
) |
|||
private String assignee; |
|||
//排序字段 1 升序 0 降序
|
|||
@ApiModelProperty( |
|||
value = "排序字段 1 升序 0 降序", |
|||
example = "0" |
|||
) |
|||
private Integer orderFlag = 0; |
|||
//流程实例ID
|
|||
@ApiModelProperty( |
|||
value = "流程实例ID", |
|||
example = "sfsafsfasfasfhkshdfwiey" |
|||
) |
|||
private String processInstanceId; |
|||
//模型key
|
|||
@ApiModelProperty( |
|||
value = "流程模型key", |
|||
example = "modelKey" |
|||
) |
|||
private String modelKey; |
|||
//流程状态 1 审批中,2结束
|
|||
@ApiModelProperty( |
|||
value = "流程状态 1 审批中,2结束", |
|||
example = "1" |
|||
) |
|||
private Integer flowStatus; |
|||
@ApiModelProperty( |
|||
value = "查询关键字", |
|||
example = "财务" |
|||
) |
|||
private String keyword; |
|||
@ApiModelProperty( |
|||
value = "节点名称", |
|||
example = "部门经理" |
|||
) |
|||
//节点名称
|
|||
private String taskName; |
|||
/** |
|||
* 排序 key:字段 value 是规则 |
|||
*/ |
|||
@ApiModelProperty( |
|||
value = "排序 key:字段 value 是规则" |
|||
) |
|||
private Map<String, ORDERBY> orderbyMap; |
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
public class TaskUserInfo { |
|||
private String assigneeName; |
|||
private String assigneeHeadImage; |
|||
private String assigneeSid; |
|||
|
|||
public String getAssigneeSid() { |
|||
return assigneeSid; |
|||
} |
|||
|
|||
public void setAssigneeSid(String assigneeSid) { |
|||
this.assigneeSid = assigneeSid; |
|||
} |
|||
|
|||
public String getAssigneeName() { |
|||
return assigneeName; |
|||
} |
|||
|
|||
public void setAssigneeName(String assigneeName) { |
|||
this.assigneeName = assigneeName; |
|||
} |
|||
|
|||
public String getAssigneeHeadImage() { |
|||
return assigneeHeadImage; |
|||
} |
|||
|
|||
public void setAssigneeHeadImage(String assigneeHeadImage) { |
|||
this.assigneeHeadImage = assigneeHeadImage; |
|||
} |
|||
} |
@ -0,0 +1,81 @@ |
|||
package com.yxt.anrui.flowable.api.flowtask; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/6 10:29 |
|||
* @description 待办工作返回参数 |
|||
*/ |
|||
@Data |
|||
@ApiModel("工作流任务相关-返回参数") |
|||
public class TaskVo implements Vo { |
|||
private static final long serialVersionUID = 6590730229583603323L; |
|||
|
|||
@ApiModelProperty(value = "任务编号") |
|||
private String taskId; |
|||
@ApiModelProperty(value = "任务名称") |
|||
private String taskName; |
|||
@ApiModelProperty(value = "任务定义key") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "任务执行人sid") |
|||
private String assigneeSid; |
|||
|
|||
@ApiModelProperty(value = "任务执行人名称") |
|||
private String assigneeName; |
|||
|
|||
@ApiModelProperty("流程发起人sId") |
|||
private String startUserSid; |
|||
|
|||
@ApiModelProperty("流程发起人姓名") |
|||
private String startName; |
|||
@ApiModelProperty("流程类型") |
|||
private String category; |
|||
|
|||
@ApiModelProperty("流程变量信息") |
|||
private Object procVars; |
|||
|
|||
@ApiModelProperty("局部变量信息") |
|||
private Object taskLocalVars; |
|||
|
|||
@ApiModelProperty("流程部署编号") |
|||
private String deployId; |
|||
|
|||
@ApiModelProperty("流程ID") |
|||
private String procDefId; |
|||
|
|||
@ApiModelProperty("流程key") |
|||
private String procDefKey; |
|||
|
|||
@ApiModelProperty("流程定义名称") |
|||
private String procDefName; |
|||
|
|||
@ApiModelProperty("流程定义内置使用版本") |
|||
private int procDefVersion; |
|||
|
|||
@ApiModelProperty("流程实例ID") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("历史流程实例ID") |
|||
private String hisProcInsId; |
|||
|
|||
@ApiModelProperty("任务耗时") |
|||
private String duration; |
|||
|
|||
@ApiModelProperty("候选执行人") |
|||
private String candidate; |
|||
|
|||
@ApiModelProperty("任务创建时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date createTime; |
|||
|
|||
@ApiModelProperty("任务完成时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date finishTime; |
|||
} |
@ -0,0 +1,68 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.processcomment; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* Project: processcomment(流程评论) <br/> |
|||
* File: ProcessComment.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessComment <br/> |
|||
* Description: process_comment. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2023-01-30 14:40:37 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "process_comment", description = "process_comment") |
|||
@TableName("process_comment") |
|||
public class ProcessComment extends BaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty("评论人") |
|||
private String reviewer; // 评论人
|
|||
@ApiModelProperty("评论人sid") |
|||
private String reviewerSid; // 评论人sid
|
|||
@ApiModelProperty("评论时间") |
|||
private Date time; // 评论时间
|
|||
@ApiModelProperty("评论内容") |
|||
private String content; // 评论内容
|
|||
@ApiModelProperty("评论的流程id") |
|||
private String processId; // 评论的流程id
|
|||
@ApiModelProperty("评论的流程实列的sid") |
|||
private String processInstSid; // 评论的流程实列的sid
|
|||
|
|||
} |
@ -0,0 +1,69 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.processcomment; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* Project: processcomment(流程评论) <br/> |
|||
* File: ProcessCommentVo.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentVo <br/> |
|||
* Description: process_comment 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2023-01-30 14:40:37 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "process_comment 视图数据详情", description = "process_comment 视图数据详情") |
|||
public class ProcessCommentDetailsVo implements Vo { |
|||
|
|||
private String sid; // sid
|
|||
|
|||
@ApiModelProperty("评论人") |
|||
private String reviewer; // 评论人
|
|||
@ApiModelProperty("评论人sid") |
|||
private String reviewerSid; // 评论人sid
|
|||
@ApiModelProperty("评论时间") |
|||
private Date time; // 评论时间
|
|||
@ApiModelProperty("评论内容") |
|||
private String content; // 评论内容
|
|||
@ApiModelProperty("评论的流程id") |
|||
private String processId; // 评论的流程id
|
|||
@ApiModelProperty("评论的流程实列的sid") |
|||
private String processInstSid; // 评论的流程实列的sid
|
|||
|
|||
} |
@ -0,0 +1,69 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.processcomment; |
|||
|
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* Project: processcomment(流程评论) <br/> |
|||
* File: ProcessCommentDto.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentDto <br/> |
|||
* Description: process_comment 数据传输对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2023-01-30 14:40:37 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "process_comment 数据传输对象", description = "process_comment 数据传输对象") |
|||
public class ProcessCommentDto implements Dto { |
|||
|
|||
private String sid; // sid
|
|||
|
|||
@ApiModelProperty("评论人") |
|||
private String reviewer; // 评论人
|
|||
@ApiModelProperty("评论人sid") |
|||
private String reviewerSid; // 评论人sid
|
|||
@ApiModelProperty("评论时间") |
|||
private Date time; // 评论时间
|
|||
@ApiModelProperty("评论内容") |
|||
private String content; // 评论内容
|
|||
@ApiModelProperty("评论的流程id") |
|||
private String processId; // 评论的流程id
|
|||
@ApiModelProperty("评论的流程实列的sid") |
|||
private String processInstSid; // 评论的流程实列的sid
|
|||
|
|||
} |
@ -0,0 +1,81 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.processcomment; |
|||
|
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: processcomment(流程评论) <br/> |
|||
* File: ProcessCommentFeign.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentFeign <br/> |
|||
* Description: process_comment. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2023-01-30 14:40:37 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "processcomment-ProcessComment", |
|||
name = "anrui-flowable", |
|||
path = "v1/processcomment", |
|||
fallback = ProcessCommentFeignFallback.class) |
|||
public interface ProcessCommentFeign { |
|||
|
|||
@ApiOperation("根据条件分页查询数据的列表") |
|||
@PostMapping("/listPage") |
|||
@ResponseBody |
|||
public ResultBean<PagerVo<ProcessCommentVo>> listPage(@RequestBody PagerQuery<ProcessCommentQuery> pq); |
|||
|
|||
@ApiOperation("新增或修改") |
|||
@PostMapping("/save") |
|||
@ResponseBody |
|||
public ResultBean save(@RequestBody ProcessCommentDto dto); |
|||
|
|||
@ApiOperation("根据sid删除记录") |
|||
@DeleteMapping("/delBySids") |
|||
@ResponseBody |
|||
public ResultBean delBySids(@RequestBody String[] sids); |
|||
|
|||
@ApiOperation("根据SID获取一条记录") |
|||
@GetMapping("/fetchDetailsBySid/{sid}") |
|||
@ResponseBody |
|||
public ResultBean<ProcessCommentDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid); |
|||
@ApiOperation("根据流程实列的id获取流程相关的评论") |
|||
@GetMapping("/getCommentList/{processId}") |
|||
@ResponseBody |
|||
ResultBean<List<ProcessCommentVo>> getCommentList(@PathVariable("processId")String processId); |
|||
} |
@ -0,0 +1,77 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.processcomment; |
|||
|
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: processcomment(流程评论) <br/> |
|||
* File: ProcessCommentFeignFallback.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentFeignFallback <br/> |
|||
* Description: process_comment. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2023-01-30 14:40:37 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Component |
|||
public class ProcessCommentFeignFallback implements ProcessCommentFeign { |
|||
|
|||
@Override |
|||
public ResultBean<PagerVo<ProcessCommentVo>> listPage(PagerQuery<ProcessCommentQuery> pq){ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
return rb.setMsg("接口processcomment/processcomment/listPage无法访问"); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean save(ProcessCommentDto dto){ |
|||
return ResultBean.fireFail().setMsg("接口processcomment/processcomment/save无法访问"); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean delBySids( String[] sids){ |
|||
return ResultBean.fireFail().setMsg("接口processcomment/processcomment/delBySids无法访问"); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<ProcessCommentDetailsVo> fetchDetailsBySid(String sid){ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
return rb.setMsg("接口processcomment/processcomment/fetchDetailsBySid无法访问"); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<List<ProcessCommentVo>> getCommentList(String processId) { |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,67 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.processcomment; |
|||
|
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* Project: processcomment(流程评论) <br/> |
|||
* File: ProcessCommentQuery.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentQuery <br/> |
|||
* Description: process_comment 查询条件. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2023-01-30 14:40:37 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "process_comment 查询条件", description = "process_comment 查询条件") |
|||
public class ProcessCommentQuery implements Query { |
|||
|
|||
@ApiModelProperty("评论人") |
|||
private String reviewer; // 评论人
|
|||
@ApiModelProperty("评论人sid") |
|||
private String reviewerSid; // 评论人sid
|
|||
@ApiModelProperty("评论时间") |
|||
private Date time; // 评论时间
|
|||
@ApiModelProperty("评论内容") |
|||
private String content; // 评论内容
|
|||
@ApiModelProperty("评论的流程id") |
|||
private String processId; // 评论的流程id
|
|||
@ApiModelProperty("评论的流程实列的sid") |
|||
private String processInstSid; // 评论的流程实列的sid
|
|||
|
|||
} |
@ -0,0 +1,72 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.flowable.api.processcomment; |
|||
|
|||
|
|||
import com.yxt.anrui.flowable.api.flowtask.AppUserVo; |
|||
import com.yxt.common.core.vo.Vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* Project: processcomment(流程评论) <br/> |
|||
* File: ProcessCommentVo.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentVo <br/> |
|||
* Description: process_comment 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2023-01-30 14:40:37 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "process_comment 视图数据对象", description = "process_comment 视图数据对象") |
|||
public class ProcessCommentVo implements Vo { |
|||
|
|||
private String sid; // sid
|
|||
|
|||
@ApiModelProperty("评论人") |
|||
private String reviewer; // 评论人
|
|||
@ApiModelProperty("评论人sid") |
|||
private String reviewerSid; // 评论人sid
|
|||
@ApiModelProperty("评论时间") |
|||
private Date time; // 评论时间
|
|||
@ApiModelProperty("评论内容") |
|||
private String content; // 评论内容
|
|||
@ApiModelProperty("评论的流程id") |
|||
private String processId; // 评论的流程id
|
|||
@ApiModelProperty("评论的流程实列的sid") |
|||
private String processInstSid; // 评论的流程实列的sid
|
|||
@ApiModelProperty("taskUserInfo") |
|||
private AppUserVo taskUserInfo; // AppUserVo
|
|||
|
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.yxt.anrui.flowable.api.sysdeployform; |
|||
|
|||
import com.yxt.anrui.flowable.api.utils.Excel; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 流程实例关联表单对象 sys_instance_form |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-03-30 |
|||
*/ |
|||
@Data |
|||
public class SysDeployForm extends BaseEntity |
|||
{ |
|||
private static final long serialVersionUID = 1L; |
|||
/** 表单主键 */ |
|||
@Excel(name = "表单主键") |
|||
private Long formId; |
|||
|
|||
/** 流程定义主键 */ |
|||
@Excel(name = "流程定义主键") |
|||
private String deployId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,35 @@ |
|||
package com.yxt.anrui.flowable.api.sysform; |
|||
|
|||
import com.yxt.anrui.flowable.api.utils.Excel; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 流程表单对象 sys_task_form |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-03-30 |
|||
*/ |
|||
@ApiModel(value = "流程表单对象", description = "流程表单对象") |
|||
@Data |
|||
public class SysForm extends BaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 表单id |
|||
*/ |
|||
private String formId; |
|||
|
|||
/** |
|||
* 表单名称 |
|||
*/ |
|||
@Excel(name = "表单名称") |
|||
private String formName; |
|||
|
|||
/** |
|||
* 表单内容 |
|||
*/ |
|||
@Excel(name = "表单内容") |
|||
private String formContent; |
|||
} |
@ -0,0 +1,60 @@ |
|||
package com.yxt.anrui.flowable.api.sysform; |
|||
|
|||
import com.yxt.anrui.flowable.api.sysdeployform.SysDeployForm; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
@FeignClient( |
|||
contextId = "anrui-flowable-SysFormFeign", |
|||
name = "anrui-flowable", |
|||
path = "v1/flowable/form", |
|||
fallback = SysFormFeignFallBack.class) |
|||
public interface SysFormFeign { |
|||
/** |
|||
* 查询流程表单列表 |
|||
*/ |
|||
@PostMapping("/list") |
|||
@ResponseBody |
|||
public ResultBean<PagerVo<SysFormVo>> list( @RequestBody PagerQuery<SysFormQuery> pq) ; |
|||
|
|||
/** |
|||
* 导出流程表单列表 |
|||
*/ |
|||
@GetMapping("/export") |
|||
public ResultBean<String> export(SysForm sysForm) ; |
|||
|
|||
/** |
|||
* 获取流程表单详细信息 |
|||
*/ |
|||
@GetMapping(value = "/{formId}") |
|||
@ResponseBody |
|||
public String getInfo(@PathVariable("formId") Long formId); |
|||
|
|||
/** |
|||
* 新增流程表单 |
|||
*/ |
|||
@PostMapping(value="/add") |
|||
@ResponseBody |
|||
public ResultBean<String> add(@RequestBody SysForm sysForm) ; |
|||
|
|||
/** |
|||
* 修改流程表单 |
|||
*/ |
|||
@PutMapping |
|||
public ResultBean<String> edit(@RequestBody SysForm sysForm); |
|||
|
|||
/** |
|||
* 删除流程表单 |
|||
*/ |
|||
@DeleteMapping("/{formIds}") |
|||
public ResultBean<String> remove(@PathVariable Long[] formIds); |
|||
|
|||
|
|||
/** |
|||
* 挂载流程表单 |
|||
*/ |
|||
@PostMapping("/addDeployForm") |
|||
public ResultBean<String> addDeployForm(@RequestBody SysDeployForm sysDeployForm); |
|||
} |
@ -0,0 +1,51 @@ |
|||
package com.yxt.anrui.flowable.api.sysform; |
|||
|
|||
import com.yxt.anrui.flowable.api.sysdeployform.SysDeployForm; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/20 15:43 |
|||
* @description |
|||
*/ |
|||
@Component |
|||
public class SysFormFeignFallBack implements SysFormFeign { |
|||
|
|||
@Override |
|||
public ResultBean<PagerVo<SysFormVo>> list(PagerQuery<SysFormQuery> pq) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> export(SysForm sysForm) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public String getInfo(Long formId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> add(SysForm sysForm) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> edit(SysForm sysForm) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> remove(Long[] formIds) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> addDeployForm(SysDeployForm sysDeployForm) { |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.flowable.api.sysform; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 流程表单对象 sys_task_form |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-03-30 |
|||
*/ |
|||
@Data |
|||
public class SysFormQuery implements Query { |
|||
|
|||
private static final long serialVersionUID = -7125349257031748592L; |
|||
|
|||
/** |
|||
* 表单名称 |
|||
*/ |
|||
private String formName; |
|||
|
|||
/** |
|||
* 表单内容 |
|||
*/ |
|||
private String formContent; |
|||
|
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.yxt.anrui.flowable.api.sysform; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 流程表单对象 sys_task_form |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-03-30 |
|||
*/ |
|||
@Data |
|||
@ApiModel("流程表单对象") |
|||
public class SysFormVo implements Vo { |
|||
private static final long serialVersionUID = -3846821999540647493L; |
|||
/** |
|||
* 表单主键 |
|||
*/ |
|||
private Integer formId; |
|||
|
|||
private String formName; |
|||
|
|||
private String formContent; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.flowable.api.sysform; |
|||
|
|||
import com.yxt.anrui.flowable.api.utils.Excel; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 流程任务关联单对象 sys_task_form |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-04-03 |
|||
*/ |
|||
@Data |
|||
public class SysTaskForm extends BaseEntity |
|||
{ |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
|
|||
/** 表单主键 */ |
|||
@Excel(name = "表单主键") |
|||
private Long formId; |
|||
|
|||
/** 所属任务 */ |
|||
@Excel(name = "所属任务") |
|||
private String taskId; |
|||
|
|||
} |
@ -0,0 +1,46 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* Project: anrui-flowable(流程引擎) <br/> |
|||
* File: SysFormLink.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLink <br/> |
|||
* Description: 流程业务关联表. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-03-15 16:55:39 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@ApiModel(value = "流程业务关联表", description = "流程业务关联表") |
|||
@TableName("sys_form_link") |
|||
@Data |
|||
public class SysFormLink extends BaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
|
|||
@ApiModelProperty("业务sid") |
|||
private String businessSid; |
|||
|
|||
@ApiModelProperty("流程实例id") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("节点id") |
|||
private String taskDefKey; |
|||
|
|||
@ApiModelProperty("节点状态") |
|||
private String nodeState; |
|||
|
|||
@ApiModelProperty("状态判断:0未提交,1办理中, 2已办结, -1退回到发起人,-2终止") |
|||
private Integer flowState; |
|||
|
|||
@ApiModelProperty("业务类型(见SysFormLinkTypeEnum枚举类)") |
|||
private String formType; |
|||
} |
@ -0,0 +1,50 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* Project: anrui-flowable(流程引擎) <br/> |
|||
* File: SysFormLinkDto.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkDto <br/> |
|||
* Description: 流程业务关联表 数据传输对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-03-15 16:55:39 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@ApiModel(value = "流程业务关联表 数据传输对象", description = "流程业务关联表 数据传输对象") |
|||
@Data |
|||
public class SysFormLinkDto implements Dto { |
|||
|
|||
|
|||
@ApiModelProperty("业务sid") |
|||
@NotBlank(message = "业务sid不能为空") |
|||
private String businessSid; |
|||
|
|||
@ApiModelProperty("流程实例id") |
|||
@NotBlank(message = "流程实例不能为空") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("节点id") |
|||
private String taskDefKey; |
|||
|
|||
@ApiModelProperty("节点状态") |
|||
@NotBlank(message = "节点状态不能为空") |
|||
private String nodeState; |
|||
|
|||
@ApiModelProperty("状态判断:0未提交,1办理中, 2已办结, -1退回到发起人,-2终止") |
|||
private Integer flowState; |
|||
|
|||
@ApiModelProperty("业务类型") |
|||
@NotBlank(message = "业务类型") |
|||
private String formType; |
|||
} |
@ -0,0 +1,48 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.validation.Valid; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* Project: anrui-flowable(流程引擎) <br/> |
|||
* File: SysFormLinkFeign.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign <br/> |
|||
* Description: 流程业务关联表. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-03-15 16:55:39 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Api(tags = "流程业务关联表") |
|||
@FeignClient( |
|||
contextId = "anrui-flowable-SysFormLink", |
|||
name = "anrui-flowable", |
|||
path = "v1/sysformlink", |
|||
fallback = SysFormLinkFeignFallback.class) |
|||
public interface SysFormLinkFeign { |
|||
|
|||
@ApiOperation("保存流程业务关联表(任务发起时)") |
|||
@PostMapping("/save") |
|||
ResultBean save(@Valid @RequestBody SysFormLinkDto dto); |
|||
|
|||
@ApiOperation("根据业务sid查询节点状态") |
|||
@GetMapping("/selectStateByBusinessSid/{business}") |
|||
ResultBean<SysFormStateVo> selectStateByBusinessSid(@PathVariable("business") String business); |
|||
|
|||
@ApiOperation("更新关联表节点状态属性") |
|||
@PostMapping("/updateFiled") |
|||
ResultBean updateFiled(@RequestBody Map<String, Object> map); |
|||
|
|||
@ApiOperation("更新关联表节点状态属性") |
|||
@PostMapping("/selectByBusinessSid/{sid}") |
|||
ResultBean selectByBusinessSid(@PathVariable("sid") String sid); |
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* Project: anrui-flowable(流程引擎) <br/> |
|||
* File: SysFormLinkFeignFallback.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeignFallback <br/> |
|||
* Description: 流程业务关联表. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-03-15 16:55:39 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Component |
|||
public class SysFormLinkFeignFallback implements SysFormLinkFeign { |
|||
|
|||
@Override |
|||
public ResultBean save(SysFormLinkDto dto) { |
|||
return ResultBean.fireFail().setMsg("接口anrui-flowable/sysformlink/save无法访问"); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean selectStateByBusinessSid(String business) { |
|||
return ResultBean.fireFail().setMsg("接口anrui-flowable/sysformlink/selectStateByBusinessSid无法访问"); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean updateFiled(Map<String, Object> map) { |
|||
return ResultBean.fireFail().setMsg("接口anrui-flowable/sysformlink/updateFiled无法访问"); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean selectByBusinessSid(String sid) { |
|||
return ResultBean.fireFail().setMsg("接口anrui-flowable/sysformlink/selectBySid无法访问"); |
|||
} |
|||
} |
@ -0,0 +1,46 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
/** |
|||
* @author liuguohui |
|||
* @version 1.0 |
|||
* @Description: 流程状态枚举类 |
|||
* @date 2022/03/15 |
|||
*/ |
|||
public enum SysFormLinkFlowStateEnum { |
|||
|
|||
/* UNCOMMITTED("0", "待提交"), |
|||
PROCESSING("1", "办理中"), |
|||
FINISH("2", "已办结"), |
|||
REJECT("-1", "退回到发起人"), |
|||
BREAK("-2", "已终止")*/ |
|||
/* START("0", "发起(重新发起)"), |
|||
AGREE("1", "同意"), |
|||
REJECT("2", "驳回"), |
|||
WITHDRAW("3", "撤回"), |
|||
STOP("4", "终止"), |
|||
SETTLE("5", "办结")*/ |
|||
; |
|||
// 发起(重新发起)、同意、驳回、撤回、终止
|
|||
/** |
|||
* 流程类型名称 |
|||
*/ |
|||
private final String code; |
|||
|
|||
/** |
|||
* 流程代号 |
|||
*/ |
|||
private final String state; |
|||
|
|||
SysFormLinkFlowStateEnum(String code, String state) { |
|||
this.code = code; |
|||
this.state = state; |
|||
} |
|||
|
|||
public String getCode() { |
|||
return code; |
|||
} |
|||
|
|||
public String getState() { |
|||
return state; |
|||
} |
|||
} |
@ -0,0 +1,41 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* Project: anrui-flowable(流程引擎) <br/> |
|||
* File: SysFormLinkQuery.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkQuery <br/> |
|||
* Description: 流程业务关联表 查询条件. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-03-15 16:55:39 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@ApiModel(value = "流程业务关联表 查询条件", description = "流程业务关联表 查询条件") |
|||
@Data |
|||
public class SysFormLinkQuery implements Query { |
|||
|
|||
|
|||
@ApiModelProperty("业务sid") |
|||
private String businessSid; |
|||
|
|||
@ApiModelProperty("流程实例id") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("节点状态") |
|||
private String nodeState; |
|||
|
|||
@ApiModelProperty("状态判断:0未提交,1办理中, 2已办结, -1退回到发起人,-2终止") |
|||
private Integer flowState; |
|||
|
|||
@ApiModelProperty("业务类型(见SysFormLinkTypeEnum枚举类)") |
|||
private String formType; |
|||
} |
@ -0,0 +1,40 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
/** |
|||
* @author liuguohui |
|||
* @version 1.0 |
|||
* @Description: 流程业务关联表 类型枚举类 |
|||
* @date 2022/03/14 |
|||
*/ |
|||
public enum SysFormLinkTypeEnum { |
|||
|
|||
ORDER_DEPOSIT_VEHICLE("0001", "虚拟订单审批"), |
|||
CAR_SALE_CONTRACT("0002", "新车买卖合同审核"), |
|||
ADVANCE_GINVOICEAPPLY("0003", "提前开票审批"), |
|||
VEHICLE_APPLY("0004", "排产申请审批"), |
|||
BASE_OUTSOURCING_APPLICATION("0005", "外采申请审批"), |
|||
; |
|||
|
|||
/** |
|||
* 类型代号 |
|||
*/ |
|||
private final String code; |
|||
|
|||
/** |
|||
* 类型名称 |
|||
*/ |
|||
private final String type; |
|||
|
|||
SysFormLinkTypeEnum(String code, String type) { |
|||
this.code = code; |
|||
this.type = type; |
|||
} |
|||
|
|||
public String getCode() { |
|||
return code; |
|||
} |
|||
|
|||
public String getType() { |
|||
return type; |
|||
} |
|||
} |
@ -0,0 +1,44 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* Project: anrui-flowable(流程引擎) <br/> |
|||
* File: SysFormLinkVo.java <br/> |
|||
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkVo <br/> |
|||
* Description: 流程业务关联表 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-03-15 16:55:39 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@ApiModel(value = "流程业务关联表 视图数据对象", description = "流程业务关联表 视图数据对象") |
|||
@Data |
|||
public class SysFormLinkVo implements Vo { |
|||
|
|||
|
|||
@ApiModelProperty("业务sid") |
|||
private String businessSid; |
|||
|
|||
@ApiModelProperty("流程实例id") |
|||
private String procInsId; |
|||
|
|||
@ApiModelProperty("节点id") |
|||
private String taskDefKey; |
|||
|
|||
@ApiModelProperty("节点状态") |
|||
private String nodeState; |
|||
|
|||
@ApiModelProperty("状态判断:0未提交,1办理中, 2已办结, -1退回到发起人,-2终止") |
|||
private Integer flowState; |
|||
|
|||
@ApiModelProperty("业务类型(见SysFormLinkTypeEnum枚举类)") |
|||
private String formType; |
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.flowable.api.sysformlink; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author liuguohui |
|||
* @version 1.0 |
|||
* @description |
|||
* @date 2022/03/15 |
|||
*/ |
|||
@ApiModel("流程状态") |
|||
@Data |
|||
public class SysFormStateVo implements Vo { |
|||
|
|||
@ApiModelProperty("节点状态") |
|||
private String nodeState; |
|||
|
|||
@ApiModelProperty("状态判断:0未提交,1办理中, 2已办结, -1退回到发起人,-2终止") |
|||
private Integer flowState; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @author liuguohui |
|||
* @version 1.0 |
|||
* @description |
|||
* @date 2022/03/18 |
|||
*/ |
|||
@Data |
|||
public class AppSysProUrlQuery extends SysProUrlQuery{ |
|||
|
|||
@NotBlank(message = "业务sid不能为空") |
|||
private String businessSid; |
|||
|
|||
@NotBlank(message = "任务id不能为空") |
|||
private String taskId; |
|||
|
|||
@NotBlank(message = "流程部署编号不能为空") |
|||
private String deployId; |
|||
|
|||
@NotBlank(message = "流程实例id不能为空") |
|||
private String procInsId; |
|||
} |
@ -0,0 +1,41 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author liuguohui |
|||
* @version 1.0 |
|||
* @description |
|||
* @date 2022/03/18 |
|||
*/ |
|||
@ApiModel("app端待办、已办返回url") |
|||
@Data |
|||
public class AppUrlVo implements Vo { |
|||
|
|||
@ApiModelProperty(name = "app路径") |
|||
private String path; |
|||
|
|||
@ApiModelProperty(name = "插件名称") |
|||
private String modulePluginName; |
|||
|
|||
@ApiModelProperty(name = "插件版本") |
|||
private Integer moduleVersion; |
|||
|
|||
@ApiModelProperty(name = "msgSid") |
|||
private String msgSid; |
|||
|
|||
@ApiModelProperty(name = "json 串(procInsId,businessSid,deployId,taskId)") |
|||
private String json; |
|||
|
|||
@ApiModelProperty(name = "类型,0.内置Activity 1.内置WebView 2.RePlugin插件") |
|||
private String type; |
|||
|
|||
@ApiModelProperty(name = "跳转实体类路径") |
|||
private String moduleAction; |
|||
|
|||
@ApiModelProperty(name = "moduleSid") |
|||
private String moduleSid; |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author liuguohui |
|||
* @version 1.0 |
|||
* @description |
|||
* @date 2022/03/18 |
|||
*/ |
|||
@ApiModel("pc端待办、已办返回url") |
|||
@Data |
|||
public class PcUrlVo implements Vo { |
|||
|
|||
@ApiModelProperty(name = "url") |
|||
private String url; |
|||
} |
@ -0,0 +1,65 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 流程表单对象 Sys_Pro_Url |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-03-30 |
|||
*/ |
|||
@ApiModel(value = "流程业务表单url对象", description = "流程业务表单url对象") |
|||
@Data |
|||
public class SysProUrl extends BaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* url |
|||
*/ |
|||
@ApiModelProperty(name = "url") |
|||
private String url; |
|||
|
|||
/** |
|||
* 类型办理或者详情 |
|||
*/ |
|||
@ApiModelProperty(name = "类型办理或者详情") |
|||
private String type; |
|||
|
|||
/** |
|||
* 终端:pc/mobile |
|||
*/ |
|||
@ApiModelProperty(name = "终端:pc/mobile") |
|||
private String terminal; |
|||
/** |
|||
* 表单id |
|||
*/ |
|||
@ApiModelProperty(name = "表单id") |
|||
private String formId; |
|||
/** |
|||
* 名称 |
|||
*/ |
|||
@ApiModelProperty(name = "名称") |
|||
private String title; |
|||
/** |
|||
* 流程定义id |
|||
*/ |
|||
@ApiModelProperty(name = "流程定义id") |
|||
private String proc_def_id; |
|||
|
|||
/** |
|||
* 节点 |
|||
*/ |
|||
@ApiModelProperty(name = "节点id") |
|||
private String taskDefKey; |
|||
|
|||
/** |
|||
* app插件名称(模块名称) |
|||
*/ |
|||
private String modulePluginName; |
|||
|
|||
@ApiModelProperty(value = "环节名称") |
|||
private String taskName; |
|||
} |
@ -0,0 +1,62 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* <p>流程业务表单url对象<p> |
|||
*/ |
|||
@ApiModel("流程业务表单url对象") |
|||
@Data |
|||
public class SysProUrlDto implements Serializable { |
|||
|
|||
private static final long serialVersionUID = -2191041848170198498L; |
|||
@ApiModelProperty(value = "sid") |
|||
private String sid; |
|||
/** |
|||
* url |
|||
*/ |
|||
@ApiModelProperty(value = "办理或详情的url") |
|||
private String url; |
|||
|
|||
/** |
|||
* 类型办理或者详情 |
|||
*/ |
|||
@ApiModelProperty(value = "办理:1,详情2") |
|||
private String type; |
|||
|
|||
/** |
|||
* 终端:pc/mobile |
|||
*/ |
|||
@ApiModelProperty(value = "pc端:1,移动端2") |
|||
private String terminal; |
|||
/** |
|||
* 名称 |
|||
*/ |
|||
@ApiModelProperty(value = "名称") |
|||
private String title; |
|||
/** |
|||
* 流程定义id |
|||
*/ |
|||
@ApiModelProperty(value = "流程定义id") |
|||
private String proc_def_id; |
|||
|
|||
/** |
|||
* 节点 |
|||
*/ |
|||
@ApiModelProperty(value = "节点id") |
|||
private String taskDefKey; |
|||
|
|||
/** |
|||
* app插件名称(模块名称) |
|||
*/ |
|||
@ApiModelProperty(value = "app版本sid#类型(1框架2插件)") |
|||
private String modulePluginName; |
|||
|
|||
@ApiModelProperty(value = "环节名称") |
|||
private String taskName; |
|||
|
|||
} |
@ -0,0 +1,89 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.cloud.openfeign.SpringQueryMap; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.validation.Valid; |
|||
import java.util.List; |
|||
|
|||
@FeignClient( |
|||
contextId = "anrui-flowable-SysProUrlFeign", |
|||
name = "anrui-flowable", |
|||
path = "v1/flowable/proUrl", |
|||
fallback = SysProUrlFeignFallBack.class) |
|||
public interface SysProUrlFeign { |
|||
/** |
|||
* 查询流程业务表单url对 象 |
|||
*/ |
|||
@PostMapping("/list") |
|||
public ResultBean<PagerVo<SysProUrlVo>> list(@RequestBody PagerQuery<SysProUrlQuery> pq); |
|||
|
|||
|
|||
/** |
|||
* 获取流程业务表单url对象 |
|||
*/ |
|||
@GetMapping(value = "/getSysProUrl/{formId}") |
|||
public ResultBean getSysProUrl(@PathVariable("formId") int formId); |
|||
|
|||
/** |
|||
* 根据流程实例id获取form信息 |
|||
*/ |
|||
@GetMapping(value = "/getForm/{proId}") |
|||
public ResultBean getForm(@PathVariable("proId") String proId); |
|||
|
|||
/** |
|||
* 新增流程业务表单url对象 |
|||
*/ |
|||
@PostMapping(value = "/add") |
|||
public ResultBean<String> add(@SpringQueryMap SysProUrlDto dto); |
|||
|
|||
/** |
|||
* 删除流程业务表单url对象 |
|||
*/ |
|||
@DeleteMapping("/{formIds}") |
|||
public ResultBean<String> remove(@PathVariable("formIds") Long[] formIds); |
|||
|
|||
@ApiOperation("pc根据流程定义id,节点id,终端及类型查询流程与业务表单url") |
|||
@PostMapping("/selectPcUrlByTaskDefKey") |
|||
ResultBean<PcUrlVo> selectPcUrlByTaskDefKey(@Valid @RequestBody SysProUrlQuery query); |
|||
|
|||
@ApiOperation("app根据流程定义id,节点id,终端及类型查询流程与业务表单url") |
|||
@PostMapping("/selectAppUrlByTaskDefKey") |
|||
ResultBean<AppUrlVo> selectAppUrlByTaskDefKey(@Valid @RequestBody AppSysProUrlQuery query); |
|||
|
|||
|
|||
/** |
|||
* pc根据流程定义id,节点id,终端及类型查询流程与业务表单url |
|||
* |
|||
* @param procDefId 流程定义id |
|||
* @param taskDefKey 节点id |
|||
* @param type 类型:1办理,2详情 |
|||
* @return |
|||
*/ |
|||
@ApiOperation("查询流程与业务表单的url") |
|||
@GetMapping("/selectUrlByKey") |
|||
ResultBean<List<SysProUrlVo>> selectUrlByKey(@ApiParam(value = "流程定义id") @RequestParam(value = "procDefId") String procDefId, |
|||
@ApiParam(value = "节点id") @RequestParam(value = "taskDefKey") String taskDefKey, |
|||
@ApiParam(value = "类型:1办理,2详情") @RequestParam(value = "type") String type); |
|||
/** |
|||
* pc根据流程定义id,节点id,终端及类型查询流程与业务表单url |
|||
* |
|||
* @param procDefId 流程定义id |
|||
* @param taskDefKey 节点id |
|||
* @param type 类型:1办理,2详情 |
|||
* @return |
|||
*/ |
|||
@ApiOperation("查询流程与业务表单的url") |
|||
@GetMapping("/selectUrlByKeyWithTerminal") |
|||
ResultBean<SysProUrlVo> selectUrlByKey(@ApiParam(value = "流程定义id") @RequestParam(value = "procDefId") String procDefId, |
|||
@ApiParam(value = "节点id") @RequestParam(value = "taskDefKey") String taskDefKey, |
|||
@ApiParam(value = "类型:1办理,2详情") @RequestParam(value = "type") String type |
|||
,@ApiParam(value = "终端:1pc,2移动") @RequestParam(value = "terminal") String terminal); |
|||
|
|||
} |
@ -0,0 +1,62 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/20 15:43 |
|||
* @description |
|||
*/ |
|||
@Component |
|||
public class SysProUrlFeignFallBack implements SysProUrlFeign { |
|||
|
|||
@Override |
|||
public ResultBean<PagerVo<SysProUrlVo>> list(PagerQuery<SysProUrlQuery> pq) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getSysProUrl(int formSid) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean getForm(String proId) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> add(SysProUrlDto dto) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> remove(Long[] formIds) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<PcUrlVo> selectPcUrlByTaskDefKey(SysProUrlQuery query) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<AppUrlVo> selectAppUrlByTaskDefKey(AppSysProUrlQuery query) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<List<SysProUrlVo>> selectUrlByKey(String procDefId, String taskDefKey, String type) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<SysProUrlVo> selectUrlByKey(String procDefId, String taskDefKey, String type,String terminal) { |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,60 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* 流程表单对象 sys_task_form |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-03-30 |
|||
*/ |
|||
@Data |
|||
public class SysProUrlQuery implements Query { |
|||
|
|||
|
|||
/** |
|||
* 表单主键 |
|||
*/ |
|||
private String url; |
|||
|
|||
/** |
|||
* 类型办理或者详情 |
|||
*/ |
|||
@NotBlank(message = "类型不能为空") |
|||
private String type; |
|||
|
|||
/** |
|||
* 终端:pc/mobile |
|||
*/ |
|||
private String terminal; |
|||
/** |
|||
* 表单id |
|||
*/ |
|||
private String formId; |
|||
/** |
|||
* 名称 |
|||
*/ |
|||
private String title; |
|||
/** |
|||
* 流程定义id |
|||
*/ |
|||
@ApiModelProperty(name = "流程定义id") |
|||
@NotBlank(message = "流程定义id不能为空") |
|||
private String proc_def_id; |
|||
|
|||
/** |
|||
* 节点 |
|||
*/ |
|||
@ApiModelProperty(name = "节点id") |
|||
@NotBlank(message = "节点id不能为空") |
|||
private String taskDefKey; |
|||
|
|||
/** |
|||
* app插件名称(模块名称) |
|||
*/ |
|||
private String modulePluginName; |
|||
} |
@ -0,0 +1,54 @@ |
|||
package com.yxt.anrui.flowable.api.sysprourl; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* 流程业务表单url对象 SysProUrl |
|||
* |
|||
* @author XuanXuan Xuan |
|||
* @date 2021-03-30 |
|||
*/ |
|||
@Data |
|||
@ApiModel("流程业务表单url对象") |
|||
public class SysProUrlVo implements Vo { |
|||
|
|||
/** |
|||
* 表单主键 |
|||
*/ |
|||
private String url; |
|||
|
|||
/** |
|||
* 类型办理或者详情 |
|||
*/ |
|||
private String type; |
|||
|
|||
/** |
|||
* 终端:pc/mobile |
|||
*/ |
|||
private String terminal; |
|||
/** |
|||
* 表单id |
|||
*/ |
|||
private String formId; |
|||
/** |
|||
* 名称 |
|||
*/ |
|||
private String title; |
|||
|
|||
/** |
|||
* 流程定义id |
|||
*/ |
|||
private String proc_def_id; |
|||
|
|||
/** |
|||
* 节点id |
|||
*/ |
|||
private String taskDefKey; |
|||
|
|||
/** |
|||
* app插件名称(模块名称) |
|||
*/ |
|||
private String modulePluginName; |
|||
} |
@ -0,0 +1,88 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
|
|||
import com.yxt.common.base.utils.StringUtils; |
|||
|
|||
import java.nio.charset.Charset; |
|||
import java.nio.charset.StandardCharsets; |
|||
|
|||
/** |
|||
* 字符集工具类 |
|||
* |
|||
* @author ruoyi |
|||
*/ |
|||
public class CharsetKit |
|||
{ |
|||
/** ISO-8859-1 */ |
|||
public static final String ISO_8859_1 = "ISO-8859-1"; |
|||
/** UTF-8 */ |
|||
public static final String UTF_8 = "UTF-8"; |
|||
/** GBK */ |
|||
public static final String GBK = "GBK"; |
|||
|
|||
/** ISO-8859-1 */ |
|||
public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); |
|||
/** UTF-8 */ |
|||
public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); |
|||
/** GBK */ |
|||
public static final Charset CHARSET_GBK = Charset.forName(GBK); |
|||
|
|||
/** |
|||
* 转换为Charset对象 |
|||
* |
|||
* @param charset 字符集,为空则返回默认字符集 |
|||
* @return Charset |
|||
*/ |
|||
public static Charset charset(String charset) |
|||
{ |
|||
return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); |
|||
} |
|||
|
|||
/** |
|||
* 转换字符串的字符集编码 |
|||
* |
|||
* @param source 字符串 |
|||
* @param srcCharset 源字符集,默认ISO-8859-1 |
|||
* @param destCharset 目标字符集,默认UTF-8 |
|||
* @return 转换后的字符集 |
|||
*/ |
|||
public static String convert(String source, String srcCharset, String destCharset) |
|||
{ |
|||
return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); |
|||
} |
|||
|
|||
/** |
|||
* 转换字符串的字符集编码 |
|||
* |
|||
* @param source 字符串 |
|||
* @param srcCharset 源字符集,默认ISO-8859-1 |
|||
* @param destCharset 目标字符集,默认UTF-8 |
|||
* @return 转换后的字符集 |
|||
*/ |
|||
public static String convert(String source, Charset srcCharset, Charset destCharset) |
|||
{ |
|||
if (null == srcCharset) |
|||
{ |
|||
srcCharset = StandardCharsets.ISO_8859_1; |
|||
} |
|||
|
|||
if (null == destCharset) |
|||
{ |
|||
destCharset = StandardCharsets.UTF_8; |
|||
} |
|||
|
|||
if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) |
|||
{ |
|||
return source; |
|||
} |
|||
return new String(source.getBytes(srcCharset), destCharset); |
|||
} |
|||
|
|||
/** |
|||
* @return 系统字符集编码 |
|||
*/ |
|||
public static String systemCharset() |
|||
{ |
|||
return Charset.defaultCharset().name(); |
|||
} |
|||
} |
File diff suppressed because it is too large
@ -0,0 +1,165 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
import java.lang.annotation.ElementType; |
|||
import java.lang.annotation.Retention; |
|||
import java.lang.annotation.RetentionPolicy; |
|||
import java.lang.annotation.Target; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 自定义导出Excel数据注解 |
|||
* |
|||
* @author ruoyi |
|||
*/ |
|||
@Retention(RetentionPolicy.RUNTIME) |
|||
@Target(ElementType.FIELD) |
|||
public @interface Excel |
|||
{ |
|||
/** |
|||
* 导出时在excel中排序 |
|||
*/ |
|||
public int sort() default Integer.MAX_VALUE; |
|||
|
|||
/** |
|||
* 导出到Excel中的名字. |
|||
*/ |
|||
public String name() default ""; |
|||
|
|||
/** |
|||
* 日期格式, 如: yyyy-MM-dd |
|||
*/ |
|||
public String dateFormat() default ""; |
|||
|
|||
/** |
|||
* 如果是字典类型,请设置字典的type值 (如: sys_user_sex) |
|||
*/ |
|||
public String dictType() default ""; |
|||
|
|||
/** |
|||
* 读取内容转表达式 (如: 0=男,1=女,2=未知) |
|||
*/ |
|||
public String readConverterExp() default ""; |
|||
|
|||
/** |
|||
* 分隔符,读取字符串组内容 |
|||
*/ |
|||
public String separator() default ","; |
|||
|
|||
/** |
|||
* BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) |
|||
*/ |
|||
public int scale() default -1; |
|||
|
|||
/** |
|||
* BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN |
|||
*/ |
|||
public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; |
|||
|
|||
/** |
|||
* 导出类型(0数字 1字符串) |
|||
*/ |
|||
public ColumnType cellType() default ColumnType.STRING; |
|||
|
|||
/** |
|||
* 导出时在excel中每个列的高度 单位为字符 |
|||
*/ |
|||
public double height() default 14; |
|||
|
|||
/** |
|||
* 导出时在excel中每个列的宽 单位为字符 |
|||
*/ |
|||
public double width() default 16; |
|||
|
|||
/** |
|||
* 文字后缀,如% 90 变成90% |
|||
*/ |
|||
public String suffix() default ""; |
|||
|
|||
/** |
|||
* 当值为空时,字段的默认值 |
|||
*/ |
|||
public String defaultValue() default ""; |
|||
|
|||
/** |
|||
* 提示信息 |
|||
*/ |
|||
public String prompt() default ""; |
|||
|
|||
/** |
|||
* 设置只能选择不能输入的列内容. |
|||
*/ |
|||
public String[] combo() default {}; |
|||
|
|||
/** |
|||
* 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. |
|||
*/ |
|||
public boolean isExport() default true; |
|||
|
|||
/** |
|||
* 另一个类中的属性名称,支持多级获取,以小数点隔开 |
|||
*/ |
|||
public String targetAttr() default ""; |
|||
|
|||
/** |
|||
* 是否自动统计数据,在最后追加一行统计数据总和 |
|||
*/ |
|||
public boolean isStatistics() default false; |
|||
|
|||
/** |
|||
* 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右) |
|||
*/ |
|||
Align align() default Align.AUTO; |
|||
|
|||
public enum Align |
|||
{ |
|||
AUTO(0), LEFT(1), CENTER(2), RIGHT(3); |
|||
private final int value; |
|||
|
|||
Align(int value) |
|||
{ |
|||
this.value = value; |
|||
} |
|||
|
|||
public int value() |
|||
{ |
|||
return this.value; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 字段类型(0:导出导入;1:仅导出;2:仅导入) |
|||
*/ |
|||
Type type() default Type.ALL; |
|||
|
|||
public enum Type |
|||
{ |
|||
ALL(0), EXPORT(1), IMPORT(2); |
|||
private final int value; |
|||
|
|||
Type(int value) |
|||
{ |
|||
this.value = value; |
|||
} |
|||
|
|||
public int value() |
|||
{ |
|||
return this.value; |
|||
} |
|||
} |
|||
|
|||
public enum ColumnType |
|||
{ |
|||
NUMERIC(0), STRING(1), IMAGE(2); |
|||
private final int value; |
|||
|
|||
ColumnType(int value) |
|||
{ |
|||
this.value = value; |
|||
} |
|||
|
|||
public int value() |
|||
{ |
|||
return this.value; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
/** |
|||
* @author bruce.liu |
|||
* @Description 排序的enum |
|||
* @time 2021年4月16日 |
|||
*/ |
|||
public enum ORDERBY { |
|||
DESC, ASC; |
|||
|
|||
public ORDERBY reverse() { |
|||
return (this == ASC) ? DESC : ASC; |
|||
} |
|||
} |
@ -0,0 +1,103 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
/** |
|||
* 流程定义:流程名称与代号枚举类 |
|||
*/ |
|||
public enum ProcDefEnum { |
|||
|
|||
/***************************正式流程id***********************************/ |
|||
|
|||
ORDERDEPOSITAPPROVE("简易订单-订金收取", "process_pkyns85b:4:575004"), |
|||
ORDERDEPOSITVEHICLEAPPROVE("简易订单-车辆预定", "process_pkyns85b:5:575008"), |
|||
ORDERAPPROVE("订单审批", "order_approve_96asleqi:1:227504"), |
|||
SALESPOLICY("销售政策审批流程", "process_biw9gfh7:2:727504"),//TODO:正式新2022-11-25
|
|||
FINBILLAPPLICATION("开票申请流程", "process_t5ksueur:1:252833"), |
|||
BUSCENTERADVANCEGINVOICEAPPLY("提前开票申请流程", "advance_ginvoiceapply:1:242664"), |
|||
ARREARSCARRYVEHICLE("欠款提车审批流程", "process_8ax1xxn3:1:795004"), |
|||
VEHICLEAPPLY("排产申请流程", "process_9egcg169:12:735004"),//TODO:正式新2022-11-25
|
|||
SCMCARTRANSFER("库存地点变更申请", "process_3bc4p2em:8:725008"), //TODO:正式新2022-11-25
|
|||
BASEVEHICLEACTUALSALES("未售买断", "process_6qx07b75:8:725012"),//ToDo:正式新2022-11-25
|
|||
FINCOSTAPPLY("费用申请", "process_u0pahv0s:6:725016"),//ToDo:正式新2022-11-25
|
|||
FINPAYAPPLY("付款申请", "process_gin2tntb:4:725020"),//ToDo:正式新2022-11-25
|
|||
RECORDAPPLICATION("入库申请", "process_xbwq2c7p:3:675024"),//TODO
|
|||
SCMVEHICLERETURN("采购退库", "process_md8aeoap:2:722508"),//ToDo:正式新2022-11-25
|
|||
SEALAPPLY("盖章申请", "process_7h0z66tp:1:240064"), |
|||
SALESORDER("销售订单审批流程", "process_p5ils2rn:7:827504"), |
|||
BASEOUTSOURCINGAPPLICATION("外采申请", "process_5tqysnjc:5:722504"),//ToDo:正式新2022-11-25
|
|||
BASEMODELMODPRICE("车型调价申请", "process_kydcif7k:7:722512"),//ToDo:正式新2022-11-25
|
|||
BASEINTERNALPURCHASE("调车申请", "process_i6luw5xq:3:722516"),//ToDo:正式新2022-11-25
|
|||
BASEACCADJAPPLY("调账申请", "process_r6pyzqoz:2:722520"), //ToDo:正式新2022-11-25
|
|||
BUSDELIVEREDAPPLY("出库申请", "process_wgt1n66l:3:770004"), |
|||
BASESHUNINVOICAPPLY("调车开票申请", "process_u4xrvaso:1:400008"), |
|||
BASEVEHINSTALLMODPRICE("上装调价申请", "process_s0a0svth:1:492508"), |
|||
SCMVEHREBATEWITHAPPLY("单车返利预提申请", "process_qegarc7r:1:535004"), |
|||
SCMVEHREBATECHECKAPPLY("单车返利核对申请", "process_3xtbbru8:1:560004"), |
|||
SCMSPECIALREBATEWITHAPPLY("专项返利预提申请", "process_l0yxpgs2:1:590004"), |
|||
SCMSPECIALREBATECHECKAPPLY("专项返利核对申请", "process_qw22vupn:1:590008"), |
|||
SCMSPECIALREBATECHEDISTRIBUTE("专项返利分配申请", "process_h3w1aval:1:615004"), |
|||
SCMCOLLECTIONREBATEWITHAPPLY("回款返利预提申请", "process_k4lodiyg:1:630004"), |
|||
SCMCOLLECTIONREBATECHECKAPPLY("回款返利核对申请", "process_fgrv1mbv:1:630008"), |
|||
CONTRACTAPPLY("合同审核", "process_gd8c9xd5:1:545008"), |
|||
BASEDISPACKAGEAPPLY("优惠包申请流程", "process_l8i6tqho:1:967504"), |
|||
|
|||
|
|||
/******************************测试流程id*********************************************/ |
|||
|
|||
/*ORDERDEPOSITAPPROVE("简易订单-订金收取", "process_pkyns85b:4:575004"), |
|||
ORDERDEPOSITVEHICLEAPPROVE("简易订单-车辆预定", "process_pkyns85b:5:575008"), |
|||
ORDERAPPROVE("订单审批", "order_approve_96asleqi:1:227504"), |
|||
RECORDAPPLICATION("入库申请", "process_xbwq2c7p:3:675024"), |
|||
SEALAPPLY("盖章申请", "process_7h0z66tp:1:240064"), |
|||
SALESORDER("销售订单审批流程", "process_p5ils2rn:7:1123496"), |
|||
BUSDELIVEREDAPPLY("出库申请", "process_wgt1n66l:2:357504"), |
|||
BASESHUNINVOICAPPLY("调车开票申请", "process_u4xrvaso:1:400008"), |
|||
BASEVEHINSTALLMODPRICE("上装调价申请", "process_s0a0svth:1:492508"), |
|||
SCMVEHREBATEWITHAPPLY("单车返利预提申请", "process_qegarc7r:1:535004"), |
|||
SCMVEHREBATECHECKAPPLY("单车返利核对申请", "process_3xtbbru8:1:560004"), |
|||
SCMSPECIALREBATEWITHAPPLY("专项返利预提申请", "process_l0yxpgs2:1:590004"), |
|||
SCMSPECIALREBATECHECKAPPLY("专项返利核对申请", "process_qw22vupn:1:590008"), |
|||
SCMSPECIALREBATECHEDISTRIBUTE("专项返利分配申请", "process_h3w1aval:1:615004"), |
|||
SCMCOLLECTIONREBATEWITHAPPLY("回款返利预提申请", "process_k4lodiyg:1:630004"), |
|||
SCMCOLLECTIONREBATECHECKAPPLY("回款返利核对申请", "process_fgrv1mbv:1:630008"), |
|||
CONTRACTAPPLY("合同审核", "process_gd8c9xd5:1:545008"), |
|||
SCMCARTRANSFER("库存地点变更申请", "process_3bc4p2em:8:860004"), //TODO:测试
|
|||
BASEVEHICLEACTUALSALES("未售买断", "process_6qx07b75:9:852504"),//ToDo:测试
|
|||
VEHICLEAPPLY("排产申请流程", "process_9egcg169:12:910004"),//TODO:测试
|
|||
FINCOSTAPPLY("费用申请","process_u0pahv0s:6:902504"),//ToDo:测试
|
|||
FINPAYAPPLY("付款申请","process_gin2tntb:4:902508"),//ToDo:测试
|
|||
ARREARSCARRYVEHICLE("欠款提车审批流程", "process_8ax1xxn3:2:862512"),//测试(新)2022、11、22
|
|||
BUSCENTERADVANCEGINVOICEAPPLY("提前开票申请流程", "process_zt1gov6e:4:862504"), //测试
|
|||
FINBILLAPPLICATION("开票申请流程", "process_sndce6s9:2:937504"),//测试(新)2022、11、22
|
|||
BASEOUTSOURCINGAPPLICATION("外采申请", "process_5tqysnjc:5:867504"),//测试外采流程定义id
|
|||
BASEMODELMODPRICE("车型调价申请", "process_kydcif7k:7:867520"),//测试车型调价流程定义id
|
|||
BASEINTERNALPURCHASE("调车申请", "process_i6luw5xq:4:892504"),//测试调车流程定义id
|
|||
BASEACCADJAPPLY("调账申请", "process_r6pyzqoz:2:867516"), //测试调账流程定义id
|
|||
SCMVEHICLERETURN("采购退库", "process_md8aeoap:2:867508"),//测试采购退库流程定义id
|
|||
SALESPOLICY("销售政策审批流程", "process_biw9gfh7:2:867524"),//测试销售政策流程定义id
|
|||
BASEDISPACKAGEAPPLY("优惠包申请流程", "process_l8i6tqho:1:967504"),//测试优惠包申请流程定义id*/
|
|||
; |
|||
|
|||
ProcDefEnum(String proDefName, String proDefId) { |
|||
this.proDefName = proDefName; |
|||
this.proDefId = proDefId; |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 流程类型名称 |
|||
*/ |
|||
private final String proDefName; |
|||
|
|||
/** |
|||
* 流程代号 |
|||
*/ |
|||
private final String proDefId; |
|||
|
|||
public String getProDefName() { |
|||
return proDefName; |
|||
} |
|||
|
|||
public String getProDefId() { |
|||
return proDefId; |
|||
} |
|||
} |
@ -0,0 +1,38 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
/** |
|||
* @author 10095 |
|||
* @version 1.0 |
|||
* @Description: 流程状态枚举类 |
|||
* @date 2022/03/01 |
|||
*/ |
|||
public enum ProcessStateEnum { |
|||
|
|||
STARTED("审批中", "started"), |
|||
FINISHED("已办结", "finished") |
|||
; |
|||
|
|||
|
|||
ProcessStateEnum(String stateName, String stateCode) { |
|||
this.stateName = stateName; |
|||
this.stateCode = stateCode; |
|||
} |
|||
|
|||
/** |
|||
* 状态名称 |
|||
*/ |
|||
private final String stateName; |
|||
|
|||
/** |
|||
* 状态代号 |
|||
*/ |
|||
private final String stateCode; |
|||
|
|||
public String getStateName() { |
|||
return stateName; |
|||
} |
|||
|
|||
public String getStateCode() { |
|||
return stateCode; |
|||
} |
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/8/23 14:18 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class RecordQuery implements Query { |
|||
private static final long serialVersionUID = 480213691108105877L; |
|||
|
|||
private String procInsId; |
|||
private String deployId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,137 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import org.springframework.web.context.request.RequestAttributes; |
|||
import org.springframework.web.context.request.RequestContextHolder; |
|||
import org.springframework.web.context.request.ServletRequestAttributes; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
import javax.servlet.http.HttpServletResponse; |
|||
import javax.servlet.http.HttpSession; |
|||
import java.io.IOException; |
|||
|
|||
/** |
|||
* 客户端工具类 |
|||
* |
|||
* @author ruoyi |
|||
*/ |
|||
public class ServletUtils |
|||
{ |
|||
/** |
|||
* 获取String参数 |
|||
*/ |
|||
public static String getParameter(String name) |
|||
{ |
|||
return getRequest().getParameter(name); |
|||
} |
|||
|
|||
/** |
|||
* 获取String参数 |
|||
*/ |
|||
public static String getParameter(String name, String defaultValue) |
|||
{ |
|||
return Convert.toStr(getRequest().getParameter(name), defaultValue); |
|||
} |
|||
|
|||
/** |
|||
* 获取Integer参数 |
|||
*/ |
|||
public static Integer getParameterToInt(String name) |
|||
{ |
|||
return Convert.toInt(getRequest().getParameter(name)); |
|||
} |
|||
|
|||
/** |
|||
* 获取Integer参数 |
|||
*/ |
|||
public static Integer getParameterToInt(String name, Integer defaultValue) |
|||
{ |
|||
return Convert.toInt(getRequest().getParameter(name), defaultValue); |
|||
} |
|||
|
|||
/** |
|||
* 获取request |
|||
*/ |
|||
public static HttpServletRequest getRequest() |
|||
{ |
|||
return getRequestAttributes().getRequest(); |
|||
} |
|||
|
|||
/** |
|||
* 获取response |
|||
*/ |
|||
public static HttpServletResponse getResponse() |
|||
{ |
|||
return getRequestAttributes().getResponse(); |
|||
} |
|||
|
|||
/** |
|||
* 获取session |
|||
*/ |
|||
public static HttpSession getSession() |
|||
{ |
|||
return getRequest().getSession(); |
|||
} |
|||
|
|||
public static ServletRequestAttributes getRequestAttributes() |
|||
{ |
|||
RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); |
|||
return (ServletRequestAttributes) attributes; |
|||
} |
|||
|
|||
/** |
|||
* 将字符串渲染到客户端 |
|||
* |
|||
* @param response 渲染对象 |
|||
* @param string 待渲染的字符串 |
|||
* @return null |
|||
*/ |
|||
public static String renderString(HttpServletResponse response, String string) |
|||
{ |
|||
try |
|||
{ |
|||
response.setStatus(200); |
|||
response.setContentType("application/json"); |
|||
response.setCharacterEncoding("utf-8"); |
|||
response.getWriter().print(string); |
|||
} |
|||
catch (IOException e) |
|||
{ |
|||
e.printStackTrace(); |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
/** |
|||
* 是否是Ajax异步请求 |
|||
* |
|||
* @param request |
|||
*/ |
|||
public static boolean isAjaxRequest(HttpServletRequest request) |
|||
{ |
|||
String accept = request.getHeader("accept"); |
|||
if (accept != null && accept.indexOf("application/json") != -1) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
String xRequestedWith = request.getHeader("X-Requested-With"); |
|||
if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
String uri = request.getRequestURI(); |
|||
if (StringUtils.inString(uri, ".json", ".xml")) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
String ajax = request.getParameter("__ajax"); |
|||
if (StringUtils.inString(ajax, "json", "xml")) |
|||
{ |
|||
return true; |
|||
} |
|||
return false; |
|||
} |
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.yxt.anrui.flowable.api.utils; |
|||
|
|||
|
|||
import com.yxt.common.base.utils.StringUtils; |
|||
|
|||
/** |
|||
* sql操作工具类 |
|||
* |
|||
* @author ruoyi |
|||
*/ |
|||
public class SqlUtil |
|||
{ |
|||
/** |
|||
* 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序) |
|||
*/ |
|||
public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+"; |
|||
|
|||
/** |
|||
* 检查字符,防止注入绕过 |
|||
*/ |
|||
public static String escapeOrderBySql(String value) |
|||
{ |
|||
if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) |
|||
{ |
|||
//throw new BaseException("参数不符合规范,不能进行查询");
|
|||
} |
|||
return value; |
|||
} |
|||
|
|||
/** |
|||
* 验证 order by 语法是否符合规范 |
|||
*/ |
|||
public static boolean isValidOrderBySql(String value) |
|||
{ |
|||
return value.matches(SQL_PATTERN); |
|||
} |
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.yxt.anrui.flowable.exception; |
|||
|
|||
/** |
|||
* 自定义异常 |
|||
* |
|||
* @author ruoyi |
|||
*/ |
|||
public class CustomException extends RuntimeException |
|||
{ |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
private Integer code; |
|||
|
|||
private String message; |
|||
|
|||
public CustomException(String message) |
|||
{ |
|||
this.message = message; |
|||
} |
|||
|
|||
public CustomException(String message, Integer code) |
|||
{ |
|||
this.message = message; |
|||
this.code = code; |
|||
} |
|||
|
|||
public CustomException(String message, Throwable e) |
|||
{ |
|||
super(message, e); |
|||
this.message = message; |
|||
} |
|||
|
|||
@Override |
|||
public String getMessage() |
|||
{ |
|||
return message; |
|||
} |
|||
|
|||
public Integer getCode() |
|||
{ |
|||
return code; |
|||
} |
|||
} |
@ -0,0 +1,35 @@ |
|||
package com.yxt.anrui.flowable.sqloperationsymbol; |
|||
|
|||
import lombok.Data; |
|||
/** |
|||
* task 查询参数 |
|||
*/ |
|||
@Data |
|||
public class BusinessTaskParam { |
|||
|
|||
public BusinessTaskParam(){} |
|||
|
|||
public BusinessTaskParam(String field, String value) { |
|||
this.field = field; |
|||
this.sqlOperationSymbol = SQLOperationSymbol.EQUAL; |
|||
this.value = value; |
|||
} |
|||
|
|||
public BusinessTaskParam(String field, String value, SQLOperationSymbol sqlOperationSymbol) { |
|||
this.field = field; |
|||
this.sqlOperationSymbol = sqlOperationSymbol; |
|||
this.value = value; |
|||
} |
|||
/** |
|||
* 字段 |
|||
*/ |
|||
private String field; |
|||
/** |
|||
* 运算符号 |
|||
*/ |
|||
private SQLOperationSymbol sqlOperationSymbol; |
|||
/** |
|||
* 值 |
|||
*/ |
|||
private String value; |
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.yxt.anrui.flowable.sqloperationsymbol; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* task 查询参数 集合 |
|||
*/ |
|||
@Data |
|||
public class BusinessTaskQuery implements Query { |
|||
private List<BusinessTaskParam> fields = new ArrayList<>(); |
|||
|
|||
public static BusinessTaskQuery create(){ |
|||
BusinessTaskQuery bt = new BusinessTaskQuery(); |
|||
return bt; |
|||
} |
|||
public BusinessTaskQuery add(BusinessTaskParam param){ |
|||
if(fields==null){ |
|||
fields = new ArrayList<>(); |
|||
} |
|||
fields.add(param); |
|||
return this; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,67 @@ |
|||
package com.yxt.anrui.flowable.sqloperationsymbol; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Builder; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 业务系统调用flowable流程传递参数的格式 |
|||
*/ |
|||
@Data |
|||
@Builder |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class BusinessVariables { |
|||
/** |
|||
* 分公司sid |
|||
*/ |
|||
public static final String ORGPATH="orgPath"; |
|||
/** |
|||
* 流程定义的id |
|||
*/ |
|||
private String modelId; |
|||
/** |
|||
* 审批意见 |
|||
*/ |
|||
private String comment; |
|||
/** |
|||
* 流程实例的id |
|||
*/ |
|||
private String instanceId; |
|||
/** |
|||
* taskId |
|||
*/ |
|||
private String taskId; |
|||
/** |
|||
* 当前用户的id |
|||
*/ |
|||
private String userSid; |
|||
/** |
|||
* 当前用户部门的全路径 |
|||
*/ |
|||
private String orgSidPath; |
|||
/** |
|||
* 业务sid |
|||
*/ |
|||
private String businessSid; |
|||
/** |
|||
* 环节定义的ID |
|||
*/ |
|||
private String taskDefKey; |
|||
/** |
|||
* nextNodeUserSids 下一环节的用户sid |
|||
*/ |
|||
private String nextNodeUserSids; |
|||
/** |
|||
* 业务参数,按需传递 |
|||
*/ |
|||
private Map<String, Object> formVariables =new HashMap<>(); |
|||
/* @ApiModelProperty("机构sid:切换结构使用") |
|||
private String orgPath;*/ |
|||
} |
@ -0,0 +1,38 @@ |
|||
package com.yxt.anrui.flowable.sqloperationsymbol; |
|||
|
|||
/** |
|||
* sql语句运算符号,“=”,“like”,"in",">","<" |
|||
*/ |
|||
public enum SQLOperationSymbol { |
|||
EQUAL("=","相等"), |
|||
LIKE("like","模糊查询"), |
|||
LT("<","大于"),//LESS THAN小于
|
|||
GT(">","小于"),//GT 就是 GREATER THAN大于
|
|||
GE(">=","大于等于"),// GREATER THAN OR EQUAL 大于等于
|
|||
LE("<=","小于等于"),//LESS THAN OR EQUAL 小于等于
|
|||
NE("<>","不等于"),//NOT EQUAL不等于
|
|||
NONE("","无"); |
|||
private String symbol; |
|||
private String desc; |
|||
|
|||
SQLOperationSymbol(String symbol, String desc) { |
|||
this.symbol = symbol; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
public String getSymbol() { |
|||
return symbol; |
|||
} |
|||
|
|||
public void setSymbol(String symbol) { |
|||
this.symbol = symbol; |
|||
} |
|||
|
|||
public String getDesc() { |
|||
return desc; |
|||
} |
|||
|
|||
public void setDesc(String desc) { |
|||
this.desc = desc; |
|||
} |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.flowable.test; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import lombok.Builder; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/25 14:21 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
@Builder |
|||
public class FlowCommentVo implements Vo { |
|||
private static final long serialVersionUID = -5771441948567658394L; |
|||
|
|||
/** |
|||
* 意见类别 1正常(同意)意见 2退回意见 3 驳回意见 4 委派意见 5 转办意见 6 终止流程 7 撤回流程 |
|||
*/ |
|||
private String type; |
|||
|
|||
/** |
|||
* 意见内容 |
|||
*/ |
|||
private String comment; |
|||
|
|||
} |
@ -0,0 +1,39 @@ |
|||
package com.yxt.anrui.flowable.test; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.ResponseBody; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/18 10:37 |
|||
* @description |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "yxt-anrui-flowable-holidayTest", |
|||
name = "yxt-anrui-flowable", |
|||
path = "v1/flowable/holidaytest") |
|||
public interface HolidayTestApi { |
|||
|
|||
/** |
|||
* 提交请假 |
|||
* |
|||
* @param taskUser 申请人 |
|||
* @param day 申请天数 |
|||
* @return |
|||
*/ |
|||
@PostMapping(value = "submit") |
|||
@ResponseBody |
|||
@ApiOperation(value = "提交请假") |
|||
public ResultBean<HolidayVo> submit(String taskUser, Integer day); |
|||
|
|||
@GetMapping(value = "processImage") |
|||
@ApiOperation(value = "生成图片的方法") |
|||
@ResponseBody |
|||
public void genProcessDiagram(HttpServletResponse httpServletResponse, String processId); |
|||
} |
@ -0,0 +1,22 @@ |
|||
package com.yxt.anrui.flowable.test; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/6/21 10:11 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class HolidayVo implements Vo { |
|||
private static final long serialVersionUID = 9212210138258932085L; |
|||
|
|||
@ApiModelProperty(value = "流程实例id") |
|||
private String id; |
|||
@ApiModelProperty(value = "请假申请人") |
|||
private String taskUser; |
|||
@ApiModelProperty(value = "请假天数") |
|||
private Integer day; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.flowable.test; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author dimengzhe |
|||
* @date 2021/7/29 15:03 |
|||
* @description |
|||
*/ |
|||
@Data |
|||
public class StartProcessInstanceQuery implements Query { |
|||
private static final long serialVersionUID = -6372254084412955318L; |
|||
|
|||
@ApiModelProperty(value = "流程定义key", required = true) |
|||
// private String processDefinitionKey;
|
|||
private String processDefinitionId; |
|||
|
|||
@ApiModelProperty(value = "用户sid", required = true) |
|||
private String userSid; |
|||
|
|||
@ApiModelProperty(value = "启动流程变量") |
|||
private Map<String, Object> variables; |
|||
} |
Loading…
Reference in new issue