From 37890c77fc81f161d24039e6e91ac63dad568916 Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 11 Jun 2019 11:51:13 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=A1=E6=89=B9=E6=B5=81][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9][init]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/WxFlowAbleController.java | 2 +- .../service/impl/WxFlowServiceImpl.java | 88 ++++++++++++------- 2 files changed, 56 insertions(+), 34 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java index 13ff88f3d..106d6e3fc 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java @@ -201,7 +201,7 @@ public class WxFlowAbleController extends BaseController { @ApiOperation(value = "创建模板",notes = "{\"taskId\":\"\",\"processInstanceId\":\"\",\"remark\":\"\"}") @PostMapping(value = "createModel") @SystemControllerLog(description = "工作流-创建模板") - public ResultData createModel(@ModelAttribute WxFlowModel wxFlowModel) { + public ResultData createModel(@RequestBody WxFlowModel wxFlowModel) { wxFlowModel.setTenantId(getTenantId()); wxFlowModel.setCreateUser(getUserId()); return wxFlowService.createModel(wxFlowModel); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index 681188873..c967bbff1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -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 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 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