|
|
@@ -1496,6 +1496,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agent.setServiceCharge(new BigDecimal("0.00"));
|
|
|
}
|
|
|
long sxfCount = feeCenters.stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
|
|
|
+ BigDecimal tradeAgencyAmount = new BigDecimal("0.00");
|
|
|
+ BigDecimal otherAmount = new BigDecimal("0.00");
|
|
|
for (FeeCenter item : feeCenters) {
|
|
|
item.setStlBillId(finStlBills.getId());
|
|
|
item.setStlBillNo(finStlBills.getBillNo());
|
|
|
@@ -1506,6 +1508,17 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
throw new RuntimeException("生成账单失败");
|
|
|
}
|
|
|
+ if (!"SXF,YDF,YFK,WK,SFK,DLF".contains(item.getFeeCode())) {
|
|
|
+ if ("CNY".equals(item.getCurCode())) {
|
|
|
+ otherAmount = otherAmount.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ otherAmount = otherAmount.add(item.getAmount().multiply(agent.getExchangeRate()));
|
|
|
+ item.setAmount(item.getAmount().multiply(agent.getExchangeRate()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ("DLF".equals(item.getFeeCode())) {
|
|
|
+ tradeAgencyAmount = tradeAgencyAmount.add(item.getAmount());
|
|
|
+ }
|
|
|
if ("SXF".equals(item.getFeeCode())) {
|
|
|
item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
|
|
|
item.setPrice(item.getAmount());
|
|
|
@@ -1518,6 +1531,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
this.updateBatchById(agentList);
|
|
|
agent.setServiceCharge(feeCenters.stream().filter(e -> "SXF".equals(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agent.setActualAmount(agent.getGoodsValue().add(agent.getPostElectricFee()).add(agent.getServiceCharge()));
|
|
|
+ agent.setTradeAgencyAmount(tradeAgencyAmount);
|
|
|
+ agent.setOtherAmount(otherAmount);
|
|
|
updateById(agent);
|
|
|
this.updateBatchById(agentList);
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
@@ -2160,6 +2175,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
serviceChargeDiscount = new BigDecimal("0.00");
|
|
|
}
|
|
|
long sxfCount = feeCenters1.stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
|
|
|
+ BigDecimal tradeAgencyAmount = new BigDecimal("0.00");
|
|
|
+ BigDecimal otherAmount = new BigDecimal("0.00");
|
|
|
for (FeeCenter item : feeCenters1) {
|
|
|
item.setStlBillId(finStlBills.getId());
|
|
|
item.setStlBillNo(finStlBills.getBillNo());
|
|
|
@@ -2170,6 +2187,17 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
throw new RuntimeException("生成账单失败");
|
|
|
}
|
|
|
+ if (!"SXF,YDF,YFK,WK,SFK,DLF".contains(item.getFeeCode())) {
|
|
|
+ if ("CNY".equals(item.getCurCode())) {
|
|
|
+ otherAmount = otherAmount.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ otherAmount = otherAmount.add(item.getAmount().multiply(agent.getExchangeRate()));
|
|
|
+ item.setAmount(item.getAmount().multiply(agent.getExchangeRate()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ("DLF".equals(item.getFeeCode())) {
|
|
|
+ tradeAgencyAmount = tradeAgencyAmount.add(item.getAmount());
|
|
|
+ }
|
|
|
if ("SXF".equals(item.getFeeCode())) {
|
|
|
item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
|
|
|
item.setPrice(item.getAmount());
|
|
|
@@ -2193,6 +2221,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agent.setPostElectricFee(feeCenters1.stream().filter(e -> "YDF".equals(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agent.setServiceCharge(feeCenters1.stream().filter(e -> "SXF".equals(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agent.setActualAmount(agent.getGoodsValue().add(agent.getPostElectricFee()).add(agent.getServiceCharge()));
|
|
|
+ agent.setTradeAgencyAmount(tradeAgencyAmount);
|
|
|
+ agent.setOtherAmount(otherAmount);
|
|
|
updateById(agent);
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
@@ -2963,7 +2993,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.eq(FeeCenter::getIsDeleted, 0)
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getDc, dc)
|
|
|
- .apply("find_in_set(fee_code,'SXF,YDF,YFK,WK,SFK')")
|
|
|
+// .apply("find_in_set(fee_code,'SXF,YDF,YFK,WK,SFK')")
|
|
|
.eq(FeeCenter::getStlStatus, 0)
|
|
|
.eq(FeeCenter::getAuditStatus, 0)
|
|
|
.in(FeeCenter::getPid, idList));
|
|
|
@@ -3104,12 +3134,32 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
baseMapper.insert(stlAgent);
|
|
|
long ydfCount = feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode())).count();
|
|
|
long sxfCount = feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
|
|
|
+ BigDecimal tradeAgencyAmount = new BigDecimal("0.00");
|
|
|
+ BigDecimal otherAmount = new BigDecimal("0.00");
|
|
|
+ BigDecimal valueAddedTax = new BigDecimal("0.00");
|
|
|
+ BigDecimal tariff = new BigDecimal("0.00");
|
|
|
for (FeeCenter item : feeCenterList) {
|
|
|
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());
|
|
|
+ } else {
|
|
|
+ otherAmount = otherAmount.add(item.getAmount().multiply(item.getStlExrate()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ("DLF".equals(item.getFeeCode())) {
|
|
|
+ tradeAgencyAmount = tradeAgencyAmount.add(item.getAmount());
|
|
|
+ }
|
|
|
+ if ("ZZS".equals(item.getFeeCode())) {
|
|
|
+ valueAddedTax = valueAddedTax.add(item.getAmount());
|
|
|
+ }
|
|
|
+ if ("GS".equals(item.getFeeCode())) {
|
|
|
+ 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());
|
|
|
@@ -3138,6 +3188,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setAuditStatus("5");
|
|
|
item.setStlPid(stlAgent.getId());
|
|
|
}
|
|
|
+ stlAgent.setTradeAgencyAmount(tradeAgencyAmount);
|
|
|
+ stlAgent.setOtherAmount(otherAmount);
|
|
|
+ baseMapper.updateById(stlAgent);
|
|
|
feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
//给角色为财务的人发送消息
|
|
|
String processType;
|