Browse Source

【商务平台】 询价单更新过滤条件

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@6576 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 9 years ago
parent
commit
97b35c374a
1 changed files with 23 additions and 1 deletions
  1. 23 1
      src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

+ 23 - 1
src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

@@ -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;
+			}
+		}));
 	}
 
 	/**