diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java index e92832e4..5d831ca9 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java @@ -1094,11 +1094,6 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { List saleorderRequestDtoList = new ArrayList<>(); saleorderRequestDtoList.add(saleorderRequestDto); - //TODO 测试 - if (true) { - continue; - } - Map> stringStringMap = new HashMap<>(); stringStringMap.put("saleorder", saleorderRequestDtoList); SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap)); @@ -1708,7 +1703,21 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { } Assert.notNull(totalPayAmount, "应收金额不能为空(应收金额=实付金额+达人优惠+支付优惠+平台优惠) 销售出库单编码:{} 出库单明细主键:{}", header.getCode(), sonDetailsDto.getId()); Assert.notNull(sonDetailsDto.getShipQty(), "实发数量不能为空 销售出库单编码:{} 出库单明细主键:{}", header.getCode(), sonDetailsDto.getId()); - BigDecimal totalPayAmountBigDecimal = new BigDecimal(totalPayAmount); + + BigDecimal totalPayAmountBigDecimal = new BigDecimal("0"); + //O实付金额=O应收金额/O请求数量*O实发数量 + if (!"0".equals(new BigDecimal(totalPayAmount).stripTrailingZeros().toPlainString())) { + //O应收金额/O请求数量 + Assert.notNull(sonDetailsDto.getRequestQty(), "请求数量不能为空!"); + if ("0".equals(new BigDecimal(sonDetailsDto.getRequestQty()).stripTrailingZeros().toPlainString())) { + Assert.state(false, "请求数量不能为0!"); + } + if ("0".equals(new BigDecimal(sonDetailsDto.getShipQty()).stripTrailingZeros().toPlainString())) { + Assert.state(false, "实发数量不能为空!"); + } + BigDecimal divide = new BigDecimal(totalPayAmount).divide(new BigDecimal(sonDetailsDto.getRequestQty()), 20, BigDecimal.ROUND_HALF_UP); + totalPayAmountBigDecimal = divide.multiply(new BigDecimal(sonDetailsDto.getShipQty())).setScale(2, BigDecimal.ROUND_HALF_UP); + } BigDecimal shipQtyBigDecimal = new BigDecimal(sonDetailsDto.getShipQty()); groupTotalPayAmount = groupTotalPayAmount.add(totalPayAmountBigDecimal);