|
|
@@ -50,6 +50,7 @@ import org.springblade.los.business.sea.service.*;
|
|
|
import org.springblade.los.business.sea.vo.GenerateMailVo;
|
|
|
import org.springblade.los.email.entity.EmailAddress;
|
|
|
import org.springblade.los.email.service.IEmailAddressService;
|
|
|
+import org.springblade.los.enums.AmendType;
|
|
|
import org.springblade.los.finance.agreement.entity.AgreementPrice;
|
|
|
import org.springblade.los.finance.agreement.entity.AgreementPriceItems;
|
|
|
import org.springblade.los.finance.agreement.service.IAgreementPriceItemsService;
|
|
|
@@ -225,7 +226,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
} else if (MagicValues.AMEND.equals(type)) {
|
|
|
return this.getReportDataAmend(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
|
|
|
} else {
|
|
|
- if (MagicValues.PAID_APPLICATION.equals(reportCode) && MagicValues.PAID_APPLICATION.equals(groupCode)) {
|
|
|
+ if (MagicValues.PAID_APPLICATION.equals(reportCode) &&
|
|
|
+ (MagicValues.PAID_APPLICATION.equals(groupCode) || MagicValues.PAID_APPLICATION_V1.equals(groupCode))) {
|
|
|
FinStlBills finStlBills = finStlBillsService.getById(billId);
|
|
|
if (finStlBills != null) {
|
|
|
String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
|
|
|
@@ -282,111 +284,228 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
List<FinStlBillsItems> finStlBillsItems = finStlBillsItemsService.list(lambdaQueryWrapper);
|
|
|
if (!finStlBillsItems.isEmpty()) {
|
|
|
finStlBills.setSalesman(finStlBillsItems.get(0).getSrcCnName());
|
|
|
- List<FinStlBillsItems> reducelList = finStlBillsItems.stream().filter(distinctByKey(FinStlBillsItems::getMblno)).collect(Collectors.toList());
|
|
|
- List<Bills> billsList = new ArrayList<>();
|
|
|
- List<FeeCenter> feeCenterListAll = new ArrayList<>();
|
|
|
- if (!reducelList.isEmpty()) {
|
|
|
- String mblno = reducelList.stream().map(FinStlBillsItems::getMblno).collect(Collectors.joining(","));
|
|
|
- billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(mblno,'" + mblno + "')"));
|
|
|
+ if (MagicValues.PAID_APPLICATION_V1.equals(groupCode)) {
|
|
|
+ List<FinStlBillsItems> reducelList = finStlBillsItems.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(f -> f.getMblno() + f.getHblno()))), ArrayList::new));
|
|
|
+ List<Bills> billsList = new ArrayList<>();
|
|
|
+ List<FeeCenter> feeCenterListAll = new ArrayList<>();
|
|
|
+ if (!reducelList.isEmpty()) {
|
|
|
+ String mblno = reducelList.stream().map(FinStlBillsItems::getMblno).collect(Collectors.joining(","));
|
|
|
+ billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(mblno,'" + mblno + "')"));
|
|
|
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- List<Long> billCorpId = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
- List<AgreementPriceItems> agreementPriceItemsList = new ArrayList<>();
|
|
|
- List<AgreementPrice> agreementPriceList = agreementPriceService.list(new LambdaQueryWrapper<AgreementPrice>()
|
|
|
- .eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AgreementPrice::getIsDeleted, 0)
|
|
|
- .eq(AgreementPrice::getStatus, 0)
|
|
|
- .in(AgreementPrice::getCorpId, billCorpId));
|
|
|
- if (!agreementPriceList.isEmpty()) {
|
|
|
- List<Long> ids = agreementPriceList.stream().map(AgreementPrice::getId).collect(Collectors.toList());
|
|
|
- agreementPriceItemsList = agreementPriceItemsService.list(new LambdaQueryWrapper<AgreementPriceItems>()
|
|
|
- .eq(AgreementPriceItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AgreementPriceItems::getIsDeleted, 0)
|
|
|
- .eq(AgreementPriceItems::getStatus, 0)
|
|
|
- .in(AgreementPriceItems::getPid, ids));
|
|
|
- }
|
|
|
- StringBuilder billCorpName = new StringBuilder();
|
|
|
- StringBuilder billCorpNameAgreement = new StringBuilder();
|
|
|
- List<Long> billsIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
- List<Bills> billsList1 = billsList.stream().filter(e -> billsIds.contains(e.getCorpId())).collect(Collectors.toList());
|
|
|
- for (Bills item : billsList1) {
|
|
|
- billCorpName.append(item.getCorpCnName()).append("/");
|
|
|
- AgreementPrice agreementPrice = agreementPriceList.stream().filter(e -> e.getCorpId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
- if (agreementPrice != null) {
|
|
|
- AgreementPriceItems agreementPriceItems = agreementPriceItemsList.stream().filter(e -> e.getPid().equals(agreementPrice.getId())).findFirst().orElse(null);
|
|
|
- if (agreementPriceItems != null) {
|
|
|
- billCorpNameAgreement.append(agreementPriceItems.getSettlementPeriodName()).append("/");
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ List<Long> billCorpId = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
+ List<AgreementPriceItems> agreementPriceItemsList = new ArrayList<>();
|
|
|
+ List<AgreementPrice> agreementPriceList = agreementPriceService.list(new LambdaQueryWrapper<AgreementPrice>()
|
|
|
+ .eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgreementPrice::getIsDeleted, 0)
|
|
|
+ .eq(AgreementPrice::getStatus, 0)
|
|
|
+ .in(AgreementPrice::getCorpId, billCorpId));
|
|
|
+ if (!agreementPriceList.isEmpty()) {
|
|
|
+ List<Long> ids = agreementPriceList.stream().map(AgreementPrice::getId).collect(Collectors.toList());
|
|
|
+ agreementPriceItemsList = agreementPriceItemsService.list(new LambdaQueryWrapper<AgreementPriceItems>()
|
|
|
+ .eq(AgreementPriceItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgreementPriceItems::getIsDeleted, 0)
|
|
|
+ .eq(AgreementPriceItems::getStatus, 0)
|
|
|
+ .in(AgreementPriceItems::getPid, ids));
|
|
|
+ }
|
|
|
+ StringBuilder billCorpName = new StringBuilder();
|
|
|
+ StringBuilder billCorpNameAgreement = new StringBuilder();
|
|
|
+ List<Long> billsIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
+ List<Bills> billsList1 = billsList.stream().filter(e -> billsIds.contains(e.getCorpId())).collect(Collectors.toList());
|
|
|
+ for (Bills item : billsList1) {
|
|
|
+ billCorpName.append(item.getCorpCnName()).append("/");
|
|
|
+ AgreementPrice agreementPrice = agreementPriceList.stream().filter(e -> e.getCorpId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
+ if (agreementPrice != null) {
|
|
|
+ AgreementPriceItems agreementPriceItems = agreementPriceItemsList.stream().filter(e -> e.getPid().equals(agreementPrice.getId())).findFirst().orElse(null);
|
|
|
+ if (agreementPriceItems != null) {
|
|
|
+ billCorpNameAgreement.append(agreementPriceItems.getSettlementPeriodName()).append("/");
|
|
|
+ } else {
|
|
|
+ billCorpNameAgreement.append("无").append("/");
|
|
|
+ }
|
|
|
} else {
|
|
|
billCorpNameAgreement.append("无").append("/");
|
|
|
}
|
|
|
- } else {
|
|
|
- billCorpNameAgreement.append("无").append("/");
|
|
|
}
|
|
|
+ finStlBills.setBillCorpName(billCorpName.toString());
|
|
|
+ finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
|
|
|
}
|
|
|
- finStlBills.setBillCorpName(billCorpName.toString());
|
|
|
- finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
|
|
|
- }
|
|
|
- feeCenterListAll = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getDc, "D")
|
|
|
- .apply("find_in_set(mblno,'" + mblno + "')"));
|
|
|
- }
|
|
|
- for (FinStlBillsItems item : reducelList) {
|
|
|
- FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
|
|
|
- finStlBillsItemsReports.setMblno(item.getMblno());
|
|
|
- finStlBillsItemsReports.setHblno(item.getHblno());
|
|
|
- finStlBillsItemsReports.setBillNo(item.getBillNo());
|
|
|
- finStlBillsItemsReports.setAccBillNo(item.getAccBillNo());
|
|
|
- finStlBillsItemsReports.setEtd(item.getEtd());
|
|
|
- finStlBillsItemsReports.setVesselCnName(item.getVesselCnName() + "/" + item.getVoyageNo());
|
|
|
- finStlBillsItemsReports.setVesselEnName(item.getVesselEnName() + "/" + item.getVoyageNo());
|
|
|
- finStlBillsItemsReports.setSalesman(item.getSrcCnName());
|
|
|
- finStlBillsItemsReports.setPodEnName(item.getPodEnName());
|
|
|
- finStlBillsItemsReports.setPodCnName(item.getPodCnName());
|
|
|
- finStlBillsItemsReports.setQuantityCntrDescr(item.getQuantityCntrDescr());
|
|
|
- finStlBillsItemsReports.setTeu(item.getTeu());
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
|
|
|
- finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
|
|
|
- }
|
|
|
- if (!feeCenterListAll.isEmpty()) {
|
|
|
- BigDecimal amountDSum = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
|
|
|
- .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal amountDStl = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
|
|
|
- .map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal amountDSumUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
|
|
|
- .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal amountDStlUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
|
|
|
- .map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- finStlBillsItemsReports.setAmountD(amountDSum.subtract(amountDStl));
|
|
|
- finStlBillsItemsReports.setAmountUsdD(amountDSumUsd.subtract(amountDStlUsd));
|
|
|
+ feeCenterListAll = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getDc, "D")
|
|
|
+ .apply("find_in_set(mblno,'" + mblno + "')"));
|
|
|
+ }
|
|
|
+ for (FinStlBillsItems item : reducelList) {
|
|
|
+ FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
|
|
|
+ finStlBillsItemsReports.setMblno(item.getMblno());
|
|
|
+ finStlBillsItemsReports.setHblno(item.getHblno());
|
|
|
+ finStlBillsItemsReports.setBillNo(item.getBillNo());
|
|
|
+ finStlBillsItemsReports.setAccBillNo(item.getAccBillNo());
|
|
|
+ finStlBillsItemsReports.setEtd(item.getEtd());
|
|
|
+ finStlBillsItemsReports.setVesselCnName(item.getVesselCnName() + "/" + item.getVoyageNo());
|
|
|
+ finStlBillsItemsReports.setVesselEnName(item.getVesselEnName() + "/" + item.getVoyageNo());
|
|
|
+ finStlBillsItemsReports.setSalesman(item.getSrcCnName());
|
|
|
+ finStlBillsItemsReports.setPodEnName(item.getPodEnName());
|
|
|
+ finStlBillsItemsReports.setPodCnName(item.getPodCnName());
|
|
|
+ finStlBillsItemsReports.setQuantityCntrDescr(item.getQuantityCntrDescr());
|
|
|
+ finStlBillsItemsReports.setTeu(item.getTeu());
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
|
|
|
+ finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
|
|
|
+ }
|
|
|
+ if (!feeCenterListAll.isEmpty()) {
|
|
|
+ BigDecimal amountDSum = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amountDStl = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amountDSumUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amountDStlUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ finStlBillsItemsReports.setAmountD(amountDSum.subtract(amountDStl));
|
|
|
+ finStlBillsItemsReports.setAmountUsdD(amountDSumUsd.subtract(amountDStlUsd));
|
|
|
+ }
|
|
|
+ BigDecimal currentStlAmountD = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno())
|
|
|
+ && (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno()))
|
|
|
+ && MagicValues.D.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal currentStlAmountC = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno())
|
|
|
+ && (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno())) && MagicValues.C.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal currentStlAmountUsdD = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno())
|
|
|
+ && (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno())) && MagicValues.D.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal currentStlAmountUsdC = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno())
|
|
|
+ && (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno())) && MagicValues.C.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ finStlBillsItemsReports.setAmount(currentStlAmountC.subtract(currentStlAmountD));
|
|
|
+ finStlBillsItemsReports.setAmountUsd(currentStlAmountUsdC.subtract(currentStlAmountUsdD));
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).findFirst()
|
|
|
+ .ifPresent(bills -> finStlBillsItemsReports.setAmountProfit(bills.getAmountDrLoc().subtract(bills.getAmountCrLoc())));
|
|
|
+ } else {
|
|
|
+ finStlBillsItemsReports.setAmountProfit(new BigDecimal(MagicValues.ZERO));
|
|
|
+ }
|
|
|
+ finStlBillsItemsReportsList.add(finStlBillsItemsReports);
|
|
|
}
|
|
|
- BigDecimal currentStlAmountD = finStlBillsItems.stream()
|
|
|
- .filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.D.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
|
|
|
- .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal currentStlAmountC = finStlBillsItems.stream()
|
|
|
- .filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.C.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
|
|
|
- .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal currentStlAmountUsdD = finStlBillsItems.stream()
|
|
|
- .filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.D.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
|
|
|
- .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal currentStlAmountUsdC = finStlBillsItems.stream()
|
|
|
- .filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.C.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
|
|
|
- .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- finStlBillsItemsReports.setAmount(currentStlAmountC.subtract(currentStlAmountD).abs());
|
|
|
- finStlBillsItemsReports.setAmountUsd(currentStlAmountUsdC.subtract(currentStlAmountUsdD).abs());
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).findFirst()
|
|
|
- .ifPresent(bills -> finStlBillsItemsReports.setAmountProfit(bills.getAmountDrLoc().subtract(bills.getAmountCrLoc())));
|
|
|
- } else {
|
|
|
- finStlBillsItemsReports.setAmountProfit(new BigDecimal(MagicValues.ZERO));
|
|
|
+ } else {
|
|
|
+ List<FinStlBillsItems> reducelList = finStlBillsItems.stream().filter(distinctByKey(FinStlBillsItems::getMblno)).collect(Collectors.toList());
|
|
|
+ List<Bills> billsList = new ArrayList<>();
|
|
|
+ List<FeeCenter> feeCenterListAll = new ArrayList<>();
|
|
|
+ if (!reducelList.isEmpty()) {
|
|
|
+ String mblno = reducelList.stream().map(FinStlBillsItems::getMblno).collect(Collectors.joining(","));
|
|
|
+ billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(mblno,'" + mblno + "')"));
|
|
|
+
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ List<Long> billCorpId = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
+ List<AgreementPriceItems> agreementPriceItemsList = new ArrayList<>();
|
|
|
+ List<AgreementPrice> agreementPriceList = agreementPriceService.list(new LambdaQueryWrapper<AgreementPrice>()
|
|
|
+ .eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgreementPrice::getIsDeleted, 0)
|
|
|
+ .eq(AgreementPrice::getStatus, 0)
|
|
|
+ .in(AgreementPrice::getCorpId, billCorpId));
|
|
|
+ if (!agreementPriceList.isEmpty()) {
|
|
|
+ List<Long> ids = agreementPriceList.stream().map(AgreementPrice::getId).collect(Collectors.toList());
|
|
|
+ agreementPriceItemsList = agreementPriceItemsService.list(new LambdaQueryWrapper<AgreementPriceItems>()
|
|
|
+ .eq(AgreementPriceItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgreementPriceItems::getIsDeleted, 0)
|
|
|
+ .eq(AgreementPriceItems::getStatus, 0)
|
|
|
+ .in(AgreementPriceItems::getPid, ids));
|
|
|
+ }
|
|
|
+ StringBuilder billCorpName = new StringBuilder();
|
|
|
+ StringBuilder billCorpNameAgreement = new StringBuilder();
|
|
|
+ List<Long> billsIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
+ List<Bills> billsList1 = billsList.stream().filter(e -> billsIds.contains(e.getCorpId())).collect(Collectors.toList());
|
|
|
+ for (Bills item : billsList1) {
|
|
|
+ billCorpName.append(item.getCorpCnName()).append("/");
|
|
|
+ AgreementPrice agreementPrice = agreementPriceList.stream().filter(e -> e.getCorpId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
+ if (agreementPrice != null) {
|
|
|
+ AgreementPriceItems agreementPriceItems = agreementPriceItemsList.stream().filter(e -> e.getPid().equals(agreementPrice.getId())).findFirst().orElse(null);
|
|
|
+ if (agreementPriceItems != null) {
|
|
|
+ billCorpNameAgreement.append(agreementPriceItems.getSettlementPeriodName()).append("/");
|
|
|
+ } else {
|
|
|
+ billCorpNameAgreement.append("无").append("/");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ billCorpNameAgreement.append("无").append("/");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ finStlBills.setBillCorpName(billCorpName.toString());
|
|
|
+ finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
|
|
|
+ }
|
|
|
+ feeCenterListAll = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getDc, "D")
|
|
|
+ .apply("find_in_set(mblno,'" + mblno + "')"));
|
|
|
+ }
|
|
|
+ for (FinStlBillsItems item : reducelList) {
|
|
|
+ FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
|
|
|
+ finStlBillsItemsReports.setMblno(item.getMblno());
|
|
|
+ finStlBillsItemsReports.setHblno(item.getHblno());
|
|
|
+ finStlBillsItemsReports.setBillNo(item.getBillNo());
|
|
|
+ finStlBillsItemsReports.setAccBillNo(item.getAccBillNo());
|
|
|
+ finStlBillsItemsReports.setEtd(item.getEtd());
|
|
|
+ finStlBillsItemsReports.setVesselCnName(item.getVesselCnName() + "/" + item.getVoyageNo());
|
|
|
+ finStlBillsItemsReports.setVesselEnName(item.getVesselEnName() + "/" + item.getVoyageNo());
|
|
|
+ finStlBillsItemsReports.setSalesman(item.getSrcCnName());
|
|
|
+ finStlBillsItemsReports.setPodEnName(item.getPodEnName());
|
|
|
+ finStlBillsItemsReports.setPodCnName(item.getPodCnName());
|
|
|
+ finStlBillsItemsReports.setQuantityCntrDescr(item.getQuantityCntrDescr());
|
|
|
+ finStlBillsItemsReports.setTeu(item.getTeu());
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
|
|
|
+ finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
|
|
|
+ }
|
|
|
+ if (!feeCenterListAll.isEmpty()) {
|
|
|
+ BigDecimal amountDSum = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amountDStl = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amountDSumUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amountDStlUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
|
|
|
+ .map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ finStlBillsItemsReports.setAmountD(amountDSum.subtract(amountDStl));
|
|
|
+ finStlBillsItemsReports.setAmountUsdD(amountDSumUsd.subtract(amountDStlUsd));
|
|
|
+ }
|
|
|
+ BigDecimal currentStlAmountD = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno())
|
|
|
+ && MagicValues.D.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal currentStlAmountC = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal currentStlAmountUsdD = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal currentStlAmountUsdC = finStlBillsItems.stream()
|
|
|
+ .filter(e -> e.getMblno().equals(item.getMblno()))
|
|
|
+ .map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ finStlBillsItemsReports.setAmount(currentStlAmountC.subtract(currentStlAmountD));
|
|
|
+ finStlBillsItemsReports.setAmountUsd(currentStlAmountUsdC.subtract(currentStlAmountUsdD));
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).findFirst()
|
|
|
+ .ifPresent(bills -> finStlBillsItemsReports.setAmountProfit(bills.getAmountDrLoc().subtract(bills.getAmountCrLoc())));
|
|
|
+ } else {
|
|
|
+ finStlBillsItemsReports.setAmountProfit(new BigDecimal(MagicValues.ZERO));
|
|
|
+ }
|
|
|
+ finStlBillsItemsReportsList.add(finStlBillsItemsReports);
|
|
|
}
|
|
|
- finStlBillsItemsReportsList.add(finStlBillsItemsReports);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
finStlBills.setAmountSubLoc(finStlBills.getAmountSubLoc().abs());
|
|
|
finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
|
|
|
@@ -817,7 +936,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
} else {
|
|
|
bills.setGrossMargin(new BigDecimal(MagicValues.ZERO));
|
|
|
}
|
|
|
- List<FeeCenter> allFeeCenter = new ArrayList<>();
|
|
|
// 直单或主单
|
|
|
if (MagicValues.MM.equals(bills.getBillType()) || MagicValues.DD.equals(bills.getBillType())) {
|
|
|
List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
@@ -844,7 +962,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
List<FeeCenter> feeCenterListMh = feeCenterService.list(lambdaQueryWrapper);
|
|
|
if (!feeCenterListMh.isEmpty()) {
|
|
|
- allFeeCenter.addAll(feeCenterListMh);
|
|
|
for (FeeCenter item : feeCenterListMh) {
|
|
|
if (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
item.setCorpCnName(item.getShortName());
|
|
|
@@ -950,7 +1067,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(lambdaQueryWrapper);
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
- allFeeCenter.addAll(feeCenterList);
|
|
|
List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
bills.setFeeCenterListD(feeD);
|
|
|
List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
@@ -1052,7 +1168,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(lambdaQueryWrapper);
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
- allFeeCenter.addAll(feeCenterList);
|
|
|
List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
bills.setFeeCenterListD(feeD);
|
|
|
List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
@@ -1137,107 +1252,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
bills.setFeeCenterList(feeCenterReportList);
|
|
|
}
|
|
|
list.add(bills);
|
|
|
- Bills details = billsService.getOne(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getId, bills.getMasterId())
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0));
|
|
|
- /*if (details != null) {
|
|
|
- LambdaQueryWrapper<FeeCenter> feeCenterLambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .in(FeeCenter::getPid, details.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0);
|
|
|
- if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
|
|
|
- if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
|
|
|
- if (AuthUtil.getUserRole().contains("应付查看")) {
|
|
|
- feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "C");
|
|
|
- } else if (AuthUtil.getUserRole().contains("应收查看")) {
|
|
|
- feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "D");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterListMh = feeCenterService.list(feeCenterLambdaQueryWrapper);
|
|
|
- if (!feeCenterListMh.isEmpty()) {
|
|
|
- allFeeCenter.addAll(feeCenterListMh);
|
|
|
- List<FeeCenter> feeD2 = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- details.setFeeCenterListD(feeD2);
|
|
|
- List<FeeCenter> feeC2 = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- details.setFeeCenterListC(feeC2);
|
|
|
- for (FeeCenter item : feeCenterListMh) {
|
|
|
- if (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
- item.setCorpCnName(item.getShortName());
|
|
|
- } else {
|
|
|
- item.setCorpCnName("无");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(item.getBillShortName())) {
|
|
|
- item.setBillCorpCnName(item.getBillShortName());
|
|
|
- } else {
|
|
|
- item.setBillCorpCnName("无");
|
|
|
- }
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList1 = feeCenterListMh.stream()
|
|
|
- .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
- Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
|
|
|
- List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
|
|
|
- for (FeeCenter fee : feeCenterList1) {
|
|
|
- FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
- feeCenterReports.setRemarks(fee.getRemarks());
|
|
|
- feeCenterReports.setPid(details.getId());
|
|
|
- feeCenterReports.setFeeCnName(fee.getFeeCnName());
|
|
|
- feeCenterReports.setDc(fee.getDc());
|
|
|
- List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.D.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListD.isEmpty()) {
|
|
|
- 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 = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.D.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListUsdD.isEmpty()) {
|
|
|
- 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 = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.C.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListC.isEmpty()) {
|
|
|
- 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 = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.C.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListUsdC.isEmpty()) {
|
|
|
- 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);
|
|
|
- }
|
|
|
- details.setFeeCenterList(feeCenterReportList);
|
|
|
- }
|
|
|
- list.add(0, details);
|
|
|
- }*/
|
|
|
}
|
|
|
if (!list.isEmpty()) {
|
|
|
for (Bills item : list) {
|
|
|
@@ -1635,7 +1649,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
} else {
|
|
|
bills.setGrossMargin(new BigDecimal(MagicValues.ZERO));
|
|
|
}
|
|
|
- List<FeeCenter> allFeeCenter = new ArrayList<>();
|
|
|
// 直单或主单
|
|
|
if (MagicValues.MM.equals(bills.getBillType()) || MagicValues.DD.equals(bills.getBillType())) {
|
|
|
List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
@@ -1663,17 +1676,16 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
if (feeCenterListMh.isEmpty()) {
|
|
|
throw new RuntimeException("请先维护费用信息");
|
|
|
}
|
|
|
-// List<Long> amendIds = feeCenterListMh.stream().filter(f -> AmendType.isAmendType(f.getBusinessType())).map(FeeCenter::getPid).distinct().collect(Collectors.toList());
|
|
|
- allFeeCenter.addAll(feeCenterListMh);
|
|
|
-// if (!CollectionUtils.isEmpty(amendIds)) {
|
|
|
- List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
|
|
|
- .select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, mblNo));
|
|
|
- feeCenterListMh = feeCenterListMh.stream().filter(fc -> {
|
|
|
- // 是 amend 类型并没审核通过的不计入
|
|
|
- Amends amends = amendsList.stream().filter(a -> a.getId().equals(fc.getPid())).findFirst().orElse(null);
|
|
|
- return amends == null || CommonEnum.THREE.info.equals(String.valueOf(amends.getStatus()));
|
|
|
- }).collect(Collectors.toList());
|
|
|
-// }
|
|
|
+ List<Long> amendIds = feeCenterListMh.stream().filter(f -> AmendType.isAmendType(f.getBusinessType())).map(FeeCenter::getPid).distinct().collect(Collectors.toList());
|
|
|
+ if (!CollectionUtils.isEmpty(amendIds)) {
|
|
|
+ List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
|
|
|
+ .select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, mblNo));
|
|
|
+ feeCenterListMh = feeCenterListMh.stream().filter(fc -> {
|
|
|
+ // 是 amend 类型并没审核通过的不计入
|
|
|
+ Amends amends = amendsList.stream().filter(a -> a.getId().equals(fc.getPid())).findFirst().orElse(null);
|
|
|
+ return amends == null || CommonEnum.THREE.info.equals(String.valueOf(amends.getStatus()));
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
|
|
|
for (FeeCenter item : feeCenterListMh) {
|
|
|
if (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
@@ -1689,11 +1701,13 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
for (Bills item : billsList) {
|
|
|
item.setPrintPeople(AuthUtil.getUserName());
|
|
|
- List<FeeCenter> feeD = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeD = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())
|
|
|
+ && e.getPid().equals(item.getId())).collect(Collectors.toList());
|
|
|
item.setFeeCenterListD(feeD);
|
|
|
- List<FeeCenter> feeC = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeC = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())
|
|
|
+ && e.getPid().equals(item.getId())).collect(Collectors.toList());
|
|
|
item.setFeeCenterListC(feeC);
|
|
|
- List<FeeCenter> feeCenterList = feeCenterListMh.stream()
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterListMh.stream().filter(e -> e.getPid().equals(item.getId()))
|
|
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
|
|
|
List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
|
|
|
@@ -1705,7 +1719,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
feeCenterReports.setDc(fee.getDc());
|
|
|
List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
|
|
|
.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && e.getPid().equals(item.getId())
|
|
|
+ && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
if (!feeCenterListD.isEmpty()) {
|
|
|
@@ -1717,7 +1732,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
List<FeeCenter> feeCenterListUsdD = feeCenterListMh.stream()
|
|
|
.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && e.getPid().equals(item.getId()) &&
|
|
|
+ !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
if (!feeCenterListUsdD.isEmpty()) {
|
|
|
@@ -1729,7 +1745,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
List<FeeCenter> feeCenterListC = feeCenterListMh.stream()
|
|
|
.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode())
|
|
|
+ && e.getPid().equals(item.getId()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
if (!feeCenterListC.isEmpty()) {
|
|
|
@@ -1741,7 +1758,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
List<FeeCenter> feeCenterListUsdC = feeCenterListMh.stream()
|
|
|
.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
+ e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode())
|
|
|
+ && e.getPid().equals(item.getId()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
if (!feeCenterListUsdC.isEmpty()) {
|
|
|
@@ -1773,7 +1791,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
}
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(feeCenterLambdaQueryWrapper);
|
|
|
- allFeeCenter.addAll(feeCenterList);
|
|
|
List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
|
|
|
.select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, bills.getId()));
|
|
|
feeCenterList = feeCenterList.stream().filter(fc -> {
|
|
|
@@ -1870,132 +1887,36 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
map.put(MagicValues.DATA, list);
|
|
|
} else if (MagicValues.MH.equals(bills.getBillType())) {
|
|
|
// 分单
|
|
|
- Bills details = billsService.getOne(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getId, bills.getMasterId())
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0));
|
|
|
- if (details != null) {
|
|
|
- details.setPrintPeople(AuthUtil.getUserName());
|
|
|
- LambdaQueryWrapper<FeeCenter> feeCenterLambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, bills.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0);
|
|
|
- if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
|
|
|
- if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
|
|
|
- if (AuthUtil.getUserRole().contains("应付查看")) {
|
|
|
- feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "C");
|
|
|
- } else if (AuthUtil.getUserRole().contains("应收查看")) {
|
|
|
- feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "D");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList = feeCenterService.list(feeCenterLambdaQueryWrapper);
|
|
|
- if (feeCenterList.isEmpty()) {
|
|
|
- throw new RuntimeException("请先维护费用信息");
|
|
|
- }
|
|
|
- allFeeCenter.addAll(feeCenterList);
|
|
|
- List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- bills.setFeeCenterListD(feeD);
|
|
|
- List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- bills.setFeeCenterListC(feeC);
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- for (FeeCenter item : feeCenterList) {
|
|
|
- if (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
- item.setCorpCnName(item.getShortName());
|
|
|
- } else {
|
|
|
- item.setCorpCnName("无");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(item.getBillShortName())) {
|
|
|
- item.setBillCorpCnName(item.getBillShortName());
|
|
|
- } else {
|
|
|
- item.setBillCorpCnName("无");
|
|
|
- }
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenters = feeCenterList.stream()
|
|
|
- .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
- Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
|
|
|
- List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
|
|
|
- for (FeeCenter fee : feeCenters) {
|
|
|
- FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
- feeCenterReports.setRemarks(fee.getRemarks());
|
|
|
- feeCenterReports.setPid(bills.getId());
|
|
|
- feeCenterReports.setFeeCnName(fee.getFeeCnName());
|
|
|
- feeCenterReports.setDc(fee.getDc());
|
|
|
- Bills finalBills1 = bills;
|
|
|
- List<FeeCenter> feeCenterListD = feeCenterList.stream()
|
|
|
- .filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListD.isEmpty()) {
|
|
|
- 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.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListUsdD.isEmpty()) {
|
|
|
- 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.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListC.isEmpty()) {
|
|
|
- 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.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
- e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
- e.getCorpId().equals(fee.getCorpId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!feeCenterListUsdC.isEmpty()) {
|
|
|
- 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(bills);
|
|
|
- LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, details.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0);
|
|
|
- if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
|
|
|
- if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
|
|
|
- if (AuthUtil.getUserRole().contains("应付查看")) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getDc, "C");
|
|
|
- } else if (AuthUtil.getUserRole().contains("应收查看")) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getDc, "D");
|
|
|
- }
|
|
|
+ LambdaQueryWrapper<FeeCenter> feeCenterLambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getPid, bills.getId())
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0);
|
|
|
+ if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
|
|
|
+ if (AuthUtil.getUserRole().contains("应付查看")) {
|
|
|
+ feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "C");
|
|
|
+ } else if (AuthUtil.getUserRole().contains("应收查看")) {
|
|
|
+ feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "D");
|
|
|
}
|
|
|
}
|
|
|
- List<FeeCenter> feeCenterListMh = feeCenterService.list(lambdaQueryWrapper);
|
|
|
- allFeeCenter.addAll(feeCenterListMh);
|
|
|
-
|
|
|
- List<FeeCenter> feeD2 = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- details.setFeeCenterListD(feeD2);
|
|
|
- List<FeeCenter> feeC2 = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- details.setFeeCenterListC(feeC2);
|
|
|
- for (FeeCenter item : feeCenterListMh) {
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(feeCenterLambdaQueryWrapper);
|
|
|
+ if (feeCenterList.isEmpty()) {
|
|
|
+ throw new RuntimeException("请先维护费用信息");
|
|
|
+ }
|
|
|
+ List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
|
|
|
+ .select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, bills.getId()));
|
|
|
+ feeCenterList = feeCenterList.stream().filter(fc -> {
|
|
|
+ // 是 amend 类型并没审核通过的不计入
|
|
|
+ Amends amends = amendsList.stream().filter(a -> a.getId().equals(fc.getPid())).findFirst().orElse(null);
|
|
|
+ return amends == null || CommonEnum.THREE.info.equals(String.valueOf(amends.getStatus()));
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ bills.setFeeCenterListD(feeD);
|
|
|
+ List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ bills.setFeeCenterListC(feeC);
|
|
|
+ if (!feeCenterList.isEmpty()) {
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
if (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
item.setCorpCnName(item.getShortName());
|
|
|
} else {
|
|
|
@@ -2007,18 +1928,19 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
item.setBillCorpCnName("无");
|
|
|
}
|
|
|
}
|
|
|
- List<FeeCenter> feeCenterList1 = feeCenterListMh.stream()
|
|
|
+ List<FeeCenter> feeCenters = feeCenterList.stream()
|
|
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
|
|
|
List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
|
|
|
- for (FeeCenter fee : feeCenterList1) {
|
|
|
+ for (FeeCenter fee : feeCenters) {
|
|
|
FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
feeCenterReports.setRemarks(fee.getRemarks());
|
|
|
- feeCenterReports.setPid(details.getId());
|
|
|
+ feeCenterReports.setPid(bills.getId());
|
|
|
feeCenterReports.setFeeCnName(fee.getFeeCnName());
|
|
|
feeCenterReports.setDc(fee.getDc());
|
|
|
- List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
|
|
|
+ Bills finalBills1 = bills;
|
|
|
+ List<FeeCenter> feeCenterListD = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -2029,8 +1951,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
feeCenterReports.setAmountLocD(feeCenterListD.stream().map(FeeCenter::getAmountLoc)
|
|
|
.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
- List<FeeCenter> feeCenterListUsdD = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
|
|
|
+ List<FeeCenter> feeCenterListUsdD = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -2041,8 +1963,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
feeCenterReports.setAmountLocD(feeCenterListUsdD.stream().map(FeeCenter::getAmountLoc)
|
|
|
.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
- List<FeeCenter> feeCenterListC = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
|
|
|
+ List<FeeCenter> feeCenterListC = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -2053,8 +1975,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
feeCenterReports.setAmountLocC(feeCenterListC.stream().map(FeeCenter::getAmountLoc)
|
|
|
.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
- List<FeeCenter> feeCenterListUsdC = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
|
|
|
+ List<FeeCenter> feeCenterListUsdC = feeCenterList.stream()
|
|
|
+ .filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
|
|
|
e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
|
|
|
e.getCorpId().equals(fee.getCorpId()))
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -2067,9 +1989,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
feeCenterReportList.add(feeCenterReports);
|
|
|
}
|
|
|
- details.setFeeCenterList(feeCenterReportList);
|
|
|
- list.add(0, details);
|
|
|
+ bills.setFeeCenterList(feeCenterReportList);
|
|
|
}
|
|
|
+ list.add(bills);
|
|
|
}
|
|
|
if (!list.isEmpty()) {
|
|
|
for (Bills item : list) {
|
|
|
@@ -2085,7 +2007,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
// 排序
|
|
|
List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
|
|
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
- Comparator.comparing(e -> e.getFeeCnName() + e.getBillCorpCnName()))), ArrayList::new));
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName() + e.getBillCorpCnName() + e.getCurCode()))), ArrayList::new));
|
|
|
+
|
|
|
int countC = 0;
|
|
|
// 遍历应收,并与应付对应
|
|
|
for (int i = 0; i < feeCentersD.size(); i++) {
|