|
|
@@ -92,7 +92,7 @@ public class KwOrderService {
|
|
|
.setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
|
|
|
.setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
|
|
|
.setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
|
|
|
- .setConsignmentStatus(e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
|
|
|
+ .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
|
|
|
.setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
|
|
|
result.add(order);
|
|
|
});
|
|
|
@@ -110,69 +110,72 @@ public class KwOrderService {
|
|
|
private Query getQuery(TradeOrderListStatisticParam params, Boolean isStatistic) {
|
|
|
Long entId = LoginUserHolder.getEntId();
|
|
|
Query query = new Query();
|
|
|
- Criteria criteria = new Criteria();
|
|
|
- criteria.and("delFlag").is(0);
|
|
|
+ Criteria andCriteria = new Criteria();
|
|
|
+ andCriteria.and("delFlag").is(0);
|
|
|
if (Objects.equals(params.getOrderType(), 1)) {
|
|
|
//采购订单
|
|
|
- criteria.and("procureTopEntId").is(entId);
|
|
|
+ andCriteria.and("procureTopEntId").is(entId);
|
|
|
} else {
|
|
|
//销售订单
|
|
|
- criteria.and("supplyTopEntId").is(entId);
|
|
|
+ andCriteria.and("supplyTopEntId").is(entId);
|
|
|
}
|
|
|
//日期范围
|
|
|
if (Objects.nonNull(params.getStartCreateTime())) {
|
|
|
- criteria.and("createTime").gte(params.getStartCreateTime());
|
|
|
+ andCriteria.and("createTime").gte(params.getStartCreateTime());
|
|
|
}
|
|
|
if (Objects.nonNull(params.getEndCreateTime())) {
|
|
|
- criteria.and("createTime").lte(params.getEndCreateTime());
|
|
|
+ andCriteria.and("createTime").lte(params.getEndCreateTime());
|
|
|
}
|
|
|
//装卸货地址
|
|
|
if (StringUtils.isNotBlank(params.getShippingAddressCode())) {
|
|
|
Pattern pattern = Pattern.compile("^" + params.getShippingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
- criteria.and("loadCityCode").regex(pattern);
|
|
|
+ andCriteria.and("loadCityCode").regex(pattern);
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(params.getUnloadingAddressCode())) {
|
|
|
Pattern pattern = Pattern.compile("^" + params.getUnloadingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
- criteria.and("unloadCityCode").regex(pattern);
|
|
|
+ andCriteria.and("unloadCityCode").regex(pattern);
|
|
|
}
|
|
|
//提货方式
|
|
|
if (StringUtils.isNotBlank(params.getPickupType())) {
|
|
|
- criteria.and("pickupType").is(params.getPickupType());
|
|
|
+ andCriteria.and("pickupType").is(params.getPickupType());
|
|
|
}
|
|
|
//交易方式
|
|
|
if (StringUtils.isNotBlank(params.getTrading())) {
|
|
|
- criteria.and("trading").is(params.getTrading());
|
|
|
+ andCriteria.and("trading").is(params.getTrading());
|
|
|
}
|
|
|
//交付类型
|
|
|
if (StringUtils.isNotBlank(params.getDeliveryType())) {
|
|
|
- criteria.and("deliveryType").is(params.getDeliveryType());
|
|
|
+ andCriteria.and("deliveryType").is(params.getDeliveryType());
|
|
|
}
|
|
|
//下单方式
|
|
|
if (StringUtils.isNotBlank(params.getSource())) {
|
|
|
- criteria.and("source").is(params.getSource());
|
|
|
+ andCriteria.and("source").is(params.getSource());
|
|
|
}
|
|
|
List<Criteria> orCriteriaList = new ArrayList<>();
|
|
|
//订单状态
|
|
|
if (Objects.nonNull(params.getStatus()) && !isStatistic) {
|
|
|
- criteria.and("status").is(params.getStatus());
|
|
|
+ andCriteria.and("status").is(params.getStatus());
|
|
|
if (Objects.equals(params.getStatus(), Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()))) {
|
|
|
//草稿状态只能创建订单的企业能看
|
|
|
- criteria.and("entId").is(entId);
|
|
|
+ andCriteria.and("entId").is(entId);
|
|
|
}
|
|
|
} else {
|
|
|
//非草稿状态
|
|
|
- criteria.and("status").ne(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
|
|
|
+ andCriteria.and("status").ne(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
|
|
|
//or草稿状态且是当前企业
|
|
|
- orCriteriaList.add(Criteria.where("status").is(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue())).and("entId").is(entId));
|
|
|
+ orCriteriaList.add(Criteria.where("entId").is(entId).and("status")
|
|
|
+ .is(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue())).and("delFlag").is(0));
|
|
|
}
|
|
|
+ orCriteriaList.add(andCriteria);
|
|
|
//关键字模糊匹配
|
|
|
if (StringUtils.isNotBlank(params.getKeywords())) {
|
|
|
Pattern pattern = Pattern.compile("^.*" + params.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
- orCriteriaList.add(Criteria.where("tOrderNo").regex(pattern));
|
|
|
- orCriteriaList.add(Criteria.where("procureFirmName").regex(pattern));
|
|
|
- orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern));
|
|
|
- orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
|
|
|
+ orCriteriaList.add(Criteria.where("tOrderNo").regex(pattern).and("delFlag").is(0));
|
|
|
+ orCriteriaList.add(Criteria.where("procureFirmName").regex(pattern).and("delFlag").is(0));
|
|
|
+ orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern).and("delFlag").is(0));
|
|
|
+ orCriteriaList.add(Criteria.where("goodsName").regex(pattern).and("delFlag").is(0));
|
|
|
}
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
if (CollectionUtils.isNotEmpty(orCriteriaList)) {
|
|
|
criteria.orOperator(orCriteriaList);
|
|
|
}
|
|
|
@@ -230,7 +233,7 @@ public class KwOrderService {
|
|
|
}
|
|
|
query.addCriteria(criteria);
|
|
|
} else {
|
|
|
- query = getQuery(params,false);
|
|
|
+ query = getQuery(params, false);
|
|
|
}
|
|
|
List<SckwTradeOrder> orders = mongoTemplate.find(query, SckwTradeOrder.class);
|
|
|
if (CollectionUtils.isEmpty(orders)) {
|
|
|
@@ -265,7 +268,7 @@ public class KwOrderService {
|
|
|
Query query = new Query();
|
|
|
Long entId = LoginUserHolder.getEntId();
|
|
|
Criteria criteria = new Criteria();
|
|
|
- criteria.and("status").is(DictEnum.TORDER_STATUS_5.getValue()).and("delFlag").is(0);
|
|
|
+ criteria.and("status").is(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue())).and("delFlag").is(0);
|
|
|
if (Objects.equals(params.getOrderType(), 1)) {
|
|
|
//采购订单
|
|
|
criteria.and("procureTopEntId").is(entId);
|