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.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@ToString @ToString
@ -23,5 +25,5 @@ public class HsoaRecode {
private Boolean success; private Boolean success;
@TableField(fill = FieldFill.INSERT) @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(); Long orderId = truckLeavingOrderParam.getOrderId();
OrderInfoEntity orderInfoEntity = this.getById(orderId); OrderInfoEntity orderInfoEntity = this.getById(orderId);
Long truckId = orderInfoEntity.getTruckId(); Long truckId = orderInfoEntity.getTruckId();
boolean result = false;
try { try {
Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在")); Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在"));
OrderStatus orderStatus = orderInfoEntity.getOrderStatus(); OrderStatus orderStatus = orderInfoEntity.getOrderStatus();
@ -1352,8 +1353,35 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
log.error("订单状态改变事件发布失败,订单{},状态{}", orderInfoEntity_.getSn(), newOrderStatus, e); log.error("订单状态改变事件发布失败,订单{},状态{}", orderInfoEntity_.getSn(), newOrderStatus, e);
return null; 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); 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); HsoaResult<?> result = hsoaService.pushProvincialSave(detail);
HsoaRecode hsoaRecode = new HsoaRecode() HsoaRecode hsoaRecode = new HsoaRecode()
.setOrderId(orderId) .setOrderId(orderId)
@ -1362,37 +1390,15 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
.setPushType(PushType.LianDan); .setPushType(PushType.LianDan);
if (result == null || !result.isSuccess()) { if (result == null || !result.isSuccess()) {
Hsoa.relogin(); Hsoa.relogin();
log.error("推送订单数据失败数据Id{}", entity.getId()); log.error("推送订单数据失败数据Id{}", orderId);
hsoaService.save(hsoaRecode.setSuccess(Boolean.FALSE)); hsoaService.save(hsoaRecode.setSuccess(Boolean.FALSE));
} else { } else {
hsoaService.save(hsoaRecode.setSuccess(Boolean.TRUE)); hsoaService.save(hsoaRecode.setSuccess(Boolean.TRUE));
} }
}).exceptionally(e -> { }).exceptionally(e -> {
log.error("推送订单数据失败数据Id{}", entity.getId(), e); log.error("推送订单数据失败数据Id{}", orderId, e);
return null; 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;
} }
/** /**