|
|
@@ -2323,12 +2323,16 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
bills.setAmountCrUsd(amountCrUsd);
|
|
|
bills.setAmountProfitUsd(amountProfitUsd);
|
|
|
bills.setAmountDrLoc(amountDrLoc);
|
|
|
+ BigDecimal exrateD = ibCurrencyService.getCnyExrate(new Date(), "USD", "D", "1");
|
|
|
if ("USD".equals(curCode)) {
|
|
|
bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountDrUsd));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountDrUsd));
|
|
|
} else if ("CNY".equals(curCode)) {
|
|
|
bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountDr));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountDr.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
} else {
|
|
|
bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountDrLoc));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountDrLoc.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
}
|
|
|
bills.setAmountCrLoc(amountCrLoc);
|
|
|
bills.setAmountProfitLoc(amountProfitLoc);
|
|
|
@@ -2464,6 +2468,17 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
bills.setAmountDrLoc(amountDrLoc);
|
|
|
bills.setAmountCrLoc(amountCrLoc);
|
|
|
bills.setAmountProfitLoc(amountProfitLoc);
|
|
|
+ BigDecimal exrateD = ibCurrencyService.getCnyExrate(new Date(), "USD", "D", "1");
|
|
|
+ if ("USD".equals(curCode)) {
|
|
|
+ bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountDrUsd));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountDrUsd));
|
|
|
+ } else if ("CNY".equals(curCode)) {
|
|
|
+ bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountDr));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountDr.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
+ } else {
|
|
|
+ bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountDrLoc));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountDrLoc.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
+ }
|
|
|
List<BCorpsBank> bCorpsBanks = bankService.list(new LambdaQueryWrapper<BCorpsBank>()
|
|
|
.eq(BCorpsBank::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(BCorpsBank::getIsDeleted, 0)
|
|
|
@@ -2653,12 +2668,16 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
bills.setAmountProfitUsd(amountProfitUsd);
|
|
|
bills.setAmountDrLoc(amountDrLoc);
|
|
|
bills.setAmountCrLoc(amountCrLoc);
|
|
|
+ BigDecimal exrateD = ibCurrencyService.getCnyExrate(new Date(), "USD", "C", "1");
|
|
|
if ("USD".equals(curCode)) {
|
|
|
bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountCrUsd));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountCrUsd));
|
|
|
} else if ("CNY".equals(curCode)) {
|
|
|
bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountCr));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountCr.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
} else {
|
|
|
bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountCrLoc));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountCrLoc.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
}
|
|
|
bills.setAmountProfitLoc(amountProfitLoc);
|
|
|
bills.setDept(dept);
|
|
|
@@ -2789,6 +2808,17 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
bills.setAmountDrLoc(amountDrLoc);
|
|
|
bills.setAmountCrLoc(amountCrLoc);
|
|
|
bills.setAmountProfitLoc(amountProfitLoc);
|
|
|
+ BigDecimal exrateD = ibCurrencyService.getCnyExrate(new Date(), "USD", "C", "1");
|
|
|
+ if ("USD".equals(curCode)) {
|
|
|
+ bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountCrUsd));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountCrUsd));
|
|
|
+ } else if ("CNY".equals(curCode)) {
|
|
|
+ bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountCr));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountCr.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
+ } else {
|
|
|
+ bills.setCapitalLetters(BigDecimalUtils.convertToEnglish(amountCrLoc));
|
|
|
+ bills.setCapitalLettersUsd(BigDecimalUtils.convertToEnglish(amountCrLoc.divide(exrateD, 2, RoundingMode.HALF_UP)));
|
|
|
+ }
|
|
|
bills.setDept(dept);
|
|
|
map.put(MagicValues.DATA, bills);
|
|
|
} else {
|
|
|
@@ -3075,8 +3105,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
throw new RuntimeException("请先维护费用");
|
|
|
}
|
|
|
list.add(0, bills);
|
|
|
- }
|
|
|
- else if (MagicValues.MH.equals(bills.getBillType())) {
|
|
|
+ } else if (MagicValues.MH.equals(bills.getBillType())) {
|
|
|
// 分单
|
|
|
Bills details = billsService.getOne(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getId, bills.getMasterId())
|
|
|
@@ -6035,9 +6064,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
List<FeeCenterReports> feeCenters1 = feeCenterReportsList1.stream()
|
|
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
|
|
|
- /*List<FeeCenterReports> feeCenters2 = feeCenterReportsList2.stream()
|
|
|
- .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
- Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));*/
|
|
|
BigDecimal amountDr = new BigDecimal("0.00");
|
|
|
BigDecimal amountCr = new BigDecimal("0.00");
|
|
|
BigDecimal amountDrUsd = new BigDecimal("0.00");
|
|
|
@@ -6053,7 +6079,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
// 排序
|
|
|
List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
|
|
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
- Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
|
|
|
+ Comparator.comparing(f -> f.getFeeCnName() + f.getBillCorpCnName()))), ArrayList::new));
|
|
|
+ /*List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));*/
|
|
|
+ List<FeeCenterReports> feeCenterReportsNewC = new ArrayList<>();
|
|
|
int countC = 0;
|
|
|
// 遍历应收,并与应付对应
|
|
|
for (int i = 0; i < feeCentersD.size(); i++) {
|
|
|
@@ -6065,25 +6095,53 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
feeCenterReports1.setReportType(fee.getReportType());
|
|
|
feeCenterReports1.setDc(fee.getDc());
|
|
|
feeCenterReports1.setBillCorpCnName(fee.getBillCorpCnName());
|
|
|
- feeCenterReports1.setAmountD(fee.getAmountD());
|
|
|
- feeCenterReports1.setAmountLocD(fee.getAmountLocD());
|
|
|
- feeCenterReports1.setAmountUsdD(fee.getAmountUsdD());
|
|
|
- amountDr = amountDr.add(ObjectUtils.isNotNull(fee.getAmountD()) ? fee.getAmountD() : new BigDecimal("0.00"));
|
|
|
- amountDrUsd = amountDrUsd.add(ObjectUtils.isNotNull(fee.getAmountUsdD()) ? fee.getAmountUsdD() : new BigDecimal("0.00"));
|
|
|
- FeeCenterReports feeCenterC = feeCenterReportsC.stream()
|
|
|
- .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && !"1".equals(e.getMark())).findFirst().orElse(null);
|
|
|
+ List<FeeCenterReports> feeCenterD = feeCenterReportsD.stream().filter(e -> e.getFeeCnName().equals(fee.getFeeCnName())
|
|
|
+ && fee.getBillCorpCnName().equals(e.getBillCorpCnName())).collect(Collectors.toList());
|
|
|
+ if (!feeCenterD.isEmpty()) {
|
|
|
+ feeCenterReports1.setAmountD(feeCenterD.stream().map(FeeCenterReports::getAmountD)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ feeCenterReports1.setAmountLocD(feeCenterD.stream().map(FeeCenterReports::getAmountLocD)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ feeCenterReports1.setAmountUsdD(feeCenterD.stream().map(FeeCenterReports::getAmountUsdD)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ amountDr = amountDr.add(feeCenterReports1.getAmountD());
|
|
|
+ amountDrUsd = amountDrUsd.add(feeCenterReports1.getAmountUsdD());
|
|
|
+ }
|
|
|
+ List<FeeCenterReports> feeCenterC = feeCenterReportsC.stream().filter(e -> e.getFeeCnName().equals(fee.getFeeCnName())
|
|
|
+ && !"1".equals(e.getMark())).collect(Collectors.toList());
|
|
|
if (feeCenterC != null) {
|
|
|
- feeCenterC.setMark("1");
|
|
|
- feeCenterReports1.setCorpCnName(feeCenterC.getCorpCnName());
|
|
|
- feeCenterReports1.setAmountC(feeCenterC.getAmountC());
|
|
|
- feeCenterReports1.setAmountLocC(feeCenterC.getAmountLocC());
|
|
|
- feeCenterReports1.setAmountUsdC(feeCenterC.getAmountUsdC());
|
|
|
- amountCr = amountCr.add(ObjectUtils.isNotNull(feeCenterC.getAmountC()) ? feeCenterC.getAmountC() : new BigDecimal("0.00"));
|
|
|
- amountCrUsd = amountCrUsd.add(ObjectUtils.isNotNull(feeCenterC.getAmountUsdC()) ? feeCenterC.getAmountUsdC() : new BigDecimal("0.00"));
|
|
|
- countC++;
|
|
|
+ for (FeeCenterReports itemC : feeCenterC){
|
|
|
+ itemC.setMark("1");
|
|
|
+ if (ObjectUtils.isNull(feeCenterReports1.getCorpCnName())){
|
|
|
+ feeCenterReports1.setCorpCnName(itemC.getCorpCnName());
|
|
|
+ feeCenterReports1.setAmountC(ObjectUtils.isNotNull(itemC.getAmountC())?itemC.getAmountC():new BigDecimal("0.00"));
|
|
|
+ feeCenterReports1.setAmountLocC(ObjectUtils.isNotNull(itemC.getAmountLocC())?itemC.getAmountLocC():new BigDecimal("0.00"));
|
|
|
+ feeCenterReports1.setAmountUsdC(ObjectUtils.isNotNull(itemC.getAmountUsdC())?itemC.getAmountUsdC():new BigDecimal("0.00"));
|
|
|
+ amountCr = amountCr.add(feeCenterReports1.getAmountC());
|
|
|
+ amountCrUsd = amountCrUsd.add(feeCenterReports1.getAmountUsdC());
|
|
|
+ }else{
|
|
|
+ FeeCenterReports feeCenterReports2 = new FeeCenterReports();
|
|
|
+ feeCenterReports2.setFeeCnName(fee.getFeeCnName());
|
|
|
+ feeCenterReports2.setHblno(fee.getHblno());
|
|
|
+ feeCenterReports2.setPid(fee.getPid());
|
|
|
+ feeCenterReports2.setReportType(fee.getReportType());
|
|
|
+ feeCenterReports2.setDc("C");
|
|
|
+ feeCenterReports2.setCorpCnName(itemC.getCorpCnName());
|
|
|
+ feeCenterReports2.setAmountC(ObjectUtils.isNotNull(itemC.getAmountC())?itemC.getAmountC():new BigDecimal("0.00"));
|
|
|
+ feeCenterReports2.setAmountLocC(ObjectUtils.isNotNull(itemC.getAmountLocC())?itemC.getAmountLocC():new BigDecimal("0.00"));
|
|
|
+ feeCenterReports2.setAmountUsdC(ObjectUtils.isNotNull(itemC.getAmountUsdC())?itemC.getAmountUsdC():new BigDecimal("0.00"));
|
|
|
+ amountCr = amountCr.add(feeCenterReports1.getAmountC());
|
|
|
+ amountCrUsd = amountCrUsd.add(feeCenterReports1.getAmountUsdC());
|
|
|
+ feeCenterReportsNewC.add(feeCenterReports2);
|
|
|
+ }
|
|
|
+ countC++;
|
|
|
+ }
|
|
|
}
|
|
|
feeCenterReports.add(feeCenterReports1);
|
|
|
}
|
|
|
+ if (!feeCenterReportsNewC.isEmpty()){
|
|
|
+ feeCenterReports.addAll(feeCenterReportsNewC);
|
|
|
+ }
|
|
|
// 如果存在未对应的应付,添加应付费用
|
|
|
if (countC < feeCenterReportsC.size()) {
|
|
|
List<FeeCenterReports> feeCe = feeCenterReportsC.stream()
|