|
|
@@ -6344,10 +6344,27 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
*/
|
|
|
@Override
|
|
|
public Page<ReceiverSettlementReportDto> receiverSettlementReportWithSettlemetnDate(Page page, SettlementReportQueryVo vo) {
|
|
|
- // 改为复用全量查询方法,从 ins_ply_income 出发,保持数据口径一致
|
|
|
- // 时间范围通过 vo.startTime / vo.endTime 由 getReceiverSettlementReport SQL 中的 ipii.invoice_time 过滤
|
|
|
- log.info("平台协议应收-结算报表-对接人结算报表查询(按时间范围)。settlementReportQueryVo=[{}]", JSONUtil.toJsonStr(vo));
|
|
|
- return this.receiverSettlementReport(page, vo);
|
|
|
+ log.info("平台协议应收-结算报表-对接人结算报表查询。結算时间不为空 settlementReportQueryVo=[{}]", JSONUtil.toJsonStr(vo));
|
|
|
+ Page<InsPlyIncomeInvoiceSettlement> pageRes = insPlyIncomeInvoiceSettlementMapper.querySettlementBySettlementDate(page,vo);
|
|
|
+ List<InsPlyIncomeInvoiceSettlement> records = pageRes.getRecords();
|
|
|
+ Map<String, List<InsPlyIncomeInvoiceSettlement>> res = records.stream()
|
|
|
+ .collect(Collectors.groupingBy(InsPlyIncomeInvoiceSettlement::getContactPerson));
|
|
|
+ Page<ReceiverSettlementReportDto> pagDto = new Page<>(page.getPages(), page.getSize());
|
|
|
+ List<ReceiverSettlementReportDto> dtos = new ArrayList<>();
|
|
|
+ for (String s : res.keySet()) {
|
|
|
+ ReceiverSettlementReportDto dto = new ReceiverSettlementReportDto();
|
|
|
+ dto.setReceiver(s);
|
|
|
+ List<InsPlyIncomeInvoiceSettlement> settlements = res.get(s);
|
|
|
+ BigDecimal diffAmount = settlements.stream().map(InsPlyIncomeInvoiceSettlement::getSettlementPaymentDifference).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal actualReceivedAmount = settlements.stream().map(InsPlyIncomeInvoiceSettlement::getActualReceivedAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ dto.setSettledAmount(actualReceivedAmount.toString());
|
|
|
+ dto.setUnSettledAmount(BigDecimal.ZERO.toString());
|
|
|
+ dto.setTotalReceivable(BigDecimalUtil.add(diffAmount, actualReceivedAmount).toString());
|
|
|
+ dto.setTotalPaymentDifference(diffAmount);
|
|
|
+ dtos.add(dto);
|
|
|
+ }
|
|
|
+ pagDto.setRecords(dtos);
|
|
|
+ return pagDto;
|
|
|
}
|
|
|
|
|
|
/**
|