瀏覽代碼

Merge branch 'wrdp' into 'develop'

Wrdp

See merge request o2oa/o2oa!3056
蔡祥熠 4 年之前
父節點
當前提交
d48e8b4a7d

+ 28 - 2
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<T>(query.getResultList());
 		return new ArrayList<T>(query.getResultList());
 	}
 	}
 
 
-	public <T extends JpaObject> List<T> listEqualAndLessThanOrEqualTo(Class<T> cls, String attribute,
-			Object value, String otherAttribute, Object otherValue) throws Exception {
+	public <T extends JpaObject> List<T> listEqualAndLessThanOrEqualTo(Class<T> cls, String attribute, Object value,
+			String otherAttribute, Object otherValue) throws Exception {
 		EntityManager em = this.get(cls);
 		EntityManager em = this.get(cls);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<T> cq = cb.createQuery(cls);
 		CriteriaQuery<T> cq = cb.createQuery(cls);
@@ -610,6 +610,16 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 		return list;
 		return list;
 	}
 	}
 
 
+	public <T extends JpaObject> Optional<T> first(Class<T> cls) throws Exception {
+		EntityManager em = this.get(cls);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<T> cq = cb.createQuery(cls);
+		Root<T> root = cq.from(cls);
+		cq.select(root);
+		List<T> os = em.createQuery(cq).setMaxResults(1).getResultList();
+		return os.isEmpty() ? Optional.empty() : Optional.of(os.get(0));
+	}
+
 	public <T extends JpaObject> T firstEqual(Class<T> cls, String attribute, Object value) throws Exception {
 	public <T extends JpaObject> T firstEqual(Class<T> cls, String attribute, Object value) throws Exception {
 		EntityManager em = this.get(cls);
 		EntityManager em = this.get(cls);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaBuilder cb = em.getCriteriaBuilder();
@@ -1700,6 +1710,22 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 		return list;
 		return list;
 	}
 	}
 
 
+	public <T extends JpaObject> List<T> listSequenceAfter(Class<T> clz, Integer count, String sequence)
+			throws Exception {
+		EntityManager em = this.get(clz);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<T> cq = cb.createQuery(clz);
+		Root<T> 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<T> os = em.createQuery(cq).setMaxResults((count != null && count > 0) ? count : 100).getResultList();
+		List<T> list = new ArrayList<>(os);
+		return list;
+	}
+
 	/* 仅在单一数据库可用 */
 	/* 仅在单一数据库可用 */
 	public <T extends JpaObject> List<T> fetchDescPaging(Class<T> clz, Predicate predicate, Integer page, Integer count,
 	public <T extends JpaObject> List<T> fetchDescPaging(Class<T> clz, Predicate predicate, Integer page, Integer count,
 			String orderAttribute) throws Exception {
 			String orderAttribute) throws Exception {

+ 1 - 1
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) {
 		if (check) {
 			try {
 			try {
-				JsonElement docData = XGsonBuilder.instance().toJsonTree(wi.getDocData(), Map.class);
+				JsonElement docData = XGsonBuilder.instance().toJsonTree(wi.getDocData());
 				wi.setDocStatus("published");
 				wi.setDocStatus("published");
 				if(wi.getPublishTime()==null) {
 				if(wi.getPublishTime()==null) {
 					wi.setPublishTime(new Date());
 					wi.setPublishTime(new Date());

+ 2 - 2
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;
 package com.x.processplatform.core.entity.log;
 
 
-import java.util.LinkedList;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 
-public class SignalStack extends LinkedList<Signal> {
+public class SignalStack extends CopyOnWriteArrayList<Signal> {
 
 
 	private static final long serialVersionUID = -3971898583590304010L;
 	private static final long serialVersionUID = -3971898583590304010L;
 
 

+ 3 - 2
o2web/source/x_component_process_Xform/$Module.js

@@ -28,7 +28,7 @@ MWF.xApplication.process.Xform.$Module = MWF.APP$Module =  new Class(
     },
     },
     initialize: function(node, json, form, options){
     initialize: function(node, json, form, options){
         /**
         /**
-         * @summary 组件的节点
+         * @summary 组件的节点,mootools封装过的Dom对象,可以直接使用原生的js和moootools方法访问和操作该对象。
          * @see https://mootools.net/core/docs/1.6.0/Element/Element
          * @see https://mootools.net/core/docs/1.6.0/Element/Element
          * @member {Element}
          * @member {Element}
          * @example
          * @example
@@ -40,13 +40,14 @@ MWF.xApplication.process.Xform.$Module = MWF.APP$Module =  new Class(
         this.node.store("module", this);
         this.node.store("module", this);
 
 
         /**
         /**
-         * @summary 组件的配置信息,比如id,类型等.
+         * @summary 组件的配置信息,比如id,类型,是否只读等等。可以在组件的queryLoad事件里修改该配置来对组件做一些改变。
          * @member {JsonObject}
          * @member {JsonObject}
          * @example
          * @example
          *  //可以在脚本中获取该组件
          *  //可以在脚本中获取该组件
          * var json = this.form.get("fieldId").json; //获取组件对象
          * var json = this.form.get("fieldId").json; //获取组件对象
          * var id = json.id; //获取组件的id
          * var id = json.id; //获取组件的id
          * var type = json.type; //获取组件的类型,如Textfield 为文本输入组件,Select为下拉组件
          * var type = json.type; //获取组件的类型,如Textfield 为文本输入组件,Select为下拉组件
+         * json.isReadonly = true; //设置组件为只读。
          */
          */
         this.json = json;
         this.json = json;