From 4ec0e881ac800a685317ef418dad899245418ba2 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Wed, 9 Apr 2025 10:14:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=84=E5=8F=96=E5=9C=9F=E5=9C=BA=E8=BF=90?= =?UTF-8?q?=E8=BE=93=E9=87=8F=E7=BB=9F=E8=AE=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ssjygl/stat/sale/OrderStatService.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/ssjygl-xsct-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java b/ssjygl-xsct-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java index 9e65699..499a448 100644 --- a/ssjygl-xsct-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java +++ b/ssjygl-xsct-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java @@ -3359,35 +3359,33 @@ public class OrderStatService { record.set("children", list); if(!CollectionUtils.isEmpty(list)){ - record.set("count", list.stream().map(o->o.getBigDecimal("count")).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("source_weight", list.stream().map(o->o.getBigDecimal("source_weight")).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("trans_price", list.stream().map(o->o.getBigDecimal("trans_price")).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("count", list.stream().filter(t->t.getBigDecimal("count") != null).map(o->o.getBigDecimal("count")).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("source_weight", list.stream().filter(t->t.getBigDecimal("source_weight") != null).map(o->o.getBigDecimal("source_weight")).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("trans_price", list.stream().filter(t->t.getBigDecimal("trans_price") != null).map(o->o.getBigDecimal("trans_price")).reduce(BigDecimal.ZERO, BigDecimal::add)); for (Record sup : sups) { Integer id = sup.getInt("id"); - record.set("xsc_"+id, list.stream().map(o->o.getBigDecimal("xsc_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("xst_"+id, list.stream().map(o->o.getBigDecimal("xst_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("xss_"+id, list.stream().map(o->o.getBigDecimal("xss_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("xsw_"+id, list.stream().map(o->o.getBigDecimal("xsw_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xsc_"+id, list.stream().filter(t->t.getBigDecimal("xsc_"+id) != null).map(o->o.getBigDecimal("xsc_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xst_"+id, list.stream().filter(t->t.getBigDecimal("xst_"+id) != null).map(o->o.getBigDecimal("xst_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xss_"+id, list.stream().filter(t->t.getBigDecimal("xss_"+id) != null).map(o->o.getBigDecimal("xss_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xsw_"+id, list.stream().filter(t->t.getBigDecimal("xsw_"+id) != null).map(o->o.getBigDecimal("xsw_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); } } } } -// typelist.sort(Comparator.comparing(o -> -// Objects.nonNull(o.getInt("trans_co_id")) && o.getInt("trans_co_id") > 0 ? o.getInt("trans_co_id") : Integer.valueOf(-1))); Record record = new Record(); record.set("trans_co_id", -1); record.set("trans_name", "合计"); - record.set("count", customer_sale_list.stream().map(o->o.getBigDecimal("count")).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("source_weight", customer_sale_list.stream().map(o->o.getBigDecimal("source_weight")).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("trans_price", customer_sale_list.stream().map(o->o.getBigDecimal("trans_price")).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("count", customer_sale_list.stream().filter(t->t.getBigDecimal("count") != null).map(o->o.getBigDecimal("count")).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("source_weight", customer_sale_list.stream().filter(t->t.getBigDecimal("source_weight") != null).map(o->o.getBigDecimal("source_weight")).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("trans_price", customer_sale_list.stream().filter(t->t.getBigDecimal("trans_price") != null).map(o->o.getBigDecimal("trans_price")).reduce(BigDecimal.ZERO, BigDecimal::add)); for (Record sup : sups) { Integer id = sup.getInt("id"); - record.set("xsc_"+id, customer_sale_list.stream().map(o->o.getBigDecimal("xsc_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("xst_"+id, customer_sale_list.stream().map(o->o.getBigDecimal("xst_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("xss_"+id, customer_sale_list.stream().map(o->o.getBigDecimal("xss_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); - record.set("xsw_"+id, customer_sale_list.stream().map(o->o.getBigDecimal("xsw_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xsc_"+id, customer_sale_list.stream().filter(t->t.getBigDecimal("xsc_"+id) != null).map(o->o.getBigDecimal("xsc_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xst_"+id, customer_sale_list.stream().filter(t->t.getBigDecimal("xst_"+id) != null).map(o->o.getBigDecimal("xst_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xss_"+id, customer_sale_list.stream().filter(t->t.getBigDecimal("xss_"+id) != null).map(o->o.getBigDecimal("xss_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); + record.set("xsw_"+id, customer_sale_list.stream().filter(t->t.getBigDecimal("xsw_"+id) != null).map(o->o.getBigDecimal("xsw_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add)); }