|
|
@@ -16,7 +16,6 @@
|
|
|
*/
|
|
|
package org.springblade.los.finance.vouchers.service.impl;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
@@ -38,7 +37,6 @@ import org.springblade.los.finance.fee.entity.FeeCenter;
|
|
|
import org.springblade.los.finance.fee.entity.FinAccBills;
|
|
|
import org.springblade.los.finance.fee.service.IFeeCenterService;
|
|
|
import org.springblade.los.finance.fee.service.IFinAccBillsService;
|
|
|
-import org.springblade.los.finance.genleg.dto.PeriodVouchersTemplate;
|
|
|
import org.springblade.los.finance.genleg.entity.FinGenleg;
|
|
|
import org.springblade.los.finance.genleg.entity.FinGenlegCalc;
|
|
|
import org.springblade.los.finance.genleg.entity.FinPeriod;
|
|
|
@@ -300,6 +298,100 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
}
|
|
|
List<FinGenleg> finGenlegListNew = new ArrayList<>();
|
|
|
List<FinGenlegCalc> finGenlegCalcListNew = new ArrayList<>();
|
|
|
+ /*for (FinVouchers detail : finVouchersList) {
|
|
|
+ if (ObjectUtils.isNotNull(finVouchersItemsList)) {
|
|
|
+ List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
|
|
|
+ //对账明细状态修改 已对账
|
|
|
+ for (FinVouchersItems item : finVouchersItems) {
|
|
|
+ Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
|
|
|
+ if (accounts != null) {
|
|
|
+ if (1 == accounts.getIsDept() || 1 == accounts.getIsCorp() || 1 == accounts.getIsEmpl()) {
|
|
|
+ FinGenlegCalc finGenlegCalc = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, item.getAccountId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ FinGenlegCalc finGenlegCalcNew = genlegAccountingFinGenlegCalc(accounts, item, finGenlegCalc);
|
|
|
+ if (ObjectUtils.isNotNull(finGenlegCalcNew)) {
|
|
|
+ finGenlegCalcListNew.add(finGenlegCalcNew);
|
|
|
+ }
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, finGenlegCalcNew.getParentId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ List<FinGenlegCalc> finGenlegs = new ArrayList<>();
|
|
|
+ genlegCalcAccountingForNew(accounts, item, finGenlegP, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FinGenleg finGenleg = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, item.getAccountId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ FinGenleg finGenlegNew = genlegAccountingFinGenleg(accounts, item, finGenleg);
|
|
|
+ if (ObjectUtils.isNotNull(finGenlegNew)) {
|
|
|
+ finGenlegListNew.add(finGenlegNew);
|
|
|
+ }
|
|
|
+ FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, finGenlegNew.getParentId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ List<FinGenleg> finGenlegs = new ArrayList<>();
|
|
|
+ genlegAccountingForNew(item, finGenlegP, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.setStatus(1);
|
|
|
+ item.setVoucherDate(detail.getVoucherDate());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ finVouchersItemsListNew.add(item);
|
|
|
+ }
|
|
|
+ //通过对账明细里账单id查询具体账单数据
|
|
|
+ List<String> billNos = finVouchersItems.stream().map(FinVouchersItems::getBillNo)
|
|
|
+ .filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<FinAccBills> finAccBillsList = finAccBillsService.list(new LambdaQueryWrapper<FinAccBills>()
|
|
|
+ .eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinAccBills::getIsDeleted, 0)
|
|
|
+ .in(FinAccBills::getBillNo, billNos));
|
|
|
+ //修改账单中对账状态
|
|
|
+ for (FinAccBills item : finAccBillsList) {
|
|
|
+ item.setVoucherBillId(detail.getId());
|
|
|
+ item.setVoucherBillNo(detail.getBillNo());
|
|
|
+ item.setVoucherNo(detail.getVoucherNo());
|
|
|
+ item.setVoucherDate(detail.getVoucherDate());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ finAccBillsListNew.add(item);
|
|
|
+ }
|
|
|
+ //通过账单id查询具体费用中心数据
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .in(FeeCenter::getAccBillNo, billNos)
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0));
|
|
|
+ List<FeeCenter> feeCenters = reconciliationFeeCenter(detail, feeCenterList, 1);
|
|
|
+ feeCenterListNew.addAll(feeCenters);
|
|
|
+ }
|
|
|
+ detail.setStatus(3);
|
|
|
+ detail.setVoucherStatus(1);
|
|
|
+ detail.setPostUserId(AuthUtil.getUserId());
|
|
|
+ detail.setPostUserName(AuthUtil.getUserName());
|
|
|
+ detail.setPostTime(new Date());
|
|
|
+ finVouchersListNew.add(detail);
|
|
|
+ }*/
|
|
|
for (FinVouchers detail : finVouchersList) {
|
|
|
if (ObjectUtils.isNotNull(finVouchersItemsList)) {
|
|
|
List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
|
|
|
@@ -326,7 +418,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
List<FinGenlegCalc> finGenlegs = new ArrayList<>();
|
|
|
- finGenlegCalcList = genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
|
|
|
+ genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
}
|
|
|
@@ -341,7 +433,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
List<FinGenleg> finGenlegs = new ArrayList<>();
|
|
|
- finGenlegList = genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegListNew.addAll(finGenlegs);
|
|
|
}
|
|
|
@@ -400,7 +492,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
return R.data("");
|
|
|
}
|
|
|
|
|
|
- private List<FinGenleg> genlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
+ private void genlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
//上期本币余额(CNY)
|
|
|
BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
//本期本币借方金额(CNY)
|
|
|
@@ -531,10 +623,87 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return finGenlegList;
|
|
|
}
|
|
|
|
|
|
- private List<FinGenlegCalc> genlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
|
|
|
+ private void genlegAccountingForNew(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> 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);
|
|
|
+ } 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 = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, finGenleg.getParentId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ genlegAccountingForNew(item, finGenlegP, finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void genlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
|
|
|
//上期本币余额(CNY)
|
|
|
BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
//本期本币借方金额(CNY)
|
|
|
@@ -667,10 +836,92 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return finGenlegList;
|
|
|
}
|
|
|
|
|
|
- private List<FinGenleg> revokeGenlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
+ private void genlegCalcAccountingForNew(Accounts accounts, FinVouchersItems item, FinGenlegCalc finGenleg, 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);
|
|
|
+ } 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);
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, finGenleg.getParentId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ genlegCalcAccountingForNew(accounts, item, finGenlegP, finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void revokeGenlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
|
|
|
//上期本币余额(CNY)
|
|
|
BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
//本期本币借方金额(CNY)
|
|
|
@@ -744,37 +995,6 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
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 {
|
|
|
for (FinGenleg genleg : finGenlegList) {
|
|
|
@@ -803,10 +1023,88 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return finGenlegList;
|
|
|
+ }
|
|
|
+ private void revokeGenlegAccountingForNew(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> 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);
|
|
|
+ } 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 = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, finGenleg.getParentId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ revokeGenlegAccountingForNew(item, finGenlegP, finGenlegs);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- private List<FinGenlegCalc> revokeGenlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
|
|
|
+ private void revokeGenlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
|
|
|
//上期本币余额(CNY)
|
|
|
BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
|
|
|
//本期本币借方金额(CNY)
|
|
|
@@ -881,37 +1179,6 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
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) {
|
|
|
- /*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) {
|
|
|
@@ -940,7 +1207,89 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return finGenlegList;
|
|
|
+ }
|
|
|
+ private void revokeGenlegCalcAccountingForNew(Accounts accounts, FinVouchersItems item, FinGenlegCalc finGenleg, 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);
|
|
|
+ } 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);
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, finGenleg.getParentId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ revokeGenlegCalcAccountingForNew(accounts,item, finGenlegP, finGenlegs);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private FinGenleg genlegAccountingFinGenleg(Accounts accounts, FinVouchersItems item, FinGenleg finGenleg) {
|
|
|
@@ -1493,6 +1842,97 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
}
|
|
|
List<FinGenleg> finGenlegListNew = new ArrayList<>();
|
|
|
List<FinGenlegCalc> finGenlegCalcListNew = new ArrayList<>();
|
|
|
+ /*for (FinVouchers detail : finVouchersList) {
|
|
|
+ if (ObjectUtils.isNotNull(finVouchersItemsList)) {
|
|
|
+ List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
|
|
|
+ //对账明细状态修改 已对账
|
|
|
+ for (FinVouchersItems item : finVouchersItems) {
|
|
|
+ Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
|
|
|
+ if (accounts != null) {
|
|
|
+ if (1 == accounts.getIsDept() || 1 == accounts.getIsCorp() || 1 == accounts.getIsEmpl()) {
|
|
|
+ FinGenlegCalc finGenlegCalc = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, item.getAccountId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ FinGenlegCalc finGenlegCalcNew = revokeGenlegAccountingFinGenlegCalc(accounts, item, finGenlegCalc);
|
|
|
+ if (ObjectUtils.isNotNull(finGenlegCalcNew)) {
|
|
|
+ finGenlegCalcListNew.add(finGenlegCalcNew);
|
|
|
+ }
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, finGenlegCalcNew.getParentId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ List<FinGenlegCalc> finGenlegs = new ArrayList<>();
|
|
|
+ revokeGenlegCalcAccountingForNew(accounts,item, finGenlegP, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FinGenleg finGenleg = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, item.getAccountId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ FinGenleg finGenlegNew = revokeGenlegAccountingFinGenleg(accounts, item, finGenleg);
|
|
|
+ if (ObjectUtils.isNotNull(finGenlegNew)) {
|
|
|
+ finGenlegListNew.add(finGenlegNew);
|
|
|
+ }
|
|
|
+ FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, finGenlegNew.getParentId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ List<FinGenleg> finGenlegs = new ArrayList<>();
|
|
|
+ revokeGenlegAccountingForNew(item, finGenlegP, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.setStatus(0);
|
|
|
+ item.setVoucherDate(detail.getVoucherDate());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ finVouchersItemsListNew.add(item);
|
|
|
+ }
|
|
|
+ //通过对账明细里账单id查询具体账单数据
|
|
|
+ List<String> billNos = finVouchersItems.stream().map(FinVouchersItems::getBillNo)
|
|
|
+ .filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<FinAccBills> finAccBillsList = finAccBillsService.list(new LambdaQueryWrapper<FinAccBills>()
|
|
|
+ .eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinAccBills::getIsDeleted, 0)
|
|
|
+ .in(FinAccBills::getBillNo, billNos));
|
|
|
+ //修改账单中对账状态
|
|
|
+ for (FinAccBills item : finAccBillsList) {
|
|
|
+ item.setVoucherBillId(0L);
|
|
|
+ item.setVoucherBillNo("");
|
|
|
+ item.setVoucherNo("");
|
|
|
+ item.setVoucherDate(null);
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ finAccBillsListNew.add(item);
|
|
|
+ }
|
|
|
+ //通过账单id查询具体费用中心数据
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .in(FeeCenter::getAccBillNo, billNos)
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0));
|
|
|
+ List<FeeCenter> feeCenters = reconciliationFeeCenter(detail, feeCenterList, 2);
|
|
|
+ feeCenterListNew.addAll(feeCenters);
|
|
|
+ }
|
|
|
+ detail.setStatus(0);
|
|
|
+ detail.setVoucherStatus(0);
|
|
|
+ finVouchersListNew.add(detail);
|
|
|
+ }*/
|
|
|
for (FinVouchers detail : finVouchersList) {
|
|
|
if (ObjectUtils.isNotNull(finVouchersItemsList)) {
|
|
|
List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
|
|
|
@@ -1518,39 +1958,8 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
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);
|
|
|
+ revokeGenlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
}
|
|
|
@@ -1564,39 +1973,8 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
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<>();
|
|
|
- finGenlegList = revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegListNew.addAll(finGenlegs);
|
|
|
}
|
|
|
@@ -1711,16 +2089,16 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
this.saveOrUpdate(finVouchers);
|
|
|
if (ObjectUtils.isNotNull(finVouchers.getFinVouchersItemsList())) {
|
|
|
FinPeriod detail = finPeriodMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
|
|
|
- .eq(FinPeriod::getTenantId,AuthUtil.getTenantId())
|
|
|
- .eq(FinPeriod::getIsDeleted,0)
|
|
|
- .eq(FinPeriod::getPeriodYear,finVouchers.getAccountYear())
|
|
|
- .eq(FinPeriod::getPeriodMonth,finVouchers.getAccountMonth())
|
|
|
+ .eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinPeriod::getIsDeleted, 0)
|
|
|
+ .eq(FinPeriod::getPeriodYear, finVouchers.getAccountYear())
|
|
|
+ .eq(FinPeriod::getPeriodMonth, finVouchers.getAccountMonth())
|
|
|
);
|
|
|
if (detail == null) {
|
|
|
- throw new RuntimeException("未找到"+finVouchers.getAccountYear()+"年"+finVouchers.getAccountMonth()+"月期间管理信息");
|
|
|
+ throw new RuntimeException("未找到" + finVouchers.getAccountYear() + "年" + finVouchers.getAccountMonth() + "月期间管理信息");
|
|
|
}
|
|
|
- PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
|
|
|
- detail.setPeriodVouchersTemplate(exchange);
|
|
|
+ /*PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
|
|
|
+ detail.setPeriodVouchersTemplate(exchange);*/
|
|
|
List<Accounts> accountsList = new ArrayList<>();
|
|
|
List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<>());
|
|
|
List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<>());
|
|
|
@@ -1734,13 +2112,75 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
}
|
|
|
List<FinGenleg> finGenlegListNew = new ArrayList<>();
|
|
|
List<FinGenlegCalc> finGenlegCalcListNew = new ArrayList<>();
|
|
|
+ /*for (FinVouchersItems item : finVouchers.getFinVouchersItemsList()) {
|
|
|
+ item.setPid(finVouchers.getId());
|
|
|
+ item.setVoucherNo(finVouchers.getVoucherNo());
|
|
|
+// item.setBillNo(finVouchers.getBillNo());
|
|
|
+ Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
|
|
|
+ if (accounts != null) {
|
|
|
+// accounts.setPlAccNo(exchange.getPlAccNo());
|
|
|
+ item.setAccountFullName(accounts.getFullName());
|
|
|
+ if (1 == accounts.getIsDept() || 1 == accounts.getIsCorp() || 1 == accounts.getIsEmpl()) {
|
|
|
+ FinGenlegCalc finGenlegCalc = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, item.getAccountId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ FinGenlegCalc finGenlegCalcNew = genlegAccountingFinGenlegCalc(accounts, item, finGenlegCalc);
|
|
|
+ if (ObjectUtils.isNotNull(finGenlegCalcNew)) {
|
|
|
+ finGenlegCalcListNew.add(finGenlegCalcNew);
|
|
|
+ }
|
|
|
+ FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getAccId, finGenlegCalcNew.getParentId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
|
|
|
+ .eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
|
|
|
+ .eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
|
|
|
+ .eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ List<FinGenlegCalc> finGenlegs = new ArrayList<>();
|
|
|
+ genlegCalcAccountingForNew(accounts,item, finGenlegP, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FinGenleg finGenleg = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, item.getAccountId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ FinGenleg finGenlegNew = genlegAccountingFinGenleg(accounts, item, finGenleg);
|
|
|
+ if (ObjectUtils.isNotNull(finGenlegNew)) {
|
|
|
+ finGenlegListNew.add(finGenlegNew);
|
|
|
+ }
|
|
|
+ FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getAccId, finGenlegNew.getParentId())
|
|
|
+ .eq(FinGenleg::getAccyear, item.getAccountYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, item.getAccountMonth()));
|
|
|
+ if (finGenlegP != null) {
|
|
|
+ List<FinGenleg> finGenlegs = new ArrayList<>();
|
|
|
+ genlegAccountingForNew(item, finGenlegP, finGenlegs);
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ finGenlegListNew.addAll(finGenlegs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.setStatus(1);
|
|
|
+ item.setVoucherDate(finVouchers.getVoucherDate());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ finVouchersItemsListNew.add(item);
|
|
|
+ }*/
|
|
|
for (FinVouchersItems item : finVouchers.getFinVouchersItemsList()) {
|
|
|
item.setPid(finVouchers.getId());
|
|
|
item.setVoucherNo(finVouchers.getVoucherNo());
|
|
|
- item.setBillNo(finVouchers.getBillNo());
|
|
|
+// item.setBillNo(finVouchers.getBillNo());
|
|
|
Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
|
|
|
if (accounts != null) {
|
|
|
- accounts.setPlAccNo(exchange.getPlAccNo());
|
|
|
+// accounts.setPlAccNo(exchange.getPlAccNo());
|
|
|
item.setAccountFullName(accounts.getFullName());
|
|
|
FinGenleg finGenleg = finGenlegList.stream().filter(e -> e.getAccId().equals(item.getAccountId()) &&
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
@@ -1761,7 +2201,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
List<FinGenlegCalc> finGenlegs = new ArrayList<>();
|
|
|
- finGenlegCalcList = genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
|
|
|
+ genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegCalcListNew.addAll(finGenlegs);
|
|
|
}
|
|
|
@@ -1776,7 +2216,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
|
|
|
e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
|
|
|
if (finGenlegP != null) {
|
|
|
List<FinGenleg> finGenlegs = new ArrayList<>();
|
|
|
- finGenlegList = genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
+ genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
|
|
|
if (!finGenlegs.isEmpty()) {
|
|
|
finGenlegListNew.addAll(finGenlegs);
|
|
|
}
|