|
|
|
@@ -1147,47 +1147,69 @@ public class WxFlowServiceImpl implements WxFlowService { |
|
|
|
start.setId("start"); |
|
|
|
start.setName("开始节点"); |
|
|
|
|
|
|
|
// SequenceFlow sequenceFlow = new SequenceFlow(); |
|
|
|
// sequenceFlow.setId("sf1"); |
|
|
|
// sequenceFlow.setName("开始节点"); |
|
|
|
// sequenceFlow.setSourceRef("start"); |
|
|
|
// sequenceFlow.setTargetRef("userTask1"); |
|
|
|
// |
|
|
|
// start.setOutgoingFlows(Arrays.asList(sequenceFlow)); |
|
|
|
SequenceFlow sequenceFlow = new SequenceFlow(); |
|
|
|
sequenceFlow.setId("sf1"); |
|
|
|
sequenceFlow.setName("开始节点"); |
|
|
|
sequenceFlow.setSourceRef("start"); |
|
|
|
sequenceFlow.setTargetRef("userTask1"); |
|
|
|
|
|
|
|
start.setOutgoingFlows(Arrays.asList(sequenceFlow)); |
|
|
|
|
|
|
|
process.addFlowElement(start); |
|
|
|
// process.addFlowElement(sequenceFlow); |
|
|
|
|
|
|
|
String sourceRef = "start"; |
|
|
|
String targetRef = ""; |
|
|
|
SequenceFlow sourceFlow; |
|
|
|
SequenceFlow targetFlow ; |
|
|
|
|
|
|
|
//todo 得用递归 |
|
|
|
// for (int i = 0; i < wxFlowModel.getLists().size()-1; i++) { |
|
|
|
// //UserTaskVo taskVo = wxFlowModel.getLists().get(i); |
|
|
|
// |
|
|
|
// SequenceFlow sf = new SequenceFlow(); |
|
|
|
// sf.setId("sf"+i); |
|
|
|
// sf.setName("节点"+i); |
|
|
|
// sf.setSourceRef(sourceRef); |
|
|
|
// |
|
|
|
// UserTask userTask = new UserTask(); |
|
|
|
// userTask.setName((i+1)+"级审批"); |
|
|
|
// userTask.setId("userTask"+(i+1)); |
|
|
|
// userTask.setIncomingFlows(Arrays.asList(sf)); |
|
|
|
// userTask.setOutgoingFlows(Arrays.asList(sf)); |
|
|
|
// |
|
|
|
// sf.setTargetRef(userTask.getId()); |
|
|
|
// |
|
|
|
// sourceRef = userTask.getId(); |
|
|
|
// } |
|
|
|
process.addFlowElement(sequenceFlow); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wxFlowModel.setFlow(JsonUtil.obj2Json(wxFlowModel)); |
|
|
|
final IdWorker idWorker = IdWorker.get(); |
|
|
|
wxFlowModel.setId(idWorker.nextId()); |
|
|
|
wxFlowModelMapper.insertSelective(wxFlowModel); |
|
|
|
return new ResultData(); |
|
|
|
} |
|
|
|
|
|
|
|
public UserTask draw(Process process,SequenceFlow incoming,List<UserTaskVo> lists,int count){ |
|
|
|
if(CollectionUtils.isNotEmpty(lists)){ |
|
|
|
UserTaskVo taskVo = lists.get(0); |
|
|
|
lists.remove(0); |
|
|
|
|
|
|
|
UserTask userTask = new UserTask(); |
|
|
|
if(taskVo.getType().equals(EnumTaskType.NORMAL.getCode())){ |
|
|
|
userTask.setName(count+"级审批"); |
|
|
|
userTask.setId("userTask"+count); |
|
|
|
userTask.setIncomingFlows(Arrays.asList(incoming)); |
|
|
|
List<String> userIdList = new ArrayList<>(); |
|
|
|
for (FlowUserVo userVo:taskVo.getUserList()) { |
|
|
|
userIdList.add(userVo.getId()+""); |
|
|
|
} |
|
|
|
userTask.setCandidateUsers(userIdList); |
|
|
|
}else if(taskVo.getType().equals(EnumTaskType.AND.getCode())){ |
|
|
|
MultiInstanceLoopCharacteristics mi = new MultiInstanceLoopCharacteristics(); |
|
|
|
|
|
|
|
userTask.setLoopCharacteristics(mi); |
|
|
|
}else if(taskVo.getType().equals(EnumTaskType.OR.getCode())){ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SequenceFlow out = new SequenceFlow(); |
|
|
|
out.setId("sf"+count); |
|
|
|
out.setName("节点"+count); |
|
|
|
out.setSourceRef(userTask.getId()); |
|
|
|
|
|
|
|
userTask.setOutgoingFlows(Arrays.asList(out)); |
|
|
|
|
|
|
|
UserTask next = draw(process,out,lists,count++); |
|
|
|
|
|
|
|
out.setTargetFlowElement(next); |
|
|
|
return next; |
|
|
|
}else{ |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
|