Quellcode durchsuchen

提交解绑车辆bug

chenxiaofei vor 6 Monaten
Ursprung
Commit
bc069ffc5c

+ 35 - 15
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -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());

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -3555,7 +3555,7 @@ public class KwtWaybillOrderV1Service {
         waybillOrderDetailResp.setTransEntName(transEnt.getFirmName());
         waybillOrderDetailResp.setCarrierEntName(carrierEnt.getFirmName());
         Optional<TradeContractUnitDto> first = tradeContractUnitDtos.stream()
-                .filter(x -> org.apache.commons.lang3.StringUtils.equals(x.getUnitType(), String.valueOf(CooperateTypeEnum.SUPPLIER.getCode())))
+                .filter(x -> org.apache.commons.lang3.StringUtils.equals(x.getUnitType(), String.valueOf(CooperateTypeEnum.PURCHASER.getCode())))
                 .findFirst();
         first.ifPresent(x->{
             waybillOrderDetailResp.setSupplyEntName(x.getFirmName());