Browse Source

flowable流程迁移至flowable模块

master
dimengzhe 3 years ago
parent
commit
a9d728d749
  1. 40
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowCommentDto.java
  2. 98
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowTask.java
  3. 23
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowTaskQuery.java
  4. 51
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowTaskVo.java
  5. 8
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/Flowable.java
  6. 37
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFallback.java
  7. 76
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFeign.java
  8. 90
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/TaskQuery.java
  9. 12
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.java
  10. 59
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.xml
  11. 92
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  12. 265
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableService.java
  13. 36
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionRest.java
  14. 43
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java
  15. 26
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskController.java
  16. 56
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

40
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowCommentDto.java

@ -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;
}

98
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowTask.java

@ -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;
}

23
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowTaskQuery.java

@ -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;
}

51
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowTaskVo.java

@ -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<>();
}

8
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/Flowable.java

@ -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 {
}

37
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFallback.java

@ -0,0 +1,37 @@
package com.yxt.anrui.flowable.api.flow;
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(String procDefId, String userSid, Map<String, Object> variables) {
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;
}
}

76
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFeign.java

@ -0,0 +1,76 @@
package com.yxt.anrui.flowable.api.flow;
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 {
/**
* 业务系统发起流程申请
*
* @param procDefId 流程定义id
* @param userSid 用户sid
* @param variables form参数
* @return
*/
@PostMapping("/businessStart/{procDefId}/{userSid}")
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
/**
* 流程定义列表 一般业务中不需要查询该列表
*
* @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);
}

90
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/TaskQuery.java

@ -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;
}
}

12
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.java

@ -0,0 +1,12 @@
package com.yxt.anrui.flowable.biz.flow;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.flowable.api.flow.Flowable;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
@Mapper
public interface FlowableMapper extends BaseMapper<Flowable> {
void insetFlowableTask(Map<String,Object> params);
}

59
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.xml

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.flowable.biz.flow.FlowableMapper">
<insert id="insetFlowableTask" parameterType="com.yxt.anrui.flowable.api.flow.Flowable">
insert into `act_ru_task` ( `days`, `zd`,initiator,outcome)
VALUES
(
#{days,jdbcType=VARCHAR},
#{zd,jdbcType=VARCHAR}
#{initiator,jdbcType=VARCHAR}
#{outcome,jdbcType=VARCHAR}
)
</insert>
<!--
<insert id="insetFlowableTask">
insert into `act_ru_task` (`REV`, `EXECUTION_ID`, `PROC_INST_ID`, `PROC_DEF_ID`,
`TASK_DEF_ID`, `SCOPE_ID`, `SUB_SCOPE_ID`, `SCOPE_TYPE`, `SCOPE_DEFINITION_ID`,
`PROPAGATED_STAGE_INST_ID`, `NAME`, `PARENT_TASK_ID`, `DESCRIPTION`,
`TASK_DEF_KEY`, `OWNER`, `ASSIGNEE`, `DELEGATION`, `PRIORITY`,
`CREATE_TIME`, `DUE_DATE`, `CATEGORY`, `SUSPENSION_STATE`, `TENANT_ID`,
`FORM_KEY`, `CLAIM_TIME`, `IS_COUNT_ENABLED`, `VAR_COUNT`, `ID_LINK_COUNT`,
`SUB_TASK_COUNT`, `days`, `reason`)
VALUES
(
#{item.modelSid,jdbcType=VARCHAR},&lt;!&ndash;sid&ndash;&gt;
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR},
#{item.modelSid,jdbcType=VARCHAR}
)
</insert>
-->
</mapper>

92
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java

@ -0,0 +1,92 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.flowable.biz.flow;
import com.yxt.anrui.flowable.api.flow.FlowTaskQuery;
import com.yxt.anrui.flowable.api.flow.FlowTaskVo;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* Project: anrui-parent <br/>
* File: FlowableRest.java <br/>
* Class: com.yxt.anrui.portal.biz.flow.FlowableRest <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021/10/23 上午11:13 <br/>
*
* @author popo
* @version 1.0
* @since 1.0
*/
@RestController
@RequestMapping("v1/flow")
@Api(tags = "业务系统中业务和工作流相关操作")
public class FlowableRest implements FlowableFeign {
@Autowired
private FlowableService flowableService;
@Override
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
return flowableService.businessStart(procDefId, userSid, variables);
}
@Override
public ResultBean processPagerList(@ApiParam(value = "当前页码", required = true) @RequestParam("pageNum") Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam("pageSize") Integer pageSize) {
return flowableService.processPagerList(pageNum, pageSize);
}
@Override
public ResultBean myprocess(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
return flowableService.myprocess(userSid, taskQueryPagerQuery);
}
@Override
public ResultBean stopProcess(FlowTaskVo flowTaskVo) {
flowableService.stopProcess(flowTaskVo);
return ResultBean.fireSuccess();
}
@Override
public ResultBean deleteProcess(String procInsId) {
flowableService.deleteProcess(procInsId);
return ResultBean.fireSuccess();
}
}

