From 5cef738625cb052126f85ac428b7e30433a7a4b4 Mon Sep 17 00:00:00 2001 From: o2sword <171715986@qq.com> Date: Tue, 1 Dec 2020 16:02:25 +0800 Subject: [PATCH] =?UTF-8?q?review=E7=9A=84=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0job?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assemble/surface/jaxrs/review/V2Base.java | 11 ++--- .../jaxrs/review/V2ManageListPaging.java | 48 ++++++++++++++++++- 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2Base.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2Base.java index 6e00a5e304..266fdb9730 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2Base.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2Base.java @@ -436,21 +436,16 @@ abstract class V2Base extends StandardJaxrsAction { } - protected Predicate toFilterPredicate(EffectivePerson effectivePerson, Business business, FilterWi wi, List personList) + protected Predicate toFilterPredicate(EffectivePerson effectivePerson, Business business, FilterWi wi, Boolean isManagerFilter) throws Exception { EntityManager em = business.entityManagerContainer().get(Review.class); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(Tuple.class); Root root = cq.from(Review.class); Predicate p = cb.conjunction(); - if(business.canManageApplication(effectivePerson, null) - && ListTools.isNotEmpty(personList)){ - List person_ids = business.organization().person().list(personList); - p = cb.and(p, root.get(Review_.person).in(person_ids)); - }else{ + if(!BooleanUtils.isTrue(isManagerFilter)){ p = cb.equal(root.get(Review_.person), effectivePerson.getDistinguishedName()); } - if (StringUtils.isNotBlank(wi.getStringValue01())){ p = cb.and(p,cb.equal(root.get(Review_.stringValue01), wi.getStringValue01())); } @@ -598,4 +593,4 @@ abstract class V2Base extends StandardJaxrsAction { } } -} \ No newline at end of file +} diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ManageListPaging.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ManageListPaging.java index f934f130e3..f35b955f93 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ManageListPaging.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/review/V2ManageListPaging.java @@ -9,10 +9,18 @@ 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.base.core.project.tools.ListTools; import com.x.processplatform.assemble.surface.Business; import com.x.processplatform.core.entity.content.Review; +import com.x.processplatform.core.entity.content.Review_; +import javax.persistence.EntityManager; +import javax.persistence.Tuple; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.ArrayList; import java.util.List; class V2ManageListPaging extends V2Base { @@ -23,7 +31,21 @@ class V2ManageListPaging extends V2Base { Business business = new Business(emc); ActionResult> result = new ActionResult<>(); Wi wi = this.convertToWrapIn(jsonElement, Wi.class); - Predicate p = this.toFilterPredicate(effectivePerson, business, wi, wi.getPersonList()); + EntityManager em = emc.get(Review.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Tuple.class); + Root root = cq.from(Review.class); + Predicate p = this.toFilterPredicate(effectivePerson, business, wi, true); + if(ListTools.isNotEmpty(wi.getPersonList())) { + List person_ids = business.organization().person().list(wi.getPersonList()); + p = cb.and(p, root.get(Review_.person).in(person_ids)); + } + if (ListTools.isNotEmpty(wi.getJobList())) { + p = cb.and(p, root.get(Review_.job).in(wi.getJobList())); + } + if (ListTools.isNotEmpty(wi.getIdList())) { + p = cb.and(p, root.get(Review_.id).in(wi.getIdList())); + } List wos = emc.fetchDescPaging(Review.class, Wo.copier, p, page, size, Review.sequence_FIELDNAME); result.setData(wos); result.setCount(emc.count(Review.class, p)); @@ -35,7 +57,29 @@ class V2ManageListPaging extends V2Base { public static class Wi extends RelateFilterWi { @FieldDescribe("参阅用户") - private List personList; + private List personList = new ArrayList<>(); + + @FieldDescribe("job标识") + private List jobList = new ArrayList<>(); + + @FieldDescribe("标识") + private List idList = new ArrayList<>(); + + public List getJobList() { + return jobList; + } + + public void setJobList(List jobList) { + this.jobList = jobList; + } + + public List getIdList() { + return idList; + } + + public void setIdList(List idList) { + this.idList = idList; + } public List getPersonList() { return personList; -- GitLab