|
|
@@ -283,17 +283,13 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
List<FinVouchersItems> finVouchersItemsList = finVouchersItemsService.list(new LambdaQueryWrapper<FinVouchersItems>()
|
|
|
.apply("find_in_set(pid,'" + ids + "')"));
|
|
|
List<Accounts> accountsList = new ArrayList<>();
|
|
|
- List<FinGenleg> finGenlegList = new ArrayList<>();
|
|
|
- List<FinGenlegCalc> finGenlegCalcList = new ArrayList<>();
|
|
|
+ List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<>());
|
|
|
+ List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<>());
|
|
|
if (ObjectUtils.isNotNull(finVouchersItemsList)) {
|
|
|
List<Long> accId = finVouchersItemsList.stream().map(FinVouchersItems::getAccountId).collect(Collectors.toList());
|
|
|
if (!accId.isEmpty()) {
|
|
|
accountsList = accountsService.list(new LambdaQueryWrapper<Accounts>()
|
|
|
.in(Accounts::getId, accId));
|
|
|
- finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
- .in(FinGenleg::getAccId, accId));
|
|
|
- finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
- .in(FinGenlegCalc::getAccId, accId));
|
|
|
}
|
|
|
}
|
|
|
List<FinGenleg> finGenlegListNew = new ArrayList<>();
|
|
|
@@ -319,17 +315,89 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
if (ObjectUtils.isNotNull(finGenlegCalc)) {
|
|
|
finGenlegCalcListNew.add(finGenlegCalc);
|
|
|
}
|
|
|
+ FinGenlegCalc finalFinGenlegCalc = finGenlegCalc;
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegCalcList.stream().filter(e -> e.getAccId().equals(finalFinGenlegCalc.getParentId()) &&
|
|
|
+ e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ /*for (FinGenlegCalc genleg : finGenlegCalcList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().add(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().add(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().add(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().add(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finalFinGenlegCalc.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+ List<FinGenlegCalc> finGenlegs = new ArrayList<>();
|
|
|
+ finGenlegCalcList = genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
finGenleg = genlegAccountingFinGenleg(accounts, item, finGenleg);
|
|
|
if (ObjectUtils.isNotNull(finGenleg)) {
|
|
|
finGenlegListNew.add(finGenleg);
|
|
|
}
|
|
|
FinGenleg finalFinGenleg = finGenleg;
|
|
|
- FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getParentId().equals(finalFinGenleg.getAccId()) &&
|
|
|
+ FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finalFinGenleg.getParentId()) &&
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
+ /*for (FinGenleg genleg : finGenlegList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().add(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().add(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().add(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().add(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
List<FinGenleg> finGenlegs = new ArrayList<>();
|
|
|
- genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ finGenlegList = genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegListNew.addAll(finGenlegs);
|
|
|
}
|
|
|
@@ -375,8 +443,12 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
detail.setPostTime(new Date());
|
|
|
finVouchersListNew.add(detail);
|
|
|
}
|
|
|
- finGenlegService.saveOrUpdateBatch(finGenlegListNew);
|
|
|
- finGenlegCalcService.saveOrUpdateBatch(finGenlegCalcListNew);
|
|
|
+ if (!finGenlegListNew.isEmpty()) {
|
|
|
+ finGenlegService.saveOrUpdateBatch(finGenlegListNew);
|
|
|
+ }
|
|
|
+ if (!finGenlegCalcListNew.isEmpty()) {
|
|
|
+ finGenlegCalcService.saveOrUpdateBatch(finGenlegCalcListNew);
|
|
|
+ }
|
|
|
this.saveOrUpdateBatch(finVouchersListNew);
|
|
|
finVouchersItemsService.saveOrUpdateBatch(finVouchersItemsListNew);
|
|
|
feeCenterService.saveOrUpdateBatch(feeCenterListNew);
|
|
|
@@ -384,7 +456,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
return R.data("");
|
|
|
}
|
|
|
|
|
|
- private void genlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
+ private List<FinGenleg> genlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
//上期本币余额(CNY)
|
|
|
BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
//本期本币借方金额(CNY)
|
|
|
@@ -409,31 +481,158 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
|
|
|
//本期外币余额
|
|
|
BigDecimal amountUsdBlc;
|
|
|
- if ("CNY".equals(item.getCurCode())) {
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDr = amountDr.add(item.getAmountDr());
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDr = amountYearDr.add(item.getAmountDr());
|
|
|
- } else {
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCr = amountCr.add(item.getAmountCr());
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCr = amountYearCr.add(item.getAmountCr());
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDr = amountDr.add(item.getAmountDr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDr = amountYearDr.add(item.getAmountDr());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCr = amountCr.add(item.getAmountCr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCr = amountYearCr.add(item.getAmountCr());
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDrUsd = amountDrUsd.add(item.getAmountDrUsd());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDrUsd = amountYearDrUsd.add(item.getAmountDrUsd());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCrUsd = amountCrUsd.add(item.getAmountCrUsd());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCrUsd = amountYearCrUsd.add(item.getAmountCrUsd());
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
|
|
|
+ amountUsdBlc = amountLastBlcUsd.add(amountDrUsd).subtract(amountCrUsd);
|
|
|
+ } else {
|
|
|
+ amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
|
|
|
+ amountUsdBlc = amountLastBlcUsd.subtract(amountDrUsd).add(amountCrUsd);
|
|
|
+ }
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ finGenleg.setAmountDr(amountDr);
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ finGenleg.setAmountCr(amountCr);
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ finGenleg.setAmountYearDr(amountYearDr);
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ finGenleg.setAmountYearCr(amountYearCr);
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ finGenleg.setAmountBlc(amountBlc);
|
|
|
+ //本期外币借方金额
|
|
|
+ finGenleg.setAmountDrUsd(amountDrUsd);
|
|
|
+ //本期外币贷方金额
|
|
|
+ finGenleg.setAmountCrUsd(amountCrUsd);
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ finGenleg.setAmountYearDrUsd(amountYearDrUsd);
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ finGenleg.setAmountYearCrUsd(amountYearCrUsd);
|
|
|
+ //本期外币余额
|
|
|
+ finGenleg.setAmountUsdBlc(amountUsdBlc);
|
|
|
+ finGenlegs.add(finGenleg);
|
|
|
+ FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finGenleg.getParentId()) &&
|
|
|
+ e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ for (FinGenleg genleg : finGenlegList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().add(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().add(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().add(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().add(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
} else {
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDrUsd = amountDrUsd.add(item.getAmountDrUsd());
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDrUsd = amountYearDrUsd.add(item.getAmountDrUsd());
|
|
|
- } else {
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCrUsd = amountCrUsd.add(item.getAmountCrUsd());
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCrUsd = amountYearCrUsd.add(item.getAmountCrUsd());
|
|
|
+ for (FinGenleg genleg : finGenlegList) {
|
|
|
+ if (finGenleg.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(finGenleg.getAmountDr());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(finGenleg.getAmountCr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(finGenleg.getAmountYearDr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(finGenleg.getAmountYearCr());
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(finGenleg.getAmountDrUsd());
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(finGenleg.getAmountCrUsd());
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(finGenleg.getAmountYearDrUsd());
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(finGenleg.getAmountYearCrUsd());
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(finGenleg.getAmountBlc());
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(finGenleg.getAmountUsdBlc());
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ return finGenlegList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<FinGenlegCalc> genlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
|
|
|
+ //上期本币余额(CNY)
|
|
|
+ BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ BigDecimal amountDr = finGenleg.getAmountDr();
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ BigDecimal amountCr = finGenleg.getAmountCr();
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ BigDecimal amountYearDr = finGenleg.getAmountYearDr();
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ BigDecimal amountYearCr = finGenleg.getAmountYearCr();
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ BigDecimal amountBlc;
|
|
|
+ //上期外币余额(USD)
|
|
|
+ BigDecimal amountLastBlcUsd = finGenleg.getAmountLastBlcUsd();
|
|
|
+ //本期外币借方金额
|
|
|
+ BigDecimal amountDrUsd = finGenleg.getAmountDrUsd();
|
|
|
+ //本期外币贷方金额
|
|
|
+ BigDecimal amountCrUsd = finGenleg.getAmountCrUsd();
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ BigDecimal amountYearDrUsd = finGenleg.getAmountYearDrUsd();
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
|
|
|
+ //本期外币余额
|
|
|
+ BigDecimal amountUsdBlc;
|
|
|
+
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDr = amountDr.add(item.getAmountDr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDr = amountYearDr.add(item.getAmountDr());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCr = amountCr.add(item.getAmountCr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCr = amountYearCr.add(item.getAmountCr());
|
|
|
+
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDrUsd = amountDrUsd.add(item.getAmountDrUsd());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDrUsd = amountYearDrUsd.add(item.getAmountDrUsd());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCrUsd = amountCrUsd.add(item.getAmountCrUsd());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCrUsd = amountYearCrUsd.add(item.getAmountCrUsd());
|
|
|
if ("D".equals(finGenleg.getDc())) {
|
|
|
amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
|
|
|
amountUsdBlc = amountLastBlcUsd.add(amountDrUsd).subtract(amountCrUsd);
|
|
|
@@ -462,14 +661,72 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
//本期外币余额
|
|
|
finGenleg.setAmountUsdBlc(amountUsdBlc);
|
|
|
finGenlegs.add(finGenleg);
|
|
|
- FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getParentId().equals(finGenleg.getAccId()) &&
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finGenleg.getParentId()) &&
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
- genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ for (FinGenlegCalc genleg : finGenlegList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().add(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().add(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().add(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().add(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().add(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().add(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ genlegCalcAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ } else {
|
|
|
+ for (FinGenlegCalc genleg : finGenlegList) {
|
|
|
+ if (finGenleg.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(finGenleg.getAmountDr());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(finGenleg.getAmountCr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(finGenleg.getAmountYearDr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(finGenleg.getAmountYearCr());
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(finGenleg.getAmountDrUsd());
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(finGenleg.getAmountCrUsd());
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(finGenleg.getAmountYearDrUsd());
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(finGenleg.getAmountYearCrUsd());
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(finGenleg.getAmountBlc());
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(finGenleg.getAmountUsdBlc());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ return finGenlegList;
|
|
|
}
|
|
|
|
|
|
- private void revokeGenlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
+ private List<FinGenleg> revokeGenlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
//上期本币余额(CNY)
|
|
|
BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
//本期本币借方金额(CNY)
|
|
|
@@ -494,31 +751,161 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
|
|
|
//本期外币余额
|
|
|
BigDecimal amountUsdBlc;
|
|
|
- if ("CNY".equals(item.getCurCode())) {
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDr = amountDr.subtract(item.getAmountDr());
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDr = amountYearDr.subtract(item.getAmountDr());
|
|
|
- } else {
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCr = amountCr.subtract(item.getAmountCr());
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCr = amountYearCr.subtract(item.getAmountCr());
|
|
|
+
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDr = amountDr.subtract(item.getAmountDr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDr = amountYearDr.subtract(item.getAmountDr());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCr = amountCr.subtract(item.getAmountCr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCr = amountYearCr.subtract(item.getAmountCr());
|
|
|
+
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDrUsd = amountDrUsd.subtract(item.getAmountDrUsd());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDrUsd = amountYearDrUsd.subtract(item.getAmountDrUsd());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCrUsd = amountCrUsd.subtract(item.getAmountCrUsd());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCrUsd = amountYearCrUsd.subtract(item.getAmountCrUsd());
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
|
|
|
+ amountUsdBlc = amountLastBlcUsd.subtract(amountDrUsd).add(amountCrUsd);
|
|
|
+ } else {
|
|
|
+ amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
|
|
|
+ amountUsdBlc = amountLastBlcUsd.add(amountDrUsd).subtract(amountCrUsd);
|
|
|
+ }
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ finGenleg.setAmountDr(amountDr);
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ finGenleg.setAmountCr(amountCr);
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ finGenleg.setAmountYearDr(amountYearDr);
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ finGenleg.setAmountYearCr(amountYearCr);
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ finGenleg.setAmountBlc(amountBlc);
|
|
|
+ //本期外币借方金额
|
|
|
+ finGenleg.setAmountDrUsd(amountDrUsd);
|
|
|
+ //本期外币贷方金额
|
|
|
+ finGenleg.setAmountCrUsd(amountCrUsd);
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ finGenleg.setAmountYearDrUsd(amountYearDrUsd);
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ finGenleg.setAmountYearCrUsd(amountYearCrUsd);
|
|
|
+ //本期外币余额
|
|
|
+ finGenleg.setAmountUsdBlc(amountUsdBlc);
|
|
|
+ finGenlegs.add(finGenleg);
|
|
|
+ FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finGenleg.getParentId()) &&
|
|
|
+ e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ for (FinGenleg genleg : finGenlegList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
} else {
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDrUsd = amountDrUsd.subtract(item.getAmountDrUsd());
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDrUsd = amountYearDrUsd.subtract(item.getAmountDrUsd());
|
|
|
- } else {
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCrUsd = amountCrUsd.subtract(item.getAmountCrUsd());
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCrUsd = amountYearCrUsd.subtract(item.getAmountCrUsd());
|
|
|
+ for (FinGenleg genleg : finGenlegList) {
|
|
|
+ if (finGenleg.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(finGenleg.getAmountDr());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(finGenleg.getAmountCr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(finGenleg.getAmountYearDr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(finGenleg.getAmountYearCr());
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(finGenleg.getAmountDrUsd());
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(finGenleg.getAmountCrUsd());
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(finGenleg.getAmountYearDrUsd());
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(finGenleg.getAmountYearCrUsd());
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(finGenleg.getAmountBlc());
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(finGenleg.getAmountUsdBlc());
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ return finGenlegList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<FinGenlegCalc> revokeGenlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
|
|
|
+ //上期本币余额(CNY)
|
|
|
+ BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ BigDecimal amountDr = finGenleg.getAmountDr();
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ BigDecimal amountCr = finGenleg.getAmountCr();
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ BigDecimal amountYearDr = finGenleg.getAmountYearDr();
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ BigDecimal amountYearCr = finGenleg.getAmountYearCr();
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ BigDecimal amountBlc;
|
|
|
+ //上期外币余额(USD)
|
|
|
+ BigDecimal amountLastBlcUsd = finGenleg.getAmountLastBlcUsd();
|
|
|
+ //本期外币借方金额
|
|
|
+ BigDecimal amountDrUsd = finGenleg.getAmountDrUsd();
|
|
|
+ //本期外币贷方金额
|
|
|
+ BigDecimal amountCrUsd = finGenleg.getAmountCrUsd();
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ BigDecimal amountYearDrUsd = finGenleg.getAmountYearDrUsd();
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
|
|
|
+ //本期外币余额
|
|
|
+ BigDecimal amountUsdBlc;
|
|
|
+
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDr = amountDr.subtract(item.getAmountDr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDr = amountYearDr.subtract(item.getAmountDr());
|
|
|
+
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCr = amountCr.subtract(item.getAmountCr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCr = amountYearCr.subtract(item.getAmountCr());
|
|
|
+
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ amountDrUsd = amountDrUsd.subtract(item.getAmountDrUsd());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ amountYearDrUsd = amountYearDrUsd.subtract(item.getAmountDrUsd());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ amountCrUsd = amountCrUsd.subtract(item.getAmountCrUsd());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ amountYearCrUsd = amountYearCrUsd.subtract(item.getAmountCrUsd());
|
|
|
if ("D".equals(finGenleg.getDc())) {
|
|
|
amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
|
|
|
amountUsdBlc = amountLastBlcUsd.subtract(amountDrUsd).add(amountCrUsd);
|
|
|
@@ -547,11 +934,69 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
//本期外币余额
|
|
|
finGenleg.setAmountUsdBlc(amountUsdBlc);
|
|
|
finGenlegs.add(finGenleg);
|
|
|
- FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getParentId().equals(finGenleg.getAccId()) &&
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finGenleg.getParentId()) &&
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
- genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ for (FinGenlegCalc genleg : finGenlegList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ revokeGenlegCalcAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ } else {
|
|
|
+ for (FinGenlegCalc genleg : finGenlegList) {
|
|
|
+ if (finGenleg.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(finGenleg.getAmountDr());
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(finGenleg.getAmountCr());
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(finGenleg.getAmountYearDr());
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(finGenleg.getAmountYearCr());
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(finGenleg.getAmountDrUsd());
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(finGenleg.getAmountCrUsd());
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(finGenleg.getAmountYearDrUsd());
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(finGenleg.getAmountYearCrUsd());
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(finGenleg.getAmountBlc());
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(finGenleg.getAmountUsdBlc());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ return finGenlegList;
|
|
|
}
|
|
|
|
|
|
private FinGenleg genlegAccountingFinGenleg(Accounts accounts, FinVouchersItems item, FinGenleg finGenleg) {
|
|
|
@@ -664,18 +1109,10 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
amountDrUsd = amountDrUsd.add(item.getAmountCrUsd());
|
|
|
//本年本币借方金额(CNY)
|
|
|
amountYearDrUsd = amountYearDrUsd.add(item.getAmountCrUsd());
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDr = amountDr.add(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDr = amountYearDr.add(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
//本期本币贷方金额(CNY)
|
|
|
amountCrUsd = amountCrUsd.add(item.getAmountDrUsd());
|
|
|
//本年本币贷方金额(CNY)
|
|
|
amountYearCrUsd = amountYearCrUsd.add(item.getAmountDrUsd());
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCr = amountCr.add(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCr = amountYearCr.add(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
} else {
|
|
|
//本期本币借方金额(CNY)
|
|
|
amountDr = amountDr.add(item.getAmountDr());
|
|
|
@@ -689,18 +1126,10 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
amountDrUsd = amountDrUsd.add(item.getAmountDrUsd());
|
|
|
//本年本币借方金额(CNY)
|
|
|
amountYearDrUsd = amountYearDrUsd.add(item.getAmountDrUsd());
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDr = amountDr.add(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDr = amountYearDr.add(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
//本期本币贷方金额(CNY)
|
|
|
amountCrUsd = amountCrUsd.add(item.getAmountCrUsd());
|
|
|
//本年本币贷方金额(CNY)
|
|
|
amountYearCrUsd = amountYearCrUsd.add(item.getAmountCrUsd());
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCr = amountCr.add(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCr = amountYearCr.add(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
}
|
|
|
if ("D".equals(finGenleg.getDc())) {
|
|
|
amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
|
|
|
@@ -847,8 +1276,6 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
amountYearCrCalc = amountYearCrCalc.add(item.getAmountCr());
|
|
|
//本期本币借方金额(USD)
|
|
|
amountDrUsdCalc = amountDrUsdCalc.add(item.getAmountDrUsd());
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDrCalc = amountDrCalc.add(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
//本年本币借方金额(USD)
|
|
|
amountYearDrUsdCalc = amountYearDrUsdCalc.add(item.getAmountDrUsd());
|
|
|
//本年本币借方金额(CNY)
|
|
|
@@ -942,18 +1369,10 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
amountDrUsd = amountDrUsd.subtract(item.getAmountCrUsd());
|
|
|
//本年本币借方金额(CNY)
|
|
|
amountYearDrUsd = amountYearDrUsd.subtract(item.getAmountCrUsd());
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDr = amountDr.subtract(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDr = amountYearDr.subtract(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
//本期本币贷方金额(CNY)
|
|
|
amountCrUsd = amountCrUsd.subtract(item.getAmountDrUsd());
|
|
|
//本年本币贷方金额(CNY)
|
|
|
amountYearCrUsd = amountYearCrUsd.subtract(item.getAmountDrUsd());
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCr = amountCr.subtract(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCr = amountYearCr.subtract(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
} else {
|
|
|
//本期本币借方金额(CNY)
|
|
|
amountDr = amountDr.subtract(item.getAmountDr());
|
|
|
@@ -967,18 +1386,10 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
amountDrUsd = amountDrUsd.subtract(item.getAmountDrUsd());
|
|
|
//本年本币借方金额(CNY)
|
|
|
amountYearDrUsd = amountYearDrUsd.subtract(item.getAmountDrUsd());
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDr = amountDr.subtract(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDr = amountYearDr.subtract(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
//本期本币贷方金额(CNY)
|
|
|
amountCrUsd = amountCrUsd.subtract(item.getAmountCrUsd());
|
|
|
//本年本币贷方金额(CNY)
|
|
|
amountYearCrUsd = amountYearCrUsd.subtract(item.getAmountCrUsd());
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCr = amountCr.subtract(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCr = amountYearCr.subtract(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
}
|
|
|
if ("D".equals(finGenleg.getDc())) {
|
|
|
amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
|
|
|
@@ -1053,18 +1464,10 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
amountDrUsdCalc = amountDrUsdCalc.subtract(item.getAmountDrUsd());
|
|
|
//本年本币借方金额(CNY)
|
|
|
amountYearDrUsdCalc = amountYearDrUsdCalc.subtract(item.getAmountDrUsd());
|
|
|
- //本期本币借方金额(CNY)
|
|
|
- amountDrCalc = amountDrCalc.subtract(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币借方金额(CNY)
|
|
|
- amountYearDrCalc = amountYearDrCalc.subtract(item.getAmountDrUsd().multiply(item.getExrate()));
|
|
|
//本期本币贷方金额(CNY)
|
|
|
amountCrUsdCalc = amountCrUsdCalc.subtract(item.getAmountCrUsd());
|
|
|
//本年本币贷方金额(CNY)
|
|
|
amountYearCrUsdCalc = amountYearCrUsdCalc.subtract(item.getAmountCrUsd());
|
|
|
- //本期本币贷方金额(CNY)
|
|
|
- amountCrCalc = amountCrCalc.subtract(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
- //本年本币贷方金额(CNY)
|
|
|
- amountYearCrCalc = amountYearCrCalc.subtract(item.getAmountCrUsd().multiply(item.getExrate()));
|
|
|
if ("D".equals(accounts.getDc())) {
|
|
|
amountBlcCalc = amountLastBlcCalc.subtract(amountDrCalc).add(amountCrCalc);
|
|
|
amountUsdBlcCalc = amountLastBlcUsdCalc.subtract(amountDrUsdCalc).add(amountCrUsdCalc);
|
|
|
@@ -1141,17 +1544,13 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
List<FinVouchersItems> finVouchersItemsList = finVouchersItemsService.list(new LambdaQueryWrapper<FinVouchersItems>()
|
|
|
.apply("find_in_set(pid,'" + ids + "')"));
|
|
|
List<Accounts> accountsList = new ArrayList<>();
|
|
|
- List<FinGenleg> finGenlegList = new ArrayList<>();
|
|
|
- List<FinGenlegCalc> finGenlegCalcList = new ArrayList<>();
|
|
|
+ List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<>());
|
|
|
+ List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<>());
|
|
|
if (ObjectUtils.isNotNull(finVouchersItemsList)) {
|
|
|
List<Long> accId = finVouchersItemsList.stream().map(FinVouchersItems::getAccountId).collect(Collectors.toList());
|
|
|
if (!accId.isEmpty()) {
|
|
|
accountsList = accountsService.list(new LambdaQueryWrapper<Accounts>()
|
|
|
.in(Accounts::getId, accId));
|
|
|
- finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
- .in(FinGenleg::getAccId, accId));
|
|
|
- finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
- .in(FinGenlegCalc::getAccId, accId));
|
|
|
}
|
|
|
}
|
|
|
List<FinGenleg> finGenlegListNew = new ArrayList<>();
|
|
|
@@ -1177,17 +1576,89 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
if (ObjectUtils.isNotNull(finGenlegCalc)) {
|
|
|
finGenlegCalcListNew.add(finGenlegCalc);
|
|
|
}
|
|
|
+ FinGenlegCalc finalFinGenlegCalc = finGenlegCalc;
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegCalcList.stream().filter(e -> e.getAccId().equals(finalFinGenlegCalc.getParentId()) &&
|
|
|
+ e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ /*for (FinGenlegCalc genleg : finGenlegCalcList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finalFinGenlegCalc.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+ List<FinGenlegCalc> finGenlegs = new ArrayList<>();
|
|
|
+ finGenlegCalcList = revokeGenlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
finGenleg = revokeGenlegAccountingFinGenleg(accounts, item, finGenleg);
|
|
|
if (ObjectUtils.isNotNull(finGenleg)) {
|
|
|
finGenlegListNew.add(finGenleg);
|
|
|
}
|
|
|
FinGenleg finalFinGenleg = finGenleg;
|
|
|
- FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getParentId().equals(finalFinGenleg.getAccId()) &&
|
|
|
+ FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finalFinGenleg.getParentId()) &&
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
+ /*for (FinGenleg genleg : finGenlegList) {
|
|
|
+ if (finGenlegP.getId().equals(genleg.getId())) {
|
|
|
+ //本期本币借方金额(CNY)
|
|
|
+ genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
|
|
|
+ //本期本币贷方金额(CNY)
|
|
|
+ genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
|
|
|
+ //本年本币借方金额(CNY)
|
|
|
+ genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
|
|
|
+ //本年本币贷方金额(CNY)
|
|
|
+ genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
|
|
|
+ //本期外币借方金额
|
|
|
+ genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本期外币贷方金额
|
|
|
+ genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ //本年外币借方金额(USD)
|
|
|
+ genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
|
|
|
+ //本年外币贷方金额(USD)
|
|
|
+ genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
|
|
|
+ if ("D".equals(finGenleg.getDc())) {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
|
|
|
+ } else {
|
|
|
+ //本期本币余额(CNY)
|
|
|
+ genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
|
|
|
+ //本期外币余额
|
|
|
+ genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
List<FinGenleg> finGenlegs = new ArrayList<>();
|
|
|
- revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ finGenlegList = revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegListNew.addAll(finGenlegs);
|
|
|
}
|
|
|
@@ -1230,8 +1701,12 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
detail.setVoucherStatus(0);
|
|
|
finVouchersListNew.add(detail);
|
|
|
}
|
|
|
- finGenlegService.saveOrUpdateBatch(finGenlegListNew);
|
|
|
- finGenlegCalcService.saveOrUpdateBatch(finGenlegCalcListNew);
|
|
|
+ if (!finGenlegListNew.isEmpty()) {
|
|
|
+ finGenlegService.saveOrUpdateBatch(finGenlegListNew);
|
|
|
+ }
|
|
|
+ if (!finGenlegCalcListNew.isEmpty()) {
|
|
|
+ finGenlegCalcService.saveOrUpdateBatch(finGenlegCalcListNew);
|
|
|
+ }
|
|
|
this.saveOrUpdateBatch(finVouchersListNew);
|
|
|
finVouchersItemsService.saveOrUpdateBatch(finVouchersItemsListNew);
|
|
|
feeCenterService.saveOrUpdateBatch(feeCenterListNew);
|