|
|
@@ -4,9 +4,8 @@ import com.dderp.common.datas.ERPModule
|
|
|
import com.dderp.common.datas.ESKeys
|
|
|
import com.dderp.common.datas.ReadOrderOption
|
|
|
import com.dderp.common.entity.base.ProcessSearchOptionsItem
|
|
|
-import com.dderp.common.entity.order.BusinessOrder
|
|
|
+import com.dderp.common.entity.order.*
|
|
|
import com.dderp.common.tool.ERPUtils
|
|
|
-import com.dderp.common.datas.ReadOrderOption
|
|
|
import com.dySweetFishPlugin.elasticsearch.ESClient
|
|
|
import com.dySweetFishPlugin.tool.lang.DateUtil
|
|
|
import com.sweetfish.convert.json.JsonConvert
|
|
|
@@ -14,6 +13,7 @@ import com.sweetfish.service.RetResult
|
|
|
import org.apache.commons.lang3.StringUtils
|
|
|
import org.apache.logging.log4j.LogManager
|
|
|
import org.apache.logging.log4j.Logger
|
|
|
+import org.apache.lucene.search.join.ScoreMode
|
|
|
import org.elasticsearch.action.search.SearchResponse
|
|
|
import org.elasticsearch.index.query.BoolQueryBuilder
|
|
|
import org.elasticsearch.index.query.Operator
|
|
|
@@ -31,7 +31,7 @@ import javax.annotation.Resource
|
|
|
import java.math.RoundingMode
|
|
|
import java.util.function.ToLongFunction
|
|
|
|
|
|
-@SuppressWarnings(["rawtypes"])
|
|
|
+@SuppressWarnings(["rawtypes", "unused"])
|
|
|
class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptionsItem<ReadOrderOption>, BusinessOrder> {
|
|
|
|
|
|
protected final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
|
|
|
@@ -88,7 +88,7 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
.execute()
|
|
|
}
|
|
|
|
|
|
- def <T> List<T> getOrderChildInfo(Class<T> clazz, String childESType, long idOrder, long supplierCode) {
|
|
|
+ def <T> List<T> getOrderChildInfoList(Class<T> clazz, String childESType, long idOrder, long supplierCode) {
|
|
|
return ESList.<T> getESList()
|
|
|
.esClient(esClient)
|
|
|
.jsonConvert(jsonConvert)
|
|
|
@@ -103,7 +103,22 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
.executeNonePage()
|
|
|
}
|
|
|
|
|
|
- def readOrderOptions(List<BusinessOrder> orderList, String dataSourceId, long supplierCode,
|
|
|
+ def <T> T getOrderChildInfo(Class<T> clazz, String childESType, long idOrder, long supplierCode) {
|
|
|
+ return ESOne.<T> getESOneInfo()
|
|
|
+ .esClient(esClient)
|
|
|
+ .jsonConvert(jsonConvert)
|
|
|
+ .clazz(clazz)
|
|
|
+ .queryBuilder({
|
|
|
+ //获取完成的数据情况
|
|
|
+ return QueryBuilders.boolQuery()
|
|
|
+ .must(QueryBuilders.typeQuery(childESType))
|
|
|
+ .must(QueryBuilders.termQuery("idOrder", idOrder))
|
|
|
+ })
|
|
|
+ .index(supplierService.getDateYearESIndex(supplierCode, ESKeys.ES_DELIVER_BUSINESS_ORDER_INDEX, 1))
|
|
|
+ .execute()
|
|
|
+ }
|
|
|
+
|
|
|
+ def readOrderOptions(List<BusinessOrder> orderList, long supplierCode,
|
|
|
ReadOrderOption... options) {
|
|
|
long[] idOrders = orderList*.id.toArray() as long[]
|
|
|
|
|
|
@@ -111,41 +126,89 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
//防止搞坏事,options传重复数据过来,先去重
|
|
|
options.toUnique().each { opt ->
|
|
|
switch (opt) {
|
|
|
-
|
|
|
+ case ReadOrderOption.ORDER_PRODUCT:
|
|
|
+ Map<Long, List<OrderDetailItem>> orderItemMap = searchOrderChildInfoMap(OrderDetailItem.class, ESKeys.ES_DELIVER_ORDER_DETAIL_ITEM_TYPE, idOrders, supplierCode, { it.idOrder })
|
|
|
+ orderList.each { order ->
|
|
|
+ order.detailItemList = orderItemMap.get(order.id)
|
|
|
+ }
|
|
|
+
|
|
|
+ break
|
|
|
+ case ReadOrderOption.ORDER_DELIVERY:
|
|
|
+ List<OrderDeliveryInfo> childInfoList = searchOrderChildInfoList(OrderDeliveryInfo.class, ESKeys.ES_DELIVER_ORDER_DELIVERY_INFO_TYPE, idOrders, supplierCode)
|
|
|
+ orderList.each { o ->
|
|
|
+ o.orderDeliveryInfo = childInfoList.find { c -> c.idOrder == o.id }
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case ReadOrderOption.ORDER_FINANCES:
|
|
|
+ List<OrderFinances> childInfoList = searchOrderChildInfoList(OrderFinances.class, ESKeys.ES_DELIVER_ORDER_FINANCES_TYPE, idOrders, supplierCode)
|
|
|
+ orderList.each { o ->
|
|
|
+ o.orderFinances = childInfoList.find { c -> c.idOrder == o.id }
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case ReadOrderOption.ORDER_RIDER:
|
|
|
+ Map<Long, List<OrderRiderItem>> orderItemMap = searchOrderChildInfoMap(OrderRiderItem.class, ESKeys.ES_DELIVER_ORDER_RIDER_ITEM_TYPE, idOrders, supplierCode, { it.idOrder })
|
|
|
+ orderList.each { order ->
|
|
|
+ order.riderItemList = orderItemMap.get(order.id)
|
|
|
+ }
|
|
|
+
|
|
|
+ break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- def readOrderOptions(BusinessOrder businessOrder, String dataSourceId, long supplierCode,
|
|
|
+ def readOrderOptions(BusinessOrder businessOrder, long supplierCode,
|
|
|
ReadOrderOption... options) {
|
|
|
if ((options != null) && (options.length > 0)) {
|
|
|
//防止搞坏事,options传重复数据过来,先去重
|
|
|
options.toUnique().each { opt ->
|
|
|
switch (opt) {
|
|
|
+ case ReadOrderOption.ORDER_PRODUCT:
|
|
|
+ businessOrder.detailItemList = getOrderChildInfoList(OrderDetailItem.class, ESKeys.ES_DELIVER_ORDER_DETAIL_ITEM_TYPE, businessOrder.id, supplierCode)
|
|
|
|
|
|
+ break
|
|
|
+ case ReadOrderOption.ORDER_DELIVERY:
|
|
|
+ businessOrder.orderDeliveryInfo = getOrderChildInfo(OrderDeliveryInfo.class, ESKeys.ES_DELIVER_ORDER_DELIVERY_INFO_TYPE, businessOrder.id, supplierCode)
|
|
|
+
|
|
|
+ break
|
|
|
+ case ReadOrderOption.ORDER_FINANCES:
|
|
|
+ businessOrder.orderFinances = getOrderChildInfo(OrderFinances.class, ESKeys.ES_DELIVER_ORDER_FINANCES_TYPE, businessOrder.id, supplierCode)
|
|
|
+
|
|
|
+ break
|
|
|
+ case ReadOrderOption.ORDER_RIDER:
|
|
|
+ businessOrder.riderItemList = getOrderChildInfoList(OrderRiderItem.class, ESKeys.ES_DELIVER_ORDER_RIDER_ITEM_TYPE, businessOrder.id, supplierCode)
|
|
|
+
|
|
|
+ break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- def readOrderTotal(RMap searchData, String dataSourceId, long supplierCode, ReadOrderOption... options) {
|
|
|
+ def readOrderTotal(RMap searchData, long supplierCode, ReadOrderOption... options) {
|
|
|
|
|
|
if (!(ReadOrderOption.ORDER_TOTAL in options)) {
|
|
|
return null
|
|
|
}
|
|
|
|
|
|
//这里的查询需要和主表一致
|
|
|
- BoolQueryBuilder bqb = search(searchData)
|
|
|
- .byOrderStates()
|
|
|
- .byKeyWord()
|
|
|
- .byBeginTime_Create()
|
|
|
- .byEndTime_Create()
|
|
|
- .byClientName()
|
|
|
- .byIdClient()
|
|
|
- .byPlatform()
|
|
|
- .byIdStore()
|
|
|
- .byVoidFlag()
|
|
|
+ BoolQueryBuilder bqb = searchByFinance(searchData)
|
|
|
+ .byOrderParentQuery(
|
|
|
+ search(searchData)
|
|
|
+ .byOrderStates()
|
|
|
+ .byKeyWord()
|
|
|
+ .byOrderCode()
|
|
|
+ .byIdPlatformIn()
|
|
|
+ .byIdPlatformOut()
|
|
|
+ .byVoidFlagIn()
|
|
|
+ .byVoidFlagOut()
|
|
|
+ .byDeliverAddress_QuerySlave()
|
|
|
+ .byItemName_QuerySlave()
|
|
|
+ .byIdStore()
|
|
|
+ .byBeginTime_Create()
|
|
|
+ .byEndTime_Create()
|
|
|
+ .build()
|
|
|
+ )
|
|
|
+
|
|
|
.build()
|
|
|
|
|
|
|
|
|
@@ -155,24 +218,36 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
.prepareSearch(supplierService.getDateYearESIndex(supplierCode, ESKeys.ES_DELIVER_BUSINESS_ORDER_INDEX, 1))
|
|
|
.setQuery(bqb)
|
|
|
.addAggregation(AggregationBuilders.count("sub_count").field("id"))
|
|
|
- .addAggregation(AggregationBuilders.sum("orderMoneyTotal_Sum").field("orderMoneyTotal"))
|
|
|
- .addAggregation(AggregationBuilders.sum("chargeMoney_Sum").field("chargeMoney"))
|
|
|
- .addAggregation(AggregationBuilders.sum("payMoney_Sum").field("payMoney"))
|
|
|
- .addAggregation(AggregationBuilders.sum("orderQty_Sum").field("orderQty"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("orderMoneySum").field("orderMoney"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("deliverFeeSum").field("deliverFee"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("orderPlatformSubsidySum").field("orderPlatformSubsidy"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("storeDiscountSum").field("storeDiscount"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("customerPaidSum").field("customerPaid"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("platformServiceFeeSum").field("platformServiceFee"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("storeRealCollectionSum").field("storeRealCollection"))
|
|
|
+ .addAggregation(AggregationBuilders.sum("omeServiceFeeSum").field("omeServiceFee"))
|
|
|
.execute().actionGet()
|
|
|
|
|
|
ValueCount orderCountSum = searchResponse.getAggregations().get("sub_count")
|
|
|
- InternalSum orderMoneyTotalSum = searchResponse.getAggregations().get("orderMoneyTotal_Sum")
|
|
|
- InternalSum chargeMoneySum = searchResponse.getAggregations().get("chargeMoney_Sum")
|
|
|
- InternalSum payMoneySum = searchResponse.getAggregations().get("payMoney_Sum")
|
|
|
- InternalSum orderQtySum = searchResponse.getAggregations().get("orderQty_Sum")
|
|
|
+ InternalSum orderMoneySum = searchResponse.getAggregations().get("orderMoneySum")
|
|
|
+ InternalSum deliverFeeSum = searchResponse.getAggregations().get("deliverFeeSum")
|
|
|
+ InternalSum orderPlatformSubsidySum = searchResponse.getAggregations().get("orderPlatformSubsidySum")
|
|
|
+ InternalSum storeDiscountSum = searchResponse.getAggregations().get("storeDiscountSum")
|
|
|
+ InternalSum customerPaidSum = searchResponse.getAggregations().get("customerPaidSum")
|
|
|
+ InternalSum platformServiceFeeSum = searchResponse.getAggregations().get("platformServiceFeeSum")
|
|
|
+ InternalSum storeRealCollectionSum = searchResponse.getAggregations().get("storeRealCollectionSum")
|
|
|
+ InternalSum omeServiceFeeSum = searchResponse.getAggregations().get("omeServiceFeeSum")
|
|
|
|
|
|
RMap<String, Number> collectionData = new RMap<>()
|
|
|
collectionData.put("orderCountSum", orderCountSum.getValue())
|
|
|
- collectionData.put("orderMoneyTotalSum", BigDecimal.valueOf(orderMoneyTotalSum.getValue()).setScale(2, RoundingMode.HALF_UP))
|
|
|
- collectionData.put("chargeMoneySum", BigDecimal.valueOf(chargeMoneySum.getValue()).setScale(2, RoundingMode.HALF_UP))
|
|
|
- collectionData.put("payMoneySum", BigDecimal.valueOf(payMoneySum.getValue()).setScale(2, RoundingMode.HALF_UP))
|
|
|
- collectionData.put("orderQtySum", BigDecimal.valueOf(orderQtySum.getValue()).setScale(0, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("orderMoneySum", BigDecimal.valueOf(orderMoneySum.getValue()).setScale(2, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("deliverFeeSum", BigDecimal.valueOf(deliverFeeSum.getValue()).setScale(2, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("orderPlatformSubsidySum", BigDecimal.valueOf(orderPlatformSubsidySum.getValue()).setScale(2, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("storeDiscountSum", BigDecimal.valueOf(storeDiscountSum.getValue()).setScale(0, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("customerPaidSum", BigDecimal.valueOf(customerPaidSum.getValue()).setScale(0, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("platformServiceFeeSum", BigDecimal.valueOf(platformServiceFeeSum.getValue()).setScale(0, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("storeRealCollectionSum", BigDecimal.valueOf(storeRealCollectionSum.getValue()).setScale(0, RoundingMode.HALF_UP))
|
|
|
+ collectionData.put("omeServiceFeeSum", BigDecimal.valueOf(omeServiceFeeSum.getValue()).setScale(0, RoundingMode.HALF_UP))
|
|
|
|
|
|
return collectionData
|
|
|
|
|
|
@@ -195,13 +270,16 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return search(source.searchData)
|
|
|
.byOrderStates()
|
|
|
.byKeyWord()
|
|
|
+ .byOrderCode()
|
|
|
+ .byIdPlatformIn()
|
|
|
+ .byIdPlatformOut()
|
|
|
+ .byVoidFlagIn()
|
|
|
+ .byVoidFlagOut()
|
|
|
+ .byDeliverAddress_QuerySlave()
|
|
|
+ .byItemName_QuerySlave()
|
|
|
+ .byIdStore()
|
|
|
.byBeginTime_Create()
|
|
|
.byEndTime_Create()
|
|
|
- .byClientName()
|
|
|
- .byIdClient()
|
|
|
- .byPlatform()
|
|
|
- .byIdStore()
|
|
|
- .byVoidFlag()
|
|
|
.build()
|
|
|
})
|
|
|
.index(supplierService.getDateYearESIndex(source.supplierCode, ESKeys.ES_DELIVER_BUSINESS_ORDER_INDEX, 1))
|
|
|
@@ -215,9 +293,9 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
.dataExecutor(null)
|
|
|
.executePage(source.pageFlipper)
|
|
|
|
|
|
- readOrderOptions(orderList, source.dataSourceId, source.supplierCode, source.options)
|
|
|
+ readOrderOptions(orderList, source.supplierCode, source.options)
|
|
|
|
|
|
- RMap<String, Number> collectionData = readOrderTotal(source.searchData, source.dataSourceId, source.supplierCode, source.options)
|
|
|
+ RMap<String, Number> collectionData = readOrderTotal(source.searchData, source.supplierCode, source.options)
|
|
|
return RetResult.<List<BusinessOrder>> successT().result(orderList).page(source.pageFlipper).attachRMap(collectionData)
|
|
|
|
|
|
|
|
|
@@ -248,7 +326,7 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
})
|
|
|
.index(supplierService.getDateYearESIndex(source.supplierCode, ESKeys.ES_DELIVER_BUSINESS_ORDER_INDEX, 1))
|
|
|
.executeNonePage()
|
|
|
- readOrderOptions(subOrderList, source.dataSourceId, source.supplierCode, source.options)
|
|
|
+ readOrderOptions(subOrderList, source.supplierCode, source.options)
|
|
|
if (!subOrderList.isEmpty()) {
|
|
|
orderList.addAll(subOrderList)
|
|
|
}
|
|
|
@@ -280,7 +358,7 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return RetResult.<BusinessOrder> errorT().retinfo("无效的订单")
|
|
|
}
|
|
|
|
|
|
- readOrderOptions(businessOrder, source.dataSourceId, source.supplierCode, source.options)
|
|
|
+ readOrderOptions(businessOrder, source.supplierCode, source.options)
|
|
|
|
|
|
return RetResult.<BusinessOrder> successT().result(businessOrder)
|
|
|
}
|
|
|
@@ -307,7 +385,7 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return RetResult.<BusinessOrder> errorT().retinfo("无效的订单")
|
|
|
}
|
|
|
|
|
|
- readOrderOptions(businessOrder, source.dataSourceId, source.supplierCode, source.options)
|
|
|
+ readOrderOptions(businessOrder, source.supplierCode, source.options)
|
|
|
|
|
|
return RetResult.<BusinessOrder> successT().result(businessOrder)
|
|
|
}
|
|
|
@@ -343,9 +421,17 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return new ESConditionBuilder(searchData, QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_BUSINESS_ORDER_TYPE)))
|
|
|
}
|
|
|
|
|
|
+ ESConditionBuilder searchByItem(RMap searchData) {
|
|
|
+ return new ESConditionBuilder(searchData, QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_ORDER_DETAIL_ITEM_TYPE)))
|
|
|
+ }
|
|
|
+
|
|
|
+ ESConditionBuilder searchByFinance(RMap searchData) {
|
|
|
+ return new ESConditionBuilder(searchData, QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_ORDER_FINANCES_TYPE)))
|
|
|
+ }
|
|
|
+
|
|
|
//这里是做一个示例,表示通过查部件子表查询订单
|
|
|
ESConditionBuilder searchByOrderRider(RMap searchData) {
|
|
|
- return new ESConditionBuilder(searchData, QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_ERP_ORDER_PART_TYPE)))
|
|
|
+ return new ESConditionBuilder(searchData, QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_ORDER_RIDER_ITEM_TYPE)))
|
|
|
}
|
|
|
|
|
|
//endregion
|
|
|
@@ -387,22 +473,58 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
+ //子表查订单ids
|
|
|
+ ESConditionBuilder byChildIdOrders(long[] idOrders) {
|
|
|
+ qb = qb.must(QueryBuilders.termsQuery("idOrder", idOrders))
|
|
|
+ return this
|
|
|
+ }
|
|
|
+
|
|
|
ESConditionBuilder byIdOrder(long idOrder) {
|
|
|
//这里不要判断idOrder是否大于0,防止条件漏了
|
|
|
qb = qb.must(QueryBuilders.idsQuery(ESKeys.ES_DELIVER_BUSINESS_ORDER_TYPE).addIds(String.valueOf(idOrder)))
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
+ ESConditionBuilder byIdPlatformIn() {
|
|
|
+ if (ERPUtils.mapContainKey(searchData, "incomePlatformId")) {
|
|
|
+ long idPlatformIn = searchData.getLong("incomePlatformId")
|
|
|
+ if (idPlatformIn > 0L) {
|
|
|
+ qb = qb.must(QueryBuilders.termQuery("incomePlatformId", idPlatformIn))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return this
|
|
|
+ }
|
|
|
+
|
|
|
+ ESConditionBuilder byIdPlatformOut() {
|
|
|
+ if (ERPUtils.mapContainKey(searchData, "outGoingPlatformId")) {
|
|
|
+ long idPlatformOut = searchData.getLong("outGoingPlatformId")
|
|
|
+ if (idPlatformOut > 0L) {
|
|
|
+ qb = qb.must(QueryBuilders.termQuery("outGoingPlatformId", idPlatformOut))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return this
|
|
|
+ }
|
|
|
+
|
|
|
ESConditionBuilder byKeyWord() {
|
|
|
if (ERPUtils.mapContainKey(searchData, "keyWord")) {
|
|
|
String keyWord = searchData.getString("keyWord")
|
|
|
+
|
|
|
+ //下面的关系不要弄错了,一定是must里面在should,如果一直should不用must包起来,则导致搜索条件是全部或者的关系,主表搜索只会搜索有子表的记录,结果就是全部数据都会命中
|
|
|
+ QueryBuilder qbDeliveryInfoKeyWord = QueryBuilders.boolQuery()
|
|
|
+ .must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_ORDER_DELIVERY_INFO_TYPE))
|
|
|
+ .must(QueryBuilders.boolQuery()
|
|
|
+ .should(QueryBuilders.matchQuery("deliverAddress", keyWord).analyzer("query_ansj").operator(Operator.AND))
|
|
|
+ .should(QueryBuilders.termQuery("deliverAddress.number", keyWord.toLowerCase()))
|
|
|
+ .should(QueryBuilders.matchQuery("deliverAddress.letter", keyWord.toLowerCase()).operator(Operator.AND))
|
|
|
+ )
|
|
|
+
|
|
|
QueryBuilder qbKeyWord = QueryBuilders.boolQuery()
|
|
|
.should(QueryBuilders.termQuery("orderCode", keyWord.toLowerCase()))
|
|
|
+ .should(QueryBuilders.termQuery("incomePlatformOrderCode", keyWord.toLowerCase()))
|
|
|
+ .should(QueryBuilders.termQuery("outGoingPlatformOrderCode", keyWord.toLowerCase()))
|
|
|
.should(QueryBuilders.matchQuery("orderName", keyWord).operator(Operator.AND))
|
|
|
- .should(QueryBuilders.matchQuery("clientName", keyWord).operator(Operator.AND))
|
|
|
- .should(QueryBuilders.matchQuery("productName", keyWord).operator(Operator.AND))
|
|
|
- .should(QueryBuilders.matchQuery("createMan", keyWord).operator(Operator.AND))
|
|
|
- .should(QueryBuilders.matchQuery("orderRegion", keyWord).operator(Operator.AND))
|
|
|
+ .should(QueryBuilders.matchQuery("storeName", keyWord).operator(Operator.AND))
|
|
|
+ .should(JoinQueryBuilders.hasChildQuery(ESKeys.ES_DELIVER_ORDER_DELIVERY_INFO_TYPE, qbDeliveryInfoKeyWord, ScoreMode.None))
|
|
|
|
|
|
qb = qb.must(qbKeyWord)
|
|
|
}
|
|
|
@@ -427,13 +549,17 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
- ESConditionBuilder byVoidFlag() {
|
|
|
+ ESConditionBuilder byVoidFlagIn() {
|
|
|
if (ERPUtils.mapContainKey(searchData, "voidFlagIn")) {
|
|
|
int voidFlag = searchData.getInt("voidFlagIn")
|
|
|
if (voidFlag >= 0) {
|
|
|
qb = qb.must(QueryBuilders.termQuery("voidFlagIn", voidFlag))
|
|
|
}
|
|
|
}
|
|
|
+ return this
|
|
|
+ }
|
|
|
+
|
|
|
+ ESConditionBuilder byVoidFlagOut() {
|
|
|
if (ERPUtils.mapContainKey(searchData, "voidFlagOut")) {
|
|
|
int voidFlag = searchData.getInt("voidFlagOut")
|
|
|
if (voidFlag >= 0) {
|
|
|
@@ -443,13 +569,6 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
- ESConditionBuilder byVoidFlag(int voidFlag) {
|
|
|
- if (voidFlag >= 0) {
|
|
|
- qb = qb.must(QueryBuilders.termQuery("voidFlag", voidFlag))
|
|
|
- }
|
|
|
- return this
|
|
|
- }
|
|
|
-
|
|
|
ESConditionBuilder byOrderCode() {
|
|
|
if (ERPUtils.mapContainKey(searchData, "orderCode")) {
|
|
|
String orderCode = searchData.getString("orderCode")
|
|
|
@@ -491,36 +610,34 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
- ESConditionBuilder byClientName() {
|
|
|
- if (ERPUtils.mapContainKey(searchData, "clientName")) {
|
|
|
- String clientName = searchData.getString("clientName")
|
|
|
- qb = qb.must(QueryBuilders.boolQuery()
|
|
|
- .should(QueryBuilders.matchQuery("clientName", clientName).analyzer("index_ansj").operator(Operator.AND))
|
|
|
- .should(QueryBuilders.termQuery("clientName.number", clientName.toLowerCase()))
|
|
|
- .should(QueryBuilders.matchQuery("clientName.letter", clientName.toLowerCase()).operator(Operator.AND)))
|
|
|
- }
|
|
|
- return this
|
|
|
- }
|
|
|
-
|
|
|
- ESConditionBuilder byIdClient() {
|
|
|
- if (ERPUtils.mapContainKey(searchData, "idClient")) {
|
|
|
- long idClient = searchData.getLong("idClient")
|
|
|
- //这里不管是否大于0,都查询
|
|
|
- qb = qb.must(QueryBuilders.termQuery("idClient", idClient))
|
|
|
+ /**
|
|
|
+ * 主表为order,查子表的查DeliverAddress
|
|
|
+ * @return 查询构造器
|
|
|
+ */
|
|
|
+ ESConditionBuilder byDeliverAddress_QuerySlave() {
|
|
|
+ if (ERPUtils.mapContainKey(searchData, "deliverAddress")) {
|
|
|
+ String deliverAddress = searchData.getString("deliverAddress")
|
|
|
+ BoolQueryBuilder qbDeliverAddress = QueryBuilders.boolQuery()
|
|
|
+ .should(QueryBuilders.matchQuery("deliverAddress", deliverAddress).analyzer("query_ansj").operator(Operator.AND))
|
|
|
+ .should(QueryBuilders.termQuery("deliverAddress.number", deliverAddress.toLowerCase()))
|
|
|
+ .should(QueryBuilders.matchQuery("deliverAddress.letter", deliverAddress.toLowerCase()).operator(Operator.AND))
|
|
|
+ qb = qb.must(JoinQueryBuilders.hasChildQuery(ESKeys.ES_DELIVER_ORDER_DELIVERY_INFO_TYPE, qbDeliverAddress, ScoreMode.None))
|
|
|
}
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
- ESConditionBuilder byPlatform() {
|
|
|
- if (ERPUtils.mapContainKey(searchData, "incomePlatformId")) {
|
|
|
- long incomePlatformId = searchData.getLong("incomePlatformId")
|
|
|
- //这里不管是否大于0,都查询
|
|
|
- qb = qb.must(QueryBuilders.termQuery("incomePlatformId", incomePlatformId))
|
|
|
- }
|
|
|
-
|
|
|
- if (ERPUtils.mapContainKey(searchData, "incomePlatformOrderCode")) {
|
|
|
- String incomePlatformOrderCode = searchData.getString("incomePlatformOrderCode")
|
|
|
- qb = qb.must(QueryBuilders.termQuery("incomePlatformOrderCode.raw", incomePlatformOrderCode))
|
|
|
+ /**
|
|
|
+ * 主表为order,查子表的查itemName
|
|
|
+ * @return 查询构造器
|
|
|
+ */
|
|
|
+ ESConditionBuilder byItemName_QuerySlave() {
|
|
|
+ if (ERPUtils.mapContainKey(searchData, "itemName")) {
|
|
|
+ String itemName = searchData.getString("itemName")
|
|
|
+ BoolQueryBuilder qbItemName = QueryBuilders.boolQuery()
|
|
|
+ .should(QueryBuilders.matchQuery("itemName", itemName).analyzer("query_ansj").operator(Operator.AND))
|
|
|
+ .should(QueryBuilders.termQuery("itemName.number", itemName.toLowerCase()))
|
|
|
+ .should(QueryBuilders.matchQuery("itemName.letter", itemName.toLowerCase()).operator(Operator.AND))
|
|
|
+ qb = qb.must(JoinQueryBuilders.hasChildQuery(ESKeys.ES_DELIVER_ORDER_DETAIL_ITEM_TYPE, qbItemName, ScoreMode.None))
|
|
|
}
|
|
|
return this
|
|
|
}
|
|
|
@@ -534,11 +651,6 @@ class BE_ERP_BusinessOrder_Search implements BusinessExecutor<ProcessSearchOptio
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
- ESConditionBuilder byIdClient(long idClient) {
|
|
|
- qb = qb.must(QueryBuilders.termQuery("idClient", idClient))
|
|
|
- return this
|
|
|
- }
|
|
|
-
|
|
|
ESConditionBuilder byOrderParentQuery(QueryBuilder qbParent) {
|
|
|
qb = qb.must(JoinQueryBuilders.hasParentQuery(ESKeys.ES_DELIVER_BUSINESS_ORDER_TYPE, qbParent, false))
|
|
|
return this
|