|
|
@@ -4,8 +4,14 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
+
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
@@ -61,6 +67,8 @@ import com.uas.platform.b2b.model.PurchaseReturn;
|
|
|
import com.uas.platform.b2b.model.SaleARCheck;
|
|
|
import com.uas.platform.b2b.model.SaleQuotation;
|
|
|
import com.uas.platform.b2b.model.SaleSendAll;
|
|
|
+import com.uas.platform.core.persistence.criteria.PredicateFactory;
|
|
|
+import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
import com.uas.search.b2b.model.PageParams;
|
|
|
import com.uas.search.b2b.model.SPage;
|
|
|
import com.uas.search.b2b.service.SearchService.Table_name;
|
|
|
@@ -253,8 +261,22 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
|
|
|
*/
|
|
|
@Override
|
|
|
public SPage<PurchaseInquiryItem> searchPurchaseInquiryItemIds(String keyword, PageParams pageParams) {
|
|
|
+ Object overdue = pageParams.getFilters().get("overdue");
|
|
|
+ pageParams.getFilters().remove("overdue");
|
|
|
SPage<Long> idsPage = searchService.searchIds(keyword, Table_name.PURC$INQUIRYITEMS, pageParams);
|
|
|
- return toSPage(idsPage, purchaseInquiryItemDao.findAll(idsPage.getContent()));
|
|
|
+ final PredicateFactory<PurchaseInquiryItem> factory = new PredicateFactory<PurchaseInquiryItem>();
|
|
|
+ factory.add(PredicateUtils.in("id", idsPage.getContent(), false));
|
|
|
+ // 单独处理动态数据字段
|
|
|
+ if (null != overdue) {
|
|
|
+ factory.add(PredicateUtils.eq("inquiry.overdue", overdue, false));
|
|
|
+ }
|
|
|
+ return toSPage(idsPage, purchaseInquiryItemDao.findAll(new Specification<PurchaseInquiryItem>() {
|
|
|
+ public Predicate toPredicate(Root<PurchaseInquiryItem> root, CriteriaQuery<?> query,
|
|
|
+ CriteriaBuilder builder) {
|
|
|
+ query.where(factory.toPredicate(root, query, builder));
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }));
|
|
|
}
|
|
|
|
|
|
/**
|