Browse Source

贸易代理 2024年8月14日17:18:49

纪新园 1 year ago
parent
commit
a66807bc89

+ 90 - 19
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java

@@ -473,7 +473,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 						item.setUpdateUserName(AuthUtil.getUserName());
 					}
 				}
-				if (!recordList.isEmpty()){
+				if (!recordList.isEmpty()) {
 					recordService.saveBatch(recordList);
 				}
 				agentItemsService.saveOrUpdateBatch(agent.getAgentItemsList());
@@ -2020,8 +2020,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 					data.setStlAmountCrLoc(item.getAmount());
 				}
 				finAccBillsService.saveOrUpdate(data);
-			}
-			else {
+			} else {
 				if ("D".equals(item.getDc())) {
 					data.setStlAmountDr(item.getAmount());
 					data.setStlAmountCr(new BigDecimal("0.00"));
@@ -4235,12 +4234,30 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
 			if (ObjectUtils.isNotNull(serviceCharge)) {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amount = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amount.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amount.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amount);
+					feeCenter.setAmount(amount);
+				}
 			} else {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amount = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amount.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amount.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amount);
+					feeCenter.setAmount(amount);
+				}
 			}
 			return feeCenter;
 		} else if ("YFK".equals(type)) {
@@ -4351,12 +4368,30 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
 			if (ObjectUtils.isNotNull(serviceCharge)) {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amountServiceCharge = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amountServiceCharge.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amountServiceCharge.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amountServiceCharge);
+					feeCenter.setAmount(amountServiceCharge);
+				}
 			} else {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amountServiceCharge = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amountServiceCharge.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amountServiceCharge.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amountServiceCharge);
+					feeCenter.setAmount(amountServiceCharge);
+				}
 			}
 			return feeCenter;
 		} else if ("YFK".equals(type)) {
@@ -4460,12 +4495,30 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
 			if (ObjectUtils.isNotNull(serviceCharge)) {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amountServiceCharge = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amountServiceCharge.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amountServiceCharge.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amountServiceCharge);
+					feeCenter.setAmount(amountServiceCharge);
+				}
 			} else {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amountServiceCharge = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amountServiceCharge.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amountServiceCharge.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amountServiceCharge);
+					feeCenter.setAmount(amountServiceCharge);
+				}
 			}
 			return feeCenter;
 		} else if ("YFK".equals(type)) {
@@ -4576,12 +4629,30 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
 			if (ObjectUtils.isNotNull(serviceCharge)) {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amountServiceCharge = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amountServiceCharge.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amountServiceCharge.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amountServiceCharge);
+					feeCenter.setAmount(amountServiceCharge);
+				}
 			} else {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
-				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
-				feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
+				BigDecimal amountServiceCharge = serviceChargeAmount.multiply(prepaidAmount).setScale(2, RoundingMode.HALF_UP);
+				if (amountServiceCharge.compareTo(new BigDecimal("1000")) > 0) {
+					feeCenter.setPrice(new BigDecimal("1000"));
+					feeCenter.setAmount(new BigDecimal("1000"));
+				} else if (amountServiceCharge.compareTo(new BigDecimal("50")) < 0) {
+					feeCenter.setPrice(new BigDecimal("50"));
+					feeCenter.setAmount(new BigDecimal("50"));
+				} else {
+					feeCenter.setPrice(amountServiceCharge);
+					feeCenter.setAmount(amountServiceCharge);
+				}
 			}
 			return feeCenter;
 		} else if ("YFK".equals(type)) {

+ 9 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -651,6 +651,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 				// 毛利率
 				order.setGrossProfitRate(grossProfitRate);
+				if (order.getId() != null){
+					Acc acc = financeClient.selectByParentId(order.getId());
+					if (acc != null){
+						BigDecimal amountItem = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						acc.setAmount(amountItem.add(amountD));
+						acc.setPrice(amountItem.add(amountD));
+						financeClient.update(acc);
+					}
+				}
 			} else {
 				// 毛利额
 				order.setGrossProfit(new BigDecimal(BigInteger.ZERO));