|
|
@@ -466,6 +466,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
BigDecimal amountCrLoc = new BigDecimal("0.00");
|
|
|
BigDecimal amountProfitLoc = new BigDecimal("0.00");
|
|
|
List<FeeCenter> feeCenterListAll = new ArrayList<>();
|
|
|
+ BigDecimal exrateD = bCurrencyService.getCnyExrate("USD", "D", "1");
|
|
|
+ BigDecimal exrateC = bCurrencyService.getCnyExrate("USD", "C", "1");
|
|
|
//应付
|
|
|
int statusC = 0;
|
|
|
if (ObjectUtils.isNotNull(bills.getFeeCenterListC())) {
|
|
|
@@ -512,12 +514,11 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
} else if ("CNY".equals(item.getCurCode())) {
|
|
|
amountCr = amountCr.add(item.getAmount());
|
|
|
} else {
|
|
|
- BigDecimal usd = bCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc(), "1");
|
|
|
+ BigDecimal usd = item.getAmount().multiply(exrateC);
|
|
|
amountCrUsd = amountCrUsd.add(usd);
|
|
|
}
|
|
|
feeCenterListAll.add(item);
|
|
|
}
|
|
|
-// feeCenterService.submitList(bills.getFeeCenterListC());
|
|
|
}
|
|
|
//应收
|
|
|
int statusD = 0;
|
|
|
@@ -565,15 +566,14 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
} else if ("CNY".equals(item.getCurCode())) {
|
|
|
amountDr = amountDr.add(item.getAmount());
|
|
|
} else {
|
|
|
- BigDecimal usd = bCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc(), "1");
|
|
|
+ BigDecimal usd = item.getAmount().multiply(exrateD);
|
|
|
amountDrUsd = amountDrUsd.add(usd);
|
|
|
}
|
|
|
feeCenterListAll.add(item);
|
|
|
}
|
|
|
-// feeCenterService.submitList(bills.getFeeCenterListD());
|
|
|
}
|
|
|
if (!feeCenterListAll.isEmpty()) {
|
|
|
- feeCenterService.submitList(feeCenterListAll);
|
|
|
+ feeCenterService.submitListOptimization(feeCenterListAll);
|
|
|
}
|
|
|
if (0 == statusD && 0 == statusC) {
|
|
|
bills.setAccountStatus(0);
|
|
|
@@ -607,7 +607,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
measurement = measurement.add(details.stream().map(Bills::getMeasurement).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
|
|
|
}
|
|
|
- } else if ("MH".equals(bills.getBillType()) && ObjectUtils.isNotNull(bills.getId())) {
|
|
|
+ }
|
|
|
+ else if ("MH".equals(bills.getBillType()) && ObjectUtils.isNotNull(bills.getId())) {
|
|
|
Bills details = baseMapper.selectOne(new LambdaQueryWrapper<Bills>()
|
|
|
.select(Bills::getAmountDr, Bills::getAmountCr, Bills::getAmountProfit, Bills::getAmountDrUsd, Bills::getAmountCrUsd
|
|
|
, Bills::getAmountProfitUsd, Bills::getAmountDrLoc, Bills::getAmountCrLoc, Bills::getAmountProfitLoc
|
|
|
@@ -639,7 +640,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
} else if ("CNY".equals(item.getCurCode())) {
|
|
|
amountCrM = amountCrM.add(item.getAmount());
|
|
|
} else {
|
|
|
- BigDecimal usd = bCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc(), "1");
|
|
|
+ BigDecimal usd = item.getAmount().multiply(exrateC);
|
|
|
amountCrUsdM = amountCrUsdM.add(usd);
|
|
|
}
|
|
|
} else {
|
|
|
@@ -648,7 +649,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
} else if ("CNY".equals(item.getCurCode())) {
|
|
|
amountDrM = amountDrM.add(item.getAmount());
|
|
|
} else {
|
|
|
- BigDecimal usd = bCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc(), "1");
|
|
|
+ BigDecimal usd = item.getAmount().multiply(exrateD);
|
|
|
amountDrUsdM = amountDrUsdM.add(usd);
|
|
|
}
|
|
|
}
|
|
|
@@ -680,8 +681,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
//利润 = 收 - 付
|
|
|
amountProfitM = amountDrM.subtract(amountCrM);
|
|
|
amountProfitUsdM = amountDrUsdM.subtract(amountCrUsdM);
|
|
|
- amountDrLocM = amountDrLocM.add(bCurrencyService.converterCny("USD", amountDrUsdM, "D", "1")).add(amountDrM);
|
|
|
- amountCrLocM = amountCrLocM.add(bCurrencyService.converterCny("USD", amountCrUsdM, "C", "1")).add(amountCrM);
|
|
|
+ amountDrLocM = amountDrLocM.add(amountDrUsdM.multiply(exrateD)).add(amountDrM);
|
|
|
+ amountCrLocM = amountCrLocM.add(amountCrUsdM.multiply(exrateC)).add(amountCrM);
|
|
|
amountProfitLocM = amountDrLocM.subtract(amountCrLocM);
|
|
|
details.setAmountDr(amountDrM);
|
|
|
details.setAmountCr(amountCrM);
|
|
|
@@ -702,12 +703,12 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
amountProfit = amountDr.subtract(amountCr);
|
|
|
amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
if (amountDrUsd.compareTo(new BigDecimal("0.00")) != 0) {
|
|
|
- amountDrLoc = amountDrLoc.add(bCurrencyService.converterCny("USD", amountDrUsd, "D", "1")).add(amountDr);
|
|
|
+ amountDrLoc = amountDrLoc.add(amountDrUsd.multiply(exrateD)).add(amountDr);
|
|
|
} else {
|
|
|
amountDrLoc = amountDrLoc.add(amountDr);
|
|
|
}
|
|
|
if (amountCrUsd.compareTo(new BigDecimal("0.00")) != 0) {
|
|
|
- amountCrLoc = amountCrLoc.add(bCurrencyService.converterCny("USD", amountCrUsd, "C", "1")).add(amountCr);
|
|
|
+ amountCrLoc = amountCrLoc.add(amountCrUsd.multiply(exrateC)).add(amountCr);
|
|
|
} else {
|
|
|
amountCrLoc = amountCrLoc.add(amountCr);
|
|
|
}
|
|
|
@@ -725,7 +726,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
bills.setGrossWeight(grossWeight);
|
|
|
bills.setMeasurement(measurement);
|
|
|
|
|
|
-
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
String formatted = now.format(formatter);
|