|
@@ -128,8 +128,16 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public boolean launchProcess(ProcessStartDTO dto, FlowCreator flowCreator) {
|
|
|
- Map<String, DynamicAssignee> assigneeMap = dto.getAssigneeMap();
|
|
|
- if (MapUtils.isNotEmpty(assigneeMap)) {
|
|
|
+ FlwProcess flwProcess = flowLongEngine.processService().getProcessById(dto.getProcessId());
|
|
|
+ if (null == flwProcess) {
|
|
|
+ ApiAssert.fail("指定流程模型不存在");
|
|
|
+ }
|
|
|
+ List<NodeModel> unsetAssigneeNodes = ModelHelper.getUnsetAssigneeNodes(flwProcess.model().getNodeConfig());
|
|
|
+ if (CollectionUtils.isNotEmpty(unsetAssigneeNodes)) {
|
|
|
+ Map<String, DynamicAssignee> assigneeMap = dto.getAssigneeMap();
|
|
|
+ ApiAssert.fail(MapUtils.isEmpty(assigneeMap), "发起人自选节点未设置处理人员");
|
|
|
+ unsetAssigneeNodes.forEach(t -> ApiAssert.fail(null == assigneeMap.get(t.getNodeKey()),
|
|
|
+ "节点【 " + t.getNodeName() + " 】未设置处理人员"));
|
|
|
// 传递动态分配处理人员
|
|
|
FlowDataTransfer.dynamicAssignee(Collections.unmodifiableMap(assigneeMap));
|
|
|
}
|