|
|
@@ -195,9 +195,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
}
|
|
|
if (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type)) {
|
|
|
return this.getReportDataHY(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
|
|
|
- } else if (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type)) {
|
|
|
- return this.getReportDataKY(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
|
|
|
- } else if (MagicValues.AMEND.equals(type)) {
|
|
|
+ } else if (MagicValues.AMEND.equals(type)) {
|
|
|
return this.getReportDataAmend(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
|
|
|
} else if (MagicValues.BGSE.equals(type) || MagicValues.BGSI.equals(type) || MagicValues.BGAE.equals(type) || MagicValues.BGAI.equals(type)) {
|
|
|
return this.getReportDataBG(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
|
|
|
@@ -2869,9 +2867,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
.eq(FeeCenter::getIsDeleted, 0));
|
|
|
List<Long> amendIds = feeCenterList.stream().filter(f -> AmendType.isAmendType(f.getBusinessType())).map(FeeCenter::getPid).distinct().collect(Collectors.toList());
|
|
|
allFeeCenter.addAll(feeCenterList);
|
|
|
- List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
|
|
|
- .select(Amends::getId, Amends::getStatus).in(Amends::getId, amendIds));
|
|
|
if (!CollectionUtils.isEmpty(amendIds)) {
|
|
|
+ List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
|
|
|
+ .select(Amends::getId, Amends::getStatus).in(Amends::getId, amendIds));
|
|
|
feeCenterList = feeCenterList.stream().filter(fc -> {
|
|
|
// 是 amend 类型并没审核通过的不计入
|
|
|
Amends amends = amendsList.stream().filter(a -> a.getId().equals(fc.getPid())).findFirst().orElse(null);
|
|
|
@@ -3668,1022 +3666,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
return R.data(map);
|
|
|
}
|
|
|
|
|
|
- public R<Map<String, Object>> getReportDataKY(String billId, String reportCode, String groupCode, String corpIds,
|
|
|
- String itemIds, String type, String curCode) {
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- if (ObjectUtils.isNull(billId)) {
|
|
|
- throw new RuntimeException("缺少比要参数");
|
|
|
- }
|
|
|
- R<Dept> res = sysClient.getDept(deptUtils.getDeptPid());
|
|
|
- Dept dept;
|
|
|
- if (res.isSuccess() && res.getData() != null) {
|
|
|
- dept = res.getData();
|
|
|
- String status = sysClient.getParamServiceNew("is.update.default");
|
|
|
- if ("1".equals(status)) {
|
|
|
- R<User> resUser = userClient.userInfoById(AuthUtil.getUserId());
|
|
|
- if (resUser.isSuccess() && resUser.getData() != null) {
|
|
|
- dept.setEmail(resUser.getData().getEmail());
|
|
|
- dept.setTel(resUser.getData().getPhone());
|
|
|
- dept.setContacts(resUser.getData().getRealName());
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- throw new RuntimeException("获取报表表头数据失败");
|
|
|
- }
|
|
|
- BCurrency bCurrency = ibCurrencyService.getOne(new LambdaQueryWrapper<BCurrency>()
|
|
|
- .eq(BCurrency::getStatus, 0)
|
|
|
- .eq(BCurrency::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(BCurrency::getIsDeleted, 0)
|
|
|
- .eq(BCurrency::getCode, MagicValues.USD));
|
|
|
- if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.SALES_REPORT.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- List<AeaBills> list = new ArrayList<>();
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- 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, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- } else {
|
|
|
- bills.setGrossMargin(new BigDecimal(MagicValues.ZERO));
|
|
|
- }
|
|
|
- if (MagicValues.MM.equals(bills.getBillType()) || MagicValues.DD.equals(bills.getBillType())) {
|
|
|
- List<AeaBills> billsList = aeaBillsService.list(new LambdaQueryWrapper<AeaBills>()
|
|
|
- .eq(AeaBills::getMasterId, bills.getId())
|
|
|
- .eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AeaBills::getIsDeleted, 0));
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- List<Long> ids = billsList.stream().map(AeaBills::getId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
- if (!ids.isEmpty()) {
|
|
|
- List<FeeCenter> feeCenterListMh = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .in(FeeCenter::getPid, ids)
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0));
|
|
|
- for (AeaBills item : billsList) {
|
|
|
- for (FeeCenter items : feeCenterListMh) {
|
|
|
- if (ObjectUtils.isNotNull(items.getShortName())) {
|
|
|
- items.setCorpCnName(items.getShortName());
|
|
|
- } else {
|
|
|
- items.setCorpCnName("无");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(items.getBillShortName())) {
|
|
|
- items.setBillCorpCnName(items.getBillShortName());
|
|
|
- } else {
|
|
|
- items.setBillCorpCnName("无");
|
|
|
- }
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList = 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 : feeCenterList) {
|
|
|
- FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
- feeCenterReports.setRemarks(fee.getRemarks());
|
|
|
- feeCenterReports.setPid(item.getId());
|
|
|
- feeCenterReports.setFeeCnName(fee.getFeeCnName());
|
|
|
- feeCenterReports.setDc(fee.getDc());
|
|
|
- List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
|
|
|
- .filter(e -> MagicValues.D.equals(e.getDc()) && e.getPid().equals(item.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.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(item.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.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(item.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.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(item.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.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);
|
|
|
- }
|
|
|
- item.setFeeCenterList(feeCenterReportList);
|
|
|
- list.add(item);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, bills.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0));
|
|
|
- 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());
|
|
|
- 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.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.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.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.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.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.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.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(0, bills);
|
|
|
- } else if (MagicValues.MH.equals(bills.getBillType())) {
|
|
|
- AeaBills details = aeaBillsService.getOne(new LambdaQueryWrapper<AeaBills>()
|
|
|
- .eq(AeaBills::getId, bills.getMasterId())
|
|
|
- .eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AeaBills::getIsDeleted, 0));
|
|
|
- if (details != null) {
|
|
|
- List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, bills.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0));
|
|
|
- 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());
|
|
|
- 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.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.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.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.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.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.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.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);
|
|
|
- List<FeeCenter> feeCenterListMh = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, details.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0));
|
|
|
- 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()) && MagicValues.CNY.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()) && MagicValues.USD.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()) && MagicValues.CNY.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()) && MagicValues.USD.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 (AeaBills 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));
|
|
|
- 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<FeeCenterReports> feeCe = feeCenterReportsC.stream()
|
|
|
- .filter(e -> !"1".equals(e.getMark())).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.setDept(dept);
|
|
|
- item.setFeeCenterList(feeCenterReports);
|
|
|
- }
|
|
|
- }
|
|
|
- map.put(MagicValues.DATA, list);
|
|
|
- }
|
|
|
- } else if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.MASTER_BILLS.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
-// bills.setFM(MagicValues.FM);
|
|
|
-// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- BigDecimal boxWeightSum = BigDecimal.ZERO;
|
|
|
- List<ContainersReports> containersReportsList = new ArrayList<>();
|
|
|
- List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
|
|
|
- .eq(Containers::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Containers::getIsDeleted, 0)
|
|
|
- .eq(Containers::getPid, bills.getId()));
|
|
|
- List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
- .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PreContainers::getIsDeleted, 0)
|
|
|
- .eq(PreContainers::getPid, bills.getId()));
|
|
|
- if (!containersList.isEmpty()) {
|
|
|
- boxWeightSum = boxWeightSum.add(containersList.get(0).getGrossWeight());
|
|
|
- if (!preContainersList.isEmpty()) {
|
|
|
- List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(containersList.get(0).getCntrTypeCode()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!preContainers.isEmpty()) {
|
|
|
- boxWeightSum = boxWeightSum.add(containersList.get(0).getGrossWeight());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- bills.setBoxWeightSum(boxWeightSum);
|
|
|
- for (Containers item : containersList) {
|
|
|
- ContainersReports containersReports = new ContainersReports();
|
|
|
- BeanUtil.copyProperties(item, containersReports);
|
|
|
- if (!preContainersList.isEmpty()) {
|
|
|
- List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(item.getCntrTypeCode()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (!preContainers.isEmpty()) {
|
|
|
- containersReports.setBoxWeight(preContainers.get(0).getGrossWeight());
|
|
|
- }
|
|
|
- }
|
|
|
- containersReportsList.add(containersReports);
|
|
|
- }
|
|
|
- bills.setContainersReportsList(containersReportsList);
|
|
|
- bills.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, bills);
|
|
|
- } else {
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
- }
|
|
|
- } else if (MagicValues.DOCUMENT.equals(reportCode) && MagicValues.DISPATCH_NOTICE.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
-// bills.setFM(MagicValues.FM);
|
|
|
-// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- bills.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, bills);
|
|
|
- } else {
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
- }
|
|
|
- } else if (MagicValues.DOCUMENT.equals(reportCode) && MagicValues.INCOMING_NOTIFICATION.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
-// bills.setFM(MagicValues.FM);
|
|
|
-// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- bills.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, bills);
|
|
|
- } else {
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
- }
|
|
|
- } else if (MagicValues.COST.equals(reportCode) && MagicValues.RECEIVABLE.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
-// bills.setFM(MagicValues.FM);
|
|
|
-// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList;
|
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
- if (MagicValues.MM.equals(bills.getBillType())) {
|
|
|
- List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .eq(Bills::getMasterId, bills.getId())
|
|
|
- .eq(Bills::getMasterBillNo, bills.getBillNo()));
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- ids = billsList.stream().map(Bills::getId).collect(Collectors.toList());
|
|
|
- }
|
|
|
- }
|
|
|
- ids.add(0, bills.getId());
|
|
|
- LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getDc, MagicValues.D)
|
|
|
- .eq(FeeCenter::getIsDeleted, 0);
|
|
|
- lambdaQueryWrapper.in(FeeCenter::getPid, ids);
|
|
|
- if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
- } else {
|
|
|
- if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
- lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(curCode)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCurCode, curCode);
|
|
|
- }
|
|
|
- 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 (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
- item.setCorpCnName(item.getShortName());
|
|
|
- } else {
|
|
|
- item.setCorpCnName("无");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(item.getBillShortName())) {
|
|
|
- item.setBillCorpCnName(item.getBillShortName());
|
|
|
- } else {
|
|
|
- item.setBillCorpCnName("无");
|
|
|
- }
|
|
|
- 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(), "1");
|
|
|
- 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(), "1");
|
|
|
- amountCrUsd = amountCrUsd.add(usd);
|
|
|
- }
|
|
|
- }
|
|
|
- FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
- feeCenterReports.setRemarks(item.getRemarks());
|
|
|
- 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.getPrice());
|
|
|
- feeCenterReportsList.add(feeCenterReports);
|
|
|
- }
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- bills.setTo(feeCenterList.get(0).getCorpCnName());
|
|
|
- bills.setAccNo(feeCenterList.stream().map(FeeCenter::getAccBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- bills.setFeeCenterList(feeCenterReportsList);
|
|
|
- amountProfit = amountDr.subtract(amountCr);
|
|
|
- amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
- amountDrLoc = amountDrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1")).add(amountDr);
|
|
|
- amountCrLoc = amountCrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C, "1")).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.isEmpty()) {
|
|
|
- bills.setAccountBank(bCorpsBanks.get(0).getAccountBank());
|
|
|
- bills.setAccountNo(bCorpsBanks.get(0).getAccountNo());
|
|
|
- bills.setAddress(bCorpsBanks.get(0).getAddress());
|
|
|
- bills.setSwiftCode(bCorpsBanks.get(0).getSwiftCode());
|
|
|
- }
|
|
|
- bills.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, bills);
|
|
|
- } else {
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
- }
|
|
|
- } else if (MagicValues.COST.equals(reportCode) && MagicValues.RECEIVABLE_BILL.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
-// bills.setFM(MagicValues.FM);
|
|
|
-// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList;
|
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
- if (MagicValues.MM.equals(bills.getBillType())) {
|
|
|
- List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .eq(Bills::getMasterId, bills.getId())
|
|
|
- .eq(Bills::getMasterBillNo, bills.getBillNo()));
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- ids = billsList.stream().map(Bills::getId).collect(Collectors.toList());
|
|
|
- }
|
|
|
- }
|
|
|
- ids.add(0, bills.getId());
|
|
|
- LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getDc, MagicValues.D)
|
|
|
- .eq(FeeCenter::getAccStatus, 1)
|
|
|
- .eq(FeeCenter::getIsDeleted, 0);
|
|
|
- lambdaQueryWrapper.in(FeeCenter::getPid, ids);
|
|
|
- if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
- } else {
|
|
|
- if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
- lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(curCode)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCurCode, curCode);
|
|
|
- }
|
|
|
- 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 (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
- item.setCorpCnName(item.getShortName());
|
|
|
- } else {
|
|
|
- item.setCorpCnName("无");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(item.getBillShortName())) {
|
|
|
- item.setBillCorpCnName(item.getBillShortName());
|
|
|
- } else {
|
|
|
- item.setBillCorpCnName("无");
|
|
|
- }
|
|
|
- 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(), "1");
|
|
|
- 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(), "1");
|
|
|
- amountCrUsd = amountCrUsd.add(usd);
|
|
|
- }
|
|
|
- }
|
|
|
- FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
- feeCenterReports.setRemarks(item.getRemarks());
|
|
|
- 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.getPrice());
|
|
|
- feeCenterReportsList.add(feeCenterReports);
|
|
|
- }
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- bills.setTo(feeCenterList.get(0).getCorpCnName());
|
|
|
- bills.setAccNo(feeCenterList.stream().map(FeeCenter::getAccBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- bills.setFeeCenterList(feeCenterReportsList);
|
|
|
- amountProfit = amountDr.subtract(amountCr);
|
|
|
- amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
- amountDrLoc = amountDrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1")).add(amountDr);
|
|
|
- amountCrLoc = amountCrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C, "1")).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.isEmpty()) {
|
|
|
- bills.setAccountBank(bCorpsBanks.get(0).getAccountBank());
|
|
|
- bills.setAccountNo(bCorpsBanks.get(0).getAccountNo());
|
|
|
- bills.setAddress(bCorpsBanks.get(0).getAddress());
|
|
|
- bills.setSwiftCode(bCorpsBanks.get(0).getSwiftCode());
|
|
|
- }
|
|
|
- bills.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, bills);
|
|
|
- } else {
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
- }
|
|
|
- } else if (MagicValues.COST.equals(reportCode) && MagicValues.MEET.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
-// bills.setFM(MagicValues.FM);
|
|
|
-// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList;
|
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
- if (MagicValues.MM.equals(bills.getBillType())) {
|
|
|
- List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .eq(Bills::getMasterId, bills.getId())
|
|
|
- .eq(Bills::getMasterBillNo, bills.getBillNo()));
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- ids = billsList.stream().map(Bills::getId).collect(Collectors.toList());
|
|
|
- }
|
|
|
- }
|
|
|
- ids.add(0, bills.getId());
|
|
|
- LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getDc, MagicValues.C)
|
|
|
- .eq(FeeCenter::getIsDeleted, 0);
|
|
|
- lambdaQueryWrapper.in(FeeCenter::getPid, ids);
|
|
|
- if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
- } else {
|
|
|
- if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
- lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(curCode)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCurCode, curCode);
|
|
|
- }
|
|
|
- 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 (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
- item.setCorpCnName(item.getShortName());
|
|
|
- } else {
|
|
|
- item.setCorpCnName("无");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(item.getBillShortName())) {
|
|
|
- item.setBillCorpCnName(item.getBillShortName());
|
|
|
- } else {
|
|
|
- item.setBillCorpCnName("无");
|
|
|
- }
|
|
|
- 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(), "1");
|
|
|
- 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(), "1");
|
|
|
- amountCrUsd = amountCrUsd.add(usd);
|
|
|
- }
|
|
|
- }
|
|
|
- FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
- feeCenterReports.setRemarks(item.getRemarks());
|
|
|
- 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.getPrice());
|
|
|
- feeCenterReportsList.add(feeCenterReports);
|
|
|
- }
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- bills.setTo(feeCenterList.get(0).getCorpCnName());
|
|
|
- bills.setAccNo(feeCenterList.stream().map(FeeCenter::getAccBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- bills.setFeeCenterList(feeCenterReportsList);
|
|
|
- amountProfit = amountDr.subtract(amountCr);
|
|
|
- amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
- amountDrLoc = amountDrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1")).add(amountDr);
|
|
|
- amountCrLoc = amountCrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C, "1")).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);
|
|
|
- bills.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, bills);
|
|
|
- } else {
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
- }
|
|
|
- } else if (MagicValues.COST.equals(reportCode) && MagicValues.MEET_BILL.equals(groupCode) && (MagicValues.KYCK.equals(type) || MagicValues.KYJK.equals(type))) {
|
|
|
- AeaBills bills = aeaBillsService.getById(billId);
|
|
|
- if (bills != null) {
|
|
|
-// bills.setFM(MagicValues.FM);
|
|
|
-// bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
|
|
|
- R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
|
|
|
- if (biz.isSuccess()) {
|
|
|
- bills.setSrcType(biz.getData());
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList;
|
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
- if (MagicValues.MM.equals(bills.getBillType())) {
|
|
|
- List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .eq(Bills::getMasterId, bills.getId())
|
|
|
- .eq(Bills::getMasterBillNo, bills.getBillNo()));
|
|
|
- if (!billsList.isEmpty()) {
|
|
|
- ids = billsList.stream().map(Bills::getId).collect(Collectors.toList());
|
|
|
- }
|
|
|
- }
|
|
|
- ids.add(0, bills.getId());
|
|
|
- LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getDc, MagicValues.C)
|
|
|
- .eq(FeeCenter::getAccStatus, 1)
|
|
|
- .eq(FeeCenter::getIsDeleted, 0);
|
|
|
- lambdaQueryWrapper.in(FeeCenter::getPid, ids);
|
|
|
- if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
- } else {
|
|
|
- if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
- lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(curCode)) {
|
|
|
- lambdaQueryWrapper.eq(FeeCenter::getCurCode, curCode);
|
|
|
- }
|
|
|
- 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 (ObjectUtils.isNotNull(item.getShortName())) {
|
|
|
- item.setCorpCnName(item.getShortName());
|
|
|
- } else {
|
|
|
- item.setCorpCnName("无");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(item.getBillShortName())) {
|
|
|
- item.setBillCorpCnName(item.getBillShortName());
|
|
|
- } else {
|
|
|
- item.setBillCorpCnName("无");
|
|
|
- }
|
|
|
- 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(), "1");
|
|
|
- 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(), "1");
|
|
|
- amountCrUsd = amountCrUsd.add(usd);
|
|
|
- }
|
|
|
- }
|
|
|
- FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
- feeCenterReports.setRemarks(item.getRemarks());
|
|
|
- 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.getPrice());
|
|
|
- feeCenterReportsList.add(feeCenterReports);
|
|
|
- }
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- bills.setTo(feeCenterList.get(0).getCorpCnName());
|
|
|
- bills.setAccNo(feeCenterList.stream().map(FeeCenter::getAccBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- bills.setFeeCenterList(feeCenterReportsList);
|
|
|
- amountProfit = amountDr.subtract(amountCr);
|
|
|
- amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
- amountDrLoc = amountDrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1")).add(amountDr);
|
|
|
- amountCrLoc = amountCrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C, "1")).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);
|
|
|
- bills.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, bills);
|
|
|
- } else {
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
- }
|
|
|
- }
|
|
|
- return R.data(map);
|
|
|
- }
|
|
|
-
|
|
|
public R<Map<String, Object>> getReportDataAmend(String billId, String reportCode, String groupCode, String corpIds,
|
|
|
String itemIds, String type, String curCode) {
|
|
|
Map<String, Object> map = new HashMap<>();
|