|
|
@@ -2936,17 +2936,29 @@ public class KwtWaybillOrderV1Service {
|
|
|
|
|
|
public PageDataResult<WaybillOrderResp> findBillOrderListPage(WaybillOrderReq req) {
|
|
|
log.info("查询订单列表请求阐述:{}",JSON.toJSONString( req));
|
|
|
-
|
|
|
+ Integer status = org.apache.commons.lang3.StringUtils.isNoneBlank(req.getStatus()) ?
|
|
|
+ Integer.parseInt(req.getStatus()) : null;
|
|
|
+ Set<Long> allEnt = getAllEnt(req);
|
|
|
//物流订单号集合
|
|
|
Set<Long> logOrderIds = getLogOrderIds(req);
|
|
|
+ boolean b1 = !org.apache.commons.lang3.StringUtils.isAllBlank(req.getLogisticsOrderNo(), req.getGoodsName(),
|
|
|
+ req.getCarrierId(), req.getConsignorId());
|
|
|
+ if(org.apache.commons.collections4.CollectionUtils.isEmpty(logOrderIds) && b1){
|
|
|
+ return PageDataResult.empty(req.getPageNum(), req.getPageSize());
|
|
|
+ }
|
|
|
|
|
|
//查询运单信息
|
|
|
//运单id集合
|
|
|
Set<Long> billOrderIds = getBillOrderIds(req);
|
|
|
+ boolean b = Stream.of(req.getWaybillNo(), req.getTruckNo(), req.getDriverName(), req.getPhone(),
|
|
|
+ req.getLoadStartTime(),req.getLoadEndTime(),req.getUnloadStartTime(),req.getUnloadEndTime())
|
|
|
+ .anyMatch(StringUtils::isNotBlank);
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isEmpty(billOrderIds) && b){
|
|
|
+ return PageDataResult.empty(req.getPageNum(), req.getPageSize());
|
|
|
+ }
|
|
|
|
|
|
- Long entId = StringUtils.isNotBlank(req.getEntId()) ? Long.parseLong(req.getEntId()) : null;
|
|
|
- IPage<KwtWaybillOrderSubtask> page = waybillOrderSubtaskRepository.queryByPage(entId ,logOrderIds,
|
|
|
- billOrderIds, req.getPageNum(), req.getPageSize());
|
|
|
+ IPage<KwtWaybillOrderSubtask> page = waybillOrderSubtaskRepository.queryByPage(allEnt ,logOrderIds,
|
|
|
+ billOrderIds,status, req.getPageNum(), req.getPageSize());
|
|
|
List<KwtWaybillOrderSubtask> records = page.getRecords();
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isEmpty(records)){
|
|
|
return PageDataResult.empty(req.getPageNum(), req.getPageSize());
|
|
|
@@ -2993,18 +3005,30 @@ public class KwtWaybillOrderV1Service {
|
|
|
goodsIds = logisticsOrderGoods.stream()
|
|
|
.map(KwtLogisticsOrderGoods::getGoodsId).distinct().collect(Collectors.toList());
|
|
|
logOrderIdAndGoodsIdMap =
|
|
|
- logisticsOrderGoods.stream().collect(Collectors.toMap(KwtLogisticsOrderGoods::getId, Function.identity(),
|
|
|
+ logisticsOrderGoods.stream().collect(Collectors.toMap(KwtLogisticsOrderGoods::getLOrderId,
|
|
|
+ Function.identity(),
|
|
|
(k1, k2) -> k1));
|
|
|
}
|
|
|
//查询商品信息
|
|
|
Map<Long, KwpGoods> kwpGoodsMap = goodsInfoService.getGoodsByIds(goodsIds);
|
|
|
|
|
|
-
|
|
|
+ //查询订单信息
|
|
|
+ List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderRepository.queryByLogisticsOrderIds(new ArrayList<>(logicsOrderIds));
|
|
|
+ Map<Long, KwtLogisticsOrder> logIdAndOrderMap = Maps.newHashMap();
|
|
|
+ if (CollectionUtils.isNotEmpty(kwtLogisticsOrders)){
|
|
|
+ logIdAndOrderMap = kwtLogisticsOrders.stream()
|
|
|
+ .collect(Collectors.toMap(KwtLogisticsOrder::getId,
|
|
|
+ Function.identity(), (k1,
|
|
|
+ k2) -> k1));
|
|
|
+ }
|
|
|
Map<String, KwtWaybillOrderAddress> finalSubOrderIdAddressTypeKeyAndAddressMap = subOrderIdAddressTypeKeyAndAddressMap;
|
|
|
Map<Long, KwtLogisticsOrderGoods> finalLogOrderIdAndGoodsIdMap = logOrderIdAndGoodsIdMap;
|
|
|
+ Map<Long, KwtLogisticsOrder> finalLogIdAndOrderMap = logIdAndOrderMap;
|
|
|
List<WaybillOrderResp> resps = records.stream()
|
|
|
- .map(record -> getWaybillOrderResp(record, waybillOrderIdAndBillOrderMap, logOrderIdUnitTypeKeyAndUnitMap, finalLogOrderIdAndGoodsIdMap, kwpGoodsMap, finalSubOrderIdAddressTypeKeyAndAddressMap, subBillIdAddressIdKeyAndOrderTrackMap))
|
|
|
+ .map(record -> getWaybillOrderResp(record, waybillOrderIdAndBillOrderMap,
|
|
|
+ logOrderIdUnitTypeKeyAndUnitMap, finalLogOrderIdAndGoodsIdMap, kwpGoodsMap, finalSubOrderIdAddressTypeKeyAndAddressMap, subBillIdAddressIdKeyAndOrderTrackMap, finalLogIdAndOrderMap))
|
|
|
.collect(Collectors.toList());
|
|
|
+
|
|
|
return PageDataResult.of(page,resps);
|
|
|
}
|
|
|
|
|
|
@@ -3018,6 +3042,29 @@ public class KwtWaybillOrderV1Service {
|
|
|
}
|
|
|
return waybillOrderIdAndBillOrderMap;
|
|
|
}
|
|
|
+ @NotNull
|
|
|
+ private Set<Long> getAllEnt(WaybillOrderReq req) {
|
|
|
+ Set<Long> allEnt = Sets.newHashSet();
|
|
|
+ //根据企业类型查询企业
|
|
|
+ if (StringUtils.isBlank(req.getEntId())){
|
|
|
+ req.setEntId(String.valueOf(LoginUserHolder.getEntId()));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(req.getEntId())){
|
|
|
+ return allEnt;
|
|
|
+ }
|
|
|
+ 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()
|
|
|
+ .map(EntCacheResDto::getId).toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return allEnt;
|
|
|
+ }
|
|
|
|
|
|
@NotNull
|
|
|
private Map<String, KwtLogisticsOrderUnit> getStringKwtLogisticsOrderUnitMap(List<Long> logicsOrderIds) {
|
|
|
@@ -3070,12 +3117,30 @@ public class KwtWaybillOrderV1Service {
|
|
|
entIds.add(Long.parseLong(req.getCarrierId()));
|
|
|
}
|
|
|
//根据单位查询订单id
|
|
|
- List<KwtLogisticsOrderUnit> unitList = kwtLogisticsOrderUnitRepository.queryByEntIds(entIds);
|
|
|
- if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
|
|
|
- logOrderIds.addAll(unitList.stream()
|
|
|
- .map(KwtLogisticsOrderUnit::getLOrderId)
|
|
|
- .collect(Collectors.toSet())) ;
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(entIds)){
|
|
|
+ List<KwtLogisticsOrderUnit> unitList = kwtLogisticsOrderUnitRepository.queryByEntIds(entIds);
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
|
|
|
+ logOrderIds.addAll(unitList.stream()
|
|
|
+ .map(KwtLogisticsOrderUnit::getLOrderId)
|
|
|
+ .collect(Collectors.toSet())) ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<KwtLogisticsOrderGoods> logisticsOrderGoods =null ;
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getGoodsName())){
|
|
|
+ List<KwpGoods> goods = goodsInfoService.findGoodsByGoodsName(req.getGoodsName());
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(goods)){
|
|
|
+ Set<Long> goodsIds = goods.stream()
|
|
|
+ .map(KwpGoods::getId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ logisticsOrderGoods = kwtLogisticsOrderGoodsRepository.queryByGoodsIds(goodsIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(logisticsOrderGoods)){
|
|
|
+ logOrderIds.addAll(logisticsOrderGoods.stream()
|
|
|
+ .map(KwtLogisticsOrderGoods::getLOrderId)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
}
|
|
|
+
|
|
|
return logOrderIds;
|
|
|
}
|
|
|
|
|
|
@@ -3092,18 +3157,48 @@ public class KwtWaybillOrderV1Service {
|
|
|
.collect(Collectors.toSet()));
|
|
|
}
|
|
|
}
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNoneBlank(req.getLoadStartTime(),req.getLoadEndTime())){
|
|
|
+ Date loadStartTime = DateUtils.formatDate(req.getLoadStartTime());
|
|
|
+ Date loadEndTime = DateUtils.formatDate(req.getLoadEndTime());
|
|
|
+ List<KwtWaybillOrderTicket> tickets = kwtWaybillOrderTicketRepository.queryByOperateTime(loadStartTime,
|
|
|
+ loadEndTime,1);
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty( tickets)){
|
|
|
+ billOrderIds.addAll(tickets.stream()
|
|
|
+ .map(KwtWaybillOrderTicket::getWOrderId)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNoneBlank(req.getUnloadStartTime(),req.getUnloadEndTime())){
|
|
|
+ Date unloadStartTime = DateUtils.formatDate(req.getUnloadStartTime());
|
|
|
+ Date unloadEndTime = DateUtils.formatDate(req.getUnloadEndTime());
|
|
|
+ List<KwtWaybillOrderTicket> tickets = kwtWaybillOrderTicketRepository.queryByOperateTime(unloadStartTime,
|
|
|
+ unloadEndTime,2);
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty( tickets)){
|
|
|
+ billOrderIds.addAll(tickets.stream()
|
|
|
+ .map(KwtWaybillOrderTicket::getWOrderId)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ }
|
|
|
return billOrderIds;
|
|
|
}
|
|
|
|
|
|
@NotNull
|
|
|
private static WaybillOrderResp getWaybillOrderResp(KwtWaybillOrderSubtask record, Map<Long, KwtWaybillOrder> finalWaybillOrderIdAndBillOrderMap,
|
|
|
- Map<String, KwtLogisticsOrderUnit> finalLogOrderIdUnitTypeKeyAndUnitMap, Map<Long, KwtLogisticsOrderGoods> finalLogOrderIdAndGoodsIdMap, Map<Long, KwpGoods> kwpGoodsMap
|
|
|
- , Map<String, KwtWaybillOrderAddress> finalSubOrderIdAddressTypeKeyAndAddressMap, Map<String, KwtWaybillOrderTicket> finalSubBillIdAddressIdKeyAndOrderTrackMap) {
|
|
|
+ Map<String, KwtLogisticsOrderUnit> finalLogOrderIdUnitTypeKeyAndUnitMap,
|
|
|
+ Map<Long, KwtLogisticsOrderGoods> finalLogOrderIdAndGoodsIdMap,
|
|
|
+ Map<Long, KwpGoods> kwpGoodsMap,
|
|
|
+ Map<String, KwtWaybillOrderAddress> finalSubOrderIdAddressTypeKeyAndAddressMap,
|
|
|
+ Map<String, KwtWaybillOrderTicket> finalSubBillIdAddressIdKeyAndOrderTrackMap,
|
|
|
+ Map<Long, KwtLogisticsOrder> finalLogIdAndOrderMap) {
|
|
|
WaybillOrderResp waybillOrderResp = new WaybillOrderResp();
|
|
|
KwtWaybillOrder billOrder = finalWaybillOrderIdAndBillOrderMap.getOrDefault(record.getWOrderId(),
|
|
|
new KwtWaybillOrder());
|
|
|
waybillOrderResp.setWaybillOrderId(String.valueOf(billOrder.getId()));
|
|
|
waybillOrderResp.setWaybillOrderNo(billOrder.getWOrderNo());
|
|
|
+ waybillOrderResp.setLogisticsOrderId(String.valueOf(record.getLOrderId()));
|
|
|
+ KwtLogisticsOrder order = finalLogIdAndOrderMap.getOrDefault(record.getLOrderId(), new KwtLogisticsOrder());
|
|
|
+ waybillOrderResp.setLogisticsOrderNo(order.getLOrderNo());
|
|
|
KwtLogisticsOrderUnit consignUnit = finalLogOrderIdUnitTypeKeyAndUnitMap.getOrDefault(record.getLOrderId() + "-" + NumberConstant.ONE,
|
|
|
new KwtLogisticsOrderUnit());
|
|
|
waybillOrderResp.setConsignUnitId(String.valueOf(consignUnit.getEntId()));
|
|
|
@@ -3120,8 +3215,10 @@ public class KwtWaybillOrderV1Service {
|
|
|
|
|
|
KwtLogisticsOrderGoods goods = finalLogOrderIdAndGoodsIdMap.getOrDefault(lOrderId,
|
|
|
new KwtLogisticsOrderGoods());
|
|
|
- KwpGoods kwpGoods = kwpGoodsMap.getOrDefault(goods.getGoodsId(), new KwpGoods());
|
|
|
- waybillOrderResp.setGoodsName(kwpGoods.getName()+"/"+kwpGoods.getGoodsType()+"/"+kwpGoods.getSpec());
|
|
|
+ KwpGoods kwpGoods = kwpGoodsMap.get(goods.getGoodsId());
|
|
|
+ if (Objects.nonNull(kwpGoods)){
|
|
|
+ waybillOrderResp.setGoodsName(kwpGoods.getName()+"/"+kwpGoods.getGoodsType()+"/"+kwpGoods.getSpec());
|
|
|
+ }
|
|
|
waybillOrderResp.setTaskNum(Objects.nonNull(billOrder.getEntrustAmount()) ?
|
|
|
billOrder.getEntrustAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00");
|
|
|
waybillOrderResp.setLoadingNetWeight(Objects.nonNull(billOrder.getLoadAmount()) ?
|
|
|
@@ -3145,7 +3242,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
finalSubBillIdAddressIdKeyAndOrderTrackMap.getOrDefault(record.getId() + "-" + loadingAdd.getId(),
|
|
|
new KwtWaybillOrderTicket());
|
|
|
waybillOrderResp.setLoadingTime(DateUtils.format(loadTrack.getOperateTime(),DateUtils.DATE_TIME_PATTERN));
|
|
|
+ //todo cxf
|
|
|
waybillOrderResp.setOffsiteTime(DateUtils.format(unloadTrack.getOperateTime(),DateUtils.DATE_TIME_PATTERN));
|
|
|
+ waybillOrderResp.setUnloadingTime(DateUtils.format(unloadTrack.getOperateTime(),DateUtils.DATE_TIME_PATTERN));
|
|
|
waybillOrderResp.setStatus(String.valueOf(record.getStatus()));
|
|
|
waybillOrderResp.setStatusDesc(CarWaybillV1Enum.geDesc(record.getStatus()));
|
|
|
return waybillOrderResp;
|