From 261732822868eb9502a229f985945882f124b8cd Mon Sep 17 00:00:00 2001 From: zzc <1278921369@qq.com> Date: Thu, 8 Aug 2024 00:46:14 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/app/EqDeviceController.java | 16 +- .../web/controller/app/EqHomeController.java | 26 +- .../web/domain/bo/EqEquipmentLogBo.java | 5 + .../src/main/resources/application-local.yml | 266 ++++++++++++++++++ 4 files changed, 308 insertions(+), 5 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/application-local.yml diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java index d6814da3d..50b1896b5 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java @@ -17,6 +17,7 @@ import org.dromara.web.device.iot.DeviceDto; import org.dromara.web.domain.bo.*; import org.dromara.web.domain.vo.*; import org.dromara.web.service.*; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -148,11 +149,19 @@ public class EqDeviceController extends BaseController { } /** - * 保存日志 + * 保存日志(iot使用 设备状态变动时会触发该状态) * @param eqEquipmentLogBo */ @GetMapping("/saveDeviceLogs") public void saveDeviceLogs(EqEquipmentLogBo eqEquipmentLogBo){ + + EqEquipmentBo eqEquipmentBo = new EqEquipmentBo(); + eqEquipmentBo.setEquipmentCode(eqEquipmentLogBo.getEquipmentCode()); + List eqEquipmentVos = eqEquipmentService.queryList(eqEquipmentBo); + if (CollectionUtils.isEmpty(eqEquipmentVos)) return; + EqEquipmentVo eqEquipmentVo = eqEquipmentVos.get(0); + eqEquipmentBo.setEquipmentId(eqEquipmentVo.getEquipmentId()); + Date createTime = eqEquipmentLogBo.getCreateTime(); if (createTime == null) { createTime = new Date(); @@ -170,7 +179,12 @@ public class EqDeviceController extends BaseController { int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); eqEquipmentLogBo.setDayOfWeek(dayOfWeek - 1);// Calendar类中星期日为1,星期一为2,依此类推 + //更新状态 logService.insertByBo(eqEquipmentLogBo); + + //更新开合度状态到设备 + eqEquipmentBo.setStatus(eqEquipmentLogBo.getOpenStatus()); + eqEquipmentService.updateByBo(eqEquipmentBo); } } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index 4da5afafa..8d75afd4a 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -49,7 +49,7 @@ public class EqHomeController extends BaseController { } /** - * 查询家庭主体 + * 首页切换 查询家庭主体 */ @GetMapping("/familyList") public R> familyList(){ @@ -67,12 +67,30 @@ public class EqHomeController extends BaseController { return R.ok(eqShareVos); } + /** + * 成员管理 查询家庭成员 + */ + @GetMapping("/familyMemberList") + public R> familyMemberList(){ + Long userId = LoginHelper.getUserId(); + SysUserVo sysUserVo = userService.selectUserById(userId); + EqShareVo firstVo = new EqShareVo(); + firstVo.setSharedUserId(sysUserVo.getUserId());//为了方便前端操作 统一放在被分享者字段中 + firstVo.setSharedUserName(sysUserVo.getNickName()); + + EqShareBo bo = new EqShareBo(); + bo.setShareUserId(userId); + List eqShareVos = shareService.queryList(bo); + eqShareVos.add(0,firstVo); + + return R.ok(eqShareVos); + } /** * 查询指定用户下分布列表 */ @GetMapping("/areaList") public R> areaList(EqAreaBo bo){ - if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空"); + if (bo.getUserId() == null) bo.setUserId(LoginHelper.getUserId()); return R.ok(eqAreaService.queryList(bo)); } @@ -81,8 +99,8 @@ public class EqHomeController extends BaseController { */ @GetMapping("/list") public TableDataInfo list(EqAppHomeBo bo, PageQuery pageQuery){ - if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空"); - //TODO 下面返回的状态可能会修改成实时状态 + if (bo.getUserId() == null) bo.setUserId(LoginHelper.getUserId()); + //TODO 下面返回的状态 会在设备状态变化时更新设备状态 EqEquipmentBo eqEquipmentBo = new EqEquipmentBo(); eqEquipmentBo.setCreateBy(bo.getUserId()); return eqEquipmentService.queryPageList(eqEquipmentBo, pageQuery); //在设备表中增加了分布id diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentLogBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentLogBo.java index 65befed98..6190c6717 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentLogBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentLogBo.java @@ -76,6 +76,11 @@ public class EqEquipmentLogBo extends BaseEntity { @NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer status; + /** + * 开合度状态 0% 10% 。。。 100% + */ + private Integer openStatus; + /** diff --git a/ruoyi-admin/src/main/resources/application-local.yml b/ruoyi-admin/src/main/resources/application-local.yml new file mode 100644 index 000000000..f6682888b --- /dev/null +++ b/ruoyi-admin/src/main/resources/application-local.yml @@ -0,0 +1,266 @@ +--- # 监控中心配置 +spring.boot.admin.client: + # 增加客户端开关 + enabled: true + url: http://localhost:9090/admin + instance: + service-host-type: IP + username: ruoyi + password: 123456 + +--- # snail-job 配置 +snail-job: + enabled: false + # 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务 + group: "ruoyi_group" + # SnailJob 接入验证令牌 详见 script/sql/snail_job.sql `sj_group_config` 表 + token: "SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT" + server: + host: 127.0.0.1 + port: 17888 + # 详见 script/sql/snail_job.sql `sj_namespace` 表 + namespace: ${spring.profiles.active} + # 随主应用端口飘逸 + port: 2${server.port} + +--- # 数据源配置 +spring: + datasource: + type: com.zaxxer.hikari.HikariDataSource + # 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content + dynamic: + # 性能分析插件(有性能损耗 不建议生产环境使用) + p6spy: true + # 设置默认的数据源或者数据源组,默认值即为 master + primary: master + # 严格模式 匹配不到数据源则报错 + strict: true + datasource: + # 主库数据源 + master: + type: ${spring.datasource.type} + driverClassName: com.mysql.cj.jdbc.Driver + # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 + # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) + url: jdbc:mysql://124.223.36.143:3306/ry-vue-plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true + username: root + password: 8hifXZpjLdhmD1wq6wsi + # 从库数据源 + slave: + lazy: true + type: ${spring.datasource.type} + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true + username: + password: +# oracle: +# type: ${spring.datasource.type} +# driverClassName: oracle.jdbc.OracleDriver +# url: jdbc:oracle:thin:@//localhost:1521/XE +# username: ROOT +# password: root +# postgres: +# type: ${spring.datasource.type} +# driverClassName: org.postgresql.Driver +# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true +# username: root +# password: root +# sqlserver: +# type: ${spring.datasource.type} +# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver +# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true +# username: SA +# password: root + hikari: + # 最大连接池数量 + maxPoolSize: 20 + # 最小空闲线程数量 + minIdle: 10 + # 配置获取连接等待超时的时间 + connectionTimeout: 30000 + # 校验超时时间 + validationTimeout: 5000 + # 空闲连接存活最大时间,默认10分钟 + idleTimeout: 600000 + # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟 + maxLifetime: 1800000 + # 多久检查一次连接的活性 + keepaliveTime: 30000 + +--- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉) +spring.data: + redis: + # 地址 + host: localhost + # 端口,默认为6379 + port: 6379 + # 数据库索引 + database: 0 + # redis 密码必须配置 +# password: ruoyi123 + # 连接超时时间 + timeout: 10s + # 是否开启ssl + ssl.enabled: false + +# redisson 配置 +redisson: + # redis key前缀 + keyPrefix: + # 线程池数量 + threads: 4 + # Netty线程池数量 + nettyThreads: 8 + # 单节点配置 + singleServerConfig: + # 客户端名称 + clientName: ${ruoyi.name} + # 最小空闲连接数 + connectionMinimumIdleSize: 8 + # 连接池大小 + connectionPoolSize: 32 + # 连接空闲超时,单位:毫秒 + idleConnectionTimeout: 10000 + # 命令等待超时,单位:毫秒 + timeout: 3000 + # 发布和订阅连接池大小 + subscriptionConnectionPoolSize: 50 + +--- # mail 邮件发送 +mail: + enabled: false + host: smtp.163.com + port: 465 + # 是否需要用户名密码验证 + auth: true + # 发送方,遵循RFC-822标准 + from: xxx@163.com + # 用户名(注意:如果使用foxmail邮箱,此处user为qq号) + user: xxx@163.com + # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助) + pass: xxxxxxxxxx + # 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。 + starttlsEnable: true + # 使用SSL安全连接 + sslEnable: true + # SMTP超时时长,单位毫秒,缺省值不超时 + timeout: 0 + # Socket连接超时值,单位毫秒,缺省值不超时 + connectionTimeout: 0 + +--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商 +# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用 +sms: + # 配置源类型用于标定配置来源(interface,yaml) + config-type: yaml + # 用于标定yml中的配置是否开启短信拦截,接口配置不受此限制 + restricted: true + # 短信拦截限制单手机号每分钟最大发送,只对开启了拦截的配置有效 + minute-max: 1 + # 短信拦截限制单手机号每日最大发送量,只对开启了拦截的配置有效 + account-max: 30 + # 以下配置来自于 org.dromara.sms4j.provider.config.BaseConfig类中 + blends: + # 唯一ID 用于发送短信寻找具体配置 随便定义别用中文即可 + # 可以同时存在两个相同厂商 例如: ali1 ali2 两个不同的阿里短信账号 也可用于区分租户 + config1: + # 框架定义的厂商名称标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 + supplier: alibaba + # 有些称为accessKey有些称之为apiKey,也有称为sdkKey或者appId。 + access-key-id: 您的accessKey + # 称为accessSecret有些称之为apiSecret + access-key-secret: 您的accessKeySecret + signature: 您的短信签名 + sdk-app-id: 您的sdkAppId + config2: + # 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 + supplier: tencent + access-key-id: 您的accessKey + access-key-secret: 您的accessKeySecret + signature: 您的短信签名 + sdk-app-id: 您的sdkAppId + + +--- # 三方授权 +justauth: + # 前端外网访问地址 + address: http://localhost:80 + type: + maxkey: + # maxkey 服务器地址 + # 注意 如下均配置均不需要修改 maxkey 已经内置好了数据 + server-url: http://sso.maxkey.top + client-id: 876892492581044224 + client-secret: x1Y5MTMwNzIwMjMxNTM4NDc3Mzche8 + redirect-uri: ${justauth.address}/social-callback?source=maxkey + topiam: + # topiam 服务器地址 + server-url: http://127.0.0.1:1989/api/v1/authorize/y0q************spq***********8ol + client-id: 449c4*********937************759 + client-secret: ac7***********1e0************28d + redirect-uri: ${justauth.address}/social-callback?source=topiam + scopes: [openid, email, phone, profile] + qq: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=qq + union-id: false + weibo: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=weibo + gitee: + client-id: 91436b7940090d09c72c7daf85b959cfd5f215d67eea73acbf61b6b590751a98 + client-secret: 02c6fcfd70342980cd8dd2f2c06c1a350645d76c754d7a264c4e125f9ba915ac + redirect-uri: ${justauth.address}/social-callback?source=gitee + dingtalk: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=dingtalk + baidu: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=baidu + csdn: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=csdn + coding: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=coding + coding-group-name: xx + oschina: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=oschina + alipay_wallet: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=alipay_wallet + alipay-public-key: MIIB**************DAQAB + wechat_open: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=wechat_open + wechat_mp: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=wechat_mp + wechat_enterprise: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=wechat_enterprise + agent-id: 1000002 + gitlab: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: ${justauth.address}/social-callback?source=gitlab + +iot: + baseurl: http://118.89.86.111:8080 + url: + scopeAttribute: /api/plugins/telemetry/{entityType}/{entityId}/values/attributes/{scope} + telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries + operate: /api/plugins/rpc/oneway/{deviceId} + device: /api/device/{deviceId} From 0a0a389b2fbd50106880c355719f903ee3293142 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Thu, 8 Aug 2024 11:06:30 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index f6682888b..e45f819d6 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -97,7 +97,7 @@ spring.data: # 数据库索引 database: 0 # redis 密码必须配置 -# password: ruoyi123 + password: ruoyi123 # 连接超时时间 timeout: 10s # 是否开启ssl From b070e0e61ad175332df52db4d626c1d00dfab6a2 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Thu, 8 Aug 2024 11:52:39 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/dromara/web/controller/AuthController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java index 75a25311f..e00ffbac6 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java @@ -190,7 +190,7 @@ public class AuthController { SysUserVo sysUserVo = userService.selectUserByUserName(user.getUsername()); EqUserConfigBo bo = new EqUserConfigBo(); bo.setUserId(sysUserVo.getUserId()); - bo.setLanguageType("zh-CN"); + bo.setLanguageType("zh_CN"); bo.setTimezoneType("1");//默认 UTC+08:00 bo.setTimeFormat("YYYY-MM-DD"); bo.setCreateBy(sysUserVo.getUserId()); From 26fe1d5010bddb54f8597746f6ae4b10ee1788c0 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Thu, 8 Aug 2024 18:02:39 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/EqShareController.java | 5 ++++ .../web/controller/app/EqHomeController.java | 30 +++++++++++++++++++ .../org/dromara/web/domain/bo/EqShareBo.java | 4 +-- .../dromara/web/service/IEqShareService.java | 7 +++++ .../web/service/impl/EqShareServiceImpl.java | 10 +++++++ 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/EqShareController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/EqShareController.java index 14307c98f..777418839 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/EqShareController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/EqShareController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.satoken.utils.LoginHelper; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -76,6 +77,10 @@ public class EqShareController extends BaseController { @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody EqShareBo bo) { + if (bo.getShareUserId() == null){ + bo.setShareUserId(LoginHelper.getUserId()); + bo.setShareUserName(LoginHelper.getUsername()); + } return toAjax(eqShareService.insertByBo(bo)); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index 8d75afd4a..9c125fc5c 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -1,9 +1,11 @@ package org.dromara.web.controller.app; import cn.dev33.satoken.secure.BCrypt; +import jakarta.validation.constraints.NotEmpty; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.validate.AddGroup; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; @@ -85,6 +87,32 @@ public class EqHomeController extends BaseController { return R.ok(eqShareVos); } + + /** + * 分享(添加家庭成员) + * @param bo + * @return + */ + @PostMapping("/share") + public R share(@Validated(AddGroup.class) @RequestBody EqShareBo bo) { + if (bo.getShareUserId() == null){ + bo.setShareUserId(LoginHelper.getUserId()); + bo.setShareUserName(LoginHelper.getUsername()); + } + return toAjax(eqShareService.insertByBo(bo)); + } + + /** + * 删除被分享的成员 + * @param sharedId + * @return + */ + @DeleteMapping("/{shareId}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String sharedId) { + return toAjax(eqShareService.deleteByShareId(sharedId)); + } + /** * 查询指定用户下分布列表 */ @@ -149,6 +177,8 @@ public class EqHomeController extends BaseController { } + private final IEqShareService eqShareService; + } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqShareBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqShareBo.java index 6b055a713..d5169a231 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqShareBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqShareBo.java @@ -29,13 +29,13 @@ public class EqShareBo extends BaseEntity { /** * 分享者ID */ - @NotNull(message = "分享者ID不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "分享者ID不能为空", groups = { EditGroup.class }) private Long shareUserId; /** * 分享者名称 */ - @NotBlank(message = "分享者名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "分享者名称不能为空", groups = { EditGroup.class }) private String shareUserName; /** diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqShareService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqShareService.java index 095ce24e1..1c141ec26 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqShareService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqShareService.java @@ -65,4 +65,11 @@ public interface IEqShareService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 删除家庭成员 + * @param sharedId + * @return + */ + Boolean deleteByShareId(String sharedId); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqShareServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqShareServiceImpl.java index ea6af7771..36a8757e7 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqShareServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqShareServiceImpl.java @@ -8,6 +8,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.springframework.stereotype.Service; import org.dromara.web.domain.bo.EqShareBo; import org.dromara.web.domain.vo.EqShareVo; @@ -129,4 +130,13 @@ public class EqShareServiceImpl implements IEqShareService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public Boolean deleteByShareId(String sharedId) { + Long userId = LoginHelper.getUserId(); + LambdaQueryWrapper query = Wrappers.lambdaQuery(); + query.eq(EqShare::getShareUserId, userId).eq(EqShare::getSharedUserId, sharedId); + int delete = baseMapper.delete(query); + return true; + } } From cf32e5e5ed14937a3b782259feea32492a9d29bb Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Thu, 8 Aug 2024 18:05:47 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/web/controller/app/EqHomeController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index 9c125fc5c..26d5a7ed2 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -107,7 +107,7 @@ public class EqHomeController extends BaseController { * @param sharedId * @return */ - @DeleteMapping("/{shareId}") + @DeleteMapping("/{sharedId}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable String sharedId) { return toAjax(eqShareService.deleteByShareId(sharedId)); From 39dc86655c7b11d7842ae12fc024dfa924d59cab Mon Sep 17 00:00:00 2001 From: zzc <1278921369@qq.com> Date: Fri, 9 Aug 2024 00:05:39 +0800 Subject: [PATCH 06/18] =?UTF-8?q?show=E8=AE=BE=E5=A4=87=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E5=BE=85=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../show/EqShowEquipmentController.java | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java new file mode 100644 index 000000000..4a1e2e292 --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java @@ -0,0 +1,105 @@ +package org.dromara.web.controller.show; + +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.web.domain.vo.EqEquipmentVo; +import org.dromara.web.domain.bo.EqEquipmentBo; +import org.dromara.web.service.IEqEquipmentService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 设备信息 + * + * @author zzc + * @date 2024-08-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/device/showEquipment") +public class EqShowEquipmentController extends BaseController { + + private final IEqEquipmentService eqEquipmentService; + + /** + * 查询设备信息列表 + */ + @SaCheckPermission("device:showEquipment:list") + @GetMapping("/list") + public TableDataInfo list(EqEquipmentBo bo, PageQuery pageQuery) { + return eqEquipmentService.queryPageList(bo, pageQuery); + } + + /** + * 导出设备信息列表 + */ + @SaCheckPermission("device:showEquipment:export") + @Log(title = "设备信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EqEquipmentBo bo, HttpServletResponse response) { + List list = eqEquipmentService.queryList(bo); + ExcelUtil.exportExcel(list, "设备信息", EqEquipmentVo.class, response); + } + + /** + * 获取设备信息详细信息 + * + * @param equipmentId 主键 + */ + @SaCheckPermission("device:showEquipment:query") + @GetMapping("/{equipmentId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long equipmentId) { + return R.ok(eqEquipmentService.queryById(equipmentId)); + } + + /** + * 新增设备信息 + */ + @SaCheckPermission("device:showEquipment:add") + @Log(title = "设备信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody EqEquipmentBo bo) { + return toAjax(eqEquipmentService.insertByBo(bo)); + } + + /** + * 修改设备信息 + */ + @SaCheckPermission("device:showEquipment:edit") + @Log(title = "设备信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody EqEquipmentBo bo) { + return toAjax(eqEquipmentService.updateByBo(bo)); + } + + /** + * 删除设备信息 + * + * @param equipmentIds 主键串 + */ + @SaCheckPermission("device:showEquipment:remove") + @Log(title = "设备信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{equipmentIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] equipmentIds) { + return toAjax(eqEquipmentService.deleteWithValidByIds(List.of(equipmentIds), true)); + } +} From 5ab83b6051caa9ec21b8a87c09c165e7fb240e83 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Mon, 12 Aug 2024 17:51:22 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/app/EqDeviceController.java | 20 +++++++++-- .../web/controller/app/EqHomeController.java | 35 +++++++------------ .../dromara/web/domain/bo/EqAppHomeBo.java | 2 +- .../service/impl/EqEquipmentServiceImpl.java | 1 + 4 files changed, 31 insertions(+), 27 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java index 50b1896b5..4847d56de 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java @@ -19,6 +19,7 @@ import org.dromara.web.domain.vo.*; import org.dromara.web.service.*; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -67,12 +68,25 @@ public class EqDeviceController extends BaseController { public R bindDevice(EqAppHomeBo bo){ String equipmentCode = bo.getEquipmentCode(); if (equipmentCode == null) throw new ServiceException("设备编码不能为空"); - if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空"); - if (bo.getAreaId() == null) throw new ServiceException("分布ID不能为空"); - + if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空");//分享用户要使用家庭主体的用户id return R.ok(eqEquipmentService.bindDevice(bo)); } + /** + * + * 删除设备 + * 传参设备id + */ + @DeleteMapping("/delete") + public R delete(EqAppHomeBo bo){ + if (bo.getEquipmentId() == null) throw new ServiceException("设备ID不能为空"); + Long userId = LoginHelper.getUserId(); + if (!userId.equals(bo.getUserId())){ + return R.fail("删除失败,设备不属于当前用户"); + } + return R.ok(eqEquipmentService.deleteWithValidByIds(Collections.singletonList(bo.getEquipmentId()),Boolean.FALSE)); + } + /** * 控制设备 门 灯光 控制 * 传参设备编码 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index 26d5a7ed2..5daa82fcd 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -95,16 +95,22 @@ public class EqHomeController extends BaseController { */ @PostMapping("/share") public R share(@Validated(AddGroup.class) @RequestBody EqShareBo bo) { + if (bo.getSharedUserName() == null){ + return R.fail("被分享者用户名不能为空"); + } + SysUserVo sysUserVo = userService.selectUserByUserName(bo.getSharedUserName()); if (bo.getShareUserId() == null){ bo.setShareUserId(LoginHelper.getUserId()); bo.setShareUserName(LoginHelper.getUsername()); } + bo.setSharedUserId(sysUserVo.getUserId()); + bo.setSharedUserName(sysUserVo.getUserName()); return toAjax(eqShareService.insertByBo(bo)); } /** * 删除被分享的成员 - * @param sharedId + * @param sharedId 被分享者用户id * @return */ @DeleteMapping("/{sharedId}") @@ -122,15 +128,16 @@ public class EqHomeController extends BaseController { return R.ok(eqAreaService.queryList(bo)); } - /** todo + /** * 首页查看设备列表 */ @GetMapping("/list") public TableDataInfo list(EqAppHomeBo bo, PageQuery pageQuery){ + //当前用户为家庭主体 切换用户后需要传输用户id if (bo.getUserId() == null) bo.setUserId(LoginHelper.getUserId()); //TODO 下面返回的状态 会在设备状态变化时更新设备状态 EqEquipmentBo eqEquipmentBo = new EqEquipmentBo(); - eqEquipmentBo.setCreateBy(bo.getUserId()); + eqEquipmentBo.setUserId(bo.getUserId()); return eqEquipmentService.queryPageList(eqEquipmentBo, pageQuery); //在设备表中增加了分布id } @@ -138,29 +145,11 @@ public class EqHomeController extends BaseController { * 设备详情 (暂时无用) * 传参 设备id */ - @GetMapping("/info") + /*@GetMapping("/info") public R info(EqAppHomeBo bo){ if (bo.getEquipmentId() == null) throw new ServiceException("设备ID不能为空"); return R.ok(eqEquipmentService.queryById(bo.getEquipmentId())); - } - - - - /** - * - * 删除设备 - * 传参设备id - */ - @GetMapping("/delete") - public R delete(EqAppHomeBo bo){ - if (bo.getEquipmentId() == null) throw new ServiceException("设备ID不能为空"); - Long userId = LoginHelper.getUserId(); - if (!userId.equals(bo.getUserId())){ - return R.fail("删除失败,设备不属于当前用户"); - } - return R.ok(eqEquipmentService.deleteWithValidByIds(Collections.singletonList(bo.getEquipmentId()),Boolean.FALSE)); - } - + }*/ /** * 密码验证 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java index 5f2410cae..ce87cdecb 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java @@ -12,7 +12,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; @Data public class EqAppHomeBo extends BaseEntity{ /** - * 选取用户ID(家庭主体ID) + * 选取用户ID(家庭主体ID) 当前登录用户非家庭主体用户时,该字段必传 */ private Long userId; /** diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index 5eae62410..aa5ba5ae1 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -89,6 +89,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getAreaId() != null, EqEquipment::getAreaId, bo.getAreaId()); + lqw.eq(bo.getUserId() != null, EqEquipment::getUserId, bo.getUserId()); lqw.eq(bo.getType() != null, EqEquipment::getType, bo.getType()); lqw.like(StringUtils.isNotBlank(bo.getUserName()), EqEquipment::getUserName, bo.getUserName()); lqw.like(StringUtils.isNotBlank(bo.getNickName()), EqEquipment::getNickName, bo.getNickName()); From 94878f7c7f162a258797d7c154526d4ee7b5f3b6 Mon Sep 17 00:00:00 2001 From: zzc <1278921369@qq.com> Date: Tue, 13 Aug 2024 01:11:01 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/app/EqHomeController.java | 10 ++++++++-- .../org/dromara/web/domain/bo/EqDeviceSetBo.java | 15 +++++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index 5daa82fcd..be761dcb6 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -94,17 +94,23 @@ public class EqHomeController extends BaseController { * @return */ @PostMapping("/share") - public R share(@Validated(AddGroup.class) @RequestBody EqShareBo bo) { + public R share( @RequestBody EqShareBo bo) { if (bo.getSharedUserName() == null){ return R.fail("被分享者用户名不能为空"); } SysUserVo sysUserVo = userService.selectUserByUserName(bo.getSharedUserName()); + if (sysUserVo==null) throw new RuntimeException("被分享者用户名不存在"); + if (bo.getShareUserId() == null){ bo.setShareUserId(LoginHelper.getUserId()); - bo.setShareUserName(LoginHelper.getUsername()); + String currentUserName = LoginHelper.getUsername(); + if (currentUserName.equals(bo.getSharedUserName())) throw new RuntimeException("不能分享给自己"); + bo.setShareUserName(currentUserName); } bo.setSharedUserId(sysUserVo.getUserId()); bo.setSharedUserName(sysUserVo.getUserName()); + List eqShareVos = eqShareService.queryList(bo); + if (!eqShareVos.isEmpty()) throw new RuntimeException("该成员已被分享"); return toAjax(eqShareService.insertByBo(bo)); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqDeviceSetBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqDeviceSetBo.java index 9a5d5ef8a..545534aee 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqDeviceSetBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqDeviceSetBo.java @@ -29,13 +29,13 @@ public class EqDeviceSetBo implements Serializable { */ private String equipmentCode; /** - * 1. 自动关门功能开关 - * 2. 自动关门功能开关 - * 3. 延时自动关门的延时时长 value - * 4. 运行次数开关 - * 5. 运行次数开关 - * 6. 倒计时设置时间 value - * 7. 提醒关门时间设置 value + * 1.自动关门功能开关 + * 2.自动关门功能开关 + * 3.延时自动关门的延时时长 value + * 4.运行次数开关 + * 5.运行次数开关 + * 6.倒计时设置时间 value + * 7.提醒关门时间设置 value * 8.提醒关门功能开关 * 9.提醒关门功能开关 * 10.半开门高度设置 value @@ -44,7 +44,6 @@ public class EqDeviceSetBo implements Serializable { * 13.遇阻回弹的阻力设置 value * 14.红外感应开关开启 * 15.红外感应开关关闭 - * */ private int operateType; From 4f4692eb7ac61e8e8a14a122dc2e56924aaaacf0 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Tue, 13 Aug 2024 11:15:32 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/web/controller/app/EqDeviceController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java index 4847d56de..525f6042e 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java @@ -198,6 +198,8 @@ public class EqDeviceController extends BaseController { //更新开合度状态到设备 eqEquipmentBo.setStatus(eqEquipmentLogBo.getOpenStatus()); + eqEquipmentBo.setFaultStatus(eqEquipmentBo.getFaultStatus()); + eqEquipmentBo.setLineStatus(eqEquipmentBo.getLineStatus()); eqEquipmentService.updateByBo(eqEquipmentBo); } From 8711c51a909bb4b937d5e5c30474eb3d2db6a8f3 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Tue, 13 Aug 2024 15:27:25 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/app/EqHomeController.java | 8 +++++++- .../java/org/dromara/web/domain/EqEquipment.java | 4 ++++ .../org/dromara/web/domain/bo/EqEquipmentBo.java | 6 +++++- .../org/dromara/web/domain/vo/EqEquipmentVo.java | 8 +++++++- .../dromara/web/service/IEqEquipmentService.java | 12 ++++++++++++ .../web/service/impl/EqEquipmentServiceImpl.java | 15 +++++++++++---- 6 files changed, 46 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index be761dcb6..3bd634a5c 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -137,7 +137,7 @@ public class EqHomeController extends BaseController { /** * 首页查看设备列表 */ - @GetMapping("/list") + @PostMapping("/list") public TableDataInfo list(EqAppHomeBo bo, PageQuery pageQuery){ //当前用户为家庭主体 切换用户后需要传输用户id if (bo.getUserId() == null) bo.setUserId(LoginHelper.getUserId()); @@ -147,6 +147,12 @@ public class EqHomeController extends BaseController { return eqEquipmentService.queryPageList(eqEquipmentBo, pageQuery); //在设备表中增加了分布id } + + @PutMapping("/orderList") + public R list(@RequestBody List bos){ + return toAjax(eqEquipmentService.updateByBos(bos)); + } + /** * 设备详情 (暂时无用) * 传参 设备id diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java index 650ae7171..6642f2db0 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java @@ -92,5 +92,9 @@ public class EqEquipment extends BaseEntity { */ private Long operationCount; + /** + * 排序 + */ + private Integer order; } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java index cb88377d1..3782fd8ea 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java @@ -97,5 +97,9 @@ public class EqEquipmentBo extends BaseEntity { @NotNull(message = "操作次数不能为空", groups = { AddGroup.class, EditGroup.class }) private Long operationCount; - + /** + * 排序 + */ + @NotNull(message = "排序", groups = { AddGroup.class, EditGroup.class }) + private Integer order; } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java index e1f0885db..4653d016a 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java @@ -80,7 +80,7 @@ public class EqEquipmentVo implements Serializable { private String equipmentName; /** - * 设备状态 + * 开合度状态 0 10 20 30 40 50 60 70 80 90 100 */ @ExcelProperty(value = "设备状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "eq_status_type") @@ -112,5 +112,11 @@ public class EqEquipmentVo implements Serializable { @ExcelProperty(value = "操作次数") private Long operationCount; + /** + * 排序 + */ + @ExcelProperty(value = "排序") + private Integer order; + } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java index b894e8e5a..182d17cb5 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java @@ -82,5 +82,17 @@ public interface IEqEquipmentService { */ EqEquipmentDetailVo getDeviceMsg(EqAppHomeBo bo); + /** + * 绑定设备 + * @param bo + * @return + */ Boolean bindDevice(EqAppHomeBo bo); + + /** + * 批量更新 + * @param bos + * @return + */ + boolean updateByBos(List bos); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index aa5ba5ae1..94ef440cd 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -27,10 +27,7 @@ import org.dromara.web.domain.EqEquipment; import org.dromara.web.mapper.EqEquipmentMapper; import org.dromara.web.service.IEqEquipmentService; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 设备信息Service业务层处理 @@ -98,6 +95,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { lqw.eq(bo.getStatus() != null, EqEquipment::getStatus, bo.getStatus()); lqw.eq(bo.getFaultStatus() != null, EqEquipment::getFaultStatus, bo.getFaultStatus()); lqw.eq(bo.getLineStatus() != null, EqEquipment::getLineStatus, bo.getLineStatus()); + lqw.orderBy(true, true,EqEquipment::getOrder); return lqw; } @@ -270,6 +268,15 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { return true; } + @Override + public boolean updateByBos(List bos) { + List eqEquipments = new ArrayList<>(); + for (EqAppHomeBo bo : bos) { + EqEquipment update = MapstructUtils.convert(bo, EqEquipment.class); + eqEquipments.add(update); + } + return baseMapper.updateBatchById(eqEquipments); + } } From e60614d2f382adad3ed41b4177735c85a8cb8957 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Tue, 13 Aug 2024 18:17:07 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/web/controller/app/EqDeviceController.java | 2 +- .../org/dromara/web/controller/app/EqHomeController.java | 5 +++++ .../src/main/java/org/dromara/web/domain/EqEquipment.java | 2 +- .../main/java/org/dromara/web/domain/bo/EqEquipmentBo.java | 2 +- .../main/java/org/dromara/web/domain/vo/EqEquipmentVo.java | 2 +- .../org/dromara/web/service/impl/EqEquipmentServiceImpl.java | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java index 525f6042e..fdb9915ef 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java @@ -59,7 +59,7 @@ public class EqDeviceController extends BaseController { - /** todo + /** * 添加设备 * @param bo 传参用户id 分布id 设备编码 * @return diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index 3bd634a5c..20c2cdd96 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -148,6 +148,11 @@ public class EqHomeController extends BaseController { } + /** + * 设备重排 + * @param bos + * @return + */ @PutMapping("/orderList") public R list(@RequestBody List bos){ return toAjax(eqEquipmentService.updateByBos(bos)); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java index 6642f2db0..b9e73dfe1 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java @@ -95,6 +95,6 @@ public class EqEquipment extends BaseEntity { /** * 排序 */ - private Integer order; + private Integer orderNum; } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java index 3782fd8ea..e0c6472c6 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java @@ -101,5 +101,5 @@ public class EqEquipmentBo extends BaseEntity { * 排序 */ @NotNull(message = "排序", groups = { AddGroup.class, EditGroup.class }) - private Integer order; + private Integer orderNum; } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java index 4653d016a..c3b8aae29 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java @@ -116,7 +116,7 @@ public class EqEquipmentVo implements Serializable { * 排序 */ @ExcelProperty(value = "排序") - private Integer order; + private Integer orderNum; } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index 94ef440cd..a546070c8 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -95,7 +95,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { lqw.eq(bo.getStatus() != null, EqEquipment::getStatus, bo.getStatus()); lqw.eq(bo.getFaultStatus() != null, EqEquipment::getFaultStatus, bo.getFaultStatus()); lqw.eq(bo.getLineStatus() != null, EqEquipment::getLineStatus, bo.getLineStatus()); - lqw.orderBy(true, true,EqEquipment::getOrder); + lqw.orderBy(true, true,EqEquipment::getOrderNum); return lqw; } From 0510a11e0bfba7d0331396f1f19bb282aca99c63 Mon Sep 17 00:00:00 2001 From: zzc <1278921369@qq.com> Date: Tue, 13 Aug 2024 23:42:53 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../show/EqUserEquipmentController.java | 39 +++++++++++++ .../dromara/web/domain/EqUserEquipment.java | 55 ++++++++++++++++++ .../web/domain/bo/EqUserEquipmentBo.java | 23 ++++++++ .../web/domain/vo/EqUserEquipmentVo.java | 56 +++++++++++++++++++ .../dromara/web/mapper/EqEquipmentMapper.java | 6 ++ .../web/service/IEqEquipmentService.java | 9 +-- .../service/impl/EqEquipmentServiceImpl.java | 15 +++-- .../mapper/device/EqEquipmentMapper.xml | 17 ++++++ 8 files changed, 212 insertions(+), 8 deletions(-) create mode 100644 ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java create mode 100644 ruoyi-admin/src/main/java/org/dromara/web/domain/EqUserEquipment.java create mode 100644 ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqUserEquipmentBo.java create mode 100644 ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java new file mode 100644 index 000000000..bf522ea6f --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java @@ -0,0 +1,39 @@ +package org.dromara.web.controller.show; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.web.service.IEqEquipmentService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.web.domain.vo.EqUserEquipmentVo; +import org.dromara.web.domain.bo.EqUserEquipmentBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 设备信息 + * + * @author zzc + * @date 2024-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/device/userEquipment") +public class EqUserEquipmentController extends BaseController { + + private final IEqEquipmentService eqEquipmentService; + + /** + * 查询设备信息列表 + */ + @SaCheckPermission("device:userEquipment:list") + @GetMapping("/list") + public IPage list(EqUserEquipmentBo bo, PageQuery pageQuery) { + return eqEquipmentService.queryEqUserEquipment(bo, pageQuery); + } + + +} diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/EqUserEquipment.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqUserEquipment.java new file mode 100644 index 000000000..0adcd4ba9 --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqUserEquipment.java @@ -0,0 +1,55 @@ +package org.dromara.web.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 设备信息对象 eq_user_equipment + * + * @author zzc + * @date 2024-08-13 + */ +@Data +public class EqUserEquipment implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户id + */ + private Long userId; + + /** + * 客户名称 + */ + private String nickName; + + /** + * 绑定账号 + */ + private String userName; + + /** + * 绑定设备(个) + */ + @TableId(value = "bind_num") + private Integer bindNum; + + /** + * 在线设备(个) + */ + private Integer onlineNum; + + /** + * 离线设备(个) + */ + private Integer offlineNum; + + +} diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqUserEquipmentBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqUserEquipmentBo.java new file mode 100644 index 000000000..9c47e378e --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqUserEquipmentBo.java @@ -0,0 +1,23 @@ +package org.dromara.web.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 设备信息业务对象 eq_user_equipment + * + * @author zzc + * @date 2024-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class EqUserEquipmentBo extends BaseEntity { + + /** + * 客户名称 + */ + private String nickName; + + +} diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java new file mode 100644 index 000000000..65b3ac6cc --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java @@ -0,0 +1,56 @@ +package org.dromara.web.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + +/** + * 设备信息视图对象 eq_user_equipment + * + * @author zzc + * @date 2024-08-13 + */ +@Data +@ExcelIgnoreUnannotated +public class EqUserEquipmentVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 客户名称 + */ + @ExcelProperty(value = "客户名称") + private String nickName; + + /** + * 绑定账号 + */ + @ExcelProperty(value = "绑定账号") + private String userName; + + /** + * 绑定设备(个) + */ + @ExcelProperty(value = "绑定设备(个)") + private Integer bindNum; + + /** + * 在线设备(个) + */ + @ExcelProperty(value = "在线设备(个)") + private Integer onlineNum; + + /** + * 离线设备(个) + */ + @ExcelProperty(value = "离线设备(个)") + private Integer offlineNum; + + +} diff --git a/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java b/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java index 74f07b6cc..f2fedc1e7 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java @@ -1,8 +1,13 @@ package org.dromara.web.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.dromara.web.domain.EqEquipment; import org.dromara.web.domain.vo.EqEquipmentVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.web.domain.vo.EqUserEquipmentVo; + +import java.util.List; /** * 设备信息Mapper接口 @@ -12,4 +17,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface EqEquipmentMapper extends BaseMapperPlus { + IPage selectEquipmentVoPage(Page page, String nickName); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java index 182d17cb5..176018073 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java @@ -1,14 +1,13 @@ package org.dromara.web.service; -import org.dromara.web.domain.bo.EqAppHomeBo; -import org.dromara.web.domain.bo.EqDeviceCmdBo; -import org.dromara.web.domain.bo.EqDeviceSetBo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.dromara.web.domain.bo.*; import org.dromara.web.domain.vo.EqEquipmentDetailVo; import org.dromara.web.domain.vo.EqEquipmentStatusVo; import org.dromara.web.domain.vo.EqEquipmentVo; -import org.dromara.web.domain.bo.EqEquipmentBo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.web.domain.vo.EqUserEquipmentVo; import java.util.Collection; import java.util.List; @@ -95,4 +94,6 @@ public interface IEqEquipmentService { * @return */ boolean updateByBos(List bos); + + IPage queryEqUserEquipment(EqUserEquipmentBo bo, PageQuery pageQuery); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index a546070c8..a7ee9ded5 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.web.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MessageUtils; import org.dromara.common.core.utils.StringUtils; @@ -15,13 +17,11 @@ import org.dromara.web.device.*; import org.dromara.web.device.iot.DeviceDto; import org.dromara.web.device.iot.DeviceMsgDto; import org.dromara.web.device.iot.DeviceServerMsgDto; -import org.dromara.web.domain.bo.EqAppHomeBo; -import org.dromara.web.domain.bo.EqDeviceCmdBo; -import org.dromara.web.domain.bo.EqDeviceSetBo; +import org.dromara.web.domain.bo.*; import org.dromara.web.domain.vo.EqEquipmentDetailVo; +import org.dromara.web.domain.vo.EqUserEquipmentVo; import org.dromara.web.service.IotService; import org.springframework.stereotype.Service; -import org.dromara.web.domain.bo.EqEquipmentBo; import org.dromara.web.domain.vo.EqEquipmentVo; import org.dromara.web.domain.EqEquipment; import org.dromara.web.mapper.EqEquipmentMapper; @@ -277,6 +277,13 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { } return baseMapper.updateBatchById(eqEquipments); } + @Override + public IPage queryEqUserEquipment(EqUserEquipmentBo bo, PageQuery pageQuery) { + Page page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); + // 调用Mapper中的新方法 + IPage voPage = baseMapper.selectEquipmentVoPage(page, bo.getNickName()); + return voPage; + } } diff --git a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml index f907d9c10..20b78b780 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml @@ -4,4 +4,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + From f32ab7d93375f103a2fc96747d6627237f2b0b64 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Wed, 14 Aug 2024 10:40:19 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/dromara/web/domain/bo/EqAppHomeBo.java | 5 +++++ .../dromara/web/service/impl/EqEquipmentServiceImpl.java | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java index ce87cdecb..a1cae6b47 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqAppHomeBo.java @@ -41,5 +41,10 @@ public class EqAppHomeBo extends BaseEntity{ * 时区zoneId 用于日志 (传入字典eq_timezone_type 中的remark值 如:UTC+08:00) */ private String zoneId; + + /** + * 排序 + */ + private Integer orderNum; } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index a7ee9ded5..2a9d041e7 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -272,8 +272,10 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { public boolean updateByBos(List bos) { List eqEquipments = new ArrayList<>(); for (EqAppHomeBo bo : bos) { - EqEquipment update = MapstructUtils.convert(bo, EqEquipment.class); - eqEquipments.add(update); + EqEquipment eqEquipment = new EqEquipment(); + eqEquipment.setEquipmentId(bo.getEquipmentId()); + eqEquipment.setOrderNum(bo.getOrderNum()); + eqEquipments.add(eqEquipment); } return baseMapper.updateBatchById(eqEquipments); } From 9291fb145ec9aa90ae7920257e43efbd46780e9d Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Wed, 14 Aug 2024 14:43:59 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../show/EqUserEquipmentController.java | 28 ++++++++++++++++--- .../web/domain/vo/EqUserEquipmentVo.java | 7 +++++ .../mapper/device/EqEquipmentMapper.xml | 1 + 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java index bf522ea6f..49c269b73 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqUserEquipmentController.java @@ -3,6 +3,9 @@ package org.dromara.web.controller.show; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.RequiredArgsConstructor; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.web.domain.bo.EqAppHomeBo; import org.dromara.web.service.IEqEquipmentService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -21,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/device/userEquipment") +@RequestMapping("/device/showUser") public class EqUserEquipmentController extends BaseController { private final IEqEquipmentService eqEquipmentService; @@ -29,10 +32,27 @@ public class EqUserEquipmentController extends BaseController { /** * 查询设备信息列表 */ - @SaCheckPermission("device:userEquipment:list") @GetMapping("/list") - public IPage list(EqUserEquipmentBo bo, PageQuery pageQuery) { - return eqEquipmentService.queryEqUserEquipment(bo, pageQuery); + public TableDataInfo list(EqUserEquipmentBo bo, PageQuery pageQuery) { + IPage page = eqEquipmentService.queryEqUserEquipment(bo, pageQuery); + TableDataInfo result = new TableDataInfo<>(); + result.setTotal(page.getTotal()); + result.setRows(page.getRecords()); + result.setCode(200); + return result; + } + + /** + * 添加设备 + * @param bo 传参用户id 分布id 设备编码 + * @return + */ + @PostMapping("/bindDevice") + public R bindDevice(@RequestBody EqAppHomeBo bo){ + String equipmentCode = bo.getEquipmentCode(); + if (equipmentCode == null) throw new ServiceException("设备编码不能为空"); + if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空");//分享用户要使用家庭主体的用户id + return R.ok(eqEquipmentService.bindDevice(bo)); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java index 65b3ac6cc..f06531828 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java @@ -22,6 +22,13 @@ public class EqUserEquipmentVo implements Serializable { @Serial private static final long serialVersionUID = 1L; + + /** + * 用户名称 + */ + @ExcelProperty(value = "用户名称") + private String userId; + /** * 客户名称 */ diff --git a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml index 20b78b780..f07a0e49f 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml @@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"