Browse Source

Merge branch 'feature/增加管理员查询review' into 'develop'

Merge of feature/[流程平台]增加管理员查询review to develop

See merge request o2oa/o2oa!535
胡起 5 years ago
parent
commit
73269e2c18
11 changed files with 89 additions and 10 deletions
  1. 19 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/ReviewAction.java
  2. 8 2
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2Base.java
  3. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2Count.java
  4. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2List.java
  5. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ListCreateNext.java
  6. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ListCreatePaging.java
  7. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ListCreatePrev.java
  8. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ListNext.java
  9. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ListPaging.java
  10. 1 1
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ListPrev.java
  11. 54 0
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ManageListPaging.java

+ 19 - 0
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/ReviewAction.java

@@ -329,4 +329,23 @@ public class ReviewAction extends StandardJaxrsAction {
 		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
 	}
 
+	@JaxrsMethodDescribe(value = "管理员分页查询参阅.", action = V2ManageListPaging.class)
+	@POST
+	@Path("v2/list/paging/{page}/size/{size}/manage")
+	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
+	@Consumes(MediaType.APPLICATION_JSON)
+	public void V2ManageListPaging(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+							 @JaxrsParameterDescribe("分页") @PathParam("page") Integer page,
+							 @JaxrsParameterDescribe("每页数量") @PathParam("size") Integer size, JsonElement jsonElement) {
+		ActionResult<List<V2ManageListPaging.Wo>> result = new ActionResult<>();
+		EffectivePerson effectivePerson = this.effectivePerson(request);
+		try {
+			result = new V2ManageListPaging().execute(effectivePerson, page, size, jsonElement);
+		} catch (Exception e) {
+			logger.error(e, effectivePerson, request, jsonElement);
+			result.error(e);
+		}
+		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
+	}
+
 }

+ 8 - 2
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2Base.java

@@ -388,13 +388,19 @@ abstract class V2Base extends StandardJaxrsAction {
 
 	}
 
