From c081ed340f8a81708374336f8930232cb87981ed Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 27 Aug 2024 14:26:43 +0800 Subject: [PATCH] fix --- .../iformall/domain/po/WxEnergyFeesShop.java | 2 - .../domain/po/WxEnergyMeterReading.java | 2 + .../mapper/WxEnergyMeterReadingMapper.java | 4 + .../service/WxMallBuildingService.java | 2 + .../iformall/service/WxMallFloorService.java | 2 + .../service/helper/WxEnergyHelper.java | 179 +++++++++++++++--- .../service/impl/WxEnergyServiceImpl.java | 55 +++--- .../impl/WxMallBuildingServiceImpl.java | 7 +- .../service/impl/WxMallFloorServiceImpl.java | 9 + .../com/iformall/utils/FormulaParser.java | 76 ++++++++ ...aceholderExtractorWithPrefixAndSuffix.java | 32 ++++ .../mapper/WxEnergyMeterReadingMapper.xml | 12 ++ 12 files changed, 334 insertions(+), 48 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/utils/FormulaParser.java create mode 100644 mallinkService/src/main/java/com/iformall/utils/PlaceholderExtractorWithPrefixAndSuffix.java diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesShop.java index 7d9beb6fd..b396058a1 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesShop.java @@ -64,8 +64,6 @@ public class WxEnergyFeesShop extends TenantEntity { @TableField(exist = false) private List shopIds; @TableField(exist = false) - private List calcuteIds; - @TableField(exist = false) private String feesName; @TableField(exist = false) private String feesIdsStr; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java index 84f3085f5..5df6c1982 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java @@ -118,6 +118,8 @@ public class WxEnergyMeterReading extends TenantEntity { @TableField(exist = false) private List shopIds; @TableField(exist = false) + private List meterIds; + @TableField(exist = false) private String shopIdsStr; @TableField(exist = false) private Long timeId; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java index a17172ad4..d6bbfbefc 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java @@ -4,6 +4,8 @@ import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxEnergyMeterReading; import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -16,4 +18,6 @@ public interface WxEnergyMeterReadingMapper extends CommonMapper getBuildingList1(TenantEntity tenantEntity); ResultData getBuildingFloorList(WxMallBuilding wxMallBuilding,MallUserInfo mallUser); diff --git a/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java b/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java index 7bb163f6d..35263ac73 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java @@ -45,6 +45,8 @@ public interface WxMallFloorService { ResultData getFloorList(TenantEntity tenantEntity, Long buildingId); + List getBudingFloorList(TenantEntity tenantEntity, Long buildingId); + List getFloorIdList(WxMallFloor record); void deleteByBuildingId(Long buildingId); 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 5f31fcde4..fa1413a5d 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java @@ -1,54 +1,187 @@ package com.iformall.service.helper; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.iformall.domain.po.WxEnergyFeesShop; import com.iformall.domain.po.WxEnergyFeesTime; import com.iformall.domain.po.WxEnergyMeter; +import com.iformall.domain.po.WxEnergyMeterReading; +import com.iformall.domain.po.WxMallBuilding; +import com.iformall.domain.po.WxMallFloor; +import com.iformall.domain.po.WxShop; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumYesOrNo; +import com.iformall.mapper.WxEnergyMeterReadingMapper; +import com.iformall.service.WxMallBuildingService; +import com.iformall.service.WxMallFloorService; +import com.iformall.utils.FormulaParser; +import com.iformall.utils.PlaceholderExtractorWithPrefixAndSuffix; +@Service public class WxEnergyHelper { + + @Autowired + WxEnergyMeterReadingMapper wxEnergyMeterReadingMapper; + @Lazy + @Autowired + private WxMallBuildingService wxMallBuildingService; + @Lazy + @Autowired + WxMallFloorService wxMallFloorService; - public static List> generateCalcuteComponent() { + public List> generateCalcuteComponent(TenantEntity tenantEntity) { //公共表,公摊总表,当前楼栋面积,当前楼层面积,总面积,店铺公摊系数 List> retList = new ArrayList>(); - Map currentBuildingArea = new HashMap(); - currentBuildingArea.put("name", "店铺所属楼栋总计租面积"); - currentBuildingArea.put("value", "{#currentBuildingArea#}"); - retList.add(currentBuildingArea); - - Map currentFloorArea = new HashMap(); - currentFloorArea.put("name", "店铺所属楼层总计租面积"); - currentFloorArea.put("value", "{#currentFloorArea#}"); - retList.add(currentFloorArea); - - Map totalArea = new HashMap(); - totalArea.put("name", "商场总计租面积"); - totalArea.put("value", "{#totalArea#}"); - retList.add(totalArea); - + List buildingList = wxMallBuildingService.getBuildingList1(tenantEntity); + if (null != buildingList && buildingList.size() > 0 ) { + for (int i = 0 ; i < buildingList.size(); i++) { + WxMallBuilding mb = buildingList.get(i); + addComponent(retList, "楼栋("+mb.getBuildingName()+")面积", "{#buildingArea_"+mb.getId()+"#}"); + + List floorList = wxMallFloorService.getBudingFloorList(tenantEntity, mb.getId()); + if (null != floorList && floorList.size() > 0 ) { + for (int j = 0 ; j < floorList.size(); j++ ) { + WxMallFloor floor = floorList.get(j); + addComponent(retList, "楼层("+mb.getBuildingName()+floor.getFloorName()+")面积", "{#floorArea_"+floor.getId()+"#}"); + } + } + } + } + addComponent(retList, "商场总计租面积", "{#totalArea#}"); + addComponent(retList, "店铺公摊系数", "{#shopPublicRax#}"); + return retList; + } + + private void addComponent(List> retList, String name, String value) { Map calcuteRax = new HashMap(); - calcuteRax.put("name", "公摊系数"); - calcuteRax.put("value", "{#calcuteRax#}"); + calcuteRax.put("name", name); + calcuteRax.put("value", value); retList.add(calcuteRax); - - return retList; } - public static Map generateMeterComponent(WxEnergyMeter meter) { + public Map generateMeterComponent(WxEnergyMeter meter) { Map m = new HashMap(); m.put("name", meter.getName()); m.put("value", "{#meter_"+meter.getId()+"#}"); return m; } - public static String calcuteMoney(StringBuffer sb,WxEnergyFeesTime time,List meterList,WxEnergyFeesShop shopfee) { - return "0"; + private String replaceFormulaData(String formula,BigDecimal totalArea,WxShop shop,Map buildingAreaMap, + Map floorMap,Map meterNumberMap) { + if (StringUtils.isBlank(formula)) { + return null; + } + List buildingAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#buildingArea_", "#"); + List floorAreaList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#floorArea_", "#"); + List meterList = PlaceholderExtractorWithPrefixAndSuffix.extractPlaceholders(formula, "#meter_", "#"); + if (null != buildingAreaMap && null != buildingAreaList && buildingAreaList.size() > 0 ) { + for (int i = 0 ; i < buildingAreaList.size(); i ++) { + String buildArea = buildingAreaList.get(i); + String[] bs = buildArea.split("_"); + 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()); + } + } + } + } + + if (null != floorMap && null != floorAreaList && floorAreaList.size() > 0 ) { + for (int i = 0 ; i < floorAreaList.size(); i ++) { + String floorArea = floorAreaList.get(i); + String[] bs = floorArea.split("_"); + if (null != bs && bs.length > 1) { + WxMallFloor floor = floorMap.get(Long.parseLong(bs[1])); + if (null != floor && null != floor.getOperatingArea()) { + formula = formula.replaceAll("{#floorArea_"+Long.parseLong(bs[1])+"#}", floor.getOperatingArea().toPlainString()); + } + } + + } + } + + if (null != meterNumberMap && null != meterList && meterList.size() > 0 ) { + for (int i = 0 ; i < meterList.size(); i ++) { + String meter = meterList.get(i); + String[] bs = meter.split("_"); + 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("{#totalArea#}", totalArea.toPlainString()); + formula = formula.replaceAll("{#shopPublicRax#}", shop.getBuildArea()); + return formula; + } + + /** + * 计算金额 + * 1. 如果是用户表: + * 根据店铺所有表的总度数 * 科目单价计算费用 + * + * 2. 如果是公摊: + * 根据科目公式进行计算。 + * + * @param sb + * @param time + * @param meterList + * @param shopfee + * @return + */ + public String calcuteMoney(StringBuffer sb,BigDecimal totalArea,WxShop shop,WxEnergyFeesTime time,List meterList,WxEnergyFeesShop shopfee, + Map buildingAreaMap,Map floorMap,Map meterNumberMap) { + if (StringUtils.isBlank(shopfee.getPrice())) { + return "0"; + } + if (shopfee.getIsPublic() == EnumYesOrNo.YES.getCode()) { + //替代占位符为真实数据 + // + String formula = replaceFormulaData(shopfee.getFormula(),totalArea,shop,buildingAreaMap,floorMap,meterNumberMap); + if (null != formula) { + return new BigDecimal(FormulaParser.evaluate(formula)).setScale(2,BigDecimal.ROUND_HALF_UP).toPlainString(); + } + return "0"; + }else { + if (null == meterList || meterList.size() <= 0 ) { + return "0"; + } + List meterIdList = new ArrayList(); + for (int i = 0 ; i < meterList.size(); i++) { + WxEnergyMeter meter = meterList.get(i); + meterIdList.add(meter.getId()); + } + + //根据表,区间的开始日期,结束日期来查询抄表数据。 + WxEnergyMeterReading mrq = new WxEnergyMeterReading(); + mrq.updateTenantInfo(shopfee); + mrq.setMeterIds(meterIdList); + BigDecimal totalNumber = wxEnergyMeterReadingMapper.findNumberSum(mrq); + if (null == totalNumber || totalNumber.compareTo(new BigDecimal(0)) <= 0 ) { + return "0"; + } + sb.append("表总度数"+totalNumber.toPlainString()+",单价:"+shopfee.getPrice()); + return totalNumber.multiply(new BigDecimal(shopfee.getPrice())).setScale(2,BigDecimal.ROUND_HALF_UP).toPlainString(); + + } } + public void testCalcute(String formula) { + + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java index fe9a7df2a..b05c58d70 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java @@ -75,6 +75,8 @@ public class WxEnergyServiceImpl implements WxEnergyService { WxEnergyReadingCalcuteMapper wxEnergyReadingCalcuteMapper; @Autowired WxEnergyReadingCalcuteResultMapper wxEnergyReadingCalcuteResultMapper; + @Autowired + WxEnergyHelper wxEnergyHelper; @Lazy @Autowired @@ -531,7 +533,7 @@ public class WxEnergyServiceImpl implements WxEnergyService { @Override public List> getFeesCalcuteComponentList(WxEnergyFeesShop record) { - List> retList = WxEnergyHelper.generateCalcuteComponent(); + List> retList = wxEnergyHelper.generateCalcuteComponent(record); //公共表,公摊总表,当前楼栋面积,当前楼层面积,总面积,店铺公摊系数 WxEnergyMeter mq = new WxEnergyMeter(); mq.updateTenantInfo(record); @@ -543,7 +545,7 @@ public class WxEnergyServiceImpl implements WxEnergyService { if (null != page && null != page.getList() ) { for (int i = 0 ; i < page.getList().size() ; i ++) { WxEnergyMeter meter = page.getList().get(i); - retList.add(WxEnergyHelper.generateMeterComponent(meter)); + retList.add(wxEnergyHelper.generateMeterComponent(meter)); } } return retList; @@ -557,21 +559,19 @@ public class WxEnergyServiceImpl implements WxEnergyService { WxEnergyFees fees = this.getFeesById(record.getFeesId(),record.getTenantId()); for (int i = 0 ; i < record.getShopIds().size(); i ++) { Long shopId = record.getShopIds().get(i); - for (int j = 0 ; j < record.getCalcuteIds().size(); j ++) { - Long calcuteId = record.getCalcuteIds().get(j); - WxEnergyFeesShop msf = new WxEnergyFeesShop(); - msf.updateTenantInfo(record); - msf.setId(idWorker.nextId()); - msf.setCreateTime(date); - msf.setUpdateTime(date); - msf.setShopId(shopId); - msf.setIsPublic(fees.getIsPublic()); - msf.setFeesId(fees.getId()); - msf.setPrice(fees.getPrice()); - msf.setFormula(record.getFormula()); - msf.setFormulaContent(record.getFormulaContent()); - wxEnergyFeesShopMapper.insert(msf); - } + WxEnergyFeesShop msf = new WxEnergyFeesShop(); + msf.updateTenantInfo(record); + msf.setId(idWorker.nextId()); + msf.setCreateTime(date); + msf.setUpdateTime(date); + msf.setShopId(shopId); + msf.setIsPublic(fees.getIsPublic()); + msf.setFeesId(fees.getId()); + msf.setPrice(fees.getPrice()); + msf.setFormulaContent(record.getFormulaContent()); + msf.setFormula(record.getFormula()); + wxEnergyHelper.testCalcute(record.getFormula()); + wxEnergyFeesShopMapper.insert(msf); } } @@ -593,9 +593,11 @@ public class WxEnergyServiceImpl implements WxEnergyService { record.setId(idWorker.nextId()); record.setCreateTime(date); record.setUpdateTime(date); + wxEnergyHelper.testCalcute(record.getFormula()); wxEnergyFeesShopMapper.insert(record); }else { record.setUpdateTime(date); + wxEnergyHelper.testCalcute(record.getFormula()); wxEnergyFeesShopMapper.updateById(record); } } @@ -899,9 +901,22 @@ public class WxEnergyServiceImpl implements WxEnergyService { public void generateCalcuteResult(WxEnergyFees fees,WxEnergyReadingCalcute record,List shopIds,EnumEnergyMeterPhysicsType type) { final IdWorker idWorker = IdWorker.get(); + WxShop shq = new WxShop(); + shq.updateTenantInfo(record); + shq.setIds(shopIds); + Map shopMap = wxShopService.findShopMap(shq); + //TODO 总共面积 + BigDecimal totalArea = null; + //TODO 楼栋的面积 + Map buildingAreaMap = null; + //TODO 楼层 + Map floorMap = null; + //TODO 公摊总表的读数 + Map meterNumberMap = null; List resultList = new ArrayList(); for (int i = 0 ; i < shopIds.size(); i ++) { Long shopId= shopIds.get(i); + WxShop shop = shopMap.get(shopId); //根据店铺,所属年月去查询时间区间.根据店铺,时间区间去查对应的抄表数据,根据表来计算总和 WxEnergyFeesTimeShop sq = new WxEnergyFeesTimeShop(); sq.updateTenantInfo(record); @@ -953,14 +968,10 @@ public class WxEnergyServiceImpl implements WxEnergyService { cs.setFeesId(shopfee.getFeesId()); cs.setFeesShopId(shopfee.getId()); StringBuffer sb = new StringBuffer(); - cs.setMoney(WxEnergyHelper.calcuteMoney(sb,time, meterList, shopfee)); + cs.setMoney(wxEnergyHelper.calcuteMoney(sb,totalArea,shop,time, meterList, shopfee,buildingAreaMap,floorMap,meterNumberMap)); cs.setPeriod(record.getPeriod()); cs.setMoney(sb.toString()); resultList.add(cs); - //查询每一个表的抄表数据,求和 - for (int k = 0 ; k < meterList.size() ; k++) { - - } } } if (resultList.size() > 0 ) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java index cadfe0239..637c1d439 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java @@ -113,10 +113,15 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { @Override public ResultData getBuildingList(TenantEntity tenantEntity) { + return new ResultData(getBuildingList1(tenantEntity)); + } + + @Override + public List getBuildingList1(TenantEntity tenantEntity) { WxMallBuilding wxMallBuilding = new WxMallBuilding(); wxMallBuilding.updateTenantInfo(tenantEntity); List list = wxMallBuildingMapper.findList(wxMallBuilding); - return new ResultData(list); + return list; } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java index ea351486c..36a7b4838 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java @@ -70,6 +70,15 @@ public class WxMallFloorServiceImpl implements WxMallFloorService { return new ResultData(list); } + @Override + public List getBudingFloorList(TenantEntity tenantEntity, Long buildingId) { + WxMallFloor wxMallFloor = new WxMallFloor(); + wxMallFloor.updateTenantInfo(tenantEntity); + wxMallFloor.setBuildingId(buildingId); + List list = wxMallFloorMapper.findList(wxMallFloor); + return list; + } + @Override public List getFloorIdList(WxMallFloor record) { return wxMallFloorMapper.getFloorIds(record); diff --git a/mallinkService/src/main/java/com/iformall/utils/FormulaParser.java b/mallinkService/src/main/java/com/iformall/utils/FormulaParser.java new file mode 100644 index 000000000..519603913 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/utils/FormulaParser.java @@ -0,0 +1,76 @@ +package com.iformall.utils; + +import java.util.Stack; + +public class FormulaParser { + + public static double evaluate(String formula) { + Stack values = new Stack<>(); + Stack operators = new Stack<>(); + + for (int i = 0; i < formula.length(); i++) { + char c = formula.charAt(i); + + if (Character.isDigit(c) || c == '.') { + StringBuilder numBuilder = new StringBuilder(); + while (i < formula.length() && (Character.isDigit(formula.charAt(i)) || formula.charAt(i) == '.')) { + numBuilder.append(formula.charAt(i)); + i++; + } + i--; + values.push(Double.parseDouble(numBuilder.toString())); + } else if (c == '(') { + operators.push(c); + } else if (c == ')') { + while (operators.peek()!= '(') { + performOperation(values, operators); + } + operators.pop(); + } else if (c == '+' || c == '-') { + while (!operators.isEmpty() && (operators.peek() == '*' || operators.peek() == '/')) { + performOperation(values, operators); + } + operators.push(c); + } else if (c == '*' || c == '/') { + operators.push(c); + } + } + + while (!operators.isEmpty()) { + performOperation(values, operators); + } + + return values.pop(); + } + + public static void performOperation(Stack values, Stack operators) { + double num2 = values.pop(); + double num1 = values.pop(); + char op = operators.pop(); + + switch (op) { + case '+': + values.push(num1 + num2); + break; + case '-': + values.push(num1 - num2); + break; + case '*': + values.push(num1 * num2); + break; + case '/': + if (num2!= 0) { + values.push(num1 / num2); + } else { + throw new ArithmeticException("除数不能为 0"); + } + break; + } + } + + public static void main(String[] args) { + String formula = "((2 + 3.2) * 4.1 / 3 - 5.6/2) / 2"; + double result = evaluate(formula); + System.out.println("结果: " + result); + } +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/utils/PlaceholderExtractorWithPrefixAndSuffix.java b/mallinkService/src/main/java/com/iformall/utils/PlaceholderExtractorWithPrefixAndSuffix.java new file mode 100644 index 000000000..06c8d01cd --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/utils/PlaceholderExtractorWithPrefixAndSuffix.java @@ -0,0 +1,32 @@ +package com.iformall.utils; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class PlaceholderExtractorWithPrefixAndSuffix { + + public static List extractPlaceholders(String text, String prefix, String suffix) { + List placeholders = new ArrayList<>(); + String pattern = "\\{" + prefix + "[^}]*" + suffix + "\\}"; + Pattern regex = Pattern.compile(pattern); + Matcher matcher = regex.matcher(text); + + while (matcher.find()) { + placeholders.add(matcher.group()); + } + + return placeholders; + } + + public static void main(String[] args) { + String text = "This is a {prefix_value_suffix} and another {prefix_another_suffix}."; + String prefix = "prefix"; + String suffix = "_suffix"; + + List extractedPlaceholders = extractPlaceholders(text, prefix, suffix); + for (String placeholder : extractedPlaceholders) { + System.out.println(placeholder); + } + } +} \ No newline at end of file diff --git a/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml index 05e78d647..ce98be8f2 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml @@ -49,6 +49,12 @@ and meter_name like concat('%', #{meterName},'%') and `is_del` = #{isDel} and create_by_name like concat('%', #{createByName},'%') + + and meter_id in + + #{midItem} + + and shop_id in @@ -80,6 +86,12 @@ update wx_energy_meter_reading set is_del = #{isDel} where id = #{id} and `tenant_id` = #{tenantId} + +