diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java index 02f7d5e5c..55c5635af 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java @@ -345,7 +345,6 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService { dto.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date())); } MerchantOrderReportVO vo = new MerchantOrderReportVO(); - MerchantOrderReportVO.MerchantOrderReport report = new MerchantOrderReportVO.MerchantOrderReport(); PageUtils.startPage(pageNum, pageSize); GetClearingBillDTO clearingBillDTO = GetClearingBillDTO.builder() .merchantId(dto.getMerchantId()) @@ -358,26 +357,57 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService { vo.setPageResponse(pageResponse); vo.setMerchantId(dto.getMerchantId()); + // 进行数据汇总 + MerchantOrderReportVO.MerchantOrderReport report = new MerchantOrderReportVO.MerchantOrderReport(); List list = settleOrderReportMapper.getMerchantOrderReport(dto); + BigDecimal useElectricity = BigDecimal.ZERO; + BigDecimal chargeNum = BigDecimal.ZERO; + BigDecimal chargeTime = BigDecimal.ZERO; + BigDecimal electricityAmount = BigDecimal.ZERO; + BigDecimal serviceAmount = BigDecimal.ZERO; + BigDecimal totalAmount = BigDecimal.ZERO; + BigDecimal virtualAmount = BigDecimal.ZERO; + for (SettleOrderReportVO settleOrderReportVO : list) { + useElectricity = useElectricity.add(settleOrderReportVO.getUseElectricity()); + chargeNum = chargeNum.add(new BigDecimal(settleOrderReportVO.getChargeNum())); + chargeTime = chargeTime.add(new BigDecimal(settleOrderReportVO.getChargeTime())); + electricityAmount = electricityAmount.add(settleOrderReportVO.getElectricityAmount()); + serviceAmount = serviceAmount.add(settleOrderReportVO.getServiceAmount()); + totalAmount = totalAmount.add(settleOrderReportVO.getTotalAmount()); + virtualAmount = virtualAmount.add(settleOrderReportVO.getVirtualAmount()); + } // 用电度数 - report.setUseElectricity(list.stream().map(SettleOrderReportVO::getUseElectricity).reduce(BigDecimal.ZERO, BigDecimal::add)); + report.setUseElectricity(useElectricity); // 充电次数 - report.setChargeNum(list.stream().map(SettleOrderReport -> new BigDecimal(SettleOrderReport.getChargeNum())).reduce(BigDecimal.ZERO, BigDecimal::add)); + report.setChargeNum(chargeNum); // 充电时长 - report.setChargeTime(list.stream().map(SettleOrderReport -> new BigDecimal(SettleOrderReport.getChargeTime())).reduce(BigDecimal.ZERO, BigDecimal::add)); + report.setChargeTime(chargeTime); // 电费金额 - report.setElectricityAmount(list.stream().map(SettleOrderReportVO::getElectricityAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + report.setElectricityAmount(electricityAmount); // 服务费金额 - report.setServiceAmount(list.stream().map(SettleOrderReportVO::getServiceAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + report.setServiceAmount(serviceAmount); // 收入金额 - report.setTotalAmount(list.stream().map(SettleOrderReportVO::getTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + report.setTotalAmount(totalAmount); // 虚拟金额 - report.setVirtualAmount(list.stream().map(SettleOrderReportVO::getVirtualAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + report.setVirtualAmount(virtualAmount); // 交易金额 - report.setTradeAmount(list.stream().map(SettleOrderReportVO::getTradeAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + // report.setTradeAmount(list.stream().map(SettleOrderReportVO::getTradeAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); // 交易手续费 - report.setTradeFee(list.stream().map(SettleOrderReportVO::getTradeFee).reduce(BigDecimal.ZERO, BigDecimal::add)); + // report.setTradeFee(list.stream().map(SettleOrderReportVO::getTradeFee).reduce(BigDecimal.ZERO, BigDecimal::add)); + + // 从清分账单中计算交易金额,交易手续费 + List merchantClearingBillList = clearingBillInfoService.getMerchantClearingBillList(clearingBillDTO); + BigDecimal tradeAmount = BigDecimal.ZERO; + BigDecimal tradeFee = BigDecimal.ZERO; + for (MerchantClearingBillVO merchantClearingBillVO : merchantClearingBillList) { + tradeAmount = tradeAmount.add(new BigDecimal(merchantClearingBillVO.getWithdrawAbleAmount())); + tradeFee = tradeFee.add(new BigDecimal(merchantClearingBillVO.getFeeAmount())); + } + // 交易金额 + report.setTradeAmount(tradeAmount); + // 交易手续费 + report.setTradeFee(tradeFee); vo.setMerchantOrderReport(report); return vo; @@ -390,12 +420,11 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService { */ @Override public PageResponse getMerchantClearingBillList(GetClearingBillDTO dto) { - List resultList; int pageNum = dto.getPageNum() == null ? 1 : dto.getPageNum(); int pageSize = dto.getPageSize() == null ? 10 : dto.getPageSize(); // 分页 PageUtils.startPage(pageNum, pageSize); - resultList = clearingBillInfoService.getMerchantClearingBillList(dto); + List resultList = clearingBillInfoService.getMerchantClearingBillList(dto); if (CollectionUtils.isEmpty(resultList)) { return null; }