o2sword 5 лет назад
Родитель
Сommit
85f4d1b53e

+ 4 - 56
o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/input/ActionCover.java

@@ -128,10 +128,10 @@ class ActionCover extends BaseAction {
 			}
 			if (StringUtils.isNotEmpty(obj.getAlias())) {
 				obj.setAlias(
-						this.idleAliasWithQuery(business, query.getId(), obj.getAlias(), Table.class, obj.getId()));
+						this.idleAliasWithQuery(business, null, obj.getAlias(), Table.class, obj.getId()));
 			}
 			if (StringUtils.isNotEmpty(obj.getName())) {
-				obj.setName(this.idleNameWithQuery(business, query.getId(), obj.getName(), Table.class, obj.getId()));
+				obj.setName(this.idleNameWithQuery(business, null, obj.getName(), Table.class, obj.getId()));
 			}
 			obj.setQuery(query.getId());
 		}
@@ -145,10 +145,10 @@ class ActionCover extends BaseAction {
 			}
 			if (StringUtils.isNotEmpty(obj.getAlias())) {
 				obj.setAlias(
-						this.idleAliasWithQuery(business, query.getId(), obj.getAlias(), Statement.class, obj.getId()));
+						this.idleAliasWithQuery(business, null, obj.getAlias(), Statement.class, obj.getId()));
 			}
 			if (StringUtils.isNotEmpty(obj.getName())) {
-				obj.setName(this.idleNameWithQuery(business, query.getId(), obj.getName(), Statement.class, obj.getId()));
+				obj.setName(this.idleNameWithQuery(business, null, obj.getName(), Statement.class, obj.getId()));
 			}
 			obj.setQuery(query.getId());
 		}
@@ -181,58 +181,6 @@ class ActionCover extends BaseAction {
 		return query;
 	}
 
