Bläddra i källkod

分账逻辑优化

liuj 5 månader sedan
förälder
incheckning
4aafb92fcb

+ 4 - 4
src/main/java/com/sunxung/factoring/service/ledger/impl/LedgerManagementServiceImpl.java

@@ -1209,6 +1209,8 @@ public class LedgerManagementServiceImpl implements LedgerManagementService {
                                 //说明管理费还需要补
                                 BigDecimal toAssignManagement = refundManagement.negate();
                                 if (assignAmount.compareTo(BigDecimal.ZERO) > 0) {
+                                    //这种场景可能存在未分配的管理费,要删除分账日期之前的状态为计划中的数据
+                                    deleteUnAssignList(managementFeeFactoringList, ledgerPlanFactoringAssignList, goodsAssignVo, ledgerDate);
                                     //判断是否需要分配
                                     if (goodsAssignVo.getHasAssignInterest()) {
                                         if (assignAmount.compareTo(toAssignManagement) >= 0) {
@@ -1225,8 +1227,6 @@ public class LedgerManagementServiceImpl implements LedgerManagementService {
                                             assignAmount = BigDecimal.ZERO;
                                         }
                                     } else {
-                                        //这种场景可能存在未分配的管理费,要删除分账日期之前的状态为计划中的数据
-                                        deleteUnAssignList(managementFeeFactoringList, ledgerPlanFactoringAssignList, goodsAssignVo, ledgerDate);
                                         //如果本次选择不分管理费
                                         ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(ledgerDate, toAssignManagement, BigDecimal.ZERO,
                                                 IncomeExpenditureTypeDict.ChildEnum.MANAGEMENT_FEE.getCode(), goodsAssignVo, 0));
@@ -1254,6 +1254,8 @@ public class LedgerManagementServiceImpl implements LedgerManagementService {
                                 //说明利息还需要补
                                 BigDecimal toAssignInterest = refundInterest.negate();
                                 if (assignAmount.compareTo(BigDecimal.ZERO) > 0) {
+                                    //这种场景可能存在未分配的管理费,要删除分账日期之前的状态为计划中的数据
+                                    deleteUnAssignList(interestFactoringList, ledgerPlanFactoringAssignList, goodsAssignVo, ledgerDate);
                                     //判断是否需要分配
                                     if (goodsAssignVo.getHasAssignInterest()) {
                                         //如果需要分配利息
@@ -1271,8 +1273,6 @@ public class LedgerManagementServiceImpl implements LedgerManagementService {
                                             assignAmount = BigDecimal.ZERO;
                                         }
                                     } else {
-                                        //这种场景可能存在未分配的管理费,要删除分账日期之前的状态为计划中的数据
-                                        deleteUnAssignList(interestFactoringList, ledgerPlanFactoringAssignList, goodsAssignVo, ledgerDate);
                                         //如果不分配利息
                                         ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(ledgerDate, toAssignInterest, BigDecimal.ZERO,
                                                 IncomeExpenditureTypeDict.ChildEnum.INTEREST.getCode(), goodsAssignVo, 0));