From 10ad9a2983db68747132b78e8beac73d47538705 Mon Sep 17 00:00:00 2001 From: zhourui Date: Fri, 26 Feb 2021 21:25:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9SignalStack=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=BC=82=E6=AD=A5=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../container/EntityManagerContainer.java | 30 +++++++++++++++++-- .../ActionPersistPublishByWorkFlow.java | 2 +- .../core/entity/log/SignalStack.java | 4 +-- 3 files changed, 31 insertions(+), 5 deletions(-) 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 74c36ba2f2..090a263a38 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 a852a092f4..9b57f0187c 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 f462ef6d0c..8653415ab6 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; -- GitLab