diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java index 72e6cb7b..32411e80 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java @@ -338,13 +338,13 @@ public class KingdeeReceivedInvoiceSyncSupport { return quantity; } - /** 明细行单价:unitPrice 空/不可解析按 价税合计/数量 反算(2 位小数) */ + /** 明细行单价:unitPrice 空/不可解析按 价税合计/数量 反算;金蝶要求小数不超过 4 位,统一 4 位舍入 */ private BigDecimal mirrorPrice(String unitPrice, BigDecimal priceTaxTotal, BigDecimal quantity) { BigDecimal price = this.parseMirrorAmountQuietly(unitPrice); - if (price != null && price.compareTo(BigDecimal.ZERO) > 0) { - return price; - } - return priceTaxTotal.divide(quantity, 2, RoundingMode.HALF_UP); + BigDecimal result = price != null && price.compareTo(BigDecimal.ZERO) > 0 + ? price + : priceTaxTotal.divide(quantity, 4, RoundingMode.HALF_UP); + return result.setScale(4, RoundingMode.HALF_UP); } /** 镜像税率转税率表编码:"V"+整数税率(13/13%/0.13→V13);缺失、零/免税行拦截提示人工 */