diff --git a/src/main/java/com/yem/rf/salescommission/ExportDeclarationDetailsReportPlugin.java b/src/main/java/com/yem/rf/salescommission/ExportDeclarationDetailsReportPlugin.java index 23c98b88..6dd7dd49 100644 --- a/src/main/java/com/yem/rf/salescommission/ExportDeclarationDetailsReportPlugin.java +++ b/src/main/java/com/yem/rf/salescommission/ExportDeclarationDetailsReportPlugin.java @@ -133,6 +133,7 @@ public class ExportDeclarationDetailsReportPlugin extends AbstractReportListData dataSet = dataSet.addField("0.0", "yem_baseseaamt");//原币海运费 dataSet = dataSet.addField("0.0", "yem_usdseaamt");//美元海运费 dataSet = dataSet.addField("0.0", "yem_basepremiumamt");//原币保险费 + dataSet = dataSet.addField("0.0", "yem_usdpremiumamt");//美元保险费 dataSet = RptUtil.zeroNullNums(dataSet); DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(dataSet.copy()); Map> map = new LinkedHashMap<>(); @@ -163,11 +164,13 @@ public class ExportDeclarationDetailsReportPlugin extends AbstractReportListData BigDecimal share_baseseaamt = BigDecimal.ZERO;//原币海运费分摊 BigDecimal share_usdseaamt = BigDecimal.ZERO;//美元海运费分摊 BigDecimal share_basepremiumamt = BigDecimal.ZERO;//原币保险费分摊 + BigDecimal share_usdpremiumamt = BigDecimal.ZERO;//美元保险费分摊 for (DynamicObject d : value) { BigDecimal amount = d.getBigDecimal("yem_amount");//金额 BigDecimal seausdamtsum = d.getBigDecimal("yem_seausdamtsum");//海运费USD总价 BigDecimal usdSeaAmt = d.getBigDecimal("usd_sea_amt");//海运费(美元) - BigDecimal usdpremiumamt = d.getBigDecimal("yem_premiumamt");//原币保险费 + BigDecimal premiumamt = d.getBigDecimal("yem_premiumamt");//原币保险费 + BigDecimal usdPmamtAmt = d.getBigDecimal("usd_pmamt_amt");//美元保险费 BigDecimal rate = BigDecimalUtils.div(amount, sumAmt, 10); @@ -179,14 +182,19 @@ public class ExportDeclarationDetailsReportPlugin extends AbstractReportListData BigDecimal usdseaamt = rate.multiply(usdSeaAmt); usdseaamt = usdseaamt.setScale(2, RoundingMode.HALF_UP); - //原币保险费 = 金额/金额汇总*保险费(美元) - BigDecimal basepremiumamt = rate.multiply(usdpremiumamt); + //原币保险费 = 金额/金额汇总*保险费(原币) + BigDecimal basepremiumamt = rate.multiply(premiumamt); basepremiumamt = basepremiumamt.setScale(2, RoundingMode.HALF_UP); + //美元保险费 = 金额/金额汇总*保险费(美元) + BigDecimal usdpremiumamt = rate.multiply(usdPmamtAmt); + usdpremiumamt = usdpremiumamt.setScale(2, RoundingMode.HALF_UP); + if (isLastRow(d, value)) { d.set("yem_baseseaamt", seausdamtsum.subtract(share_baseseaamt));//原币海运费 d.set("yem_usdseaamt", usdSeaAmt.subtract(share_usdseaamt));//美元海运费 - d.set("yem_basepremiumamt", usdpremiumamt.subtract(share_basepremiumamt));//原币保险费 + d.set("yem_basepremiumamt", premiumamt.subtract(share_basepremiumamt));//原币保险费 + d.set("yem_usdpremiumamt", usdpremiumamt.subtract(share_usdpremiumamt));//美元保险费 } else { share_baseseaamt = share_baseseaamt.add(baseseaamt); share_usdseaamt = share_usdseaamt.add(usdseaamt); @@ -194,6 +202,7 @@ public class ExportDeclarationDetailsReportPlugin extends AbstractReportListData d.set("yem_baseseaamt", baseseaamt);//原币海运费 d.set("yem_usdseaamt", usdseaamt);//美元海运费 d.set("yem_basepremiumamt", basepremiumamt);//原币保险费 + d.set("yem_usdpremiumamt", usdpremiumamt);//美元保险费 }