Browse Source

修改

master
dimengzhe 2 months ago
parent
commit
b0e9b835cb
  1. 34
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feign.java
  2. 12
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feignback.java
  3. 6
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Rest.java
  4. 25
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java
  5. 24
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow3/Flow3Feign.java

34
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feign.java

@ -0,0 +1,34 @@
package com.yxt.anrui.flowable.api.flow3;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeignback;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/12
**/
@FeignClient(
contextId = "anrui-flowable-Flow3",
name = "anrui-flowable",
path = "v3/flow",
fallback = Flow3Feignback.class)
public interface Flow3Feign {
@ApiOperation(value = "启动流程")
@PostMapping(value = "/startProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables dto);
@ApiOperation(value = "处理流程")
@PostMapping(value = "/handleProsess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv);
}

12
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feignback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.flowable.api.flow3;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/12
**/
@Component
public class Flow3Feignback {
}

6
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Rest.java

@ -3,6 +3,8 @@ package com.yxt.anrui.flowable.biz.flow3;
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.FlowFeign;
import com.yxt.anrui.flowable.api.flow3.Flow3Feign;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
@ -26,13 +28,14 @@ import java.util.concurrent.*;
**/
@RestController
@RequestMapping("v3/flow")
public class Flow3Rest {
public class Flow3Rest implements Flow3Feign {
Logger log = LoggerFactory.getLogger(Flow3Rest.class);
@Autowired
private Flow3Service flowService;
@PostMapping("/startProcess")
@Override
public ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
//获取表单中的参数
@ -54,6 +57,7 @@ public class Flow3Rest {
}
@PostMapping("/handleProsess")
@Override
public ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
ResultBean<UpdateFlowFieldVo> updateFlowFieldVoResultBean = flowService.handleProsess(bv, true);

25
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java

@ -106,13 +106,11 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
// 获取传入的变量
Map<String, Object> variables = bv.getFormVariables();
Map<String, Object> variablesSeconds = bv.getFormVariables();
String nextNodeUserSids = "";
String nextNodeUserSids = bv.getNextNodeUserSids();
List<String> userSidForNextNode = new ArrayList<>();
if (StringUtils.isBlank(nextNodeUserSids)) {
userSidForNextNode = getNextNodeUser(bv).getData();
variables.put("approvers", userSidForNextNode);
} else {
nextNodeUserSids = bv.getNextNodeUserSids();
}
@ -155,21 +153,30 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
for (int i = 0; i < tasks.size(); i++) {
Task task2 = tasks.get(i);
String isMultiInstanceTask = isMultiInstanceTask(task2);
id_ = task2.getId();
task_def_key_ = task2.getTaskDefinitionKey();
name_ = task2.getName();
if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) {
String approver = getApproverForTask(userSidForNextNode, i);
approver = change(approver, bv.getInstanceId());
taskService.claim(task2.getId(), approver);
} else {
nextNodeUserSids = userSidForNextNode.get(0);
//查询下一环节是否有转办并添加评论
nextNodeUserSids = change(nextNodeUserSids, processInstance.getProcessInstanceId());
taskService.setAssignee(id_, nextNodeUserSids);
taskService.setVariablesLocal(id_, variables);
}
id_ = task2.getId();
task_def_key_ = task2.getTaskDefinitionKey();
name_ = task2.getName();
}
} else {
Task task2 = tasks.get(0);
id_ = task2.getId();
task_def_key_ = task2.getTaskDefinitionKey();
name_ = task2.getName();
//查询下一环节是否有转办并添加评论
nextNodeUserSids = change(nextNodeUserSids, processInstance.getProcessInstanceId());
taskService.setAssignee(id_, nextNodeUserSids);
taskService.setVariablesLocal(id_, variables);
}
//提交前传入下一环节待办人
@ -234,7 +241,7 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId();
adminContains = true;
} else {
if(!listResultBean.getData().isEmpty()){
if(listResultBean.getData() != null){
userSidForNextNode = listResultBean.getData();
formVariables.put("approvers", listResultBean.getData());
}
@ -277,7 +284,9 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
Task task2 = tasks.get(i);
isMultiInstanceTask = isMultiInstanceTask(task2);
if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) {
taskService.claim(task2.getId(), userSidForNextNode.get(i)); // 由候选人认领任务
String nextUserSidNext = userSidForNextNode.get(i);
nextUserSidNext = change(nextUserSidNext, bv.getInstanceId());
taskService.claim(task2.getId(), nextUserSidNext); // 由候选人认领任务
isMultiInstanceTaskNext = true;
} else {

24
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow3/Flow3Feign.java

@ -0,0 +1,24 @@
package com.yxt.anrui.oa.feign.flowable.flow3;
import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.oa.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
@FeignClient(
contextId = "anrui-flowable-Flow3",
name = "anrui-flowable",
path = "v3/flow")
public interface Flow3Feign {
@ApiOperation(value = "启动流程")
@PostMapping(value = "/startProcess2")
@ResponseBody
ResultBean<UpdateFlowFieldVo> startProcess2(@RequestBody BusinessVariables dto);
}
Loading…
Cancel
Save