|
@@ -42,8 +42,10 @@ import org.springblade.los.check.service.IAuditPathsLevelsService;
|
|
|
import org.springblade.los.check.service.IAuditProecessService;
|
|
import org.springblade.los.check.service.IAuditProecessService;
|
|
|
import org.springblade.los.finance.fee.entity.FeeCenter;
|
|
import org.springblade.los.finance.fee.entity.FeeCenter;
|
|
|
import org.springblade.los.finance.fee.entity.FinAccBills;
|
|
import org.springblade.los.finance.fee.entity.FinAccBills;
|
|
|
|
|
+import org.springblade.los.finance.fee.entity.ListAccBillVO;
|
|
|
import org.springblade.los.finance.fee.service.IFeeCenterService;
|
|
import org.springblade.los.finance.fee.service.IFeeCenterService;
|
|
|
import org.springblade.los.finance.fee.service.IFinAccBillsService;
|
|
import org.springblade.los.finance.fee.service.IFinAccBillsService;
|
|
|
|
|
+import org.springblade.los.finance.fee.vo.FinAccBillsVO;
|
|
|
import org.springblade.los.finance.invoices.entity.FinInvoices;
|
|
import org.springblade.los.finance.invoices.entity.FinInvoices;
|
|
|
import org.springblade.los.finance.invoices.entity.FinInvoicesItems;
|
|
import org.springblade.los.finance.invoices.entity.FinInvoicesItems;
|
|
|
import org.springblade.los.finance.invoices.mapper.FinInvoicesItemsMapper;
|
|
import org.springblade.los.finance.invoices.mapper.FinInvoicesItemsMapper;
|
|
@@ -200,7 +202,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
if ("CNY".equals(item.getCurrentStlCurCode())) {
|
|
if ("CNY".equals(item.getCurrentStlCurCode())) {
|
|
|
item.setCurrentStlAmountLoc(item.getCurrentStlAmount());
|
|
item.setCurrentStlAmountLoc(item.getCurrentStlAmount());
|
|
|
} else {
|
|
} else {
|
|
|
- item.setCurrentStlAmountLoc(bCurrencyService.converterCny(item.getCurrentStlCurCode(), item.getCurrentStlAmount(),""));
|
|
|
|
|
|
|
+ item.setCurrentStlAmountLoc(bCurrencyService.converterCny(item.getCurrentStlCurCode(), item.getCurrentStlAmount(), ""));
|
|
|
}
|
|
}
|
|
|
// 去税金额 = 本次结算金额currentStlAmount - 税额amountTax
|
|
// 去税金额 = 本次结算金额currentStlAmount - 税额amountTax
|
|
|
BigDecimal amountNet = new BigDecimal("0.00");
|
|
BigDecimal amountNet = new BigDecimal("0.00");
|
|
@@ -271,11 +273,11 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
finStlBills.setAmountCrUsdNet(amountCrUSDTax);
|
|
finStlBills.setAmountCrUsdNet(amountCrUSDTax);
|
|
|
finStlBills.setAmountSub(finStlBills.getAmountCr().subtract(finStlBills.getAmountDr()));
|
|
finStlBills.setAmountSub(finStlBills.getAmountCr().subtract(finStlBills.getAmountDr()));
|
|
|
finStlBills.setAmountSubUsd(finStlBills.getAmountCrUsd().subtract(finStlBills.getAmountDrUsd()));
|
|
finStlBills.setAmountSubUsd(finStlBills.getAmountCrUsd().subtract(finStlBills.getAmountDrUsd()));
|
|
|
- finStlBills.setAmountDrLoc(amountDrCNY.add(bCurrencyService.converterCny("USD", amountDrUSD,"D")));
|
|
|
|
|
- finStlBills.setAmountCrLoc(amountCrCNY.add(bCurrencyService.converterCny("USD", amountCrUSD,"C")));
|
|
|
|
|
|
|
+ finStlBills.setAmountDrLoc(amountDrCNY.add(bCurrencyService.converterCny("USD", amountDrUSD, "D")));
|
|
|
|
|
+ finStlBills.setAmountCrLoc(amountCrCNY.add(bCurrencyService.converterCny("USD", amountCrUSD, "C")));
|
|
|
finStlBills.setAmountSubLoc(finStlBills.getAmountCrLoc().subtract(finStlBills.getAmountDrLoc()));
|
|
finStlBills.setAmountSubLoc(finStlBills.getAmountCrLoc().subtract(finStlBills.getAmountDrLoc()));
|
|
|
- finStlBills.setAmountDrLocNet(amountDrCNYTax.add(bCurrencyService.converterCny("USD", amountDrUSDTax,"D")));
|
|
|
|
|
- finStlBills.setAmountCrLocNet(amountCrCNYTax.add(bCurrencyService.converterCny("USD", amountCrUSDTax,"C")));
|
|
|
|
|
|
|
+ finStlBills.setAmountDrLocNet(amountDrCNYTax.add(bCurrencyService.converterCny("USD", amountDrUSDTax, "D")));
|
|
|
|
|
+ finStlBills.setAmountCrLocNet(amountCrCNYTax.add(bCurrencyService.converterCny("USD", amountCrUSDTax, "C")));
|
|
|
finStlBills.setAmountSubLocNet(finStlBills.getAmountCrLocNet().subtract(finStlBills.getAmountDrLocNet()));
|
|
finStlBills.setAmountSubLocNet(finStlBills.getAmountCrLocNet().subtract(finStlBills.getAmountDrLocNet()));
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -610,7 +612,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().add(finAccBills.getStlAmountDr().add(item.getCurrentStlDiscount())));
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().add(finAccBills.getStlAmountDr().add(item.getCurrentStlDiscount())));
|
|
|
} else {
|
|
} else {
|
|
|
finAccBills.setStlAmountDrUsd(finAccBills.getStlAmountDrUsd().add(item.getCurrentStlAmount().add(item.getCurrentStlDiscount())));
|
|
finAccBills.setStlAmountDrUsd(finAccBills.getStlAmountDrUsd().add(item.getCurrentStlAmount().add(item.getCurrentStlDiscount())));
|
|
|
- BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().add(item.getCurrentStlDiscount()),"D");
|
|
|
|
|
|
|
+ BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().add(item.getCurrentStlDiscount()), "D");
|
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().add(cny));
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().add(cny));
|
|
|
}
|
|
}
|
|
|
if (finAccBills.getAmountDr().compareTo(finAccBills.getStlAmountDr()) == 0 &&
|
|
if (finAccBills.getAmountDr().compareTo(finAccBills.getStlAmountDr()) == 0 &&
|
|
@@ -626,7 +628,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().add(finAccBills.getStlAmountCr()));
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().add(finAccBills.getStlAmountCr()));
|
|
|
} else {
|
|
} else {
|
|
|
finAccBills.setStlAmountCrUsd(finAccBills.getStlAmountCrUsd().add(item.getCurrentStlAmount()));
|
|
finAccBills.setStlAmountCrUsd(finAccBills.getStlAmountCrUsd().add(item.getCurrentStlAmount()));
|
|
|
- BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount(),"C");
|
|
|
|
|
|
|
+ BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount(), "C");
|
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().add(cny));
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().add(cny));
|
|
|
}
|
|
}
|
|
|
if (finAccBills.getAmountCr().compareTo(finAccBills.getStlAmountCr()) == 0 &&
|
|
if (finAccBills.getAmountCr().compareTo(finAccBills.getStlAmountCr()) == 0 &&
|
|
@@ -681,7 +683,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
e.setStlBillId(detail.getId());
|
|
e.setStlBillId(detail.getId());
|
|
|
e.setStlBillNo(detail.getBillNo());
|
|
e.setStlBillNo(detail.getBillNo());
|
|
|
e.setStlDate(detail.getBillDate());
|
|
e.setStlDate(detail.getBillDate());
|
|
|
- e.setStlOrgAmount(bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount(),e.getDc()));
|
|
|
|
|
|
|
+ e.setStlOrgAmount(bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount(), e.getDc()));
|
|
|
e.setStlCurCode(item.getCurrentStlCurCode());
|
|
e.setStlCurCode(item.getCurrentStlCurCode());
|
|
|
e.setStlExrate(item.getExrate());
|
|
e.setStlExrate(item.getExrate());
|
|
|
e.setStlExrateLoc(item.getCurrentStlExrate());
|
|
e.setStlExrateLoc(item.getCurrentStlExrate());
|
|
@@ -690,18 +692,56 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
e.setStlStatus(1);
|
|
e.setStlStatus(1);
|
|
|
e.setStlById(detail.getCreateUser());
|
|
e.setStlById(detail.getCreateUser());
|
|
|
e.setStlByName(detail.getCreateUserName());
|
|
e.setStlByName(detail.getCreateUserName());
|
|
|
- if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) > 0) {
|
|
|
|
|
- e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()).subtract(currentStlAmount));
|
|
|
|
|
- e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
- currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
- } else if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
|
|
|
|
|
- e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
- e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
- currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
|
|
+ if (ids.size() > 0) {
|
|
|
|
|
+ if ("D".equals(e.getDc())) {
|
|
|
|
|
+ if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) > 0) {
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()).subtract(currentStlAmount));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
|
|
|
|
|
+ e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
|
|
|
|
|
+ currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) > 0) {
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()).subtract(currentStlAmount));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ e.setAppliedAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
|
|
|
|
|
+ e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ e.setAppliedAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ e.setAppliedAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedAmountStl()));
|
|
|
|
|
+ currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
- e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
- e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
- currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
|
|
+ if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) > 0) {
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()).subtract(currentStlAmount));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
|
|
|
|
|
+ e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ e.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
|
|
|
|
|
+ currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
feeCenterList.add(e);
|
|
feeCenterList.add(e);
|
|
|
}
|
|
}
|
|
@@ -826,7 +866,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().subtract(finAccBills.getStlAmountDr().subtract(item.getCurrentStlDiscount())));
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().subtract(finAccBills.getStlAmountDr().subtract(item.getCurrentStlDiscount())));
|
|
|
} else {
|
|
} else {
|
|
|
finAccBills.setStlAmountDrUsd(finAccBills.getStlAmountDrUsd().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
|
|
finAccBills.setStlAmountDrUsd(finAccBills.getStlAmountDrUsd().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
|
|
|
- BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount()),"D");
|
|
|
|
|
|
|
+ BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount()), "D");
|
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().subtract(cny));
|
|
finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().subtract(cny));
|
|
|
}
|
|
}
|
|
|
if (finAccBills.getAmountDr().compareTo(new BigDecimal("0.00")) == 0 &&
|
|
if (finAccBills.getAmountDr().compareTo(new BigDecimal("0.00")) == 0 &&
|
|
@@ -855,7 +895,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().subtract(finAccBills.getStlAmountCr().subtract(item.getCurrentStlDiscount())));
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().subtract(finAccBills.getStlAmountCr().subtract(item.getCurrentStlDiscount())));
|
|
|
} else {
|
|
} else {
|
|
|
finAccBills.setStlAmountCrUsd(finAccBills.getStlAmountCrUsd().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
|
|
finAccBills.setStlAmountCrUsd(finAccBills.getStlAmountCrUsd().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
|
|
|
- BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount()),"C");
|
|
|
|
|
|
|
+ BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount()), "C");
|
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().subtract(cny));
|
|
finAccBills.setStlAmountCrLoc(finAccBills.getStlAmountCrLoc().subtract(cny));
|
|
|
}
|
|
}
|
|
|
if (finAccBills.getAmountCr().compareTo(new BigDecimal("0.00")) == 0 &&
|
|
if (finAccBills.getAmountCr().compareTo(new BigDecimal("0.00")) == 0 &&
|
|
@@ -920,18 +960,56 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
e.setStlStatus(0);
|
|
e.setStlStatus(0);
|
|
|
e.setStlById(0L);
|
|
e.setStlById(0L);
|
|
|
e.setStlByName("");
|
|
e.setStlByName("");
|
|
|
- if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
|
|
|
|
|
- e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
|
|
|
|
|
- e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
- currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
- } else if (e.getStlTtlAmount().compareTo(currentStlAmount) == 0) {
|
|
|
|
|
- e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
- e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
- currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
- } else {
|
|
|
|
|
- e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
- e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
- currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
|
|
+ if (ids.size() > 0) {
|
|
|
|
|
+ if ("D".equals(e.getDc())) {
|
|
|
|
|
+ if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
|
|
|
|
|
+ e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else if (e.getStlTtlAmount().compareTo(currentStlAmount) == 0) {
|
|
|
|
|
+ e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
|
|
|
|
|
+ currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
|
|
|
|
|
+ e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ e.setAppliedAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else if (e.getStlTtlAmount().compareTo(currentStlAmount) == 0) {
|
|
|
|
|
+ e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ e.setAppliedAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedAmountStl()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ e.setAppliedAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedAmountStl()));
|
|
|
|
|
+ currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
|
|
|
|
|
+ e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else if (e.getStlTtlAmount().compareTo(currentStlAmount) == 0) {
|
|
|
|
|
+ e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ currentStlAmount = new BigDecimal("0.00");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ e.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
|
|
|
|
|
+ currentStlAmount = currentStlAmount.subtract(e.getAmount());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
feeCenterList.add(e);
|
|
feeCenterList.add(e);
|
|
|
}
|
|
}
|
|
@@ -1164,6 +1242,9 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
auditProecessDTO.setCorpId(detail.getCorpId());
|
|
auditProecessDTO.setCorpId(detail.getCorpId());
|
|
|
auditProecessDTO.setSalesCompanyId(Long.parseLong(detail.getCreateDept()));
|
|
auditProecessDTO.setSalesCompanyId(Long.parseLong(detail.getCreateDept()));
|
|
|
auditProecessDTO.setSalesCompanyName(detail.getCreateDeptName());
|
|
auditProecessDTO.setSalesCompanyName(detail.getCreateDeptName());
|
|
|
|
|
+ auditProecessDTO.setPayAmount(detail.getAmountCrLoc());
|
|
|
|
|
+ auditProecessDTO.setReceivableAmount(detail.getAmountDrLoc());
|
|
|
|
|
+ auditProecessDTO.setGrossProfit(detail.getAmountSubLoc());
|
|
|
R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
|
|
R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
|
|
|
if (!financeProcess.isSuccess()) {
|
|
if (!financeProcess.isSuccess()) {
|
|
|
throw new SecurityException("操作失败,请联系管理员");
|
|
throw new SecurityException("操作失败,请联系管理员");
|
|
@@ -1214,7 +1295,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (currentStlAmount.compareTo(new BigDecimal("0.00")) != 0) {
|
|
if (currentStlAmount.compareTo(new BigDecimal("0.00")) != 0) {
|
|
|
- throw new RuntimeException("结算金额计算错误,操作失败");
|
|
|
|
|
|
|
+ throw new RuntimeException("本次申请金额加已申请金额超出账单金额,操作失败");
|
|
|
}
|
|
}
|
|
|
/**-----------------------费用中心数据处理--------------------------- */
|
|
/**-----------------------费用中心数据处理--------------------------- */
|
|
|
}
|
|
}
|
|
@@ -1413,4 +1494,56 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
}
|
|
}
|
|
|
return R.data(finStlBills);
|
|
return R.data(finStlBills);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public FinStlBills getByDetail(FinStlBills finStlBills) {
|
|
|
|
|
+
|
|
|
|
|
+ FinStlBills detail = baseMapper.selectOne(new LambdaQueryWrapper<FinStlBills>()
|
|
|
|
|
+ .eq(FinStlBills::getIsDeleted, 0)
|
|
|
|
|
+ .eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
|
|
|
|
|
+ .eq(FinStlBills::getBillNo, finStlBills.getCheckNo())
|
|
|
|
|
+ .eq(FinStlBills::getCorpId, finStlBills.getCorpId()));
|
|
|
|
|
+ if (detail == null) {
|
|
|
|
|
+ throw new RuntimeException("未查到单据信息");
|
|
|
|
|
+ }
|
|
|
|
|
+ List<FinStlBillsItems> finStlBillsItemsList = finStlBillsItemsService.list(new LambdaQueryWrapper<FinStlBillsItems>()
|
|
|
|
|
+ .eq(FinStlBillsItems::getIsDeleted, 0)
|
|
|
|
|
+ .eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
|
|
|
|
|
+ .eq(FinStlBillsItems::getPid, detail.getId())
|
|
|
|
|
+ .eq(ObjectUtils.isNotNull(finStlBills.getDc()), FinStlBillsItems::getDc, finStlBills.getDc())
|
|
|
|
|
+ .eq(ObjectUtils.isNotNull(finStlBills.getBusinessNo()), FinStlBillsItems::getBillNo, finStlBills.getBusinessNo())
|
|
|
|
|
+ .eq(ObjectUtils.isNotNull(finStlBills.getMblno()), FinStlBillsItems::getMblno, finStlBills.getMblno())
|
|
|
|
|
+ .eq(ObjectUtils.isNotNull(finStlBills.getAccountNo()), FinStlBillsItems::getAccBillNo, finStlBills.getAccountNo())
|
|
|
|
|
+ .eq(ObjectUtils.isNotNull(finStlBills.getHblno()), FinStlBillsItems::getHblno, finStlBills.getHblno())
|
|
|
|
|
+ .eq(ObjectUtils.isNotNull(finStlBills.getVesselId()), FinStlBillsItems::getVesselId, finStlBills.getVesselId())
|
|
|
|
|
+ .eq(ObjectUtils.isNotNull(finStlBills.getVoyageNo()), FinStlBillsItems::getVoyageNo, finStlBills.getVoyageNo())
|
|
|
|
|
+ );
|
|
|
|
|
+ for (FinStlBillsItems item : finStlBillsItemsList) {
|
|
|
|
|
+ ListAccBillVO finAccBills = new ListAccBillVO();
|
|
|
|
|
+ finAccBills.setAccId(item.getAccBillId());
|
|
|
|
|
+ FinAccBillsVO finAccBillsVO = finAccBillsService.listByAccBillId(finAccBills);
|
|
|
|
|
+ if (finAccBillsVO != null) {
|
|
|
|
|
+ item.setAppliedAmount(finAccBillsVO.getAppliedAmount());
|
|
|
|
|
+ item.setAppliedInvoiceAmount(finAccBillsVO.getAppliedInvoiceAmount());
|
|
|
|
|
+ item.setAppliedAmountStl(finAccBillsVO.getAppliedAmountStl());
|
|
|
|
|
+ item.setAppliedInvoiceAmountStl(finAccBillsVO.getAppliedInvoiceAmountStl());
|
|
|
|
|
+ item.setReconciliationAmount(finAccBillsVO.getReconciliationAmount());
|
|
|
|
|
+
|
|
|
|
|
+ item.setAppliedCurrentStlAmount(item.getAmount().subtract(item.getAppliedAmount().add(item.getAppliedAmountStl())).subtract(finAccBillsVO.getStlTtlAmount()));
|
|
|
|
|
+ item.setAppliedInvoiceCurrentStlAmount(item.getAmount().subtract(item.getAppliedInvoiceAmount()).add(item.getAppliedInvoiceAmountStl()).subtract(finAccBillsVO.getUninvoicedAmount()));
|
|
|
|
|
+ item.setCurrentStlAmount(item.getAmount().subtract(finAccBillsVO.getStlTtlAmount()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ item.setAppliedAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ item.setAppliedInvoiceAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ item.setAppliedAmountStl(new BigDecimal("0.00"));
|
|
|
|
|
+ item.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
|
|
|
|
|
+ item.setReconciliationAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ item.setAppliedCurrentStlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ item.setAppliedInvoiceCurrentStlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ item.setCurrentStlAmount(new BigDecimal("0.00"));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ detail.setFinStlBillsItemsList(finStlBillsItemsList);
|
|
|
|
|
+ return detail;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|