|
|
@@ -217,8 +217,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
.apply("((business_type = 'SE' and etd >='" + beginDate + "' and etd <= '" + endDate + "' ) " +
|
|
|
"or (business_type = 'SI' and eta >='" + beginDate + "' and eta <= '" + endDate + "'))"));
|
|
|
if (!billsList.isEmpty()) {
|
|
|
- List<Bills> bills = billsList.stream().filter(e -> e.getBillStatus().equals(3)).collect(Collectors.toList());
|
|
|
- for (Bills item : bills) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
ReviewFailedExcel reviewFailedExcel = new ReviewFailedExcel();
|
|
|
if ("SE".equals(item.getBusinessType())) {
|
|
|
reviewFailedExcel.setBusinessType("海运出口");
|
|
|
@@ -243,8 +242,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
.apply("((business_type = 'AE' and etd >='" + beginDate + "' and etd <= '" + endDate + "' ) " +
|
|
|
"or (business_type = 'AI' and eta >='" + beginDate + "' and eta <= '" + endDate + "'))"));
|
|
|
if (!aeaBillsList.isEmpty()) {
|
|
|
- List<AeaBills> aeaBills = aeaBillsList.stream().filter(e -> e.getBillStatus().equals(3)).collect(Collectors.toList());
|
|
|
- for (AeaBills item : aeaBills) {
|
|
|
+ for (AeaBills item : aeaBillsList) {
|
|
|
ReviewFailedExcel reviewFailedExcel = new ReviewFailedExcel();
|
|
|
if ("AE".equals(item.getBusinessType())) {
|
|
|
reviewFailedExcel.setBusinessType("空运出口");
|
|
|
@@ -271,70 +269,67 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
"or (business_type = 'AEA' and etd >='" + beginDate + "' and etd <= '" + endDate + "')" +
|
|
|
"or (business_type = 'AIA' and eta >='" + beginDate + "' and eta <= '" + endDate + "'))"
|
|
|
));
|
|
|
+ List<Bills> billsList1 = new ArrayList<>();
|
|
|
+ List<AeaBills> aeaBillsList1 = new ArrayList<>();
|
|
|
if (!amendsList.isEmpty()) {
|
|
|
- List<Amends> bills = amendsList.stream().filter(e -> e.getBillStatus().equals(3)).collect(Collectors.toList());
|
|
|
- List<Bills> billsList1 = new ArrayList<>();
|
|
|
- List<AeaBills> aeaBillsList1 = new ArrayList<>();
|
|
|
- if (!bills.isEmpty()) {
|
|
|
- List<Long> billsId = bills.stream().map(Amends::getOrigId).collect(Collectors.toList());
|
|
|
- if (!billsId.isEmpty()) {
|
|
|
- billsList1 = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .eq(Bills::getBranchId, detail.getBranchId())
|
|
|
- .in(Bills::getId, billsId)
|
|
|
- );
|
|
|
- }
|
|
|
- List<Long> aeaBillsId = bills.stream().map(Amends::getOrigId).collect(Collectors.toList());
|
|
|
- if (!aeaBillsId.isEmpty()) {
|
|
|
- aeaBillsList1 = aeaBillsService.list(new LambdaQueryWrapper<AeaBills>()
|
|
|
- .eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AeaBills::getIsDeleted, 0)
|
|
|
- .eq(AeaBills::getBranchId, detail.getBranchId())
|
|
|
- .in(AeaBills::getId, aeaBillsId));
|
|
|
- }
|
|
|
+ List<Long> billsId = amendsList.stream().map(Amends::getOrigId).collect(Collectors.toList());
|
|
|
+ if (!billsId.isEmpty()) {
|
|
|
+ billsList1 = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getBranchId, detail.getBranchId())
|
|
|
+ .in(Bills::getId, billsId)
|
|
|
+ );
|
|
|
}
|
|
|
- for (Amends item : bills) {
|
|
|
- ReviewFailedExcel reviewFailedExcel = new ReviewFailedExcel();
|
|
|
- if ("AEA".equals(item.getBusinessType())) {
|
|
|
- if (!aeaBillsList1.isEmpty()) {
|
|
|
- AeaBills aeaBills = aeaBillsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
- if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
- reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
- }
|
|
|
+ List<Long> aeaBillsId = amendsList.stream().map(Amends::getOrigId).collect(Collectors.toList());
|
|
|
+ if (!aeaBillsId.isEmpty()) {
|
|
|
+ aeaBillsList1 = aeaBillsService.list(new LambdaQueryWrapper<AeaBills>()
|
|
|
+ .eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AeaBills::getIsDeleted, 0)
|
|
|
+ .eq(AeaBills::getBranchId, detail.getBranchId())
|
|
|
+ .in(AeaBills::getId, aeaBillsId));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (Amends item : amendsList) {
|
|
|
+ ReviewFailedExcel reviewFailedExcel = new ReviewFailedExcel();
|
|
|
+ if ("AEA".equals(item.getBusinessType())) {
|
|
|
+ if (!aeaBillsList1.isEmpty()) {
|
|
|
+ AeaBills aeaBills = aeaBillsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
+ if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
+ reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
}
|
|
|
- reviewFailedExcel.setBusinessType("空运出口Amends");
|
|
|
- } else if ("AIA".equals(item.getBusinessType())) {
|
|
|
- if (!aeaBillsList1.isEmpty()) {
|
|
|
- AeaBills aeaBills = aeaBillsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
- if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
- reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
- }
|
|
|
+ }
|
|
|
+ reviewFailedExcel.setBusinessType("空运出口Amends");
|
|
|
+ } else if ("AIA".equals(item.getBusinessType())) {
|
|
|
+ if (!aeaBillsList1.isEmpty()) {
|
|
|
+ AeaBills aeaBills = aeaBillsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
+ if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
+ reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
}
|
|
|
- reviewFailedExcel.setBusinessType("空运进口Amends");
|
|
|
- } else if ("SIA".equals(item.getBusinessType())) {
|
|
|
- if (!billsList1.isEmpty()) {
|
|
|
- Bills aeaBills = billsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
- if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
- reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
- }
|
|
|
+ }
|
|
|
+ reviewFailedExcel.setBusinessType("空运进口Amends");
|
|
|
+ } else if ("SIA".equals(item.getBusinessType())) {
|
|
|
+ if (!billsList1.isEmpty()) {
|
|
|
+ Bills aeaBills = billsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
+ if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
+ reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
}
|
|
|
- reviewFailedExcel.setBusinessType("海运进口Amends");
|
|
|
- } else if ("SEA".equals(item.getBusinessType())) {
|
|
|
- if (!billsList1.isEmpty()) {
|
|
|
- Bills aeaBills = billsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
- if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
- reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
- }
|
|
|
+ }
|
|
|
+ reviewFailedExcel.setBusinessType("海运进口Amends");
|
|
|
+ } else if ("SEA".equals(item.getBusinessType())) {
|
|
|
+ if (!billsList1.isEmpty()) {
|
|
|
+ Bills aeaBills = billsList1.stream().filter(e -> e.getId().equals(item.getOrigId())).findFirst().orElse(null);
|
|
|
+ if (aeaBills != null && "SALES".equals(aeaBills.getSrcType())) {
|
|
|
+ reviewFailedExcel.setSalesperson(aeaBills.getSrcCnName());
|
|
|
}
|
|
|
- reviewFailedExcel.setBusinessType("海运出口Amends");
|
|
|
}
|
|
|
- reviewFailedExcel.setBillNo(item.getBillNo());
|
|
|
- reviewFailedExcel.setBusinessDate(item.getBillDate());
|
|
|
- reviewFailedExcel.setMblno(item.getMblno());
|
|
|
- reviewFailedExcel.setOperator(item.getOperatorName());
|
|
|
- reviewFailedExcelList.add(reviewFailedExcel);
|
|
|
+ reviewFailedExcel.setBusinessType("海运出口Amends");
|
|
|
}
|
|
|
+ reviewFailedExcel.setBillNo(item.getBillNo());
|
|
|
+ reviewFailedExcel.setBusinessDate(item.getBillDate());
|
|
|
+ reviewFailedExcel.setMblno(item.getMblno());
|
|
|
+ reviewFailedExcel.setOperator(item.getOperatorName());
|
|
|
+ reviewFailedExcelList.add(reviewFailedExcel);
|
|
|
}
|
|
|
List<CustomsDeclaration> customsDeclarationList = customsDeclarationService.list(new LambdaQueryWrapper<CustomsDeclaration>()
|
|
|
.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -345,8 +340,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
.lt(CustomsDeclaration::getDeclareDate, detail.getEndDate())
|
|
|
);
|
|
|
if (!customsDeclarationList.isEmpty()) {
|
|
|
- List<CustomsDeclaration> bills = customsDeclarationList.stream().filter(e -> e.getBillStatus().equals(3)).collect(Collectors.toList());
|
|
|
- for (CustomsDeclaration item : bills) {
|
|
|
+ for (CustomsDeclaration item : customsDeclarationList) {
|
|
|
ReviewFailedExcel reviewFailedExcel = new ReviewFailedExcel();
|
|
|
if ("BGSE".equals(item.getBusinessType())) {
|
|
|
reviewFailedExcel.setBusinessType("海运报关");
|
|
|
@@ -377,38 +371,35 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
.lt(FinStlBills::getBillDate, endDate)
|
|
|
);
|
|
|
if (!finStlBillsList.isEmpty()) {
|
|
|
- List<FinStlBills> bills = finStlBillsList.stream().filter(e -> e.getBillStatus().equals("3")).collect(Collectors.toList());
|
|
|
- if (!bills.isEmpty()) {
|
|
|
- List<Long> ids = bills.stream().map(FinStlBills::getId).collect(Collectors.toList());
|
|
|
- if (!ids.isEmpty()) {
|
|
|
- List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
- .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinVouchers::getIsDeleted, 0)
|
|
|
- .eq(FinVouchers::getBranchId, detail.getBranchId())
|
|
|
- .in(FinVouchers::getSrcId, ids)
|
|
|
- .gt(FinVouchers::getVoucherDate, beginDate)
|
|
|
- .lt(FinVouchers::getVoucherDate, endDate));
|
|
|
- for (FinStlBills item : bills) {
|
|
|
- FinVouchers finVouchers = finVouchersList.stream().filter(e -> e.getSrcId().equals(item.getId())).findFirst().orElse(null);
|
|
|
- if (finVouchers == null) {
|
|
|
- ReviewFailedExcel reviewFailedExcel = new ReviewFailedExcel();
|
|
|
- reviewFailedExcel.setBusinessType("结算中心");
|
|
|
- reviewFailedExcel.setBillNo(item.getBillNo());
|
|
|
- reviewFailedExcel.setBusinessDate(item.getBillDate());
|
|
|
- reviewFailedExcel.setMblno(item.getMblno());
|
|
|
- reviewFailedExcel.setOperator(item.getCreateUserName());
|
|
|
- reviewFailedExcel.setSalesperson(item.getSalesName());
|
|
|
- reviewFailedExcelList.add(reviewFailedExcel);
|
|
|
- } else {
|
|
|
- if (3 != finVouchers.getStatus()) {
|
|
|
- UnbookkeptExcel unbookkeptExcel = new UnbookkeptExcel();
|
|
|
- unbookkeptExcel.setYear(finVouchers.getAccountYear() + "");
|
|
|
- unbookkeptExcel.setMonth(finVouchers.getAccountMonth() + "");
|
|
|
- unbookkeptExcel.setVoucherNumber(finVouchers.getVoucherNo());
|
|
|
- unbookkeptExcel.setVoucherDate(finVouchers.getVoucherDate());
|
|
|
- unbookkeptExcel.setOperator(finVouchers.getCreateUserName());
|
|
|
- unbookkeptExcelList.add(unbookkeptExcel);
|
|
|
- }
|
|
|
+ List<Long> ids = finStlBillsList.stream().map(FinStlBills::getId).collect(Collectors.toList());
|
|
|
+ if (!ids.isEmpty()) {
|
|
|
+ List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
+ .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinVouchers::getIsDeleted, 0)
|
|
|
+ .eq(FinVouchers::getBranchId, detail.getBranchId())
|
|
|
+ .in(FinVouchers::getSrcId, ids)
|
|
|
+ .gt(FinVouchers::getVoucherDate, beginDate)
|
|
|
+ .lt(FinVouchers::getVoucherDate, endDate));
|
|
|
+ for (FinStlBills item : finStlBillsList) {
|
|
|
+ FinVouchers finVouchers = finVouchersList.stream().filter(e -> e.getSrcId().equals(item.getId())).findFirst().orElse(null);
|
|
|
+ if (finVouchers == null) {
|
|
|
+ ReviewFailedExcel reviewFailedExcel = new ReviewFailedExcel();
|
|
|
+ reviewFailedExcel.setBusinessType("结算中心");
|
|
|
+ reviewFailedExcel.setBillNo(item.getBillNo());
|
|
|
+ reviewFailedExcel.setBusinessDate(item.getBillDate());
|
|
|
+ reviewFailedExcel.setMblno(item.getMblno());
|
|
|
+ reviewFailedExcel.setOperator(item.getCreateUserName());
|
|
|
+ reviewFailedExcel.setSalesperson(item.getSalesName());
|
|
|
+ reviewFailedExcelList.add(reviewFailedExcel);
|
|
|
+ } else {
|
|
|
+ if (3 != finVouchers.getStatus()) {
|
|
|
+ UnbookkeptExcel unbookkeptExcel = new UnbookkeptExcel();
|
|
|
+ unbookkeptExcel.setYear(finVouchers.getAccountYear() + "");
|
|
|
+ unbookkeptExcel.setMonth(finVouchers.getAccountMonth() + "");
|
|
|
+ unbookkeptExcel.setVoucherNumber(finVouchers.getVoucherNo());
|
|
|
+ unbookkeptExcel.setVoucherDate(finVouchers.getVoucherDate());
|
|
|
+ unbookkeptExcel.setOperator(finVouchers.getCreateUserName());
|
|
|
+ unbookkeptExcelList.add(unbookkeptExcel);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -883,6 +874,24 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
String[] arr = periodVouchersTemplate.getDate().split("-");
|
|
|
Integer year = Integer.parseInt(arr[0]);
|
|
|
Integer month = Integer.parseInt(arr[1]);
|
|
|
+ FinPeriod finPeriod = baseMapper.selectById(periodVouchersTemplate.getId());
|
|
|
+ if (finPeriod == null) {
|
|
|
+ throw new RuntimeException("未查到" + periodVouchersTemplate.getDate() + "期间数据");
|
|
|
+ }
|
|
|
+ if (0 == finPeriod.getLockingStatus()) {
|
|
|
+ throw new RuntimeException("请先将当前期间锁定后再生成凭证");
|
|
|
+ }
|
|
|
+ if (!"FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
|
|
|
+ if (finVouchersService.count(new LambdaQueryWrapper<FinVouchers>()
|
|
|
+ .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinVouchers::getIsDeleted, 0)
|
|
|
+ .eq(FinVouchers::getAccountYear, year)
|
|
|
+ .eq(FinVouchers::getAccountMonth, month)
|
|
|
+ .eq(FinVouchers::getVoucherType, periodVouchersTemplate.getVkno())
|
|
|
+ .eq(FinVouchers::getVoucherSource, "FM-CURRENCY-PL-TRANSFER")) == 0) {
|
|
|
+ throw new RuntimeException("请先生成汇兑损益凭证");
|
|
|
+ }
|
|
|
+ }
|
|
|
if (finVouchersService.count(new LambdaQueryWrapper<FinVouchers>()
|
|
|
.eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FinVouchers::getIsDeleted, 0)
|
|
|
@@ -962,7 +971,14 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
PeriodExchangeRate periodExchangeRate = exchangeRateList.stream()
|
|
|
.filter(e -> e.getCurCode().equals(item.getCurCode())).findFirst().orElse(null);
|
|
|
if (periodExchangeRate == null) {
|
|
|
- throw new RuntimeException("未找到汇率信息");
|
|
|
+ if (!"CNY".equals(item.getCurCode())) {
|
|
|
+ throw new RuntimeException("未找到汇率信息");
|
|
|
+ } else {
|
|
|
+ periodExchangeRate = new PeriodExchangeRate();
|
|
|
+ periodExchangeRate.setCurCode("CNY");
|
|
|
+ periodExchangeRate.setCurName("人民币");
|
|
|
+ periodExchangeRate.setExrate(new BigDecimal("1.0"));
|
|
|
+ }
|
|
|
}
|
|
|
if (1 == item.getIsCorp() || 1 == item.getIsDept() || 1 == item.getIsEmpl()) {
|
|
|
List<FinGenlegCalc> finGenlegCalcs = finGenlegCalcList.stream()
|
|
|
@@ -1027,6 +1043,10 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
if (new BigDecimal("0.00").compareTo(amountDrUsdSubtract) != 0) {
|
|
|
finVouchersItems.setAmountDrUsd(amountDrUsdSubtract);
|
|
|
finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrLoc(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -1036,6 +1056,10 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
if (new BigDecimal("0.00").compareTo(amountCrUsdSubtract) != 0) {
|
|
|
finVouchersItems.setAmountCrUsd(amountCrUsdSubtract);
|
|
|
finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrLoc(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -1047,36 +1071,81 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
finVouchersItemsList.add(finVouchersItems);
|
|
|
}
|
|
|
} else {
|
|
|
- if (!"CNY".equals(item.getCurCode())) {
|
|
|
- finVouchersItems.setExrate(periodExchangeRate.getExrate());
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- if (new BigDecimal("0.00").compareTo(calc.getAmountDrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountCrUsd(calc.getAmountDrUsd());
|
|
|
- finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ if ("550304".equals(item.getCode())) {
|
|
|
+ finVouchersItems.setExrate(new BigDecimal("1"));
|
|
|
+ if ("C".equals(item.getDc())) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(calc.getAmountCr()) != 0) {
|
|
|
+ finVouchersItems.setAmountCr(calc.getAmountCr());
|
|
|
+ finVouchersItems.setAmountCrLoc(calc.getAmountCr());
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
} else {
|
|
|
- if (new BigDecimal("0.00").compareTo(calc.getAmountCrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountDrUsd(calc.getAmountCrUsd());
|
|
|
- finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ if (new BigDecimal("0.00").compareTo(calc.getAmountDr()) != 0) {
|
|
|
+ finVouchersItems.setAmountDr(calc.getAmountDr());
|
|
|
+ finVouchersItems.setAmountDrLoc(calc.getAmountDr());
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- finVouchersItems.setExrate(new BigDecimal("1"));
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- if (new BigDecimal("0.00").compareTo(calc.getAmountDrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountCr(calc.getAmountDrUsd());
|
|
|
+ if (!"CNY".equals(item.getCurCode())) {
|
|
|
+ finVouchersItems.setExrate(periodExchangeRate.getExrate());
|
|
|
+ if ("D".equals(item.getDc())) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(calc.getAmountDrUsd()) != 0) {
|
|
|
+ finVouchersItems.setAmountCrUsd(calc.getAmountDrUsd());
|
|
|
+ finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrLoc(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
} else {
|
|
|
- continue;
|
|
|
+ if (new BigDecimal("0.00").compareTo(calc.getAmountCrUsd()) != 0) {
|
|
|
+ finVouchersItems.setAmountDrUsd(calc.getAmountCrUsd());
|
|
|
+ finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrLoc(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
- if (new BigDecimal("0.00").compareTo(calc.getAmountCrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountDr(calc.getAmountCrUsd());
|
|
|
+ finVouchersItems.setExrate(new BigDecimal("1"));
|
|
|
+ if ("D".equals(item.getDc())) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(calc.getAmountDr()) != 0) {
|
|
|
+ finVouchersItems.setAmountCr(calc.getAmountDr());
|
|
|
+ finVouchersItems.setAmountCrLoc(calc.getAmountDr());
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
} else {
|
|
|
- continue;
|
|
|
+ if (new BigDecimal("0.00").compareTo(calc.getAmountCr()) != 0) {
|
|
|
+ finVouchersItems.setAmountDr(calc.getAmountCr());
|
|
|
+ finVouchersItems.setAmountDrLoc(calc.getAmountCr());
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1126,6 +1195,10 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
if (new BigDecimal("0.00").compareTo(amountDrUsdSubtract) != 0) {
|
|
|
finVouchersItems.setAmountDrUsd(amountDrUsdSubtract);
|
|
|
finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrLoc(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -1135,6 +1208,10 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
if (new BigDecimal("0.00").compareTo(amountCrUsdSubtract) != 0) {
|
|
|
finVouchersItems.setAmountCrUsd(amountCrUsdSubtract);
|
|
|
finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrLoc(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -1146,36 +1223,81 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
finVouchersItemsList.add(finVouchersItems);
|
|
|
}
|
|
|
} else {
|
|
|
- if (!"CNY".equals(item.getCurCode())) {
|
|
|
- finVouchersItems.setExrate(periodExchangeRate.getExrate());
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- if (new BigDecimal("0.00").compareTo(finGenleg.getAmountDrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountCrUsd(finGenleg.getAmountDrUsd());
|
|
|
- finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ if ("550304".equals(item.getCode())) {
|
|
|
+ finVouchersItems.setExrate(new BigDecimal("1"));
|
|
|
+ if ("C".equals(item.getDc())) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(finGenleg.getAmountCr()) != 0) {
|
|
|
+ finVouchersItems.setAmountCr(finGenleg.getAmountCr());
|
|
|
+ finVouchersItems.setAmountCrLoc(finGenleg.getAmountCr());
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
} else {
|
|
|
- if (new BigDecimal("0.00").compareTo(finGenleg.getAmountCrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountDrUsd(finGenleg.getAmountCrUsd());
|
|
|
- finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ if (new BigDecimal("0.00").compareTo(finGenleg.getAmountDr()) != 0) {
|
|
|
+ finVouchersItems.setAmountDr(finGenleg.getAmountDr());
|
|
|
+ finVouchersItems.setAmountDrLoc(finGenleg.getAmountDr());
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- finVouchersItems.setExrate(new BigDecimal("1"));
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- if (new BigDecimal("0.00").compareTo(finGenleg.getAmountDrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountCr(finGenleg.getAmountDrUsd());
|
|
|
+ if (!"CNY".equals(item.getCurCode())) {
|
|
|
+ finVouchersItems.setExrate(periodExchangeRate.getExrate());
|
|
|
+ if ("D".equals(item.getDc())) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(finGenleg.getAmountDrUsd()) != 0) {
|
|
|
+ finVouchersItems.setAmountCrUsd(finGenleg.getAmountDrUsd());
|
|
|
+ finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrLoc(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
} else {
|
|
|
- continue;
|
|
|
+ if (new BigDecimal("0.00").compareTo(finGenleg.getAmountCrUsd()) != 0) {
|
|
|
+ finVouchersItems.setAmountDrUsd(finGenleg.getAmountCrUsd());
|
|
|
+ finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountDrLoc(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
- if (new BigDecimal("0.00").compareTo(finGenleg.getAmountCrUsd()) != 0) {
|
|
|
- finVouchersItems.setAmountDr(finGenleg.getAmountCrUsd());
|
|
|
+ finVouchersItems.setExrate(new BigDecimal("1"));
|
|
|
+ if ("D".equals(item.getDc())) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(finGenleg.getAmountDr()) != 0) {
|
|
|
+ finVouchersItems.setAmountCr(finGenleg.getAmountDr());
|
|
|
+ finVouchersItems.setAmountCrLoc(finGenleg.getAmountDr());
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
} else {
|
|
|
- continue;
|
|
|
+ if (new BigDecimal("0.00").compareTo(finGenleg.getAmountCr()) != 0) {
|
|
|
+ finVouchersItems.setAmountDr(finGenleg.getAmountCr());
|
|
|
+ finVouchersItems.setAmountDrLoc(finGenleg.getAmountCr());
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1190,6 +1312,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
} else {
|
|
|
throw new RuntimeException("未找到对应科目信息");
|
|
|
}
|
|
|
+
|
|
|
BigDecimal amountDrCNY = new BigDecimal("0.00");
|
|
|
BigDecimal amountCrCNY = new BigDecimal("0.00");
|
|
|
BigDecimal amountDrUSD = new BigDecimal("0.00");
|
|
|
@@ -1197,27 +1320,34 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
BigDecimal amountDrLoc = new BigDecimal("0.00");
|
|
|
BigDecimal amountCrLoc = new BigDecimal("0.00");
|
|
|
amountDrCNY = amountDrCNY.add(finVouchersItemsList.stream()
|
|
|
- .filter(e -> "CNY".equals(e.getCurCode()) && "D".equals(e.getDc())).map(FinVouchersItems::getAmountDr)
|
|
|
- .filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ .filter(e -> "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FinVouchersItems::getAmountDr).filter(ObjectUtils::isNotNull).
|
|
|
+ reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
amountCrCNY = amountCrCNY.add(finVouchersItemsList.stream()
|
|
|
- .filter(e -> "CNY".equals(e.getCurCode()) && "C".equals(e.getDc())).map(FinVouchersItems::getAmountCr)
|
|
|
- .filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ .filter(e -> "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FinVouchersItems::getAmountCr).filter(ObjectUtils::isNotNull)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
amountDrUSD = amountDrUSD.add(finVouchersItemsList.stream()
|
|
|
- .filter(e -> !"CNY".equals(e.getCurCode()) && "D".equals(e.getDc())).map(FinVouchersItems::getAmountDrUsd)
|
|
|
+ .filter(e -> !"CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FinVouchersItems::getAmountDrUsd)
|
|
|
.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
amountCrUSD = amountCrUSD.add(finVouchersItemsList.stream()
|
|
|
- .filter(e -> !"CNY".equals(e.getCurCode()) && "C".equals(e.getDc())).map(FinVouchersItems::getAmountCrUsd)
|
|
|
+ .filter(e -> !"CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FinVouchersItems::getAmountCrUsd)
|
|
|
.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
amountDrLoc = amountDrLoc.add(finVouchersItemsList.stream()
|
|
|
- .filter(e -> "D".equals(e.getDc())).map(FinVouchersItems::getAmountDrLoc)
|
|
|
+ .filter(e -> "D".equals(e.getDc()))
|
|
|
+ .map(FinVouchersItems::getAmountDrLoc)
|
|
|
.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
amountCrLoc = amountCrLoc.add(finVouchersItemsList.stream()
|
|
|
- .filter(e -> "C".equals(e.getDc())).map(FinVouchersItems::getAmountCrLoc)
|
|
|
+ .filter(e -> "C".equals(e.getDc()))
|
|
|
+ .map(FinVouchersItems::getAmountCrLoc)
|
|
|
.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
finVouchers.setDescr(periodVouchersTemplate.getDescr());
|
|
|
if (finVouchersItemsList.stream().anyMatch(e -> !"CNY".equals(e.getCurCode()))) {
|
|
|
finVouchers.setIsForeign(1);
|
|
|
}
|
|
|
+
|
|
|
FinVouchersItems finVouchersItems = new FinVouchersItems();
|
|
|
finVouchersItems.setCreateTime(new Date());
|
|
|
finVouchersItems.setCreateUser(AuthUtil.getUserId());
|
|
|
@@ -1235,6 +1365,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
finVouchersItems.setAccountYear(finVouchers.getAccountYear());
|
|
|
finVouchersItems.setAccountMonth(finVouchers.getAccountMonth());
|
|
|
finVouchersItems.setAccountDay(finVouchers.getAccountDay());
|
|
|
+ finVouchersItems.setExrate(new BigDecimal("1.00"));
|
|
|
Accounts accounts = accountsService.getById(periodVouchersTemplate.getPlAccID());
|
|
|
if (accounts == null) {
|
|
|
throw new RuntimeException("科目:" + periodVouchersTemplate.getPlAccCnm() + "不存在");
|
|
|
@@ -1247,28 +1378,48 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
finVouchersItems.setAccountLevel(accounts.getLevel());
|
|
|
finVouchersItems.setDc(accounts.getDc());
|
|
|
finVouchersItems.setCurCode(accounts.getCurCode());
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
if (!"CNY".equals(accounts.getCurCode())) {
|
|
|
throw new RuntimeException("科目:" + periodVouchersTemplate.getPlAccCnm() + "币别不是CNY");
|
|
|
}
|
|
|
- if ("FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
|
|
|
- BigDecimal subtract = amountDrLoc.subtract(amountCrLoc);
|
|
|
- if ("D".equals(accounts.getDc())) {
|
|
|
- finVouchersItems.setAmountDr(subtract);
|
|
|
- finVouchersItems.setAmountDrLoc(subtract);
|
|
|
- } else {
|
|
|
- finVouchersItems.setAmountCr(subtract);
|
|
|
- finVouchersItems.setAmountCrLoc(subtract);
|
|
|
- }
|
|
|
+
|
|
|
+ BigDecimal subtract = amountDrLoc.subtract(amountCrLoc);
|
|
|
+ if ("D".equals(accounts.getDc())) {
|
|
|
+ finVouchersItems.setAmountDr(subtract);
|
|
|
+ finVouchersItems.setAmountDrLoc(subtract);
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
+ finVouchersItems.setAmountCr(subtract);
|
|
|
+ finVouchersItems.setAmountCrLoc(subtract);
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
+ /*} else {
|
|
|
BigDecimal subtract = amountDrLoc.subtract(amountCrLoc);
|
|
|
if ("D".equals(accounts.getDc())) {
|
|
|
finVouchersItems.setAmountCr(subtract);
|
|
|
finVouchersItems.setAmountCrLoc(subtract);
|
|
|
+
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
finVouchersItems.setAmountDr(subtract);
|
|
|
finVouchersItems.setAmountDrLoc(subtract);
|
|
|
+
|
|
|
+ finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
finVouchersItemsList.add(finVouchersItems);
|
|
|
finVouchers.setAmountDr(amountDrCNY.add(finVouchersItems.getAmountDr()));
|
|
|
finVouchers.setAmountCr(amountCrCNY.add(finVouchersItems.getAmountCr()));
|