shiyunteng
2 天以前 fca21683e1b5b906d2514082ddfbae8eb820c9ea
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -98,6 +98,7 @@
         if (ArrayUtil.isNotEmpty(scheduleList.toArray())){
            BigDecimal remain = addDTO.getTransationAmount();
            for (ContractPaymentSchedule schedule:scheduleList) {
               BigDecimal lastRemain = remain;
               remain = remain.subtract(StrUtil.equals(schedule.getPaymentStatus()+"","0")?schedule.getPlannedAmount():
                     schedule.getPlannedAmount().subtract(schedule.getActualAmount()));
               if (remain.compareTo(new BigDecimal("0"))>=0){
@@ -112,16 +113,34 @@
                     //新增逾期历史
                     HistoryOverdue historyOverdue = BeanUtil.copyProperties(currentOverdue,HistoryOverdue.class,"id");
                     historyOverdue.setPaymentTime(addDTO.getConfirmTime());
                     historyOverdue.setCompId(schedule.getCompId());
                     historyOverdueMapper.insert(historyOverdue);
                     //删除当前逾期
                     currentOverdueMapper.deleteById(currentOverdue);
                  }
               }else {
                  schedule.setActualAmount(StrUtil.equals(schedule.getPaymentStatus()+"","0")?schedule.getPlannedAmount().add(remain):
                        schedule.getPlannedAmount().subtract(schedule.getActualAmount()).add(remain));
                        schedule.getActualAmount().add(lastRemain));
                  schedule.setPaymentDate(addDTO.getConfirmTime());
                  schedule.setPaymentStatus(1);
                  contractPaymentScheduleMapper.updateById(schedule);
                  //查询是否有当前逾期
                  CurrentOverdue currentOverdue = currentOverdueMapper.selectOne(Wrappers.<CurrentOverdue>lambdaQuery().eq(CurrentOverdue::getScheduleId,schedule.getId())
                        .eq(CurrentOverdue::getContractId,schedule.getContractId()).last("limit 1"));
                  if (ObjUtil.isNotNull(currentOverdue)){
                     //新增逾期历史
                     HistoryOverdue historyOverdue = BeanUtil.copyProperties(currentOverdue,HistoryOverdue.class,"id");
                     historyOverdue.setReceivableAmount(lastRemain);
                     historyOverdue.setPaymentTime(addDTO.getConfirmTime());
                     historyOverdue.setCompId(schedule.getCompId());
                     historyOverdueMapper.insert(historyOverdue);
                     //查询历史已付逾期金额
                     List<HistoryOverdue> historyOverdueList = historyOverdueMapper.selectList(Wrappers.<HistoryOverdue>lambdaQuery().eq(HistoryOverdue::getScheduleId,currentOverdue.getScheduleId()));
                     BigDecimal hisTotal = historyOverdueList.stream().map(item->item.getReceivableAmount()).reduce(BigDecimal.ZERO,BigDecimal::add);
                     //更新当前逾期
                     currentOverdue.setReceivableAmount(schedule.getPlannedAmount().subtract(hisTotal));
                     currentOverdueMapper.updateById(currentOverdue);
                  }
                  break;
               }
            }