|
|
@@ -55,7 +55,6 @@ public class KwOrderService {
|
|
|
criteria.andOperator(Criteria.where("_id").is(id).and("delFlag").is(0));
|
|
|
criteria.orOperator(Criteria.where("procureTopEntId").is(entId), Criteria.where("supplyTopEntId").is(entId));
|
|
|
query.addCriteria(criteria);
|
|
|
- SckwTradeOrder tradeOrder = mongoTemplate.findOne(query, SckwTradeOrder.class);
|
|
|
return mongoTemplate.findOne(query, SckwTradeOrder.class);
|
|
|
}
|
|
|
|
|
|
@@ -68,9 +67,22 @@ public class KwOrderService {
|
|
|
*/
|
|
|
public PageResult tradeOrderSelect(TradeOrderListSelectParam params) {
|
|
|
Query query = getQuery(params);
|
|
|
+ return getResult(query, params.getPage(), params.getPageSize());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @desc: 获取分页结果
|
|
|
+ * @author: yzc
|
|
|
+ * @date: 2023-07-20 15:02
|
|
|
+ * @Param query:
|
|
|
+ * @Param page:
|
|
|
+ * @Param pageSize:
|
|
|
+ * @return: com.sckw.core.model.page.PageResult
|
|
|
+ */
|
|
|
+ private PageResult getResult(Query query, int page, int pageSize) {
|
|
|
long count = mongoTemplate.count(query, SckwTradeOrder.class);
|
|
|
Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
|
|
|
- SpringDataPageAble pageAble = new SpringDataPageAble(params.getPage(), params.getPageSize(), sort);
|
|
|
+ SpringDataPageAble pageAble = new SpringDataPageAble(page, pageSize, sort);
|
|
|
query.with(pageAble);
|
|
|
List<SckwTradeOrder> list = mongoTemplate.find(query, SckwTradeOrder.class);
|
|
|
List<OrderListRes> result = new ArrayList<>();
|
|
|
@@ -80,11 +92,11 @@ 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(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
|
|
|
+ .setConsignmentStatus(e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
|
|
|
.setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
|
|
|
result.add(order);
|
|
|
});
|
|
|
- return PageResult.build(params.getPage(), params.getPageSize(), count, result);
|
|
|
+ return PageResult.build(page, pageSize, count, result);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -99,21 +111,37 @@ public class KwOrderService {
|
|
|
Query query = new Query();
|
|
|
Criteria criteria = new Criteria();
|
|
|
criteria.and("delFlag").is(0);
|
|
|
- //销售订单
|
|
|
- if (Objects.equals(params.getOrderType(), 2)) {
|
|
|
- criteria.and("supplyTopEntId").is(entId);
|
|
|
- } else {
|
|
|
+ if (Objects.equals(params.getOrderType(), 1)) {
|
|
|
//采购订单
|
|
|
criteria.and("procureTopEntId").is(entId);
|
|
|
+ } else {
|
|
|
+ //销售订单
|
|
|
+ criteria.and("supplyTopEntId").is(entId);
|
|
|
}
|
|
|
- //交易方式
|
|
|
- if (StringUtils.isNotBlank(params.getTrading())) {
|
|
|
- criteria.and("trading").is(params.getTrading());
|
|
|
+ //日期范围
|
|
|
+ if (Objects.nonNull(params.getStartCreateTime())) {
|
|
|
+ criteria.and("createTime").gte(params.getStartCreateTime());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(params.getEndCreateTime())) {
|
|
|
+ criteria.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);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getUnloadingAddressCode())) {
|
|
|
+ Pattern pattern = Pattern.compile("^" + params.getUnloadingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
+ criteria.and("unloadCityCode").regex(pattern);
|
|
|
}
|
|
|
//提货方式
|
|
|
if (StringUtils.isNotBlank(params.getPickupType())) {
|
|
|
criteria.and("pickupType").is(params.getPickupType());
|
|
|
}
|
|
|
+ //交易方式
|
|
|
+ if (StringUtils.isNotBlank(params.getTrading())) {
|
|
|
+ criteria.and("trading").is(params.getTrading());
|
|
|
+ }
|
|
|
//交付类型
|
|
|
if (StringUtils.isNotBlank(params.getDeliveryType())) {
|
|
|
criteria.and("deliveryType").is(params.getDeliveryType());
|
|
|
@@ -122,28 +150,19 @@ public class KwOrderService {
|
|
|
if (StringUtils.isNotBlank(params.getSource())) {
|
|
|
criteria.and("source").is(params.getSource());
|
|
|
}
|
|
|
- //采购企业
|
|
|
- if (Objects.nonNull(params.getProcureEntId())) {
|
|
|
- criteria.and("procureEntId").is(params.getProcureEntId());
|
|
|
- }
|
|
|
- //商品税率
|
|
|
- if (Objects.nonNull(params.getGoodsTaxRate())) {
|
|
|
- criteria.and("goodsTaxRate").is(params.getGoodsTaxRate());
|
|
|
- }
|
|
|
- //日期范围
|
|
|
- if (Objects.nonNull(params.getStartCreateTime()) && Objects.nonNull(params.getEndCreateTime())) {
|
|
|
- criteria.andOperator(Criteria.where("createTime").gte(params.getStartCreateTime()), Criteria.where("createTime")
|
|
|
- .lte(params.getEndCreateTime()));
|
|
|
- } else if (Objects.nonNull(params.getStartCreateTime())) {
|
|
|
- criteria.and("createTime").gte(params.getStartCreateTime());
|
|
|
- } else if (Objects.nonNull(params.getEndCreateTime())) {
|
|
|
- criteria.and("createTime").lte(params.getEndCreateTime());
|
|
|
- }
|
|
|
List<Criteria> orCriteriaList = new ArrayList<>();
|
|
|
- //商品名称
|
|
|
- if (StringUtils.isNotBlank(params.getGoodsName())) {
|
|
|
- Pattern pattern = Pattern.compile("^.*" + params.getGoodsName() + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
- orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
|
|
|
+ //订单状态
|
|
|
+ if (Objects.nonNull(params.getStatus())) {
|
|
|
+ criteria.and("status").is(params.getStatus());
|
|
|
+ if (Objects.equals(params.getStatus(), Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()))) {
|
|
|
+ //草稿状态只能创建订单的企业能看
|
|
|
+ criteria.and("status").is(params.getStatus()).and("entId").is(entId);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //非草稿状态
|
|
|
+ criteria.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));
|
|
|
}
|
|
|
//关键字模糊匹配
|
|
|
if (StringUtils.isNotBlank(params.getKeywords())) {
|
|
|
@@ -153,15 +172,6 @@ public class KwOrderService {
|
|
|
orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern));
|
|
|
orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
|
|
|
}
|
|
|
- //装卸货地址
|
|
|
- if (StringUtils.isNotBlank(params.getShippingAddressCode())) {
|
|
|
- Pattern pattern = Pattern.compile("^" + params.getShippingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
- orCriteriaList.add(Criteria.where("loadCityCode").regex(pattern));
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(params.getUnloadingAddressCode())) {
|
|
|
- Pattern pattern = Pattern.compile("^" + params.getUnloadingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
- orCriteriaList.add(Criteria.where("unloadCityCode").regex(pattern));
|
|
|
- }
|
|
|
if (CollectionUtils.isNotEmpty(orCriteriaList)) {
|
|
|
criteria.orOperator(orCriteriaList);
|
|
|
}
|
|
|
@@ -210,7 +220,6 @@ public class KwOrderService {
|
|
|
Long entId = LoginUserHolder.getEntId();
|
|
|
Criteria criteria = new Criteria();
|
|
|
criteria.and("tOrderId").in(params.getIds()).and("delFlag").is(0);
|
|
|
- query.addCriteria(criteria);
|
|
|
//销售订单
|
|
|
if (Objects.equals(params.getOrderType(), 2)) {
|
|
|
criteria.and("supplyTopEntId").is(entId);
|
|
|
@@ -218,6 +227,7 @@ public class KwOrderService {
|
|
|
//采购订单
|
|
|
criteria.and("procureTopEntId").is(entId);
|
|
|
}
|
|
|
+ query.addCriteria(criteria);
|
|
|
} else {
|
|
|
query = getQuery(params);
|
|
|
}
|
|
|
@@ -242,4 +252,48 @@ public class KwOrderService {
|
|
|
});
|
|
|
return list;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @desc: 贸易订单对账单分页列表查询
|
|
|
+ * @author: yzc
|
|
|
+ * @date: 2023-07-20 15:03
|
|
|
+ * @Param params:
|
|
|
+ * @return: com.sckw.core.model.page.PageResult
|
|
|
+ */
|
|
|
+ public PageResult tradeOrderStatementList(TradeOrderStatementList params) {
|
|
|
+ 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);
|
|
|
+ if (Objects.equals(params.getOrderType(), 1)) {
|
|
|
+ //采购订单
|
|
|
+ criteria.and("procureTopEntId").is(entId);
|
|
|
+ } else {
|
|
|
+ //销售订单
|
|
|
+ criteria.and("supplyTopEntId").is(entId);
|
|
|
+ }
|
|
|
+ //采购企业
|
|
|
+ if (Objects.nonNull(params.getProcureEntId())) {
|
|
|
+ criteria.and("procureEntId").is(params.getProcureEntId());
|
|
|
+ }
|
|
|
+ //计划开始时间
|
|
|
+ if (Objects.nonNull(params.getStartStartTime())) {
|
|
|
+ criteria.and("startTime").gte(params.getStartStartTime());
|
|
|
+ }
|
|
|
+ //计划结束时间
|
|
|
+ if (Objects.nonNull(params.getEndEndTime())) {
|
|
|
+ criteria.and("endTime").lte(params.getEndEndTime());
|
|
|
+ }
|
|
|
+ //商品税率
|
|
|
+ if (Objects.nonNull(params.getGoodsTaxRate())) {
|
|
|
+ criteria.and("goodsTaxRate").is(params.getGoodsTaxRate());
|
|
|
+ }
|
|
|
+ //商品名称
|
|
|
+ if (StringUtils.isNotBlank(params.getGoodsName())) {
|
|
|
+ Pattern pattern = Pattern.compile("^.*" + params.getGoodsName() + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
+ criteria.and("goodsName").regex(pattern);
|
|
|
+ }
|
|
|
+ query.addCriteria(criteria);
|
|
|
+ return getResult(query, params.getPage(), params.getPageSize());
|
|
|
+ }
|
|
|
}
|