Browse Source

车辆外采流程办理

zhanglei
yxt_djz 3 years ago
parent
commit
07ce25547f
  1. 13
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java
  2. 42
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  3. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  4. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  5. 8
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFallback.java
  6. 15
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFeign.java
  7. 28
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/StartProcessDto.java
  8. 2
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeign.java
  9. 2
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeignFallBack.java
  10. 36
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/sqloperationsymbol/BusinessVariables.java
  11. 48
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  12. 14
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableService.java
  13. 10
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java
  14. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskController.java
  15. 12
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  16. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

13
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java

@ -29,6 +29,8 @@ import com.yxt.anrui.base.api.baseoutsourcingapplication.*;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleVo; import com.yxt.anrui.base.api.basevehicle.BaseVehicleVo;
import com.yxt.anrui.base.api.flow.FlowTaskVo; import com.yxt.anrui.base.api.flow.FlowTaskVo;
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService; import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -127,7 +129,16 @@ public class BaseOutsourcingApplicationRest implements BaseOutsourcingApplicatio
@Override @Override
public ResultBean complete(Map<String, Object> variables) { public ResultBean complete(Map<String, Object> variables) {
return baseOutsourcingApplicationService.complete(variables); BusinessVariables bv= BusinessVariables.builder().build();
bv.setUserSid(variables.get("userSid").toString());
bv.setOrgSidPath(variables.get("orgSidPath").toString());
bv.setTaskDefKey(variables.get("taskDefKey").toString());
bv.setTaskId(variables.get("taskId").toString());
bv.setInstanceId(variables.get("instanceId").toString());
bv.setComment(variables.get("comment").toString());
bv.setBusinessSid(variables.get("businessSid").toString());
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
return baseOutsourcingApplicationService.complete(bv);
} }
@Override @Override

42
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java

@ -288,28 +288,27 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
SysStaffOrg sysStaffOrg=sysStaffOrgFeign.getOrgByStaffSid(dto.getStaffSid()).getData(); SysStaffOrg sysStaffOrg=sysStaffOrgFeign.getOrgByStaffSid(dto.getStaffSid()).getData();
String orgSidPath=sysStaffOrg.getOrgSidPath(); String orgSidPath=sysStaffOrg.getOrgSidPath();
Map<String, Object> variables=BeanUtil.beanToMap(dto); Map<String, Object> variables=BeanUtil.beanToMap(dto);
String orgSid = sysStaffOrg.getOrgSid();//checkUserOrg(dto.getStaffSid());
ResultBean resultBean = saveOrUpdateDto(dto); ResultBean resultBean = saveOrUpdateDto(dto);
String businessSid = resultBean.getData().toString(); String businessSid = resultBean.getData().toString();
BusinessVariables bv= BusinessVariables.builder().build();
variables.put("orgSidPath",orgSidPath); bv.setOrgSidPath(orgSidPath);
variables.put("businessSid", businessSid); bv.setBusinessSid(businessSid);
variables.put("orgSid", orgSid); //部门sid bv.setUserSid(dto.getUserSid());
variables.put("businessSid",businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
if (StringUtils.isBlank(dto.getTaskId())) { // 新提交 if (StringUtils.isBlank(dto.getTaskId())) { // 新提交
StartProcessDto startProcessDto =new StartProcessDto(); ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
startProcessDto.setProDefId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
startProcessDto.setUserSid(dto.getUserSid());
startProcessDto.setVariables(variables);
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(startProcessDto);
UpdateFlowFieldVo uff=resultBean1.getData(); UpdateFlowFieldVo uff=resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff)); updateFlowFiled(BeanUtil.beanToMap(uff));
return resultBean1; return resultBean1;
} else { // 驳回到发起人后再次提交 } else { // 驳回到发起人后再次提交
variables.put("comment", StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
variables.put("instanceId", dto.getInstanceId()); bv.setInstanceId(dto.getInstanceId());
variables.put("taskId", dto.getTaskId()); return complete(bv);
variables.put("userSid", dto.getUserSid());
return complete(variables);
} }
} }
/* public ResultBean submitBaseOutSourcingApplication(String sid,String userSid) { /* public ResultBean submitBaseOutSourcingApplication(String sid,String userSid) {
@ -387,13 +386,10 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
/** /**
* 办理 * 办理
* @param variables * @param bv
* @return * @return
*/ */
public ResultBean complete(Map<String, Object> variables) { public ResultBean complete(BusinessVariables bv) {
variables.put("modelId",ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
BusinessVariables bv= BusinessVariables.builder().build();
bv.setFormVariables(variables);
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv); ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
updateFlowFiled(BeanUtil.beanToMap(rb.getData())); updateFlowFiled(BeanUtil.beanToMap(rb.getData()));
return rb; return rb;
@ -485,8 +481,10 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
} }
public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) { public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) {
variables.put("modelId",ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); BusinessVariables bv= BusinessVariables.builder().build();
ResultBean processCirculationNodesByMap =flowTaskFeign.getProcessCirculationNodesByMap(variables); bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setFormVariables(variables);
ResultBean processCirculationNodesByMap =flowTaskFeign.getProcessCirculationNodesByMap(bv);
processCirculationNodesByMap.setCode("200"); processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true); processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap; return processCirculationNodesByMap;

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

