Browse Source

车辆外采流程办理

master
yxt_djz 3 years ago
parent
commit
aa2aea8c81
  1. 9
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java
  2. 8
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java
  3. 58
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BusinessVariablesDto.java
  4. 29
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/GetNextNodeDto.java
  5. 32
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java
  6. 24
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  7. 13
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java

9
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java

@ -113,18 +113,19 @@ public interface BaseOutsourcingApplicationFeign {
@ApiOperation(value = "办理(同意)") @ApiOperation(value = "办理(同意)")
@PostMapping("/complete") @PostMapping("/complete")
public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables); public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody BusinessVariablesDto bvd);
@ApiOperation(value = "根据流程实例的id获取最新待办环节") @ApiOperation(value = "根据流程实例的id获取最新待办环节")
@PostMapping(value = "/getProcessCirculationNodesByMap") @PostMapping(value = "/getProcessCirculationNodesByMap")
ResultBean getProcessCirculationNodesByMap(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables); ResultBean getProcessCirculationNodesByMap(@ApiParam(value = "变量集合,json对象") @RequestBody BaseOutsourcingApplicationDto dto);
@ApiOperation(value = "获取下一个环节") @ApiOperation(value = "获取下一个环节")
@PostMapping(value = "/getNextNodesForSubmit") @PostMapping(value = "/getNextNodesForSubmit")
ResultBean getNextNodesForSubmit(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables); ResultBean getNextNodesForSubmit(@ApiParam(value = "变量集合,json对象") @RequestBody GetNextNodeDto gnnd);
@ApiOperation(value = "获取上一个环节") @ApiOperation(value = "获取上一个环节")
@PostMapping(value = "/getPreviousNodesForReject") @PostMapping(value = "/getPreviousNodesForReject")
ResultBean getPreviousNodesForReject(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables); ResultBean getPreviousNodesForReject(@ApiParam(value = "变量集合,json对象") @RequestBody GetNextNodeDto gnnd);
@ApiOperation(value = "撤回流程") @ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess/{userSid}/{businessSid}") @PostMapping(value = "/revokeProcess/{userSid}/{businessSid}")

8
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java

@ -103,7 +103,7 @@ public class BaseOutsourcingApplicationFeignFallback implements BaseOutsourcingA
} }
@Override @Override
public ResultBean complete(Map<String, Object> variables) { public ResultBean complete(BusinessVariablesDto bvd) {
return null; return null;
} }
@ -133,17 +133,17 @@ public class BaseOutsourcingApplicationFeignFallback implements BaseOutsourcingA
} }
@Override @Override
public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) { public ResultBean getProcessCirculationNodesByMap(BaseOutsourcingApplicationDto dto) {
return null; return null;
} }
@Override @Override
public ResultBean getNextNodesForSubmit(Map<String, Object> variables) { public ResultBean getNextNodesForSubmit(GetNextNodeDto gnnd) {
return null; return null;
} }
@Override @Override
public ResultBean getPreviousNodesForReject(Map<String, Object> variables) { public ResultBean getPreviousNodesForReject(GetNextNodeDto gnnd) {
return null; return null;
} }

58
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BusinessVariablesDto.java

@ -0,0 +1,58 @@
package com.yxt.anrui.base.api.baseoutsourcingapplication;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* 业务系统调用flowable流程传递参数的格式
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BusinessVariablesDto {
/**
* 流程定义的id
*/
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;
/**
* 业务参数按需传递
*/
private Map<String, Object> formVariables;
}

29
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/GetNextNodeDto.java

@ -0,0 +1,29 @@
package com.yxt.anrui.base.api.baseoutsourcingapplication;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* 业务系统调用flowable流程传递参数的格式
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GetNextNodeDto {
/**
* 环节定义的ID
*/
private String taskDefKey;
/**
* 业务参数按需传递
*/
private Map<String, Object> formVariables;
}

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

