| @@ -87,6 +87,7 @@ public class WxEnergyHelper { | |||||
| if (StringUtils.isBlank(formula)) { | if (StringUtils.isBlank(formula)) { | ||||
| return null; | return null; | ||||
| } | } | ||||
| formula = formula.replaceAll("\\{.*?\\}", ""); | |||||
| List<String> buildingAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#buildingArea_", "#"); | List<String> buildingAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#buildingArea_", "#"); | ||||
| List<String> floorAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#floorArea_", "#"); | List<String> floorAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#floorArea_", "#"); | ||||
| List<String> meterList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#meter_", "#"); | List<String> meterList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#meter_", "#"); | ||||
| @@ -97,7 +98,7 @@ public class WxEnergyHelper { | |||||
| if (null != bs && bs.length > 1) { | if (null != bs && bs.length > 1) { | ||||
| BigDecimal buildingArea = buildingAreaMap.get(Long.parseLong(bs[1])); | BigDecimal buildingArea = buildingAreaMap.get(Long.parseLong(bs[1])); | ||||
| if (null != buildingArea) { | 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) { | if (null != bs && bs.length > 1) { | ||||
| BigDecimal floorarea = floorAreaMap.get(Long.parseLong(bs[1])); | BigDecimal floorarea = floorAreaMap.get(Long.parseLong(bs[1])); | ||||
| if (null != floorarea) { | 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) { | if (null != bs && bs.length > 1) { | ||||
| BigDecimal mu = meterNumberMap.get(Long.parseLong(bs[1])); | BigDecimal mu = meterNumberMap.get(Long.parseLong(bs[1])); | ||||
| if (null != mu ) { | 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; | return formula; | ||||
| } | } | ||||
| @@ -142,7 +143,7 @@ public class WxEnergyHelper { | |||||
| if (null != buildingAreaList && buildingAreaList.size() > 0 ) { | if (null != buildingAreaList && buildingAreaList.size() > 0 ) { | ||||
| for (int i = 0 ; i < buildingAreaList.size(); i ++) { | for (int i = 0 ; i < buildingAreaList.size(); i ++) { | ||||
| String floorArea = buildingAreaList.get(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); | FormulaParser.evaluate(formula); | ||||