Browse Source

加签接口移动到Flowable

master
fanzongzhe 2 years ago
parent
commit
343c33a6ad
  1. 28
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java
  2. 24
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowDelegateQuery.java
  3. 7
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java
  4. 20
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java
  5. 54
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

28
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java

@ -45,6 +45,7 @@ import com.yxt.anrui.base.biz.basedistributorapplyappendix.BaseDistributorApplyA
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.DelegateQuery;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
@ -2031,32 +2032,9 @@ public class BaseDistributorApplyService extends MybatisBaseService<BaseDistribu
*/
public ResultBean delegate(DistributorDelegateQuery distributorDelegateQuery) {
ResultBean rb = ResultBean.fireFail();
DelegateQuery delegateQuery = new DelegateQuery();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(distributorDelegateQuery, delegateQuery);
ResultBean delegate = flowTaskFeign.delegate(delegateQuery);
String userSid = distributorDelegateQuery.getUserSid();
String assignee = distributorDelegateQuery.getAssignee();
String instanceId = distributorDelegateQuery.getInstanceId();
String views = "";
if (StringUtils.isNotBlank(distributorDelegateQuery.getViews())) {
views = distributorDelegateQuery.getViews();
}
ResultBean<SysUserVo> userVoResultBean1 = sysUserFeign.fetchBySid(userSid);
String userName = "";
if (userVoResultBean1.getData() != null) {
userName = userVoResultBean1.getData().getName();
}
ResultBean<SysUserVo> userVoResultBean2 = sysUserFeign.fetchBySid(assignee);
ProcessCommentDto processCommentDto = new ProcessCommentDto();
processCommentDto.setReviewerSid(userSid);
if (userVoResultBean2.getData() != null) {
String changeName = userVoResultBean2.getData().getName();
processCommentDto.setReviewer(userName);
processCommentDto.setContent(userName + "加签给" + changeName + ":" + views);
}
processCommentDto.setTime(new Date());
processCommentDto.setProcessId(instanceId);
processCommentFeign.save(processCommentDto);
flowFeign.delegate(delegateQuery);
return rb.success();
}
}

24
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowDelegateQuery.java

@ -0,0 +1,24 @@
package com.yxt.anrui.flowable.api.flow2;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/10/8 15:58
*/
@Data
public class FlowDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

7
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java

@ -3,7 +3,6 @@ package com.yxt.anrui.flowable.api.flow2;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
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.*;
@ -41,4 +40,10 @@ public interface FlowFeign {
@GetMapping(value = "/getMessageReminder")
@ResponseBody
ResultBean<FlowableMessageVo> getMessageReminder(@RequestParam("proDefId") String proDefId, @RequestParam("proInstId") String proInstId);
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody FlowDelegateQuery flowDelegateQuery);
}

20
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java

@ -1,34 +1,21 @@
package com.yxt.anrui.flowable.biz.flow2;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flow2.FlowableMessageVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.feign.MessageFeign;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccFeign;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserByRolesAndOrgQuery;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.flowable.engine.HistoryService;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -111,5 +98,10 @@ public class FlowRest implements FlowFeign {
return flowService.getMessageReminder(proDefId,proInstId);
}
@Override
public ResultBean delegate(FlowDelegateQuery flowDelegateQuery) {
return flowService.delegate(flowDelegateQuery);
}
}

54
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

@ -1,31 +1,27 @@
package com.yxt.anrui.flowable.biz.flow2;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.flowable.api.flow.Flowable;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowableMessageVo;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.FlowTask;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.DelegateQuery;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskMapper;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService;
import com.yxt.anrui.flowable.biz.process.ExpressionCmd;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService;
import com.yxt.anrui.flowable.common.ProcessConstants;
import com.yxt.anrui.flowable.exception.CustomException;
import com.yxt.anrui.flowable.feign.MessageFeign;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.flowable.utils.FlowableUtils;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo;
@ -37,16 +33,10 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.*;
import org.flowable.bpmn.model.Process;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.*;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.Execution;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
@ -711,8 +701,8 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
String assignee = (String) processVariables.get("assignee");
ResultBean<SysUserVo> stringResultBean = sysUserFeign.fetchBySid(assignee);
String assigneeName = "";
if(stringResultBean.getData() != null){
assigneeName= stringResultBean.getData().getName();
if (stringResultBean.getData() != null) {
assigneeName = stringResultBean.getData().getName();
}
Map<String, Object> app = new HashMap<>();
@ -722,7 +712,7 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
log.info("抄送方法-historicTaskInstance:{}", JSONObject.toJSONString(historicTaskInstance));
mfq.setAppMap(app);
mfq.setBusinessSid(bv.getBusinessSid());
mfq.setMsgContent(assigneeName+"抄送的流程审批,请查看");
mfq.setMsgContent(assigneeName + "抄送的流程审批,请查看");
// act_re_procdef
Map<String, String> process = processService.getProcessDefByDefId(historicTaskInstance.getProcessDefinitionId());
log.info("抄送成功-process:{}", process);
@ -770,7 +760,39 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
public ResultBean<FlowableMessageVo> getMessageReminder(String proDefId, String proInstId) {
ResultBean<FlowableMessageVo> rb = ResultBean.fireFail();
FlowableMessageVo flowableMessageVo = baseMapper.getMessageReminder(proDefId,proInstId);
FlowableMessageVo flowableMessageVo = baseMapper.getMessageReminder(proDefId, proInstId);
return rb.success().setData(flowableMessageVo);
}
public ResultBean delegate(FlowDelegateQuery flowDelegateQuery) {
ResultBean rb = ResultBean.fireFail();
DelegateQuery delegateQuery = new DelegateQuery();
BeanUtil.copyProperties(flowDelegateQuery, delegateQuery);
ResultBean delegate = flowTaskService.delegate(delegateQuery);
String userSid = flowDelegateQuery.getUserSid();
String assignee = flowDelegateQuery.getAssignee();
String instanceId = flowDelegateQuery.getInstanceId();
String views = "";
if (StringUtils.isNotBlank(flowDelegateQuery.getViews())) {
views = flowDelegateQuery.getViews();
}
ResultBean<SysUserVo> userVoResultBean1 = sysUserFeign.fetchBySid(userSid);
String userName = "";
if (userVoResultBean1.getData() != null) {
userName = userVoResultBean1.getData().getName();
}
ResultBean<SysUserVo> userVoResultBean2 = sysUserFeign.fetchBySid(assignee);
ProcessCommentDto processCommentDto = new ProcessCommentDto();
processCommentDto.setReviewerSid(userSid);
if (userVoResultBean2.getData() != null) {
String changeName = userVoResultBean2.getData().getName();
processCommentDto.setReviewer(userName);
processCommentDto.setContent(userName + "加签给" + changeName + ":" + views);
}
processCommentDto.setTime(new Date());
processCommentDto.setProcessId(instanceId);
processCommentService.saveOrUpdateDto(processCommentDto);
return rb.success();
}
}

Loading…
Cancel
Save