|
|
@@ -37,6 +37,7 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
import com.sckw.product.api.model.KwpGoods;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.RemoteUserService;
|
|
|
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
|
import com.sckw.system.api.model.dto.res.UserCacheResDto;
|
|
|
import com.sckw.transport.api.dubbo.TransportRemoteService;
|
|
|
import com.sckw.transport.api.model.vo.KwtLogisticsOrderVO;
|
|
|
@@ -185,38 +186,19 @@ public class TradeOrderManageService {
|
|
|
|
|
|
public PageDataResult<QueryTradeOrderResp> pageQueryTradeOrder(QueryTradeOrderReq req) {
|
|
|
log.info("查询物流订单请求参数:{}", JSON.toJSONString( req));
|
|
|
+
|
|
|
+ Set<Long> allEnt = getEnt(req);
|
|
|
+
|
|
|
//查询商品信息
|
|
|
- List<KwpGoods> kwpGoodsList = Lists.newArrayList();
|
|
|
- if (!org.apache.commons.lang3.StringUtils.isAllBlank(req.getGoodsName(), req.getGoodsType(),
|
|
|
- req.getGoodsSpec())){
|
|
|
- kwpGoodsList = goodsInfoService.getGoodsByNameTypeDesc(req.getGoodsName(), req.getGoodsType(),
|
|
|
- req.getGoodsSpec());
|
|
|
+ List<Long> orderIds = getOrderIds(req);
|
|
|
|
|
|
- }
|
|
|
- Set<Long> goodsIds = Sets.newHashSet();
|
|
|
- if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwpGoodsList)){
|
|
|
- goodsIds = kwpGoodsList.stream().map(KwpGoods::getId).collect(Collectors.toSet());
|
|
|
- }
|
|
|
|
|
|
|
|
|
- //根据商品信息查询物流订单商品
|
|
|
- List<KwoTradeOrderGoods> kwoTradeOrderGoodsList = Lists.newArrayList();
|
|
|
- if (CollectionUtils.isNotEmpty(goodsIds)){
|
|
|
- kwoTradeOrderGoodsList =
|
|
|
- tradeOrderGoodsRepository.queryByGoodsIds(goodsIds);
|
|
|
- }
|
|
|
- List<Long> orderIds = Lists.newArrayList();
|
|
|
- if (CollectionUtils.isNotEmpty(kwoTradeOrderGoodsList)){
|
|
|
- orderIds = kwoTradeOrderGoodsList.stream()
|
|
|
- .map(KwoTradeOrderGoods::getTOrderId)
|
|
|
- .toList();
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(req.getTradeOrderId())){
|
|
|
- orderIds.add(Long.valueOf(req.getTradeOrderId()));
|
|
|
- }
|
|
|
|
|
|
//分页查询订单
|
|
|
- IPage<KwoTradeOrder> page = tradeOrderRepository.queryByPage(orderIds,req.getOrderNo(),req.getOrderStartTime(),
|
|
|
+ IPage<KwoTradeOrder> page = tradeOrderRepository.queryByPage(allEnt,orderIds,req.getOrderNo(),
|
|
|
+ req.getTradeOrderStatus(),
|
|
|
+ req.getOrderStartTime(),
|
|
|
req.getOrderEndTime(),
|
|
|
req.getPageNum(),req.getPageSize());
|
|
|
List<KwoTradeOrder> records = page.getRecords();
|
|
|
@@ -255,12 +237,117 @@ public class TradeOrderManageService {
|
|
|
}
|
|
|
|
|
|
//查询商品信息
|
|
|
+ Map<Long, KwpGoods> goodsIdAndGoodsMap = getLongKwpGoodsMap(goodsIdList);
|
|
|
+
|
|
|
+ //查询贸易订单公司信息
|
|
|
+ Map<String, KwoTradeOrderUnit> orderIdUnitTypeAndUnitMap = getStringKwoTradeOrderUnitMap(tradeOrderIds);
|
|
|
+ //查询贸易订单地址信息
|
|
|
+ Map<String, KwoTradeOrderAddress> orderIdAndAddressMap = getStringKwoTradeOrderAddressMap(tradeOrderIds);
|
|
|
+ //查询贸易订单合同信息(一个贸易合同对应多个贸易订单)
|
|
|
+ Map<Long, KwoTradeOrderContract> tradeOrderIdAndContractMap = getLongKwoTradeOrderContractMap(tradeOrderIds);
|
|
|
+
|
|
|
+ //查询物流信息
|
|
|
+ Map<Integer, RTransportEntVo> entTypeAndTransportEntMap = getIntegerRTransportEntVoMap(tradeOrderIds);
|
|
|
+ //查询运单信息
|
|
|
+ Map<Long, RWaybillSubOrderVo> tradeIdAndSubOrderVoMap = getLongRWaybillSubOrderVoMap(tradeOrderIds);
|
|
|
+
|
|
|
+ Map<Long, KwoTradeOrderGoods> finalTradeOrderIdGoodsMap = tradeOrderIdGoodsMap;
|
|
|
+ Map<Long, UserCacheResDto> finalUserIdAndUserMap = userIdAndUserMap;
|
|
|
+ //组装返回参数
|
|
|
+ List<QueryTradeOrderResp> results = records.stream()
|
|
|
+ .map(tradeOrder -> getQueryTradeOrderResp(tradeOrder, orderIdUnitTypeAndUnitMap, entTypeAndTransportEntMap, finalTradeOrderIdGoodsMap, goodsIdAndGoodsMap, tradeIdAndSubOrderVoMap
|
|
|
+ , orderIdAndAddressMap, tradeOrderIdAndContractMap, finalUserIdAndUserMap))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ return PageDataResult.of(page, results);
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private Set<Long> getEnt(QueryTradeOrderReq req) {
|
|
|
+ Set<Long> allEnt = Sets.newHashSet();
|
|
|
+ //根据企业类型查询企业
|
|
|
+ if(StringUtils.isNotBlank(req.getEntId())){
|
|
|
+ allEnt.add(Long.parseLong(req.getEntId()));
|
|
|
+ EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(Long.parseLong(req.getEntId()));
|
|
|
+ if (Objects.nonNull(entCacheResDto)) {
|
|
|
+ EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
|
|
|
+ List<EntCacheResDto> child = entCacheResDto1.getChild();
|
|
|
+ if (CollectionUtils.isNotEmpty(child)) {
|
|
|
+ allEnt.addAll(child.stream().filter(x->x.getEntTypes().contains(req.getEntType())).map(EntCacheResDto::getId).toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return allEnt;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private List<Long> getOrderIds(QueryTradeOrderReq req) {
|
|
|
+ List<KwpGoods> kwpGoodsList = Lists.newArrayList();
|
|
|
+ if (!org.apache.commons.lang3.StringUtils.isAllBlank(req.getGoodsName(), req.getGoodsType(),
|
|
|
+ req.getGoodsSpec())){
|
|
|
+ kwpGoodsList = goodsInfoService.getGoodsByNameTypeDesc(req.getGoodsName(), req.getGoodsType(),
|
|
|
+ req.getGoodsSpec());
|
|
|
+
|
|
|
+ }
|
|
|
+ Set<Long> goodsIds = Sets.newHashSet();
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwpGoodsList)){
|
|
|
+ goodsIds = kwpGoodsList.stream().map(KwpGoods::getId).collect(Collectors.toSet());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //根据商品信息查询物流订单商品
|
|
|
+ List<KwoTradeOrderGoods> kwoTradeOrderGoodsList = Lists.newArrayList();
|
|
|
+ if (CollectionUtils.isNotEmpty(goodsIds)){
|
|
|
+ kwoTradeOrderGoodsList =
|
|
|
+ tradeOrderGoodsRepository.queryByGoodsIds(goodsIds);
|
|
|
+ }
|
|
|
+ List<Long> orderIds = Lists.newArrayList();
|
|
|
+ if (CollectionUtils.isNotEmpty(kwoTradeOrderGoodsList)){
|
|
|
+ orderIds.addAll(kwoTradeOrderGoodsList.stream()
|
|
|
+ .map(KwoTradeOrderGoods::getTOrderId)
|
|
|
+ .toList());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(req.getTradeOrderId())){
|
|
|
+ orderIds.add(Long.valueOf(req.getTradeOrderId()));
|
|
|
+ }
|
|
|
+ List<Object> entIds = Lists.newArrayList();
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getSupplyEntId())){
|
|
|
+ entIds.add(Long.valueOf(req.getSupplyEntId()));
|
|
|
+ }
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getPurchaseEntId())){
|
|
|
+ entIds.add(Long.valueOf(req.getPurchaseEntId()));
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询供应企业
|
|
|
+ List<KwoTradeOrderUnit> kwoTradeOrderUnits = tradeOrderUnitRepository.queryByEntIds(entIds);
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwoTradeOrderUnits)){
|
|
|
+ orderIds.addAll(kwoTradeOrderUnits.stream()
|
|
|
+ .map(KwoTradeOrderUnit::getTOrderId)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ //查询承运单位
|
|
|
+ if (StringUtils.isNotBlank(req.getCarriageEntId())){
|
|
|
+ List<KwtLogisticsOrderVO> kwtLogisticsOrderVOS = transportRemoteService.queryTransportEntByEntId(Long.parseLong(req.getCarriageEntId()));
|
|
|
+ if (CollectionUtils.isNotEmpty(kwtLogisticsOrderVOS)){
|
|
|
+ orderIds.addAll(kwtLogisticsOrderVOS.stream()
|
|
|
+ .map(KwtLogisticsOrderVO::getTOrderId)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return orderIds;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map<Long, KwpGoods> getLongKwpGoodsMap(List<Long> goodsIdList) {
|
|
|
Map<Long, KwpGoods> goodsIdAndGoodsMap = Maps.newHashMap() ;
|
|
|
if (CollectionUtils.isNotEmpty(goodsIdList)){
|
|
|
goodsIdAndGoodsMap = goodsInfoService.getGoodsByIds(goodsIdList);
|
|
|
}
|
|
|
+ return goodsIdAndGoodsMap;
|
|
|
+ }
|
|
|
|
|
|
- //查询贸易订单公司信息
|
|
|
+ @NotNull
|
|
|
+ private Map<String, KwoTradeOrderUnit> getStringKwoTradeOrderUnitMap(Set<Long> tradeOrderIds) {
|
|
|
List<KwoTradeOrderUnit> tradeOrderUnits = tradeOrderUnitRepository.queryByOrderIds(tradeOrderIds);
|
|
|
Map<String, KwoTradeOrderUnit> orderIdUnitTypeAndUnitMap = Maps.newHashMap();
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tradeOrderUnits)){
|
|
|
@@ -270,7 +357,11 @@ public class TradeOrderManageService {
|
|
|
.collect(Collectors.toMap(KwoTradeOrderUnit::getTradeOrderIdAndUnitType, Function.identity(), (k,
|
|
|
v) -> k));
|
|
|
}
|
|
|
- //查询贸易订单地址信息
|
|
|
+ return orderIdUnitTypeAndUnitMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private Map<String, KwoTradeOrderAddress> getStringKwoTradeOrderAddressMap(Set<Long> tradeOrderIds) {
|
|
|
List<KwoTradeOrderAddress> tradeOrderAddresses = tradeOrderAddressRepository.queryByOrderIds(tradeOrderIds);
|
|
|
Map<String, KwoTradeOrderAddress> orderIdAndAddressMap = Maps.newHashMap();
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tradeOrderAddresses)){
|
|
|
@@ -280,7 +371,11 @@ public class TradeOrderManageService {
|
|
|
.collect(Collectors.toMap(KwoTradeOrderAddress::getTradeOrderIdTypeKey,Function.identity(),
|
|
|
(k, v)->k));
|
|
|
}
|
|
|
- //查询贸易订单合同信息(一个贸易合同对应多个贸易订单)
|
|
|
+ return orderIdAndAddressMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private Map<Long, KwoTradeOrderContract> getLongKwoTradeOrderContractMap(Set<Long> tradeOrderIds) {
|
|
|
List<KwoTradeOrderContract> tradeOrderContracts = tradeOrderContractRepository.queryByOrderIds(tradeOrderIds);
|
|
|
Map<Long, KwoTradeOrderContract> tradeOrderIdAndContractMap = Maps.newHashMap();
|
|
|
if (CollectionUtils.isNotEmpty(tradeOrderContracts)){
|
|
|
@@ -288,8 +383,11 @@ public class TradeOrderManageService {
|
|
|
.collect(Collectors.toMap(KwoTradeOrderContract::getTOrderId,
|
|
|
Function.identity(), (k1, k2) -> k1));
|
|
|
}
|
|
|
+ return tradeOrderIdAndContractMap;
|
|
|
+ }
|
|
|
|
|
|
- //查询物流信息
|
|
|
+ @NotNull
|
|
|
+ private Map<Integer, RTransportEntVo> getIntegerRTransportEntVoMap(Set<Long> tradeOrderIds) {
|
|
|
List<RTransportEntVo> transportEnts = transportRemoteService.queryTransportEnt(tradeOrderIds);
|
|
|
Map<Integer, RTransportEntVo> entTypeAndTransportEntMap = Maps.newHashMap();
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(transportEnts)){
|
|
|
@@ -297,27 +395,18 @@ public class TradeOrderManageService {
|
|
|
transportEnts.stream().collect(Collectors.toMap(RTransportEntVo::getTransportEntType, Function.identity(),
|
|
|
(k, v) -> k));
|
|
|
}
|
|
|
- //查询运单信息
|
|
|
+ return entTypeAndTransportEntMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private Map<Long, RWaybillSubOrderVo> getLongRWaybillSubOrderVoMap(Set<Long> tradeOrderIds) {
|
|
|
List<RWaybillSubOrderVo> subOrderVoList = transportRemoteService.queryWaybillOrderByTradeOrderIds(tradeOrderIds);
|
|
|
Map<Long, RWaybillSubOrderVo> tradeIdAndSubOrderVoMap = Maps.newHashMap();
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(subOrderVoList)){
|
|
|
tradeIdAndSubOrderVoMap = subOrderVoList.stream()
|
|
|
.collect(Collectors.toMap(RWaybillSubOrderVo::getTradeId, Function.identity(), (k, v) -> k));
|
|
|
}
|
|
|
-
|
|
|
- Map<Long, KwoTradeOrderGoods> finalTradeOrderIdGoodsMap = tradeOrderIdGoodsMap;
|
|
|
- Map<Long, KwpGoods> finalGoodsIdAndGoodsMap = goodsIdAndGoodsMap;
|
|
|
- Map<String, KwoTradeOrderAddress> finalOrderIdAndAddressMap = orderIdAndAddressMap;
|
|
|
- Map<Long, KwoTradeOrderContract> finalTradeOrderIdAndContractMap = tradeOrderIdAndContractMap;
|
|
|
- Map<Long, UserCacheResDto> finalUserIdAndUserMap = userIdAndUserMap;
|
|
|
- Map<String, KwoTradeOrderUnit> finalOrderIdUnitTypeAndUnitMap = orderIdUnitTypeAndUnitMap;
|
|
|
- Map<Integer, RTransportEntVo> finalEntTypeAndTransportEntMap = entTypeAndTransportEntMap;
|
|
|
- Map<Long, RWaybillSubOrderVo> finalTradeIdAndSubOrderVoMap = tradeIdAndSubOrderVoMap;
|
|
|
- //组装返回参数
|
|
|
- List<QueryTradeOrderResp> results = records.stream()
|
|
|
- .map(tradeOrder -> getQueryTradeOrderResp(tradeOrder, finalOrderIdUnitTypeAndUnitMap, finalEntTypeAndTransportEntMap, finalTradeOrderIdGoodsMap, finalGoodsIdAndGoodsMap, finalTradeIdAndSubOrderVoMap, finalOrderIdAndAddressMap, finalTradeOrderIdAndContractMap, finalUserIdAndUserMap))
|
|
|
- .collect(Collectors.toList());
|
|
|
- return PageDataResult.of(page, results);
|
|
|
+ return tradeIdAndSubOrderVoMap;
|
|
|
}
|
|
|
|
|
|
@NotNull
|