|
|
@@ -39,6 +39,8 @@ import org.springblade.los.business.aea.entity.AeaBills;
|
|
|
import org.springblade.los.business.aea.service.IAeaBillsService;
|
|
|
import org.springblade.los.business.amends.entity.Amends;
|
|
|
import org.springblade.los.business.amends.service.IAmendsService;
|
|
|
+import org.springblade.los.business.customsDeclaration.entity.CustomsDeclaration;
|
|
|
+import org.springblade.los.business.customsDeclaration.service.ICustomsDeclarationService;
|
|
|
import org.springblade.los.business.sea.dto.ContainersReports;
|
|
|
import org.springblade.los.business.sea.entity.Bills;
|
|
|
import org.springblade.los.business.sea.entity.Containers;
|
|
|
@@ -89,6 +91,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
|
|
|
private final IAeaBillsService aeaBillsService;
|
|
|
|
|
|
+ private final ICustomsDeclarationService customsDeclarationService;
|
|
|
+
|
|
|
private final IBCorpsBankService bankService;
|
|
|
|
|
|
private final IFeeCenterService feeCenterService;
|
|
|
@@ -3649,6 +3653,333 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
} else {
|
|
|
map.put(MagicValues.DATA, null);
|
|
|
}
|
|
|
+ } else if ((MagicValues.BGSE.equals(type) || MagicValues.BGSI.equals(type) || MagicValues.BGAE.equals(type) || MagicValues.BGAI.equals(type))
|
|
|
+ && MagicValues.SALES_REPORT.equals(groupCode)
|
|
|
+ && (MagicValues.BGSE.equals(type) || MagicValues.BGSI.equals(type) || MagicValues.BGAE.equals(type) || MagicValues.BGAI.equals(type))) {
|
|
|
+ List<CustomsDeclaration> list = new ArrayList<>();
|
|
|
+ CustomsDeclaration bills = customsDeclarationService.getById(billId);
|
|
|
+ if (bills != null) {
|
|
|
+ if (bCurrency != null) {
|
|
|
+ bills.setRate(bCurrency.getExrate());
|
|
|
+ } else {
|
|
|
+ bills.setRate(new BigDecimal(MagicValues.ZERO));
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(bills.getAmountProfitLoc()) && ObjectUtils.isNotNull(bills.getAmountDrLoc())) {
|
|
|
+ if (bills.getAmountProfitLoc().compareTo(new BigDecimal(MagicValues.ZERO)) == 0 ||
|
|
|
+ bills.getAmountDrLoc().compareTo(new BigDecimal(MagicValues.ZERO)) == 0) {
|
|
|
+ bills.setGrossMargin(new BigDecimal(MagicValues.ZERO));
|
|
|
+ } else {
|
|
|
+ bills.setGrossMargin(bills.getAmountProfitLoc().divide(bills.getAmountDrLoc(), 4, BigDecimal.ROUND_HALF_UP));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ bills.setGrossMargin(new BigDecimal(MagicValues.ZERO));
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getPid, bills.getId())
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0));
|
|
|
+ if (feeCenterList.size() > 0) {
|
|
|
+ List<FeeCenter> feeCenters = feeCenterList.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode()))), ArrayList::new));
|
|
|
+ List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
|
|
|
+ for (FeeCenter fee : feeCenters) {
|
|
|
+ FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
+ feeCenterReports.setPid(bills.getId());
|
|
|
+ feeCenterReports.setFeeCnName(fee.getFeeCnName());
|
|
|
+ feeCenterReports.setDc(fee.getDc());
|
|
|
+ List<FeeCenter> feeCenterListD = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.D.equals(e.getDc()) && e.getPid().equals(bills.getId()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && MagicValues.CNY.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getCorpId().equals(fee.getCorpId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (feeCenterListD.size() > 0) {
|
|
|
+ feeCenterReports.setBillCorpCnName(fee.getCorpCnName());
|
|
|
+ feeCenterReports.setAmountD(feeCenterListD.stream().map(FeeCenter::getAmount)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ feeCenterReports.setAmountLocD(feeCenterListD.stream().map(FeeCenter::getAmountLoc)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterListUsdD = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.D.equals(e.getDc()) && e.getPid().equals(bills.getId()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && MagicValues.USD.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getCorpId().equals(fee.getCorpId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (feeCenterListUsdD.size() > 0) {
|
|
|
+ feeCenterReports.setBillCorpCnName(fee.getCorpCnName());
|
|
|
+ feeCenterReports.setAmountUsdD(feeCenterListUsdD.stream().map(FeeCenter::getAmount)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ feeCenterReports.setAmountLocD(feeCenterListUsdD.stream().map(FeeCenter::getAmountLoc)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterListC = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.C.equals(e.getDc()) && e.getPid().equals(bills.getId()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && MagicValues.CNY.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getCorpId().equals(fee.getCorpId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (feeCenterListC.size() > 0) {
|
|
|
+ feeCenterReports.setCorpCnName(fee.getCorpCnName());
|
|
|
+ feeCenterReports.setAmountC(feeCenterListC.stream().map(FeeCenter::getAmount)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ feeCenterReports.setAmountLocC(feeCenterListC.stream().map(FeeCenter::getAmountLoc)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterListUsdC = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.C.equals(e.getDc()) && e.getPid().equals(bills.getId()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && MagicValues.USD.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getCorpId().equals(fee.getCorpId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (feeCenterListUsdC.size() > 0) {
|
|
|
+ feeCenterReports.setCorpCnName(fee.getCorpCnName());
|
|
|
+ feeCenterReports.setAmountUsdC(feeCenterListUsdC.stream().map(FeeCenter::getAmount)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ feeCenterReports.setAmountLocC(feeCenterListUsdC.stream().map(FeeCenter::getAmountLoc)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ feeCenterReportList.add(feeCenterReports);
|
|
|
+ }
|
|
|
+ bills.setFeeCenterList(feeCenterReportList);
|
|
|
+ }
|
|
|
+ list.add(0, bills);
|
|
|
+ if (list.size() > 0) {
|
|
|
+ for (CustomsDeclaration item : list) {
|
|
|
+ List<FeeCenterReports> feeCenterReports = new ArrayList<>();
|
|
|
+ List<FeeCenterReports> feeCenterReportsD = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList()) == null ? new ArrayList<>() :
|
|
|
+ item.getFeeCenterList().stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ List<FeeCenterReports> feeCenterReportsC = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList()) == null ? new ArrayList<>() :
|
|
|
+ item.getFeeCenterList().stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName() + e.getBillCorpCnName()))), ArrayList::new));
|
|
|
+ List<FeeCenterReports> feeCentersC = feeCenterReportsC.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName() + e.getCorpCnName()))), ArrayList::new));
|
|
|
+ int countD = 0;
|
|
|
+ int countC = 0;
|
|
|
+ for (int i = 0; i < feeCentersD.size(); i++) {
|
|
|
+ FeeCenterReports feeCenterReports1 = new FeeCenterReports();
|
|
|
+ feeCenterReports1.setFeeCnName(feeCentersD.get(i).getFeeCnName());
|
|
|
+ feeCenterReports1.setHblno(feeCentersD.get(i).getHblno());
|
|
|
+ feeCenterReports1.setPid(feeCentersD.get(i).getPid());
|
|
|
+ int finalI = i;
|
|
|
+ FeeCenterReports feeCenterC = feeCenterReportsC.stream()
|
|
|
+ .filter(e -> e.getFeeCnName().equals(feeCentersD.get(finalI).getFeeCnName()) && !"1".equals(e.getMark())).findFirst().orElse(null);
|
|
|
+ feeCenterReports1.setBillCorpCnName(feeCentersD.get(i).getBillCorpCnName());
|
|
|
+ feeCenterReports1.setAmountD(feeCentersD.get(i).getAmountD());
|
|
|
+ feeCenterReports1.setAmountLocD(feeCentersD.get(i).getAmountLocD());
|
|
|
+ feeCenterReports1.setAmountUsdD(feeCentersD.get(i).getAmountUsdD());
|
|
|
+ if (feeCenterC != null) {
|
|
|
+ feeCenterC.setMark("1");
|
|
|
+ feeCenterReports1.setCorpCnName(feeCenterC.getCorpCnName());
|
|
|
+ feeCenterReports1.setAmountC(feeCenterC.getAmountC());
|
|
|
+ feeCenterReports1.setAmountLocC(feeCenterC.getAmountLocC());
|
|
|
+ feeCenterReports1.setAmountUsdC(feeCenterC.getAmountUsdC());
|
|
|
+ countC++;
|
|
|
+ }
|
|
|
+ feeCenterReports.add(feeCenterReports1);
|
|
|
+ }
|
|
|
+ if (countC < feeCenterReportsC.size()) {
|
|
|
+ List<String> corps = feeCenterReports.stream().map(FeeCenterReports::getCorpCnName).collect(Collectors.toList());
|
|
|
+ List<FeeCenterReports> feeCe = feeCenterReportsC.stream().filter(e -> !corps.contains(e.getCorpCnName())).collect(Collectors.toList());
|
|
|
+ for (FeeCenterReports i : feeCe) {
|
|
|
+ FeeCenterReports feeCenterReports1 = new FeeCenterReports();
|
|
|
+ feeCenterReports1.setFeeCnName(i.getFeeCnName());
|
|
|
+ feeCenterReports1.setHblno(i.getHblno());
|
|
|
+ feeCenterReports1.setPid(i.getPid());
|
|
|
+ feeCenterReports1.setCorpCnName(i.getCorpCnName());
|
|
|
+ feeCenterReports1.setAmountC(i.getAmountC());
|
|
|
+ feeCenterReports1.setAmountLocC(i.getAmountLocC());
|
|
|
+ feeCenterReports1.setAmountUsdC(i.getAmountUsdC());
|
|
|
+ feeCenterReports.add(feeCenterReports1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.setFeeCenterList(feeCenterReports);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put(MagicValues.DATA, list);
|
|
|
+ }
|
|
|
+ } else if ((MagicValues.BGSE.equals(type) || MagicValues.BGSI.equals(type) || MagicValues.BGAE.equals(type) || MagicValues.BGAI.equals(type))
|
|
|
+ && MagicValues.RECEIVABLE.equals(groupCode)
|
|
|
+ && (MagicValues.BGSE.equals(type) || MagicValues.BGSI.equals(type) || MagicValues.BGAE.equals(type) || MagicValues.BGAI.equals(type))) {
|
|
|
+ CustomsDeclaration bills = customsDeclarationService.getById(billId);
|
|
|
+ if (bills != null) {
|
|
|
+// bills.setFM(MagicValues.FM);
|
|
|
+// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
+ List<FeeCenter> feeCenterList;
|
|
|
+ LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getDc, MagicValues.D)
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0);
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getPid, bills.getId());
|
|
|
+ if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
+ } else {
|
|
|
+ if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
+ lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ feeCenterList = feeCenterService.list(lambdaQueryWrapper);
|
|
|
+ BigDecimal amountDr = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCr = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountProfit;
|
|
|
+ BigDecimal amountDrUsd = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCrUsd = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountProfitUsd;
|
|
|
+ BigDecimal amountDrLoc = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCrLoc = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountProfitLoc;
|
|
|
+ List<FeeCenterReports> feeCenterReportsList = new ArrayList<>();
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
+ if (MagicValues.D.equals(item.getDc())) {
|
|
|
+ if (MagicValues.USD.equals(item.getCurCode())) {
|
|
|
+ amountDrUsd = amountDrUsd.add(item.getAmount());
|
|
|
+ } else if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ amountDr = amountDr.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ BigDecimal usd = ibCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc());
|
|
|
+ amountDrUsd = amountDrUsd.add(usd);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (MagicValues.USD.equals(item.getCurCode())) {
|
|
|
+ amountCrUsd = amountCrUsd.add(item.getAmount());
|
|
|
+ } else if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ amountCr = amountCr.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ BigDecimal usd = ibCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc());
|
|
|
+ amountCrUsd = amountCrUsd.add(usd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
+ feeCenterReports.setPid(item.getPid());
|
|
|
+ feeCenterReports.setCorpCnName(item.getCorpCnName());
|
|
|
+ feeCenterReports.setBillCorpCnName(item.getBillCorpCnName());
|
|
|
+ feeCenterReports.setFeeCnName(item.getFeeCnName());
|
|
|
+ if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ feeCenterReports.setAmountD(item.getAmount());
|
|
|
+ } else {
|
|
|
+ feeCenterReports.setAmountUsdD(item.getAmount());
|
|
|
+ }
|
|
|
+ feeCenterReports.setAmountLocD(item.getAmountLoc());
|
|
|
+ feeCenterReports.setHblno(item.getHblno());
|
|
|
+ feeCenterReports.setAmount(item.getQuantity() + "*" + item.getAmount());
|
|
|
+ feeCenterReportsList.add(feeCenterReports);
|
|
|
+ }
|
|
|
+ bills.setFeeCenterList(feeCenterReportsList);
|
|
|
+ amountProfit = amountDr.subtract(amountCr);
|
|
|
+ amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
+ amountDrLoc = amountDrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D)).add(amountDr);
|
|
|
+ amountCrLoc = amountCrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C)).add(amountCr);
|
|
|
+ amountProfitLoc = amountDrLoc.subtract(amountCrLoc);
|
|
|
+ bills.setAmountDr(amountDr);
|
|
|
+ bills.setAmountCr(amountCr);
|
|
|
+ bills.setAmountProfit(amountProfit);
|
|
|
+ bills.setAmountDrUsd(amountDrUsd);
|
|
|
+ bills.setAmountCrUsd(amountCrUsd);
|
|
|
+ bills.setAmountProfitUsd(amountProfitUsd);
|
|
|
+ bills.setAmountDrLoc(amountDrLoc);
|
|
|
+ bills.setAmountCrLoc(amountCrLoc);
|
|
|
+ bills.setAmountProfitLoc(amountProfitLoc);
|
|
|
+ List<BCorpsBank> bCorpsBanks = bankService.list(new LambdaQueryWrapper<BCorpsBank>()
|
|
|
+ .eq(BCorpsBank::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BCorpsBank::getIsDeleted, 0)
|
|
|
+ .eq(BCorpsBank::getPid, bills.getCorpId()));
|
|
|
+ if (bCorpsBanks.size() > 0) {
|
|
|
+ bills.setAccountBank(bCorpsBanks.get(0).getAccountBank());
|
|
|
+ bills.setAccountNo(bCorpsBanks.get(0).getAccountNo());
|
|
|
+ bills.setAddress(bCorpsBanks.get(0).getAddress());
|
|
|
+ bills.setSwiftCode(bCorpsBanks.get(0).getSwiftCode());
|
|
|
+ }
|
|
|
+ map.put(MagicValues.DATA, bills);
|
|
|
+ } else {
|
|
|
+ map.put(MagicValues.DATA, null);
|
|
|
+ }
|
|
|
+ } else if ((MagicValues.BGSE.equals(type) || MagicValues.BGSI.equals(type) || MagicValues.BGAE.equals(type) || MagicValues.BGAI.equals(type))
|
|
|
+ && MagicValues.MEET.equals(groupCode)
|
|
|
+ && (MagicValues.BGSE.equals(type) || MagicValues.BGSI.equals(type) || MagicValues.BGAE.equals(type) || MagicValues.BGAI.equals(type))) {
|
|
|
+ CustomsDeclaration bills = customsDeclarationService.getById(billId);
|
|
|
+ if (bills != null) {
|
|
|
+// bills.setFM(MagicValues.FM);
|
|
|
+// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
+ List<FeeCenter> feeCenterList;
|
|
|
+ LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getDc, MagicValues.C)
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0);
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getPid, bills.getId());
|
|
|
+ if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
+ } else {
|
|
|
+ if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
+ lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ feeCenterList = feeCenterService.list(lambdaQueryWrapper);
|
|
|
+ BigDecimal amountDr = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCr = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountProfit;
|
|
|
+ BigDecimal amountDrUsd = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCrUsd = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountProfitUsd;
|
|
|
+ BigDecimal amountDrLoc = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCrLoc = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountProfitLoc;
|
|
|
+ List<FeeCenterReports> feeCenterReportsList = new ArrayList<>();
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
+ if (MagicValues.D.equals(item.getDc())) {
|
|
|
+ if (MagicValues.USD.equals(item.getCurCode())) {
|
|
|
+ amountDrUsd = amountDrUsd.add(item.getAmount());
|
|
|
+ } else if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ amountDr = amountDr.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ BigDecimal usd = ibCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc());
|
|
|
+ amountDrUsd = amountDrUsd.add(usd);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (MagicValues.USD.equals(item.getCurCode())) {
|
|
|
+ amountCrUsd = amountCrUsd.add(item.getAmount());
|
|
|
+ } else if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ amountCr = amountCr.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ BigDecimal usd = ibCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc());
|
|
|
+ amountCrUsd = amountCrUsd.add(usd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
+ feeCenterReports.setPid(item.getPid());
|
|
|
+ feeCenterReports.setCorpCnName(item.getCorpCnName());
|
|
|
+ feeCenterReports.setBillCorpCnName(item.getBillCorpCnName());
|
|
|
+ feeCenterReports.setFeeCnName(item.getFeeCnName());
|
|
|
+ if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ feeCenterReports.setAmountC(item.getAmount());
|
|
|
+ } else {
|
|
|
+ feeCenterReports.setAmountUsdC(item.getAmount());
|
|
|
+ }
|
|
|
+ feeCenterReports.setAmountLocC(item.getAmountLoc());
|
|
|
+ feeCenterReports.setHblno(item.getHblno());
|
|
|
+ feeCenterReports.setAmount(item.getQuantity() + "*" + item.getAmount());
|
|
|
+ feeCenterReportsList.add(feeCenterReports);
|
|
|
+ }
|
|
|
+ bills.setFeeCenterList(feeCenterReportsList);
|
|
|
+ amountProfit = amountDr.subtract(amountCr);
|
|
|
+ amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
+ amountDrLoc = amountDrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D)).add(amountDr);
|
|
|
+ amountCrLoc = amountCrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C)).add(amountCr);
|
|
|
+ amountProfitLoc = amountDrLoc.subtract(amountCrLoc);
|
|
|
+ bills.setAmountDr(amountDr);
|
|
|
+ bills.setAmountCr(amountCr);
|
|
|
+ bills.setAmountProfit(amountProfit);
|
|
|
+ bills.setAmountDrUsd(amountDrUsd);
|
|
|
+ bills.setAmountCrUsd(amountCrUsd);
|
|
|
+ bills.setAmountProfitUsd(amountProfitUsd);
|
|
|
+ bills.setAmountDrLoc(amountDrLoc);
|
|
|
+ bills.setAmountCrLoc(amountCrLoc);
|
|
|
+ bills.setAmountProfitLoc(amountProfitLoc);
|
|
|
+ map.put(MagicValues.DATA, bills);
|
|
|
+ } else {
|
|
|
+ map.put(MagicValues.DATA, null);
|
|
|
+ }
|
|
|
}
|
|
|
return R.data(map);
|
|
|
}
|