dev
ljw 2026-02-10 17:39:04 +08:00
commit d51b56254e
2 changed files with 32 additions and 24 deletions

View File

@ -8,6 +8,8 @@ import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Getter
@Setter
@ToString
@ -23,5 +25,5 @@ public class HsoaRecode {
private Boolean success;
@TableField(fill = FieldFill.INSERT)
private String createTime;
private LocalDateTime createTime;
}

View File

@ -1277,6 +1277,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
Long orderId = truckLeavingOrderParam.getOrderId();
OrderInfoEntity orderInfoEntity = this.getById(orderId);
Long truckId = orderInfoEntity.getTruckId();
boolean result = false;
try {
Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在"));
OrderStatus orderStatus = orderInfoEntity.getOrderStatus();
@ -1352,8 +1353,35 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
log.error("订单状态改变事件发布失败,订单{},状态{}", orderInfoEntity_.getSn(), newOrderStatus, e);
return null;
});
CompletableFuture.runAsync(() -> {
// 出厂付费
if (OrderCategory.PuTong.equals(orderInfoEntity.getOrderCategory()) && MoneyWay.OUT.getVal().equals(entity.getMoneyWay())) {
// 计算费用,出厂付费可能需要称重,需要更新付费项
// updateOrderItems(orderInfoEntity.getId(), settleWeight, Boolean.FALSE);
// 扣费
result = handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);
} else if (OrderCategory.DuanBoRu.equals(orderInfoEntity.getOrderCategory())) {
// 扣费
result = handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);
}
OrderPagingResult detail = this.detail(orderId);
pushData(detail);
} finally {
if (orderInfoEntity.getOrderCategory() != OrderCategory.DuanBoChu) {
// 关闭 GPS
BizTruckEntity truckInfo = baseMapper.getTruckInfo(truckId);
String gpsId = truckInfo.getGps();
stopTrack(gpsId);
}
}
return result;
}
public void pushData(OrderPagingResult detail) {
Long orderId = detail.getId();
CompletableFuture.runAsync(() -> {
HsoaResult<?> result = hsoaService.pushProvincialSave(detail);
HsoaRecode hsoaRecode = new HsoaRecode()
.setOrderId(orderId)
@ -1362,37 +1390,15 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
.setPushType(PushType.LianDan);
if (result == null || !result.isSuccess()) {
Hsoa.relogin();
log.error("推送订单数据失败数据Id{}", entity.getId());
log.error("推送订单数据失败数据Id{}", orderId);
hsoaService.save(hsoaRecode.setSuccess(Boolean.FALSE));
} else {
hsoaService.save(hsoaRecode.setSuccess(Boolean.TRUE));
}
}).exceptionally(e -> {
log.error("推送订单数据失败数据Id{}", entity.getId(), e);
log.error("推送订单数据失败数据Id{}", orderId, e);
return null;
});
// 出厂付费
if (OrderCategory.PuTong.equals(orderInfoEntity.getOrderCategory()) && MoneyWay.OUT.getVal().equals(entity.getMoneyWay())) {
// 计算费用,出厂付费可能需要称重,需要更新付费项
// updateOrderItems(orderInfoEntity.getId(), settleWeight, Boolean.FALSE);
// 扣费
return handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);
} else if (OrderCategory.DuanBoRu.equals(orderInfoEntity.getOrderCategory())) {
// 扣费
return handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);
}
} finally {
if (orderInfoEntity.getOrderCategory() != OrderCategory.DuanBoChu) {
// 关闭 GPS
BizTruckEntity truckInfo = baseMapper.getTruckInfo(truckId);
String gpsId = truckInfo.getGps();
stopTrack(gpsId);
}
}
return false;
}
/**