diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java index 4a9047ef6..cc2643518 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java @@ -87,6 +87,7 @@ public class WxEnergyHelper { if (StringUtils.isBlank(formula)) { return null; } + formula = formula.replaceAll("\\{.*?\\}", ""); List buildingAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#buildingArea_", "#"); List floorAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#floorArea_", "#"); List meterList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#meter_", "#"); @@ -97,7 +98,7 @@ public class WxEnergyHelper { if (null != bs && bs.length > 1) { BigDecimal buildingArea = buildingAreaMap.get(Long.parseLong(bs[1])); if (null != buildingArea) { - formula = formula.replaceAll("{#buildingArea_"+Long.parseLong(bs[1])+"#}", buildingArea.toPlainString()); + formula = formula.replaceAll("#buildingArea_"+Long.parseLong(bs[1])+"#", buildingArea.toPlainString()); } } } @@ -110,7 +111,7 @@ public class WxEnergyHelper { if (null != bs && bs.length > 1) { BigDecimal floorarea = floorAreaMap.get(Long.parseLong(bs[1])); if (null != floorarea) { - formula = formula.replaceAll("{#floorArea_"+Long.parseLong(bs[1])+"#}", floorarea.toPlainString()); + formula = formula.replaceAll("#floorArea_"+Long.parseLong(bs[1])+"#", floorarea.toPlainString()); } } @@ -124,13 +125,13 @@ public class WxEnergyHelper { if (null != bs && bs.length > 1) { BigDecimal mu = meterNumberMap.get(Long.parseLong(bs[1])); if (null != mu ) { - formula = formula.replaceAll("{#meter_"+Long.parseLong(bs[1])+"#}", mu.toPlainString()); + formula = formula.replaceAll("#meter_"+Long.parseLong(bs[1])+"#", mu.toPlainString()); } } } } - formula = formula.replaceAll("{#totalArea#}", totalArea.toPlainString()); - formula = formula.replaceAll("{#shopPublicRax#}", shop.getBuildArea()); + formula = formula.replaceAll("#totalArea#", totalArea.toPlainString()); + formula = formula.replaceAll("#shopPublicRax#", shop.getBuildArea()); return formula; } @@ -142,7 +143,7 @@ public class WxEnergyHelper { if (null != buildingAreaList && buildingAreaList.size() > 0 ) { for (int i = 0 ; i < buildingAreaList.size(); i ++) { String floorArea = buildingAreaList.get(i); - formula = formula.replaceAll(floorArea, "1"); + formula = formula.replaceAll("\\{.*?\\}", "").replaceAll(floorArea.substring(1,floorArea.length()-1), "1"); } } FormulaParser.evaluate(formula);