| | |
| | | } |
| | | if (feeDto.getEndTime().getTime() < targetEndDate.getTime()) { |
| | | // 目标到期时间 - 到期时间 = 欠费月份 |
| | | oweMonth = DateUtil.dayCompare(feeDto.getEndTime(), targetEndDate); |
| | | oweMonth = DateUtil.dayCompare(feeDto.getEndTime(), targetEndDate,true); |
| | | |
| | | } |
| | | |
| | | String computingFormula = feeDto.getComputingFormula(); |
| | |
| | | } else { |
| | | endCalender.setTime(feeDto.getImportFeeEndTime()); |
| | | } |
| | | } else if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())) { |
| | | if (feeDto.getDeadlineTime() == null) { |
| | | throw new IllegalArgumentException("间接性费用未设置结束时间"); |
| | | } |
| | | if ((endCalender.getTime()).after(feeDto.getDeadlineTime())) { |
| | | endCalender.setTime(feeDto.getDeadlineTime()); |
| | | } |
| | | } else { |
| | | if ((endCalender.getTime()).after(feeDto.getConfigEndTime())) { |
| | | endCalender.setTime(feeDto.getConfigEndTime()); |
| | | Date deadLineTime = feeDto.getDeadlineTime(); |
| | | if (deadLineTime == null) { |
| | | deadLineTime = feeDto.getConfigEndTime(); |
| | | } |
| | | if ((endCalender.getTime()).after(deadLineTime)) { |
| | | endCalender.setTime(feeDto.getDeadlineTime()); |
| | | } else { |
| | | endCalender.add(Calendar.SECOND, -1); |
| | | } |
| | | } |
| | | |
| | |
| | | targetEndDate = getTargetEndTime((round + 1) * paymentCycle, startDate);//目标结束时间 |
| | | } |
| | | |
| | | //todo 减去一秒 |
| | | targetEndDate = DateUtil.getDateFromStringA(DateUtil.getPreSecTime(targetEndDate)); |
| | | |
| | | //todo 费用项的结束时间<缴费的结束时间 费用快结束了 取费用项的结束时间 |
| | | if (maxEndTime.getTime() < targetEndDate.getTime()) { |
| | | targetEndDate = maxEndTime; |
| | |
| | | endDate.add(Calendar.MONTH, intMonth.intValue()); |
| | | double doubleMonth = month - intMonth; |
| | | if (doubleMonth <= 0) { |
| | | endDate.add(Calendar.SECOND, -1); |
| | | return endDate.getTime(); |
| | | } |
| | | int futureDay = endDate.getActualMaximum(Calendar.DAY_OF_MONTH); |
| | | Double hour = doubleMonth * futureDay * 24; |
| | | endDate.add(Calendar.HOUR_OF_DAY, hour.intValue()); |
| | | endDate.add(Calendar.SECOND, -1); |
| | | return endDate.getTime(); |
| | | } |
| | | |