265
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableService.java

@ -0,0 +1,265 @@
package com.yxt.anrui.flowable.biz.flow;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.flow.FlowTaskQuery;
import com.yxt.anrui.flowable.api.flow.FlowTaskVo;
import com.yxt.anrui.flowable.api.flow.Flowable;
import com.yxt.anrui.flowable.api.flow.TaskQuery;
import com.yxt.anrui.flowable.api.flowtask.FlowTask;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
import com.yxt.anrui.flowable.biz.flowdefinition.FlowDefinitionService;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessTaskParam;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessTaskQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.flowable.sqloperationsymbol.SQLOperationSymbol;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable> {
@Autowired
private FlowDefinitionService flowDefinitionService;
@Autowired
private FlowTaskService flowTaskService;
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
variables.put("procDefId", procDefId);
variables.put("userSid", userSid);
BusinessVariables bv = BusinessVariables.builder().build();
bv.setDetailUrl("");
bv.setHandleUrl("");
bv.setFormVariables(variables);
ResultBean<FlowTask> rb = flowDefinitionService.businessStart(bv);
if (!rb.getSuccess()) {
return rb;
}
String procId = rb.getData().getProcInsId();
List<LatestTaskVo> list = flowTaskService.getLatestTasks(procId);
String nodeState = list.get(0).getName_();
String task_def_key_ = list.get(0).getTask_def_key_();
Map<String, String> map = new HashMap<>();
map.put("sid", variables.get("businessSid").toString());
map.put("nodeState", nodeState);
map.put("procInsId", rb.getData().getProcInsId());
map.put("taskDefKey", task_def_key_);
return new ResultBean().success().setData(map);
}
public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
PagerQuery<BusinessTaskQuery> pq = new PagerQuery<>();
String days = taskQueryPagerQuery.getParams().getDays();
String zd = taskQueryPagerQuery.getParams().getZd();
pq.setCurrent(taskQueryPagerQuery.getCurrent());
pq.setSize(taskQueryPagerQuery.getSize());
BusinessTaskQuery businessTaskQuery = BusinessTaskQuery.create();
if (StringUtils.isNotBlank(zd)) {
BusinessTaskParam businessTaskParam = new BusinessTaskParam();
businessTaskParam.setField("zd");
businessTaskParam.setSqlOperationSymbol(SQLOperationSymbol.LIKE);
businessTaskParam.setValue(zd);
businessTaskQuery.add(businessTaskParam);
}
if (StringUtils.isNotBlank(days)) {
BusinessTaskParam businessTaskParam = new BusinessTaskParam();
businessTaskParam.setField("days");
businessTaskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
businessTaskParam.setValue(days);
businessTaskQuery.add(businessTaskParam);
}
pq.setParams(businessTaskQuery);
return flowTaskService.businessMyprocessNew(userSid, pq);
}
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
return flowDefinitionService.pagerListNew(pageNum, pageSize);
}
public ResultBean todoTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
TaskQuery params = pQuery.getParams();
if (StringUtils.isBlank(userSid)) {
return ResultBean.fireFail().setMsg("用户SID为空");
}
PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
String days = params.getDays();
String processDefinitionId = params.getProcessDefinitionId();
String startTime = params.getStartTime();
BusinessTaskQuery taskQuery = new BusinessTaskQuery();
List<BusinessTaskParam> taskParamList = new ArrayList<>();
if (StringUtils.isNotBlank(days)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("zd1");
taskParam.setValue(days);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(startTime)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("startTime");
taskParam.setValue(startTime);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(processDefinitionId)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("processDefinitionId");
taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
taskParam.setValue(processDefinitionId);
taskParamList.add(taskParam);
}
taskQuery.setFields(taskParamList);
taskQueryPagerQuery.setParams(taskQuery);
return flowTaskService.businessTodoListNew(userSid, taskQueryPagerQuery);
}
public ResultBean doneTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
TaskQuery params = pQuery.getParams();
if (StringUtils.isBlank(userSid)) {
return ResultBean.fireFail().setMsg("用户SID为空");
}
PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
String zd1 = params.getZd1();
String processDefinitionId = params.getProcessDefinitionId();
String startTime = params.getStartTime();
BusinessTaskQuery taskQuery = new BusinessTaskQuery();
List<BusinessTaskParam> taskParamList = new ArrayList<>();
if (StringUtils.isNotBlank(zd1)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("zd1");
taskParam.setValue(zd1);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(startTime)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("startTime");
taskParam.setValue(startTime);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(processDefinitionId)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("processDefinitionId");
taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
taskParam.setValue(processDefinitionId);
taskParamList.add(taskParam);
}
taskQuery.setFields(taskParamList);
taskQueryPagerQuery.setParams(taskQuery);
return flowTaskService.businessDoneListNew(userSid, taskQueryPagerQuery);
}
/**
* 取消
*
* @param variables
* @return
*/
public ResultBean complete(Map<String, Object> variables) {
BusinessVariables bv = BusinessVariables.builder().build();
bv.setDetailUrl("");
bv.setHandleUrl("");
bv.setFormVariables(variables);
ResultBean<FlowTask> resultBean = flowTaskService.businessComplete(bv);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = "";
if (resultBean.getData() != null) {
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskService.getLatestTasksNew(resultBean.getData().getProcInsId());
if (listResultBean.getSuccess() && listResultBean.getData() != null && listResultBean.getData().size() != 0) {
nodeState = listResultBean.getData().get(0).getName_();
} else {
nodeState = ProcessStateEnum.FINISHED.getStateName();
}
}
Map<String, String> map = new HashMap<>();
map.put("nodeState", nodeState);
return new ResultBean().success().setData(map);
}
/**
* 撤回
*
* @param userSid
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setUserSid(userSid);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskService.revokeProcess(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
Map<String, String> map = new HashMap<>();
map.put("nodeState", nodeState);
return new ResultBean().success().setData(map);
}
public ResultBean flowRecord(String procInsId, String deployId) {
return flowTaskService.businessFlowRecord(procInsId, deployId);
}
public ResultBean taskReject(FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskService.taskReject(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
Map<String, String> map = new HashMap<>();
map.put("nodeState", nodeState);
return new ResultBean().success().setData(map);
}
/**
* 终止流程
*
* @param flowTaskVo
* @return
*/
public ResultBean breakProcess(FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
ResultBean resultBean = flowTaskService.breakProcess(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
Map<String, String> map = new HashMap<>();
map.put("nodeState", String.valueOf(resultBean.getData()));
return resultBean.success().setData(map);
}
public void stopProcess(FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
flowTaskService.stopProcess(flowTaskVo.getUserSid(), fl);
}
public void deleteProcess(String procInsId) {
flowTaskService.deleteProcessNew(procInsId);
}
}

