|
|
@@ -45,8 +45,6 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.MathContext;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.text.DateFormat;
|
|
|
-import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -127,16 +125,16 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
}
|
|
|
}
|
|
|
List<FinanceProfitDtoList> financeProfitList = new ArrayList<>();
|
|
|
- BigDecimal exrateC = bCurrencyService.getCnyExrate(null,"USD", "C", "2");
|
|
|
- BigDecimal exrateD = bCurrencyService.getCnyExrate(null,"USD", "D", "2");
|
|
|
+ BigDecimal exrateC = bCurrencyService.getCnyExrate(null, "USD", "C", "2");
|
|
|
+ BigDecimal exrateD = bCurrencyService.getCnyExrate(null, "USD", "D", "2");
|
|
|
//是否合并amend费用 true 合并 false 不合并
|
|
|
if ("1".equals(financeProfit.getMergeAmendFee())) {
|
|
|
financeProfitList = financeProfitMapper.financeProfit(financeProfit, page);
|
|
|
- String billNo = financeProfitList.stream().map(FinanceProfitDtoList::getBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(","));
|
|
|
+ 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(orig_bill_no,'" + billNo + "')");
|
|
|
+ .apply("find_in_set(mblno,'" + mblno + "')");
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
|
|
|
lambdaQueryWrapper.eq(Amends::getStatus, 3);
|
|
|
}
|
|
|
@@ -151,147 +149,73 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
.in(FeeCenter::getPid, pids));
|
|
|
}
|
|
|
}
|
|
|
- List<FinanceProfitDtoList> financeProfits = new ArrayList<>();
|
|
|
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());
|
|
|
+ item.setRealAmountCrUsd(item.getRealAmountCrUsd() == null ? new BigDecimal("0.00") : item.getRealAmountCrUsd());
|
|
|
+ item.setAmountCrLoc(item.getAmountCrLoc() == null ? new BigDecimal("0.00") : item.getAmountCrLoc());
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc() == null ? new BigDecimal("0.00") : item.getRealAmountCrLoc());
|
|
|
+ item.setAmountDr(item.getAmountDr() == null ? new BigDecimal("0.00") : item.getAmountDr());
|
|
|
+ item.setRealAmountDr(item.getRealAmountDr() == null ? new BigDecimal("0.00") : item.getRealAmountDr());
|
|
|
+ item.setAmountDrUsd(item.getAmountDrUsd() == null ? new BigDecimal("0.00") : item.getAmountDrUsd());
|
|
|
+ item.setRealAmountDrUsd(item.getRealAmountDrUsd() == null ? new BigDecimal("0.00") : item.getRealAmountDrUsd());
|
|
|
+ item.setAmountDrLoc(item.getAmountDrLoc() == null ? new BigDecimal("0.00") : item.getAmountDrLoc());
|
|
|
+ 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.getBillNo().equals(item.getBillNo())).collect(Collectors.toList());
|
|
|
+ List<Amends> amends = amendsList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
for (Amends i : amends) {
|
|
|
- //当前业务不属于当期业务,需新插入一条记录
|
|
|
- FinanceProfitDtoList financeProfit1 = new FinanceProfitDtoList();
|
|
|
- financeProfit1.setBillType(i.getBusinessType());
|
|
|
- financeProfit1.setBillNo(i.getBillNo());
|
|
|
- financeProfit1.setHblNo(i.getHblno());
|
|
|
- financeProfit1.setMblNo(i.getMblno());
|
|
|
- financeProfit1.setCorpName(i.getCorpCnName());
|
|
|
- financeProfit1.setSalesman(i.getOperatorName());
|
|
|
- financeProfit1.setPod(i.getPodCnName());
|
|
|
- financeProfit1.setPol(i.getPolCnName());
|
|
|
- financeProfit1.setVesselCnName(i.getVesselCnName());
|
|
|
- financeProfit1.setVoyageNo(i.getVoyageNo());
|
|
|
- financeProfit1.setLineCnName(i.getLineCnName());
|
|
|
- financeProfit1.setCarrierCnName(i.getCarrierCnName());
|
|
|
- financeProfit1.setOperatorName(i.getOperatorName());
|
|
|
- Date statisticsDateStart;
|
|
|
- Date statisticsDateEnd;
|
|
|
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- //判断账期时间是否为空
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getStatisticsDateStart()) &&
|
|
|
- ObjectUtils.isNotNull(financeProfit.getStatisticsDateEnd())) {
|
|
|
- try {
|
|
|
- statisticsDateStart = dateFormat.parse(financeProfit.getStatisticsDateStart());
|
|
|
- statisticsDateEnd = dateFormat.parse(financeProfit.getStatisticsDateEnd());
|
|
|
- //人民币应收金额
|
|
|
- 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);
|
|
|
- //是否按审核日期
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getExamineDate())) {
|
|
|
- //是否为本期 true 合并 false 不合并
|
|
|
- if (i.getApprovedDate().compareTo(statisticsDateStart) >= 0 &&
|
|
|
- i.getApprovedDate().compareTo(statisticsDateEnd) <= 0) {
|
|
|
- item.setAmountCr(feeCentersCC);
|
|
|
- item.setRealAmountCr(feeCentersCCReal);
|
|
|
- item.setAmountCrUsd(feeCentersUC);
|
|
|
- item.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- item.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setAmountDr(feeCentersCD);
|
|
|
- item.setRealAmountDr(feeCentersCDReal);
|
|
|
- item.setAmountDrUsd(feeCentersUD);
|
|
|
- item.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- item.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- 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 {
|
|
|
- financeProfit1.setAmountCr(feeCentersCC);
|
|
|
- financeProfit1.setRealAmountCr(feeCentersCCReal);
|
|
|
- financeProfit1.setAmountCrUsd(feeCentersUC);
|
|
|
- financeProfit1.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- financeProfit1.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountDr(feeCentersCD);
|
|
|
- financeProfit1.setRealAmountDr(feeCentersCDReal);
|
|
|
- financeProfit1.setAmountDrUsd(feeCentersUD);
|
|
|
- financeProfit1.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- financeProfit1.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- } else {
|
|
|
- //是否为本期 true 合并 false 不合并
|
|
|
- if (i.getBillDate().compareTo(statisticsDateStart) >= 0 &&
|
|
|
- i.getBillDate().compareTo(statisticsDateEnd) <= 0) {
|
|
|
- item.setAmountCr(feeCentersCC);
|
|
|
- item.setRealAmountCr(feeCentersCCReal);
|
|
|
- item.setAmountCrUsd(feeCentersUC);
|
|
|
- item.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- item.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setAmountDr(feeCentersCD);
|
|
|
- item.setRealAmountDr(feeCentersCDReal);
|
|
|
- item.setAmountDrUsd(feeCentersUD);
|
|
|
- item.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- item.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- 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 {
|
|
|
- financeProfit1.setAmountCr(feeCentersCC);
|
|
|
- financeProfit1.setRealAmountCr(feeCentersCCReal);
|
|
|
- financeProfit1.setAmountCrUsd(feeCentersUC);
|
|
|
- financeProfit1.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- financeProfit1.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountDr(feeCentersCD);
|
|
|
- financeProfit1.setRealAmountDr(feeCentersCDReal);
|
|
|
- financeProfit1.setAmountDrUsd(feeCentersUD);
|
|
|
- financeProfit1.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- financeProfit1.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (ParseException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
- financeProfits.add(financeProfit1);
|
|
|
- }
|
|
|
+ //人民币应收金额
|
|
|
+ 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);
|
|
|
+ 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(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ 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(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setAmountProfitLoc(item.getAmountProfitLoc().add(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountProfitLoc(item.getRealAmountProfitLoc().add(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- financeProfitList.addAll(financeProfits);
|
|
|
} else {
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getBillType())) {
|
|
|
financeProfit.setBillType(financeProfit.getBillType() + ",SEA,SIA,AEA,AIA");
|
|
|
@@ -358,9 +282,9 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
}
|
|
|
lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
}
|
|
|
- }else if ("2".equals(jurisdiction)) {
|
|
|
+ } else if ("2".equals(jurisdiction)) {
|
|
|
//动态权限不做任何处理
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
lambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
}
|
|
|
@@ -525,9 +449,9 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
}
|
|
|
lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
}
|
|
|
- }else if ("2".equals(jurisdiction)) {
|
|
|
+ } else if ("2".equals(jurisdiction)) {
|
|
|
//动态权限不做任何处理
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
lambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
}
|
|
|
@@ -1080,16 +1004,16 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
}
|
|
|
}
|
|
|
List<FinanceProfitDtoList> financeProfitList = new ArrayList<>();
|
|
|
- BigDecimal exrateC = bCurrencyService.getCnyExrate(null,"USD", "C", "2");
|
|
|
- BigDecimal exrateD = bCurrencyService.getCnyExrate(null,"USD", "D", "2");
|
|
|
+ BigDecimal exrateC = bCurrencyService.getCnyExrate(null, "USD", "C", "2");
|
|
|
+ BigDecimal exrateD = bCurrencyService.getCnyExrate(null, "USD", "D", "2");
|
|
|
//是否合并amend费用 true 合并 false 不合并
|
|
|
if ("1".equals(financeProfit.getMergeAmendFee())) {
|
|
|
financeProfitList = financeProfitMapper.financeProfitSum(financeProfit);
|
|
|
- String billNo = financeProfitList.stream().map(FinanceProfitDtoList::getBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(","));
|
|
|
+ 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(orig_bill_no,'" + billNo + "')");
|
|
|
+ .apply("find_in_set(mblno,'" + mblno + "')");
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
|
|
|
lambdaQueryWrapper.eq(Amends::getStatus, 3);
|
|
|
}
|
|
|
@@ -1104,147 +1028,73 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
.in(FeeCenter::getPid, pids));
|
|
|
}
|
|
|
}
|
|
|
- List<FinanceProfitDtoList> financeProfits = new ArrayList<>();
|
|
|
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());
|
|
|
+ item.setRealAmountCrUsd(item.getRealAmountCrUsd() == null ? new BigDecimal("0.00") : item.getRealAmountCrUsd());
|
|
|
+ item.setAmountCrLoc(item.getAmountCrLoc() == null ? new BigDecimal("0.00") : item.getAmountCrLoc());
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc() == null ? new BigDecimal("0.00") : item.getRealAmountCrLoc());
|
|
|
+ item.setAmountDr(item.getAmountDr() == null ? new BigDecimal("0.00") : item.getAmountDr());
|
|
|
+ item.setRealAmountDr(item.getRealAmountDr() == null ? new BigDecimal("0.00") : item.getRealAmountDr());
|
|
|
+ item.setAmountDrUsd(item.getAmountDrUsd() == null ? new BigDecimal("0.00") : item.getAmountDrUsd());
|
|
|
+ item.setRealAmountDrUsd(item.getRealAmountDrUsd() == null ? new BigDecimal("0.00") : item.getRealAmountDrUsd());
|
|
|
+ item.setAmountDrLoc(item.getAmountDrLoc() == null ? new BigDecimal("0.00") : item.getAmountDrLoc());
|
|
|
+ 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.getBillNo().equals(item.getBillNo())).collect(Collectors.toList());
|
|
|
+ List<Amends> amends = amendsList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
for (Amends i : amends) {
|
|
|
- //当前业务不属于当期业务,需新插入一条记录
|
|
|
- FinanceProfitDtoList financeProfit1 = new FinanceProfitDtoList();
|
|
|
- financeProfit1.setBillType(i.getBusinessType());
|
|
|
- financeProfit1.setBillNo(i.getBillNo());
|
|
|
- financeProfit1.setHblNo(i.getHblno());
|
|
|
- financeProfit1.setMblNo(i.getMblno());
|
|
|
- financeProfit1.setCorpName(i.getCorpCnName());
|
|
|
- financeProfit1.setSalesman(i.getOperatorName());
|
|
|
- financeProfit1.setPod(i.getPodCnName());
|
|
|
- financeProfit1.setPol(i.getPolCnName());
|
|
|
- financeProfit1.setVesselCnName(i.getVesselCnName());
|
|
|
- financeProfit1.setVoyageNo(i.getVoyageNo());
|
|
|
- financeProfit1.setLineCnName(i.getLineCnName());
|
|
|
- financeProfit1.setCarrierCnName(i.getCarrierCnName());
|
|
|
- financeProfit1.setOperatorName(i.getOperatorName());
|
|
|
- Date statisticsDateStart;
|
|
|
- Date statisticsDateEnd;
|
|
|
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- //判断账期时间是否为空
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getStatisticsDateStart()) &&
|
|
|
- ObjectUtils.isNotNull(financeProfit.getStatisticsDateEnd())) {
|
|
|
- try {
|
|
|
- statisticsDateStart = dateFormat.parse(financeProfit.getStatisticsDateStart());
|
|
|
- statisticsDateEnd = dateFormat.parse(financeProfit.getStatisticsDateEnd());
|
|
|
- //人民币应收金额
|
|
|
- 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);
|
|
|
- //是否按审核日期
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getExamineDate())) {
|
|
|
- //是否为本期 true 合并 false 不合并
|
|
|
- if (i.getApprovedDate().compareTo(statisticsDateStart) >= 0 &&
|
|
|
- i.getApprovedDate().compareTo(statisticsDateEnd) <= 0) {
|
|
|
- item.setAmountCr(feeCentersCC);
|
|
|
- item.setRealAmountCr(feeCentersCCReal);
|
|
|
- item.setAmountCrUsd(feeCentersUC);
|
|
|
- item.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- item.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setAmountDr(feeCentersCD);
|
|
|
- item.setRealAmountDr(feeCentersCDReal);
|
|
|
- item.setAmountDrUsd(feeCentersUD);
|
|
|
- item.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- item.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- 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 {
|
|
|
- financeProfit1.setAmountCr(feeCentersCC);
|
|
|
- financeProfit1.setRealAmountCr(feeCentersCCReal);
|
|
|
- financeProfit1.setAmountCrUsd(feeCentersUC);
|
|
|
- financeProfit1.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- financeProfit1.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountDr(feeCentersCD);
|
|
|
- financeProfit1.setRealAmountDr(feeCentersCDReal);
|
|
|
- financeProfit1.setAmountDrUsd(feeCentersUD);
|
|
|
- financeProfit1.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- financeProfit1.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- } else {
|
|
|
- //是否为本期 true 合并 false 不合并
|
|
|
- if (i.getBillDate().compareTo(statisticsDateStart) >= 0 &&
|
|
|
- i.getBillDate().compareTo(statisticsDateEnd) <= 0) {
|
|
|
- item.setAmountCr(feeCentersCC);
|
|
|
- item.setRealAmountCr(feeCentersCCReal);
|
|
|
- item.setAmountCrUsd(feeCentersUC);
|
|
|
- item.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- item.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setAmountDr(feeCentersCD);
|
|
|
- item.setRealAmountDr(feeCentersCDReal);
|
|
|
- item.setAmountDrUsd(feeCentersUD);
|
|
|
- item.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- item.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- 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 {
|
|
|
- financeProfit1.setAmountCr(feeCentersCC);
|
|
|
- financeProfit1.setRealAmountCr(feeCentersCCReal);
|
|
|
- financeProfit1.setAmountCrUsd(feeCentersUC);
|
|
|
- financeProfit1.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- financeProfit1.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountDr(feeCentersCD);
|
|
|
- financeProfit1.setRealAmountDr(feeCentersCDReal);
|
|
|
- financeProfit1.setAmountDrUsd(feeCentersUD);
|
|
|
- financeProfit1.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- financeProfit1.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (ParseException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
- financeProfits.add(financeProfit1);
|
|
|
- }
|
|
|
+ //人民币应收金额
|
|
|
+ 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);
|
|
|
+ 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(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ 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(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setAmountProfitLoc(item.getAmountProfitLoc().add(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountProfitLoc(item.getRealAmountProfitLoc().add(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- financeProfitList.addAll(financeProfits);
|
|
|
} else {
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getBillType())) {
|
|
|
financeProfit.setBillType(financeProfit.getBillType() + ",SEA,SIA,AEA,AIA");
|
|
|
@@ -1309,16 +1159,16 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
}
|
|
|
}
|
|
|
List<FinanceProfitDtoList> financeProfitList = new ArrayList<>();
|
|
|
- BigDecimal exrateC = bCurrencyService.getCnyExrate(null,"USD", "C", "2");
|
|
|
- BigDecimal exrateD = bCurrencyService.getCnyExrate(null,"USD", "D", "2");
|
|
|
+ BigDecimal exrateC = bCurrencyService.getCnyExrate(null, "USD", "C", "2");
|
|
|
+ BigDecimal exrateD = bCurrencyService.getCnyExrate(null, "USD", "D", "2");
|
|
|
//是否合并amend费用 true 合并 false 不合并
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getMergeAmendFee())) {
|
|
|
financeProfitList = financeProfitMapper.financeProfitSum(financeProfit);
|
|
|
- String billNo = financeProfitList.stream().map(FinanceProfitDtoList::getBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(","));
|
|
|
+ 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(orig_bill_no,'" + billNo + "')");
|
|
|
+ .apply("find_in_set(mblno,'" + mblno + "')");
|
|
|
if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
|
|
|
lambdaQueryWrapper.eq(Amends::getStatus, 3);
|
|
|
}
|
|
|
@@ -1333,147 +1183,73 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
.in(FeeCenter::getPid, pids));
|
|
|
}
|
|
|
}
|
|
|
- List<FinanceProfitDtoList> financeProfits = new ArrayList<>();
|
|
|
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());
|
|
|
+ item.setRealAmountCrUsd(item.getRealAmountCrUsd() == null ? new BigDecimal("0.00") : item.getRealAmountCrUsd());
|
|
|
+ item.setAmountCrLoc(item.getAmountCrLoc() == null ? new BigDecimal("0.00") : item.getAmountCrLoc());
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc() == null ? new BigDecimal("0.00") : item.getRealAmountCrLoc());
|
|
|
+ item.setAmountDr(item.getAmountDr() == null ? new BigDecimal("0.00") : item.getAmountDr());
|
|
|
+ item.setRealAmountDr(item.getRealAmountDr() == null ? new BigDecimal("0.00") : item.getRealAmountDr());
|
|
|
+ item.setAmountDrUsd(item.getAmountDrUsd() == null ? new BigDecimal("0.00") : item.getAmountDrUsd());
|
|
|
+ item.setRealAmountDrUsd(item.getRealAmountDrUsd() == null ? new BigDecimal("0.00") : item.getRealAmountDrUsd());
|
|
|
+ item.setAmountDrLoc(item.getAmountDrLoc() == null ? new BigDecimal("0.00") : item.getAmountDrLoc());
|
|
|
+ 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.getBillNo().equals(item.getBillNo())).collect(Collectors.toList());
|
|
|
+ List<Amends> amends = amendsList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).collect(Collectors.toList());
|
|
|
for (Amends i : amends) {
|
|
|
- //当前业务不属于当期业务,需新插入一条记录
|
|
|
- FinanceProfitDtoList financeProfit1 = new FinanceProfitDtoList();
|
|
|
- financeProfit1.setBillType(i.getBusinessType());
|
|
|
- financeProfit1.setBillNo(i.getBillNo());
|
|
|
- financeProfit1.setHblNo(i.getHblno());
|
|
|
- financeProfit1.setMblNo(i.getMblno());
|
|
|
- financeProfit1.setCorpName(i.getCorpCnName());
|
|
|
- financeProfit1.setSalesman(i.getOperatorName());
|
|
|
- financeProfit1.setPod(i.getPodCnName());
|
|
|
- financeProfit1.setPol(i.getPolCnName());
|
|
|
- financeProfit1.setVesselCnName(i.getVesselCnName());
|
|
|
- financeProfit1.setVoyageNo(i.getVoyageNo());
|
|
|
- financeProfit1.setLineCnName(i.getLineCnName());
|
|
|
- financeProfit1.setCarrierCnName(i.getCarrierCnName());
|
|
|
- financeProfit1.setOperatorName(i.getOperatorName());
|
|
|
- Date statisticsDateStart;
|
|
|
- Date statisticsDateEnd;
|
|
|
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- //判断账期时间是否为空
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getStatisticsDateStart()) &&
|
|
|
- ObjectUtils.isNotNull(financeProfit.getStatisticsDateEnd())) {
|
|
|
- try {
|
|
|
- statisticsDateStart = dateFormat.parse(financeProfit.getStatisticsDateStart());
|
|
|
- statisticsDateEnd = dateFormat.parse(financeProfit.getStatisticsDateEnd());
|
|
|
- //人民币应收金额
|
|
|
- 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);
|
|
|
- //是否按审核日期
|
|
|
- if (ObjectUtils.isNotNull(financeProfit.getExamineDate())) {
|
|
|
- //是否为本期 true 合并 false 不合并
|
|
|
- if (i.getApprovedDate().compareTo(statisticsDateStart) >= 0 &&
|
|
|
- i.getApprovedDate().compareTo(statisticsDateEnd) <= 0) {
|
|
|
- item.setAmountCr(feeCentersCC);
|
|
|
- item.setRealAmountCr(feeCentersCCReal);
|
|
|
- item.setAmountCrUsd(feeCentersUC);
|
|
|
- item.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- item.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setAmountDr(feeCentersCD);
|
|
|
- item.setRealAmountDr(feeCentersCDReal);
|
|
|
- item.setAmountDrUsd(feeCentersUD);
|
|
|
- item.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- item.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- 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 {
|
|
|
- financeProfit1.setAmountCr(feeCentersCC);
|
|
|
- financeProfit1.setRealAmountCr(feeCentersCCReal);
|
|
|
- financeProfit1.setAmountCrUsd(feeCentersUC);
|
|
|
- financeProfit1.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- financeProfit1.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountDr(feeCentersCD);
|
|
|
- financeProfit1.setRealAmountDr(feeCentersCDReal);
|
|
|
- financeProfit1.setAmountDrUsd(feeCentersUD);
|
|
|
- financeProfit1.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- financeProfit1.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- } else {
|
|
|
- //是否为本期 true 合并 false 不合并
|
|
|
- if (i.getBillDate().compareTo(statisticsDateStart) >= 0 &&
|
|
|
- i.getBillDate().compareTo(statisticsDateEnd) <= 0) {
|
|
|
- item.setAmountCr(feeCentersCC);
|
|
|
- item.setRealAmountCr(feeCentersCCReal);
|
|
|
- item.setAmountCrUsd(feeCentersUC);
|
|
|
- item.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- item.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setAmountDr(feeCentersCD);
|
|
|
- item.setRealAmountDr(feeCentersCDReal);
|
|
|
- item.setAmountDrUsd(feeCentersUD);
|
|
|
- item.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- item.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- 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 {
|
|
|
- financeProfit1.setAmountCr(feeCentersCC);
|
|
|
- financeProfit1.setRealAmountCr(feeCentersCCReal);
|
|
|
- financeProfit1.setAmountCrUsd(feeCentersUC);
|
|
|
- financeProfit1.setRealAmountCrUsd(feeCentersUCReal);
|
|
|
- financeProfit1.setAmountCrLoc(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountCrLoc(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountDr(feeCentersCD);
|
|
|
- financeProfit1.setRealAmountDr(feeCentersCDReal);
|
|
|
- financeProfit1.setAmountDrUsd(feeCentersUD);
|
|
|
- financeProfit1.setRealAmountDrUsd(feeCentersUDReal);
|
|
|
- financeProfit1.setAmountDrLoc(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountDrLoc(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- financeProfit1.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (ParseException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
- financeProfits.add(financeProfit1);
|
|
|
- }
|
|
|
+ //人民币应收金额
|
|
|
+ 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);
|
|
|
+ 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(feeCentersUC.multiply(exrateC).add(feeCentersCC).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountCrLoc(item.getRealAmountCrLoc().add(feeCentersUCReal.multiply(exrateC).add(feeCentersCCReal).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ 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(feeCentersUD.multiply(exrateD).add(feeCentersCD).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountDrLoc(item.getRealAmountDrLoc().add(feeCentersUDReal.multiply(exrateD).add(feeCentersCDReal).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setAmountProfitLoc(item.getAmountProfitLoc().add(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ item.setRealAmountProfitLoc(item.getRealAmountProfitLoc().add(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- financeProfitList.addAll(financeProfits);
|
|
|
} else {
|
|
|
financeProfit.setBillType(financeProfit.getBillType() + ",SEA,SIA,AEA,AIA");
|
|
|
financeProfitList = financeProfitMapper.financeProfitSum(financeProfit);
|
|
|
@@ -2206,4 +1982,53 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
}
|
|
|
return feeSettlementExcelList;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R<Map<String, Object>> arrivalReminder() {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ int day = 5;
|
|
|
+ Date date = new Date();
|
|
|
+ String arrivalReminderDay = sysClient.getParamService("arrival.reminder");
|
|
|
+ if (ObjectUtils.isNotNull(arrivalReminderDay)) {
|
|
|
+ day = Integer.parseInt(arrivalReminderDay);
|
|
|
+ }
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, -day);
|
|
|
+ Date date1 = calendar.getTime();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getBranchId, AuthUtil.getDeptId())
|
|
|
+ .apply("DATE_FORMAT(eta,'%Y-%m-%d') > '" + sdf.format(date1) + "' and DATE_FORMAT(eta,'%Y-%m-%d') <= '" + sdf.format(date)+"'");
|
|
|
+ map.put("arrivalReminder", billsMapper.selectCount(lambdaQueryWrapper));
|
|
|
+ return R.data(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R<IPage<Bills>> arrivalReminderList(Bills bills, Query query) {
|
|
|
+ int day = 5;
|
|
|
+ Date date = new Date();
|
|
|
+ String arrivalReminderDay = sysClient.getParamService("arrival.reminder");
|
|
|
+ if (ObjectUtils.isNotNull(arrivalReminderDay)) {
|
|
|
+ day = Integer.parseInt(arrivalReminderDay);
|
|
|
+ }
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, -day);
|
|
|
+ Date date1 = calendar.getTime();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getBranchId, AuthUtil.getDeptId())
|
|
|
+ .like(ObjectUtils.isNotNull(bills.getBillNo()), Bills::getBillNo, bills.getBillNo())
|
|
|
+ .and(ObjectUtils.isNotNull(bills.getCorpCnName()), i -> i.like(Bills::getCorpCnName, bills.getCorpCnName()).or()
|
|
|
+ .like(Bills::getCorpEnName, bills.getCorpCnName()))
|
|
|
+ .like(ObjectUtils.isNotNull(bills.getBillNo()), Bills::getBillNo, bills.getBillNo())
|
|
|
+ .apply("DATE_FORMAT(eta,'%Y-%m-%d') > '" + sdf.format(date1) + "' and DATE_FORMAT(eta,'%Y-%m-%d') <= '" + sdf.format(date)+"'");
|
|
|
+ IPage<Bills> billsIPage = billsMapper.selectPage(Condition.getPage(query), lambdaQueryWrapper);
|
|
|
+ return R.data(billsIPage);
|
|
|
+ }
|
|
|
}
|