|
|
@@ -2569,7 +2569,7 @@ public class KwtLogisticsConsignmentService {
|
|
|
setUnitInfo(logOrderIdUnitTypeKeyAndUnitMap, logisticsOrder, logisticsOrderDetailResp);
|
|
|
|
|
|
//设置贸易信息
|
|
|
- setGoodsInfo(kwpGoods, logisticsOrder, logisticsOrderDetailResp);
|
|
|
+ setGoodsInfo(kwpGoods, logisticsOrder, logisticsOrderDetailResp,orderDetailVo);
|
|
|
|
|
|
//设置装卸货地址信息
|
|
|
setAddressInfo(logOrderIdAndUnitTypeKeyAndAddressMap, logisticsOrder, logisticsOrderDetailResp);
|
|
|
@@ -2601,8 +2601,15 @@ public class KwtLogisticsConsignmentService {
|
|
|
performanceInfoVO.setBillingMode(logisticsOrder.getBillingMode());
|
|
|
performanceInfoVO.setBillingModeDesc(DictEnum.getLabel(DictTypeEnum.CHARGING_TYPE.getType(),
|
|
|
logisticsOrder.getBillingMode()));
|
|
|
- performanceInfoVO.setCompletedCarNum(Objects.isNull(logisticsOrder.getTotalTake()) ? "0" : String.valueOf(logisticsOrder.getTotalTake()));
|
|
|
- performanceInfoVO.setOrderAmount(String.valueOf(waybillOrderSubtasks.size()));
|
|
|
+ long completedCarNum = waybillOrderSubtasks.stream()
|
|
|
+ .filter(x -> Objects.equals(x.getStatus(), CarWaybillV1Enum.COMPLETED)).count();
|
|
|
+ performanceInfoVO.setCompletedCarNum(String.valueOf(completedCarNum));
|
|
|
+ BigDecimal orderAmount = waybillOrderSubtasks.stream().filter(x -> !Arrays.asList(CarWaybillV1Enum.COMPLETED.getCode(),
|
|
|
+ CarWaybillV1Enum.CANCELLED.getCode()).contains(x.getStatus()))
|
|
|
+ .map(KwtWaybillOrderSubtask::getEntrustAmount)
|
|
|
+ .filter(x -> Objects.nonNull(x))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ performanceInfoVO.setOrderAmount(orderAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
BigDecimal loadAmount = BigDecimal.ZERO;
|
|
|
BigDecimal unloadAmount = BigDecimal.ZERO;
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(waybillOrderSubtasks)){
|
|
|
@@ -2616,17 +2623,20 @@ public class KwtLogisticsConsignmentService {
|
|
|
.map(KwtWaybillOrderSubtask::getUnloadAmount)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
}
|
|
|
- performanceInfoVO.setLoadAmount(loadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
- performanceInfoVO.setUnloadAmount(unloadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
+
|
|
|
BigDecimal totalCarriageCost = BigDecimal.ZERO;
|
|
|
if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
|
|
|
DictEnum.CHARGING_TYPE_1.getValue())){
|
|
|
totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? loadAmount.multiply(logisticsOrder.getPrice()) :
|
|
|
BigDecimal.ZERO;
|
|
|
+ performanceInfoVO.setLoadAmount(loadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
+ performanceInfoVO.setUnloadAmount("-");
|
|
|
}else if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
|
|
|
DictEnum.CHARGING_TYPE_2.getValue())){
|
|
|
totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? unloadAmount.multiply(logisticsOrder.getPrice()) :
|
|
|
BigDecimal.ZERO;
|
|
|
+ performanceInfoVO.setLoadAmount(loadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
+ performanceInfoVO.setUnloadAmount(unloadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
}
|
|
|
performanceInfoVO.setTotalCarriageCost(totalCarriageCost.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
BigDecimal tradeAmount = Optional.ofNullable(orderDetailVo).map(OrderDetailVo::getAmount).orElse(BigDecimal.ZERO);
|
|
|
@@ -2684,11 +2694,11 @@ public class KwtLogisticsConsignmentService {
|
|
|
LogisticsOrderDetailResp.LoadingInfoVO loadingInfoVO = new LogisticsOrderDetailResp.LoadingInfoVO();
|
|
|
KwtLogisticsOrderAddress loadAdd = logOrderIdAndUnitTypeKeyAndAddressMap.getOrDefault(logisticsOrder.getId() + "-" + AddressTypeEnum.SHIPMENT.getCode(),
|
|
|
new KwtLogisticsOrderAddress());
|
|
|
- loadingInfoVO.setLoadAddress(loadAdd.getDetailAddress());
|
|
|
+ loadingInfoVO.setLoadAddress(loadAdd.getCityName()+loadAdd.getDetailAddress());
|
|
|
KwtLogisticsOrderAddress unloadAdd =
|
|
|
logOrderIdAndUnitTypeKeyAndAddressMap.getOrDefault(logisticsOrder.getId() + "-" + AddressTypeEnum.TAKE.getCode(),
|
|
|
new KwtLogisticsOrderAddress());
|
|
|
- loadingInfoVO.setUnloadAddress(unloadAdd.getDetailAddress());
|
|
|
+ loadingInfoVO.setUnloadAddress(unloadAdd.getCityName()+unloadAdd.getDetailAddress());
|
|
|
loadingInfoVO.setUnloadContacts(unloadAdd.getContacts());
|
|
|
loadingInfoVO.setUnloadPhone(unloadAdd.getPhone());
|
|
|
double distanceKm = DistanceUtils.calculateDistance(
|
|
|
@@ -2700,16 +2710,18 @@ public class KwtLogisticsConsignmentService {
|
|
|
logisticsOrderDetailResp.setLoadingInfoVO(loadingInfoVO);
|
|
|
}
|
|
|
|
|
|
- private static void setGoodsInfo(KwpGoods kwpGoods, KwtLogisticsOrder logisticsOrder, LogisticsOrderDetailResp logisticsOrderDetailResp) {
|
|
|
+ private static void setGoodsInfo(KwpGoods kwpGoods, KwtLogisticsOrder logisticsOrder,
|
|
|
+ LogisticsOrderDetailResp logisticsOrderDetailResp,
|
|
|
+ OrderDetailVo orderDetailVo) {
|
|
|
LogisticsOrderDetailResp.GoodsInfoVO goodsInfoVO = new LogisticsOrderDetailResp.GoodsInfoVO();
|
|
|
if (Objects.nonNull(kwpGoods)){
|
|
|
goodsInfoVO.setGoodsName(kwpGoods.getName());
|
|
|
|
|
|
}
|
|
|
goodsInfoVO.setUnitPrice(Objects.nonNull(logisticsOrder.getPrice())? logisticsOrder.getPrice().setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
|
|
|
- goodsInfoVO.setOrderAmount(Objects.nonNull(logisticsOrder.getAmount()) ? logisticsOrder.getAmount().setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
|
|
|
- BigDecimal carriageCost = Objects.nonNull(logisticsOrder.getAmount()) && Objects.nonNull(logisticsOrder.getPrice()) ?
|
|
|
- logisticsOrder.getAmount().multiply(logisticsOrder.getPrice()) : BigDecimal.ZERO;
|
|
|
+ goodsInfoVO.setOrderAmount(Objects.nonNull(orderDetailVo.getAmount()) ? orderDetailVo.getAmount().setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
|
|
|
+ BigDecimal carriageCost = Objects.nonNull(orderDetailVo.getAmount()) && Objects.nonNull(logisticsOrder.getPrice()) ?
|
|
|
+ orderDetailVo.getAmount().multiply(logisticsOrder.getPrice()) : BigDecimal.ZERO;
|
|
|
goodsInfoVO.setCarriageCost(carriageCost.setScale(2,RoundingMode.HALF_UP).toPlainString());
|
|
|
logisticsOrderDetailResp.setGoodsInfoVO(goodsInfoVO);
|
|
|
}
|
|
|
@@ -2928,6 +2940,11 @@ public class KwtLogisticsConsignmentService {
|
|
|
if (!status.contains(logisticsOrder.getStatus())){
|
|
|
throw new BusinessException("该物流订单状态不能进行派车");
|
|
|
}
|
|
|
+ //查询承运企业
|
|
|
+ KwtLogisticsOrderUnit kwtLogisticsOrderUnit = logisticsOrderUnitRepository.queryByLOrderIdAndUnitType(logOrderId, 2);
|
|
|
+ if (Objects.isNull(kwtLogisticsOrderUnit)){
|
|
|
+ throw new BusinessException("未找到承运企业信息");
|
|
|
+ }
|
|
|
//车牌id去重
|
|
|
List<DispatchCarReq.CarInfo> carInfos = req.getCarInfos();
|
|
|
Set<String> truckIds = carInfos.stream()
|
|
|
@@ -2941,7 +2958,7 @@ public class KwtLogisticsConsignmentService {
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isEmpty(logisticsOrderCirculates)){
|
|
|
//直接新增
|
|
|
List<KwtLogisticsOrderCirculate> saveOrderCirculates = carInfos.stream()
|
|
|
- .map(t -> getKwtLogisticsOrderCirculate(req, t, logOrderId, logisticsOrder))
|
|
|
+ .map(t -> getKwtLogisticsOrderCirculate(req, t, logOrderId, logisticsOrder,kwtLogisticsOrderUnit))
|
|
|
.collect(Collectors.toList());
|
|
|
insertOrderCirculates.addAll(saveOrderCirculates);
|
|
|
}else {
|
|
|
@@ -2950,7 +2967,7 @@ public class KwtLogisticsConsignmentService {
|
|
|
.map(KwtLogisticsOrderCirculate::getTruckId)
|
|
|
.collect(Collectors.toList());
|
|
|
List<KwtLogisticsOrderCirculate> saveOrderCirculates = carInfos.stream().filter(t -> truckIdList.contains(t.getTruckId()))
|
|
|
- .map(t -> getKwtLogisticsOrderCirculate(req, t, logOrderId, logisticsOrder))
|
|
|
+ .map(t -> getKwtLogisticsOrderCirculate(req, t, logOrderId, logisticsOrder,kwtLogisticsOrderUnit))
|
|
|
.collect(Collectors.toList());
|
|
|
insertOrderCirculates.addAll(saveOrderCirculates);
|
|
|
}
|
|
|
@@ -2978,9 +2995,12 @@ public class KwtLogisticsConsignmentService {
|
|
|
|
|
|
@NotNull
|
|
|
private static KwtLogisticsOrderCirculate getKwtLogisticsOrderCirculate(DispatchCarReq req,
|
|
|
- DispatchCarReq.CarInfo carInfo, Long logOrderId, KwtLogisticsOrder logisticsOrder) {
|
|
|
+ DispatchCarReq.CarInfo carInfo,
|
|
|
+ Long logOrderId,
|
|
|
+ KwtLogisticsOrder logisticsOrder,
|
|
|
+ KwtLogisticsOrderUnit kwtLogisticsOrderUnit) {
|
|
|
KwtLogisticsOrderCirculate logisticsOrderCirculate = new KwtLogisticsOrderCirculate();
|
|
|
- logisticsOrderCirculate.setEntId(Long.valueOf(req.getEntId()));
|
|
|
+ logisticsOrderCirculate.setEntId(Long.valueOf(kwtLogisticsOrderUnit.getEntId()));
|
|
|
logisticsOrderCirculate.setLOrderId(logOrderId);
|
|
|
logisticsOrderCirculate.setTruckId(Long.valueOf(carInfo.getTruckId()));
|
|
|
logisticsOrderCirculate.setTruckNo(carInfo.getTruckNo());
|