feat(Property): 仪表记录按楼层筛选并优化查询功能
This commit is contained in:
@@ -76,5 +76,10 @@ public class TbMeterRecordBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long imgOssId;
|
private Long imgOssId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仪表楼层
|
||||||
|
*/
|
||||||
|
private Long floorId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -33,6 +33,12 @@ public class TbMeterRecordVo implements Serializable {
|
|||||||
@ExcelProperty(value = "记录ID")
|
@ExcelProperty(value = "记录ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仪表名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "仪表名称")
|
||||||
|
private String meterName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仪表编号
|
* 仪表编号
|
||||||
*/
|
*/
|
||||||
@@ -87,5 +93,4 @@ public class TbMeterRecordVo implements Serializable {
|
|||||||
@ExcelProperty(value = "抄表照片")
|
@ExcelProperty(value = "抄表照片")
|
||||||
private Long imgOssId;
|
private Long imgOssId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -66,7 +66,24 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo<TbMeterRecordVo> queryPageList(TbMeterRecordBo bo, PageQuery pageQuery) {
|
public TableDataInfo<TbMeterRecordVo> queryPageList(TbMeterRecordBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<TbMeterRecord> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<TbMeterRecord> lqw = buildQueryWrapper(bo);
|
||||||
|
// 楼层筛选
|
||||||
|
List<TbMeterInfoVo> infoList = tbMeterInfoService.queryList(new TbMeterInfoBo());
|
||||||
|
|
||||||
|
if (bo.getFloorId() != null) {
|
||||||
|
// 获取对应楼层的仪表ID
|
||||||
|
Collection<Long> meterIds = infoList.stream().filter(o -> o.getFloorId().equals(bo.getFloorId())).map(TbMeterInfoVo::getId).toList();
|
||||||
|
if (CollUtil.isNotEmpty(meterIds)) {
|
||||||
|
lqw.in(TbMeterRecord::getMeterId, meterIds);
|
||||||
|
} else {
|
||||||
|
// 添加恒假条件,确保返回空结果
|
||||||
|
lqw.apply("1 = 0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Page<TbMeterRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<TbMeterRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
result.getRecords().forEach(o -> o.setMeterName(infoList.stream().filter(s -> s.getId().equals(o.getMeterId())).findFirst().map(TbMeterInfoVo::getMeterName).orElse(null)));
|
||||||
|
|
||||||
|
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,17 +100,16 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private LambdaQueryWrapper<TbMeterRecord> buildQueryWrapper(TbMeterRecordBo bo) {
|
private LambdaQueryWrapper<TbMeterRecord> buildQueryWrapper(TbMeterRecordBo bo) {
|
||||||
Map<String, Object> params = bo.getParams();
|
|
||||||
LambdaQueryWrapper<TbMeterRecord> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<TbMeterRecord> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.orderByAsc(TbMeterRecord::getId);
|
lqw.orderByDesc(TbMeterRecord::getReadingTime);
|
||||||
lqw.eq(bo.getMeterId() != null, TbMeterRecord::getMeterId, bo.getMeterId());
|
lqw.eq(bo.getMeterId() != null, TbMeterRecord::getMeterId, bo.getMeterId());
|
||||||
lqw.eq(bo.getMeterType() != null, TbMeterRecord::getMeterType, bo.getMeterType());
|
|
||||||
lqw.eq(bo.getReaderId() != null, TbMeterRecord::getReaderId, bo.getReaderId());
|
lqw.eq(bo.getReaderId() != null, TbMeterRecord::getReaderId, bo.getReaderId());
|
||||||
|
lqw.eq(bo.getImgOssId() != null, TbMeterRecord::getImgOssId, bo.getImgOssId());
|
||||||
|
lqw.eq(bo.getMeterType() != null, TbMeterRecord::getMeterType, bo.getMeterType());
|
||||||
lqw.eq(bo.getReadingTime() != null, TbMeterRecord::getReadingTime, bo.getReadingTime());
|
lqw.eq(bo.getReadingTime() != null, TbMeterRecord::getReadingTime, bo.getReadingTime());
|
||||||
|
lqw.eq(bo.getReadingMethod() != null, TbMeterRecord::getReadingMethod, bo.getReadingMethod());
|
||||||
lqw.eq(bo.getCurrentReading() != null, TbMeterRecord::getCurrentReading, bo.getCurrentReading());
|
lqw.eq(bo.getCurrentReading() != null, TbMeterRecord::getCurrentReading, bo.getCurrentReading());
|
||||||
lqw.eq(bo.getPreviousReading() != null, TbMeterRecord::getPreviousReading, bo.getPreviousReading());
|
lqw.eq(bo.getPreviousReading() != null, TbMeterRecord::getPreviousReading, bo.getPreviousReading());
|
||||||
lqw.eq(bo.getReadingMethod() != null, TbMeterRecord::getReadingMethod, bo.getReadingMethod());
|
|
||||||
lqw.eq(bo.getImgOssId() != null, TbMeterRecord::getImgOssId, bo.getImgOssId());
|
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,11 +123,7 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService {
|
|||||||
public Boolean insertByBo(TbMeterRecordBo bo) {
|
public Boolean insertByBo(TbMeterRecordBo bo) {
|
||||||
TbMeterRecord add = MapstructUtils.convert(bo, TbMeterRecord.class);
|
TbMeterRecord add = MapstructUtils.convert(bo, TbMeterRecord.class);
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
boolean flag = baseMapper.insert(add) > 0;
|
return baseMapper.insert(add) > 0;
|
||||||
if (flag) {
|
|
||||||
bo.setId(add.getId());
|
|
||||||
}
|
|
||||||
return flag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -143,9 +155,6 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
if (isValid) {
|
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
|
||||||
}
|
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user