Browse Source

君海:1.确认付费提示是否已收全部到账判断bug修改
2.确认收付费保存接口增加判断,状态不等于录入不修改费用数据

纪新园 7 months ago
parent
commit
10d41a6e5f

+ 59 - 56
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java

@@ -465,7 +465,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 				baseMapper.updateById(agent);
 			}
 		}
-		if ("MYDL-STL".equals(agent.getBusinessType()) && ObjectUtils.isNotNull(agent.getExchangeRate())) {
+		if ("MYDL-STL".equals(agent.getBusinessType()) && ObjectUtils.isNull(agent.getExchangeRate()) && "录入".equals(agent.getOrderStatus())) {
 			LocalDate localDate = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
 			int year = localDate.getYear();
 			int month = localDate.getMonthValue();
@@ -573,23 +573,25 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 					item.setPodEnName(agent.getPodEnName());
 					item.setPid(agent.getId());
 				} else {
-					item.setStlPid(agent.getId());
-					item.setStlExrate(agent.getExchangeRate());
-					if (item.getStlExrate().compareTo(item.getDiscountExrate()) < 0) {
-						throw new RuntimeException("优惠汇率不能大于结算汇率");
-					}
-					if ("SFK,WK".contains(item.getFeeCode())) {
-						item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
-						item.setPrice(item.getAmount());
-					}
-					if ("YDF".equals(item.getFeeCode())) {
-						item.setAmount(agent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
-						item.setPrice(item.getAmount());
-					}
-					if ("SXF".equals(item.getFeeCode())) {
-						item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
-						item.setPrice(item.getAmount());
+					if ("录入".equals(agent.getOrderStatus())){
+						item.setStlExrate(agent.getExchangeRate());
+						if (item.getStlExrate().compareTo(item.getDiscountExrate()) < 0) {
+							throw new RuntimeException("优惠汇率不能大于结算汇率");
+						}
+						if ("SFK,WK".contains(item.getFeeCode())) {
+							item.setAmount(agent.getExchangeRate().multiply(item.getAmountLoc()).setScale(2, RoundingMode.HALF_UP));
+							item.setPrice(item.getAmount());
+						}
+						if ("YDF".equals(item.getFeeCode())) {
+							item.setAmount(agent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
+							item.setPrice(item.getAmount());
+						}
+						if ("SXF".equals(item.getFeeCode())) {
+							item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
+							item.setPrice(item.getAmount());
+						}
 					}
+					item.setStlPid(agent.getId());
 				}
 				if (item.getId() == null) {
 					item.setCreateTime(new Date());
@@ -613,29 +615,31 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 				if (ObjectUtils.isNull(item.getDiscountExrate())) {
 					throw new RuntimeException("首款、尾款,手续费优惠汇率不能为空");
 				}
-				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));
-				} else {
-					FeeCenter feeCenter = feeCenters.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
-					if (feeCenter != null) {
-						BigDecimal serviceChargeAmount;
-						if (ObjectUtils.isNotNull(serviceCharge)) {
-							serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
-						} else {
-							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);
-						} else {
-							item.setProfit(new BigDecimal("0.00"));
-							profit = profit.add(new BigDecimal("0.00"));
-						}
+				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));
+					} else {
+						FeeCenter feeCenter = feeCenters.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
+						if (feeCenter != null) {
+							BigDecimal serviceChargeAmount;
+							if (ObjectUtils.isNotNull(serviceCharge)) {
+								serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
+							} else {
+								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);
+							} else {
+								item.setProfit(new BigDecimal("0.00"));
+								profit = profit.add(new BigDecimal("0.00"));
+							}
 
+						}
 					}
 				}
 			}
@@ -679,20 +683,22 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 					item.setPid(agent.getId());
 				} else {
 					item.setStlPid(agent.getId());
-					item.setStlExrate(agent.getExchangeRate());
+					if ("录入".equals(agent.getOrderStatus())){
+						item.setStlExrate(agent.getExchangeRate());
 //					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 ("YDF".equals(item.getFeeCode())) {
-						item.setAmount(agent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
-						item.setPrice(item.getAmount());
-					}
-					if ("SXF".equals(item.getFeeCode())) {
-						item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
-						item.setPrice(item.getAmount());
+						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 ("YDF".equals(item.getFeeCode())) {
+							item.setAmount(agent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
+							item.setPrice(item.getAmount());
+						}
+						if ("SXF".equals(item.getFeeCode())) {
+							item.setAmount(agent.getServiceCharge().divide(new BigDecimal(sxfCount), 2, RoundingMode.HALF_UP));
+							item.setPrice(item.getAmount());
+						}
 					}
 				}
 				if (item.getId() == null) {
@@ -2809,10 +2815,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			if (feeCenterListD.isEmpty()) {
 				throw new RuntimeException("未找到应收费用明细");
 			}
-			BigDecimal amount = new BigDecimal("0.00");
-			for (FeeCenter item : feeCenterListD){
-				amount = amount.add(item.getAmountLoc().multiply(item.getStlExrate()));
-			}
+			BigDecimal amount = feeCenterListD.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 			BigDecimal amountD = feeCenterListD.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 			if (amount.compareTo(amountD) != 0) {
 				return R.data("实收未全部到账是否继续确认付款");