Compare commits

...

2 Commits

Author SHA1 Message Date
15683799673
c514c8ecea 增加水表电表相关 2025-06-18 21:50:37 +08:00
15683799673
891289f682 增加水表电表相关 2025-06-18 21:48:54 +08:00
69 changed files with 1677 additions and 294 deletions

View File

@ -5,9 +5,9 @@ FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
LABEL maintainer="Lion Li"
RUN mkdir -p /ruoyi/system/logs \
/ruoyi/system/temp \
/ruoyi/skywalking/agent
RUN mkdir -p /smartparks/iot/logs \
/smartparks/iot/temp \
/smartparks/iot/agent
WORKDIR /ruoyi/system
@ -15,7 +15,7 @@ ENV SERVER_PORT=9201 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
EXPOSE ${SERVER_PORT}
ADD ./target/ruoyi-system.jar ./iot.jar
ADD ./target/iot.jar ./iot.jar
SHELL ["/bin/bash", "-c"]

View File

@ -1,4 +1,4 @@
package org.dromara.property;
package org.dromara.iot;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
@ -17,6 +17,6 @@ public class IotyApplication {
SpringApplication application = new SpringApplication(IotyApplication.class);
application.setApplicationStartup(new BufferingApplicationStartup(2048));
application.run(args);
System.out.println("(♥◠‿◠)ノ゙ 物业模块启动成功 ლ(´ڡ`ლ)゙ ");
System.out.println("(♥◠‿◠)ノ゙ 设备模块启动成功 ლ(´ڡ`ლ)゙ ");
}
}

View File

@ -1,32 +1,33 @@
package org.dromara.property.controller;
package org.dromara.iot.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
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.TbAccessControlVo;
import org.dromara.property.domain.bo.TbAccessControlBo;
import org.dromara.property.service.ITbAccessControlService;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.iot.domain.bo.TbAccessControlBo;
import org.dromara.iot.domain.vo.TbAccessControlVo;
import org.dromara.iot.service.ITbAccessControlService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 门禁管理
* 前端访问路由地址为:/property/accessControl
*
* @author mocheng
* @author lxj
* @date 2025-06-17
*/
@Validated
@ -65,7 +66,7 @@ public class TbAccessControlController extends BaseController {
@SaCheckPermission("property:accessControl:query")
@GetMapping("/{id}")
public R<TbAccessControlVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@PathVariable("id") Long id) {
return R.ok(tbAccessControlService.queryById(id));
}

View File

@ -1,4 +1,4 @@
package org.dromara.property.controller;
package org.dromara.iot.controller;
import java.util.List;
@ -17,16 +17,16 @@ 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.TdFactoryVo;
import org.dromara.property.domain.bo.TdFactoryBo;
import org.dromara.property.service.ITdFactoryService;
import org.dromara.iot.domain.vo.TdFactoryVo;
import org.dromara.iot.domain.bo.TdFactoryBo;
import org.dromara.iot.service.ITdFactoryService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 厂商管理
* 前端访问路由地址为:/property/factory
*
* @author mocheng
* @author lxj
* @date 2025-06-17
*/
@Validated

View File

