소스 검색

快递汇总添加合计行

yzc 11 달 전
부모
커밋
fb396e4356
1개의 변경된 파일24개의 추가작업 그리고 0개의 파일을 삭제
  1. 24 0
      hx-common/src/main/java/com/fjhx/common/service/logistics/impl/LogisticsEndingAmountServiceImpl.java

+ 24 - 0
hx-common/src/main/java/com/fjhx/common/service/logistics/impl/LogisticsEndingAmountServiceImpl.java

@@ -118,9 +118,14 @@ public class LogisticsEndingAmountServiceImpl extends ServiceImpl<LogisticsEndin
         //快递公司 每月发生额
         Map<Long, LogisticsAmount> logisticsAmountMap = logisticsAmountService.mapKEntity(LogisticsAmount::getLogisticsCompanyId, q -> q.eq(LogisticsAmount::getYear, dto.getYear()));
 
+        //合计JSON
+        JSONObject totalJson = new JSONObject();
+        totalJson.put("name", "合计");
+
         //遍历物流公司
         List<LogisticsCompanyInfo> list = logisticsCompanyInfoService.list();
         for (LogisticsCompanyInfo logisticsCompanyInfo : list) {
+
             JSONObject logisticsCompanyInfoJson = JSONObject.parseObject(JSONObject.toJSONString(logisticsCompanyInfo));
             //赋值年初余额,年初应付
             BigDecimal yearBeginBalance = BigDecimal.ZERO;
@@ -139,6 +144,10 @@ public class LogisticsEndingAmountServiceImpl extends ServiceImpl<LogisticsEndin
             yearBeginBalance = ObjectUtil.defaultIfNull(yearBeginBalance, BigDecimal.ZERO);
             yearBeginPayableBalance = ObjectUtil.defaultIfNull(yearBeginPayableBalance, BigDecimal.ZERO);
 
+            //计算合计
+            totalJson.put("yearBeginBalance", ObjectUtil.defaultIfNull(totalJson.getBigDecimal("yearBeginBalance"), BigDecimal.ZERO).add(yearBeginBalance));
+            totalJson.put("yearBeginPayableBalance", ObjectUtil.defaultIfNull(totalJson.getBigDecimal("yearBeginPayableBalance"), BigDecimal.ZERO).add(yearBeginPayableBalance));
+
             logisticsCompanyInfoJson.put("yearBeginBalance", yearBeginBalance);
             logisticsCompanyInfoJson.put("yearBeginPayableBalance", yearBeginPayableBalance);
 
@@ -205,10 +214,25 @@ public class LogisticsEndingAmountServiceImpl extends ServiceImpl<LogisticsEndin
                 //赋值上一期末余额,上一期末应付余额
                 lastEndingBalance = logisticsRecharge.getEndingBalance();
                 lastEndingPayableBalance = logisticsRecharge.getEndingPayableBalance();
+
+                //统计合计
+                LogisticsEndingAmountVo totalEndingAmount =
+                        ObjectUtil.defaultIfNull(totalJson.getJSONObject("" + i), new JSONObject())
+                                .toJavaObject(LogisticsEndingAmountVo.class);
+                totalEndingAmount.setAdvanceAmount(ObjectUtil.defaultIfNull(totalEndingAmount.getAdvanceAmount(), BigDecimal.ZERO).add(advanceAmount));
+                totalEndingAmount.setPaymentAmount(ObjectUtil.defaultIfNull(totalEndingAmount.getPaymentAmount(), BigDecimal.ZERO).add(paymentAmount));
+                totalEndingAmount.setCreditAmount(ObjectUtil.defaultIfNull(totalEndingAmount.getCreditAmount(), BigDecimal.ZERO).add(creditAmount));
+                totalEndingAmount.setDeductionAmount(ObjectUtil.defaultIfNull(totalEndingAmount.getDeductionAmount(), BigDecimal.ZERO).add(deductionAmount));
+                totalEndingAmount.setPaymentDeductionAmount(ObjectUtil.defaultIfNull(totalEndingAmount.getPaymentDeductionAmount(), BigDecimal.ZERO).add(paymentDeductionAmount));
+                totalEndingAmount.setEndingBalance(ObjectUtil.defaultIfNull(totalEndingAmount.getEndingBalance(), BigDecimal.ZERO).add(endingPayableBalance));
+                totalEndingAmount.setEndingPayableBalance(ObjectUtil.defaultIfNull(totalEndingAmount.getEndingPayableBalance(), BigDecimal.ZERO).add(endingPayableBalance));
+                totalJson.put("" + i, totalEndingAmount);
             }
 
             outList.add(logisticsCompanyInfoJson);
         }
+        //添加合计
+        outList.add(totalJson);
 
         return outList;
     }