|
@@ -547,8 +547,27 @@ public class ProcessDefinitionService extends BaseDAGService {
|
|
|
sqlParameters.put("datasourceName", dataSource.getName());
|
|
|
}
|
|
|
taskNode.put("params", sqlParameters);
|
|
|
+ }else if(taskType.equals(TaskType.DEPENDENT.name())){
|
|
|
+ JSONObject dependentParameters = JSONUtils.parseObject(taskNode.getString("dependence"));
|
|
|
+ if(dependentParameters != null){
|
|
|
+ JSONArray dependTaskList = (JSONArray) dependentParameters.get("dependTaskList");
|
|
|
+ for (int j = 0; j < dependTaskList.size(); j++) {
|
|
|
+ JSONObject dependentTaskModel = dependTaskList.getJSONObject(j);
|
|
|
+ JSONArray dependItemList = (JSONArray) dependentTaskModel.get("dependItemList");
|
|
|
+ for (int k = 0; k < dependItemList.size(); k++) {
|
|
|
+ JSONObject dependentItem = dependItemList.getJSONObject(k);
|
|
|
+ int definitionId = dependentItem.getInteger("definitionId");
|
|
|
+ ProcessDefinition definition = processDefineMapper.queryByDefineId(definitionId);
|
|
|
+ if(definition != null){
|
|
|
+ dependentItem.put("projectName",definition.getProjectName());
|
|
|
+ dependentItem.put("definitionName",definition.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ taskNode.put("dependence", dependentParameters);
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
jsonObject.put("tasks", jsonArray);
|
|
|
processDefinition.setProcessDefinitionJson(jsonObject.toString());
|
|
@@ -643,16 +662,19 @@ public class ProcessDefinitionService extends BaseDAGService {
|
|
|
projectName = json.get("projectName").toString();
|
|
|
} else {
|
|
|
putMsg(result, Status.DATA_IS_NULL, "processDefinitionName");
|
|
|
+ return result;
|
|
|
}
|
|
|
if (ObjectUtils.allNotNull(json.get("processDefinitionName"))) {
|
|
|
processDefinitionName = json.get("processDefinitionName").toString();
|
|
|
} else {
|
|
|
putMsg(result, Status.DATA_IS_NULL, "processDefinitionName");
|
|
|
+ return result;
|
|
|
}
|
|
|
if (ObjectUtils.allNotNull(json.get("processDefinitionJson"))) {
|
|
|
processDefinitionJson = json.get("processDefinitionJson").toString();
|
|
|
} else {
|
|
|
putMsg(result, Status.DATA_IS_NULL, "processDefinitionJson");
|
|
|
+ return result;
|
|
|
}
|
|
|
if (ObjectUtils.allNotNull(json.get("processDefinitionDesc"))) {
|
|
|
processDefinitionDesc = json.get("processDefinitionDesc").toString();
|
|
@@ -664,17 +686,46 @@ public class ProcessDefinitionService extends BaseDAGService {
|
|
|
processDefinitionConnects = json.get("processDefinitionConnects").toString();
|
|
|
}
|
|
|
|
|
|
+ Project project = projectMapper.queryByName(projectName);
|
|
|
+ if(project != null){
|
|
|
+ processDefinitionName = recursionProcessDefinitionName(project.getId(), processDefinitionName,1);
|
|
|
+ }
|
|
|
+
|
|
|
JSONObject jsonObject = JSONUtils.parseObject(processDefinitionJson);
|
|
|
JSONArray jsonArray = (JSONArray) jsonObject.get("tasks");
|
|
|
for (int j = 0; j < jsonArray.size(); j++) {
|
|
|
JSONObject taskNode = jsonArray.getJSONObject(j);
|
|
|
- JSONObject sqlParameters = JSONUtils.parseObject(taskNode.getString("params"));
|
|
|
- List<DataSource> dataSources = dataSourceMapper.queryDataSourceByName(sqlParameters.getString("datasourceName"));
|
|
|
- if (dataSources.size() > 0) {
|
|
|
- DataSource dataSource = dataSources.get(0);
|
|
|
- sqlParameters.put("datasource", dataSource.getId());
|
|
|
+ String taskType = taskNode.getString("type");
|
|
|
+ if(taskType.equals(TaskType.SQL.name()) || taskType.equals(TaskType.PROCEDURE.name())) {
|
|
|
+ JSONObject sqlParameters = JSONUtils.parseObject(taskNode.getString("params"));
|
|
|
+ List<DataSource> dataSources = dataSourceMapper.queryDataSourceByName(sqlParameters.getString("datasourceName"));
|
|
|
+ if (dataSources.size() > 0) {
|
|
|
+ DataSource dataSource = dataSources.get(0);
|
|
|
+ sqlParameters.put("datasource", dataSource.getId());
|
|
|
+ }
|
|
|
+ taskNode.put("params", sqlParameters);
|
|
|
+ }else if(taskType.equals(TaskType.DEPENDENT.name())){
|
|
|
+ JSONObject dependentParameters = JSONUtils.parseObject(taskNode.getString("dependence"));
|
|
|
+ if(dependentParameters != null){
|
|
|
+ JSONArray dependTaskList = (JSONArray) dependentParameters.get("dependTaskList");
|
|
|
+ for (int h = 0; h < dependTaskList.size(); h++) {
|
|
|
+ JSONObject dependentTaskModel = dependTaskList.getJSONObject(h);
|
|
|
+ JSONArray dependItemList = (JSONArray) dependentTaskModel.get("dependItemList");
|
|
|
+ for (int k = 0; k < dependItemList.size(); k++) {
|
|
|
+ JSONObject dependentItem = dependItemList.getJSONObject(k);
|
|
|
+ Project dependentItemProject = projectMapper.queryByName(dependentItem.getString("projectName"));
|
|
|
+ if(dependentItemProject != null){
|
|
|
+ ProcessDefinition definition = processDefineMapper.queryByDefineName(dependentItemProject.getId(),dependentItem.getString("definitionName"));
|
|
|
+ if(definition != null){
|
|
|
+ dependentItem.put("projectId",dependentItemProject.getId());
|
|
|
+ dependentItem.put("definitionId",definition.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ taskNode.put("dependence", dependentParameters);
|
|
|
+ }
|
|
|
}
|
|
|
- taskNode.put("params", sqlParameters);
|
|
|
}
|
|
|
jsonObject.put("tasks", jsonArray);
|
|
|
|
|
@@ -1112,5 +1163,20 @@ public class ProcessDefinitionService extends BaseDAGService {
|
|
|
return graph.hasCycle();
|
|
|
}
|
|
|
|
|
|
+ private String recursionProcessDefinitionName(Integer projectId,String processDefinitionName,int num){
|
|
|
+ ProcessDefinition processDefinition = processDefineMapper.queryByDefineName(projectId, processDefinitionName);
|
|
|
+ if (processDefinition != null) {
|
|
|
+ if(num>1){
|
|
|
+ String str = processDefinitionName.substring(0,processDefinitionName.length() - 3);
|
|
|
+ processDefinitionName = str + "("+num+")";
|
|
|
+ }else{
|
|
|
+ processDefinitionName = processDefinition.getName() + "("+num+")";
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return processDefinitionName;
|
|
|
+ }
|
|
|
+ return recursionProcessDefinitionName(projectId,processDefinitionName,num + 1);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|