提交 5cef7386 编写于 作者: O o2sword

review的管理员查询接口增加job参数查询

上级 24c61995
......@@ -436,21 +436,16 @@ abstract class V2Base extends StandardJaxrsAction {
}
protected Predicate toFilterPredicate(EffectivePerson effectivePerson, Business business, FilterWi wi, List<String> 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<Tuple> cq = cb.createQuery(Tuple.class);
Root<Review> root = cq.from(Review.class);
Predicate p = cb.conjunction();
if(business.canManageApplication(effectivePerson, null)
&& ListTools.isNotEmpty(personList)){
List<String> 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()));
}
......
......@@ -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<List<Wo>> 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<Tuple> cq = cb.createQuery(Tuple.class);
Root<Review> root = cq.from(Review.class);
Predicate p = this.toFilterPredicate(effectivePerson, business, wi, true);
if(ListTools.isNotEmpty(wi.getPersonList())) {
List<String> 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<Wo> 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<String> personList;
private List<String> personList = new ArrayList<>();
@FieldDescribe("job标识")
private List<String> jobList = new ArrayList<>();
@FieldDescribe("标识")
private List<String> idList = new ArrayList<>();
public List<String> getJobList() {
return jobList;
}
public void setJobList(List<String> jobList) {
this.jobList = jobList;
}
public List<String> getIdList() {
return idList;
}
public void setIdList(List<String> idList) {
this.idList = idList;
}
public List<String> getPersonList() {
return personList;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册