Просмотр исходного кода

[审批流][修改][init]

release_toaliyun_real
luozukai 7 лет назад
Родитель
Сommit
37890c77fc
2 измененных файлов: 56 добавлений и 34 удалений
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java
  2. +55
    -33
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java

+ 1
- 1
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);


+ 55
- 33
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<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


Загрузка…
Отмена
Сохранить