소스 검색

2024年1月13日17:11:53

纪新园 1 년 전
부모
커밋
125b347879
1개의 변경된 파일24개의 추가작업 그리고 22개의 파일을 삭제
  1. 24 22
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

+ 24 - 22
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

@@ -149,10 +149,10 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			feeCenter.setAmountLoc(amount);
 			feeCenter.setAmountDiscountLoc(amount);
 		} else {
-			feeCenter.setAmountNetLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountNet,""));
-			feeCenter.setAmountTaxLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountTax,""));
-			feeCenter.setAmountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount,""));
-			feeCenter.setAmountDiscountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount,""));
+			feeCenter.setAmountNetLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountNet, ""));
+			feeCenter.setAmountTaxLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountTax, ""));
+			feeCenter.setAmountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount, ""));
+			feeCenter.setAmountDiscountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount, ""));
 		}
 		feeCenter.setAmountNet(amountNet);
 		feeCenter.setAmountTax(amountTax);
@@ -185,12 +185,6 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			.eq(PreContainers::getIsDeleted, 0)
 			.eq(PreContainers::getPid, bills.getId()));
 		if (losBFeesTemplate.getFeesTemplateItemsList().size() > 0) {
-			String code = losBFeesTemplate.getFeesTemplateItemsList().stream().map(FeesTemplateItems::getCurCode).distinct().collect(Collectors.joining(","));
-			List<BCurrency> bCurrency = currencyMapper.selectList(new LambdaQueryWrapper<BCurrency>()
-				.eq(BCurrency::getTenantId, AuthUtil.getTenantId())
-				.eq(BCurrency::getIsDeleted, 0)
-				.apply("find_in_set(code,'" + code + "')")
-				.eq(BCurrency::getStatus, 0));
 			int count = 1;
 			for (FeesTemplateItems items : losBFeesTemplate.getFeesTemplateItemsList()) {
 				FeeCenter feeCenter = new FeeCenter();
@@ -243,9 +237,17 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setPrice(items.getPrice());
 				feeCenter.setCurCode(items.getCurCode());
 				if (ObjectUtils.isNotNull(feeCenter.getCurCode())) {
-					BCurrency currency = bCurrency.stream().filter(e -> e.getCode().equals(feeCenter.getCurCode())).findFirst().orElse(null);
-					if (currency != null) {
-						feeCenter.setExrate(currency.getExrate());
+					BCurrency bCurrency = new BCurrency();
+					bCurrency.setDate(bills.getEtd());
+					bCurrency.setDc(losBFeesTemplate.getDc());
+					List<BCurrency> bCurrencyList = bCurrencyService.getExrate(bCurrency);
+					if (bCurrencyList.size() > 0) {
+						BCurrency currency = bCurrencyList.stream().filter(e -> e.getCode().equals(feeCenter.getCurCode())).findFirst().orElse(null);
+						if (currency != null) {
+							feeCenter.setExrate(currency.getExrate());
+						} else {
+							throw new RuntimeException("未找到汇率信息");
+						}
 					}
 				}
 				if ("1".equals(items.getQuantityRule())) {
@@ -309,23 +311,23 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 					if ("TEU".equals(items.getUnitNo())) {
 						BigDecimal quantity20GPTeu = preContainers.stream().filter(e -> "20GP".equals(e.getCntrTypeCode())).map(PreContainers::getTeu).reduce(BigDecimal.ZERO, BigDecimal::add);
 						Integer quantity20GP = preContainers.stream().filter(e -> "20GP".equals(e.getCntrTypeCode())).map(PreContainers::getQuantity).mapToInt(Integer::intValue).sum();
-						BigDecimal quantity20GPSum = quantity20GPTeu.multiply(new BigDecimal(quantity20GP+""));
+						BigDecimal quantity20GPSum = quantity20GPTeu.multiply(new BigDecimal(quantity20GP + ""));
 
 						BigDecimal quantity40GPTeu = preContainers.stream().filter(e -> "40GP".equals(e.getCntrTypeCode())).map(PreContainers::getTeu).reduce(BigDecimal.ZERO, BigDecimal::add);
 						Integer quantity40GP = preContainers.stream().filter(e -> "40GP".equals(e.getCntrTypeCode())).map(PreContainers::getQuantity).mapToInt(Integer::intValue).sum();
-						BigDecimal quantity40GPSum = quantity40GPTeu.multiply(new BigDecimal(quantity40GP+""));
+						BigDecimal quantity40GPSum = quantity40GPTeu.multiply(new BigDecimal(quantity40GP + ""));
 
 						BigDecimal quantity40HCTeu = preContainers.stream().filter(e -> "40HC".equals(e.getCntrTypeCode())).map(PreContainers::getTeu).reduce(BigDecimal.ZERO, BigDecimal::add);
 						Integer quantity40HC = preContainers.stream().filter(e -> "40HC".equals(e.getCntrTypeCode())).map(PreContainers::getQuantity).mapToInt(Integer::intValue).sum();
-						BigDecimal quantity40HCSum = quantity40HCTeu.multiply(new BigDecimal(quantity40HC+""));
+						BigDecimal quantity40HCSum = quantity40HCTeu.multiply(new BigDecimal(quantity40HC + ""));
 
 						BigDecimal quantity45GPTeu = preContainers.stream().filter(e -> "45GP".equals(e.getCntrTypeCode())).map(PreContainers::getTeu).reduce(BigDecimal.ZERO, BigDecimal::add);
 						Integer quantity45GP = preContainers.stream().filter(e -> "45GP".equals(e.getCntrTypeCode())).map(PreContainers::getQuantity).mapToInt(Integer::intValue).sum();
-						BigDecimal quantity45GPSum = quantity45GPTeu.multiply(new BigDecimal(quantity45GP+""));
+						BigDecimal quantity45GPSum = quantity45GPTeu.multiply(new BigDecimal(quantity45GP + ""));
 
 						BigDecimal quantity48GPTeu = preContainers.stream().filter(e -> "48GP".equals(e.getCntrTypeCode())).map(PreContainers::getTeu).reduce(BigDecimal.ZERO, BigDecimal::add);
 						Integer quantity48GP = preContainers.stream().filter(e -> "48GP".equals(e.getCntrTypeCode())).map(PreContainers::getQuantity).mapToInt(Integer::intValue).sum();
-						BigDecimal quantity48GPSum = quantity48GPTeu.multiply(new BigDecimal(quantity48GP+""));
+						BigDecimal quantity48GPSum = quantity48GPTeu.multiply(new BigDecimal(quantity48GP + ""));
 
 						BigDecimal quantity = quantity20GPSum.add(quantity40GPSum).add(quantity40HCSum).add(quantity45GPSum).add(quantity48GPSum);
 						if (quantity.compareTo(new BigDecimal("0")) == 0) {
@@ -422,10 +424,10 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setAmountLoc(amount);
 				feeCenter.setAmountDiscountLoc(amount);
 			} else {
-				feeCenter.setAmountNetLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountNet,""));
-				feeCenter.setAmountTaxLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountTax,""));
-				feeCenter.setAmountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount,""));
-				feeCenter.setAmountDiscountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount,""));
+				feeCenter.setAmountNetLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountNet, ""));
+				feeCenter.setAmountTaxLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amountTax, ""));
+				feeCenter.setAmountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount, ""));
+				feeCenter.setAmountDiscountLoc(bCurrencyService.converterCny(feeCenter.getCurCode(), amount, ""));
 			}
 			feeCenter.setAmountNet(amountNet);
 			feeCenter.setAmountTax(amountTax);