@ -242,7 +242,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();
variables.put("businessSid", businessSid); variables.put("businessSid", businessSid);
variables.put("orgSid", orgSid); variables.put("orgSid", orgSid);
ResultBean businessResultBean = flowableFeign.businessStart(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId(), userSid, variables); ResultBean businessResultBean =null;// flowableFeign.businessStart(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId(), userSid, variables);
if (businessResultBean.getSuccess() && businessResultBean.getData() != null) { if (businessResultBean.getSuccess() && businessResultBean.getData() != null) {
Map<String, String> map = (Map<String, String>) businessResultBean.getData(); Map<String, String> map = (Map<String, String>) businessResultBean.getData();
//更新未售买断业务表中的流程状态 //更新未售买断业务表中的流程状态

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -704,7 +704,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
variables.put("isLoan1", false); variables.put("isLoan1", false);
} }
variables.put("orgSid", orgSid); variables.put("orgSid", orgSid);
ResultBean businessResultBean = flowableFeign.businessStart(ProcDefEnum.SALESORDER.getProDefId(), dto.getUserSid(), variables); ResultBean businessResultBean =null;// flowableFeign.businessStart(ProcDefEnum.SALESORDER.getProDefId(), dto.getUserSid(), variables);
if (businessResultBean.getSuccess() && businessResultBean.getData() != null) { if (businessResultBean.getSuccess() && businessResultBean.getData() != null) {
Map<String, String> map = (Map<String, String>) businessResultBean.getData(); Map<String, String> map = (Map<String, String>) businessResultBean.getData();
//更新业务表中的流程状态 //更新业务表中的流程状态

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

@ -10,7 +10,7 @@ import java.util.Map;
@Component @Component
public class FlowableFallback implements FlowableFeign { public class FlowableFallback implements FlowableFeign {
@Override @Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) { public ResultBean businessStart(BusinessVariables bv) {
return null; return null;
} }
@ -35,17 +35,17 @@ public class FlowableFallback implements FlowableFeign {
} }
@Override @Override
public ResultBean getNextNodeUserSidsOfCreate(Map<String, Object> variables ) { public ResultBean getNextNodeUserSidsOfCreate(BusinessVariables bv ) {
return null; return null;
} }
@Override @Override
public ResultBean getNextNodeUserSidsOfSubmit(Map<String, Object> variables ) { public ResultBean getNextNodeUserSidsOfSubmit(BusinessVariables bv ) {
return null; return null;
} }
@Override @Override
public ResultBean<UpdateFlowFieldVo> startProcess(StartProcessDto dto) { public ResultBean<UpdateFlowFieldVo> startProcess(BusinessVariables dto) {
return null; return null;
} }

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

@ -21,15 +21,10 @@ public interface FlowableFeign {
/** /**
* 业务系统发起流程申请 * 业务系统发起流程申请
* *
* @param procDefId 流程定义id
* @param userSid 用户sid
* @param variables form参数
* @return * @return
*/ */
@PostMapping("/businessStart/{procDefId}/{userSid}") @PostMapping("/businessStart")
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId, public ResultBean businessStart(@RequestBody BusinessVariables bv);
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
/** /**
* 流程定义列表 一般业务中不需要查询该列表 * 流程定义列表 一般业务中不需要查询该列表
@ -83,7 +78,7 @@ public interface FlowableFeign {
@ApiOperation(value = "创建流程实例时取下一环节的用户sid") @ApiOperation(value = "创建流程实例时取下一环节的用户sid")
@PostMapping(value = "/getNextNodeUserSidsOfCreate") @PostMapping(value = "/getNextNodeUserSidsOfCreate")
@ResponseBody @ResponseBody
ResultBean<String> getNextNodeUserSidsOfCreate( @RequestBody Map<String, Object> variables); ResultBean<String> getNextNodeUserSidsOfCreate( @RequestBody BusinessVariables bv);
/** /**
* 提交流程实例时取下一环节的用户sid * 提交流程实例时取下一环节的用户sid
* *
@ -92,12 +87,12 @@ public interface FlowableFeign {
@ApiOperation(value = "提交流程实例时取下一环节的用户sid") @ApiOperation(value = "提交流程实例时取下一环节的用户sid")
@PostMapping(value = "/getNextNodeUserSidsOfSubmit") @PostMapping(value = "/getNextNodeUserSidsOfSubmit")
@ResponseBody @ResponseBody
ResultBean getNextNodeUserSidsOfSubmit(@RequestBody Map<String, Object> variables); ResultBean getNextNodeUserSidsOfSubmit(@RequestBody BusinessVariables bv);
@ApiOperation(value = "启动流程") @ApiOperation(value = "启动流程")
@PostMapping(value = "/startProcess") @PostMapping(value = "/startProcess")
@ResponseBody @ResponseBody
ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody StartProcessDto dto); ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables dto);
@ApiOperation(value = "处理流程") @ApiOperation(value = "处理流程")
@PostMapping(value = "/handleProsess") @PostMapping(value = "/handleProsess")

28
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/StartProcessDto.java

@ -3,11 +3,37 @@ package com.yxt.anrui.flowable.api.flow;
import java.util.Map; import java.util.Map;
public class StartProcessDto { public class StartProcessDto {
private String orgSidPath;
private String businessSid;
private String orgSid; //部门sid
private String proDefId; private String proDefId;
private String userSid; private String userSid;
private Map<String, Object> variables; private Map<String, Object> variables;
public String getOrgSidPath() {
return orgSidPath;
}
public void setOrgSidPath(String orgSidPath) {
this.orgSidPath = orgSidPath;
}
public String getBusinessSid() {
return businessSid;
}
public void setBusinessSid(String businessSid) {
this.businessSid = businessSid;
}
public String getOrgSid() {
return orgSid;
}
public void setOrgSid(String orgSid) {
this.orgSid = orgSid;
}
public String getProDefId() { public String getProDefId() {
return proDefId; return proDefId;
} }

2
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeign.java

@ -158,7 +158,7 @@ public interface FlowTaskFeign {
@ApiOperation(value = "根据流程实例的id获取最新待办环节") @ApiOperation(value = "根据流程实例的id获取最新待办环节")
@PostMapping(value = "/getProcessCirculationNodesByMap") @PostMapping(value = "/getProcessCirculationNodesByMap")
ResultBean getProcessCirculationNodesByMap(@RequestBody Map<String, Object> variables); ResultBean getProcessCirculationNodesByMap(@RequestBody BusinessVariables bv);
@ApiOperation("获取流程图") @ApiOperation("获取流程图")
@GetMapping("/readXml/{sid}") @GetMapping("/readXml/{sid}")

2
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeignFallBack.java

@ -147,7 +147,7 @@ public class FlowTaskFeignFallBack implements FlowTaskFeign {
return null; return null;
} }
@Override @Override
public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) { public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
return null; return null;
} }

36
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/sqloperationsymbol/BusinessVariables.java

@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.util.Map; import java.util.Map;
@ -15,7 +16,42 @@ import java.util.Map;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class BusinessVariables { public class BusinessVariables {
/**
* 流程定义的id
*/
private String modelId; private String modelId;
/**
* 审批意见
*/
private String comment;
/**
* 流程实例的id
*/
private String instanceId;
/**
* taskId
*/
private String taskId;
/**
* 当前用户的id
*/
private String userSid;
/**
* 当前用户部门的全路径
*/
private String orgSidPath;
/**
* 业务sid
*/
private String businessSid;
/**
* 环节定义的ID
*/
private String taskDefKey;
/**
* nextNodeUserSids 下一环节的用户sid
*/
private String nextNodeUserSids;
/** /**
* 业务参数按需传递 * 业务参数按需传递
*/ */

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

@ -84,10 +84,8 @@ public class FlowableRest implements FlowableFeign {
protected TaskService taskService; protected TaskService taskService;
@Override @Override
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId, public ResultBean businessStart(BusinessVariables bv) {
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid, return flowableService.businessStart( bv);
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
return flowableService.businessStart(procDefId, userSid, variables);
} }
@Override @Override
@ -115,10 +113,10 @@ public class FlowableRest implements FlowableFeign {
} }
@Override @Override
public ResultBean<String> getNextNodeUserSidsOfCreate(Map<String, Object> variables) { public ResultBean<String> getNextNodeUserSidsOfCreate(BusinessVariables bv) {
String orgSidPath=(String)variables.get("orgSidPath"); String orgSidPath=bv.getOrgSidPath();
//根据业务参数取流程流转的环节 信息 //根据业务参数取流程流转的环节 信息
List<Map<String, Object>> list = (List<Map<String, Object>>) flowtaskService.getProcessCirculationNodesByMap(variables).getData(); List<Map<String, Object>> list = (List<Map<String, Object>>) flowtaskService.getProcessCirculationNodesByMap(bv).getData();
//取第二个环节的配置角色 //取第二个环节的配置角色
Object o = list.get(1).get("candidateGroups"); Object o = list.get(1).get("candidateGroups");
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o)); JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
@ -140,12 +138,13 @@ public class FlowableRest implements FlowableFeign {
} }
@Override @Override
public ResultBean getNextNodeUserSidsOfSubmit(Map<String, Object> variables) { public ResultBean getNextNodeUserSidsOfSubmit(BusinessVariables bv) {
ResultBean rb = ResultBean.fireSuccess(); ResultBean rb = ResultBean.fireSuccess();
String orgSidPath=(String)variables.get("orgSidPath"); String orgSidPath=bv.getOrgSidPath();
String taskDefKey=(String)variables.get("taskDefKey"); String taskDefKey=bv.getTaskDefKey();
//根据业务参数取流程流转的环节 信息 //根据业务参数取流程流转的环节 信息
List<Map<String, Object>> list = (List<Map<String, Object>>) flowtaskService.getProcessCirculationNodesByMap(variables).getData(); List<Map<String, Object>> list = (List<Map<String, Object>>)
flowtaskService.getProcessCirculationNodesByMap(bv).getData();
Map<String, Object> task_map=new HashMap<>(); Map<String, Object> task_map=new HashMap<>();
//取第二个环节的配置角色 //取第二个环节的配置角色
boolean endTask=true; boolean endTask=true;
@ -180,16 +179,16 @@ public class FlowableRest implements FlowableFeign {
} }
@Override @Override
public ResultBean<UpdateFlowFieldVo> startProcess(StartProcessDto dto) { public ResultBean<UpdateFlowFieldVo> startProcess(BusinessVariables dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
String nextNodeUserSids_=getNextNodeUserSidsOfCreate(dto.getVariables()).getData(); String nextNodeUserSids_=getNextNodeUserSidsOfCreate(dto).getData();
dto.getVariables().put("nextNodeUserSids",nextNodeUserSids_); dto.setNextNodeUserSids(nextNodeUserSids_);
ResultBean resultBean1 = flowableService.businessStart(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId(), dto.getUserSid(), dto.getVariables()); ResultBean resultBean1 = flowableService.businessStart(dto);
UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
if (resultBean1.getSuccess() && resultBean1.getData() != null) { if (resultBean1.getSuccess() && resultBean1.getData() != null) {
vo.setSid("" + dto.getVariables().get("businessSid")); vo.setSid("" + dto.getBusinessSid());
Map<String, String> map = (Map<String, String>) resultBean1.getData(); Map<String, String> map = (Map<String, String>) resultBean1.getData();
vo.setProcDefId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); vo.setProcDefId(dto.getModelId());
vo.setNodeState(map.get("nodeState")); vo.setNodeState(map.get("nodeState"));
vo.setProcInsId(map.get("procInsId")); vo.setProcInsId(map.get("procInsId"));
vo.setTaskDefKey(map.get("taskDefKey")); vo.setTaskDefKey(map.get("taskDefKey"));
@ -205,27 +204,26 @@ public class FlowableRest implements FlowableFeign {
UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
Map<String, Object> formVariables = dto.getFormVariables(); Map<String, Object> formVariables = dto.getFormVariables();
String taskId = (String) formVariables.get("taskId"); String taskId = dto.getTaskId();
if (StringUtils.isBlank(taskId)) { if (StringUtils.isBlank(taskId)) {
return rb.setMsg("taskId 不能为空!"); return rb.setMsg("taskId 不能为空!");
} }
String procInsId = (String) formVariables.get("instanceId"); ResultBean<String> resultBean = getNextNodeUserSidsOfSubmit(dto);
ResultBean<String> resultBean = getNextNodeUserSidsOfSubmit(dto.getFormVariables());
String nextUserSid=resultBean.getData(); String nextUserSid=resultBean.getData();
String comment = (String) formVariables.get("comment"); String comment = dto.getComment();
if (StringUtils.isBlank(comment)) { if (StringUtils.isBlank(comment)) {
return rb.setMsg("comment 不能为空!"); return rb.setMsg("comment 不能为空!");
} }
String instanceId = (String) formVariables.get("instanceId"); String instanceId = dto.getInstanceId();
if (StringUtils.isBlank(instanceId)) { if (StringUtils.isBlank(instanceId)) {
return rb.setMsg("instanceId 不能为空!"); return rb.setMsg("instanceId 不能为空!");
} }
String userSid = (String) formVariables.get("userSid"); String userSid = dto.getUserSid();
if (StringUtils.isBlank(userSid)) { if (StringUtils.isBlank(userSid)) {
return rb.setMsg("userSid 不能为空!"); return rb.setMsg("userSid 不能为空!");
} }
String businessSid = (String) formVariables.get("businessSid"); String businessSid =dto.getBusinessSid();
if (StringUtils.isBlank(businessSid)) { if (StringUtils.isBlank(businessSid)) {
return rb.setMsg("业务sid 不能为空!"); return rb.setMsg("业务sid 不能为空!");
} }
@ -251,7 +249,7 @@ public class FlowableRest implements FlowableFeign {
taskService.complete(taskId, formVariables); taskService.complete(taskId, formVariables);
//根据流程实例的id取最新的待办环节,给环节设置上用户sid //根据流程实例的id取最新的待办环节,给环节设置上用户sid
ResultBean<List<LatestTaskVo>> ll = flowtaskService.getLatestTasksNew(procInsId); ResultBean<List<LatestTaskVo>> ll = flowtaskService.getLatestTasksNew(instanceId);
if (ll.getData().size() > 0) { if (ll.getData().size() > 0) {
LatestTaskVo latestTaskVo = ll.getData().get(0); LatestTaskVo latestTaskVo = ll.getData().get(0);
String id_ = latestTaskVo.getId_(); String id_ = latestTaskVo.getId_();

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

@ -36,14 +36,12 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
@Autowired @Autowired
private FlowTaskService flowTaskService; private FlowTaskService flowTaskService;
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId, public ResultBean businessStart(BusinessVariables bv) {
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
variables.put("procDefId", procDefId); /* variables.put("procDefId", procDefId);
variables.put("userSid", userSid); variables.put("userSid", userSid);*/
BusinessVariables bv = BusinessVariables.builder().build(); /*BusinessVariables bv = BusinessVariables.builder().build();
bv.setFormVariables(variables); bv.setFormVariables(variables);*/
ResultBean<FlowTask> rb = flowDefinitionService.businessStart(bv); ResultBean<FlowTask> rb = flowDefinitionService.businessStart(bv);
if (!rb.getSuccess()) { if (!rb.getSuccess()) {
return rb; return rb;
@ -53,7 +51,7 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
String nodeState = list.get(0).getName_(); String nodeState = list.get(0).getName_();
String task_def_key_ = list.get(0).getTask_def_key_(); String task_def_key_ = list.get(0).getTask_def_key_();
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("sid", variables.get("businessSid").toString()); map.put("sid", bv.getBusinessSid());
map.put("nodeState", nodeState); map.put("nodeState", nodeState);
map.put("procInsId", rb.getData().getProcInsId()); map.put("procInsId", rb.getData().getProcInsId());
map.put("taskDefKey", task_def_key_); map.put("taskDefKey", task_def_key_);

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

@ -171,7 +171,7 @@ public class FlowDefinitionService extends FlowServiceFactory {
* @param variables 流程变量 * @param variables 流程变量
* @return * @return
*/ */
public ResultBean<FlowTask> businessStartProcessInstanceById(String procDefId, String userSid, Map<String, Object> variables) { public ResultBean<FlowTask> businessStartProcessInstanceById(String procDefId, String userSid, String nextNodeUserSids, Map<String, Object> variables) {
try { try {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId) ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId)
.latestVersion().singleResult(); .latestVersion().singleResult();
@ -198,7 +198,7 @@ public class FlowDefinitionService extends FlowServiceFactory {
List<LatestTaskVo> data = latestTasksNew.getData(); List<LatestTaskVo> data = latestTasksNew.getData();
LatestTaskVo latestTaskVo = data.get(0); LatestTaskVo latestTaskVo = data.get(0);
String id_ = latestTaskVo.getId_(); String id_ = latestTaskVo.getId_();
taskService.setAssignee(id_, variables.get("nextNodeUserSids").toString()); taskService.setAssignee(id_,nextNodeUserSids);
ResultBean<FlowTask> rb = new ResultBean<>(); ResultBean<FlowTask> rb = new ResultBean<>();
FlowTask flowTask = new FlowTask(); FlowTask flowTask = new FlowTask();
flowTask.setTaskId(task.getId()); flowTask.setTaskId(task.getId());
@ -231,8 +231,8 @@ public class FlowDefinitionService extends FlowServiceFactory {
public ResultBean<FlowTask> businessStart(BusinessVariables dto) { public ResultBean<FlowTask> businessStart(BusinessVariables dto) {
ResultBean<FlowTask> resultBean = new ResultBean<>(); ResultBean<FlowTask> resultBean = new ResultBean<>();
Map<String, Object> variables = dto.getFormVariables(); Map<String, Object> variables = dto.getFormVariables();
Object procDefId_obj = variables.get("procDefId"); Object procDefId_obj = dto.getModelId();
Object userSid_obj = variables.get("userSid"); Object userSid_obj = dto.getUserSid();
String procDefId = null; String procDefId = null;
String userSid = null; String userSid = null;
if (procDefId_obj == null) { if (procDefId_obj == null) {
@ -254,7 +254,7 @@ public class FlowDefinitionService extends FlowServiceFactory {
return resultBean; return resultBean;
} }
} }
resultBean = businessStartProcessInstanceById(procDefId, userSid, variables); resultBean = businessStartProcessInstanceById(procDefId, userSid,dto.getNextNodeUserSids(), variables);
return resultBean; return resultBean;
} }

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

@ -277,8 +277,8 @@ public class FlowTaskController implements FlowTaskFeign {
} }
@Override @Override
public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) { public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
return flowTaskService.getProcessCirculationNodesByMap(variables); return flowTaskService.getProcessCirculationNodesByMap(bv);
} }
@Override @Override

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

@ -108,16 +108,16 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
@Resource @Resource
private AppSubsetVersionFeign appSubsetVersionFeign; private AppSubsetVersionFeign appSubsetVersionFeign;
public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) { public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
String modelId = null; String modelId = null;
if (variables.get("modelId") != null) { if (bv.getModelId()!= null) {
modelId = variables.get("modelId").toString(); modelId = bv.getModelId();
} }
String procId = null; String procId = null;
if (variables.get("procId") != null) { if (bv.getModelId() != null) {
procId = variables.get("procId").toString(); procId = bv.getModelId();
} }
List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, variables); List<FlowElement> flowElements = processService.calApprovePath(procId, modelId, bv.getFormVariables());
List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList()); List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList());
for (int i = 0; i < collect.size(); i++) { for (int i = 0; i < collect.size(); i++) {
if (collect.get(i).getId().equals(modelId)) { if (collect.get(i).getId().equals(modelId)) {

2
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

@ -210,7 +210,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
variables.put("isLoan", false); variables.put("isLoan", false);
} }
variables.put("orgSid", orgSid);//部门sid variables.put("orgSid", orgSid);//部门sid
ResultBean businessResultBean = flowableFeign.businessStart(ProcDefEnum.SCMVEHICLERETURN.getProDefId(), scmVehicleReturnDto.getUserSid(), variables); ResultBean businessResultBean =null;// flowableFeign.businessStart(ProcDefEnum.SCMVEHICLERETURN.getProDefId(), scmVehicleReturnDto.getUserSid(), variables);
if (businessResultBean.getSuccess() && businessResultBean.getData() != null) { if (businessResultBean.getSuccess() && businessResultBean.getData() != null) {
Map<String, String> map = (Map<String, String>) businessResultBean.getData(); Map<String, String> map = (Map<String, String>) businessResultBean.getData();
//更新退库业务表中的流程状态 //更新退库业务表中的流程状态

Loading…
Cancel
Save