-	protected Predicate toFilterPredicate(EffectivePerson effectivePerson, Business business, FilterWi wi)
+	protected Predicate toFilterPredicate(EffectivePerson effectivePerson, Business business, FilterWi wi, List<String> personList)
 			throws Exception {
 		EntityManager em = business.entityManagerContainer().get(Review.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
 		Root<Review> root = cq.from(Review.class);
-		Predicate p = cb.equal(root.get(Review_.person), effectivePerson.getDistinguishedName());
+		Predicate p = cb.conjunction();
+		if(effectivePerson.isManager() && ListTools.isNotEmpty(personList)){
+			List<String> person_ids = business.organization().person().list(personList);
+			p = cb.and(p, root.get(Review_.person).in(person_ids));
+		}else{
+			p = cb.equal(root.get(Review_.person), effectivePerson.getDistinguishedName());
+		}
 		if (ListTools.isNotEmpty(wi.getApplicationList())) {
 			p = cb.and(p, root.get(Review_.application).in(wi.getApplicationList()));
 		}

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

@@ -36,7 +36,7 @@ class V2Count extends V2Base {
 		Wo wo = new Wo();
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			Business business = new Business(emc);
-			Predicate p = this.toFilterPredicate(effectivePerson, business, wi);
+			Predicate p = this.toFilterPredicate(effectivePerson, business, wi, null);
 			wo.setCount(this.count(business, p));
 			if (BooleanUtils.isTrue(wi.getGroupByApplication())) {
 				wo.setApplicationList(this.groupByApplication(business, p));

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

@@ -37,7 +37,7 @@ class V2List extends V2Base {
 				CriteriaBuilder cb = em.getCriteriaBuilder();
 				CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
 				Root<Review> root = cq.from(Review.class);
-				Predicate p = this.toFilterPredicate(effectivePerson, business, wi);
+				Predicate p = this.toFilterPredicate(effectivePerson, business, wi, null);
 				if (ListTools.isNotEmpty(wi.getJobList())) {
 					p = cb.and(p, root.get(Review_.job).in(wi.getJobList()));
 				}

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

@@ -33,7 +33,7 @@ class V2ListCreateNext extends V2Base {
 			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
 			Root<Review> root = cq.from(Review.class);
 			Predicate p = cb.equal(root.get(Review_.creatorPerson), effectivePerson.getDistinguishedName());
-			p = cb.and(p, this.toFilterPredicate(effectivePerson, business, wi));
+			p = cb.and(p, this.toFilterPredicate(effectivePerson, business, wi, null));
 			ActionResult<List<Wo>> result = this.standardListNext(Wo.copier, id, count, JpaObject.sequence_FIELDNAME,
 					DESC, p);
 			this.relate(business, result.getData(), wi);

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

@@ -34,7 +34,7 @@ class V2ListCreatePaging extends V2Base {
 			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
 			Root<Review> root = cq.from(Review.class);
 			Predicate p = cb.equal(root.get(Review_.creatorPerson), effectivePerson.getDistinguishedName());
-			p = cb.and(p, this.toFilterPredicate(effectivePerson, business, wi));
+			p = cb.and(p, this.toFilterPredicate(effectivePerson, business, wi, null));
 			List<Wo> wos = emc.fetchDescPaging(Review.class, Wo.copier, p, page, size, Review.sequence_FIELDNAME);
 			result.setData(wos);
 			result.setCount(emc.count(Review.class, p));

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

@@ -33,7 +33,7 @@ class V2ListCreatePrev extends V2Base {
 			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
 			Root<Review> root = cq.from(Review.class);
 			Predicate p = cb.equal(root.get(Review_.creatorPerson), effectivePerson.getDistinguishedName());
-			p = cb.and(p, this.toFilterPredicate(effectivePerson, business, wi));
+			p = cb.and(p, this.toFilterPredicate(effectivePerson, business, wi, null));
 			ActionResult<List<Wo>> result = this.standardListPrev(Wo.copier, id, count, JpaObject.sequence_FIELDNAME,
 					DESC, p);
 			this.relate(business, result.getData(), wi);

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

@@ -22,7 +22,7 @@ class V2ListNext extends V2Base {
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
 			Business business = new Business(emc);
-			Predicate p = this.toFilterPredicate(effectivePerson, business, wi);
+			Predicate p = this.toFilterPredicate(effectivePerson, business, wi, null);
 			ActionResult<List<Wo>> result = this.standardListNext(Wo.copier, id, count, JpaObject.sequence_FIELDNAME,
 					DESC, p);
 			this.relate(business, result.getData(), wi);

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

@@ -23,7 +23,7 @@ class V2ListPaging extends V2Base {
 			Business business = new Business(emc);
 			ActionResult<List<Wo>> result = new ActionResult<>();
 			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Predicate p = this.toFilterPredicate(effectivePerson, business, wi);
+			Predicate p = this.toFilterPredicate(effectivePerson, business, wi, null);
 			List<Wo> wos = emc.fetchDescPaging(Review.class, Wo.copier, p, page, size, Review.sequence_FIELDNAME);
 			result.setData(wos);
 			result.setCount(emc.count(Review.class, p));

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

@@ -22,7 +22,7 @@ class V2ListPrev extends V2Base {
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
 			Business business = new Business(emc);
-			Predicate p = this.toFilterPredicate(effectivePerson, business, wi);
+			Predicate p = this.toFilterPredicate(effectivePerson, business, wi, null);
 			ActionResult<List<Wo>> result = this.standardListPrev(Wo.copier, id, count, JpaObject.sequence_FIELDNAME,
 					DESC, p);
 			this.relate(business, result.getData(), wi);

+ 54 - 0
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ManageListPaging.java

@@ -0,0 +1,54 @@
+package com.x.processplatform.assemble.surface.jaxrs.review;
+
+import com.google.gson.JsonElement;
+import com.x.base.core.container.EntityManagerContainer;
+import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.project.annotation.FieldDescribe;
+import com.x.base.core.project.bean.WrapCopier;
+import com.x.base.core.project.bean.WrapCopierFactory;
+import com.x.base.core.project.http.ActionResult;
+import com.x.base.core.project.http.EffectivePerson;
+import com.x.processplatform.assemble.surface.Business;
+import com.x.processplatform.core.entity.content.Review;
+
+import javax.persistence.criteria.Predicate;
+import java.util.List;
+
+class V2ManageListPaging extends V2Base {
+
+	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, Integer page, Integer size, JsonElement jsonElement)
+			throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			Business business = new Business(emc);
+			ActionResult<List<Wo>> result = new ActionResult<>();
+			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
+			Predicate p = this.toFilterPredicate(effectivePerson, business, wi, wi.getPersonList());
+			List<Wo> wos = emc.fetchDescPaging(Review.class, Wo.copier, p, page, size, Review.sequence_FIELDNAME);
+			result.setData(wos);
+			result.setCount(emc.count(Review.class, p));
+			this.relate(business, result.getData(), wi);
+			return result;
+		}
+	}
+
+	public static class Wi extends RelateFilterWi {
+
+		@FieldDescribe("参阅用户")
+		private List<String> personList;
+
+		public List<String> getPersonList() {
+			return personList;
+		}
+
+		public void setPersonList(List<String> personList) {
+			this.personList = personList;
+		}
+	}
+
+	public static class Wo extends AbstractWo {
+		private static final long serialVersionUID = 6612518284150311901L;
+		static WrapCopier<Review, Wo> copier = WrapCopierFactory.wo(Review.class, Wo.class,
+				JpaObject.singularAttributeField(Review.class, true, false), JpaObject.FieldsInvisible);
+	}
+}