gojs流程图判断节点是否完整

假装没事ソ 提交于 2020-08-08 05:18:07

gojs流程图判断节点是否完整

流程图

st=>start: start
op=>subroutine: 节点1|past
e=>end
st->op->e

方法验证

if (StringUtil.isNotBlank(noteArray) && StringUtil.isNotBlank(linkArray) &&!noteArray.equals("[]")&& !linkArray.equals("[]") ) {
	//节点
	List<ProcessNote> noteList = JsonUtils.parseArray(noteArray, ProcessNote.class);
	//节点网关连线
	List<ProcessNoteGateway> gatewayList = JsonUtils.parseArray(linkArray, ProcessNoteGateway.class);
	//判断节点连线是否完整
	boolean completeFlag = true;
	for(ProcessNote note:noteList){
		//排除开始节点和结束节点
		if(null==note.getCategory() || (null!=note.getCategory() && !note.getCategory().equals("start") && !note.getCategory().equals("end"))){
			boolean fromFlag = false;
			boolean toFlag = false;
		   //查询其他节点是否存在来向节点和去向节点
			for(ProcessNoteGateway gateway:gatewayList){
					//判断是否存在来向节点
					if(gateway.getFromNoteCode().equals(note.getNoteCode())){
						fromFlag = true;
					}
					//判断是否存在去向节点
					if(gateway.getToNoteCode().equals(note.getNoteCode())){
						toFlag = true;
					}
			}
			//存在不完整节点返回,结束循环
			if(!fromFlag || !toFlag){
				completeFlag = false;
				break;
			}
		}
	}

	if (!completeFlag){
		data.setCode(WebResponseCode.FAIL);
		data.setMsg("节点信息不完整,缺少连线");
		return data;
	}

	processNoteService.updateNoteList(processId, noteList, gatewayList);
	data.setCode(WebResponseCode.SUCCESS);
	data.setMsg("操作成功!");
	return data;
} else {
	data.setCode(WebResponseCode.FAIL);
	data.setMsg("节点信息不完善!");
	return data;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!