36
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionRest.java

@ -1,8 +1,6 @@
package com.yxt.anrui.flowable.biz.flowdefinition;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxt.anrui.flowable.api.flowdefinition.FlowDefinitionFeign;
import com.yxt.anrui.flowable.api.flowdefinition.FlowDefinitionVo;
import com.yxt.anrui.flowable.api.flowdefinition.FlowSaveXmlQuery;
import com.yxt.anrui.flowable.api.flowdefinition.SysUser;
import com.yxt.anrui.flowable.api.flowtask.FlowTask;
@ -11,7 +9,6 @@ import com.yxt.anrui.portal.api.sysrole.SysRoleFeign;
import com.yxt.anrui.portal.api.sysrole.SysRoleVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
@ -76,8 +73,7 @@ public class FlowDefinitionRest implements FlowDefinitionFeign {
@Override
public ResultBean pagerList(Integer pageNum, Integer pageSize) {
Page<FlowDefinitionVo> pageList = flowDefinitionService.list(pageNum, pageSize);
return ResultBean.fireSuccess().setData(pageList);
return flowDefinitionService.pagerListNew(pageNum, pageSize);
}
@Override
@ -144,34 +140,6 @@ public class FlowDefinitionRest implements FlowDefinitionFeign {
@Override
public ResultBean<FlowTask> businessStart(@ApiParam(value = "变量集合") @RequestBody BusinessVariables dto) {
ResultBean<FlowTask> resultBean= new ResultBean<>();
Map<String, Object> variables = dto.getFormVariables();
variables.put("handleUrl",dto.getHandleUrl());
variables.put("detailUrl",dto.getDetailUrl());
Object procDefId_obj = variables.get("procDefId");
Object userSid_obj = variables.get("userSid");
String procDefId=null;
String userSid=null;
if(procDefId_obj==null){
return resultBean.fail().setData(new FlowTask()).setMsg("procDefId 不能为空");
}else{
procDefId = (String) procDefId_obj;
if(StringUtils.isBlank(procDefId)){
resultBean.fail().setData(new FlowTask()).setMsg("procDefId 不能为空");
return resultBean;
}
}
if(userSid_obj==null){
resultBean.fail().setData(new FlowTask()).setMsg("userSid 不能为空");
return resultBean;
}else{
userSid = (String)userSid_obj;
if(StringUtils.isBlank(userSid)){
resultBean.fail().setData(new FlowTask()).setMsg("userSid 不能为空");
return resultBean;
}
}
resultBean = flowDefinitionService.businessStartProcessInstanceById(procDefId, userSid, variables);
return resultBean;
return flowDefinitionService.businessStart(dto);
}
}

43
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java

@ -15,10 +15,12 @@ import com.yxt.anrui.flowable.biz.sysdeployform.SysDeployFormService;
import com.yxt.anrui.flowable.common.FlowComment;
import com.yxt.anrui.flowable.common.ProcessConstants;
import com.yxt.anrui.flowable.factory.FlowServiceFactory;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysuser.SysUser;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.common.base.utils.JPushServer;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.io.IOUtils;
import org.flowable.engine.repository.Deployment;
@ -34,7 +36,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class FlowDefinitionService extends FlowServiceFactory {
@ -44,6 +45,7 @@ public class FlowDefinitionService extends FlowServiceFactory {
private SysDeployFormService sysDeployFormService;
@Autowired
private SysUserFeign sysUserFeign;
/**
* 导入流程文件
*
@ -118,6 +120,7 @@ public class FlowDefinitionService extends FlowServiceFactory {
String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8.name());
return ResultBean.fireSuccess().setData(result);
}
/**
* 根据流程定义ID启动流程实例
*
@ -204,6 +207,7 @@ public class FlowDefinitionService extends FlowServiceFactory {
/**
* 向下一环节待办人发出推送
*
* @param taskId
*/
private void sendPush(String taskId) {
@ -217,4 +221,41 @@ public class FlowDefinitionService extends FlowServiceFactory {
JPushServer.sendPushAlias(name, name, "msg_type", "系统消息", id.toString());
}
public ResultBean<FlowTask> businessStart(BusinessVariables dto) {
ResultBean<FlowTask> resultBean = new ResultBean<>();
Map<String, Object> variables = dto.getFormVariables();
variables.put("handleUrl", dto.getHandleUrl());
variables.put("detailUrl", dto.getDetailUrl());
Object procDefId_obj = variables.get("procDefId");
Object userSid_obj = variables.get("userSid");
String procDefId = null;
String userSid = null;
if (procDefId_obj == null) {
return resultBean.fail().setData(new FlowTask()).setMsg("procDefId 不能为空");
} else {
procDefId = (String) procDefId_obj;
if (StringUtils.isBlank(procDefId)) {
resultBean.fail().setData(new FlowTask()).setMsg("procDefId 不能为空");
return resultBean;
}
}
if (userSid_obj == null) {
resultBean.fail().setData(new FlowTask()).setMsg("userSid 不能为空");
return resultBean;
} else {
userSid = (String) userSid_obj;
if (StringUtils.isBlank(userSid)) {
resultBean.fail().setData(new FlowTask()).setMsg("userSid 不能为空");
return resultBean;
}
}
resultBean = businessStartProcessInstanceById(procDefId, userSid, variables);
return resultBean;
}
public ResultBean pagerListNew(Integer pageNum, Integer pageSize) {
Page<FlowDefinitionVo> pageList = list(pageNum, pageSize);
return ResultBean.fireSuccess().setData(pageList);
}
}

26
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskController.java

@ -105,10 +105,7 @@ public class FlowTaskController implements FlowTaskFeign {
@Override
public ResultBean businessDoneList(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) {
int size = Integer.valueOf(taskQueryPagerQuery.getSize() + "");
int current = Integer.valueOf(taskQueryPagerQuery.getCurrent() + "");
List<BusinessTaskParam> fields = taskQueryPagerQuery.getParams().getFields();
return flowTaskService.businessFinishedList(userSid, fields, current, size);
return flowTaskService.businessDoneListNew(userSid, taskQueryPagerQuery);
}
@Override
@ -117,12 +114,10 @@ public class FlowTaskController implements FlowTaskFeign {
String procInsId = recordQuery.getProcInsId();
return flowTaskService.flowRecord(procInsId, deployId);
}
@Override
public ResultBean stopProcess(String userSid, FlowTaskVo flowTaskVo) {
flowTaskService.stopProcess(userSid,flowTaskVo);
return ResultBean.fireSuccess();
return flowTaskService.stopProcessNew(userSid, flowTaskVo);
}
@Override
@ -182,10 +177,7 @@ public class FlowTaskController implements FlowTaskFeign {
@Override
public ResultBean businessMyprocess(String userSid, PagerQuery<BusinessTaskQuery> businessTaskQuery) {
int size = Integer.valueOf(businessTaskQuery.getSize() + "");
int current = Integer.valueOf(businessTaskQuery.getCurrent() + "");
List<BusinessTaskParam> fields = businessTaskQuery.getParams().getFields();
return flowTaskService.businessMyprocess(userSid, fields, current, size);
return flowTaskService.businessMyprocessNew(userSid, businessTaskQuery);
}
@Override
@ -218,6 +210,7 @@ public class FlowTaskController implements FlowTaskFeign {
public ResultBean<List<LatestTaskVo>> taskReject(FlowTaskVo flowTaskVo) {
return flowTaskService.taskReject(flowTaskVo);
}
@Override
public ResultBean<List<LatestTaskVo>> revokeProcess(@RequestBody FlowTaskVo flowTaskVo) {
return flowTaskService.revokeProcess(flowTaskVo);
@ -232,15 +225,17 @@ public class FlowTaskController implements FlowTaskFeign {
public ResultBean flowRecord(String procInsId, String deployId) {
return flowTaskService.flowRecord(procInsId, deployId);
}
@Override
public ResultBean businessFlowRecord(String procInsId, String deployId) {
return flowTaskService.businessFlowRecord(procInsId, deployId);
}
@Override
public ResultBean deleteProcess(String procInsId) {
flowTaskService.deleteProcess(procInsId,"删除");
return ResultBean.fireSuccess();
return flowTaskService.deleteProcessNew(procInsId);
}
@Override
public ResultBean getNextTasks(String taskId) {
return flowTaskService.getNextTasks(taskId);
@ -248,8 +243,7 @@ public class FlowTaskController implements FlowTaskFeign {
@Override
public ResultBean<List<LatestTaskVo>> getLatestTasks(String procId) {
List<LatestTaskVo> latestTasks = flowTaskService.getLatestTasks(procId);
return new ResultBean<List<LatestTaskVo>>().success().setData(latestTasks);
return flowTaskService.getLatestTasksNew(procId);
}
@Override

56
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -14,6 +14,7 @@ import com.yxt.anrui.flowable.biz.sysprourl.SysProUrlService;
import com.yxt.anrui.flowable.common.FlowComment;
import com.yxt.anrui.flowable.exception.CustomException;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessTaskParam;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessTaskQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.flowable.sqloperationsymbol.SQLOperationSymbol;
import com.yxt.anrui.flowable.utils.FlowableUtils;
@ -27,6 +28,7 @@ import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@ -92,6 +94,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private SysProUrlService sysProUrlService;
@Resource
private AppSubsetVersionFeign appSubsetVersionFeign;
/**
* 流程历史流转记录
*
@ -164,6 +167,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
return ResultBean.fireSuccess().setData(map);
}
/**
* 流程历史流转记录
*
@ -230,6 +234,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
return ResultBean.fireSuccess().setData(map);
}
/**
* 获取流程执行过程
*
@ -305,6 +310,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>().fireFail();
return rb.setData(page);
}
/**
* 代办任务列表
*
@ -427,6 +433,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
/**
* 业务系统查询待办任务列表数量
*
* @param userSid
* @return
*/
@ -437,6 +444,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
/**
* 查询app或pc需要的参数 --( 废弃)
*
* @param task
* @return
*/
@ -591,6 +599,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>().fireFail();
return rb.setData(page);
}
/**
* 已办任务列表
*
@ -698,6 +707,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>();
return rb.success().setData(page);
}
/**
* 完成任务
*
@ -720,6 +730,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
return ResultBean.fireSuccess();
}
/**
* 完成任务
*
@ -804,6 +815,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
rb.success().setData(flowTask);
return rb;
}
public ResultBean findReturnTaskList(FlowTaskVo flowTaskVo) {
// 当前任务 task
Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult();
@ -838,6 +850,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
return ResultBean.fireSuccess().setData(userTaskList);
}
/**
* 退回任务
*
@ -1053,6 +1066,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return new ResultBean<List<LatestTaskVo>>().success().setData(latestTaskList);
}
public ResultBean businessMyprocessNew(String userSid, PagerQuery<BusinessTaskQuery> businessTaskQuery) {
int size = Integer.valueOf(businessTaskQuery.getSize() + "");
int current = Integer.valueOf(businessTaskQuery.getCurrent() + "");
List<BusinessTaskParam> fields = businessTaskQuery.getParams().getFields();
return businessMyprocess(userSid, fields, current, size);
}
public ResultBean businessMyprocess(String userSid, List<BusinessTaskParam> params, int current, int size) {
Page<FlowTaskDto> page = new Page<>();
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery();
@ -1108,6 +1128,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
page.setRecords(flowList);
return ResultBean.fireSuccess().setData(page);
}
private String getTaskId(String currentActivityId, String processInstanceId, String processDefinitionId) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(currentActivityId);
@ -1284,6 +1305,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
/**
* 终止流程
*
* @param flowTaskVo
* @return
*/
@ -1353,6 +1375,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
}
/**
* instId 流程实例ID
* delReason 删除原因
@ -1367,6 +1390,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String processDefinitionId = task.getProcessDefinitionId();
return getNextUserTasks(processDefinitionId, task.getExecutionId(), node);
}
private ResultBean getNextUserTasks(String processDefinitionId, String executionId, String node) {
ExecutionEntity ee = (ExecutionEntity) runtimeService.createExecutionQuery()
.executionId(executionId).singleResult();
@ -1385,12 +1409,14 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
/**
* 根据流程实例的id查询最新的待办环节
*
* @param procId
* @return
*/
public List<LatestTaskVo> getLatestTasks(String procId) {
return baseMapper.getLatestTasks(procId);
}
public void getNodes(List<SequenceFlow> outFlows, String node, List<Map<String, String>> lists) {
for (SequenceFlow sequenceFlow : outFlows) {
//当前审批节点
@ -1424,4 +1450,34 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
}
}
public ResultBean<List<LatestTaskVo>> getLatestTasksNew(String procId) {
List<LatestTaskVo> latestTasks = getLatestTasks(procId);
return new ResultBean<List<LatestTaskVo>>().success().setData(latestTasks);
}
public ResultBean businessTodoListNew(String userSid, PagerQuery<BusinessTaskQuery> businessTaskQuery) {
int size = Integer.valueOf(businessTaskQuery.getSize() + "");
int current = Integer.valueOf(businessTaskQuery.getCurrent() + "");
List<BusinessTaskParam> fields = businessTaskQuery.getParams().getFields();
ResultBean<Page<FlowTaskDto>> resultBean = businessTodoList(userSid, fields, current, size);
return resultBean;
}
public ResultBean businessDoneListNew(String userSid, PagerQuery<BusinessTaskQuery> taskQueryPagerQuery) {
int size = Integer.valueOf(taskQueryPagerQuery.getSize() + "");
int current = Integer.valueOf(taskQueryPagerQuery.getCurrent() + "");
List<BusinessTaskParam> fields = taskQueryPagerQuery.getParams().getFields();
return businessFinishedList(userSid, fields, current, size);
}
public ResultBean stopProcessNew(String userSid, FlowTaskVo flowTaskVo) {
stopProcess(userSid, flowTaskVo);
return ResultBean.fireSuccess();
}
public ResultBean deleteProcessNew(String procInsId) {
deleteProcess(procInsId, "删除");
return ResultBean.fireSuccess();
}
}
Loading…
Cancel
Save