|
|
@@ -581,7 +581,12 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new RuntimeException("优惠汇率不能大于结算汇率");
|
|
|
}
|
|
|
if ("SFK,WK".contains(item.getFeeCode())) {
|
|
|
- item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ item.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
item.setPrice(item.getAmount());
|
|
|
}
|
|
|
if ("YDF".equals(item.getFeeCode())) {
|
|
|
@@ -619,9 +624,16 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
if ("录入".equals(agent.getOrderStatus())) {
|
|
|
if (!"SXF".equals(item.getFeeCode())) {
|
|
|
- BigDecimal amount = item.getAmountLoc().multiply(item.getDiscountExrate());
|
|
|
- item.setProfit(item.getAmount().subtract(amount));
|
|
|
- profit = profit.add(item.getAmount().subtract(amount));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ BigDecimal amount = item.getAmountLoc().multiply(item.getDiscountExrate());
|
|
|
+ item.setProfit(item.getAmount().subtract(amount));
|
|
|
+ profit = profit.add(item.getAmount().subtract(amount));
|
|
|
+ } else {
|
|
|
+ BigDecimal amount = item.getAmountLoc();
|
|
|
+ item.setProfit(item.getAmount().subtract(amount));
|
|
|
+ profit = profit.add(item.getAmount().subtract(amount));
|
|
|
+ item.setDiscountExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
} else {
|
|
|
FeeCenter feeCenter = feeCenters.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
if (feeCenter != null) {
|
|
|
@@ -632,10 +644,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(item.getDiscountExrate())) {
|
|
|
- BigDecimal amount = feeCenter.getAmountLoc().multiply(item.getDiscountExrate()).multiply(serviceChargeAmount);
|
|
|
- BigDecimal amountSum = item.getAmount().subtract(amount);
|
|
|
- item.setProfit(amountSum);
|
|
|
- profit = profit.add(amountSum);
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ BigDecimal amount = feeCenter.getAmountLoc().multiply(item.getDiscountExrate()).multiply(serviceChargeAmount);
|
|
|
+ BigDecimal amountSum = item.getAmount().subtract(amount);
|
|
|
+ item.setProfit(amountSum);
|
|
|
+ profit = profit.add(amountSum);
|
|
|
+ } else {
|
|
|
+ BigDecimal amount = feeCenter.getAmountLoc().multiply(serviceChargeAmount);
|
|
|
+ BigDecimal amountSum = item.getAmount().subtract(amount);
|
|
|
+ item.setProfit(amountSum);
|
|
|
+ profit = profit.add(amountSum);
|
|
|
+ item.setDiscountExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
} else {
|
|
|
item.setProfit(new BigDecimal("0.00"));
|
|
|
profit = profit.add(new BigDecimal("0.00"));
|
|
|
@@ -690,8 +710,14 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
// item.setExrate(agent.getExchangeRate());
|
|
|
item.setDiscountExrate(agent.getExchangeRate());
|
|
|
if ("SFK,WK".contains(item.getFeeCode())) {
|
|
|
- item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setPrice(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setPrice(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ item.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setPrice(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setDiscountExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
}
|
|
|
if ("YDF".equals(item.getFeeCode())) {
|
|
|
item.setAmount(agent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
|
|
|
@@ -1235,9 +1261,14 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new RuntimeException("费用:" + item.getFeeCnName() + "已确认");
|
|
|
}
|
|
|
if ("SFK,WK".contains(item.getFeeCode())) {
|
|
|
- item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(agent.getExchangeRate());
|
|
|
+ } else {
|
|
|
+ item.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
item.setPrice(item.getAmount());
|
|
|
- item.setStlExrate(agent.getExchangeRate());
|
|
|
}
|
|
|
//账单明细
|
|
|
FinAccBills data = finAccBillsList.stream().filter(e -> e.getId().equals(item.getAccBillId())).findFirst().orElse(null);
|
|
|
@@ -1771,12 +1802,23 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
for (FeeCenter item : feeCenterList) {
|
|
|
if ("SFK,WK".contains(item.getFeeCode())) {
|
|
|
- item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(agent.getExchangeRate());
|
|
|
+ } else {
|
|
|
+ item.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
item.setPrice(item.getAmount());
|
|
|
- item.setDiscountExrate(agent.getDiscountRate());
|
|
|
- BigDecimal discountAmount = agent.getDiscountRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP);
|
|
|
- item.setProfit(item.getAmount().subtract(discountAmount));
|
|
|
- item.setStlExrate(agent.getExchangeRate());
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ BigDecimal discountAmount = agent.getDiscountRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ item.setProfit(item.getAmount().subtract(discountAmount));
|
|
|
+ item.setDiscountExrate(agent.getDiscountRate());
|
|
|
+ } else {
|
|
|
+ BigDecimal discountAmount = item.getAmountLoc().setScale(2, RoundingMode.HALF_UP);
|
|
|
+ item.setProfit(item.getAmount().subtract(discountAmount));
|
|
|
+ item.setDiscountExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
BigDecimal amountC = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
@@ -1900,12 +1942,23 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
for (FeeCenter item : feeCentersList) {
|
|
|
if ("SFK,WK".contains(item.getFeeCode()) && "C".equals(item.getDc()) && 0 == item.getStlStatus()
|
|
|
&& feeCenterIds.contains(item.getId())) {
|
|
|
- item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(agent.getExchangeRate());
|
|
|
+ } else {
|
|
|
+ item.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
item.setPrice(item.getAmount());
|
|
|
- item.setDiscountExrate(agent.getDiscountRate());
|
|
|
- BigDecimal discountAmount = agent.getDiscountRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP);
|
|
|
- item.setProfit(item.getAmount().subtract(discountAmount));
|
|
|
- item.setStlExrate(agent.getExchangeRate());
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ BigDecimal discountAmount = agent.getDiscountRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ item.setProfit(item.getAmount().subtract(discountAmount));
|
|
|
+ item.setDiscountExrate(agent.getDiscountRate());
|
|
|
+ } else {
|
|
|
+ BigDecimal discountAmount = item.getAmountLoc().setScale(2, RoundingMode.HALF_UP);
|
|
|
+ item.setProfit(item.getAmount().subtract(discountAmount));
|
|
|
+ item.setDiscountExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
}
|
|
|
if (1 == item.getStlStatus()) {
|
|
|
throw new RuntimeException("费用:" + item.getFeeCnName() + "已确认");
|
|
|
@@ -2175,7 +2228,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
BigDecimal serviceChargeDiscount = new BigDecimal("0.00");
|
|
|
for (FeeCenter item : feeCenters1) {
|
|
|
if ("SFK,WK".contains(item.getFeeCode())) {
|
|
|
- goodsValue = goodsValue.add(item.getAmountLoc().multiply(item.getDiscountExrate()));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ goodsValue = goodsValue.add(item.getAmountLoc().multiply(item.getDiscountExrate()));
|
|
|
+ } else {
|
|
|
+ goodsValue = goodsValue.add(item.getAmountLoc());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(serviceCharge)) {
|
|
|
@@ -3159,8 +3216,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if ("5".equals(item.getAuditStatus())) {
|
|
|
throw new RuntimeException("费用:" + item.getFeeCnName() + "已申请");
|
|
|
}
|
|
|
- item.setStlExrate(stlAgent.getExchangeRate());
|
|
|
- item.setDiscountExrate(stlAgent.getExchangeRate());
|
|
|
if (!"SXF,YDF,YFK,WK,SFK,DLF,ZZS,GS".contains(item.getFeeCode())) {
|
|
|
if ("CNY".equals(item.getCurCode())) {
|
|
|
otherAmount = otherAmount.add(item.getAmount());
|
|
|
@@ -3178,10 +3233,21 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
tariff = tariff.add(item.getAmount());
|
|
|
}
|
|
|
if ("SFK,WK".contains(item.getFeeCode())) {
|
|
|
- item.setAmount(stlAgent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
- item.setStlExrate(stlAgent.getExchangeRate());
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ item.setStlExrate(stlAgent.getExchangeRate());
|
|
|
+ item.setAmount(stlAgent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ item.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setStlExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
item.setPrice(item.getAmount());
|
|
|
- item.setProfit(item.getAmount().subtract(item.getDiscountExrate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ item.setDiscountExrate(stlAgent.getExchangeRate());
|
|
|
+ item.setProfit(item.getAmount().subtract(item.getDiscountExrate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ } else {
|
|
|
+ item.setProfit(item.getAmount().subtract(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ item.setDiscountExrate(new BigDecimal("1.00"));
|
|
|
+ }
|
|
|
}
|
|
|
if ("YDF".equals(item.getFeeCode())) {
|
|
|
item.setAmount(stlAgent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
|
|
|
@@ -3545,7 +3611,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
agentFeeItemsReport.setSkAmountUsd(item.getAmountLoc());
|
|
|
agentFeeItemsReport.setExchangeRate(item.getExrate());
|
|
|
- agentFeeItemsReport.setAmount(item.getAmountLoc().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setAmount(item.getAmountLoc().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
if (!feeCenterListC.isEmpty()) {
|
|
|
FeeCenter feeCenter = feeCenterListC.stream().filter(e -> e.getFeeCode().equals(item.getFeeCode())
|
|
|
&& ObjectUtils.isNotNull(e.getFeeType()) && "1".equals(e.getFeeType()) && "SFK".equals(e.getFeeCode()))
|
|
|
@@ -3556,10 +3626,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
report.setDate(dateFormat.format(feeCenter.getStlDate()));
|
|
|
}
|
|
|
report.setExchangeRate(feeCenter.getDiscountExrate());
|
|
|
- report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
reportList.add(report);
|
|
|
agentFeeItemsReport.setRealityExchangeRate(feeCenter.getStlExrate());
|
|
|
- agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
} else {
|
|
|
agentFeeItemsReport.setRealityExchangeRate(null);
|
|
|
agentFeeItemsReport.setRealityAmount(null);
|
|
|
@@ -3625,7 +3703,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
agentFeeItemsReport.setWkAmountUsd(item.getAmountLoc());
|
|
|
agentFeeItemsReport.setExchangeRate(item.getExrate());
|
|
|
- agentFeeItemsReport.setAmount(agentFeeItemsReport.getWkAmountUsd().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setAmount(agentFeeItemsReport.getWkAmountUsd().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setAmount(agentFeeItemsReport.getWkAmountUsd().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
if (!feeCenterListC.isEmpty()) {
|
|
|
FeeCenter feeCenter = feeCenterListC.stream().filter(e -> e.getFeeCode().equals(item.getFeeCode())
|
|
|
&& ObjectUtils.isNotNull(e.getFeeType()) && "2".equals(e.getFeeType()) && "WK".equals(e.getFeeCode()))
|
|
|
@@ -3636,10 +3718,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
report.setDate(dateFormat.format(feeCenter.getStlDate()));
|
|
|
}
|
|
|
report.setExchangeRate(feeCenter.getDiscountExrate());
|
|
|
- report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
reportList.add(report);
|
|
|
agentFeeItemsReport.setRealityExchangeRate(feeCenter.getStlExrate());
|
|
|
- agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
} else {
|
|
|
agentFeeItemsReport.setRealityExchangeRate(null);
|
|
|
agentFeeItemsReport.setRealityAmount(null);
|
|
|
@@ -3871,7 +3961,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
agentFeeItemsReport.setSkAmountUsd(item.getAmountLoc());
|
|
|
agentFeeItemsReport.setExchangeRate(item.getExrate());
|
|
|
- agentFeeItemsReport.setAmount(item.getAmountLoc().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setAmount(item.getAmountLoc().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
if (!feeCenterListC.isEmpty()) {
|
|
|
FeeCenter feeCenter = feeCenterListC.stream().filter(e -> e.getFeeCode().equals(item.getFeeCode())
|
|
|
&& ObjectUtils.isNotNull(e.getFeeType()) && "1".equals(e.getFeeType()) && "SFK".equals(e.getFeeCode()))
|
|
|
@@ -3882,10 +3976,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
report.setDate(dateFormat.format(feeCenter.getStlDate()));
|
|
|
}
|
|
|
report.setExchangeRate(feeCenter.getDiscountExrate());
|
|
|
- report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
reportList.add(report);
|
|
|
agentFeeItemsReport.setRealityExchangeRate(feeCenter.getStlExrate());
|
|
|
- agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
} else {
|
|
|
agentFeeItemsReport.setRealityExchangeRate(null);
|
|
|
agentFeeItemsReport.setRealityAmount(null);
|
|
|
@@ -3950,7 +4052,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
agentFeeItemsReport.setWkAmountUsd(item.getAmountLoc());
|
|
|
agentFeeItemsReport.setExchangeRate(item.getExrate());
|
|
|
- agentFeeItemsReport.setAmount(agentFeeItemsReport.getWkAmountUsd().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setAmount(agentFeeItemsReport.getWkAmountUsd().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setAmount(agentFeeItemsReport.getWkAmountUsd().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
if (!feeCenterListC.isEmpty()) {
|
|
|
FeeCenter feeCenter = feeCenterListC.stream().filter(e -> e.getFeeCode().equals(item.getFeeCode())
|
|
|
&& ObjectUtils.isNotNull(e.getFeeType()) && "2".equals(e.getFeeType()) && "WK".equals(e.getFeeCode()))
|
|
|
@@ -3961,10 +4067,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
report.setDate(dateFormat.format(feeCenter.getStlDate()));
|
|
|
}
|
|
|
report.setExchangeRate(feeCenter.getDiscountExrate());
|
|
|
- report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().multiply(feeCenter.getDiscountExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ report.setDiscountAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
reportList.add(report);
|
|
|
agentFeeItemsReport.setRealityExchangeRate(feeCenter.getStlExrate());
|
|
|
- agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
} else {
|
|
|
agentFeeItemsReport.setRealityExchangeRate(null);
|
|
|
agentFeeItemsReport.setRealityAmount(null);
|
|
|
@@ -4397,7 +4511,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
invoicing.setInvoicingItemList(invoicingItemList.isEmpty() ? new ArrayList<>() : invoicingItemList);
|
|
|
if (!invoicingItemList.isEmpty()) {
|
|
|
AgentItems agentItems = agentItemsService.getById(invoicingItemList.get(0).getSrcId());
|
|
|
- if (agentItems != null){
|
|
|
+ if (agentItems != null) {
|
|
|
Agent agent = baseMapper.selectById(agentItems.getPid());
|
|
|
if (agent != null) {
|
|
|
invoicing.setEta(agent.getContractDate());
|
|
|
@@ -4421,7 +4535,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
invoicing.setOtherAmount(feeCenterList.stream().filter(e -> !"GS,ZNJ,ZZS".contains(e.getFeeCode())).map(FeeCenter::getAmount)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- invoicing.setAmountTotal(invoicing.getTariff().add(invoicing.getLateFee()).add(invoicing.getValueAddedTax())
|
|
|
+ invoicing.setAmountTotal(invoicing.getAmount().add(invoicing.getTariff()).add(invoicing.getLateFee()).add(invoicing.getValueAddedTax())
|
|
|
.add(invoicing.getOtherAmount()));
|
|
|
}
|
|
|
}
|