@ -25,6 +25,7 @@
*********************************************************/ *********************************************************/
package com.yxt.anrui.base.biz.baseoutsourcingapplication; package com.yxt.anrui.base.biz.baseoutsourcingapplication;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.baseoutsourcingapplication.*; 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;
@ -128,15 +129,16 @@ public class BaseOutsourcingApplicationRest implements BaseOutsourcingApplicatio
} }
@Override @Override
public ResultBean complete(Map<String, Object> variables) { public ResultBean complete( BusinessVariablesDto bvd) {
BusinessVariables bv= BusinessVariables.builder().build(); BusinessVariables bv=new BusinessVariables();
bv.setUserSid(variables.get("userSid").toString()); BeanUtil.copyProperties(bvd,bv);
bv.setOrgSidPath(variables.get("orgSidPath").toString()); /*bv.setUserSid(bvd.getUserSid());
bv.setTaskDefKey(variables.get("taskDefKey").toString()); bv.setOrgSidPath(bvd.getOrgSidPath());
bv.setTaskId(variables.get("taskId").toString()); bv.setTaskDefKey(bvd.getTaskDefKey());
bv.setInstanceId(variables.get("instanceId").toString()); bv.setTaskId(bvd.getTaskId());
bv.setComment(variables.get("comment").toString()); bv.setInstanceId(bvd.getInstanceId());
bv.setBusinessSid(variables.get("businessSid").toString()); bv.setComment(bvd.getComment());
bv.setBusinessSid(bvd.getBusinessSid());*/
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
return baseOutsourcingApplicationService.complete(bv); return baseOutsourcingApplicationService.complete(bv);
} }
@ -167,17 +169,17 @@ public class BaseOutsourcingApplicationRest implements BaseOutsourcingApplicatio
} }
@Override @Override
public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) { public ResultBean getProcessCirculationNodesByMap(BaseOutsourcingApplicationDto dto) {
return baseOutsourcingApplicationService.getProcessCirculationNodesByMap(variables); return baseOutsourcingApplicationService.getProcessCirculationNodesByMap(dto);
} }
@Override @Override
public ResultBean getNextNodesForSubmit(Map<String, Object> variables) { public ResultBean getNextNodesForSubmit(GetNextNodeDto gnnd) {
return baseOutsourcingApplicationService.getNextNodesForSubmit(variables); return baseOutsourcingApplicationService.getNextNodesForSubmit(gnnd);
} }
@Override @Override
public ResultBean getPreviousNodesForReject(Map<String, Object> variables) { public ResultBean getPreviousNodesForReject(GetNextNodeDto gnnd) {
return baseOutsourcingApplicationService.getPreviousNodesForReject(variables); return baseOutsourcingApplicationService.getPreviousNodesForReject(gnnd);
} }
} }

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

