diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/smartDevicesBo/TbMeterRecordBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/smartDevicesBo/TbMeterRecordBo.java index c056e4cb..9cabdc9f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/smartDevicesBo/TbMeterRecordBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/smartDevicesBo/TbMeterRecordBo.java @@ -26,49 +26,49 @@ public class TbMeterRecordBo extends BaseEntity { /** * 记录ID */ - @NotNull(message = "记录ID不能为空", groups = { EditGroup.class }) + @NotNull(message = "记录ID不能为空", groups = {EditGroup.class}) private Long id; /** * 仪表编号 */ - @NotNull(message = "仪表编号不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "仪表编号不能为空", groups = {AddGroup.class, EditGroup.class}) private Long meterId; /** * 设备类型(1-电表,2-水表,3-气表) */ - @NotNull(message = "仪表类型不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "仪表类型不能为空", groups = {AddGroup.class, EditGroup.class}) private Long meterType; /** * 抄表员ID */ - @NotNull(message = "抄表员ID不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "抄表员ID不能为空", groups = {AddGroup.class, EditGroup.class}) private Long readerId; /** * 抄表时间 */ - @NotNull(message = "抄表时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "抄表时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date readingTime; /** * 当前读数 */ - @NotNull(message = "当前读数不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "当前读数不能为空", groups = {AddGroup.class, EditGroup.class}) private BigDecimal currentReading; /** * 上次读数 */ - @NotNull(message = "上次读数不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "上次读数不能为空", groups = {AddGroup.class, EditGroup.class}) private BigDecimal previousReading; /** * 抄表方式(1手动 2自动 3用户上报) */ - @NotNull(message = "抄表方式(1手动 2自动 3用户上报)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "抄表方式(1手动 2自动 3用户上报)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long readingMethod; /** @@ -76,5 +76,10 @@ public class TbMeterRecordBo extends BaseEntity { */ private Long imgOssId; + /** + * 仪表楼层 + */ + private Long floorId; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/smartDevicesVo/TbMeterRecordVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/smartDevicesVo/TbMeterRecordVo.java index ae03eb08..6936fe99 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/smartDevicesVo/TbMeterRecordVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/smartDevicesVo/TbMeterRecordVo.java @@ -33,6 +33,12 @@ public class TbMeterRecordVo implements Serializable { @ExcelProperty(value = "记录ID") private Long id; + /** + * 仪表名称 + */ + @ExcelProperty(value = "仪表名称") + private String meterName; + /** * 仪表编号 */ @@ -87,5 +93,4 @@ public class TbMeterRecordVo implements Serializable { @ExcelProperty(value = "抄表照片") private Long imgOssId; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/smartDevicesImpl/TbMeterRecordServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/smartDevicesImpl/TbMeterRecordServiceImpl.java index 860029fb..f82f2fa4 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/smartDevicesImpl/TbMeterRecordServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/smartDevicesImpl/TbMeterRecordServiceImpl.java @@ -66,7 +66,24 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService { @Override public TableDataInfo queryPageList(TbMeterRecordBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); + // 楼层筛选 + List infoList = tbMeterInfoService.queryList(new TbMeterInfoBo()); + + if (bo.getFloorId() != null) { + // 获取对应楼层的仪表ID + Collection 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 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); } @@ -83,17 +100,16 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService { } private LambdaQueryWrapper buildQueryWrapper(TbMeterRecordBo bo) { - Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.orderByAsc(TbMeterRecord::getId); + lqw.orderByDesc(TbMeterRecord::getReadingTime); 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.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.getReadingMethod() != null, TbMeterRecord::getReadingMethod, bo.getReadingMethod()); lqw.eq(bo.getCurrentReading() != null, TbMeterRecord::getCurrentReading, bo.getCurrentReading()); 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; } @@ -107,11 +123,7 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService { public Boolean insertByBo(TbMeterRecordBo bo) { TbMeterRecord add = MapstructUtils.convert(bo, TbMeterRecord.class); validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; + return baseMapper.insert(add) > 0; } /** @@ -143,9 +155,6 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - } return baseMapper.deleteByIds(ids) > 0; } @@ -203,9 +212,9 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService { // 获取当前读数 int meterCode = Integer.parseInt(info.getMeterCode()); - if (meterCode + 1 <= result.getCollectionValue().size()){ + if (meterCode + 1 <= result.getCollectionValue().size()) { record.setCurrentReading(BigDecimal.valueOf(result.getCollectionValue().get(meterCode))); - }else { + } else { record.setCurrentReading(BigDecimal.ZERO); } @@ -227,10 +236,10 @@ public class TbMeterRecordServiceImpl implements ITbMeterRecordService { // 通信状态改为离线 TbMeterInfoBo bo = new TbMeterInfoBo(); bo.setId(info.getId()); - if (record.getCurrentReading().compareTo(BigDecimal.ZERO) == 0){ + if (record.getCurrentReading().compareTo(BigDecimal.ZERO) == 0) { bo.setCommunicationState(0L); record.setCurrentReading(record.getPreviousReading()); - }else { + } else { bo.setCommunicationState(1L); } tbMeterInfoService.updateByBo(bo);