diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java index 3f583b2..ed16906 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java @@ -1159,6 +1159,21 @@ public class OrderInfoService extends ServiceImpl Exceptions.clierr("订单不存在")); OrderStatus orderStatus = orderInfoEntity.getOrderStatus(); Assert.isTrue(orderStatus == OrderStatus.YiJinChang, () -> Exceptions.clierr("当前订单状态,无法出场")); + OrderCategory orderCategory = orderInfoEntity.getOrderCategory(); + + Integer settleWeight = orderCarInOutService.truckOut(orderInfoEntity.getCarInOutId(), truckLeavingOrderParam, orderCategory, truckId); + // 结算(目前仅针对清运公司): + // 1) 复制“产品”到 order_expense_items; + // 2) 从 expense_items_config 读取可用付费项并按 scope 过滤(all / customer_type=QiYe|GeTi / customer 包含 trans_company_id); + // 3) 合并集合,计算 total_money 与 settle_money,并批量落库。 + OrderGoodsEntity entity = orderGoodsService.getById(orderInfoEntity.getGoodsId()); + Assert.notNull(entity, () -> Exceptions.clierr("产品不存在")); + if (MoneyWay.OUT.getVal().equals(entity.getMoneyWay())) { + // 计算费用,出厂付费可能需要称重,需要更新付费项 + updateOrderItems(orderInfoEntity.getId(), settleWeight, Boolean.FALSE); + orderInfoEntity = this.getById(truckLeavingOrderParam.getOrderId()); + } + baseMapper.busyDriver(orderInfoEntity.getDriverId(), Boolean.FALSE); baseMapper.busyTruck(orderInfoEntity.getTruckId(), Boolean.FALSE); PaymentStatus paymentStatus = orderInfoEntity.getPaymentStatus(); @@ -1169,33 +1184,27 @@ public class OrderInfoService extends ServiceImpl { BizTruckEntity truckInfo = baseMapper.getTruckInfo(truckId); String licensePlate = truckInfo.getLicensePlate(); Websocket.publish(new WsMsg().setEvent("down/order/status_change") .setData(MapUtil.builder() - .put("sn", orderInfoEntity.getSn()) + .put("sn", orderInfoEntity_.getSn()) .put("licensePlate", licensePlate) .put("orderStatus", newOrderStatus) .build())); }).exceptionally(e -> { - log.error("订单状态改变事件发布失败,订单{},状态{}", orderInfoEntity.getSn(), newOrderStatus, e); + log.error("订单状态改变事件发布失败,订单{},状态{}", orderInfoEntity_.getSn(), newOrderStatus, e); return null; }); - // 结算(目前仅针对清运公司): - // 1) 复制“产品”到 order_expense_items; - // 2) 从 expense_items_config 读取可用付费项并按 scope 过滤(all / customer_type=QiYe|GeTi / customer 包含 trans_company_id); - // 3) 合并集合,计算 total_money 与 settle_money,并批量落库。 - OrderGoodsEntity entity = orderGoodsService.getById(orderInfoEntity.getGoodsId()); - Assert.notNull(entity, () -> Exceptions.clierr("产品不存在")); + // 出厂付费 if (MoneyWay.OUT.getVal().equals(entity.getMoneyWay())) { // 计算费用,出厂付费可能需要称重,需要更新付费项 - updateOrderItems(orderInfoEntity.getId(), settleWeight, Boolean.FALSE); + // updateOrderItems(orderInfoEntity.getId(), settleWeight, Boolean.FALSE); // 扣费 return handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);