|
|
@@ -3070,15 +3070,50 @@ public class KwtLogisticsConsignmentService {
|
|
|
BigDecimal expectedTransportPrice =
|
|
|
Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(orderDetailVo.getAmount()) ?
|
|
|
kwtLogisticsOrder.getPrice().multiply(orderDetailVo.getAmount()) : BigDecimal.ZERO;
|
|
|
- BigDecimal actualTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getUnloadAmount()) ?
|
|
|
- kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getUnloadAmount()) : BigDecimal.ZERO;
|
|
|
+// BigDecimal actualTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getUnloadAmount()) ?
|
|
|
+// kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getUnloadAmount()) : BigDecimal.ZERO;
|
|
|
|
|
|
logisticsOrderResp.setExpectedTransportPrice(expectedTransportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
|
|
|
- logisticsOrderResp.setActualTransportPrice(actualTransportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
|
|
|
- logisticsOrderResp.setLoadAmount((Objects.nonNull(kwtLogisticsOrder.getLoadAmount()) ?
|
|
|
- kwtLogisticsOrder.getLoadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00") + kwtLogisticsOrder.getUnit());
|
|
|
- logisticsOrderResp.setUnloadAmount((Objects.nonNull(kwtLogisticsOrder.getUnloadAmount()) ?
|
|
|
- kwtLogisticsOrder.getUnloadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00") + kwtLogisticsOrder.getUnit());
|
|
|
+
|
|
|
+ List<KwtWaybillOrderSubtask> subtasks = logisticsOrderIdAndSubtaskList.getOrDefault(kwtLogisticsOrder.getId(), new ArrayList<>());
|
|
|
+ BigDecimal transportPrice = BigDecimal.ZERO;
|
|
|
+ BigDecimal loadAmount= BigDecimal.ZERO;
|
|
|
+ BigDecimal unloadAmount = BigDecimal.ZERO;
|
|
|
+ //用于计算
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
+ if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),
|
|
|
+ DictEnum.CHARGING_TYPE_1.getValue())) {
|
|
|
+ loadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getLoadAmount()))
|
|
|
+ .map(KwtWaybillOrderSubtask::getLoadAmount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ transportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) ? loadAmount.multiply(kwtLogisticsOrder.getPrice()) :
|
|
|
+ BigDecimal.ZERO;
|
|
|
+ // logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
|
|
|
+ logisticsOrderResp.setUnloadAmount("-");
|
|
|
+ // logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
|
|
|
+
|
|
|
+ } else if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),
|
|
|
+ DictEnum.CHARGING_TYPE_2.getValue())) {
|
|
|
+ loadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getLoadAmount()))
|
|
|
+ .map(KwtWaybillOrderSubtask::getLoadAmount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ unloadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getUnloadAmount()))
|
|
|
+ .map(KwtWaybillOrderSubtask::getUnloadAmount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ transportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) ? unloadAmount.multiply(kwtLogisticsOrder.getPrice()) :
|
|
|
+ BigDecimal.ZERO;
|
|
|
+
|
|
|
+ // logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
|
|
|
+ logisticsOrderResp.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
|
|
|
+ //logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
|
|
|
+ }
|
|
|
+ logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
|
|
|
+ logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
|
|
|
+// logisticsOrderResp.setActualTransportPrice(actualTransportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
|
|
|
+// logisticsOrderResp.setLoadAmount((Objects.nonNull(kwtLogisticsOrder.getLoadAmount()) ?
|
|
|
+// kwtLogisticsOrder.getLoadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00") + kwtLogisticsOrder.getUnit());
|
|
|
+// logisticsOrderResp.setUnloadAmount((Objects.nonNull(kwtLogisticsOrder.getUnloadAmount()) ?
|
|
|
+// kwtLogisticsOrder.getUnloadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00") + kwtLogisticsOrder.getUnit());
|
|
|
|
|
|
KwtLogisticsOrderAddress loadAdd = finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap.getOrDefault(kwtLogisticsOrder.getId() + "-" + AddressTypeEnum.SHIPMENT.getCode(), new KwtLogisticsOrderAddress());
|
|
|
logisticsOrderResp.setLoadAddress(loadAdd.getCityName() + loadAdd.getDetailAddress());
|