diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java index 74c36ba2f2c445476bc5cd052b31d89b0085facf..090a263a38e77e2f33501ba5cc6e8a4a2a3b6923 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java @@ -542,8 +542,8 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { return new ArrayList(query.getResultList()); } - public List listEqualAndLessThanOrEqualTo(Class cls, String attribute, - Object value, String otherAttribute, Object otherValue) throws Exception { + public List listEqualAndLessThanOrEqualTo(Class cls, String attribute, Object value, + String otherAttribute, Object otherValue) throws Exception { EntityManager em = this.get(cls); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(cls); @@ -610,6 +610,16 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { return list; } + public Optional first(Class cls) throws Exception { + EntityManager em = this.get(cls); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(cls); + Root root = cq.from(cls); + cq.select(root); + List os = em.createQuery(cq).setMaxResults(1).getResultList(); + return os.isEmpty() ? Optional.empty() : Optional.of(os.get(0)); + } + public T firstEqual(Class cls, String attribute, Object value) throws Exception { EntityManager em = this.get(cls); CriteriaBuilder cb = em.getCriteriaBuilder(); @@ -1700,6 +1710,22 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { return list; } + public List listSequenceAfter(Class clz, Integer count, String sequence) + throws Exception { + EntityManager em = this.get(clz); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(clz); + Root root = cq.from(clz); + Predicate p = cb.conjunction(); + if (StringUtils.isNotEmpty(sequence)) { + p = cb.greaterThan(root.get(JpaObject.sequence_FIELDNAME), sequence); + } + cq.select(root).where(p).orderBy(cb.asc(root.get(JpaObject.sequence_FIELDNAME))); + List os = em.createQuery(cq).setMaxResults((count != null && count > 0) ? count : 100).getResultList(); + List list = new ArrayList<>(os); + return list; + } + /* 仅在单一数据库可用 */ public List fetchDescPaging(Class clz, Predicate predicate, Integer page, Integer count, String orderAttribute) throws Exception { diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java index a852a092f4bc440a8f9cca9f8ac9173bfb460733..9b57f0187c18e8ecf642ffe993e5f77ac0148797 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java @@ -211,7 +211,7 @@ public class ActionPersistPublishByWorkFlow extends BaseAction { if (check) { try { - JsonElement docData = XGsonBuilder.instance().toJsonTree(wi.getDocData(), Map.class); + JsonElement docData = XGsonBuilder.instance().toJsonTree(wi.getDocData()); wi.setDocStatus("published"); if(wi.getPublishTime()==null) { wi.setPublishTime(new Date()); diff --git a/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/log/SignalStack.java b/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/log/SignalStack.java index f462ef6d0c98a140556765a556d33a5afa6bc69a..8653415ab608e74cec66a0b1fea559f0953c444f 100644 --- a/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/log/SignalStack.java +++ b/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/log/SignalStack.java @@ -1,8 +1,8 @@ package com.x.processplatform.core.entity.log; -import java.util.LinkedList; +import java.util.concurrent.CopyOnWriteArrayList; -public class SignalStack extends LinkedList { +public class SignalStack extends CopyOnWriteArrayList { private static final long serialVersionUID = -3971898583590304010L;