@@ -369,8 +369,10 @@ private void doDispersedFeeDetailNormalMonth(FeeDetailDto feeDetailDto, FeeDto f
369
369
}
370
370
double month = DateUtil .dayCompare (feeDetailDto .getStartTime (), feeDetailDto .getEndTime (), true );
371
371
372
- BigDecimal receivableAmount = new BigDecimal (feePrice + "" );
373
- BigDecimal receivedAmount = new BigDecimal (Double .parseDouble (feeDetailDto .getReceivedAmount ()));
372
+ BigDecimal receivableAmount = new BigDecimal (feeDetailDto .getReceivableAmount ());
373
+ BigDecimal receivedAmount = new BigDecimal (feeDetailDto .getReceivedAmount ());
374
+ BigDecimal monthReceivableAmount = receivableAmount .divide (new BigDecimal (month + "" ), 8 , BigDecimal .ROUND_HALF_UP );
375
+ BigDecimal monthReceivedAmount = receivedAmount .divide (new BigDecimal (month + "" ), 8 , BigDecimal .ROUND_HALF_UP );
374
376
375
377
BigDecimal dayReceivableAmount = null ;
376
378
BigDecimal dayReceivedAmount = null ;
@@ -394,20 +396,28 @@ private void doDispersedFeeDetailNormalMonth(FeeDetailDto feeDetailDto, FeeDto f
394
396
Calendar calendar = Calendar .getInstance ();
395
397
calendar .setTime (startMonthDayTime );
396
398
curMonthMaxDay = calendar .getActualMaximum (Calendar .DAY_OF_MONTH );
397
- dayReceivableAmount = receivableAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
398
- dayReceivedAmount = receivedAmount .divide (new BigDecimal (month + "" ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
399
- dayReceivedAmount = dayReceivedAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
399
+ dayReceivableAmount = monthReceivableAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
400
+ dayReceivedAmount = monthReceivedAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
400
401
// todo 计算 应收
401
402
curMonthReceivableAmount = new BigDecimal (curDay ).multiply (dayReceivableAmount ).setScale (4 , BigDecimal .ROUND_HALF_UP );
402
403
// todo 计算 实收
403
404
curMonthReceivedAmount = new BigDecimal (curDay ).multiply (dayReceivedAmount ).setScale (4 , BigDecimal .ROUND_HALF_UP );
405
+ if (curMonthReceivableAmount .doubleValue () > receivableAmount .doubleValue ()){
406
+ curMonthReceivableAmount = receivableAmount ;
407
+ }
408
+ if (curMonthReceivedAmount .doubleValue () > receivedAmount .doubleValue ()){
409
+ curMonthReceivedAmount = receivedAmount ;
410
+ }
404
411
// todo 保存数据到pay_fee_detail_month
405
412
toSavePayFeeDetailMonth (curMonthReceivableAmount .doubleValue (), curMonthReceivedAmount .doubleValue (), feeDetailDto , feeDto , payFeeMonthOwnerDto , payFeeDetailMonthPos , startMonthDayTime , endTime );
406
413
407
414
// todo 将startTime 修改为 下月1日时间
408
415
startMonthDayTime = firstMonthDayTime ;
409
416
firstMonthDayCal .add (Calendar .MONTH , 1 );
410
417
firstMonthDayTime = firstMonthDayCal .getTime ();
418
+
419
+ receivableAmount = receivableAmount .subtract (curMonthReceivableAmount );
420
+ receivedAmount = receivedAmount .subtract (curMonthReceivedAmount );
411
421
}
412
422
413
423
//todo 最后处理 最后 startMonthDayTime 到endTime 的
@@ -421,15 +431,21 @@ private void doDispersedFeeDetailNormalMonth(FeeDetailDto feeDetailDto, FeeDto f
421
431
Calendar calendar = Calendar .getInstance ();
422
432
calendar .setTime (startMonthDayTime );
423
433
curMonthMaxDay = calendar .getActualMaximum (Calendar .DAY_OF_MONTH );
424
- dayReceivableAmount = receivableAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
425
- dayReceivedAmount = receivedAmount .divide (new BigDecimal (month + "" ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
426
- dayReceivedAmount = dayReceivedAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
434
+ dayReceivableAmount = monthReceivableAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
435
+ dayReceivedAmount = monthReceivedAmount .divide (new BigDecimal (curMonthMaxDay ), 8 , BigDecimal .ROUND_HALF_UP );// 日 实收
427
436
428
437
// todo 计算 应收
429
438
curMonthReceivableAmount = new BigDecimal (curDay ).multiply (dayReceivableAmount ).setScale (4 , BigDecimal .ROUND_HALF_UP );
430
439
// todo 计算 实收
431
440
curMonthReceivedAmount = new BigDecimal (curDay ).multiply (dayReceivedAmount ).setScale (4 , BigDecimal .ROUND_HALF_UP );
432
441
442
+ if (curMonthReceivableAmount .doubleValue () > receivableAmount .doubleValue ()){
443
+ curMonthReceivableAmount = receivableAmount ;
444
+ }
445
+ if (curMonthReceivedAmount .doubleValue () > receivedAmount .doubleValue ()){
446
+ curMonthReceivedAmount = receivedAmount ;
447
+ }
448
+
433
449
// todo 保存数据到pay_fee_detail_month
434
450
toSavePayFeeDetailMonth (curMonthReceivableAmount .doubleValue (), curMonthReceivedAmount .doubleValue (), feeDetailDto , feeDto , payFeeMonthOwnerDto , payFeeDetailMonthPos , startMonthDayTime , endTime );
435
451
payFeeDetailMonthInnerServiceSMOImpl .savePayFeeDetailMonths (payFeeDetailMonthPos );
0 commit comments