-	private <T extends JpaObject> String idleNameWithQuery(Business business, String queryId, String name, Class<T> cls,
-			String excludeId) throws Exception {
-		if (StringUtils.isEmpty(name)) {
-			return "";
-		}
-		List<String> list = new ArrayList<>();
-		list.add(name);
-		for (int i = 1; i < 99; i++) {
-			list.add(name + String.format("%02d", i));
-		}
-		list.add(StringTools.uniqueToken());
-		EntityManager em = business.entityManagerContainer().get(cls);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<T> root = cq.from(cls);
-		Predicate p = root.get("name").in(list);
-		p = cb.and(p, cb.equal(root.get("query"), queryId));
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(JpaObject.id_FIELDNAME), excludeId));
-		}
-		cq.select(root.get("name")).where(p);
-		List<String> os = em.createQuery(cq).getResultList();
-		list = ListUtils.subtract(list, os);
-		return list.get(0);
-	}
-
-	private <T extends JpaObject> String idleAliasWithQuery(Business business, String queryId, String alias,
-			Class<T> cls, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(alias)) {
-			return "";
-		}
-		List<String> list = new ArrayList<>();
-		list.add(alias);
-		for (int i = 1; i < 99; i++) {
-			list.add(alias + String.format("%02d", i));
-		}
-		list.add(StringTools.uniqueToken());
-		EntityManager em = business.entityManagerContainer().get(cls);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<T> root = cq.from(cls);
-		Predicate p = root.get("alias").in(list);
-		p = cb.and(p, cb.equal(root.get("query"), queryId));
-		if (StringUtils.isNotEmpty(excludeId)) {
-			p = cb.and(p, cb.notEqual(root.get(JpaObject.id_FIELDNAME), excludeId));
-		}
-		cq.select(root.get("alias")).where(p);
-		List<String> os = em.createQuery(cq).getResultList();
-		list = ListUtils.subtract(list, os);
-		return list.get(0);
-	}
-
 	public static class Wi extends WrapQuery {
 
 		private static final long serialVersionUID = -4612391443319365035L;

+ 15 - 0
o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/input/ActionCreate.java

@@ -22,6 +22,7 @@ import com.x.query.core.entity.View;
 import com.x.query.core.entity.schema.Statement;
 import com.x.query.core.entity.schema.Table;
 import com.x.query.core.entity.wrap.*;
+import org.apache.commons.lang3.StringUtils;
 
 class ActionCreate extends BaseAction {
 
@@ -79,6 +80,13 @@ class ActionCreate extends BaseAction {
 			}
 			obj = WrapTable.inCopier.copy(_o);
 			obj.setQuery(query.getId());
+			if (StringUtils.isNotEmpty(obj.getAlias())) {
+				obj.setAlias(
+						this.idleAliasWithQuery(business, null, obj.getAlias(), Table.class, obj.getId()));
+			}
+			if (StringUtils.isNotEmpty(obj.getName())) {
+				obj.setName(this.idleNameWithQuery(business, null, obj.getName(), Table.class, obj.getId()));
+			}
 			persistObjects.add(obj);
 		}
 		for (WrapStatement _o : wi.getStatementList()) {
@@ -88,6 +96,13 @@ class ActionCreate extends BaseAction {
 			}
 			obj = WrapStatement.inCopier.copy(_o);
 			obj.setQuery(query.getId());
+			if (StringUtils.isNotEmpty(obj.getAlias())) {
+				obj.setAlias(
+						this.idleAliasWithQuery(business, null, obj.getAlias(), Statement.class, obj.getId()));
+			}
+			if (StringUtils.isNotEmpty(obj.getName())) {
+				obj.setName(this.idleNameWithQuery(business, null, obj.getName(), Statement.class, obj.getId()));
+			}
 			persistObjects.add(obj);
 		}
 		for (WrapReveal _o : wi.getRevealList()) {

+ 56 - 0
o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/input/BaseAction.java

@@ -95,4 +95,60 @@ abstract class BaseAction extends StandardJaxrsAction {
 		return list.get(0);
 	}
 
+	protected <T extends JpaObject> String idleNameWithQuery(Business business, String queryId, String name, Class<T> cls,
+														   String excludeId) throws Exception {
+		if (StringUtils.isEmpty(name)) {
+			return "";
+		}
+		List<String> list = new ArrayList<>();
+		list.add(name);
+		for (int i = 1; i < 99; i++) {
+			list.add(name + String.format("%02d", i));
+		}
+		list.add(StringTools.uniqueToken());
+		EntityManager em = business.entityManagerContainer().get(cls);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<String> cq = cb.createQuery(String.class);
+		Root<T> root = cq.from(cls);
+		Predicate p = root.get("name").in(list);
+		if (StringUtils.isNotEmpty(queryId)) {
+			p = cb.and(p, cb.equal(root.get("query"), queryId));
+		}
+		if (StringUtils.isNotEmpty(excludeId)) {
+			p = cb.and(p, cb.notEqual(root.get(JpaObject.id_FIELDNAME), excludeId));
+		}
+		cq.select(root.get("name")).where(p);
+		List<String> os = em.createQuery(cq).getResultList();
+		list = ListUtils.subtract(list, os);
+		return list.get(0);
+	}
+
+	protected <T extends JpaObject> String idleAliasWithQuery(Business business, String queryId, String alias,
+															Class<T> cls, String excludeId) throws Exception {
+		if (StringUtils.isEmpty(alias)) {
+			return "";
+		}
+		List<String> list = new ArrayList<>();
+		list.add(alias);
+		for (int i = 1; i < 99; i++) {
+			list.add(alias + String.format("%02d", i));
+		}
+		list.add(StringTools.uniqueToken());
+		EntityManager em = business.entityManagerContainer().get(cls);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<String> cq = cb.createQuery(String.class);
+		Root<T> root = cq.from(cls);
+		Predicate p = root.get("alias").in(list);
+		if (StringUtils.isNotEmpty(queryId)) {
+			p = cb.and(p, cb.equal(root.get("query"), queryId));
+		}
+		if (StringUtils.isNotEmpty(excludeId)) {
+			p = cb.and(p, cb.notEqual(root.get(JpaObject.id_FIELDNAME), excludeId));
+		}
+		cq.select(root.get("alias")).where(p);
+		List<String> os = em.createQuery(cq).getResultList();
+		list = ListUtils.subtract(list, os);
+		return list.get(0);
+	}
+
 }