Forráskód Böngészése

分账逻辑优化

liuj 5 hónapja%!(EXTRA string=óta)
szülő
commit
7212cdd38b

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

@@ -1368,11 +1368,14 @@ public class LedgerManagementServiceImpl implements LedgerManagementService {
                                 }
                                 if (surplusInterest.compareTo(BigDecimal.ZERO) < 0) {
                                     refundInterest = surplusInterest.negate();
+
+                                    ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(ledgerDate, surplusInterest, BigDecimal.ZERO,
+                                            IncomeExpenditureTypeDict.ChildEnum.INTEREST.getCode(), goodsAssignVo, 0));
                                 }
-                                if (surplusInterest.compareTo(BigDecimal.ZERO) != 0) {
+                                if (surplusInterest.compareTo(BigDecimal.ZERO) > 0) {
                                     PaymentCollectionPlanFactoring lastInterestFactoring = getLastPrincipalFactoring(allPlanFactoringList, interestDict, lastPlanDate);
                                     if (lastInterestFactoring == null) {
-                                        ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(lastPlanDate, surplusInterest, BigDecimal.ZERO,
+                                        ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(ledgerDate, surplusInterest, BigDecimal.ZERO,
                                                 IncomeExpenditureTypeDict.ChildEnum.INTEREST.getCode(), goodsAssignVo, 0));
                                     } else {
                                         lastInterestFactoring.setAmount(surplusInterest);
@@ -1393,11 +1396,14 @@ public class LedgerManagementServiceImpl implements LedgerManagementService {
                                 }
                                 if (surplusManagement.compareTo(BigDecimal.ZERO) < 0) {
                                     refundManagement = surplusManagement.negate();
+
+                                    ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(ledgerDate, surplusManagement, BigDecimal.ZERO,
+                                            IncomeExpenditureTypeDict.ChildEnum.MANAGEMENT_FEE.getCode(), goodsAssignVo, 0));
                                 }
-                                if (surplusManagement.compareTo(BigDecimal.ZERO) != 0) {
+                                if (surplusManagement.compareTo(BigDecimal.ZERO) > 0) {
                                     PaymentCollectionPlanFactoring lastManagementFactoring = getLastPrincipalFactoring(allPlanFactoringList, managementFeeDict, lastPlanDate);
                                     if (lastManagementFactoring == null) {
-                                        ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(lastPlanDate, surplusManagement, BigDecimal.ZERO,
+                                        ledgerPlanFactoringAssignList.add(addPlanFactoringInsertAssign(ledgerDate, surplusManagement, BigDecimal.ZERO,
                                                 IncomeExpenditureTypeDict.ChildEnum.MANAGEMENT_FEE.getCode(), goodsAssignVo, 0));
                                     } else {
                                         lastManagementFactoring.setAmount(surplusManagement);