From fb0de024f8fdffeaba7eef646c55fb58af0d2fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 09:56:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContractManageApplicationService.java | 35 ++++--------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index a3f88d184..816feef03 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -176,6 +176,10 @@ public class ContractManageApplicationService { } } } else { + SubjectAndPriceReturn aReturn = subjectAndPriceReturnList.get(0); + Long id = aReturn.getBillingRulesId(); + BillingRulesPO Rule = contractManageDetailMapper.getBillingRules(id); + String billingFormula = Rule.getBillingFormula(); for (SubjectAndPriceReturn subjectAndPriceReturn : subjectAndPriceReturnList) { Long billingRulesId = subjectAndPriceReturn.getBillingRulesId(); String name = subjectAndPriceReturn.getName(); @@ -190,32 +194,6 @@ public class ContractManageApplicationService { List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() { }); if (billingParamsList != null && billingParamsList.size() ==2) { - Map targetMap = billingParamsList.stream() - .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件 - .findFirst() // 取第一个 - .orElse(null); // 没找到返回null - String chargingId = (String) targetMap.get("chargingId"); - Integer sort = (Integer) targetMap.get("sort"); - Map reles = preSetRulesList.get(0); - String price = (String) reles.get("fields"+sort); - String billingFormula = billingRule.getBillingFormula(); - billingFormula = billingFormula.replace(chargingId, price); - //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 - List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); - //将计费参数实体分成两组,即:固定参数和条件参数 - List fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); - List ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); - if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) { - if (subjectAndPriceReturn.getNum() != null) { - for (BillingParamsDetailDTO ladderParamsEntity : fixedParamsEntityList) { - String chargingId1 = ladderParamsEntity.getChargingId(); - if (chargingId1 != chargingId) { - billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); - } - } - } - } - return DynamicCalculationUtil.calculate(billingFormula); } else { Map targetMap = billingParamsList.stream() .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件 @@ -225,7 +203,7 @@ public class ContractManageApplicationService { Integer sort = (Integer) targetMap.get("sort"); Map reles = preSetRulesList.get(0); String price = (String) reles.get("fields"+sort); - String billingFormula = billingRule.getBillingFormula(); + //String billingFormula = billingRule.getBillingFormula(); billingFormula = billingFormula.replace(chargingId, price); //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); @@ -249,10 +227,11 @@ public class ContractManageApplicationService { } } } - return DynamicCalculationUtil.calculate(billingFormula); + } } } + return DynamicCalculationUtil.calculate(billingFormula); } return BigDecimal.ZERO; }