소스 검색

修改draft的title获取

Zhou Rui 5 년 전
부모
커밋
80ac6c7501

+ 13 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java

@@ -550,6 +550,19 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 		return new ArrayList<T>(query.getResultList());
 	}
 
+	public <T extends JpaObject, W extends Object> List<T> listEqualOrIn(Class<T> cls, String attribute, Object value,
+			String otherAttribute, Collection<W> otherValues) throws Exception {
+		EntityManager em = this.get(cls);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<T> cq = cb.createQuery(cls);
+		Root<T> root = cq.from(cls);
+		Predicate p = cb.equal(root.get(attribute), value);
+		p = cb.or(p, cb.isMember(root.get(otherAttribute), cb.literal(otherValues)));
+		List<T> os = em.createQuery(cq.select(root).where(p)).getResultList();
+		List<T> list = new ArrayList<>(os);
+		return list;
+	}
+
 	public <T extends JpaObject> List<T> listNotEqual(Class<T> cls, String attribute, Object value) throws Exception {
 		EntityManager em = this.get(cls);
 		CriteriaBuilder cb = em.getCriteriaBuilder();

+ 2 - 1
o2server/x_component_assemble_control/src/main/java/com/x/component/assemble/control/schedule/InitComponents.java

@@ -35,7 +35,8 @@ public class InitComponents extends AbstractJob {
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			List<String> names = ListTools.extractProperty(Config.components().getSystems(), "name", String.class, true,
 					true);
-			List<Component> os = emc.listEqual(Component.class, Component.type_FIELDNAME, Component.TYPE_SYSTEM);
+			List<Component> os = emc.listEqualOrIn(Component.class, Component.type_FIELDNAME, Component.TYPE_SYSTEM,
+					Component.type_FIELDNAME, names);
 			List<Component> removes = new ArrayList<>();
 			for (Component o : os) {
 				if (!names.contains(o.getName())) {

+ 18 - 4
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/draft/ActionSave.java

@@ -1,6 +1,7 @@
 package com.x.processplatform.assemble.surface.jaxrs.draft;
 
 import java.util.List;
+import java.util.Objects;
 
 import com.google.gson.JsonElement;
 import com.x.base.core.container.EntityManagerContainer;
@@ -10,6 +11,7 @@ import com.x.base.core.project.annotation.FieldDescribe;
 import com.x.base.core.project.exception.ExceptionAccessDenied;
 import com.x.base.core.project.exception.ExceptionEntityNotExist;
 import com.x.base.core.project.gson.GsonPropertyObject;
+import com.x.base.core.project.gson.XGsonBuilder;
 import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.jaxrs.WoId;
@@ -54,14 +56,14 @@ class ActionSave extends BaseAction {
 			if (StringUtils.isEmpty(wi.getWork().getId())) {
 				draft = new Draft();
 				this.update(draft, wi, application, process, person, identity, unit);
-				emc.check(draft, CheckPersistType.all);
+				emc.persist(draft, CheckPersistType.all);
 			} else {
 				draft = emc.find(wi.getWork().getId(), Draft.class);
 				if (null == draft) {
 					throw new ExceptionEntityNotExist(wi.getWork().getId(), Draft.class);
 				}
 				this.update(draft, wi, application, process, person, identity, unit);
-				emc.persist(draft, CheckPersistType.all);
+				emc.check(draft, CheckPersistType.all);
 			}
 			emc.commit();
 			Wo wo = new Wo();
@@ -82,14 +84,26 @@ class ActionSave extends BaseAction {
 		draft.setPerson(person);
 		draft.setIdentity(identity);
 		draft.setUnit(unit);
-		draft.setTitle(wi.getWork().getTitle());
+		String title = wi.getWork().getTitle();
+		if (null != wi.getData()) {
+			Object value = wi.getData().getOrDefault("subject", null);
+			if (null != value) {
+				title = Objects.toString(value);
+			} else {
+				value = wi.getData().getOrDefault("title", null);
+				if (null != value) {
+					title = Objects.toString(value);
+				}
+			}
+		}
+		draft.setTitle(title);
 		draft.getProperties().setData(wi.getData());
 	}
 
 	public static class Wi extends GsonPropertyObject {
 
 		@FieldDescribe("数据")
-		private Data data;
+		private Data data = new Data();
 
 		@FieldDescribe("工作")
 		private Work work;

+ 1 - 1
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/draft/DraftAction.java

@@ -92,7 +92,7 @@ public class DraftAction extends StandardJaxrsAction {
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
 	@JaxrsMethodDescribe(value = "保存草稿.", action = ActionSave.class)
-	public void edit(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+	public void save(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
 			JsonElement jsonElement) {
 		ActionResult<ActionSave.Wo> result = new ActionResult<>();
 		EffectivePerson effectivePerson = this.effectivePerson(request);