|
|
@@ -135,26 +135,9 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
if ("1".equals(financeProfit.getMergeAmendFee())) {
|
|
|
financeProfitList = baseMapper.financeProfitList(financeProfit, page);
|
|
|
String mblno = financeProfitList.stream().map(FinanceProfitDtoList::getMblNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(","));
|
|
|
- LambdaQueryWrapper<Amends> lambdaQueryWrapper = new LambdaQueryWrapper<Amends>()
|
|
|
- .eq(Amends::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Amends::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(mblno,'" + mblno + "')");
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
|
|
|
- lambdaQueryWrapper.eq(Amends::getStatus, 3);
|
|
|
- }
|
|
|
- lambdaQueryWrapper.gt(ObjectUtils.isNotNull(financeProfit.getStatisticsDateStart()), Amends::getEtd, financeProfit.getStatisticsDateStart());
|
|
|
- lambdaQueryWrapper.lt(ObjectUtils.isNotNull(financeProfit.getStatisticsDateEnd()), Amends::getEtd, financeProfit.getStatisticsDateEnd());
|
|
|
- List<Amends> amendsList = amendsMapper.selectList(lambdaQueryWrapper);
|
|
|
- List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- if (!amendsList.isEmpty()) {
|
|
|
- List<Long> pids = amendsList.stream().map(Amends::getId).collect(Collectors.toList());
|
|
|
- if (!pids.isEmpty()) {
|
|
|
- feeCenterList = feeCenterMapper.selectList(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .in(FeeCenter::getPid, pids));
|
|
|
- }
|
|
|
- }
|
|
|
+ financeProfit.setBillType("SEA,SIA,AEA,AIA");
|
|
|
+ financeProfit.setMblNo(mblno);
|
|
|
+ List<FinanceProfitDtoList> financeProfitDtoListAmend = baseMapper.financeProfitSumList(financeProfit);
|
|
|
for (FinanceProfitDtoList item : financeProfitList) {
|
|
|
item.setRealAmountCr(item.getRealAmountCr() == null ? new BigDecimal("0.00") : item.getRealAmountCr());
|
|
|
item.setAmountCrUsd(item.getAmountCrUsd() == null ? new BigDecimal("0.00") : item.getAmountCrUsd());
|
|
|
@@ -169,71 +152,35 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
item.setRealAmountDrLoc(item.getRealAmountDrLoc() == null ? new BigDecimal("0.00") : item.getRealAmountDrLoc());
|
|
|
item.setAmountProfitLoc(item.getAmountProfitLoc() == null ? new BigDecimal("0.00") : item.getAmountProfitLoc());
|
|
|
item.setRealAmountProfitLoc(item.getRealAmountProfitLoc() == null ? new BigDecimal("0.00") : item.getRealAmountProfitLoc());
|
|
|
- if (!amendsList.isEmpty() && !feeCenterList.isEmpty()) {
|
|
|
+ if (!financeProfitDtoListAmend.isEmpty()) {
|
|
|
//获取当前业务类型所有amend
|
|
|
- List<Amends> amends = amendsList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
- item.setWhetherExist(amends.size());
|
|
|
- for (Amends i : amends) {
|
|
|
- //人民币应收金额
|
|
|
- BigDecimal feeCentersCD = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币实收金额
|
|
|
- BigDecimal feeCentersCDReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币应付金额
|
|
|
- BigDecimal feeCentersCC = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币实付金额
|
|
|
- BigDecimal feeCentersCCReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金应收金额
|
|
|
- BigDecimal feeCentersUD = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金实收金额
|
|
|
- BigDecimal feeCentersUDReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金应付金额
|
|
|
- BigDecimal feeCentersUC = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金实付金额
|
|
|
- BigDecimal feeCentersUCReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //应收合计金额
|
|
|
- BigDecimal feeCentersUDLoc = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //实收合计金额
|
|
|
- BigDecimal feeCentersUDRealLoc = feeCenterList.stream().filter(e -> i.getId().equals(e.getPid()) && "D".equals(e.getDc()))
|
|
|
- .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getStlTtlAmount().multiply(y.getExrate())), BigDecimal::add)
|
|
|
- .setScale(2, RoundingMode.HALF_UP);
|
|
|
- //应付合计金额
|
|
|
- BigDecimal feeCentersUCLoc = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //实付合计金额
|
|
|
- BigDecimal feeCentersUCRealLoc = feeCenterList.stream().filter(e -> i.getId().equals(e.getPid()) && "C".equals(e.getDc()))
|
|
|
- .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getStlTtlAmount().multiply(y.getExrate())), BigDecimal::add)
|
|
|
- .setScale(2, RoundingMode.HALF_UP);
|
|
|
- item.setAmountCr(item.getAmountCr().add(feeCentersCC));
|
|
|
- item.setRealAmountCr(item.getRealAmountCr().add(feeCentersCCReal));
|
|
|
- item.setAmountCrUsd(item.getAmountCrUsd().add(feeCentersUC));
|
|
|
- item.setRealAmountCrUsd(item.getRealAmountCrUsd().add(feeCentersUCReal));
|
|
|
- item.setAmountCrLoc(item.getAmountCrLoc().add(feeCentersUCLoc));
|
|
|
- item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(feeCentersUCRealLoc));
|
|
|
- item.setAmountDr(item.getAmountDr().add(feeCentersCD));
|
|
|
- item.setRealAmountDr(item.getRealAmountDr().add(feeCentersCDReal));
|
|
|
- item.setAmountDrUsd(item.getAmountDrUsd().add(feeCentersUD));
|
|
|
- item.setRealAmountDrUsd(item.getRealAmountDrUsd().add(feeCentersUDReal));
|
|
|
- item.setAmountDrLoc(item.getAmountDrLoc().add(feeCentersUDLoc));
|
|
|
- item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(feeCentersUDRealLoc));
|
|
|
+ List<FinanceProfitDtoList> amends = financeProfitDtoListAmend.stream().filter(e -> e.getMblNo().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
+ if (!amends.isEmpty()) {
|
|
|
+ item.setWhetherExist(amends.size());
|
|
|
+ item.setAmountDr(item.getAmountDr().add(amends.stream().map(FinanceProfitDtoList::getAmountDr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDr(item.getRealAmountDr().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountDrUsd(item.getAmountDrUsd().add(amends.stream().map(FinanceProfitDtoList::getAmountDrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDrUsd(item.getRealAmountDrUsd().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountDrLoc(item.getAmountDrLoc().add(amends.stream().map(FinanceProfitDtoList::getAmountDrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCr(item.getAmountCr().add(amends.stream().map(FinanceProfitDtoList::getAmountCr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCr(item.getRealAmountCr().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCrUsd(item.getAmountCrUsd().add(amends.stream().map(FinanceProfitDtoList::getAmountCrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCrUsd(item.getRealAmountCrUsd().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCrLoc(item.getAmountCrLoc().add(amends.stream().map(FinanceProfitDtoList::getAmountCrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
@@ -299,7 +246,7 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
lambdaQueryWrapper.eq(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
} else if (AuthUtil.getUserRole().contains("客服")) {
|
|
|
lambdaQueryWrapper.like(Bills::getCustomerServiceId, AuthUtil.getUserId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
}
|
|
|
lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
@@ -335,7 +282,7 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
lambdaQueryWrapperSI.eq(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
} else if (AuthUtil.getUserRole().contains("客服")) {
|
|
|
lambdaQueryWrapper.like(Bills::getCustomerServiceId, AuthUtil.getUserId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
lambdaQueryWrapperSI.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
}
|
|
|
lambdaQueryWrapperSI.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
@@ -470,7 +417,7 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
lambdaQueryWrapper.eq(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
} else if (AuthUtil.getUserRole().contains("客服")) {
|
|
|
lambdaQueryWrapper.like(Bills::getCustomerServiceId, AuthUtil.getUserId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
}
|
|
|
lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
@@ -507,7 +454,7 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
lambdaQueryWrapperSI.eq(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
} else if (AuthUtil.getUserRole().contains("客服")) {
|
|
|
lambdaQueryWrapper.like(Bills::getCustomerServiceId, AuthUtil.getUserId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
lambdaQueryWrapperSI.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
}
|
|
|
lambdaQueryWrapperSI.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
@@ -1042,26 +989,9 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
if ("1".equals(financeProfit.getMergeAmendFee())) {
|
|
|
financeProfitList = baseMapper.financeProfitSumList(financeProfit);
|
|
|
String mblno = financeProfitList.stream().map(FinanceProfitDtoList::getMblNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(","));
|
|
|
- LambdaQueryWrapper<Amends> lambdaQueryWrapper = new LambdaQueryWrapper<Amends>()
|
|
|
- .eq(Amends::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Amends::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(mblno,'" + mblno + "')");
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
|
|
|
- lambdaQueryWrapper.eq(Amends::getStatus, 3);
|
|
|
- }
|
|
|
- lambdaQueryWrapper.gt(ObjectUtils.isNotNull(financeProfit.getStatisticsDateStart()), Amends::getEtd, financeProfit.getStatisticsDateStart());
|
|
|
- lambdaQueryWrapper.lt(ObjectUtils.isNotNull(financeProfit.getStatisticsDateEnd()), Amends::getEtd, financeProfit.getStatisticsDateEnd());
|
|
|
- List<Amends> amendsList = amendsMapper.selectList(lambdaQueryWrapper);
|
|
|
- List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- if (!amendsList.isEmpty()) {
|
|
|
- List<Long> pids = amendsList.stream().map(Amends::getId).collect(Collectors.toList());
|
|
|
- if (!pids.isEmpty()) {
|
|
|
- feeCenterList = feeCenterMapper.selectList(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .in(FeeCenter::getPid, pids));
|
|
|
- }
|
|
|
- }
|
|
|
+ financeProfit.setBillType("SEA,SIA,AEA,AIA");
|
|
|
+ financeProfit.setMblNo(mblno);
|
|
|
+ List<FinanceProfitDtoList> financeProfitDtoListAmend = baseMapper.financeProfitSumList(financeProfit);
|
|
|
for (FinanceProfitDtoList item : financeProfitList) {
|
|
|
item.setRealAmountCr(item.getRealAmountCr() == null ? new BigDecimal("0.00") : item.getRealAmountCr());
|
|
|
item.setAmountCrUsd(item.getAmountCrUsd() == null ? new BigDecimal("0.00") : item.getAmountCrUsd());
|
|
|
@@ -1076,76 +1006,37 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
item.setRealAmountDrLoc(item.getRealAmountDrLoc() == null ? new BigDecimal("0.00") : item.getRealAmountDrLoc());
|
|
|
item.setAmountProfitLoc(item.getAmountProfitLoc() == null ? new BigDecimal("0.00") : item.getAmountProfitLoc());
|
|
|
item.setRealAmountProfitLoc(item.getRealAmountProfitLoc() == null ? new BigDecimal("0.00") : item.getRealAmountProfitLoc());
|
|
|
- if (!amendsList.isEmpty() && !feeCenterList.isEmpty()) {
|
|
|
- //获取当前业务类型所有amend
|
|
|
- List<Amends> amends = amendsList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
- for (Amends i : amends) {
|
|
|
- //人民币应收金额
|
|
|
- BigDecimal feeCentersCD = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币实收金额
|
|
|
- BigDecimal feeCentersCDReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币应付金额
|
|
|
- BigDecimal feeCentersCC = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币实付金额
|
|
|
- BigDecimal feeCentersCCReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金应收金额
|
|
|
- BigDecimal feeCentersUD = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金实收金额
|
|
|
- BigDecimal feeCentersUDReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金应付金额
|
|
|
- BigDecimal feeCentersUC = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金实付金额
|
|
|
- BigDecimal feeCentersUCReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //应收合计金额
|
|
|
- BigDecimal feeCentersUDLoc = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //实收合计金额
|
|
|
- BigDecimal feeCentersUDRealLoc = feeCenterList.stream().filter(e -> i.getId().equals(e.getPid()) && "D".equals(e.getDc()))
|
|
|
- .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getStlTtlAmount().multiply(y.getExrate())), BigDecimal::add)
|
|
|
- .setScale(2, RoundingMode.HALF_UP);
|
|
|
- //应付合计金额
|
|
|
- BigDecimal feeCentersUCLoc = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //实付合计金额
|
|
|
- BigDecimal feeCentersUCRealLoc = feeCenterList.stream().filter(e -> i.getId().equals(e.getPid()) && "C".equals(e.getDc()))
|
|
|
- .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getStlTtlAmount().multiply(y.getExrate())), BigDecimal::add)
|
|
|
- .setScale(2, RoundingMode.HALF_UP);
|
|
|
- item.setAmountCr(item.getAmountCr().add(feeCentersCC));
|
|
|
- item.setRealAmountCr(item.getRealAmountCr().add(feeCentersCCReal));
|
|
|
- item.setAmountCrUsd(item.getAmountCrUsd().add(feeCentersUC));
|
|
|
- item.setRealAmountCrUsd(item.getRealAmountCrUsd().add(feeCentersUCReal));
|
|
|
- item.setAmountCrLoc(item.getAmountCrLoc().add(feeCentersUCLoc));
|
|
|
- item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(feeCentersUCRealLoc));
|
|
|
- item.setAmountDr(item.getAmountDr().add(feeCentersCD));
|
|
|
- item.setRealAmountDr(item.getRealAmountDr().add(feeCentersCDReal));
|
|
|
- item.setAmountDrUsd(item.getAmountDrUsd().add(feeCentersUD));
|
|
|
- item.setRealAmountDrUsd(item.getRealAmountDrUsd().add(feeCentersUDReal));
|
|
|
- item.setAmountDrLoc(item.getAmountDrLoc().add(feeCentersUDLoc));
|
|
|
- item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(feeCentersUDRealLoc));
|
|
|
- item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ //获取当前业务类型所有amend
|
|
|
+ List<FinanceProfitDtoList> amends = financeProfitDtoListAmend.stream().filter(e -> e.getMblNo().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
+ if (!amends.isEmpty()) {
|
|
|
+ item.setWhetherExist(amends.size());
|
|
|
+ item.setAmountDr(item.getAmountDr().add(amends.stream().map(FinanceProfitDtoList::getAmountDr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDr(item.getRealAmountDr().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountDrUsd(item.getAmountDrUsd().add(amends.stream().map(FinanceProfitDtoList::getAmountDrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDrUsd(item.getRealAmountDrUsd().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountDrLoc(item.getAmountDrLoc().add(amends.stream().map(FinanceProfitDtoList::getAmountDrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCr(item.getAmountCr().add(amends.stream().map(FinanceProfitDtoList::getAmountCr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCr(item.getRealAmountCr().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCrUsd(item.getAmountCrUsd().add(amends.stream().map(FinanceProfitDtoList::getAmountCrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCrUsd(item.getRealAmountCrUsd().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCrLoc(item.getAmountCrLoc().add(amends.stream().map(FinanceProfitDtoList::getAmountCrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
+ item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
} else {
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getBillType())) {
|
|
|
@@ -1224,26 +1115,9 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getMergeAmendFee())) {
|
|
|
financeProfitList = baseMapper.financeProfitSumList(financeProfit);
|
|
|
String mblno = financeProfitList.stream().map(FinanceProfitDtoList::getMblNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(","));
|
|
|
- LambdaQueryWrapper<Amends> lambdaQueryWrapper = new LambdaQueryWrapper<Amends>()
|
|
|
- .eq(Amends::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Amends::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(mblno,'" + mblno + "')");
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
|
|
|
- lambdaQueryWrapper.eq(Amends::getStatus, 3);
|
|
|
- }
|
|
|
- lambdaQueryWrapper.gt(ObjectUtils.isNotNull(financeProfit.getStatisticsDateStart()), Amends::getEtd, financeProfit.getStatisticsDateStart());
|
|
|
- lambdaQueryWrapper.lt(ObjectUtils.isNotNull(financeProfit.getStatisticsDateEnd()), Amends::getEtd, financeProfit.getStatisticsDateEnd());
|
|
|
- List<Amends> amendsList = amendsMapper.selectList(lambdaQueryWrapper);
|
|
|
- List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- if (!amendsList.isEmpty()) {
|
|
|
- List<Long> pids = amendsList.stream().map(Amends::getId).collect(Collectors.toList());
|
|
|
- if (!pids.isEmpty()) {
|
|
|
- feeCenterList = feeCenterMapper.selectList(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .in(FeeCenter::getPid, pids));
|
|
|
- }
|
|
|
- }
|
|
|
+ financeProfit.setBillType("SEA,SIA,AEA,AIA");
|
|
|
+ financeProfit.setMblNo(mblno);
|
|
|
+ List<FinanceProfitDtoList> financeProfitDtoListAmend = baseMapper.financeProfitSumList(financeProfit);
|
|
|
for (FinanceProfitDtoList item : financeProfitList) {
|
|
|
item.setRealAmountCr(item.getRealAmountCr() == null ? new BigDecimal("0.00") : item.getRealAmountCr());
|
|
|
item.setAmountCrUsd(item.getAmountCrUsd() == null ? new BigDecimal("0.00") : item.getAmountCrUsd());
|
|
|
@@ -1258,76 +1132,37 @@ public class StatisticAnalysisServiceImpl extends ServiceImpl<FinanceProfitMappe
|
|
|
item.setRealAmountDrLoc(item.getRealAmountDrLoc() == null ? new BigDecimal("0.00") : item.getRealAmountDrLoc());
|
|
|
item.setAmountProfitLoc(item.getAmountProfitLoc() == null ? new BigDecimal("0.00") : item.getAmountProfitLoc());
|
|
|
item.setRealAmountProfitLoc(item.getRealAmountProfitLoc() == null ? new BigDecimal("0.00") : item.getRealAmountProfitLoc());
|
|
|
- if (!amendsList.isEmpty() && !feeCenterList.isEmpty()) {
|
|
|
- //获取当前业务类型所有amend
|
|
|
- List<Amends> amends = amendsList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
- for (Amends i : amends) {
|
|
|
- //人民币应收金额
|
|
|
- BigDecimal feeCentersCD = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币实收金额
|
|
|
- BigDecimal feeCentersCDReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币应付金额
|
|
|
- BigDecimal feeCentersCC = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //人民币实付金额
|
|
|
- BigDecimal feeCentersCCReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金应收金额
|
|
|
- BigDecimal feeCentersUD = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金实收金额
|
|
|
- BigDecimal feeCentersUDReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金应付金额
|
|
|
- BigDecimal feeCentersUC = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //美金实付金额
|
|
|
- BigDecimal feeCentersUCReal = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "USD".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //应收合计金额
|
|
|
- BigDecimal feeCentersUDLoc = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //实收合计金额
|
|
|
- BigDecimal feeCentersUDRealLoc = feeCenterList.stream().filter(e -> i.getId().equals(e.getPid()) && "D".equals(e.getDc()))
|
|
|
- .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getStlTtlAmount().multiply(y.getExrate())), BigDecimal::add)
|
|
|
- .setScale(2, RoundingMode.HALF_UP);
|
|
|
- //应付合计金额
|
|
|
- BigDecimal feeCentersUCLoc = feeCenterList.stream()
|
|
|
- .filter(e -> i.getId().equals(e.getPid()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
|
|
|
- //实付合计金额
|
|
|
- BigDecimal feeCentersUCRealLoc = feeCenterList.stream().filter(e -> i.getId().equals(e.getPid()) && "C".equals(e.getDc()))
|
|
|
- .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getStlTtlAmount().multiply(y.getExrate())), BigDecimal::add)
|
|
|
- .setScale(2, RoundingMode.HALF_UP);
|
|
|
- item.setAmountCr(item.getAmountCr().add(feeCentersCC));
|
|
|
- item.setRealAmountCr(item.getRealAmountCr().add(feeCentersCCReal));
|
|
|
- item.setAmountCrUsd(item.getAmountCrUsd().add(feeCentersUC));
|
|
|
- item.setRealAmountCrUsd(item.getRealAmountCrUsd().add(feeCentersUCReal));
|
|
|
- item.setAmountCrLoc(item.getAmountCrLoc().add(feeCentersUCLoc));
|
|
|
- item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(feeCentersUCRealLoc));
|
|
|
- item.setAmountDr(item.getAmountDr().add(feeCentersCD));
|
|
|
- item.setRealAmountDr(item.getRealAmountDr().add(feeCentersCDReal));
|
|
|
- item.setAmountDrUsd(item.getAmountDrUsd().add(feeCentersUD));
|
|
|
- item.setRealAmountDrUsd(item.getRealAmountDrUsd().add(feeCentersUDReal));
|
|
|
- item.setAmountDrLoc(item.getAmountDrLoc().add(feeCentersUDLoc));
|
|
|
- item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(feeCentersUDRealLoc));
|
|
|
- item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ //获取当前业务类型所有amend
|
|
|
+ List<FinanceProfitDtoList> amends = financeProfitDtoListAmend.stream().filter(e -> e.getMblNo().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
+ if (!amends.isEmpty()) {
|
|
|
+ item.setWhetherExist(amends.size());
|
|
|
+ item.setAmountDr(item.getAmountDr().add(amends.stream().map(FinanceProfitDtoList::getAmountDr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDr(item.getRealAmountDr().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountDrUsd(item.getAmountDrUsd().add(amends.stream().map(FinanceProfitDtoList::getAmountDrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDrUsd(item.getRealAmountDrUsd().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountDrLoc(item.getAmountDrLoc().add(amends.stream().map(FinanceProfitDtoList::getAmountDrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(amends.stream().map(FinanceProfitDtoList::getRealAmountDrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCr(item.getAmountCr().add(amends.stream().map(FinanceProfitDtoList::getAmountCr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCr(item.getRealAmountCr().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCr)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCrUsd(item.getAmountCrUsd().add(amends.stream().map(FinanceProfitDtoList::getAmountCrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCrUsd(item.getRealAmountCrUsd().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCrUsd)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountCrLoc(item.getAmountCrLoc().add(amends.stream().map(FinanceProfitDtoList::getAmountCrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(amends.stream().map(FinanceProfitDtoList::getRealAmountCrLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
+ item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
} else {
|
|
|
financeProfit.setBillType(financeProfit.getBillType() + ",SEA,SIA,AEA,AIA");
|