|
@@ -989,7 +989,20 @@ public class SearchServiceImpl implements SearchService {
|
|
|
|
|
|
// 筛选状态
|
|
|
if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_STATUS))) {
|
|
|
- filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, query);
|
|
|
+ // 批次 id 不为空时,对状态过滤
|
|
|
+ Query goIdNotNullQuery = SearchUtils.getNotNullQuery(SearchConstants.GOODS_GO_ID_FIELD);
|
|
|
+ BooleanQuery q1 = new BooleanQuery();
|
|
|
+ q1.add(goIdNotNullQuery, Occur.MUST);
|
|
|
+ filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, q1);
|
|
|
+ // 或者批次 id 为空(此时是器件)
|
|
|
+ BooleanQuery q2 = new BooleanQuery();
|
|
|
+ q2.add(SearchUtils.getNotNullQuery(SearchConstants.GOODS_CMP_ID_FIELD), Occur.SHOULD);
|
|
|
+ q2.add(goIdNotNullQuery, Occur.MUST_NOT);
|
|
|
+
|
|
|
+ BooleanQuery booleanQuery = new BooleanQuery();
|
|
|
+ booleanQuery.add(q1, Occur.SHOULD);
|
|
|
+ booleanQuery.add(q2, Occur.SHOULD);
|
|
|
+ query.add(booleanQuery, Occur.FILTER);
|
|
|
}
|
|
|
|
|
|
// 价格筛选
|