@ -290,7 +290,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
Map<String, Object> variables=BeanUtil.beanToMap(dto); Map<String, Object> variables=BeanUtil.beanToMap(dto);
ResultBean resultBean = saveOrUpdateDto(dto); ResultBean resultBean = saveOrUpdateDto(dto);
String businessSid = resultBean.getData().toString(); String businessSid = resultBean.getData().toString();
BusinessVariables bv= BusinessVariables.builder().build(); BusinessVariables bv= new BusinessVariables();
bv.setOrgSidPath(orgSidPath); bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid); bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid()); bv.setUserSid(dto.getUserSid());
@ -480,32 +480,32 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
return sysUserFeign.getUserByRole(userQuery); return sysUserFeign.getUserByRole(userQuery);
} }
public ResultBean getProcessCirculationNodesByMap(Map<String, Object> variables) { public ResultBean getProcessCirculationNodesByMap(BaseOutsourcingApplicationDto dto) {
BusinessVariables bv= BusinessVariables.builder().build(); BusinessVariables bv=new BusinessVariables();
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setFormVariables(variables); bv.setFormVariables(BeanUtil.beanToMap(dto));
ResultBean processCirculationNodesByMap =flowTaskFeign.getProcessCirculationNodesByMap(bv); ResultBean processCirculationNodesByMap =flowTaskFeign.getProcessCirculationNodesByMap(bv);
processCirculationNodesByMap.setCode("200"); processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true); processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap; return processCirculationNodesByMap;
} }
public ResultBean getNextNodesForSubmit(Map<String, Object> variables) { public ResultBean getNextNodesForSubmit(GetNextNodeDto gnnd) {
BusinessVariables bv= BusinessVariables.builder().build(); BusinessVariables bv=new BusinessVariables();
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setTaskDefKey(variables.get("taskDefKey").toString()); bv.setTaskDefKey(gnnd.getTaskDefKey());
bv.setFormVariables(variables); bv.setFormVariables(gnnd.getFormVariables());
ResultBean processCirculationNodesByMap =flowTaskFeign.getNextNodesForSubmit(bv); ResultBean processCirculationNodesByMap =flowTaskFeign.getNextNodesForSubmit(bv);
processCirculationNodesByMap.setCode("200"); processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true); processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap; return processCirculationNodesByMap;
} }
public ResultBean getPreviousNodesForReject(Map<String, Object> variables) { public ResultBean getPreviousNodesForReject(GetNextNodeDto gnnd) {
BusinessVariables bv= BusinessVariables.builder().build(); BusinessVariables bv=new BusinessVariables();
bv.setTaskDefKey(variables.get("taskDefKey").toString()); bv.setTaskDefKey(gnnd.getTaskDefKey());
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setFormVariables(variables); bv.setFormVariables(gnnd.getFormVariables());
ResultBean processCirculationNodesByMap =flowTaskFeign.getPreviousNodesForReject(bv); ResultBean processCirculationNodesByMap =flowTaskFeign.getPreviousNodesForReject(bv);
processCirculationNodesByMap.setCode("200"); processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true); processCirculationNodesByMap.setSuccess(true);

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

@ -114,11 +114,18 @@ public class FlowableRest implements FlowableFeign {
@Override @Override
public ResultBean<String> getNextNodeUserSidsOfCreate(BusinessVariables bv) { public ResultBean<String> getNextNodeUserSidsOfCreate(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String orgSidPath=bv.getOrgSidPath(); String orgSidPath=bv.getOrgSidPath();
//根据业务参数取流程流转的环节 信息 //根据业务参数取流程流转的环节 信息
List<Map<String, Object>> list = (List<Map<String, Object>>) flowtaskService.getProcessCirculationNodesByMap(bv).getData(); List<Map<String, Object>> list = (List<Map<String, Object>>) flowtaskService.getProcessCirculationNodesByMap(bv).getData();
if(list==null||list.size()<2){
return rb.setMsg("流程设计问题");
}
//取第二个环节的配置角色 //取第二个环节的配置角色
Object o = list.get(1).get("candidateGroups"); Object o = list.get(1).get("candidateGroups");
if(o==null){
return rb.setMsg("流程设计问题");
}
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o)); JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
String roleSid = jsonArray.get(0).toString(); String roleSid = jsonArray.get(0).toString();
//根据组织架构、角色两个参数取相关符合条件的用户信息 //根据组织架构、角色两个参数取相关符合条件的用户信息
@ -126,6 +133,9 @@ public class FlowableRest implements FlowableFeign {
userQuery.setRoleSid(roleSid); userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(orgSidPath); userQuery.setOrgSidPath(orgSidPath);
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData(); List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
if(sysUserVos==null||sysUserVos.size()<1){
return rb.setMsg("环节没有用户");
}
StringBuilder nextNodeUserSids = new StringBuilder(); StringBuilder nextNodeUserSids = new StringBuilder();
for (SysUserVo su : sysUserVos) { for (SysUserVo su : sysUserVos) {
nextNodeUserSids.append(su.getSid()).append(","); nextNodeUserSids.append(su.getSid()).append(",");
@ -133,8 +143,7 @@ public class FlowableRest implements FlowableFeign {
//符合条件的用户的sid,拼接的字符串 //符合条件的用户的sid,拼接的字符串
String nextNodeUserSids_ = nextNodeUserSids.toString(); String nextNodeUserSids_ = nextNodeUserSids.toString();
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1); nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1);
ResultBean rb = ResultBean.fireSuccess(); return rb.success().setData(nextNodeUserSids_);
return rb.setData(nextNodeUserSids_);
} }
@Override @Override

Loading…
Cancel
Save