feat(ems): 添加告警、能耗记录和能源费率模块- 新增告警实体类 EmsAlert 及相关业务对象、控制器、映射器和服务实现

- 新增能耗记录实体类 EmsEnergyConsumption 及相关业务对象、控制器、映射器和服务实现
- 新增能源费率实体类 EmsEnergyRate 及相关业务对象、控制器、映射器和服务实现
- 实现各模块的基础 CRUD 功能,包括分页查询、导出 Excel 等操作
- 配置 MyBatis 映射文件及逻辑删除支持
This commit is contained in:
2025-09-28 09:54:42 +08:00
parent 32059525f0
commit 16776ffdc8
51 changed files with 3058 additions and 1 deletions

View File

@@ -0,0 +1,49 @@
package com.klp.ems.service;
import com.klp.ems.domain.EmsAlert;
import com.klp.ems.domain.vo.EmsAlertVo;
import com.klp.ems.domain.bo.EmsAlertBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 告警Service接口
*
* @author klp
* @date 2025-09-28
*/
public interface IEmsAlertService {
/**
* 查询告警
*/
EmsAlertVo queryById(Long alertId);
/**
* 查询告警列表
*/
TableDataInfo<EmsAlertVo> queryPageList(EmsAlertBo bo, PageQuery pageQuery);
/**
* 查询告警列表
*/
List<EmsAlertVo> queryList(EmsAlertBo bo);
/**
* 新增告警
*/
Boolean insertByBo(EmsAlertBo bo);
/**
* 修改告警
*/
Boolean updateByBo(EmsAlertBo bo);
/**
* 校验并批量删除告警信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.ems.service;
import com.klp.ems.domain.EmsEnergyConsumption;
import com.klp.ems.domain.vo.EmsEnergyConsumptionVo;
import com.klp.ems.domain.bo.EmsEnergyConsumptionBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 能耗记录Service接口
*
* @author Joshi
* @date 2025-09-28
*/
public interface IEmsEnergyConsumptionService {
/**
* 查询能耗记录
*/
EmsEnergyConsumptionVo queryById(Long energyConsumptionId);
/**
* 查询能耗记录列表
*/
TableDataInfo<EmsEnergyConsumptionVo> queryPageList(EmsEnergyConsumptionBo bo, PageQuery pageQuery);
/**
* 查询能耗记录列表
*/
List<EmsEnergyConsumptionVo> queryList(EmsEnergyConsumptionBo bo);
/**
* 新增能耗记录
*/
Boolean insertByBo(EmsEnergyConsumptionBo bo);
/**
* 修改能耗记录
*/
Boolean updateByBo(EmsEnergyConsumptionBo bo);
/**
* 校验并批量删除能耗记录信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.ems.service;
import com.klp.ems.domain.EmsEnergyRate;
import com.klp.ems.domain.vo.EmsEnergyRateVo;
import com.klp.ems.domain.bo.EmsEnergyRateBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 能源费率currency 为 INT0=CNY,1=USD,2=EURService接口
*
* @author Joshi
* @date 2025-09-28
*/
public interface IEmsEnergyRateService {
/**
* 查询能源费率currency 为 INT0=CNY,1=USD,2=EUR
*/
EmsEnergyRateVo queryById(Long energyRateId);
/**
* 查询能源费率currency 为 INT0=CNY,1=USD,2=EUR列表
*/
TableDataInfo<EmsEnergyRateVo> queryPageList(EmsEnergyRateBo bo, PageQuery pageQuery);
/**
* 查询能源费率currency 为 INT0=CNY,1=USD,2=EUR列表
*/
List<EmsEnergyRateVo> queryList(EmsEnergyRateBo bo);
/**
* 新增能源费率currency 为 INT0=CNY,1=USD,2=EUR
*/
Boolean insertByBo(EmsEnergyRateBo bo);
/**
* 修改能源费率currency 为 INT0=CNY,1=USD,2=EUR
*/
Boolean updateByBo(EmsEnergyRateBo bo);
/**
* 校验并批量删除能源费率currency 为 INT0=CNY,1=USD,2=EUR信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.ems.service;
import com.klp.ems.domain.EmsEnergyType;
import com.klp.ems.domain.vo.EmsEnergyTypeVo;
import com.klp.ems.domain.bo.EmsEnergyTypeBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 能源类型阈值已移除Service接口
*
* @author Joshi
* @date 2025-09-28
*/
public interface IEmsEnergyTypeService {
/**
* 查询能源类型(阈值已移除)
*/
EmsEnergyTypeVo queryById(Long energyTypeId);
/**
* 查询能源类型(阈值已移除)列表
*/
TableDataInfo<EmsEnergyTypeVo> queryPageList(EmsEnergyTypeBo bo, PageQuery pageQuery);
/**
* 查询能源类型(阈值已移除)列表
*/
List<EmsEnergyTypeVo> queryList(EmsEnergyTypeBo bo);
/**
* 新增能源类型(阈值已移除)
*/
Boolean insertByBo(EmsEnergyTypeBo bo);
/**
* 修改能源类型(阈值已移除)
*/
Boolean updateByBo(EmsEnergyTypeBo bo);
/**
* 校验并批量删除能源类型(阈值已移除)信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.ems.service;
import com.klp.ems.domain.EmsLocation;
import com.klp.ems.domain.vo.EmsLocationVo;
import com.klp.ems.domain.bo.EmsLocationBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 位置Service接口
*
* @author Joshi
* @date 2025-09-28
*/
public interface IEmsLocationService {
/**
* 查询位置
*/
EmsLocationVo queryById(Long locationId);
/**
* 查询位置列表
*/
TableDataInfo<EmsLocationVo> queryPageList(EmsLocationBo bo, PageQuery pageQuery);
/**
* 查询位置列表
*/
List<EmsLocationVo> queryList(EmsLocationBo bo);
/**
* 新增位置
*/
Boolean insertByBo(EmsLocationBo bo);
/**
* 修改位置
*/
Boolean updateByBo(EmsLocationBo bo);
/**
* 校验并批量删除位置信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.ems.service;
import com.klp.ems.domain.EmsMeter;
import com.klp.ems.domain.vo.EmsMeterVo;
import com.klp.ems.domain.bo.EmsMeterBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 计量设备阈值移至此处Service接口
*
* @author Joshi
* @date 2025-09-28
*/
public interface IEmsMeterService {
/**
* 查询计量设备(阈值移至此处)
*/
EmsMeterVo queryById(Long meterId);
/**
* 查询计量设备(阈值移至此处)列表
*/
TableDataInfo<EmsMeterVo> queryPageList(EmsMeterBo bo, PageQuery pageQuery);
/**
* 查询计量设备(阈值移至此处)列表
*/
List<EmsMeterVo> queryList(EmsMeterBo bo);
/**
* 新增计量设备(阈值移至此处)
*/
Boolean insertByBo(EmsMeterBo bo);
/**
* 修改计量设备(阈值移至此处)
*/
Boolean updateByBo(EmsMeterBo bo);
/**
* 校验并批量删除计量设备(阈值移至此处)信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,114 @@
package com.klp.ems.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.ems.domain.bo.EmsAlertBo;
import com.klp.ems.domain.vo.EmsAlertVo;
import com.klp.ems.domain.EmsAlert;
import com.klp.ems.mapper.EmsAlertMapper;
import com.klp.ems.service.IEmsAlertService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 告警Service业务层处理
*
* @author klp
* @date 2025-09-28
*/
@RequiredArgsConstructor
@Service
public class EmsAlertServiceImpl implements IEmsAlertService {
private final EmsAlertMapper baseMapper;
/**
* 查询告警
*/
@Override
public EmsAlertVo queryById(Long alertId){
return baseMapper.selectVoById(alertId);
}
/**
* 查询告警列表
*/
@Override
public TableDataInfo<EmsAlertVo> queryPageList(EmsAlertBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmsAlert> lqw = buildQueryWrapper(bo);
Page<EmsAlertVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询告警列表
*/
@Override
public List<EmsAlertVo> queryList(EmsAlertBo bo) {
LambdaQueryWrapper<EmsAlert> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmsAlert> buildQueryWrapper(EmsAlertBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmsAlert> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getMeterId() != null, EmsAlert::getMeterId, bo.getMeterId());
lqw.eq(bo.getAlertType() != null, EmsAlert::getAlertType, bo.getAlertType());
lqw.eq(bo.getActualValue() != null, EmsAlert::getActualValue, bo.getActualValue());
lqw.eq(bo.getAlertTime() != null, EmsAlert::getAlertTime, bo.getAlertTime());
lqw.eq(bo.getStatus() != null, EmsAlert::getStatus, bo.getStatus());
lqw.eq(bo.getResolvedBy() != null, EmsAlert::getResolvedBy, bo.getResolvedBy());
lqw.eq(bo.getResolvedTime() != null, EmsAlert::getResolvedTime, bo.getResolvedTime());
return lqw;
}
/**
* 新增告警
*/
@Override
public Boolean insertByBo(EmsAlertBo bo) {
EmsAlert add = BeanUtil.toBean(bo, EmsAlert.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setAlertId(add.getAlertId());
}
return flag;
}
/**
* 修改告警
*/
@Override
public Boolean updateByBo(EmsAlertBo bo) {
EmsAlert update = BeanUtil.toBean(bo, EmsAlert.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmsAlert entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除告警
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,114 @@
package com.klp.ems.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.ems.domain.bo.EmsEnergyConsumptionBo;
import com.klp.ems.domain.vo.EmsEnergyConsumptionVo;
import com.klp.ems.domain.EmsEnergyConsumption;
import com.klp.ems.mapper.EmsEnergyConsumptionMapper;
import com.klp.ems.service.IEmsEnergyConsumptionService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 能耗记录Service业务层处理
*
* @author Joshi
* @date 2025-09-28
*/
@RequiredArgsConstructor
@Service
public class EmsEnergyConsumptionServiceImpl implements IEmsEnergyConsumptionService {
private final EmsEnergyConsumptionMapper baseMapper;
/**
* 查询能耗记录
*/
@Override
public EmsEnergyConsumptionVo queryById(Long energyConsumptionId){
return baseMapper.selectVoById(energyConsumptionId);
}
/**
* 查询能耗记录列表
*/
@Override
public TableDataInfo<EmsEnergyConsumptionVo> queryPageList(EmsEnergyConsumptionBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmsEnergyConsumption> lqw = buildQueryWrapper(bo);
Page<EmsEnergyConsumptionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询能耗记录列表
*/
@Override
public List<EmsEnergyConsumptionVo> queryList(EmsEnergyConsumptionBo bo) {
LambdaQueryWrapper<EmsEnergyConsumption> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmsEnergyConsumption> buildQueryWrapper(EmsEnergyConsumptionBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmsEnergyConsumption> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getMeterId() != null, EmsEnergyConsumption::getMeterId, bo.getMeterId());
lqw.eq(bo.getStartReading() != null, EmsEnergyConsumption::getStartReading, bo.getStartReading());
lqw.eq(bo.getEndReading() != null, EmsEnergyConsumption::getEndReading, bo.getEndReading());
lqw.eq(bo.getConsumption() != null, EmsEnergyConsumption::getConsumption, bo.getConsumption());
lqw.eq(bo.getStartTime() != null, EmsEnergyConsumption::getStartTime, bo.getStartTime());
lqw.eq(bo.getEndTime() != null, EmsEnergyConsumption::getEndTime, bo.getEndTime());
lqw.eq(bo.getRecordedBy() != null, EmsEnergyConsumption::getRecordedBy, bo.getRecordedBy());
return lqw;
}
/**
* 新增能耗记录
*/
@Override
public Boolean insertByBo(EmsEnergyConsumptionBo bo) {
EmsEnergyConsumption add = BeanUtil.toBean(bo, EmsEnergyConsumption.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setEnergyConsumptionId(add.getEnergyConsumptionId());
}
return flag;
}
/**
* 修改能耗记录
*/
@Override
public Boolean updateByBo(EmsEnergyConsumptionBo bo) {
EmsEnergyConsumption update = BeanUtil.toBean(bo, EmsEnergyConsumption.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmsEnergyConsumption entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除能耗记录
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,112 @@
package com.klp.ems.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.ems.domain.bo.EmsEnergyRateBo;
import com.klp.ems.domain.vo.EmsEnergyRateVo;
import com.klp.ems.domain.EmsEnergyRate;
import com.klp.ems.mapper.EmsEnergyRateMapper;
import com.klp.ems.service.IEmsEnergyRateService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 能源费率currency 为 INT0=CNY,1=USD,2=EURService业务层处理
*
* @author Joshi
* @date 2025-09-28
*/
@RequiredArgsConstructor
@Service
public class EmsEnergyRateServiceImpl implements IEmsEnergyRateService {
private final EmsEnergyRateMapper baseMapper;
/**
* 查询能源费率currency 为 INT0=CNY,1=USD,2=EUR
*/
@Override
public EmsEnergyRateVo queryById(Long energyRateId){
return baseMapper.selectVoById(energyRateId);
}
/**
* 查询能源费率currency 为 INT0=CNY,1=USD,2=EUR列表
*/
@Override
public TableDataInfo<EmsEnergyRateVo> queryPageList(EmsEnergyRateBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmsEnergyRate> lqw = buildQueryWrapper(bo);
Page<EmsEnergyRateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询能源费率currency 为 INT0=CNY,1=USD,2=EUR列表
*/
@Override
public List<EmsEnergyRateVo> queryList(EmsEnergyRateBo bo) {
LambdaQueryWrapper<EmsEnergyRate> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmsEnergyRate> buildQueryWrapper(EmsEnergyRateBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmsEnergyRate> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getEnergyTypeId() != null, EmsEnergyRate::getEnergyTypeId, bo.getEnergyTypeId());
lqw.eq(bo.getRate() != null, EmsEnergyRate::getRate, bo.getRate());
lqw.eq(bo.getCurrency() != null, EmsEnergyRate::getCurrency, bo.getCurrency());
lqw.eq(bo.getEffectiveDate() != null, EmsEnergyRate::getEffectiveDate, bo.getEffectiveDate());
lqw.eq(bo.getExpiryDate() != null, EmsEnergyRate::getExpiryDate, bo.getExpiryDate());
return lqw;
}
/**
* 新增能源费率currency 为 INT0=CNY,1=USD,2=EUR
*/
@Override
public Boolean insertByBo(EmsEnergyRateBo bo) {
EmsEnergyRate add = BeanUtil.toBean(bo, EmsEnergyRate.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setEnergyRateId(add.getEnergyRateId());
}
return flag;
}
/**
* 修改能源费率currency 为 INT0=CNY,1=USD,2=EUR
*/
@Override
public Boolean updateByBo(EmsEnergyRateBo bo) {
EmsEnergyRate update = BeanUtil.toBean(bo, EmsEnergyRate.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmsEnergyRate entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除能源费率currency 为 INT0=CNY,1=USD,2=EUR
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,112 @@
package com.klp.ems.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.ems.domain.bo.EmsEnergyTypeBo;
import com.klp.ems.domain.vo.EmsEnergyTypeVo;
import com.klp.ems.domain.EmsEnergyType;
import com.klp.ems.mapper.EmsEnergyTypeMapper;
import com.klp.ems.service.IEmsEnergyTypeService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 能源类型阈值已移除Service业务层处理
*
* @author Joshi
* @date 2025-09-28
*/
@RequiredArgsConstructor
@Service
public class EmsEnergyTypeServiceImpl implements IEmsEnergyTypeService {
private final EmsEnergyTypeMapper baseMapper;
/**
* 查询能源类型(阈值已移除)
*/
@Override
public EmsEnergyTypeVo queryById(Long energyTypeId){
return baseMapper.selectVoById(energyTypeId);
}
/**
* 查询能源类型(阈值已移除)列表
*/
@Override
public TableDataInfo<EmsEnergyTypeVo> queryPageList(EmsEnergyTypeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmsEnergyType> lqw = buildQueryWrapper(bo);
Page<EmsEnergyTypeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询能源类型(阈值已移除)列表
*/
@Override
public List<EmsEnergyTypeVo> queryList(EmsEnergyTypeBo bo) {
LambdaQueryWrapper<EmsEnergyType> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmsEnergyType> buildQueryWrapper(EmsEnergyTypeBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmsEnergyType> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getName()), EmsEnergyType::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), EmsEnergyType::getUnit, bo.getUnit());
lqw.eq(StringUtils.isNotBlank(bo.getCode()), EmsEnergyType::getCode, bo.getCode());
lqw.eq(StringUtils.isNotBlank(bo.getDescription()), EmsEnergyType::getDescription, bo.getDescription());
return lqw;
}
/**
* 新增能源类型(阈值已移除)
*/
@Override
public Boolean insertByBo(EmsEnergyTypeBo bo) {
EmsEnergyType add = BeanUtil.toBean(bo, EmsEnergyType.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setEnergyTypeId(add.getEnergyTypeId());
}
return flag;
}
/**
* 修改能源类型(阈值已移除)
*/
@Override
public Boolean updateByBo(EmsEnergyTypeBo bo) {
EmsEnergyType update = BeanUtil.toBean(bo, EmsEnergyType.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmsEnergyType entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除能源类型(阈值已移除)
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,112 @@
package com.klp.ems.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.ems.domain.bo.EmsLocationBo;
import com.klp.ems.domain.vo.EmsLocationVo;
import com.klp.ems.domain.EmsLocation;
import com.klp.ems.mapper.EmsLocationMapper;
import com.klp.ems.service.IEmsLocationService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 位置Service业务层处理
*
* @author Joshi
* @date 2025-09-28
*/
@RequiredArgsConstructor
@Service
public class EmsLocationServiceImpl implements IEmsLocationService {
private final EmsLocationMapper baseMapper;
/**
* 查询位置
*/
@Override
public EmsLocationVo queryById(Long locationId){
return baseMapper.selectVoById(locationId);
}
/**
* 查询位置列表
*/
@Override
public TableDataInfo<EmsLocationVo> queryPageList(EmsLocationBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmsLocation> lqw = buildQueryWrapper(bo);
Page<EmsLocationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询位置列表
*/
@Override
public List<EmsLocationVo> queryList(EmsLocationBo bo) {
LambdaQueryWrapper<EmsLocation> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmsLocation> buildQueryWrapper(EmsLocationBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmsLocation> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getName()), EmsLocation::getName, bo.getName());
lqw.eq(bo.getParentId() != null, EmsLocation::getParentId, bo.getParentId());
lqw.eq(StringUtils.isNotBlank(bo.getDescription()), EmsLocation::getDescription, bo.getDescription());
lqw.eq(StringUtils.isNotBlank(bo.getAddress()), EmsLocation::getAddress, bo.getAddress());
return lqw;
}
/**
* 新增位置
*/
@Override
public Boolean insertByBo(EmsLocationBo bo) {
EmsLocation add = BeanUtil.toBean(bo, EmsLocation.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setLocationId(add.getLocationId());
}
return flag;
}
/**
* 修改位置
*/
@Override
public Boolean updateByBo(EmsLocationBo bo) {
EmsLocation update = BeanUtil.toBean(bo, EmsLocation.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmsLocation entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除位置
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,117 @@
package com.klp.ems.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.ems.domain.bo.EmsMeterBo;
import com.klp.ems.domain.vo.EmsMeterVo;
import com.klp.ems.domain.EmsMeter;
import com.klp.ems.mapper.EmsMeterMapper;
import com.klp.ems.service.IEmsMeterService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 计量设备阈值移至此处Service业务层处理
*
* @author Joshi
* @date 2025-09-28
*/
@RequiredArgsConstructor
@Service
public class EmsMeterServiceImpl implements IEmsMeterService {
private final EmsMeterMapper baseMapper;
/**
* 查询计量设备(阈值移至此处)
*/
@Override
public EmsMeterVo queryById(Long meterId){
return baseMapper.selectVoById(meterId);
}
/**
* 查询计量设备(阈值移至此处)列表
*/
@Override
public TableDataInfo<EmsMeterVo> queryPageList(EmsMeterBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmsMeter> lqw = buildQueryWrapper(bo);
Page<EmsMeterVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询计量设备(阈值移至此处)列表
*/
@Override
public List<EmsMeterVo> queryList(EmsMeterBo bo) {
LambdaQueryWrapper<EmsMeter> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmsMeter> buildQueryWrapper(EmsMeterBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmsMeter> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getMeterCode()), EmsMeter::getMeterCode, bo.getMeterCode());
lqw.eq(bo.getEnergyTypeId() != null, EmsMeter::getEnergyTypeId, bo.getEnergyTypeId());
lqw.eq(bo.getLocationId() != null, EmsMeter::getLocationId, bo.getLocationId());
lqw.eq(StringUtils.isNotBlank(bo.getModel()), EmsMeter::getModel, bo.getModel());
lqw.eq(StringUtils.isNotBlank(bo.getManufacturer()), EmsMeter::getManufacturer, bo.getManufacturer());
lqw.eq(bo.getInstallDate() != null, EmsMeter::getInstallDate, bo.getInstallDate());
lqw.eq(bo.getStatus() != null, EmsMeter::getStatus, bo.getStatus());
lqw.eq(bo.getLastCalibrationDate() != null, EmsMeter::getLastCalibrationDate, bo.getLastCalibrationDate());
lqw.eq(bo.getThresholdValue() != null, EmsMeter::getThresholdValue, bo.getThresholdValue());
return lqw;
}
/**
* 新增计量设备(阈值移至此处)
*/
@Override
public Boolean insertByBo(EmsMeterBo bo) {
EmsMeter add = BeanUtil.toBean(bo, EmsMeter.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setMeterId(add.getMeterId());
}
return flag;
}
/**
* 修改计量设备(阈值移至此处)
*/
@Override
public Boolean updateByBo(EmsMeterBo bo) {
EmsMeter update = BeanUtil.toBean(bo, EmsMeter.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmsMeter entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除计量设备(阈值移至此处)
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}