Parcourir la source

Merge branch 'dev_20251130' of https://git.sckaiwu.cn/kaiwu-rep/sckw-service-platform into dev_20251130

chenxiaofei il y a 6 mois
Parent
commit
6fb4044e09

+ 3 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java

@@ -2176,6 +2176,9 @@ public class KwcContractTradeService {
                 contractIdList.add(contractId);
             }
         }
+        if (CollectionUtils.isEmpty(contractIdList)) {
+            return Collections.emptyList();
+        }
         //查询自动派车物流合同
         List<KwcContractLogistics> contractLogisticsList = contractLogisticsRepository.queryByIdsAndDispatch(contractIdList);
         return toLogisticsEntDtoVO(entId, contractLogisticsList);

+ 40 - 18
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -2154,24 +2154,46 @@ public class KwoTradeOrderService {
         kwoTradeOrderTrack.setCreateTime(new Date());
         kwoTradeOrderTrack.setDelFlag(0);
         kwoTradeOrderTrackService.insert(kwoTradeOrderTrack);
-        for (LogisticsEntDto logisticsEntDto : logisticsContractId) {
-            KwoTradeOrderTransport kwoTradeOrderTransport = new KwoTradeOrderTransport();
-            kwoTradeOrderTransport.setId(new IdWorker(1).nextId());
-            kwoTradeOrderTransport.setTOrderId(kwoTradeOrder.getId());
-            kwoTradeOrderTransport.setTOrderNo(kwoTradeOrder.getTOrderNo());
-            kwoTradeOrderTransport.setEntId(logisticsEntDto.getEntId());
-            kwoTradeOrderTransport.setFirmName(logisticsEntDto.getEntName());
-            kwoTradeOrderTransport.setContractId(logisticsEntDto.getContractId());
-            kwoTradeOrderTransport.setContractNo(logisticsEntDto.getContractNo());
-            kwoTradeOrderTransport.setTransportPrice(logisticsEntDto.getTransportPrice());
-            kwoTradeOrderTransport.setContactsId(logisticsEntDto.getContactsId());
-            kwoTradeOrderTransport.setContacts(logisticsEntDto.getContacts());
-            kwoTradeOrderTransport.setPhone(logisticsEntDto.getPhone());
-            kwoTradeOrderTransport.setRemark("");
-            kwoTradeOrderTransport.setStatus(0);
-            kwoTradeOrderTransport.setCreateBy(LoginUserHolder.getUserId());
-            kwoTradeOrderTransport.setCreateTime(LocalDateTime.now());
-            kwoTradeOrderTransportService.insert(kwoTradeOrderTransport);
+        if (DispatchWayEnums.AUTO_DISPATCH.getCode().equals(kwoTradeOrder.getDispatchWay())) {
+            for (LogisticsEntDtoVO logisticsEntDtoVO : validContractLog) {
+                KwoTradeOrderTransport kwoTradeOrderTransport = new KwoTradeOrderTransport();
+                kwoTradeOrderTransport.setId(new IdWorker(1).nextId());
+                kwoTradeOrderTransport.setTOrderId(kwoTradeOrder.getId());
+                kwoTradeOrderTransport.setTOrderNo(kwoTradeOrder.getTOrderNo());
+                kwoTradeOrderTransport.setEntId(logisticsEntDtoVO.getEntId());
+                kwoTradeOrderTransport.setFirmName(logisticsEntDtoVO.getEntName());
+                kwoTradeOrderTransport.setContractId(logisticsEntDtoVO.getContractId());
+                kwoTradeOrderTransport.setContractNo(logisticsEntDtoVO.getContractNo());
+                kwoTradeOrderTransport.setTransportPrice(logisticsEntDtoVO.getTransportPrice());
+                kwoTradeOrderTransport.setContactsId(logisticsEntDtoVO.getContactsId());
+                kwoTradeOrderTransport.setContacts(logisticsEntDtoVO.getContacts());
+                kwoTradeOrderTransport.setPhone(logisticsEntDtoVO.getPhone());
+                kwoTradeOrderTransport.setRemark("");
+                kwoTradeOrderTransport.setStatus(0);
+                kwoTradeOrderTransport.setCreateBy(LoginUserHolder.getUserId());
+                kwoTradeOrderTransport.setCreateTime(LocalDateTime.now());
+                kwoTradeOrderTransportService.insert(kwoTradeOrderTransport);
+            }
+        } else {
+            for (LogisticsEntDto logisticsEntDto : logisticsContractId) {
+                KwoTradeOrderTransport kwoTradeOrderTransport = new KwoTradeOrderTransport();
+                kwoTradeOrderTransport.setId(new IdWorker(1).nextId());
+                kwoTradeOrderTransport.setTOrderId(kwoTradeOrder.getId());
+                kwoTradeOrderTransport.setTOrderNo(kwoTradeOrder.getTOrderNo());
+                kwoTradeOrderTransport.setEntId(logisticsEntDto.getEntId());
+                kwoTradeOrderTransport.setFirmName(logisticsEntDto.getEntName());
+                kwoTradeOrderTransport.setContractId(logisticsEntDto.getContractId());
+                kwoTradeOrderTransport.setContractNo(logisticsEntDto.getContractNo());
+                kwoTradeOrderTransport.setTransportPrice(logisticsEntDto.getTransportPrice());
+                kwoTradeOrderTransport.setContactsId(logisticsEntDto.getContactsId());
+                kwoTradeOrderTransport.setContacts(logisticsEntDto.getContacts());
+                kwoTradeOrderTransport.setPhone(logisticsEntDto.getPhone());
+                kwoTradeOrderTransport.setRemark("");
+                kwoTradeOrderTransport.setStatus(0);
+                kwoTradeOrderTransport.setCreateBy(LoginUserHolder.getUserId());
+                kwoTradeOrderTransport.setCreateTime(LocalDateTime.now());
+                kwoTradeOrderTransportService.insert(kwoTradeOrderTransport);
+            }
         }
         //下游新增物流订单
         AddLogisticOrderParam addLogisticOrderParam = new AddLogisticOrderParam();

+ 2 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LeaveMockHandler.java

@@ -59,7 +59,7 @@ public class LeaveMockHandler extends AbstractWaybillOrderHandler<WaybillOrderLe
         //1.填充毛重
         updateGrossAmount(param, ticketMap);
         //2.填充装货净重
-//        updateLoadAmount(param, waybillOrder, ticketMap);
+        updateLoadAmount(param, waybillOrder, ticketMap);
     }
 
     @Override
@@ -98,10 +98,7 @@ public class LeaveMockHandler extends AbstractWaybillOrderHandler<WaybillOrderLe
         BigDecimal tareAmount = shipmentTicket.getTareAmount();
 
         //更新子运单装货净重
-        KwtWaybillOrderSubtask subtask = waybillOrderSubtaskRepository.queryByWOrderId(waybillOrder.getId());
-        if (subtask == null) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_SUB_NOT_FOUND, "未找到关联的子运单!");
-        }
+        KwtWaybillOrderSubtask subtask = getWaybillSubtask(waybillOrder.getId());
         BigDecimal loadAmount = param.getGrossAmount().subtract(Optional.ofNullable(tareAmount).orElse(BigDecimal.ZERO));
         subtask.setLoadAmount(loadAmount);
         subtask.setLoadTime(new Date());

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/UnloadingHandler.java