@ -0,0 +1,106 @@
package org.dromara.iot.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
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.iot.domain.vo.TdMeterConfigVo;
import org.dromara.iot.domain.bo.TdMeterConfigBo;
import org.dromara.iot.service.ITdMeterConfigService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 水电气配置
* 前端访问路由地址为:/system/meterConfig
*
* @author lxj
* @date 2025-06-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/meterConfig")
public class TdMeterConfigController extends BaseController {
private final ITdMeterConfigService tdMeterConfigService;
/**
* 查询水电气配置列表
*/
@SaCheckPermission("system:meterConfig:list")
@GetMapping("/list")
public TableDataInfo<TdMeterConfigVo> list(TdMeterConfigBo bo, PageQuery pageQuery) {
return tdMeterConfigService.queryPageList(bo, pageQuery);
}
/**
* 导出水电气配置列表
*/
@SaCheckPermission("system:meterConfig:export")
@Log(title = "水电气配置", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TdMeterConfigBo bo, HttpServletResponse response) {
List<TdMeterConfigVo> list = tdMeterConfigService.queryList(bo);
ExcelUtil.exportExcel(list, "水电气配置", TdMeterConfigVo.class, response);
}
/**
* 获取水电气配置详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:meterConfig:query")
@GetMapping("/{id}")
public R<TdMeterConfigVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return R.ok(tdMeterConfigService.queryById(id));
}
/**
* 新增水电气配置
*/
@SaCheckPermission("system:meterConfig:add")
@Log(title = "水电气配置", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody TdMeterConfigBo bo) {
return toAjax(tdMeterConfigService.insertByBo(bo));
}
/**
* 修改水电气配置
*/
@SaCheckPermission("system:meterConfig:edit")
@Log(title = "水电气配置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TdMeterConfigBo bo) {
return toAjax(tdMeterConfigService.updateByBo(bo));
}
/**
* 删除水电气配置
*
* @param ids 主键串
*/
@SaCheckPermission("system:meterConfig:remove")
@Log(title = "水电气配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(tdMeterConfigService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,106 @@
package org.dromara.iot.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
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.iot.domain.vo.TdMeterVo;
import org.dromara.iot.domain.bo.TdMeterBo;
import org.dromara.iot.service.ITdMeterService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 水电气
* 前端访问路由地址为:/system/ meter
*
* @author LionLi
* @date 2025-06-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/ meter")
public class TdMeterController extends BaseController {
private final ITdMeterService tdMeterService;
/**
* 查询水电气列表
*/
@SaCheckPermission("system: meter:list")
@GetMapping("/list")
public TableDataInfo<TdMeterVo> list(TdMeterBo bo, PageQuery pageQuery) {
return tdMeterService.queryPageList(bo, pageQuery);
}
/**
* 导出水电气列表
*/
@SaCheckPermission("system: meter:export")
@Log(title = "水电气", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TdMeterBo bo, HttpServletResponse response) {
List<TdMeterVo> list = tdMeterService.queryList(bo);
ExcelUtil.exportExcel(list, "水电气", TdMeterVo.class, response);
}
/**
* 获取水电气详细信息
*
* @param id 主键
*/
@SaCheckPermission("system: meter:query")
@GetMapping("/{id}")
public R<TdMeterVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return R.ok(tdMeterService.queryById(id));
}
/**
* 新增水电气
*/
@SaCheckPermission("system: meter:add")
@Log(title = "水电气", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody TdMeterBo bo) {
return toAjax(tdMeterService.insertByBo(bo));
}
/**
* 修改水电气
*/
@SaCheckPermission("system: meter:edit")
@Log(title = "水电气", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TdMeterBo bo) {
return toAjax(tdMeterService.updateByBo(bo));
}
/**
* 删除水电气
*
* @param ids 主键串
*/
@SaCheckPermission("system: meter:remove")
@Log(title = "水电气", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(tdMeterService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,106 @@
package org.dromara.system.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
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.iot.domain.vo.TdMeterRoomVo;
import org.dromara.iot.domain.bo.TdMeterRoomBo;
import org.dromara.iot.service.ITdMeterRoomService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 和房间的关联
* 前端访问路由地址为:/system/meterRoom
*
* @author lxj
* @date 2025-06-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/meterRoom")
public class TdMeterRoomController extends BaseController {
private final ITdMeterRoomService tdMeterRoomService;
/**
* 查询和房间的关联列表
*/
@SaCheckPermission("system:meterRoom:list")
@GetMapping("/list")
public TableDataInfo<TdMeterRoomVo> list(TdMeterRoomBo bo, PageQuery pageQuery) {
return tdMeterRoomService.queryPageList(bo, pageQuery);
}
/**
* 导出和房间的关联列表
*/
@SaCheckPermission("system:meterRoom:export")
@Log(title = "和房间的关联", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TdMeterRoomBo bo, HttpServletResponse response) {
List<TdMeterRoomVo> list = tdMeterRoomService.queryList(bo);
ExcelUtil.exportExcel(list, "和房间的关联", TdMeterRoomVo.class, response);
}
/**
* 获取和房间的关联详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:meterRoom:query")
@GetMapping("/{id}")
public R<TdMeterRoomVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return R.ok(tdMeterRoomService.queryById(id));
}
/**
* 新增和房间的关联
*/
@SaCheckPermission("system:meterRoom:add")
@Log(title = "和房间的关联", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody TdMeterRoomBo bo) {
return toAjax(tdMeterRoomService.insertByBo(bo));
}
/**
* 修改和房间的关联
*/
@SaCheckPermission("system:meterRoom:edit")
@Log(title = "和房间的关联", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TdMeterRoomBo bo) {
return toAjax(tdMeterRoomService.updateByBo(bo));
}
/**
* 删除和房间的关联
*
* @param ids 主键串
*/
@SaCheckPermission("system:meterRoom:remove")
@Log(title = "和房间的关联", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(tdMeterRoomService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -1,4 +1,4 @@
package org.dromara.property.domain;
package org.dromara.iot.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;

View File

@ -1,4 +1,4 @@
package org.dromara.property.domain;
package org.dromara.iot.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;

View File

@ -0,0 +1,81 @@
package org.dromara.iot.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 水电气对象 td_ meter
*
* @author LionLi
* @date 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("td_ meter")
public class TdMeter extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 水表名称
*/
private String meterName;
/**
* 设备编码
*/
private String meterCode;
/**
* 设备厂商
*/
private String factoryNo;
/**
* 设备类型(1-电表2-水表3-气表)
*/
private Long meterType;
/**
* 付费类型(1-先付费2-后付费)
*/
private Long payType;
/**
* 当前表显示读数
*/
private Long display;
/**
*
*/
private Long surplus;
/**
* 通信状态
*/
private Long communicationState;
/**
* 运行状态
*/
private Long runningState;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,61 @@
package org.dromara.iot.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 水电气配置对象 td_meter_config
*
* @author LionLi
* @date 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("td_meter_config")
public class TdMeterConfig extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 设备类型(1-电表2-水表3-气表)
*/
private Long meterType;
/**
* 付费类型(1-先付费2-后付费)
*/
private Long payType;
/**
* 欠费是否断电//(0-1-)
*/
private Long arrearsOutage;
/**
* 后付费模式下是否自动断电//0-1-
*/
private Long autoOutage;
/**
* 当auto_outage=0的时候生效逾期多少天自动断水//
*/
private Long overdueDay;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,46 @@
package org.dromara.iot.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 和房间的关联对象 td_meter_room
*
* @author LionLi
* @date 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("td_meter_room")
public class TdMeterRoom extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 表id
*/
private Long meterId;
/**
* 房间id
*/
private Long roomId;
/**
* 备注
*/
private String remark;
}

View File

@ -1,20 +1,19 @@
package org.dromara.property.domain.bo;
package org.dromara.iot.domain.bo;
import org.dromara.property.domain.TbAccessControl;
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 jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.iot.domain.TbAccessControl;
/**
* 门禁管理业务对象 tb_access_control
*
* @author mocheng
* @author lxj
* @date 2025-06-17
*/
@Data
@ -30,25 +29,25 @@ public class TbAccessControlBo extends BaseEntity {
/**
* 门禁设备编码
*/
@NotBlank(message = "门禁设备编码不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "门禁设备编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String accessCode;
/**
* 门禁名称
*/
@NotBlank(message = "门禁名称不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "门禁名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String accessName;
/**
* 园区编码
*/
@NotBlank(message = "园区编码不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "园区编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String communityCode;
/**
* 建筑编码
*/
@NotBlank(message = "建筑编码不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "建筑编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String buildingCode;
/**
@ -64,19 +63,19 @@ public class TbAccessControlBo extends BaseEntity {
/**
* 门禁设备类型
*/
@NotNull(message = "门禁设备类型不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "门禁设备类型不能为空", groups = {AddGroup.class, EditGroup.class})
private Long accssType;
/**
* 工程编号
*/
@NotBlank(message = "工程编号不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "工程编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String factoryCode;
/**
* 控制卡类型1-系统2-E8
*/
@NotNull(message = "控制卡类型1-系统2-E8不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "控制卡类型1-系统2-E8不能为空", groups = {AddGroup.class, EditGroup.class})
private Long controlType;
/**
@ -92,13 +91,13 @@ public class TbAccessControlBo extends BaseEntity {
/**
* 组织编码
*/
@NotBlank(message = "组织编码不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "组织编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String orgCode;
/**
* 数据状态1有效0无效
*/
@NotNull(message = "数据状态1有效0无效不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "数据状态1有效0无效不能为空", groups = {AddGroup.class, EditGroup.class})
private Long dataState;

View File

@ -1,20 +1,19 @@
package org.dromara.property.domain.bo;
package org.dromara.iot.domain.bo;
import org.dromara.property.domain.TdFactory;
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 jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.iot.domain.TdFactory;
/**
* 厂商管理业务对象 td_factory
*
* @author mocheng
* @author lxj
* @date 2025-06-17
*/
@Data
@ -25,19 +24,19 @@ public class TdFactoryBo extends BaseEntity {
/**
* 数据库id
*/
@NotNull(message = "数据库id不能为空", groups = { EditGroup.class })
@NotNull(message = "数据库id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 厂商编码
*/
@NotBlank(message = "厂商编码不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "厂商编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String factoryNo;
/**
* 设备厂商名称
*/
@NotBlank(message = "设备厂商名称不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "设备厂商名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String factoryName;
/**
@ -48,7 +47,7 @@ public class TdFactoryBo extends BaseEntity {
/**
* 数据状态1有效0无效
*/
@NotNull(message = "数据状态1有效0无效不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "数据状态1有效0无效不能为空", groups = {AddGroup.class, EditGroup.class})
private Long dataState;

View File

@ -0,0 +1,86 @@
package org.dromara.iot.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.iot.domain.TdMeter;
/**
* 水电气业务对象 td_ meter
*
* @author lxj
* @date 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TdMeter.class, reverseConvertGenerate = false)
public class TdMeterBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 水表名称
*/
@NotBlank(message = "水表名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String meterName;
/**
* 设备编码
*/
@NotBlank(message = "设备编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String meterCode;
/**
* 设备厂商
*/
@NotBlank(message = "设备厂商不能为空", groups = {AddGroup.class, EditGroup.class})
private String factoryNo;
/**
* 设备类型(1-电表2-水表3-气表)
*/
@NotNull(message = "设备类型(1-电表2-水表3-气表)不能为空", groups = {AddGroup.class, EditGroup.class})
private Long meterType;
/**
* 付费类型(1-先付费2-后付费)
*/
@NotNull(message = "付费类型(1-先付费2-后付费)不能为空", groups = {AddGroup.class, EditGroup.class})
private Long payType;
/**
* 当前表显示读数
*/
private Long display;
/**
*
*/
private Long surplus;
/**
* 通信状态
*/
private Long communicationState;
/**
* 运行状态
*/
private Long runningState;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,64 @@
package org.dromara.iot.domain.bo;
import org.dromara.iot.domain.TdMeterConfig;
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;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 水电气配置业务对象 td_meter_config
*
* @author lxj
* @date 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TdMeterConfig.class, reverseConvertGenerate = false)
public class TdMeterConfigBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 设备类型(1-电表2-水表3-气表)
*/
private Long meterType;
/**
* 付费类型(1-先付费2-后付费)
*/
@NotNull(message = "付费类型(1-先付费2-后付费)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long payType;
/**
* 欠费是否断电//(0-1-)
*/
@NotNull(message = "欠费是否断电/水/气(0-是1-否)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long arrearsOutage;
/**
* 后付费模式下是否自动断电//0-1-
*/
@NotNull(message = "后付费模式下是否自动断电/水/气0-是1-否)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long autoOutage;
/**
* 当auto_outage=0的时候生效逾期多少天自动断水//
*/
@NotNull(message = "当auto_outage=0的时候生效逾期多少天自动断水/电/气不能为空", groups = { AddGroup.class, EditGroup.class })
private Long overdueDay;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,47 @@
package org.dromara.iot.domain.bo;
import org.dromara.iot.domain.TdMeterRoom;
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;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 和房间的关联业务对象 td_meter_room
*
* @author lxj
* @date 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TdMeterRoom.class, reverseConvertGenerate = false)
public class TdMeterRoomBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 表id
*/
@NotNull(message = "表id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long meterId;
/**
* 房间id
*/
@NotNull(message = "房间id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long roomId;
/**
* 备注
*/
private String remark;
}

View File

@ -1,25 +1,19 @@
package org.dromara.property.domain.vo;
package org.dromara.iot.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.property.domain.TbAccessControl;
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 org.dromara.iot.domain.TbAccessControl;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 门禁管理视图对象 tb_access_control
*
* @author mocheng
* @author lxj
* @date 2025-06-17
*/
@Data

View File

@ -1,25 +1,19 @@
package org.dromara.property.domain.vo;
package org.dromara.iot.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.property.domain.TdFactory;
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 org.dromara.iot.domain.TdFactory;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 厂商管理视图对象 td_factory
*
* @author mocheng
* @author lxj
* @date 2025-06-17
*/
@Data

View File

@ -0,0 +1,73 @@
package org.dromara.iot.domain.vo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.iot.domain.TdMeterConfig;
import java.io.Serial;
import java.io.Serializable;
/**
* 水电气配置视图对象 td_meter_config
*
* @author lxj
* @date 2025-06-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TdMeterConfig.class)
public class TdMeterConfigVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 设备类型(1-电表2-水表3-气表)
*/
@ExcelProperty(value = "设备类型(1-电表2-水表3-气表)")
private Long meterType;
/**
* 付费类型(1-先付费2-后付费)
*/
@ExcelProperty(value = "付费类型(1-先付费2-后付费)")
private Long payType;
/**
* 欠费是否断电//(0-1-)
*/
@ExcelProperty(value = "欠费是否断电/水/气(0-是1-否)")
private Long arrearsOutage;
/**
* 后付费模式下是否自动断电//0-1-
*/
@ExcelProperty(value = "后付费模式下是否自动断电/水/气", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=-是1-否")
private Long autoOutage;
/**
* 当auto_outage=0的时候生效逾期多少天自动断水//
*/
@ExcelProperty(value = "当auto_outage=0的时候生效逾期多少天自动断水/电/气")
private Long overdueDay;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -0,0 +1,52 @@
package org.dromara.iot.domain.vo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.iot.domain.TdMeterRoom;
import java.io.Serial;
import java.io.Serializable;
/**
* 和房间的关联视图对象 td_meter_room
*
* @author LionLi
* @date 2025-06-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TdMeterRoom.class)
public class TdMeterRoomVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 表id
*/
@ExcelProperty(value = "表id")
private Long meterId;
/**
* 房间id
*/
@ExcelProperty(value = "房间id")
private Long roomId;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -0,0 +1,94 @@
package org.dromara.iot.domain.vo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.iot.domain.TdMeter;
import java.io.Serial;
import java.io.Serializable;
/**
* 水电气视图对象 td_ meter
*
* @author lxj
* @date 2025-06-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TdMeter.class)
public class TdMeterVo 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-后付费)
*/
@ExcelProperty(value = "付费类型(1-先付费2-后付费)")
private Long payType;
/**
* 当前表显示读数
*/
@ExcelProperty(value = "当前表显示读数")
private Long display;
/**
*
*/
@ExcelProperty(value = "")
private Long surplus;
/**
* 通信状态
*/
@ExcelProperty(value = "通信状态")
private Long communicationState;
/**
* 运行状态
*/
@ExcelProperty(value = "运行状态")
private Long runningState;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -1,8 +1,8 @@
package org.dromara.property.mapper;
package org.dromara.iot.mapper;
import org.dromara.property.domain.TbAccessControl;
import org.dromara.property.domain.vo.TbAccessControlVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.iot.domain.TbAccessControl;
import org.dromara.iot.domain.vo.TbAccessControlVo;
/**
* 门禁管理Mapper接口

View File

@ -1,7 +1,7 @@
package org.dromara.property.mapper;
package org.dromara.iot.mapper;
import org.dromara.property.domain.TdFactory;
import org.dromara.property.domain.vo.TdFactoryVo;
import org.dromara.iot.domain.TdFactory;
import org.dromara.iot.domain.vo.TdFactoryVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**

View File

@ -0,0 +1,15 @@
package org.dromara.iot.mapper;
import org.dromara.iot.domain.TdMeterConfig;
import org.dromara.iot.domain.vo.TdMeterConfigVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 水电气配置Mapper接口
*
* @author LionLi
* @date 2025-06-18
*/
public interface TdMeterConfigMapper extends BaseMapperPlus<TdMeterConfig, TdMeterConfigVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.iot.mapper;
import org.dromara.iot.domain.TdMeter;
import org.dromara.iot.domain.vo.TdMeterVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 水电气Mapper接口
*
* @author LionLi
* @date 2025-06-18
*/
public interface TdMeterMapper extends BaseMapperPlus<TdMeter, TdMeterVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.iot.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.iot.domain.TdMeterRoom;
import org.dromara.iot.domain.vo.TdMeterRoomVo;
/**
* 和房间的关联Mapper接口
*
* @author LionLi
* @date 2025-06-18
*/
public interface TdMeterRoomMapper extends BaseMapperPlus<TdMeterRoom, TdMeterRoomVo> {
}

View File

@ -1,10 +1,9 @@
package org.dromara.property.service;
package org.dromara.iot.service;
import org.dromara.property.domain.TbAccessControl;
import org.dromara.property.domain.vo.TbAccessControlVo;
import org.dromara.property.domain.bo.TbAccessControlBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.iot.domain.bo.TbAccessControlBo;
import org.dromara.iot.domain.vo.TbAccessControlVo;
import java.util.Collection;
import java.util.List;

View File

@ -1,10 +1,9 @@
package org.dromara.property.service;
package org.dromara.iot.service;
import org.dromara.property.domain.TdFactory;
import org.dromara.property.domain.vo.TdFactoryVo;
import org.dromara.property.domain.bo.TdFactoryBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.iot.domain.bo.TdFactoryBo;
import org.dromara.iot.domain.vo.TdFactoryVo;
import java.util.Collection;
import java.util.List;

View File

@ -0,0 +1,68 @@
package org.dromara.iot.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.iot.domain.bo.TdMeterConfigBo;
import org.dromara.iot.domain.vo.TdMeterConfigVo;
import java.util.Collection;
import java.util.List;
/**
* 水电气配置Service接口
*
* @author LionLi
* @date 2025-06-18
*/
public interface ITdMeterConfigService {
/**
* 查询水电气配置
*
* @param id 主键
* @return 水电气配置
*/
TdMeterConfigVo queryById(Long id);
/**
* 分页查询水电气配置列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 水电气配置分页列表
*/
TableDataInfo<TdMeterConfigVo> queryPageList(TdMeterConfigBo bo, PageQuery pageQuery);
/**
* 查询符合条件的水电气配置列表
*
* @param bo 查询条件
* @return 水电气配置列表
*/
List<TdMeterConfigVo> queryList(TdMeterConfigBo bo);
/**
* 新增水电气配置
*
* @param bo 水电气配置
* @return 是否新增成功
*/
Boolean insertByBo(TdMeterConfigBo bo);
/**
* 修改水电气配置
*
* @param bo 水电气配置
* @return 是否修改成功
*/
Boolean updateByBo(TdMeterConfigBo bo);
/**
* 校验并批量删除水电气配置信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,68 @@
package org.dromara.iot.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.iot.domain.bo.TdMeterRoomBo;
import org.dromara.iot.domain.vo.TdMeterRoomVo;
import java.util.Collection;
import java.util.List;
/**
* 和房间的关联Service接口
*
* @author LionLi
* @date 2025-06-18
*/
public interface ITdMeterRoomService {
/**
* 查询和房间的关联
*
* @param id 主键
* @return 和房间的关联
*/
TdMeterRoomVo queryById(Long id);
/**
* 分页查询和房间的关联列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 和房间的关联分页列表
*/
TableDataInfo<TdMeterRoomVo> queryPageList(TdMeterRoomBo bo, PageQuery pageQuery);
/**
* 查询符合条件的和房间的关联列表
*
* @param bo 查询条件
* @return 和房间的关联列表
*/
List<TdMeterRoomVo> queryList(TdMeterRoomBo bo);
/**
* 新增和房间的关联
*
* @param bo 和房间的关联
* @return 是否新增成功
*/
Boolean insertByBo(TdMeterRoomBo bo);
/**
* 修改和房间的关联
*
* @param bo 和房间的关联
* @return 是否修改成功
*/
Boolean updateByBo(TdMeterRoomBo bo);
/**
* 校验并批量删除和房间的关联信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,68 @@
package org.dromara.iot.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.iot.domain.bo.TdMeterBo;
import org.dromara.iot.domain.vo.TdMeterVo;
import java.util.Collection;
import java.util.List;
/**
* 水电气Service接口
*
* @author LionLi
* @date 2025-06-18
*/
public interface ITdMeterService {
/**
* 查询水电气
*
* @param id 主键
* @return 水电气
*/
TdMeterVo queryById(Long id);
/**
* 分页查询水电气列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 水电气分页列表
*/
TableDataInfo<TdMeterVo> queryPageList(TdMeterBo bo, PageQuery pageQuery);
/**
* 查询符合条件的水电气列表
*
* @param bo 查询条件
* @return 水电气列表
*/
List<TdMeterVo> queryList(TdMeterBo bo);
/**
* 新增水电气
*
* @param bo 水电气
* @return 是否新增成功
*/
Boolean insertByBo(TdMeterBo bo);
/**
* 修改水电气
*
* @param bo 水电气
* @return 是否修改成功
*/
Boolean updateByBo(TdMeterBo bo);
/**
* 校验并批量删除水电气信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -1,4 +1,4 @@
package org.dromara.property.service.impl;
package org.dromara.iot.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -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.TbAccessControlBo;
import org.dromara.property.domain.vo.TbAccessControlVo;
import org.dromara.property.domain.TbAccessControl;
import org.dromara.property.mapper.TbAccessControlMapper;
import org.dromara.property.service.ITbAccessControlService;
import org.dromara.iot.domain.bo.TbAccessControlBo;
import org.dromara.iot.domain.vo.TbAccessControlVo;
import org.dromara.iot.domain.TbAccessControl;
import org.dromara.iot.mapper.TbAccessControlMapper;
import org.dromara.iot.service.ITbAccessControlService;
import java.util.List;
import java.util.Map;

View File

@ -1,4 +1,4 @@
package org.dromara.property.service.impl;
package org.dromara.iot.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -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.TdFactoryBo;
import org.dromara.property.domain.vo.TdFactoryVo;
import org.dromara.property.domain.TdFactory;
import org.dromara.property.mapper.TdFactoryMapper;
import org.dromara.property.service.ITdFactoryService;
import org.dromara.iot.domain.bo.TdFactoryBo;
import org.dromara.iot.domain.vo.TdFactoryVo;
import org.dromara.iot.domain.TdFactory;
import org.dromara.iot.mapper.TdFactoryMapper;
import org.dromara.iot.service.ITdFactoryService;
import java.util.List;
import java.util.Map;

View File

@ -0,0 +1,136 @@
package org.dromara.iot.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.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 lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.dromara.iot.domain.bo.TdMeterConfigBo;
import org.dromara.iot.domain.vo.TdMeterConfigVo;
import org.dromara.iot.domain.TdMeterConfig;
import org.dromara.iot.mapper.TdMeterConfigMapper;
import org.dromara.iot.service.ITdMeterConfigService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 水电气配置Service业务层处理
*
* @author LionLi
* @date 2025-06-18
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class TdMeterConfigServiceImpl implements ITdMeterConfigService {
private final TdMeterConfigMapper baseMapper;
/**
* 查询水电气配置
*
* @param id 主键
* @return 水电气配置
*/
@Override
public TdMeterConfigVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询水电气配置列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 水电气配置分页列表
*/
@Override
public TableDataInfo<TdMeterConfigVo> queryPageList(TdMeterConfigBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<TdMeterConfig> lqw = buildQueryWrapper(bo);
Page<TdMeterConfigVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的水电气配置列表
*
* @param bo 查询条件
* @return 水电气配置列表
*/
@Override
public List<TdMeterConfigVo> queryList(TdMeterConfigBo bo) {
LambdaQueryWrapper<TdMeterConfig> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<TdMeterConfig> buildQueryWrapper(TdMeterConfigBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<TdMeterConfig> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(TdMeterConfig::getId);
lqw.eq(bo.getMeterType() != null, TdMeterConfig::getMeterType, bo.getMeterType());
lqw.eq(bo.getPayType() != null, TdMeterConfig::getPayType, bo.getPayType());
lqw.eq(bo.getArrearsOutage() != null, TdMeterConfig::getArrearsOutage, bo.getArrearsOutage());
lqw.eq(bo.getAutoOutage() != null, TdMeterConfig::getAutoOutage, bo.getAutoOutage());
lqw.eq(bo.getOverdueDay() != null, TdMeterConfig::getOverdueDay, bo.getOverdueDay());
return lqw;
}
/**
* 新增水电气配置
*
* @param bo 水电气配置
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(TdMeterConfigBo bo) {
TdMeterConfig add = MapstructUtils.convert(bo, TdMeterConfig.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改水电气配置
*
* @param bo 水电气配置
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(TdMeterConfigBo bo) {
TdMeterConfig update = MapstructUtils.convert(bo, TdMeterConfig.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(TdMeterConfig entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除水电气配置信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,133 @@
package org.dromara.iot.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.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 lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.dromara.iot.domain.bo.TdMeterRoomBo;
import org.dromara.iot.domain.vo.TdMeterRoomVo;
import org.dromara.iot.domain.TdMeterRoom;
import org.dromara.iot.mapper.TdMeterRoomMapper;
import org.dromara.iot.service.ITdMeterRoomService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 和房间的关联Service业务层处理
*
* @author LionLi
* @date 2025-06-18
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class TdMeterRoomServiceImpl implements ITdMeterRoomService {
private final TdMeterRoomMapper baseMapper;
/**
* 查询和房间的关联
*
* @param id 主键
* @return 和房间的关联
*/
@Override
public TdMeterRoomVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询和房间的关联列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 和房间的关联分页列表
*/
@Override
public TableDataInfo<TdMeterRoomVo> queryPageList(TdMeterRoomBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<TdMeterRoom> lqw = buildQueryWrapper(bo);
Page<TdMeterRoomVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的和房间的关联列表
*
* @param bo 查询条件
* @return 和房间的关联列表
*/
@Override
public List<TdMeterRoomVo> queryList(TdMeterRoomBo bo) {
LambdaQueryWrapper<TdMeterRoom> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<TdMeterRoom> buildQueryWrapper(TdMeterRoomBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<TdMeterRoom> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(TdMeterRoom::getId);
lqw.eq(bo.getMeterId() != null, TdMeterRoom::getMeterId, bo.getMeterId());
lqw.eq(bo.getRoomId() != null, TdMeterRoom::getRoomId, bo.getRoomId());
return lqw;
}
/**
* 新增和房间的关联
*
* @param bo 和房间的关联
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(TdMeterRoomBo bo) {
TdMeterRoom add = MapstructUtils.convert(bo, TdMeterRoom.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改和房间的关联
*
* @param bo 和房间的关联
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(TdMeterRoomBo bo) {
TdMeterRoom update = MapstructUtils.convert(bo, TdMeterRoom.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(TdMeterRoom entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除和房间的关联信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,140 @@
package org.dromara.iot.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.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 lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.dromara.iot.domain.bo.TdMeterBo;
import org.dromara.iot.domain.vo.TdMeterVo;
import org.dromara.iot.domain.TdMeter;
import org.dromara.iot.mapper.TdMeterMapper;
import org.dromara.iot.service.ITdMeterService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 水电气Service业务层处理
*
* @author LionLi
* @date 2025-06-18
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class TdMeterServiceImpl implements ITdMeterService {
private final TdMeterMapper baseMapper;
/**
* 查询水电气
*
* @param id 主键
* @return 水电气
*/
@Override
public TdMeterVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询水电气列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 水电气分页列表
*/
@Override
public TableDataInfo<TdMeterVo> queryPageList(TdMeterBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<TdMeter> lqw = buildQueryWrapper(bo);
Page<TdMeterVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的水电气列表
*
* @param bo 查询条件
* @return 水电气列表
*/
@Override
public List<TdMeterVo> queryList(TdMeterBo bo) {
LambdaQueryWrapper<TdMeter> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<TdMeter> buildQueryWrapper(TdMeterBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<TdMeter> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(TdMeter::getId);
lqw.like(StringUtils.isNotBlank(bo.getMeterName()), TdMeter::getMeterName, bo.getMeterName());
lqw.eq(StringUtils.isNotBlank(bo.getMeterCode()), TdMeter::getMeterCode, bo.getMeterCode());
lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TdMeter::getFactoryNo, bo.getFactoryNo());
lqw.eq(bo.getMeterType() != null, TdMeter::getMeterType, bo.getMeterType());
lqw.eq(bo.getPayType() != null, TdMeter::getPayType, bo.getPayType());
lqw.eq(bo.getDisplay() != null, TdMeter::getDisplay, bo.getDisplay());
lqw.eq(bo.getSurplus() != null, TdMeter::getSurplus, bo.getSurplus());
lqw.eq(bo.getCommunicationState() != null, TdMeter::getCommunicationState, bo.getCommunicationState());
lqw.eq(bo.getRunningState() != null, TdMeter::getRunningState, bo.getRunningState());
return lqw;
}
/**
* 新增水电气
*
* @param bo 水电气
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(TdMeterBo bo) {
TdMeter add = MapstructUtils.convert(bo, TdMeter.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改水电气
*
* @param bo 水电气
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(TdMeterBo bo) {
TdMeter update = MapstructUtils.convert(bo, TdMeter.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(TdMeter entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除水电气信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -6,7 +6,7 @@ server:
spring:
application:
# 应用名称
name: Property
name: iot
profiles:
# 环境配置
active: @profiles.active@

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbBuildingMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbCeremonialServeMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbCeremonialserveRoombookingMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbCityAreaMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbConferenceMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbE8ConfigMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbFloorMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbRoomBookingMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbServiceClassificationMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbVisitorManagementMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TdDeviceTypeMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsConfigMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsOperationLogMapper">
</mapper>

View File

@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbCommunityMapper">
<mapper namespace="org.dromara.system.mapper.TdMeterConfigMapper">
</mapper>

View File

@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsOrgMapper">
<mapper namespace="org.dromara.system.mapper.TdMeterMapper">
</mapper>

View File

@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsDictDefMapper">
<mapper namespace="org.dromara.system.mapper.TdMeterRoomMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbCeremonialServeMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbCeremonialserveRoombookingMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbE8ConfigMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TbServiceClassificationMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsConfigMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsDictMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsLoginLogMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsMenuMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsOperationLogMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsRoleMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsRoleMenuMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsUserMapper">
</mapper>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.property.mapper.TsUserRoleMapper">
</mapper>