refactor(property): 水电气表字段更改
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run

This commit is contained in:
zcxlsm 2025-07-19 13:42:03 +08:00
parent b4228c0425
commit 5a88e94c23
10 changed files with 225 additions and 274 deletions

View File

@ -17,44 +17,44 @@ import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.property.domain.vo.TbMeterVo;
import org.dromara.property.domain.bo.TbMeterBo;
import org.dromara.property.service.ITbMeterService;
import org.dromara.property.domain.vo.TbMeterInfoVo;
import org.dromara.property.domain.bo.TbMeterInfoBo;
import org.dromara.property.service.ITbMeterInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 水电气
* 前端访问路由地址为:/property/meter
* 前端访问路由地址为:/property/meterInfo
*
* @author LionLi
* @since 2025-07-17
* @author lsm
* @date 2025-07-19
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/meter")
public class TbMeterController extends BaseController {
@RequestMapping("/meterInfo")
public class TbMeterInfoController extends BaseController {
private final ITbMeterService tbMeterService;
private final ITbMeterInfoService tbMeterInfoService;
/**
* 查询水电气列表
*/
@SaCheckPermission("property:meter:list")
@SaCheckPermission("property:meterInfo:list")
@GetMapping("/list")
public TableDataInfo<TbMeterVo> list(TbMeterBo bo, PageQuery pageQuery) {
return tbMeterService.queryPageList(bo, pageQuery);
public TableDataInfo<TbMeterInfoVo> list(TbMeterInfoBo bo, PageQuery pageQuery) {
return tbMeterInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出水电气列表
*/
@SaCheckPermission("property:meter:export")
@SaCheckPermission("property:meterInfo:export")
@Log(title = "水电气", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TbMeterBo bo, HttpServletResponse response) {
List<TbMeterVo> list = tbMeterService.queryList(bo);
ExcelUtil.exportExcel(list, "水电气", TbMeterVo.class, response);
public void export(TbMeterInfoBo bo, HttpServletResponse response) {
List<TbMeterInfoVo> list = tbMeterInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "水电气", TbMeterInfoVo.class, response);
}
/**
@ -62,33 +62,33 @@ public class TbMeterController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("property:meter:query")
@SaCheckPermission("property:meterInfo:query")
@GetMapping("/{id}")
public R<TbMeterVo> getInfo(@NotNull(message = "主键不能为空")
public R<TbMeterInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return R.ok(tbMeterService.queryById(id));
return R.ok(tbMeterInfoService.queryById(id));
}
/**
* 新增水电气
*/
@SaCheckPermission("property:meter:add")
@SaCheckPermission("property:meterInfo:add")
@Log(title = "水电气", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody TbMeterBo bo) {
return toAjax(tbMeterService.insertByBo(bo));
public R<Void> add(@Validated(AddGroup.class) @RequestBody TbMeterInfoBo bo) {
return toAjax(tbMeterInfoService.insertByBo(bo));
}
/**
* 修改水电气
*/
@SaCheckPermission("property:meter:edit")
@SaCheckPermission("property:meterInfo:edit")
@Log(title = "水电气", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TbMeterBo bo) {
return toAjax(tbMeterService.updateByBo(bo));
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TbMeterInfoBo bo) {
return toAjax(tbMeterInfoService.updateByBo(bo));
}
/**
@ -96,11 +96,11 @@ public class TbMeterController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("property:meter:remove")
@SaCheckPermission("property:meterInfo:remove")
@Log(title = "水电气", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(tbMeterService.deleteWithValidByIds(List.of(ids), true));
return toAjax(tbMeterInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -1,6 +1,6 @@
package org.dromara.property.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -8,15 +8,15 @@ import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 水电气对象 tb_meter
* 水电气对象 tb_meter_info
*
* @author LionLi
* @since 2025-07-17
* @author lsm
* @date 2025-07-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("tb_meter")
public class TbMeter extends BaseEntity {
@TableName("tb_meter_info")
public class TbMeterInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@ -28,12 +28,12 @@ public class TbMeter extends BaseEntity {
private Long id;
/**
* 表名称
* 表名称
*/
private String meterName;
/**
* 设备编码
* 仪表编码
*/
private String meterCode;
@ -48,39 +48,24 @@ public class TbMeter extends BaseEntity {
private Long meterType;
/**
* 表用途(1-分表2-总表3-公摊表)
* 计量单位(1-2-3-立方米)
*/
private Long meterPurpose;
private String metetUnit;
/**
* 分摊类型1-不公摊2-按分表用量3-按租客面积4-按房源数量5-按固定比例
* 安装位置
*/
private Long shareType;
private String installLocation;
/**
* 付费类型(1-先付费2-后付费)
* 初始读数
*/
private Long payType;
private Long initReading;
/**
* 当前表显示读数
* 最大量程
*/
private Long display;
/**
* 最大表显读数(超过归0)
*/
private Long maxDisplay;
/**
* 计费倍率
*/
private Long billingRate;
/**
* 剩余量
*/
private Long surplus;
private Long maxRang;
/**
* 通信状态

View File

@ -1,7 +1,8 @@
package org.dromara.property.domain.bo;
import org.dromara.property.domain.TbMeter;
import org.dromara.property.domain.TbMeterInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
@ -9,15 +10,15 @@ import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 水电气业务对象 tb_meter
* 水电气业务对象 tb_meter_info
*
* @author LionLi
* @since 2025-07-17
* @author lsm
* @date 2025-07-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TbMeter.class, reverseConvertGenerate = false)
public class TbMeterBo extends BaseEntity {
@AutoMapper(target = TbMeterInfo.class, reverseConvertGenerate = false)
public class TbMeterInfoBo extends BaseEntity {
/**
* 主键id
@ -26,12 +27,12 @@ public class TbMeterBo extends BaseEntity {
private Long id;
/**
* 表名称
* 表名称
*/
private String meterName;
/**
* 设备编码
* 仪表编码
*/
private String meterCode;
@ -43,42 +44,29 @@ public class TbMeterBo extends BaseEntity {
/**
* 设备类型(1-电表2-水表3-气表)
*/
@NotNull(message = "设备类型(1-电表2-水表3-气表)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long meterType;
/**
* 表用途(1-分表2-总表3-公摊表)
* 计量单位(1-2-3-立方米)
*/
private Long meterPurpose;
@NotBlank(message = "计量单位(1-度2-吨3-立方米)不能为空", groups = { AddGroup.class, EditGroup.class })
private String metetUnit;
/**
* 分摊类型1-不公摊2-按分表用量3-按租客面积4-按房源数量5-按固定比例
* 安装位置
*/
private Long shareType;
private String installLocation;
/**
* 付费类型(1-先付费2-后付费)
* 初始读数
*/
private Long payType;
private Long initReading;
/**
* 当前表显示读数
* 最大量程
*/
private Long display;
/**
* 最大表显读数(超过归0)
*/
private Long maxDisplay;
/**
* 计费倍率
*/
private Long billingRate;
/**
* 剩余量
*/
private Long surplus;
private Long maxRang;
/**
* 通信状态

View File

@ -0,0 +1,104 @@
package org.dromara.property.domain.vo;
import org.dromara.property.domain.TbMeterInfo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 水电气视图对象 tb_meter_info
*
* @author lsm
* @date 2025-07-19
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TbMeterInfo.class)
public class TbMeterInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 仪表名称
*/
@ExcelProperty(value = "仪表名称")
private String meterName;
/**
* 仪表编码
*/
@ExcelProperty(value = "仪表编码")
private String meterCode;
/**
* 设备厂商
*/
@ExcelProperty(value = "设备厂商")
private String factoryNo;
/**
* 设备类型(1-电表2-水表3-气表)
*/
@ExcelProperty(value = "设备类型(1-电表2-水表3-气表)")
private Long meterType;
/**
* 计量单位(1-2-3-立方米)
*/
@ExcelProperty(value = "计量单位(1-度2-吨3-立方米)")
private String metetUnit;
/**
* 安装位置
*/
@ExcelProperty(value = "安装位置")
private String installLocation;
/**
* 初始读数
*/
@ExcelProperty(value = "初始读数")
private Long initReading;
/**
* 最大量程
*/
@ExcelProperty(value = "最大量程")
private Long maxRang;
/**
* 通信状态
*/
@ExcelProperty(value = "通信状态")
private Long communicationState;
/**
* 运行状态
*/
@ExcelProperty(value = "运行状态")
private Long runningState;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -1,122 +0,0 @@
package org.dromara.property.domain.vo;
import org.dromara.property.domain.TbMeter;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 水电气视图对象 tb_meter
*
* @author LionLi
* @since 2025-07-17
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TbMeter.class)
public class TbMeterVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 水表名称
*/
@ExcelProperty(value = "水表名称")
private String meterName;
/**
* 设备编码
*/
@ExcelProperty(value = "设备编码")
private String meterCode;
/**
* 设备厂商
*/
@ExcelProperty(value = "设备厂商")
private String factoryNo;
/**
* 设备类型(1-电表2-水表3-气表)
*/
@ExcelProperty(value = "设备类型(1-电表2-水表3-气表)")
private Long meterType;
/**
* 表用途(1-分表2-总表3-公摊表)
*/
@ExcelProperty(value = "表用途(1-分表2-总表3-公摊表)")
private Long meterPurpose;
/**
* 分摊类型1-不公摊2-按分表用量3-按租客面积4-按房源数量5-按固定比例
*/
@ExcelProperty(value = "分摊类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=-不公摊2-按分表用量3-按租客面积4-按房源数量5-按固定比例")
private Long shareType;
/**
* 付费类型(1-先付费2-后付费)
*/
@ExcelProperty(value = "付费类型(1-先付费2-后付费)")
private Long payType;
/**
* 当前表显示读数
*/
@ExcelProperty(value = "当前表显示读数")
private Long display;
/**
* 最大表显读数(超过归0)
*/
@ExcelProperty(value = "最大表显读数(超过归0)")
private Long maxDisplay;
/**
* 计费倍率
*/
@ExcelProperty(value = "计费倍率")
private Long billingRate;
/**
* 剩余量
*/
@ExcelProperty(value = "剩余量")
private Long surplus;
/**
* 通信状态
*/
@ExcelProperty(value = "通信状态")
private Long communicationState;
/**
* 运行状态
*/
@ExcelProperty(value = "运行状态")
private Long runningState;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -0,0 +1,15 @@
package org.dromara.property.mapper;
import org.dromara.property.domain.TbMeterInfo;
import org.dromara.property.domain.vo.TbMeterInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 水电气Mapper接口
*
* @author lsm
* @date 2025-07-19
*/
public interface TbMeterInfoMapper extends BaseMapperPlus<TbMeterInfo, TbMeterInfoVo> {
}

View File

@ -1,17 +0,0 @@
package org.dromara.property.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.property.domain.TbMeter;
import org.dromara.property.domain.vo.TbMeterVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 水电气Mapper接口
*
* @author LionLi
* @since 2025-07-17
*/
@Mapper
public interface TbMeterMapper extends BaseMapperPlus<TbMeter, TbMeterVo> {
}

View File

@ -1,7 +1,8 @@
package org.dromara.property.service;
import org.dromara.property.domain.vo.TbMeterVo;
import org.dromara.property.domain.bo.TbMeterBo;
import org.dromara.property.domain.TbMeterInfo;
import org.dromara.property.domain.vo.TbMeterInfoVo;
import org.dromara.property.domain.bo.TbMeterInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -11,10 +12,10 @@ import java.util.List;
/**
* 水电气Service接口
*
* @author LionLi
* @since 2025-07-17
* @author lsm
* @date 2025-07-19
*/
public interface ITbMeterService {
public interface ITbMeterInfoService {
/**
* 查询水电气
@ -22,7 +23,7 @@ public interface ITbMeterService {
* @param id 主键
* @return 水电气
*/
TbMeterVo queryById(Long id);
TbMeterInfoVo queryById(Long id);
/**
* 分页查询水电气列表
@ -31,7 +32,7 @@ public interface ITbMeterService {
* @param pageQuery 分页参数
* @return 水电气分页列表
*/
TableDataInfo<TbMeterVo> queryPageList(TbMeterBo bo, PageQuery pageQuery);
TableDataInfo<TbMeterInfoVo> queryPageList(TbMeterInfoBo bo, PageQuery pageQuery);
/**
* 查询符合条件的水电气列表
@ -39,7 +40,7 @@ public interface ITbMeterService {
* @param bo 查询条件
* @return 水电气列表
*/
List<TbMeterVo> queryList(TbMeterBo bo);
List<TbMeterInfoVo> queryList(TbMeterInfoBo bo);
/**
* 新增水电气
@ -47,7 +48,7 @@ public interface ITbMeterService {
* @param bo 水电气
* @return 是否新增成功
*/
Boolean insertByBo(TbMeterBo bo);
Boolean insertByBo(TbMeterInfoBo bo);
/**
* 修改水电气
@ -55,7 +56,7 @@ public interface ITbMeterService {
* @param bo 水电气
* @return 是否修改成功
*/
Boolean updateByBo(TbMeterBo bo);
Boolean updateByBo(TbMeterInfoBo bo);
/**
* 校验并批量删除水电气信息

View File

@ -10,11 +10,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.TbMeterBo;
import org.dromara.property.domain.vo.TbMeterVo;
import org.dromara.property.domain.TbMeter;
import org.dromara.property.mapper.TbMeterMapper;
import org.dromara.property.service.ITbMeterService;
import org.dromara.property.domain.bo.TbMeterInfoBo;
import org.dromara.property.domain.vo.TbMeterInfoVo;
import org.dromara.property.domain.TbMeterInfo;
import org.dromara.property.mapper.TbMeterInfoMapper;
import org.dromara.property.service.ITbMeterInfoService;
import java.util.List;
import java.util.Map;
@ -23,15 +23,15 @@ import java.util.Collection;
/**
* 水电气Service业务层处理
*
* @author LionLi
* @since 2025-07-17
* @author lsm
* @date 2025-07-19
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class TbMeterServiceImpl implements ITbMeterService {
public class TbMeterInfoServiceImpl implements ITbMeterInfoService {
private final TbMeterMapper baseMapper;
private final TbMeterInfoMapper baseMapper;
/**
* 查询水电气
@ -40,7 +40,7 @@ public class TbMeterServiceImpl implements ITbMeterService {
* @return 水电气
*/
@Override
public TbMeterVo queryById(Long id){
public TbMeterInfoVo queryById(Long id){
return baseMapper.selectVoById(id);
}
@ -52,9 +52,9 @@ public class TbMeterServiceImpl implements ITbMeterService {
* @return 水电气分页列表
*/
@Override
public TableDataInfo<TbMeterVo> queryPageList(TbMeterBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<TbMeter> lqw = buildQueryWrapper(bo);
Page<TbMeterVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
public TableDataInfo<TbMeterInfoVo> queryPageList(TbMeterInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<TbMeterInfo> lqw = buildQueryWrapper(bo);
Page<TbMeterInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@ -65,28 +65,25 @@ public class TbMeterServiceImpl implements ITbMeterService {
* @return 水电气列表
*/
@Override
public List<TbMeterVo> queryList(TbMeterBo bo) {
LambdaQueryWrapper<TbMeter> lqw = buildQueryWrapper(bo);
public List<TbMeterInfoVo> queryList(TbMeterInfoBo bo) {
LambdaQueryWrapper<TbMeterInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<TbMeter> buildQueryWrapper(TbMeterBo bo) {
private LambdaQueryWrapper<TbMeterInfo> buildQueryWrapper(TbMeterInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<TbMeter> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(TbMeter::getId);
lqw.like(StringUtils.isNotBlank(bo.getMeterName()), TbMeter::getMeterName, bo.getMeterName());
lqw.eq(StringUtils.isNotBlank(bo.getMeterCode()), TbMeter::getMeterCode, bo.getMeterCode());
lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TbMeter::getFactoryNo, bo.getFactoryNo());
lqw.eq(bo.getMeterType() != null, TbMeter::getMeterType, bo.getMeterType());
lqw.eq(bo.getMeterPurpose() != null, TbMeter::getMeterPurpose, bo.getMeterPurpose());
lqw.eq(bo.getShareType() != null, TbMeter::getShareType, bo.getShareType());
lqw.eq(bo.getPayType() != null, TbMeter::getPayType, bo.getPayType());
lqw.eq(bo.getDisplay() != null, TbMeter::getDisplay, bo.getDisplay());
lqw.eq(bo.getMaxDisplay() != null, TbMeter::getMaxDisplay, bo.getMaxDisplay());
lqw.eq(bo.getBillingRate() != null, TbMeter::getBillingRate, bo.getBillingRate());
lqw.eq(bo.getSurplus() != null, TbMeter::getSurplus, bo.getSurplus());
lqw.eq(bo.getCommunicationState() != null, TbMeter::getCommunicationState, bo.getCommunicationState());
lqw.eq(bo.getRunningState() != null, TbMeter::getRunningState, bo.getRunningState());
LambdaQueryWrapper<TbMeterInfo> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(TbMeterInfo::getId);
lqw.like(StringUtils.isNotBlank(bo.getMeterName()), TbMeterInfo::getMeterName, bo.getMeterName());
lqw.eq(StringUtils.isNotBlank(bo.getMeterCode()), TbMeterInfo::getMeterCode, bo.getMeterCode());
lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TbMeterInfo::getFactoryNo, bo.getFactoryNo());
lqw.eq(bo.getMeterType() != null, TbMeterInfo::getMeterType, bo.getMeterType());
lqw.eq(StringUtils.isNotBlank(bo.getMetetUnit()), TbMeterInfo::getMetetUnit, bo.getMetetUnit());
lqw.eq(StringUtils.isNotBlank(bo.getInstallLocation()), TbMeterInfo::getInstallLocation, bo.getInstallLocation());
lqw.eq(bo.getInitReading() != null, TbMeterInfo::getInitReading, bo.getInitReading());
lqw.eq(bo.getMaxRang() != null, TbMeterInfo::getMaxRang, bo.getMaxRang());
lqw.eq(bo.getCommunicationState() != null, TbMeterInfo::getCommunicationState, bo.getCommunicationState());
lqw.eq(bo.getRunningState() != null, TbMeterInfo::getRunningState, bo.getRunningState());
return lqw;
}
@ -97,8 +94,8 @@ public class TbMeterServiceImpl implements ITbMeterService {
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(TbMeterBo bo) {
TbMeter add = MapstructUtils.convert(bo, TbMeter.class);
public Boolean insertByBo(TbMeterInfoBo bo) {
TbMeterInfo add = MapstructUtils.convert(bo, TbMeterInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@ -114,8 +111,8 @@ public class TbMeterServiceImpl implements ITbMeterService {
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(TbMeterBo bo) {
TbMeter update = MapstructUtils.convert(bo, TbMeter.class);
public Boolean updateByBo(TbMeterInfoBo bo) {
TbMeterInfo update = MapstructUtils.convert(bo, TbMeterInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
@ -123,7 +120,7 @@ public class TbMeterServiceImpl implements ITbMeterService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(TbMeter entity){
private void validEntityBeforeSave(TbMeterInfo entity){
//TODO 做一些数据校验,如唯一约束
}