From 343c33a6adfd1507c13c84abdf8fa8a4427d161c Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Sun, 8 Oct 2023 16:04:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E7=AD=BE=E6=8E=A5=E5=8F=A3=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=B0Flowable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseDistributorApplyService.java | 28 ++-------- .../flowable/api/flow2/FlowDelegateQuery.java | 24 +++++++++ .../anrui/flowable/api/flow2/FlowFeign.java | 7 ++- .../anrui/flowable/biz/flow2/FlowRest.java | 20 +++---- .../anrui/flowable/biz/flow2/FlowService.java | 54 +++++++++++++------ 5 files changed, 77 insertions(+), 56 deletions(-) create mode 100644 anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowDelegateQuery.java diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java index 21e4dcfc45..d5d8a0c95e 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java +++ b/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 userVoResultBean1 = sysUserFeign.fetchBySid(userSid); - String userName = ""; - if (userVoResultBean1.getData() != null) { - userName = userVoResultBean1.getData().getName(); - } - ResultBean 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(); } } \ No newline at end of file diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowDelegateQuery.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowDelegateQuery.java new file mode 100644 index 0000000000..ae2df3df9a --- /dev/null +++ b/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; +} diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java index b866707dc7..e3831895ec 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java +++ b/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 getMessageReminder(@RequestParam("proDefId") String proDefId, @RequestParam("proInstId") String proInstId); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody FlowDelegateQuery flowDelegateQuery); + + } diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java index 958f97cd0b..9899225126 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java +++ b/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); + } + } diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java index 771da577c9..995c8b075c 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java +++ b/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 { String assignee = (String) processVariables.get("assignee"); ResultBean stringResultBean = sysUserFeign.fetchBySid(assignee); String assigneeName = ""; - if(stringResultBean.getData() != null){ - assigneeName= stringResultBean.getData().getName(); + if (stringResultBean.getData() != null) { + assigneeName = stringResultBean.getData().getName(); } Map app = new HashMap<>(); @@ -722,7 +712,7 @@ public class FlowService extends MybatisBaseService { log.info("抄送方法-historicTaskInstance:{}", JSONObject.toJSONString(historicTaskInstance)); mfq.setAppMap(app); mfq.setBusinessSid(bv.getBusinessSid()); - mfq.setMsgContent(assigneeName+"抄送的流程审批,请查看"); + mfq.setMsgContent(assigneeName + "抄送的流程审批,请查看"); // act_re_procdef Map process = processService.getProcessDefByDefId(historicTaskInstance.getProcessDefinitionId()); log.info("抄送成功-process:{}", process); @@ -770,7 +760,39 @@ public class FlowService extends MybatisBaseService { public ResultBean getMessageReminder(String proDefId, String proInstId) { ResultBean 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 userVoResultBean1 = sysUserFeign.fetchBySid(userSid); + String userName = ""; + if (userVoResultBean1.getData() != null) { + userName = userVoResultBean1.getData().getName(); + } + ResultBean 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(); + + } }