Browse Source

增加业务向流程引擎传递下一环节代办人的sid功能

master
yxt_djz 3 years ago
parent
commit
e504299acf
  1. 24
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  2. 92
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java

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

@ -186,12 +186,15 @@ public class FlowableRest implements FlowableFeign {
@Override
public ResultBean<UpdateFlowFieldVo> startProcess(BusinessVariables dto) {
ResultBean rb = ResultBean.fireFail();
ResultBean<String> nextNodeUserSidsOfCreate = getNextNodeUserSidsOfCreate(dto);
boolean success = nextNodeUserSidsOfCreate.getSuccess();
if(!success){
return rb.setMsg(nextNodeUserSidsOfCreate.getMsg());
String nextNodeUserSids_ = dto.getNextNodeUserSids();
if(StringUtils.isBlank(nextNodeUserSids_)){
ResultBean<String> nextNodeUserSidsOfCreate = getNextNodeUserSidsOfCreate(dto);
boolean success = nextNodeUserSidsOfCreate.getSuccess();
if(!success){
return rb.setMsg(nextNodeUserSidsOfCreate.getMsg());
}
nextNodeUserSids_=nextNodeUserSidsOfCreate.getData();
}
String nextNodeUserSids_=nextNodeUserSidsOfCreate.getData();
dto.setNextNodeUserSids(nextNodeUserSids_);
ResultBean resultBean1 = flowableService.businessStart(dto);
UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
@ -218,11 +221,14 @@ public class FlowableRest implements FlowableFeign {
if (StringUtils.isBlank(taskId)) {
return rb.setMsg("taskId 不能为空!");
}
ResultBean<String> resultBean = getNextNodeUserSidsOfSubmit(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg("nextUserSid 不能为空!");
String nextUserSid = dto.getNextNodeUserSids();
if(StringUtils.isBlank(nextUserSid)){
ResultBean<String> nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto);
if (!nextNodeUserSidsOfSubmit.getSuccess()) {
return rb.setMsg("nextUserSid 不能为空!");
}
nextUserSid=nextNodeUserSidsOfSubmit.getData();
}
String nextUserSid=resultBean.getData();
String comment = dto.getComment();
if (StringUtils.isBlank(comment)) {
return rb.setMsg("comment 不能为空!");

92
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java

@ -7,8 +7,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.SubmitBaseOutSourcingApplicationDto;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
@ -66,7 +66,6 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableFeign flowableFeign;
// private FlowableService flowableService;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
@ -334,7 +333,6 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
return rb.setMsg("操作失败,提交的数据不一致!");
}
//取组织架构的全路径sid
// SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getApplicationSid()).getData();
String orgSidPath = dto.getOrgSidPath();
Map<String, Object> variables = BeanUtil.beanToMap(dto);
BusinessVariables bv = new BusinessVariables();
@ -351,7 +349,6 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
ResultBean<UpdateFlowFieldVo> rrb = flowableFeign.handleProsess(bv);
String taskDefKey = rrb.getData().getTaskDefKey();
updateFlowFiled(rrb.getData());
if("Event_end".equals(taskDefKey)){
List<ScmApplyInboundVehicleDto> vehicleList = dto.getVehicleList();
for(ScmApplyInboundVehicleDto scmApplyInboundVehicleDto:vehicleList){
@ -387,28 +384,21 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
*/
public ResultBean revokeProcess(String userSid, String businessSid, 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 = flowTaskFeign.revokeProcess(fl);
if (!resultBean.getSuccess()) {
ScmApplyInbound booad = this.fetchBySid(businessSid);
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(flowTaskVo.getBusinessSid());
fl.setUserSid(flowTaskVo.getUserSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
updateFlowFiled(resultBean.getData());
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
paramMap.put("taskId", resultBean.getData().get(0).getId_());
if (incomingSourceRef.contains("start")) {
paramMap.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
paramMap.put("taskDefKey", taskDefKey);
paramMap.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode());
} else {
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey);
}
updateFlowFiled(paramMap);
return resultBean;
}
/**
@ -420,24 +410,21 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
*/
public ResultBean taskReject(String businessSid, 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 = flowTaskFeign.taskReject(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
paramMap.put("taskId", resultBean.getData().get(0).getId_());
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey);
if (incomingSourceRef.contains("start")) {
paramMap.put("flowState", SysFormLinkFlowStateEnum.REJECT.getCode());
ScmApplyInbound booad = this.fetchBySid(businessSid);
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(flowTaskVo.getBusinessSid());
fl.setUserSid(flowTaskVo.getUserSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
updateFlowFiled(resultBean.getData());
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
updateFlowFiled(paramMap);
return resultBean;
}
/**
@ -449,18 +436,21 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
*/
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
ResultBean resultBean = flowTaskFeign.breakProcess(fl);
if (!resultBean.getSuccess()) {
ScmApplyInbound booad = this.fetchBySid(businessSid);
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(flowTaskVo.getBusinessSid());
fl.setUserSid(flowTaskVo.getUserSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
updateFlowFiled(resultBean.getData());
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
paramMap.put("nodeState",resultBean.getData());
paramMap.put("taskDefKey", "Event_end");
paramMap.put("flowState", SysFormLinkFlowStateEnum.BREAK.getCode());
updateFlowFiled(paramMap);
return resultBean;
}
/**

Loading…
Cancel
Save