@@ -135,9 +135,9 @@ public class UnloadingHandler extends AbstractWaybillOrderHandler<WaybillOrderUn
      */
     private KwtWaybillOrderSubtask updateWaybillOrderSubtask(KwtWaybillOrder waybill, BigDecimal loadAmount) {
         KwtWaybillOrderSubtask subtask = getWaybillSubtask(waybill.getId());
-        subtask.setLoadAmount(loadAmount);
-        subtask.setLoadTime(new Date());
-        waybillOrderSubtaskRepository.updateById(subtask);
+//        subtask.setLoadAmount(loadAmount);
+//        subtask.setLoadTime(new Date());
+//        waybillOrderSubtaskRepository.updateById(subtask);
         return subtask;
     }
 

+ 6 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtAcceptCarriageOrderService.java

@@ -3326,15 +3326,18 @@ public class KwtAcceptCarriageOrderService {
         //查询商品轴数
         KwpGoods goodsById = goodsInfoService.getGoodsById(goodId);
         if (goodsById == null) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "物流运单装货地址有误!");
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "【创建物流订单】商品信息不能为空!");
         }
         //商品轴数
-        TmsTruckAxleNumVO carAxisInfo = fleetService.getCarAxisInfo(Optional.ofNullable(goodsById.getCarAxis()).map(Integer::valueOf).orElse(null));
+        if (StringUtils.isBlank(goodsById.getCarAxis())) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "【创建物流订单】商品信息的轴数不能为空!");
+        }
+        List<String> axleNumStrId = Arrays.asList(goodsById.getCarAxis().split(","));
         List<RTruckVo> truckVoList = fleetService.findTruckByEntIds(logEntId);
         //过滤满足轴数的车辆
         List<RTruckVo> truckVoFilterList = truckVoList.stream()
                 .filter(Objects::nonNull)
-                .filter(truck -> Objects.equals(truck.getCarAxis(), String.valueOf(carAxisInfo.getId())))
+                .filter(truck -> axleNumStrId.contains(truck.getCarAxis()))
                 .collect(Collectors.toList());
 
         //过滤满足车辆最大可派任务数的车辆

+ 7 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -167,16 +167,19 @@ public class WaybillOrderService {
         List<Long> waybillOrderIds = waybillOrders.stream().map(KwtWaybillOrder::getId).distinct().collect(Collectors.toList());
         List<KwtWaybillOrderSubtask> kwtWaybillOrderSubtasks = waybillOrderSubtaskRepository.queryByWOrderIds(waybillOrderIds);
         if (CollectionUtils.isEmpty(kwtWaybillOrderSubtasks)) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_SUB_NOT_FOUND, "当前车辆的物流订单无商品信息");
+            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_SUB_NOT_FOUND, "物流子运单不存在");
         }
 
         // 总运输量 = 累计装货量 + 卸货量
         BigDecimal toalEntrustAmount = kwtWaybillOrderSubtasks
                 .stream()
                 .map(sub -> {
-                    BigDecimal loadAmount = Optional.ofNullable(sub.getLoadAmount()).orElse(BigDecimal.ZERO);
-                    BigDecimal unloadAmount = Optional.ofNullable(sub.getUnloadAmount()).orElse(BigDecimal.ZERO);
-                    return loadAmount.add(unloadAmount);
+                    //卸货量为空,说明次运单按照装货方式计费
+                    if (sub.getUnloadAmount() == null) {
+                        return sub.getLoadAmount() == null || sub.getLoadAmount().compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : sub.getLoadAmount();
+                    } else {
+                        return sub.getUnloadAmount().compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : sub.getUnloadAmount();
+                    }
                 })
                 .reduce(BigDecimal.ZERO, BigDecimal::add);