Commit 75984da1 by huangjy

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	server-service/src/main/java/com/makeit/service/platform/space/impl/PlatBedServiceImpl.java
parents 664eaf1e db94af57
Showing with 1486 additions and 717 deletions
#旷时IOT项目 旷时IOT项目
技术选型
## 技术选型 后端
框架:springboot2以上 、mybatis-plus
###后端 数据库:mysql5.7, ES6.8.1
中间件:nginx 、redis5.7、RabbitMQ、MQTT
#####框架:springboot2以上 、mybatis-plus IOT框架:jetlinks
#####数据库:mysql5.7, ES6.8.1
##### 中间件:nginx 、redis5.7、RabbitMQ、MQTT
IOT框架:jetlinks
前端: 前端:
后台:vue3
#####后台:vue3 手机端:uniapp,写成小程序
子女端:子女端需要支持APP(不上架内部使用)
#####手机端:uniapp(不上架内部使用)
需要对接硬件:
##### 子女端:子女端需要支持APP 1、呼吸雷达
2、空间雷达
#### 需要对接硬件: 3、跌倒雷达
#####1、呼吸雷达 重要技术点:
1、睡眠模型、呼吸模型、心率模型
#####2、空间雷达: 2、设备接入MQTT
3、空间点位换算
### 重要技术点: 4、设备数据存储采用 ES
5、业务数据库用mysql
##### 1、睡眠模型、呼吸模型、心率模型 6、搭建RabbitMQ中间件,定义数据上报标准
##### 2、设备接入MQTT 注意事项:
子女端: 子女端支持APP
##### 3、空间点位换算 业务端获取设备数据: 通过调用iot端接口
地图:地图使用高德地图
##### 4、设备数据存储采用 ES
项目规范:
##### 5、业务数据库用mysql 后端:
1、项目按模块化开发:SASS端,子女小程序端,平台端,平台端小程序
##### 6、搭建RabbitMQ中间件,定义数据上报标准 2、模块部署:各个模块可以自己单独部署,模块中引用其他模块的,可单独出一个模块,写成公用的模块去引用,需要各自在公共去写自己引用的或者自己与其他开发进行协商。
3、路径命名:/模块名/controller名/方法名
## 注意事项: 4、文件采用统一表存储,其余业务表直接记录文件表ID
5、手机端接口单独出来写,与后台公用服务层,路径开头全部/app/模块名/controller名/方法名。
##### 子女端: 子女端支持APP 6、后端权限code: 模块名.controller名.方法名;
7、后端统一拦截登录,权限,去参数前后空格;
地图:地图使用高德地图 8、项目所有的请求采用POST请求
9、所有参数的入参和出参使用 DTO 和VO (简单表可使用entity返回)
##项目规范: 10、接口文档采用swagger
11、项目代码中不允许写SQL语句,sql语句放在相应的 .xml 文件中
###后端: 12、所有接口请求都必须经过签名校验
13、所有分页的入参和出参使用统一的工具类PageReqDTO 和 PageVO
#####1、项目按模块化开发:SASS端,子女小程序端,平台端,平台端小程序 14、所有异常的返回统一继承 common 中的 BusinessException
15、参数校验采用 @Validated
#####2、模块部署:各个模块可以自己单独部署,模块中引用其他模块的,可单独出一个模块,写成公用的模块去引用,需要各自在公共去写自己引用的或者自己与其他开发进行协商。 16、采用软删除,delFlag 0-未删除 1-删除
17、所有表全部加字段:租户ID, 创建时间,更新时间,创建人,更新人,删除标识
##### 3、路径命名:/模块名/controller名/方法名 18、不允许在项目中写循环读取数据库。
19、租户ID全局获取,不用每个接口都传输,租户ID统一放在请求头部 head。
#####4、文件采用统一表存储,其余业务表直接记录文件表ID 20、所有的常量采用枚举的方式,写在同一的一份文件里面
21、所有的包按照大模块,大模块里面在划分小模块
##### 5、手机端接口单独出来写,与后台公用服务层,路径开头全部/app/模块名/controller名/方法名。 22、调用第三方接口的HTPP,统一使用项目中的工具类
23、字符串转JSON,统一使用项目中的工具类
#####6、后端权限code: 模块名.controller名.方法名; 24、代码要用阿里巴巴的规范扫描一下,不能出现严重和中级的问题
#####7、后端统一拦截登录,权限,去参数前后空格;
#####8、项目所有的请求采用POST请求
#####9、所有参数的入参和出参使用 DTO 和VO (简单表可使用entity返回)
#####10、接口文档采用swagger
#####11、项目代码中不允许写SQL语句,sql语句放在相应的 .xml 文件中
#####12、所有接口请求都必须经过签名校验
#####13、所有分页的入参和出参使用统一的工具类PageReqDTO 和 PageVO
#####14、所有异常的返回统一继承 common 中的 BusinessException
##### 15、参数校验采用 @Validated
##### 16、采用软删除,delFlag 0-未删除 1-删除
##### 17、所有表全部加字段:租户ID, 创建时间,更新时间,创建人,更新人,删除标识
##### 18、不允许在项目中写循环读取数据库。
##### 19、租户ID全局获取,不用每个接口都传输,租户ID统一放在请求头部 head。
##### 20、所有的常量采用枚举的方式,写在同一的一份文件里面
##### 21、所有的包按照大模块,大模块里面在划分小模块
##### 22、调用第三方接口的HTPP,统一使用项目中的工具类
##### 23、字符串转JSON,统一使用项目中的工具类
##### 24、代码要用阿里巴巴的规范扫描一下,不能出现严重和中级的问题
......
...@@ -103,8 +103,9 @@ CREATE TABLE `plat_menu` ( ...@@ -103,8 +103,9 @@ CREATE TABLE `plat_menu` (
`del_flag` char(1) DEFAULT NULL COMMENT '删除标识', `del_flag` char(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人', `create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人', `update_by` varchar(64) NOT NULL COMMENT '更新人',
`page_type` varchar(4) DEFAULT NULL COMMENT '页面类别', `page_type` varchar(20) DEFAULT NULL COMMENT '页面类别',
`page_query` varchar(512) DEFAULT NULL COMMENT '跳转参数', `page_query` varchar(512) DEFAULT NULL COMMENT '跳转参数',
`code` varchar(255) DEFAULT NULL COMMENT '页面标识',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户端资源管理'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户端资源管理';
......
...@@ -64,7 +64,7 @@ CREATE TABLE `plat_bed` ...@@ -64,7 +64,7 @@ CREATE TABLE `plat_bed`
`name` varchar(128) NOT NULL COMMENT '床位名称 床位1,床位2', `name` varchar(128) NOT NULL COMMENT '床位名称 床位1,床位2',
`room_id` varchar(64) NOT NULL COMMENT '房间id', `room_id` varchar(64) NOT NULL COMMENT '房间id',
`bed_id` varchar(64) NOT NULL COMMENT '空间id', `bed_id` varchar(64) NOT NULL COMMENT '空间id',
`equipment_id` varchar(64) DEFAULT NULL COMMENT '设备id', `device_id` varchar(64) DEFAULT NULL COMMENT '设备id',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间', `create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
...@@ -80,31 +80,14 @@ CREATE TABLE `plat_bed` ...@@ -80,31 +80,14 @@ CREATE TABLE `plat_bed`
CREATE TABLE `plat_region_setting` CREATE TABLE `plat_region_setting`
( (
`id` varchar(64) NOT NULL COMMENT 'id',
`name` varchar(128) NOT NULL COMMENT '区域名称',
`room_id` varchar(64) NOT NULL COMMENT '房间id',
`range_map` varchar(1024) NOT NULL COMMENT '区域地图 json',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` int(1) DEFAULT '0' COMMENT '删除标记',
`tenant_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域设置';
CREATE TABLE `plat_region_setting_location`
(
`id` varchar(64) NOT NULL COMMENT 'id', `id` varchar(64) NOT NULL COMMENT 'id',
`region_setting_id` varchar(64) NOT NULL COMMENT '区域设置Id',
`install_type` char(1) NOT NULL COMMENT '安装方式 0-顶装 1-侧装', `install_type` char(1) NOT NULL COMMENT '安装方式 0-顶装 1-侧装',
`toward` char(1) NOT NULL COMMENT '设备朝向 0-上 1-下 2-左 3-右', `toward` char(1) NOT NULL COMMENT '设备朝向 0-上 1-下 2-左 3-右',
`region_name` varchar(64) DEFAULT NULL COMMENT '区域名称', `region_name` varchar(64) DEFAULT NULL COMMENT '区域名称',
`region_range` varchar(128) DEFAULT NULL COMMENT '区域定位', `region_range` varchar(128) DEFAULT NULL COMMENT '区域定位',
`room_range` varchar(128) DEFAULT NULL COMMENT '房间门定位', `room_range` varchar(128) DEFAULT NULL COMMENT '房间门定位',
`equipment_range` varchar(128) DEFAULT NULL COMMENT '设备定位', `equipment_range` varchar(128) DEFAULT NULL COMMENT '设备定位',
`equipment_id` varchar(64) DEFAULT NULL COMMENT '设备Id', `device_id` varchar(64) DEFAULT NULL COMMENT '设备Id',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间', `create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
...@@ -112,4 +95,4 @@ CREATE TABLE `plat_region_setting_location` ...@@ -112,4 +95,4 @@ CREATE TABLE `plat_region_setting_location`
`del_flag` int(1) DEFAULT '0' COMMENT '删除标记', `del_flag` int(1) DEFAULT '0' COMMENT '删除标记',
`tenant_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 租户id ', `tenant_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域设置定位'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域设置';
...@@ -64,9 +64,9 @@ public class SaasMenuController { ...@@ -64,9 +64,9 @@ public class SaasMenuController {
@Action(module = "saas端-菜单", name = "新增", code = "plat:menu:add") @Action(module = "saas端-菜单", name = "新增", code = "plat:menu:add")
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("add") @PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasMenuDTOVO dto) { public ApiResponseEntity<String> add(@Validated @RequestBody SaasMenuDTOVO dto) {
platMenuService.add(dto); String id = platMenuService.add(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success(id);
} }
@Action(module = "saas端-菜单", name = "编辑", code = "plat:menu:edit") @Action(module = "saas端-菜单", name = "编辑", code = "plat:menu:edit")
......
...@@ -65,9 +65,9 @@ public class SaasPlatMenuController { ...@@ -65,9 +65,9 @@ public class SaasPlatMenuController {
@Action(module = "saas端-租户资源管理(菜单)", name = "新增", code = "saas:plat:menu:add") @Action(module = "saas端-租户资源管理(菜单)", name = "新增", code = "saas:plat:menu:add")
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("add") @PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody PlatMenuDTOVO dto){ public ApiResponseEntity<String> add(@Validated @RequestBody PlatMenuDTOVO dto){
platMenuService.add(dto); String add = platMenuService.add(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success(add);
} }
@Action(module = "saas端-租户资源管理(菜单)", name = "编辑", code = "saas:plat:menu:edit") @Action(module = "saas端-租户资源管理(菜单)", name = "编辑", code = "saas:plat:menu:edit")
......
...@@ -68,9 +68,9 @@ public class SaasPlatUserController { ...@@ -68,9 +68,9 @@ public class SaasPlatUserController {
@Action(module = "saas端-租户账号", name = "新增", code = "saas.plat.user.add") @Action(module = "saas端-租户账号", name = "新增", code = "saas.plat.user.add")
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("add") @PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody PlatUserDTOVO dto){ public ApiResponseEntity<String> add(@Validated @RequestBody PlatUserDTOVO dto){
platUserService.add(dto); String add = platUserService.add(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success(add);
} }
@Action(module = "saas端-租户账号", name = "编辑", code = "saas.plat.user.edit") @Action(module = "saas端-租户账号", name = "编辑", code = "saas.plat.user.edit")
......
...@@ -33,9 +33,9 @@ public class SaasPrivacyConfigController { ...@@ -33,9 +33,9 @@ public class SaasPrivacyConfigController {
//@PlatOperationLogger //@PlatOperationLogger
@ApiOperation(value = "新增隐私政策-关于我们", notes = "") @ApiOperation(value = "新增隐私政策-关于我们", notes = "")
@PostMapping("/add") @PostMapping("/add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasPrivacyConfigDTO saasPrivacyConfigDTO){ public ApiResponseEntity<String> add(@Validated @RequestBody SaasPrivacyConfigDTO saasPrivacyConfigDTO){
saasPrivacyConfigService.add(saasPrivacyConfigDTO); String add = saasPrivacyConfigService.add(saasPrivacyConfigDTO);
return ApiResponseUtils.success(); return ApiResponseUtils.success(add);
} }
@Action(module = "saas端-隐私政策-关于我们", name = "详情", code = "saas.sys.privacyConfig.view") @Action(module = "saas端-隐私政策-关于我们", name = "详情", code = "saas.sys.privacyConfig.view")
......
...@@ -63,9 +63,9 @@ public class SaasRoleController { ...@@ -63,9 +63,9 @@ public class SaasRoleController {
@Action(module = "saas端-角色", name = "新增", code = "saas:role:add") @Action(module = "saas端-角色", name = "新增", code = "saas:role:add")
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("add") @PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasRoleDTOVO dto){ public ApiResponseEntity<String> add(@Validated @RequestBody SaasRoleDTOVO dto){
saasRoleService.add(dto); String add = saasRoleService.add(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success(add);
} }
@Action(module = "saas端-角色", name = "编辑", code = "saas:role:edit") @Action(module = "saas端-角色", name = "编辑", code = "saas:role:edit")
......
...@@ -74,9 +74,9 @@ public class SaasUserController { ...@@ -74,9 +74,9 @@ public class SaasUserController {
@Action(module = "saas端-用户", name = "新增", code = "saas:user:add") @Action(module = "saas端-用户", name = "新增", code = "saas:user:add")
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("add") @PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasUserDTOVO dto){ public ApiResponseEntity<String> add(@Validated @RequestBody SaasUserDTOVO dto){
saasUserService.add(dto); String add = saasUserService.add(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success(add);
} }
@Action(module = "saas端-用户", name = "编辑", code = "saas:user:edit") @Action(module = "saas端-用户", name = "编辑", code = "saas:user:edit")
......
...@@ -6,7 +6,7 @@ public class IdConst { ...@@ -6,7 +6,7 @@ public class IdConst {
public static final String DEFAULT_ID_ZERO = "0"; public static final String DEFAULT_ID_ZERO = "0";
public static final String DEFAULT_ID_ONE = "1"; public static final String DEFAULT_ID_ONE = "1";
//todo 这个id待确认
public static final String DEFAULT_FACTORY_ID = "1544975976697262082"; public static final String DEFAULT_FACTORY_ID = "1544975976697262082";
public static final String ROLE_COMMON_USER_NAME="普通用户"; public static final String ROLE_COMMON_USER_NAME="普通用户";
......
...@@ -24,6 +24,11 @@ public class PlatMenuDTOVO extends BaseIdDTO { ...@@ -24,6 +24,11 @@ public class PlatMenuDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "名称") @ApiModelProperty(value = "名称")
private String name; private String name;
/**
* 资源标识
*/
private String code;
@ApiModelProperty(value = "图标") @ApiModelProperty(value = "图标")
private String icon; private String icon;
......
...@@ -48,7 +48,7 @@ public class PlatTenantDTOVO extends BaseIdDTO { ...@@ -48,7 +48,7 @@ public class PlatTenantDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "租户管理员用户名") @ApiModelProperty(value = "租户管理员用户名")
private String userName; private String userName;
@ApiModelProperty(value = "告警渠道") @ApiModelProperty(value = "告警渠道 1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单")
private String alertChannel; private String alertChannel;
@ApiModelProperty(value = "菜单id集合") @ApiModelProperty(value = "菜单id集合")
......
package com.makeit.utils.msg; package com.makeit.utils.msg;
import com.makeit.utils.msg.dto.MsgSendDTO;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Collection; import java.util.Collection;
@Component @Component
public class MsgUtil { public class MsgSendUtil {
/** /**
* 发送消息并保存记录 * 发送消息
*/ */
public void send(SendTypeEnum sendTypeEnum, Collection<String> receiverList, String content){ public void send(SendTypeEnum sendTypeEnum, Collection<String> receiverList, String content){
switch (sendTypeEnum){ switch (sendTypeEnum){
...@@ -22,6 +23,28 @@ public class MsgUtil { ...@@ -22,6 +23,28 @@ public class MsgUtil {
break; break;
case YUNLING: case YUNLING:
break; break;
case CHILD_WECHAT:
break;
}
}
/**
* 发送消息
*/
public void send(MsgSendDTO msgSendDTO){
switch (msgSendDTO.getSendTypeEnum()){
case SMS:
break;
case MAIL:
break;
case VOICE_SMS:
break;
case JINGQI:
break;
case YUNLING:
break;
case CHILD_WECHAT:
break;
} }
} }
} }
package com.makeit.utils.msg.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Data
@ConfigurationProperties("voice-sms.send")
@Configuration
public class SmsVoiceConfig {
private String url;
private String uid;
private String pwd;
}
\ No newline at end of file
...@@ -7,7 +7,7 @@ import lombok.Data; ...@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.List; import java.util.Collection;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -15,16 +15,19 @@ import java.util.regex.Pattern; ...@@ -15,16 +15,19 @@ import java.util.regex.Pattern;
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class MsgDTO { public class MsgSendDTO {
private SendTypeEnum sendTypeEnum; private SendTypeEnum sendTypeEnum;
private String subject; private String subject;
private List<String> receiverList; private Collection<String> receiverList;
private String oriContent; private String oriContent;
/**
* 语音短信:老人姓名 最多支持两个
*/
private String[] param; private String[] param;
private String sendContent; private String sendContent;
......
package com.makeit.utils.msg.sender; package com.makeit.utils.msg.sender;
import com.makeit.utils.msg.dto.MsgDTO; import com.makeit.utils.msg.dto.MsgSendDTO;
public interface IMsgSender { public interface IMsgSender {
...@@ -8,5 +8,5 @@ public interface IMsgSender { ...@@ -8,5 +8,5 @@ public interface IMsgSender {
* 发送消息 * 发送消息
* @param msgData 消息数据 * @param msgData 消息数据
*/ */
void send(MsgDTO MsgDTO) throws Exception; void send(MsgSendDTO msgDTO);
} }
package com.makeit.utils.msg.sender; package com.makeit.utils.msg.sender;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.utils.msg.dto.MsgDTO; import com.makeit.utils.msg.dto.MsgSendDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -25,7 +25,7 @@ public class MailMsgSender implements IMsgSender { ...@@ -25,7 +25,7 @@ public class MailMsgSender implements IMsgSender {
@Override @Override
public void send(MsgDTO msgDTO) { public void send(MsgSendDTO msgDTO) {
try { try {
MimeMessage message = mailSender.createMimeMessage(); MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true); MimeMessageHelper helper = new MimeMessageHelper(message, true);
......
...@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.utils.msg.config.SmsConfig; import com.makeit.utils.msg.config.SmsConfig;
import com.makeit.utils.msg.dto.MsgDTO; import com.makeit.utils.msg.dto.MsgSendDTO;
import com.makeit.utils.old.encode.CryptoUtil; import com.makeit.utils.old.encode.CryptoUtil;
import com.makeit.utils.third.HttpClient; import com.makeit.utils.third.HttpClient;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -13,9 +13,9 @@ import org.springframework.http.HttpHeaders; ...@@ -13,9 +13,9 @@ import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
...@@ -30,14 +30,14 @@ public class SmsMsgSender implements IMsgSender{ ...@@ -30,14 +30,14 @@ public class SmsMsgSender implements IMsgSender{
* @param msgDTO * @param msgDTO
*/ */
@Override @Override
public void send(MsgDTO msgDTO) throws Exception { public void send(MsgSendDTO msgDTO) {
try { try {
Date now = new Date(); Date now = new Date();
String time = String.valueOf(now.getTime()); String time = String.valueOf(now.getTime());
List<String> receiverList = msgDTO.getReceiverList(); Collection<String> receiverList = msgDTO.getReceiverList();
String receiverJoin = receiverList.stream().collect(Collectors.joining(",")); String receiverJoin = receiverList.stream().collect(Collectors.joining(","));
HashMap<String, String> paramMap = new HashMap<>(); HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("uid", smsConfig.getUid() + 1000); paramMap.put("uid", smsConfig.getUid());
//md5-32位( md5-16位(登录密码)+ time ) //md5-32位( md5-16位(登录密码)+ time )
String md16 = CryptoUtil.md5_16(smsConfig.getPwd()); String md16 = CryptoUtil.md5_16(smsConfig.getPwd());
String md32 = CryptoUtil.md5(md16 + time); String md32 = CryptoUtil.md5(md16 + time);
...@@ -47,7 +47,7 @@ public class SmsMsgSender implements IMsgSender{ ...@@ -47,7 +47,7 @@ public class SmsMsgSender implements IMsgSender{
paramMap.put("content", URLEncoder.encode(msgDTO.getOriContent(), "UTF-8")); paramMap.put("content", URLEncoder.encode(msgDTO.getOriContent(), "UTF-8"));
String resStr = HttpClient.sendJSONPostRequest(smsConfig.getUrl(), paramMap, new HttpHeaders(), String.class); String resStr = HttpClient.sendJSONPostRequest(smsConfig.getUrl(), paramMap, new HttpHeaders(), String.class);
JSONObject jsonObject = JSON.parseObject(resStr); JSONObject jsonObject = JSON.parseObject(resStr);
String status = (String) jsonObject.get("status"); String status = String.valueOf(jsonObject.get("status"));
if (!StringUtils.equals(status, "0")) { if (!StringUtils.equals(status, "0")) {
throw new BusinessException((String) jsonObject.get("status_code")); throw new BusinessException((String) jsonObject.get("status_code"));
} }
......
package com.makeit.utils.msg.sender;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.makeit.exception.BusinessException;
import com.makeit.utils.msg.config.SmsVoiceConfig;
import com.makeit.utils.msg.dto.MsgSendDTO;
import com.makeit.utils.old.encode.CryptoUtil;
import com.makeit.utils.third.HttpClient;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;
@Component
public class SmsVoiceSender implements IMsgSender{
@Autowired
private SmsVoiceConfig smsVoiceConfig;
/**
* 发送消息
*
* @param msgDTO
*/
@Override
public void send(MsgSendDTO msgDTO) {
try {
Date now = new Date();
String time = String.valueOf(now.getTime());
Collection<String> receiverList = msgDTO.getReceiverList();
String receiverJoin = receiverList.stream().collect(Collectors.joining(","));
HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("uid", smsVoiceConfig.getUid());
//md5-32位( md5-16位(登录密码)+ time )
String md16 = CryptoUtil.md5_16(smsVoiceConfig.getPwd());
String md32 = CryptoUtil.md5(md16 + time);
paramMap.put("pwd", md32);
paramMap.put("time", time);
paramMap.put("mobile", receiverJoin);
String[] param = msgDTO.getParam();
List<BiConsumer<HashMap<String,String>,String>> consumerList = Arrays.asList(
(t,v)->t.put("one",v),
(t,v)->t.put("two",v)
);
for (int i = 0; i < param.length; i++) {
BiConsumer<HashMap<String, String>, String> biConsumer = consumerList.get(i);
biConsumer.accept(paramMap,param[i]);
}
String resStr = HttpClient.sendJSONPostRequest(smsVoiceConfig.getUrl(), paramMap, new HttpHeaders(), String.class);
JSONObject jsonObject = JSON.parseObject(resStr);
String status = String.valueOf(jsonObject.get("status"));
if (!StringUtils.equals(status, "0")) {
throw new BusinessException((String) jsonObject.get("status_code"));
}
}catch (Exception e){
throw new BusinessException(e.getMessage().toString());
}
}
}
...@@ -57,6 +57,10 @@ public class RedisUtil { ...@@ -57,6 +57,10 @@ public class RedisUtil {
client = redissonClient; client = redissonClient;
} }
public static RedissonClient getClient() {
return client;
}
/** /**
* 创建锁带默认过期时间 * 创建锁带默认过期时间
*/ */
......
...@@ -8,9 +8,6 @@ import com.makeit.common.response.ApiResponseEntity; ...@@ -8,9 +8,6 @@ import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.msg.dto.MsgDTO;
import com.makeit.utils.msg.sender.MailMsgSender;
import com.makeit.utils.msg.sender.SmsMsgSender;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO; import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -20,8 +17,6 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -20,8 +17,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
@Api(tags = "告警记录") @Api(tags = "告警记录")
@RestController @RestController
@RequestMapping("/plat/alarm-record") @RequestMapping("/plat/alarm-record")
...@@ -53,30 +48,43 @@ public class PlatAlarmRecordController { ...@@ -53,30 +48,43 @@ public class PlatAlarmRecordController {
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@Autowired // @Autowired
private MailMsgSender mailMsgSender; // private MailMsgSender mailMsgSender;
@Autowired // @Autowired
private SmsMsgSender smsMsgSender; // private SmsMsgSender smsMsgSender;
// @Autowired
@ApiOperation("测试邮箱") // private SmsVoiceSender smsVoiceSender;
@PostMapping("testMail") //
public ApiResponseEntity<Void> testMail(@RequestBody BaseIdDTO dto) { // @ApiOperation("测试邮箱")
MsgDTO msgDTO = new MsgDTO(); // @PostMapping("testMail")
msgDTO.setSubject("测试消息"); // public ApiResponseEntity<Void> testMail(@RequestBody BaseIdDTO dto) {
msgDTO.setReceiverList(Collections.singletonList("994997968@qq.com")); // MsgSendDTO msgDTO = new MsgSendDTO();
msgDTO.setOriContent("测试发送邮箱"); // msgDTO.setSubject("测试消息");
mailMsgSender.send(msgDTO); // msgDTO.setReceiverList(Collections.singletonList("994997968@qq.com"));
return ApiResponseUtils.success(); // msgDTO.setOriContent("测试发送邮箱");
} // mailMsgSender.send(msgDTO);
// return ApiResponseUtils.success();
@ApiOperation("测试短信") // }
@PostMapping("testMsg") //
public ApiResponseEntity<Void> testMsg(@RequestBody BaseIdDTO dto) throws Exception { // @ApiOperation("测试短信")
MsgDTO msgDTO = new MsgDTO(); // @PostMapping("testMsg")
msgDTO.setReceiverList(Collections.singletonList("18850503603")); // public ApiResponseEntity<Void> testMsg(@RequestBody BaseIdDTO dto) throws Exception {
msgDTO.setOriContent("测试短信test"); // MsgSendDTO msgDTO = new MsgSendDTO();
smsMsgSender.send(msgDTO); // msgDTO.setReceiverList(Collections.singletonList("18850503603"));
return ApiResponseUtils.success(); // msgDTO.setOriContent("测试短信test");
} // smsMsgSender.send(msgDTO);
// return ApiResponseUtils.success();
// }
//
// @ApiOperation("测试语音短信")
// @PostMapping("testVoice")
// @AuthIgnore
// public ApiResponseEntity<Void> testVoice(@RequestBody BaseIdDTO dto) throws Exception {
// MsgSendDTO msgDTO = new MsgSendDTO();
// msgDTO.setReceiverList(Collections.singletonList("18850503603"));
// msgDTO.setOriContent("测试短信test");
// smsVoiceSender.send(msgDTO);
// return ApiResponseUtils.success();
// }
} }
...@@ -6,8 +6,8 @@ import com.makeit.common.page.PageReqDTO; ...@@ -6,8 +6,8 @@ import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoEditVO; import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoQueryDTO; import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.service.platform.elder.PlatElderChildrenInfoService; import com.makeit.service.platform.elder.PlatElderChildrenInfoService;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO; import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
......
...@@ -7,17 +7,20 @@ import com.makeit.common.page.PageReqDTO; ...@@ -7,17 +7,20 @@ import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.*; import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.elder.PlatElderCheckInDTO;
import com.makeit.dto.platform.elder.PlatElderCheckOutDTO;
import com.makeit.dto.platform.elder.PlatElderQueryDTO;
import com.makeit.dto.platform.elder.add.PlatElderAddDTO;
import com.makeit.dto.platform.elder.add.PlatElderDTOVO;
import com.makeit.service.platform.elder.PlatElderService; import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.vo.platform.elder.PlatElderListVO; import com.makeit.vo.platform.elder.PlatElderListVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
...@@ -56,6 +59,20 @@ public class PlatElderController { ...@@ -56,6 +59,20 @@ public class PlatElderController {
platElderService.exportExcel(response, dto); platElderService.exportExcel(response, dto);
} }
@ApiOperation(value = "导出模板")
@PostMapping("/exportTemplate")
public void exportTemplate(HttpServletResponse response) {
platElderService.exportTemplate(response);
}
@ApiOperation(value = "导入")
@PostMapping("/importExcel")
public ApiResponseEntity<ExcelImportVo> importExcel(
@RequestParam(value = "excelFile", required = true) MultipartFile excelFile) throws Exception {
return ApiResponseUtils.success(platElderService.importExcel(excelFile));
}
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("add") @PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody PlatElderAddDTO dto) { public ApiResponseEntity<?> add(@Validated @RequestBody PlatElderAddDTO dto) {
......
...@@ -6,7 +6,7 @@ import com.makeit.common.page.PageReqDTO; ...@@ -6,7 +6,7 @@ import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderPhysicalReportDTOVO; import com.makeit.dto.platform.elder.add.PlatElderPhysicalReportDTOVO;
import com.makeit.service.platform.elder.PlatElderPhysicalReportService; import com.makeit.service.platform.elder.PlatElderPhysicalReportService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
......
...@@ -5,11 +5,8 @@ import com.makeit.common.page.PageReqDTO; ...@@ -5,11 +5,8 @@ import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.PlatBedDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatBedEditDTO; import com.makeit.dto.platform.space.PlatBedEditDTO;
import com.makeit.dto.platform.space.PlatBedQueryDTO; import com.makeit.dto.platform.space.PlatBedQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO;
import com.makeit.entity.platform.space.PlatBed; import com.makeit.entity.platform.space.PlatBed;
import com.makeit.service.platform.space.PlatBedService; import com.makeit.service.platform.space.PlatBedService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -21,8 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -21,8 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* @Author:lzy * @Author:lzy
* @Date:2023/9/6 11:56 * @Date:2023/9/6 11:56
...@@ -64,18 +59,4 @@ public class PlatBedController { ...@@ -64,18 +59,4 @@ public class PlatBedController {
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@ApiOperation("设备列表(选择设备)")
@PostMapping("pageDevice")
public ApiResponseEntity<PageVO<PlatDeviceDTO>> pageDevice(@RequestBody PageReqDTO<PlatSpaceDeviceQueryDTO> page) {
PageVO<PlatDeviceDTO> data = platBedService.pageDevice(page);
return ApiResponseUtils.success(data);
}
@ApiOperation("已绑定设备列表")
@PostMapping("listBindDevice")
public ApiResponseEntity<List<PlatDeviceDTO>> listBindDevice(@RequestBody PlatBedDeviceQueryDTO dto) {
List<PlatDeviceDTO> data = platBedService.listBindDevice(dto);
return ApiResponseUtils.success(data);
}
} }
package com.makeit.module.controller.space;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.space.PlatRegionSettingDTO;
import com.makeit.dto.platform.space.PlatRegionSettingQueryDTO;
import com.makeit.service.platform.space.PlatRegionSettingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author:lzy
* @Date:2023/9/8 16:03
* @Describe:
*/
@Api(tags = "区域设置")
@RestController
@RequestMapping("/plat/region/setting")
public class PlatRegionSettingController {
@Autowired
private PlatRegionSettingService platRegionSettingService;
@ApiOperation("列表")
@PostMapping("list")
public ApiResponseEntity<List<PlatRegionSettingDTO>> list(@RequestBody PlatRegionSettingQueryDTO dto) {
List<PlatRegionSettingDTO> data = platRegionSettingService.list(dto);
return ApiResponseUtils.success(data);
}
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<?> edit(@RequestBody PlatRegionSettingDTO dto) {
platRegionSettingService.edit(dto);
return ApiResponseUtils.success();
}
}
package com.makeit.module.controller.space;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.PlatBedDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatRoomBindDeviceDTO;
import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatUnbindingDeviceDTO;
import com.makeit.enums.CommonEnum;
import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author:lzy
* @Date:2023/9/8 9:54
* @Describe:
*/
@Api(tags = "绑定设备")
@RestController
@RequestMapping("/plat/binding/device/")
public class PlatRoomBedDeviceController {
@Autowired
private PlatRoomBedDeviceService platRoomBedDeviceService;
@ApiOperation("设备列表(选择设备)-房间绑定")
@PostMapping("pageRoomDevice")
public ApiResponseEntity<PageVO<PlatDeviceDTO>> pageRoomDevice(@RequestBody PageReqDTO<PlatSpaceDeviceQueryDTO> page) {
page.getData().setIsRoom(CommonEnum.YES.getValue());
PageVO<PlatDeviceDTO> data = platRoomBedDeviceService.pageDevice(page);
return ApiResponseUtils.success(data);
}
@ApiOperation("设备列表(选择设备)-床位绑定")
@PostMapping("pageBedDevice")
public ApiResponseEntity<PageVO<PlatDeviceDTO>> pageBedDevice(@RequestBody PageReqDTO<PlatSpaceDeviceQueryDTO> page) {
page.getData().setIsRoom(CommonEnum.NO.getValue());
PageVO<PlatDeviceDTO> data = platRoomBedDeviceService.pageDevice(page);
return ApiResponseUtils.success(data);
}
@ApiOperation("已绑定设备列表")
@PostMapping("listBindDevice")
public ApiResponseEntity<List<PlatDeviceDTO>> listBindDevice(@RequestBody PlatBedDeviceQueryDTO dto) {
List<PlatDeviceDTO> data = platRoomBedDeviceService.listBindDevice(dto);
return ApiResponseUtils.success(data);
}
@ApiOperation("绑定设备")
@PostMapping("bindingDevice")
public ApiResponseEntity<?> bindingDevice(@RequestBody PlatRoomBindDeviceDTO dto) {
platRoomBedDeviceService.bindingDevice(dto);
return ApiResponseUtils.success();
}
@ApiOperation("解绑设备")
@PostMapping("unbindingDevice")
public ApiResponseEntity<?> unbindingDevice(@RequestBody PlatUnbindingDeviceDTO dto) {
platRoomBedDeviceService.unbindingDevice(dto);
return ApiResponseUtils.success();
}
}
package com.makeit.module.controller.wechat.alarm;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "子女端小程序-告警记录")
@RestController
@RequestMapping("/children/alarm-record")
public class ChildrenAlarmRecordController {
@Autowired
private PlatAlarmRecordService platAlarmRecordService;
@ApiOperation("列表")
@PostMapping("page")
public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
//只能看到发给关联的长者告警
return ApiResponseUtils.success(platAlarmRecordService.childrenPage(dto));
}
@ApiOperation("查看")
@PostMapping("view")
public ApiResponseEntity<PlatAlarmRecordVO> view(@RequestBody BaseIdDTO dto) {
return ApiResponseUtils.success(platAlarmRecordService.view(dto.getId()));
}
}
...@@ -8,8 +8,7 @@ import com.makeit.common.response.ApiResponseEntity; ...@@ -8,8 +8,7 @@ import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.msg.dto.MsgDTO; import com.makeit.utils.user.wechat.WechatUserUtil;
import com.makeit.utils.msg.sender.MailMsgSender;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO; import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -19,8 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -19,8 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
@Api(tags = "小程序-告警记录") @Api(tags = "小程序-告警记录")
@RestController @RestController
@RequestMapping("/wechat/plat/alarm-record") @RequestMapping("/wechat/plat/alarm-record")
...@@ -32,6 +29,10 @@ public class WechatPlatAlarmRecordController { ...@@ -32,6 +29,10 @@ public class WechatPlatAlarmRecordController {
@ApiOperation("列表") @ApiOperation("列表")
@PostMapping("page") @PostMapping("page")
public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) { public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
//小程序告警记录只看到发给自己的告警
String userId = WechatUserUtil.getUserId();
PlatAlarmRecordQueryDTO data = dto.getData();
data.setNotifyUser(userId);
return ApiResponseUtils.success(platAlarmRecordService.page(dto)); return ApiResponseUtils.success(platAlarmRecordService.page(dto));
} }
@ApiOperation("查看") @ApiOperation("查看")
...@@ -51,19 +52,5 @@ public class WechatPlatAlarmRecordController { ...@@ -51,19 +52,5 @@ public class WechatPlatAlarmRecordController {
platAlarmRecordService.noticeRelation(dto.getId()); platAlarmRecordService.noticeRelation(dto.getId());
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@Autowired
private MailMsgSender mailMsgSender;
@ApiOperation("测试消息")
@PostMapping("testMsg")
public ApiResponseEntity<Void> testMsg(@RequestBody BaseIdDTO dto) {
MsgDTO msgDTO = new MsgDTO();
msgDTO.setSubject("测试消息");
msgDTO.setReceiverList(Collections.singletonList("994997968@qq.com"));
msgDTO.setOriContent("测试发送邮箱");
mailMsgSender.send(msgDTO);
return ApiResponseUtils.success();
}
} }
...@@ -4,7 +4,7 @@ package com.makeit.module.controller.wechat.elder; ...@@ -4,7 +4,7 @@ package com.makeit.module.controller.wechat.elder;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderDTOVO; import com.makeit.dto.platform.elder.add.PlatElderDTOVO;
import com.makeit.service.platform.elder.PlatElderService; import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO; import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
......
...@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode; ...@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* <p> * <p>
...@@ -51,6 +52,12 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO { ...@@ -51,6 +52,12 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO {
@ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常") @ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常")
private String alarmType; private String alarmType;
//告警接收人id
private String notifyUser;
//子女关联的老人id
private List<String> elderIdList;
} }
package com.makeit.dto.platform.elder;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.makeit.common.dto.BaseTenantDTO;
import com.makeit.enums.biz.sys.SysConfigCategoryConst;
import com.makeit.enums.platform.elder.PlatElderEnum;
import com.makeit.global.validator.Mobile;
import com.makeit.utils.data.excel.easyexcel.ConfigConverter;
import com.makeit.utils.data.excel.easyexcel.ConfigFormat;
import com.makeit.utils.data.excel.easyexcel.DictEnumConverter;
import com.makeit.utils.data.excel.easyexcel.DictEnumFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* <p>
* 长者基本信息
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Elder对象", description = "长者基本信息")
public class PlatElderImportDTO extends BaseTenantDTO {
public static final String BIG_TITLE = "导入说明:\n" +
"\n" +
"1.带*号为必填项\n" +
"\n" +
"2.证件号不可重复";
@ExcelIgnore
@ApiModelProperty(value = "小区/社区/街道空间id")
private String streetSpaceId;
@ExcelProperty({BIG_TITLE, "小区"})
@ApiModelProperty(value = "小区/社区/街道空间名称")
private String streetSpaceName;
@ExcelIgnore
@ApiModelProperty(value = "楼栋空间id")
private String buildingSpaceId;
@ExcelProperty({BIG_TITLE, "楼栋"})
@ApiModelProperty(value = "楼栋空间名称")
private String buildingSpaceName;
@ExcelIgnore
@ApiModelProperty(value = "单元空间id")
private String unitSpaceId;
@ExcelProperty({BIG_TITLE, "单元"})
@ApiModelProperty(value = "单元空间名称")
private String unitSpaceName;
@ExcelIgnore
@ApiModelProperty(value = "楼层id")
private String floorSpaceId;
@ExcelProperty({BIG_TITLE, "楼层"})
@ApiModelProperty(value = "楼层id")
private String floorSpaceName;
@ExcelIgnore
@ApiModelProperty(value = "房间id")
private String roomId;
@ExcelProperty({BIG_TITLE, "房间号"})
@ApiModelProperty(value = "房间名称")
private String roomName;
@ExcelIgnore
@ApiModelProperty(value = "床位id")
private String bedId;
@ExcelProperty({BIG_TITLE, "床位"})
@ApiModelProperty(value = "床位名称")
private String bedName;
@NotBlank(message = "姓名不能为空")
@Size(max = 50, message = "姓名最长为50字符")
@ExcelProperty({BIG_TITLE, "姓名*"})
@ApiModelProperty(value = "姓名")
private String name;
@DictEnumFormat(em = PlatElderEnum.SexEnum.class)
@ExcelProperty(value = {BIG_TITLE, "老人性别"}, converter = DictEnumConverter.class)
@ApiModelProperty(value = "性别 数据字典 1 男 2 女")
private String sex;
@ExcelProperty({BIG_TITLE, "老人姓名"})
@ApiModelProperty(value = "年龄")
private Integer age;
@NotBlank(message = "证件类型不能为空")
@ConfigFormat(categoryCode = SysConfigCategoryConst.ELDER_CERTIFICATE_TYPE)
@ExcelProperty(value = {BIG_TITLE, "证件类型*"}, converter = ConfigConverter.class)
@ApiModelProperty(value = "证件类型")
private String certificateType;
@NotBlank(message = "证件号不能为空")
@Size(max = 50, message = "证件号最长为50字符")
@ExcelProperty({BIG_TITLE, "证件号"})
@ApiModelProperty(value = "证件号码")
private String certificateNumber;
@Mobile(message = "手机号格式不对")
@ExcelProperty({BIG_TITLE, "手机号"})
@ApiModelProperty(value = "手机号码")
private String phone;
@Size(max = 50, message = "备注最长为50字符")
@ExcelProperty({BIG_TITLE, "备注"})
@ApiModelProperty(value = "备注")
private String remark;
}
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.add;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import com.makeit.enums.platform.elder.PlatElderEnum; import com.makeit.enums.platform.elder.PlatElderEnum;
......
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.add;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import com.makeit.enums.platform.elder.PlatElderEnum; import com.makeit.enums.platform.elder.PlatElderEnum;
......
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.add;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
......
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.add;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
......
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.add;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
......
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.add;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
......
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.children;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
......
package com.makeit.dto.platform.elder; package com.makeit.dto.platform.elder.children;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
......
...@@ -15,4 +15,7 @@ public class PlatBedDeviceQueryDTO { ...@@ -15,4 +15,7 @@ public class PlatBedDeviceQueryDTO {
@ApiModelProperty("房间Id") @ApiModelProperty("房间Id")
private String roomId; private String roomId;
@ApiModelProperty("床位Id")
private String bedId;
} }
package com.makeit.entity.platform.space; package com.makeit.dto.platform.space;
import com.makeit.common.entity.BaseBusEntity; import com.makeit.common.dto.BaseIdDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
/** /**
* @Author:lzy * @Author:lzy
* @Date:2023/8/31 11:50 * @Date:2023/9/8 14:51
* @Describe: * @Describe:
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @ApiModel("PlatRegionSettingDTO")
@ApiModel(value = "RegionSettingLocation对象", description = "区域设置定位") public class PlatRegionSettingDTO extends BaseIdDTO {
public class PlatRegionSettingLocation extends BaseBusEntity {
@ApiModelProperty("区域设置Id") @ApiModelProperty("安装方式 数据字典:device.install 0-顶装 1-侧装")
private String regionSettingId;
@ApiModelProperty("安装方式 0-顶装 1-侧装")
private String installType; private String installType;
@ApiModelProperty("设备朝向 0-上 1-下 2-左 3-右") @ApiModelProperty("设备朝向 数据字典:device.toward 0-上 1-下 2-左 3-右")
private String toward; private String toward;
@ApiModelProperty("区域名称") @ApiModelProperty("区域名称")
...@@ -35,6 +30,11 @@ public class PlatRegionSettingLocation extends BaseBusEntity { ...@@ -35,6 +30,11 @@ public class PlatRegionSettingLocation extends BaseBusEntity {
private String roomRange; private String roomRange;
@ApiModelProperty("设备ID") @ApiModelProperty("设备ID")
private String equipmentId; private String deviceId;
@ApiModelProperty("房间ID")
private String roomId;
@ApiModelProperty("设备名称")
private String deviceName;
} }
package com.makeit.dto.platform.space;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author:lzy
* @Date:2023/9/8 15:16
* @Describe:
*/
@Data
@ApiModel("PlatRegionSettingQueryDTO")
public class PlatRegionSettingQueryDTO {
@ApiModelProperty("房间ID")
private String roomId;
}
...@@ -15,11 +15,11 @@ import java.util.List; ...@@ -15,11 +15,11 @@ import java.util.List;
@ApiModel("PlatRoomBindDeviceDTO 设备绑定") @ApiModel("PlatRoomBindDeviceDTO 设备绑定")
public class PlatRoomBindDeviceDTO { public class PlatRoomBindDeviceDTO {
@ApiModelProperty(value = "房间ID") @ApiModelProperty(value = "房间ID",required = true)
private String roomId; private String roomId;
@ApiModelProperty(value = "设备Id") @ApiModelProperty(value = "设备Id",required = true)
private List<String> listEquipmentId; private List<String> listDeviceId;
@ApiModelProperty(value = "床位Id") @ApiModelProperty(value = "床位Id")
private String bedId; private String bedId;
......
...@@ -15,4 +15,7 @@ public class PlatRoomQueryDTO { ...@@ -15,4 +15,7 @@ public class PlatRoomQueryDTO {
@ApiModelProperty("房间名称") @ApiModelProperty("房间名称")
private String name; private String name;
@ApiModelProperty("空间ID")
private String spaceId;
} }
...@@ -27,4 +27,10 @@ public class PlatSpaceDeviceQueryDTO { ...@@ -27,4 +27,10 @@ public class PlatSpaceDeviceQueryDTO {
@ApiModelProperty(value = "设备类型 device.category 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达") @ApiModelProperty(value = "设备类型 device.category 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达")
private String category; private String category;
@ApiModelProperty(value = "是否房间绑定 0-床位绑定 1-房间绑定")
private String isRoom;
@ApiModelProperty(value = "房间ID 绑定床位时使用")
private String roomId;
} }
package com.makeit.dto.platform.space;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author:lzy
* @Date:2023/9/8 10:35
* @Describe:
*/
@Data
@ApiModel("解绑设备")
public class PlatUnbindingDeviceDTO {
@ApiModelProperty("设备Id")
private String equipmentId;
@ApiModelProperty("房间Id")
private String roomId;
@ApiModelProperty("床位Id")
private String bedId;
}
package com.makeit.dto.platform.space;
import com.makeit.common.dto.BaseIdDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class TreeDTOVO extends BaseIdDTO {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("父级id")
private String parentId;
}
...@@ -54,10 +54,27 @@ public class PlatAlarmRecord extends BaseBusEntity { ...@@ -54,10 +54,27 @@ public class PlatAlarmRecord extends BaseBusEntity {
*/ */
private LocalDateTime dealDate; private LocalDateTime dealDate;
/**
* 组织id
*/
private String orgId; private String orgId;
/**
* 通知人员,逗号拼接
*/
private String notifyUser;
/**
* 设备id
*/
private String deviceId; private String deviceId;
/**
* 老人id,逗号拼接
*/
private String elderIds;
} }
...@@ -16,12 +16,30 @@ import lombok.EqualsAndHashCode; ...@@ -16,12 +16,30 @@ import lombok.EqualsAndHashCode;
@ApiModel(value = "RegionSetting对象", description = "区域设置") @ApiModel(value = "RegionSetting对象", description = "区域设置")
public class PlatRegionSetting extends BaseBusEntity { public class PlatRegionSetting extends BaseBusEntity {
@ApiModelProperty(value = "区域名称") /**
private String name; * 数据字典:device.install
*/
@ApiModelProperty("安装方式 0-顶装 1-侧装")
private String installType;
@ApiModelProperty(value = "房间Id") /**
private String roomId; * 数据字典:device.toward
*/
@ApiModelProperty("设备朝向 0-上 1-下 2-左 3-右")
private String toward;
@ApiModelProperty("区域名称")
private String regionName;
@ApiModelProperty("区域定位")
private String regionRange;
@ApiModelProperty(value = "地图json") @ApiModelProperty("房间门定位")
private String rangeMap; private String roomRange;
@ApiModelProperty("设备ID")
private String deviceId;
@ApiModelProperty("房间ID")
private String roomId;
} }
package com.makeit.entity.platform.space; package com.makeit.entity.platform.space;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.makeit.common.entity.BaseBusEntity; import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -16,13 +18,13 @@ import lombok.EqualsAndHashCode; ...@@ -16,13 +18,13 @@ import lombok.EqualsAndHashCode;
@ApiModel(value = "PlatRoomBedDevice对象", description = "房间床位设备中间表") @ApiModel(value = "PlatRoomBedDevice对象", description = "房间床位设备中间表")
public class PlatRoomBedDevice extends BaseBusEntity { public class PlatRoomBedDevice extends BaseBusEntity {
@ApiModelProperty(value = "房间ID",required = true)
@ApiModelProperty(value = "房间ID")
private String roomId; private String roomId;
@ApiModelProperty(value = "设备Id") @ApiModelProperty(value = "设备Id",required = true)
private String equipmentId; private String deviceId;
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ApiModelProperty(value = "床位Id") @ApiModelProperty(value = "床位Id")
private String bedId; private String bedId;
} }
...@@ -23,6 +23,11 @@ public class PlatMenu extends BaseEntity { ...@@ -23,6 +23,11 @@ public class PlatMenu extends BaseEntity {
private String name; private String name;
/** /**
* 资源标识
*/
private String code;
/**
* 账号链接 * 账号链接
*/ */
private String requestPath; private String requestPath;
......
...@@ -32,4 +32,33 @@ public class PlatDeviceEnum { ...@@ -32,4 +32,33 @@ public class PlatDeviceEnum {
} }
} }
public enum InstallEnum implements BaseEnum {
CROWN("device.install.crown"), SIDE("device.install.side");
private String code;
InstallEnum(String code) {
this.code = code;
}
public String getValue() {
return SysDictUtil.getValue(code);
}
}
public enum TowardEnum implements BaseEnum {
UP("device.toward.up"), DOWN("device.toward.down"),
LEFT("device.toward.left"),RIGHT("device.toward.right");
private String code;
TowardEnum(String code) {
this.code = code;
}
public String getValue() {
return SysDictUtil.getValue(code);
}
}
} }
package com.makeit.mapper.platform.space;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.platform.space.PlatRegionSettingLocation;
/**
* @Author:lzy
* @Date:2023/8/31 11:59
* @Describe:
*/
public interface PlatRegionSettingLocationMapper extends BaseMapper<PlatRegionSettingLocation> {
}
...@@ -16,6 +16,13 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> { ...@@ -16,6 +16,13 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto); PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto);
/**
* 子女端告警列表
* @param dto
* @return
*/
PageVO<PlatAlarmRecordVO> childrenPage(PageReqDTO<PlatAlarmRecordQueryDTO> dto);
PlatAlarmRecordVO view(String recordId); PlatAlarmRecordVO view(String recordId);
void deal(String recordId); void deal(String recordId);
......
...@@ -9,25 +9,23 @@ import com.makeit.common.page.PageVO; ...@@ -9,25 +9,23 @@ import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig; import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.alarm.PlatAlarmRecord; import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.elder.PlatElder; import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import com.makeit.entity.platform.elder.PlatElderSocialRelation;
import com.makeit.entity.platform.space.PlatRoomBedDevice;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum; import com.makeit.enums.CommonEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper; import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper;
import com.makeit.service.platform.alarm.PlatAlarmConfigService; import com.makeit.service.platform.alarm.PlatAlarmConfigService;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.elder.PlatElderService; import com.makeit.service.platform.elder.PlatElderChildrenInfoService;
import com.makeit.service.platform.elder.PlatElderSocialRelationService;
import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil; import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.msg.MsgUtil; import com.makeit.utils.msg.MsgSendUtil;
import com.makeit.utils.msg.SendTypeEnum; import com.makeit.utils.msg.SendTypeEnum;
import com.makeit.utils.msg.dto.MsgSendDTO;
import com.makeit.utils.sql.join.JoinUtil; import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.utils.user.common.CommonUserUtil; import com.makeit.utils.user.common.CommonUserUtil;
import com.makeit.utils.user.common.CommonUserVO; import com.makeit.utils.user.common.CommonUserVO;
import com.makeit.utils.user.wechat.WechatUserInfo;
import com.makeit.utils.user.wechat.WechatUserUtil;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO; import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -36,32 +34,29 @@ import org.springframework.stereotype.Service; ...@@ -36,32 +34,29 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* @author lixl * @author lixl
* @description 针对表【plat_alarm_record(告警记录)】的数据库操作Service实现 * @description 针对表【plat_alarm_record(告警记录)】的数据库操作Service实现
* @createDate 2023-09-06 14:26:05 * @createDate 2023-09-06 14:26:05
*/ */
@Service @Service
public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMapper, PlatAlarmRecord> public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMapper, PlatAlarmRecord>
implements PlatAlarmRecordService{ implements PlatAlarmRecordService {
@Autowired @Autowired
private PlatAlarmConfigService platAlarmConfigService; private PlatAlarmConfigService platAlarmConfigService;
@Autowired @Autowired
private PlatRoomBedDeviceService platRoomBedDeviceService; private PlatElderChildrenInfoService platElderChildrenInfoService;
@Autowired
private PlatElderService platElderService;
@Autowired
private PlatElderSocialRelationService platElderSocialRelationService;
@Autowired @Autowired
private MsgUtil msgUtil; private MsgSendUtil msgUtil;
@Override @Override
public PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto) { public PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
...@@ -72,31 +67,57 @@ implements PlatAlarmRecordService{ ...@@ -72,31 +67,57 @@ implements PlatAlarmRecordService{
List<PlatAlarmRecord> records = page.getRecords(); List<PlatAlarmRecord> records = page.getRecords();
List<PlatAlarmRecordVO> dtos = BeanDtoVoUtils.listVo(records, PlatAlarmRecordVO.class); List<PlatAlarmRecordVO> dtos = BeanDtoVoUtils.listVo(records, PlatAlarmRecordVO.class);
JoinUtil.join(dtos,platAlarmConfigService,PlatAlarmRecordVO::getAlarmId,BaseEntity::getId,(t,m)->{ JoinUtil.join(dtos, platAlarmConfigService, PlatAlarmRecordVO::getAlarmId, BaseEntity::getId, (t, m) -> {
t.setNotifyRelation(m.getNotifyRelation()); t.setNotifyRelation(m.getNotifyRelation());
}); });
return PageUtil.toPageVO(dtos,page); return PageUtil.toPageVO(dtos, page);
}
/**
* 子女端告警列表
*
* @param dto
* @return
*/
@Override
public PageVO<PlatAlarmRecordVO> childrenPage(PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
WechatUserInfo userVO = WechatUserUtil.getUserVO();
String elderId = userVO.getElderId();
if (StringUtils.isBlank(elderId)) {
return new PageVO<>();
}
String[] split = elderId.split(",");
PlatAlarmRecordQueryDTO data = dto.getData();
data.setElderIdList(Arrays.asList(split));
return page(dto);
} }
private LambdaQueryWrapper<PlatAlarmRecord> getLambdaQueryWrapper(PlatAlarmRecordQueryDTO param) { private LambdaQueryWrapper<PlatAlarmRecord> getLambdaQueryWrapper(PlatAlarmRecordQueryDTO param) {
return new LambdaQueryWrapper<PlatAlarmRecord>().ge(Objects.nonNull(param.getCreateDateFrom()), BaseEntity::getCreateDate, param.getCreateDateFrom()) return new LambdaQueryWrapper<PlatAlarmRecord>().ge(Objects.nonNull(param.getCreateDateFrom()), BaseEntity::getCreateDate, param.getCreateDateFrom())
.le(Objects.nonNull(param.getCreateDateTo()),BaseEntity::getCreateDate, param.getCreateDateTo()) .le(Objects.nonNull(param.getCreateDateTo()), BaseEntity::getCreateDate, param.getCreateDateTo())
.eq(StringUtils.isNotBlank(param.getAlarmType()),PlatAlarmRecord::getAlarmType, param.getAlarmType()) .eq(StringUtils.isNotBlank(param.getAlarmType()), PlatAlarmRecord::getAlarmType, param.getAlarmType())
.eq(StringUtils.isNotBlank(param.getStatus()),PlatAlarmRecord::getStatus, param.getStatus()) .eq(StringUtils.isNotBlank(param.getStatus()), PlatAlarmRecord::getStatus, param.getStatus())
.eq(StringUtils.isNotBlank(param.getDealUser()),PlatAlarmRecord::getDealUser, param.getDealUser()) .eq(StringUtils.isNotBlank(param.getDealUser()), PlatAlarmRecord::getDealUser, param.getDealUser())
.ge(Objects.nonNull(param.getDealDateFrom()),PlatAlarmRecord::getDealDate, param.getDealDateFrom()) .ge(Objects.nonNull(param.getDealDateFrom()), PlatAlarmRecord::getDealDate, param.getDealDateFrom())
.le(Objects.nonNull(param.getDealDateTo()),PlatAlarmRecord::getDealDate, param.getDealDateTo()) .le(Objects.nonNull(param.getDealDateTo()), PlatAlarmRecord::getDealDate, param.getDealDateTo())
.eq(StringUtils.isNotBlank(param.getOrgId()),PlatAlarmRecord::getOrgId, param.getOrgId()) .eq(StringUtils.isNotBlank(param.getOrgId()), PlatAlarmRecord::getOrgId, param.getOrgId())
.apply(StringUtils.isNotBlank(param.getNotifyUser()), "find_in_set('" + param.getNotifyUser() + "',notify_user)")
.and(CollectionUtils.isNotEmpty(param.getElderIdList()), qw -> {
List<String> elderIdList = param.getElderIdList();
for (String elderId : elderIdList) {
qw.or().apply("find_in_set('" + elderId + "',elder_ids)");
}
})
.orderByDesc(BaseEntity::getCreateDate) .orderByDesc(BaseEntity::getCreateDate)
; ;
} }
@Override @Override
public PlatAlarmRecordVO view(String recordId) { public PlatAlarmRecordVO view(String recordId) {
PlatAlarmRecord platAlarmRecord = getById(recordId); PlatAlarmRecord platAlarmRecord = getById(recordId);
PlatAlarmRecordVO vo = BeanDtoVoUtils.convert(platAlarmRecord, PlatAlarmRecordVO.class); PlatAlarmRecordVO vo = BeanDtoVoUtils.convert(platAlarmRecord, PlatAlarmRecordVO.class);
JoinUtil.join(Arrays.asList(vo),platAlarmConfigService,PlatAlarmRecordVO::getAlarmId,BaseEntity::getId,(t,m)->{ JoinUtil.join(Arrays.asList(vo), platAlarmConfigService, PlatAlarmRecordVO::getAlarmId, BaseEntity::getId, (t, m) -> {
t.setNotifyRelation(m.getNotifyRelation()); t.setNotifyRelation(m.getNotifyRelation());
}); });
return vo; return vo;
...@@ -116,44 +137,52 @@ implements PlatAlarmRecordService{ ...@@ -116,44 +137,52 @@ implements PlatAlarmRecordService{
@Override @Override
@Transactional @Transactional
public void noticeRelation(String recordId) { public void noticeRelation(String recordId) {
//todo
PlatAlarmRecord platAlarmRecord = this.getById(recordId); PlatAlarmRecord platAlarmRecord = this.getById(recordId);
PlatAlarmConfig platAlarmConfig = platAlarmConfigService.getById(platAlarmRecord.getAlarmId()); PlatAlarmConfig platAlarmConfig = platAlarmConfigService.getById(platAlarmRecord.getAlarmId());
String deviceId = platAlarmRecord.getDeviceId(); String elderIds = platAlarmRecord.getElderIds();
if (StringUtils.isBlank(elderIds)) {
LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<PlatRoomBedDevice>() throw new BusinessException("设备没绑定长者");
.eq(PlatRoomBedDevice::getEquipmentId, deviceId).orderByDesc(BaseEntity::getUpdateDate);
PlatRoomBedDevice platRoomBedDevice = platRoomBedDeviceService.getOne(roomBedDeviceLambdaQueryWrapper, false);
//绑定房间的设备要通知 全部长者的家属
//绑定床位的设备要通知对应的长者的家属
if(platRoomBedDevice == null){
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_ALARM_NOT_FOUND_SPACE);
}
String bedId = platRoomBedDevice.getBedId();
String roomId = platRoomBedDevice.getRoomId();
LambdaQueryWrapper<PlatElder> elderLambdaQueryWrapper = new LambdaQueryWrapper<PlatElder>().eq(StringUtils.isNotBlank(bedId), PlatElder::getBedId, bedId)
.eq(PlatElder::getRoomId, roomId);
List<PlatElder> elderList = platElderService.list(elderLambdaQueryWrapper);
if(CollectionUtils.isEmpty(elderList)){
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_ALARM_NOT_FOUND_ELDER);
}
Set<String> elderIdSet = elderList.stream().map(BaseEntity::getId).collect(Collectors.toSet());
List<PlatElderSocialRelation> relations = platElderSocialRelationService.list(new LambdaQueryWrapper<PlatElderSocialRelation>().in(PlatElderSocialRelation::getElderId, elderIdSet));
Set<String> phoneList = relations.stream().map(PlatElderSocialRelation::getPhone).collect(Collectors.toSet());
String notifyChannel = platAlarmConfig.getNotifyChannel();
String[] split = notifyChannel.split(",");
List<String> notifyChannelList = Arrays.asList(SendTypeEnum.SMS.getValue(), SendTypeEnum.VOICE_SMS.getValue(),SendTypeEnum.CHILD_WECHAT.getValue());
Set<String> sendTypeList = Stream.of(split).filter(vo -> notifyChannelList.contains(vo)).collect(Collectors.toSet());
for (String sendType: sendTypeList) {
SendTypeEnum sendTypeEnum = SendTypeEnum.getByValue(sendType);
msgUtil.send(sendTypeEnum,phoneList,platAlarmRecord.getContent());
} }
List<PlatElderChildrenInfo> allChildInfoList = new ArrayList<>();
String[] elderIdSplit = elderIds.split(",");
//通知每个长者的子女
for (String elderId : elderIdSplit) {
LambdaQueryWrapper<PlatElderChildrenInfo> childrenInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
childrenInfoLambdaQueryWrapper.and(qw -> {
qw.apply("find_in_set('" + elderId + "',elder_id)");
});
List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoService.list(childrenInfoLambdaQueryWrapper);
if (CollectionUtils.isEmpty(childrenInfoList)) {
log.debug("子女端账号未绑定长者");
continue;
}
allChildInfoList.addAll(childrenInfoList);
Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet());
String notifyChannel = platAlarmConfig.getNotifyChannel();
String[] split = notifyChannel.split(",");
//告警配置和租户告警 字典一致
List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT);
for (String sendType : split) {
SendTypeEnum sendTypeEnum = SendTypeEnum.getByValue(sendType);
boolean contains = notifyChannelList.contains(sendTypeEnum);
if (contains) {
MsgSendDTO msgSendDTO = new MsgSendDTO();
msgSendDTO.setSendTypeEnum(sendTypeEnum);
msgSendDTO.setReceiverList(phoneSet);
msgSendDTO.setOriContent(platAlarmRecord.getContent());
//todo 小程序消息
msgUtil.send(msgSendDTO);
}
}
}
String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(","));
//通知的子女
platAlarmConfig.setNotifyRelation(childIdJoin);
platAlarmRecord.setNoticeStatus(CommonEnum.YES.getValue()); platAlarmRecord.setNoticeStatus(CommonEnum.YES.getValue());
updateById(platAlarmRecord); updateById(platAlarmRecord);
} }
} }
package com.makeit.service.platform.auth;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.sql.join.JoinUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Function;
@Component
public class DeptUtil {
private static PlatUserService platUserService;
private static PlatOrgService platOrgService;
public static PlatOrg getById(String deptId) {
return platOrgService.getById(deptId);
}
public static List<PlatOrg> getHotelList() {
List<PlatOrg> deptList = platOrgService.list(new QueryWrapper<PlatOrg>().lambda()
//.eq(PlatOrg::getTag, DeptEnum.DeptTagEnum.HOTEL.getValue())
//.eq(TntDept::getStatus, CommonEnum.YES.getValue())
);
return deptList;
}
//涉及角色
// public static List<PlatOrg> getDeptList(String deptId) {//集团 品牌 酒店 部门 上级和下级
// PlatOrgQueryDTO tntDeptQueryDTO = new PlatOrgQueryDTO();
//
// tntDeptQueryDTO.setDeptId(deptId);
//
// return tntDeptService.list(tntDeptQueryDTO);
// }
//涉及角色
// public static List<PlatOrg> getDeptList(String deptId, String fromHotel) {//集团 品牌 酒店 部门 上级和下级
// PlatOrgQueryDTO tntDeptQueryDTO = new PlatOrgQueryDTO();
//
// tntDeptQueryDTO.setDeptId(deptId);
// tntDeptQueryDTO.setFromHotel(fromHotel);
//
// return tntDeptService.list(tntDeptQueryDTO);
// }
//涉及角色
// public static List<String> getDeptIdList(String deptId) {//集团 品牌 酒店 部门 上级和下级
// List<String> idList = StreamUtil.map(getDeptList(deptId), PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
//涉及角色
// public static List<String> getDeptCantTapIdList(String deptId, String fromHotel) { //集团 品牌 酒店 部门 上级和下级 可点击的
// List<String> idList = getDeptList(deptId, fromHotel).stream()//.filter(e -> CommonEnum.YES.getValue().equals(e.getCanTap()))
// .map(PlatOrg::getId).collect(Collectors.toList());
// idList.add(-1 + "");
// return idList;
// }
//涉及角色
// public static List<PlatOrg> getDeptSelfAndChildren(String deptId) {//集团 品牌 酒店 上级和下级
// return tntUserService.getDeptSelfAndChildren(deptId);
// }
//涉及角色
// public static List<String> getDeptSelfAndChildrenIdList(String deptId) {//集团 品牌 酒店 上级和下级
// List<String> idList = StreamUtil.map(tntUserService.getDeptSelfAndChildren(deptId), PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
//not ywc
// public static List<TntDept> getDeptSelfAndChildren(String deptName, List<TntDept> selfAndChildren) {
// return getDeptSelfAndChildrenByDeptNameList(Arrays.asList(deptName), selfAndChildren);
// }
// public static List<PlatOrg> getDeptSelfAndChildrenByDeptNameList(List<String> deptNames, Map<String, PlatOrg> selfAndChildren) {
// return tntUserService.getDeptSelfAndChildrenByDeptName(deptNames, selfAndChildren);
// }
//涉及角色
// public static List<PlatOrg> getDeptSelfAndChildrenCanTap(String deptId) {//集团 品牌 酒店 上级和下级 可点击的
// return tntUserService.getDeptSelfAndChildrenCanTap(deptId);
// }
//涉及角色
// public static List<String> getDeptSelfAndChildrenCanTapIdList(String deptId) {//集团 品牌 酒店 上级和下级 可点击的
// List<String> idList = StreamUtil.map(tntUserService.getDeptSelfAndChildrenCanTap(deptId), PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
// //涉及角色
// public static List<String> getDeptSelfAndChildrenCanTapIdListFilterName(String deptId, String name) {//集团 品牌 酒店 上级和下级 可点击的
// List<PlatOrg> deptList = tntUserService.getDeptSelfAndChildrenCanTap(deptId);
// PlatOrgQueryDTO queryDTO = new PlatOrgQueryDTO();
// queryDTO.setName(name);
// deptList = filter(deptList, queryDTO);
// List<String> idList = StreamUtil.map(deptList, PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
// //涉及角色
// public static List<PlatOrg> getHotelList(String deptId) {//酒店那一级
// // 也能点击?
//
// return tntUserService.getHotelList(deptId);
// }
// //涉及角色
// public static List<String> getHotelIdList(String deptId) {//酒店那一级
// // 也能点击?
//
// List<String> deptIdList = StreamUtil.map(tntUserService.getHotelList(deptId), PlatOrg::getId);
// deptIdList.add(-1 + "");
// return deptIdList;
// }
//不涉及角色
// public static List<PlatOrg> filter(List<PlatOrg> deptList, PlatOrgQueryDTO dto) {
// return tntDeptService.filter(deptList, dto);
// }
//
// //不涉及角色
// public static List<PlatOrg> findSelfAndAllParent(String deptId) {
// return tntDeptService.findSelfAndAllParent(deptId);
// }
//
// //不涉及角色
// public static Map<String, List<PlatOrg>> findSelfAndAllParent(List<String> deptIdList) {
// return tntDeptService.findSelfAndAllParent(deptIdList);
// }
//不涉及角色
public static List<String> findSelfAndAllChildrenIdList(String deptId) {
List<String> idList = StreamUtil.map(platOrgService.findSelfAndAllChildren(deptId), PlatOrg::getId);
idList.add(-1 + "");
return idList;
}
// public static PlatOrg getHotel(String deptId) {
// List<PlatOrg> deptList = DeptUtil.findSelfAndAllParent(deptId);
// PlatOrg hotel = null;
// for (PlatOrg d : deptList) {
//// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(d.getTag())) {
//// hotel = d;
//// break;
//// }
// }
//
// return hotel;
// }
//不涉及角色
// public static <T> void fillDept(List<T> list, Function<T, String> getDeptId, BiConsumer<T, String> fillDeptName) {
// List<String> deptIdList = StreamUtil.map(list, getDeptId);
// deptIdList.add(-1 + "");
// Map<String, List<PlatOrg>> deptMap = DeptUtil.findSelfAndAllParent(deptIdList);
// list.forEach(e -> {
// MapUtil.setIfPresent(deptMap, getDeptId.apply(e), l -> {
// fillDeptName.accept(e, l.stream().map(PlatOrg::getName).collect(Collectors.joining("-")));
// });
// });
// }
public static <T> void join(List<T> list, Function<T, String> getNid, BiConsumer<T, PlatOrg> consumer) {
JoinUtil.join(list, platOrgService, null, getNid, PlatOrg::getId, consumer);
}
public static String getDeptName(List<String> applyDeptIds, Map<String, String> deptMap) {
if (CollectionUtils.isEmpty(applyDeptIds) || MapUtils.isEmpty(deptMap)) {
return "";
}
StringBuilder sb = new StringBuilder();
for (String applyDeptId : applyDeptIds) {
String dept = deptMap.get(applyDeptId);
if (ObjectUtils.isNotEmpty(dept)) {
sb.append(dept + ",");
}
}
if (sb.length() > 0) {
return sb.deleteCharAt(sb.length() - 1).toString();
}
return "";
}
// @Autowired
// public void setTntUserService(TntUserService tntUserService) {
// DeptUtil.tntUserService = tntUserService;
// }
//
// @Autowired
// public void setTntDeptService(TntDeptService tntDeptService) {
// DeptUtil.tntDeptService = tntDeptService;
// }
}
...@@ -32,7 +32,7 @@ public interface PlatUserService extends IService<PlatUser> { ...@@ -32,7 +32,7 @@ public interface PlatUserService extends IService<PlatUser> {
List<PlatUserDTOVO> listTenant(PlatUserQueryDTO dto); List<PlatUserDTOVO> listTenant(PlatUserQueryDTO dto);
void add(PlatUserDTOVO dto); String add(PlatUserDTOVO dto);
void edit(PlatUserDTOVO dto); void edit(PlatUserDTOVO dto);
......
...@@ -235,7 +235,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser> ...@@ -235,7 +235,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
@Transactional @Transactional
@Override @Override
public void add(PlatUserDTOVO dto) { public String add(PlatUserDTOVO dto) {
check(dto); check(dto);
PlatUser user = BeanDtoVoUtils.convert(dto, PlatUser.class); PlatUser user = BeanDtoVoUtils.convert(dto, PlatUser.class);
user.setIsTenant(CommonEnum.YES.getValue()); user.setIsTenant(CommonEnum.YES.getValue());
...@@ -247,6 +247,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser> ...@@ -247,6 +247,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
user.setAccount(dto.getMobile()); user.setAccount(dto.getMobile());
save(user); save(user);
dto.setId(user.getId()); dto.setId(user.getId());
return user.getId();
} }
......
...@@ -3,8 +3,8 @@ package com.makeit.service.platform.elder; ...@@ -3,8 +3,8 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoEditVO; import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoQueryDTO; import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo; import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO; import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO; import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO;
......
...@@ -3,7 +3,7 @@ package com.makeit.service.platform.elder; ...@@ -3,7 +3,7 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.PlatElderPhysicalReportDTOVO; import com.makeit.dto.platform.elder.add.PlatElderPhysicalReportDTOVO;
import com.makeit.entity.platform.elder.PlatElderPhysicalReport; import com.makeit.entity.platform.elder.PlatElderPhysicalReport;
import java.util.List; import java.util.List;
......
...@@ -3,10 +3,14 @@ package com.makeit.service.platform.elder; ...@@ -3,10 +3,14 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.elder.*; import com.makeit.dto.platform.elder.*;
import com.makeit.dto.platform.elder.add.PlatElderAddDTO;
import com.makeit.dto.platform.elder.add.PlatElderDTOVO;
import com.makeit.entity.platform.elder.PlatElder; import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.vo.platform.elder.PlatElderListVO; import com.makeit.vo.platform.elder.PlatElderListVO;
import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO; import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
...@@ -27,6 +31,10 @@ public interface PlatElderService extends IService<PlatElder> { ...@@ -27,6 +31,10 @@ public interface PlatElderService extends IService<PlatElder> {
void exportExcel(HttpServletResponse response, PlatElderQueryDTO dto); void exportExcel(HttpServletResponse response, PlatElderQueryDTO dto);
void exportTemplate(HttpServletResponse response);
ExcelImportVo importExcel(MultipartFile excelFile) throws Exception;
void add(PlatElderAddDTO dto); void add(PlatElderAddDTO dto);
void edit(PlatElderDTOVO dto); void edit(PlatElderDTOVO dto);
......
...@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoEditVO; import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoQueryDTO; import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.elder.PlatElder; import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo; import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
...@@ -23,7 +23,6 @@ import com.makeit.utils.data.convert.StreamUtil; ...@@ -23,7 +23,6 @@ import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.old.StringUtils; import com.makeit.utils.old.StringUtils;
import com.makeit.utils.sql.join.JoinUtil; import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.utils.user.wechat.WechatUserUtil; import com.makeit.utils.user.wechat.WechatUserUtil;
import com.makeit.vo.platform.device.PlatDeviceListVO;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO; import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO; import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
...@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.PlatElderPhysicalReportDTOVO; import com.makeit.dto.platform.elder.add.PlatElderPhysicalReportDTOVO;
import com.makeit.entity.platform.elder.PlatElderPhysicalReport; import com.makeit.entity.platform.elder.PlatElderPhysicalReport;
import com.makeit.mapper.platform.elder.PlatElderPhysicalReportMapper; import com.makeit.mapper.platform.elder.PlatElderPhysicalReportMapper;
import com.makeit.service.platform.elder.PlatElderPhysicalReportService; import com.makeit.service.platform.elder.PlatElderPhysicalReportService;
......
...@@ -7,7 +7,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -7,7 +7,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.StatusDTO; import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.*; import com.makeit.common.vo.ExcelErrorVo;
import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.elder.PlatElderCheckInDTO;
import com.makeit.dto.platform.elder.PlatElderCheckOutDTO;
import com.makeit.dto.platform.elder.PlatElderImportDTO;
import com.makeit.dto.platform.elder.PlatElderQueryDTO;
import com.makeit.dto.platform.elder.add.*;
import com.makeit.dto.platform.space.TreeDTOVO;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.elder.PlatElder; import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderHealthInfo; import com.makeit.entity.platform.elder.PlatElderHealthInfo;
...@@ -19,6 +26,7 @@ import com.makeit.entity.platform.space.PlatSpace; ...@@ -19,6 +26,7 @@ import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.CodeMessageEnum; import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum; import com.makeit.enums.CommonEnum;
import com.makeit.enums.FileSuffixEnum; import com.makeit.enums.FileSuffixEnum;
import com.makeit.enums.id.TreeConst;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.elder.PlatElderMapper; import com.makeit.mapper.platform.elder.PlatElderMapper;
import com.makeit.service.platform.auth.PlatOrgService; import com.makeit.service.platform.auth.PlatOrgService;
...@@ -30,9 +38,12 @@ import com.makeit.utils.data.convert.BeanDtoVoUtils; ...@@ -30,9 +38,12 @@ import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil; import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil; import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.excel.ExcelUtil; import com.makeit.utils.data.excel.ExcelUtil;
import com.makeit.utils.data.excel.ExcelValidatorUtil;
import com.makeit.utils.old.StringUtils; import com.makeit.utils.old.StringUtils;
import com.makeit.utils.sql.join.JoinUtil; import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.utils.sys.FileUtil; import com.makeit.utils.sys.FileUtil;
import com.makeit.utils.user.plat.PlatUserUtil;
import com.makeit.utils.user.plat.PlatUserVO;
import com.makeit.vo.platform.elder.PlatElderExportVO; import com.makeit.vo.platform.elder.PlatElderExportVO;
import com.makeit.vo.platform.elder.PlatElderListVO; import com.makeit.vo.platform.elder.PlatElderListVO;
import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO; import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO;
...@@ -41,10 +52,14 @@ import org.springframework.beans.BeanUtils; ...@@ -41,10 +52,14 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.*; import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* <p> * <p>
...@@ -187,7 +202,6 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -187,7 +202,6 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
return vo; return vo;
}); });
JoinUtil.join(list, platSpaceService, Arrays.asList( JoinUtil.join(list, platSpaceService, Arrays.asList(
PlatElderExportVO::getStreetSpaceId, PlatElderExportVO::getStreetSpaceId,
PlatElderExportVO::getBuildingSpaceId, PlatElderExportVO::getBuildingSpaceId,
...@@ -211,6 +225,253 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -211,6 +225,253 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
ExcelUtil.export(response, "长者信息" + FileSuffixEnum.EXCEL.getSuffix(), PlatElderExportVO.class, list); ExcelUtil.export(response, "长者信息" + FileSuffixEnum.EXCEL.getSuffix(), PlatElderExportVO.class, list);
} }
@Override
public void exportTemplate(HttpServletResponse response) {
ExcelUtil.exportTemplate(response, "长者信息导入模板" + FileSuffixEnum.EXCEL.getSuffix(), PlatElderImportDTO.class);
}
@Override
public ExcelImportVo importExcel(MultipartFile excelFile) throws Exception {
List<PlatElderImportDTO> list = ExcelUtil.importExcel(null, 3, excelFile, PlatElderImportDTO.class);
List<String> spaceNameList = list.stream().flatMap(e -> Stream.of(
e.getStreetSpaceName(),
e.getBuildingSpaceName(),
e.getUnitSpaceName(),
e.getFloorSpaceName(),
e.getRoomName(),
e.getBedName()
)).collect(Collectors.toList());
List<PlatSpace> spaceList = platSpaceService.list(new QueryWrapper<PlatSpace>().lambda()
.in(PlatSpace::getName, spaceNameList));
List<TreeDTOVO> treeList = BeanDtoVoUtils.listVo(spaceList, TreeDTOVO.class);
List<PlatRoom> roomList = platRoomService.list(new QueryWrapper<PlatRoom>().lambda()
.in(PlatRoom::getName, spaceNameList));
treeList.addAll(
StreamUtil.map(roomList, e -> {
TreeDTOVO tree = new TreeDTOVO();
tree.setName(e.getName());
tree.setParentId(e.getSpaceId());
tree.setId(e.getId());
return tree;
})
);
List<PlatBed> bedList = platBedService.list(new QueryWrapper<PlatBed>().lambda()
.in(PlatBed::getName, spaceNameList));
treeList.addAll(
StreamUtil.map(bedList, e -> {
TreeDTOVO tree = new TreeDTOVO();
tree.setName(e.getName());
tree.setParentId(e.getSpaceId());
tree.setId(e.getId());
return tree;
})
);
Map<String, Map<String, TreeDTOVO>> parentIdName = treeList.stream().collect(Collectors.groupingBy(
TreeDTOVO::getParentId, Collectors.toMap(TreeDTOVO::getName, Function.identity())
));
ExcelImportVo excelImportVo = ExcelValidatorUtil.validateMain(list, l -> {
int start = 3;
List<ExcelErrorVo> errorVoList = new ArrayList<>(10);
for (int i = 0; i < list.size(); i++) {
PlatElderImportDTO platElderImportDTO = list.get(i);
List<String> excelField = Arrays.asList(
"小区",
"楼栋",
"单元",
"楼层"
);
List<String> spaceName = Arrays.asList(
platElderImportDTO.getStreetSpaceName(),
platElderImportDTO.getBuildingSpaceName(),
platElderImportDTO.getUnitSpaceName(),
platElderImportDTO.getFloorSpaceName()//,
// platElderImportDTO.getRoomName(),
// platElderImportDTO.getBedName()
);
boolean success = true;
List<String> spaceIdList = new ArrayList<>(10);
long c = StreamUtil.count(spaceName, StringUtils::isNotBlank);
if (c != 0) {
int lastNotBlankIndex = -1;
for (int j = 0; j < 4; j++) {
if (StringUtils.isNotBlank(spaceName.get(j))) {
lastNotBlankIndex = j;
}
}
for (int j = 0; j <= lastNotBlankIndex; j++) {
if (StringUtils.isBlank(spaceName.get(j))) {
errorVoList.add(new ExcelErrorVo(i + start, excelField.get(j), "不能为空"));
success = false;
}
}
if (success) {
spaceIdList.add(TreeConst.TOP_LEVEL);
for (int j = 0; j <= lastNotBlankIndex; j++) {
String id = null;
Map<String, TreeDTOVO> nameAreaMap = parentIdName.get(spaceIdList.get(j));
if (nameAreaMap != null) {
TreeDTOVO area = nameAreaMap.get(spaceName.get(j));
if (area != null) {
id = area.getId();
}
}
if (StringUtils.isBlank(id)) {
errorVoList.add(new ExcelErrorVo(i + start, excelField.get(j), "导入的数据在数据库中不存在,或者导入的数据父子关系不对"));
spaceIdList.add(null);
success = false;
} else {
spaceIdList.add(id);
}
}
}
if (success && spaceIdList.size() > 1) {
List<BiConsumer<PlatElderImportDTO, String>> consumerList = Arrays.asList(
PlatElderImportDTO::setStreetSpaceId,
PlatElderImportDTO::setBuildingSpaceId,
PlatElderImportDTO::setUnitSpaceId,
PlatElderImportDTO::setFloorSpaceId
);
for (int j = 1; j < spaceIdList.size(); j++) {
consumerList.get(j - 1).accept(platElderImportDTO, spaceIdList.get(j));
}
}
}
List<String> roomAndBed = Arrays.asList(
platElderImportDTO.getRoomName(),
platElderImportDTO.getBedName()
);
//TODO ywc 这个复用了
excelField = Arrays.asList(
"房间号",
"床位"
);
if (c == 0 && StreamUtil.anyMatch(roomAndBed, StringUtils::isNotBlank)) {
errorVoList.add(new ExcelErrorVo(i + start, "小区、楼栋、单元、楼层", "不能为空"));
for (int j = 0; j < 2; j++) {
if (StringUtils.isBlank(roomAndBed.get(j))) {
errorVoList.add(new ExcelErrorVo(i + start, excelField.get(j), "不能为空"));
}
}
}
if (c != 0 && success) {
for (int j = 0; j < 2; j++) {
if (StringUtils.isBlank(roomAndBed.get(j))) {
errorVoList.add(new ExcelErrorVo(i + start, excelField.get(j), "不能为空"));
}
}
//TODO ywc 要不要复用success
if (StreamUtil.allMatch(roomAndBed, StringUtils::isNotBlank)) {
//TODO ywc 复用了spaceIdList
Collections.reverse(spaceIdList);
String lastSpaceId = spaceIdList.stream().filter(StringUtils::isNotBlank).findFirst().orElse(null);
spaceIdList = new ArrayList<>(10);
spaceIdList.add(lastSpaceId);
for (int j = 0; j <= 2; j++) {
String id = null;
Map<String, TreeDTOVO> nameAreaMap = parentIdName.get(spaceIdList.get(j));
if (nameAreaMap != null) {
TreeDTOVO area = nameAreaMap.get(spaceName.get(j));
if (area != null) {
id = area.getId();
}
}
if (StringUtils.isBlank(id)) {
errorVoList.add(new ExcelErrorVo(i + start, excelField.get(j), "导入的数据在数据库中不存在,或者导入的数据父子关系不对"));
spaceIdList.add(null);
success = false;
} else {
spaceIdList.add(id);
}
}
if (success && spaceIdList.size() > 1) {
List<BiConsumer<PlatElderImportDTO, String>> consumerList = Arrays.asList(
PlatElderImportDTO::setRoomId,
PlatElderImportDTO::setBedId
);
for (int j = 1; j < spaceIdList.size(); j++) {
consumerList.get(j - 1).accept(platElderImportDTO, spaceIdList.get(j));
}
}
}
}
}
if (errorVoList.isEmpty()) {
List<PlatElder> platElderList = BeanDtoVoUtils.listVo(list, PlatElder.class);
PlatUserVO platUserVO = PlatUserUtil.getUserVO();
platElderList.forEach(e -> {
e.setOrgId(platUserVO.getOrgId());
e.setCityOrgId(platUserVO.getCityOrgId());
e.setDistrictOrgId(platUserVO.getDistrictOrgId());
e.setStreetOrgId(platUserVO.getStreetOrgId());
e.setOrgPath(platUserVO.getOrgPath());
});
saveBatch(platElderList);
}
return errorVoList;
});
return excelImportVo;
}
private void check(PlatElderAddDTO dto) { private void check(PlatElderAddDTO dto) {
PlatElder old = getOne(new QueryWrapper<PlatElder>().lambda() PlatElder old = getOne(new QueryWrapper<PlatElder>().lambda()
.eq(PlatElder::getCertificateType, dto.getCertificateType()) .eq(PlatElder::getCertificateType, dto.getCertificateType())
......
...@@ -51,27 +51,6 @@ public interface PlatBedService extends IService<PlatBed> { ...@@ -51,27 +51,6 @@ public interface PlatBedService extends IService<PlatBed> {
void del(String id); void del(String id);
void changeStatus(StatusDTO dto); void changeStatus(StatusDTO dto);
/**
* 未绑定设备列表
* @param pageReqDTO
* @return
*/
PageVO<PlatDeviceDTO> pageDevice(PageReqDTO<PlatSpaceDeviceQueryDTO> pageReqDTO);
/**
* 已绑定设备
* @param dto
* @return
*/
List<PlatDeviceDTO> listBindDevice(PlatBedDeviceQueryDTO dto);
/**
*
* @param dto
*/
void bindDevice(PlatRoomBindDeviceDTO dto);
} }
package com.makeit.service.platform.space;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.entity.platform.space.PlatRegionSettingLocation;
/**
* @Author:lzy
* @Date:2023/8/31 16:10
* @Describe:
*/
public interface PlatRegionSettingLocationService extends IService<PlatRegionSettingLocation> {
}
package com.makeit.service.platform.space; package com.makeit.service.platform.space;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.platform.space.PlatRegionSettingDTO;
import com.makeit.dto.platform.space.PlatRegionSettingQueryDTO;
import com.makeit.entity.platform.space.PlatRegionSetting; import com.makeit.entity.platform.space.PlatRegionSetting;
import java.util.List;
/** /**
* @Author:lzy * @Author:lzy
* @Date:2023/8/31 16:13 * @Date:2023/8/31 16:13
* @Describe: * @Describe:
*/ */
public interface PlatRegionSettingService extends IService<PlatRegionSetting> { public interface PlatRegionSettingService extends IService<PlatRegionSetting> {
/**
*
* @param roomId
* @param listDeviceId
*/
void add(String roomId, List<String> listDeviceId);
/**
* 设备解绑时删除
* @param roomId
* @param deviceId
*/
void del(String roomId,String deviceId);
/**
*
* @param dto
* @return
*/
List<PlatRegionSettingDTO> list(PlatRegionSettingQueryDTO dto);
/**
* 编辑
* @param dto
*/
void edit(PlatRegionSettingDTO dto);
} }
package com.makeit.service.platform.space; package com.makeit.service.platform.space;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.PlatBedDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatRoomBindDeviceDTO;
import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatUnbindingDeviceDTO;
import com.makeit.entity.platform.space.PlatRoomBedDevice; import com.makeit.entity.platform.space.PlatRoomBedDevice;
import java.util.List;
/** /**
* @Author:lzy * @Author:lzy
* @Date:2023/9/6 17:44 * @Date:2023/9/6 17:44
* @Describe: * @Describe:
*/ */
public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> { public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> {
/**
* 绑定设备
* @param dto
*/
void bindingDevice(PlatRoomBindDeviceDTO dto);
/**
* 未绑定设备列表
* @param pageReqDTO
* @return
*/
PageVO<PlatDeviceDTO> pageDevice(PageReqDTO<PlatSpaceDeviceQueryDTO> pageReqDTO);
/**
* 已绑定设备
* @param dto
* @return
*/
List<PlatDeviceDTO> listBindDevice(PlatBedDeviceQueryDTO dto);
/**
* 解绑设备
* @param dto
*/
void unbindingDevice(PlatUnbindingDeviceDTO dto);
} }
...@@ -146,66 +146,5 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl ...@@ -146,66 +146,5 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl
updateById(bed); updateById(bed);
} }
@Override
public PageVO<PlatDeviceDTO> pageDevice(PageReqDTO<PlatSpaceDeviceQueryDTO> pageReqDTO) {
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.select(PlatRoomBedDevice::getEquipmentId);
List<PlatRoomBedDevice> list = platRoomBedDeviceService.list(queryWrapper1);
List<String> listEquipmentIds = list.stream().map(item->item.getEquipmentId()).collect(Collectors.toList());
PlatSpaceDeviceQueryDTO dto = pageReqDTO.getData();
Page<PlatDevice> p = PageUtil.toMpPage(pageReqDTO);
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.notIn(PlatDevice::getId, listEquipmentIds);
queryWrapper.eq(PlatDevice::getCategory,dto.getCategory());
queryWrapper.like(StringUtil.isNotEmpty(dto.getOriDeviceId()), PlatDevice::getOriDeviceId, dto.getOriDeviceId());
queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatDevice::getName, dto.getName());
queryWrapper.like(StringUtil.isNotEmpty(dto.getProductName()), PlatDevice::getProductName, dto.getProductName());
queryWrapper.eq(StringUtil.isNotEmpty(dto.getStatus()), PlatDevice::getStatus, dto.getStatus());
Page<PlatDevice> pages = platDeviceService.page(p, queryWrapper);
List<PlatDeviceDTO> listRecord = BeanDtoVoUtils.listVo(pages.getRecords(), PlatDeviceDTO.class);
return PageUtil.toPageVO(listRecord, pages);
}
@Override
public List<PlatDeviceDTO> listBindDevice(PlatBedDeviceQueryDTO dto) {
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(PlatRoomBedDevice::getRoomId,dto.getRoomId());
List<PlatRoomBedDevice> list = platRoomBedDeviceService.list(queryWrapper1);
List<String> listEquipmentIds = list.stream().map(item->item.getEquipmentId()).collect(Collectors.toList());
List<String> listBedIds = list.stream().map(item->item.getBedId()).collect(Collectors.toList());
LambdaQueryWrapper<PlatBed> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.in(PlatBed::getId,listBedIds);
List<PlatBed> listBeds = list(queryWrapper2);
Map<String,String> map = listBeds.stream().collect(Collectors.toMap(PlatBed::getId,PlatBed::getName,(k1,k2)->k1));
Map<String,String> mapName = new HashMap<>();
list.forEach(item->{
if(map.containsKey(item.getBedId())){
mapName.put(item.getEquipmentId(),map.get(item.getBedId()));
}
});
List<PlatDeviceDTO> data = new ArrayList<>();
if(!listEquipmentIds.isEmpty()){
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART);
queryWrapper.in(PlatDevice::getId,listEquipmentIds);
List<PlatDevice> listDevices = platDeviceService.list(queryWrapper);
data = BeanDtoVoUtils.listVo(listDevices,PlatDeviceDTO.class);
data.forEach(item->{
item.setBedName(mapName.get(item.getId()));
});
}
return data;
}
@Override
public void bindDevice(PlatRoomBindDeviceDTO dto) {
}
} }
package com.makeit.service.platform.space.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.entity.platform.space.PlatRegionSettingLocation;
import com.makeit.mapper.platform.space.PlatRegionSettingLocationMapper;
import com.makeit.service.platform.space.PlatRegionSettingLocationService;
import org.springframework.stereotype.Service;
/**
* @Author:lzy
* @Date:2023/8/31 16:10
* @Describe:
*/
@Service
public class PlatRegionSettingLocationServiceImpl extends ServiceImpl<PlatRegionSettingLocationMapper, PlatRegionSettingLocation> implements PlatRegionSettingLocationService {
}
package com.makeit.service.platform.space.impl; package com.makeit.service.platform.space.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.platform.space.PlatRegionSettingDTO;
import com.makeit.dto.platform.space.PlatRegionSettingQueryDTO;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.space.PlatRegionSetting; import com.makeit.entity.platform.space.PlatRegionSetting;
import com.makeit.enums.platform.device.PlatDeviceEnum;
import com.makeit.mapper.platform.space.PlatRegionSettingMapper; import com.makeit.mapper.platform.space.PlatRegionSettingMapper;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatRegionSettingService; import com.makeit.service.platform.space.PlatRegionSettingService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @Author:lzy * @Author:lzy
...@@ -13,4 +27,82 @@ import org.springframework.stereotype.Service; ...@@ -13,4 +27,82 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingMapper, PlatRegionSetting> implements PlatRegionSettingService { public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingMapper, PlatRegionSetting> implements PlatRegionSettingService {
@Autowired
private PlatDeviceService platDeviceService;
@Override
@Transactional(rollbackFor = Exception.class)
public void add(String roomId, List<String> listDeviceId) {
if(!listDeviceId.isEmpty()){
LambdaQueryWrapper<PlatDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.in(PlatDevice::getId,listDeviceId);
queryWrapper1.select(PlatDevice::getId);
queryWrapper1.ne(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART);
List<PlatDevice> devices = platDeviceService.list(queryWrapper1);
listDeviceId = devices.stream().map(item->item.getId()).collect(Collectors.toList());
List<PlatRegionSetting> list = new ArrayList<>();
listDeviceId.forEach(item->{
PlatRegionSetting platRegionSetting = new PlatRegionSetting();
platRegionSetting.setDeviceId(item);
platRegionSetting.setRoomId(roomId);
list.add(platRegionSetting);
});
if(!list.isEmpty()){
saveBatch(list);
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(String roomId, String deviceId) {
LambdaQueryWrapper<PlatRegionSetting> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatRegionSetting::getRoomId,roomId);
queryWrapper.eq(PlatRegionSetting::getDeviceId,deviceId);
remove(queryWrapper);
}
@Override
public List<PlatRegionSettingDTO> list(PlatRegionSettingQueryDTO dto) {
LambdaQueryWrapper<PlatRegionSetting> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatRegionSetting::getRoomId,dto.getRoomId());
List<PlatRegionSetting> list = list(queryWrapper);
List<PlatRegionSettingDTO> data = BeanDtoVoUtils.listVo(list,PlatRegionSettingDTO.class);
if(!list.isEmpty()){
List<String> listDeviceIds = data.stream().map(item->item.getDeviceId()).collect(Collectors.toList());
LambdaQueryWrapper<PlatDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.in(PlatDevice::getId,listDeviceIds);
queryWrapper1.select(PlatDevice::getId,PlatDevice::getName);
List<PlatDevice> devices = platDeviceService.list(queryWrapper1);
Map<String,String> map = devices.stream().collect(Collectors.toMap(PlatDevice::getId,PlatDevice::getName,(k1,k2)->k1));
data.forEach(item->{
item.setDeviceName(map.get(item.getDeviceId()));
});
}
return data;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void edit(PlatRegionSettingDTO dto) {
PlatRegionSetting platRegionSetting = getById(dto.getId());
platRegionSetting.setInstallType(dto.getInstallType());
platRegionSetting.setToward(dto.getToward());
platRegionSetting.setRegionName(dto.getRegionName());
platRegionSetting.setRegionRange(dto.getRegionRange());
platRegionSetting.setDeviceId(dto.getDeviceId());
platRegionSetting.setRoomId(dto.getRoomId());
updateById(platRegionSetting);
}
} }
package com.makeit.service.platform.space.impl; package com.makeit.service.platform.space.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.PlatBedDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatRoomBindDeviceDTO;
import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatUnbindingDeviceDTO;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoomBedDevice; import com.makeit.entity.platform.space.PlatRoomBedDevice;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.device.PlatDeviceEnum;
import com.makeit.mapper.platform.space.PlatRoomBedDeviceMapper; import com.makeit.mapper.platform.space.PlatRoomBedDeviceMapper;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRegionSettingService;
import com.makeit.service.platform.space.PlatRoomBedDeviceService; import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @Author:lzy * @Author:lzy
...@@ -13,4 +40,127 @@ import org.springframework.stereotype.Service; ...@@ -13,4 +40,127 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceMapper, PlatRoomBedDevice> implements PlatRoomBedDeviceService { public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceMapper, PlatRoomBedDevice> implements PlatRoomBedDeviceService {
@Autowired
private PlatDeviceService platDeviceService;
@Autowired
private PlatBedService platBedService;
@Autowired
private PlatRegionSettingService platRegionSettingService;
@Override
@Transactional(rollbackFor = Exception.class)
public void bindingDevice(PlatRoomBindDeviceDTO dto) {
List<String> listEquipmentIds = dto.getListDeviceId();
List<PlatRoomBedDevice> list = new ArrayList<>();
listEquipmentIds.forEach(item->{
PlatRoomBedDevice data = new PlatRoomBedDevice();
data.setDeviceId(item);
data.setRoomId(dto.getRoomId());
data.setBedId(dto.getBedId());
list.add(data);
});
if(!list.isEmpty()){
saveBatch(list);
//区域设备
platRegionSettingService.add(dto.getRoomId(),dto.getListDeviceId());
}
}
@Override
public PageVO<PlatDeviceDTO> pageDevice(PageReqDTO<PlatSpaceDeviceQueryDTO> pageReqDTO) {
PlatSpaceDeviceQueryDTO dto = pageReqDTO.getData();
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.select(PlatRoomBedDevice::getDeviceId);
if(StringUtil.isNotEmpty(dto.getRoomId())){
queryWrapper1.ne(PlatRoomBedDevice::getRoomId,dto.getRoomId());
}
if(CommonEnum.NO.getValue().equals(dto.getIsRoom())){
queryWrapper1.isNull(PlatRoomBedDevice::getBedId);
}
List<PlatRoomBedDevice> list = list(queryWrapper1);
List<String> listEquipmentIds = list.stream().map(item->item.getDeviceId()).collect(Collectors.toList());
Page<PlatDevice> p = PageUtil.toMpPage(pageReqDTO);
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.notIn(PlatDevice::getId, listEquipmentIds);
queryWrapper.eq(PlatDevice::getCategory,dto.getCategory());
queryWrapper.like(StringUtil.isNotEmpty(dto.getOriDeviceId()), PlatDevice::getOriDeviceId, dto.getOriDeviceId());
queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatDevice::getName, dto.getName());
queryWrapper.like(StringUtil.isNotEmpty(dto.getProductName()), PlatDevice::getProductName, dto.getProductName());
queryWrapper.eq(StringUtil.isNotEmpty(dto.getStatus()), PlatDevice::getStatus, dto.getStatus());
Page<PlatDevice> pages = platDeviceService.page(p, queryWrapper);
List<PlatDeviceDTO> listRecord = BeanDtoVoUtils.listVo(pages.getRecords(), PlatDeviceDTO.class);
return PageUtil.toPageVO(listRecord, pages);
}
@Override
public List<PlatDeviceDTO> listBindDevice(PlatBedDeviceQueryDTO dto) {
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(PlatRoomBedDevice::getRoomId,dto.getRoomId());
queryWrapper1.eq(StringUtil.isNotEmpty(dto.getBedId()),PlatRoomBedDevice::getBedId,dto.getBedId());
List<PlatRoomBedDevice> list = list(queryWrapper1);
List<String> listEquipmentIds = list.stream().map(item->item.getDeviceId()).collect(Collectors.toList());
List<String> listBedIds = list.stream().map(item->item.getBedId()).collect(Collectors.toList());
LambdaQueryWrapper<PlatBed> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.in(PlatBed::getId,listBedIds);
List<PlatBed> listBeds = platBedService.list(queryWrapper2);
Map<String,String> map = listBeds.stream().collect(Collectors.toMap(PlatBed::getId,PlatBed::getName,(k1, k2)->k1));
Map<String,String> mapName = new HashMap<>();
list.forEach(item->{
if(map.containsKey(item.getBedId())){
mapName.put(item.getDeviceId(),map.get(item.getBedId()));
}
});
List<PlatDeviceDTO> data = new ArrayList<>();
if(!listEquipmentIds.isEmpty()){
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART);
queryWrapper.in(PlatDevice::getId,listEquipmentIds);
List<PlatDevice> listDevices = platDeviceService.list(queryWrapper);
data = BeanDtoVoUtils.listVo(listDevices,PlatDeviceDTO.class);
data.forEach(item->{
item.setBedName(mapName.get(item.getId()));
});
}
return data;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void unbindingDevice(PlatUnbindingDeviceDTO dto) {
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatRoomBedDevice::getDeviceId,dto.getEquipmentId());
queryWrapper.eq(PlatRoomBedDevice::getRoomId,dto.getRoomId());
queryWrapper.eq(StringUtil.isNotEmpty(dto.getBedId()),PlatRoomBedDevice::getBedId,dto.getBedId());
List<PlatRoomBedDevice> list = list(queryWrapper);
if(StringUtil.isNotEmpty(dto.getBedId())){
list.forEach(item->{
item.setBedId(null);
});
updateBatchById(list);
}else{
List<String> ids = list.stream().map(item->item.getId()).collect(Collectors.toList());
removeByIds(ids);
platRegionSettingService.del(dto.getRoomId(),dto.getEquipmentId());
}
}
} }
...@@ -82,7 +82,7 @@ public class PlatRoomServiceImpl extends ServiceImpl<PlatRoomMapper, PlatRoom> i ...@@ -82,7 +82,7 @@ public class PlatRoomServiceImpl extends ServiceImpl<PlatRoomMapper, PlatRoom> i
removeByIds(ids); removeByIds(ids);
} }
@Transactional @Transactional(rollbackFor = Exception.class)
@Override @Override
public void delCascade(List<String> ids) { public void delCascade(List<String> ids) {
removeByIds(ids); removeByIds(ids);
...@@ -118,6 +118,7 @@ public class PlatRoomServiceImpl extends ServiceImpl<PlatRoomMapper, PlatRoom> i ...@@ -118,6 +118,7 @@ public class PlatRoomServiceImpl extends ServiceImpl<PlatRoomMapper, PlatRoom> i
Page<PlatRoom> p = PageUtil.toMpPage(page); Page<PlatRoom> p = PageUtil.toMpPage(page);
LambdaQueryWrapper<PlatRoom> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatRoom> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatRoom::getName, dto.getName()); queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatRoom::getName, dto.getName());
queryWrapper.eq(StringUtil.isNotEmpty(dto.getSpaceId()),PlatRoom::getSpaceId,dto.getSpaceId());
Page<PlatRoom> pages = page(p, queryWrapper); Page<PlatRoom> pages = page(p, queryWrapper);
return PageUtil.toPageVO(pages.getRecords(), pages); return PageUtil.toPageVO(pages.getRecords(), pages);
} }
......
...@@ -19,7 +19,7 @@ public interface PlatMenuService extends IService<PlatMenu> { ...@@ -19,7 +19,7 @@ public interface PlatMenuService extends IService<PlatMenu> {
List<PlatMenuDTOVO> tree(PlatMenuQueryDTO dto); List<PlatMenuDTOVO> tree(PlatMenuQueryDTO dto);
void add(PlatMenuDTOVO dto); String add(PlatMenuDTOVO dto);
void edit(PlatMenuDTOVO dto); void edit(PlatMenuDTOVO dto);
......
...@@ -20,7 +20,7 @@ public interface SaasMenuService extends IService<SaasMenu> { ...@@ -20,7 +20,7 @@ public interface SaasMenuService extends IService<SaasMenu> {
List<SaasMenuDTOVO> tree(SaasMenuQueryDTO dto); List<SaasMenuDTOVO> tree(SaasMenuQueryDTO dto);
void add(SaasMenuDTOVO dto); String add(SaasMenuDTOVO dto);
void edit(SaasMenuDTOVO dto); void edit(SaasMenuDTOVO dto);
......
...@@ -14,7 +14,7 @@ public interface SaasPrivacyConfigService extends IService<SaasPrivacyConfig> { ...@@ -14,7 +14,7 @@ public interface SaasPrivacyConfigService extends IService<SaasPrivacyConfig> {
* *
* @param saasPrivacyConfigDTO * @param saasPrivacyConfigDTO
*/ */
void add(SaasPrivacyConfigDTO saasPrivacyConfigDTO); String add(SaasPrivacyConfigDTO saasPrivacyConfigDTO);
/** /**
* *
......
...@@ -22,7 +22,7 @@ public interface SaasRoleService extends IService<SaasRole> { ...@@ -22,7 +22,7 @@ public interface SaasRoleService extends IService<SaasRole> {
PageVO<SaasRoleDTOVO> page(PageReqDTO<SaasRoleDTOVO> dto); PageVO<SaasRoleDTOVO> page(PageReqDTO<SaasRoleDTOVO> dto);
void add(SaasRoleDTOVO dto); String add(SaasRoleDTOVO dto);
void edit(SaasRoleDTOVO dto); void edit(SaasRoleDTOVO dto);
......
...@@ -26,7 +26,7 @@ public interface SaasUserService extends IService<SaasUser> { ...@@ -26,7 +26,7 @@ public interface SaasUserService extends IService<SaasUser> {
List<SaasUserDTOVO> listNoSuperAdmin(SaasUserQueryDTO dto); List<SaasUserDTOVO> listNoSuperAdmin(SaasUserQueryDTO dto);
void add(SaasUserDTOVO dto); String add(SaasUserDTOVO dto);
void edit(SaasUserDTOVO dto); void edit(SaasUserDTOVO dto);
......
...@@ -117,7 +117,7 @@ implements PlatMenuService { ...@@ -117,7 +117,7 @@ implements PlatMenuService {
*/ */
private void checkCode(PlatMenuDTOVO dto) { private void checkCode(PlatMenuDTOVO dto) {
PlatMenu old = getOne(new QueryWrapper<PlatMenu>().lambda() PlatMenu old = getOne(new QueryWrapper<PlatMenu>().lambda()
.eq(PlatMenu::getName, dto.getName())); .eq(PlatMenu::getCode, dto.getCode()));
if (old != null && !old.getId().equals(dto.getId())) { if (old != null && !old.getId().equals(dto.getId())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_CODE_DUPLICATE); throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_CODE_DUPLICATE);
} }
...@@ -125,9 +125,11 @@ implements PlatMenuService { ...@@ -125,9 +125,11 @@ implements PlatMenuService {
@Transactional @Transactional
@Override @Override
public void add(PlatMenuDTOVO dto) { public String add(PlatMenuDTOVO dto) {
checkCode(dto); checkCode(dto);
save(BeanDtoVoUtils.convert(dto, PlatMenu.class)); PlatMenu platMenu = BeanDtoVoUtils.convert(dto, PlatMenu.class);
save(platMenu);
return platMenu.getId();
} }
@Transactional @Transactional
...@@ -174,33 +176,33 @@ implements PlatMenuService { ...@@ -174,33 +176,33 @@ implements PlatMenuService {
public void sync() { public void sync() {
List<PlatMenu> exitList = list(new QueryWrapper<PlatMenu>().lambda() List<PlatMenu> exitList = list(new QueryWrapper<PlatMenu>().lambda()
.isNotNull(PlatMenu::getName) .isNotNull(PlatMenu::getCode)
.in(PlatMenu::getResourceType, SysEnum.MenuTypeEnum.MENU.getValue(), SysEnum.MenuTypeEnum.BUTTON.getValue()) .in(PlatMenu::getResourceType, SysEnum.MenuTypeEnum.MENU.getValue(), SysEnum.MenuTypeEnum.BUTTON.getValue())
); );
Map<String, PlatMenu> exitCodeMap = StreamUtil.toMapDep(exitList, PlatMenu::getName); Map<String, PlatMenu> exitCodeMap = StreamUtil.toMapDep(exitList, PlatMenu::getCode);
//查询数据库中已存在的权限 //查询数据库中已存在的权限
List<PlatMenu> exitButtonList = StreamUtil.filter(exitList, e -> SysEnum.MenuTypeEnum.BUTTON.getValue().equals(e.getResourceType())); List<PlatMenu> exitButtonList = StreamUtil.filter(exitList, e -> SysEnum.MenuTypeEnum.BUTTON.getValue().equals(e.getResourceType()));
Map<String, PlatMenu> exitButtonCodeMap = StreamUtil.toMap(exitButtonList, PlatMenu::getName); Map<String, PlatMenu> exitButtonCodeMap = StreamUtil.toMap(exitButtonList, PlatMenu::getCode);
//加载项目中的权限 //加载项目中的权限
List<PlatMenu> loadActionList = StreamUtil.filter(this.load(), e -> !TreeConst.TOP_LEVEL.equals(e.getParentId())); List<PlatMenu> loadActionList = StreamUtil.filter(this.load(), e -> !TreeConst.TOP_LEVEL.equals(e.getParentId()));
Set<String> loadActionCodeList = loadActionList.stream().map(PlatMenu::getName).collect(Collectors.toSet()); Set<String> loadActionCodeList = loadActionList.stream().map(PlatMenu::getCode).collect(Collectors.toSet());
//新增加的权限 //新增加的权限
List<PlatMenu> addActionList = loadActionList.stream().filter(item -> List<PlatMenu> addActionList = loadActionList.stream().filter(item ->
!exitButtonCodeMap.containsKey(item.getName())).collect(Collectors.toList()); !exitButtonCodeMap.containsKey(item.getCode())).collect(Collectors.toList());
//删除的权限 //删除的权限
List<PlatMenu> deleteActionList = exitButtonList.stream().filter(item -> List<PlatMenu> deleteActionList = exitButtonList.stream().filter(item ->
!loadActionCodeList.contains(item.getName())).collect(Collectors.toList()); !loadActionCodeList.contains(item.getCode())).collect(Collectors.toList());
saveBatch(StreamUtil.filter(addActionList, e -> TreeConst.TOP_LEVEL.equals(e.getParentId()))); saveBatch(StreamUtil.filter(addActionList, e -> TreeConst.TOP_LEVEL.equals(e.getParentId())));
addActionList.forEach(e -> { addActionList.forEach(e -> {
if (TreeConst.TOP_LEVEL.equals(e.getParentId())) { if (TreeConst.TOP_LEVEL.equals(e.getParentId())) {
exitCodeMap.put(e.getName(), e); exitCodeMap.put(e.getCode(), e);
} }
}); });
...@@ -210,7 +212,7 @@ implements PlatMenuService { ...@@ -210,7 +212,7 @@ implements PlatMenuService {
if (!TreeConst.TOP_LEVEL.equals(e.getParentId())) { if (!TreeConst.TOP_LEVEL.equals(e.getParentId())) {
String groupCode = getGroupCode(e.getName()); String groupCode = getGroupCode(e.getCode());
PlatMenu buttonGroup = exitCodeMap.get(groupCode); PlatMenu buttonGroup = exitCodeMap.get(groupCode);
if (buttonGroup != null) { if (buttonGroup != null) {
e.setParentId(buttonGroup.getId()); e.setParentId(buttonGroup.getId());
...@@ -287,7 +289,7 @@ implements PlatMenuService { ...@@ -287,7 +289,7 @@ implements PlatMenuService {
PlatMenu button = new PlatMenu(); PlatMenu button = new PlatMenu();
button.setName(action.name()); button.setName(action.name());
//button.setCode(e); button.setCode(e);
button.setSort(0); button.setSort(0);
button.setStatus(CommonEnum.YES.getValue()); button.setStatus(CommonEnum.YES.getValue());
button.setResourceType(SysEnum.MenuTypeEnum.BUTTON.getValue()); button.setResourceType(SysEnum.MenuTypeEnum.BUTTON.getValue());
...@@ -323,7 +325,7 @@ implements PlatMenuService { ...@@ -323,7 +325,7 @@ implements PlatMenuService {
private PlatMenu generateButtonGroup(String name, String code) { private PlatMenu generateButtonGroup(String name, String code) {
PlatMenu button = new PlatMenu(); PlatMenu button = new PlatMenu();
button.setName(name); button.setName(name);
// button.setCode(code); button.setCode(code);
button.setParentId(TreeConst.TOP_LEVEL); button.setParentId(TreeConst.TOP_LEVEL);
button.setSort(0); button.setSort(0);
button.setStatus(CommonEnum.YES.getValue()); button.setStatus(CommonEnum.YES.getValue());
......
...@@ -127,9 +127,11 @@ public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> i ...@@ -127,9 +127,11 @@ public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> i
@Transactional @Transactional
@Override @Override
public void add(SaasMenuDTOVO dto) { public String add(SaasMenuDTOVO dto) {
checkCode(dto); checkCode(dto);
save(BeanDtoVoUtils.convert(dto, SaasMenu.class)); SaasMenu saasMenu = BeanDtoVoUtils.convert(dto, SaasMenu.class);
save(saasMenu);
return saasMenu.getId();
} }
@Transactional @Transactional
......
...@@ -20,13 +20,15 @@ public class SaasPrivacyConfigServiceImpl extends ServiceImpl<SaasPrivacyConfigM ...@@ -20,13 +20,15 @@ public class SaasPrivacyConfigServiceImpl extends ServiceImpl<SaasPrivacyConfigM
implements SaasPrivacyConfigService{ implements SaasPrivacyConfigService{
@Override @Override
@Transactional @Transactional
public void add(SaasPrivacyConfigDTO saasPrivacyConfigDTO) { public String add(SaasPrivacyConfigDTO saasPrivacyConfigDTO) {
LambdaQueryWrapper<SaasPrivacyConfig> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SaasPrivacyConfig> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SaasPrivacyConfig::getCategory, saasPrivacyConfigDTO.getCategory()); queryWrapper.eq(SaasPrivacyConfig::getCategory, saasPrivacyConfigDTO.getCategory());
this.remove(queryWrapper); this.remove(queryWrapper);
this.save(BeanDtoVoUtils.convert(saasPrivacyConfigDTO, SaasPrivacyConfig.class)); SaasPrivacyConfig saasPrivacyConfig = BeanDtoVoUtils.convert(saasPrivacyConfigDTO, SaasPrivacyConfig.class);
this.save(saasPrivacyConfig);
return saasPrivacyConfig.getId();
} }
......
...@@ -101,11 +101,12 @@ implements SaasRoleService{ ...@@ -101,11 +101,12 @@ implements SaasRoleService{
@Transactional @Transactional
@Override @Override
public void add(SaasRoleDTOVO dto) { public String add(SaasRoleDTOVO dto) {
check(dto); check(dto);
SaasRole saasRole = BeanDtoVoUtils.convert(dto, SaasRole.class); SaasRole saasRole = BeanDtoVoUtils.convert(dto, SaasRole.class);
save(saasRole); save(saasRole);
assignMenuList(saasRole.getId(),dto.getMenuIdList()); assignMenuList(saasRole.getId(),dto.getMenuIdList());
return saasRole.getId();
} }
@Transactional @Transactional
......
...@@ -230,7 +230,7 @@ implements SaasUserService{ ...@@ -230,7 +230,7 @@ implements SaasUserService{
@Transactional @Transactional
@Override @Override
public void add(SaasUserDTOVO dto) { public String add(SaasUserDTOVO dto) {
check(dto); check(dto);
SaasUser user = BeanDtoVoUtils.convert(dto, SaasUser.class); SaasUser user = BeanDtoVoUtils.convert(dto, SaasUser.class);
...@@ -242,6 +242,8 @@ implements SaasUserService{ ...@@ -242,6 +242,8 @@ implements SaasUserService{
save(user); save(user);
dto.setId(user.getId()); dto.setId(user.getId());
setRoleList(dto); setRoleList(dto);
return user.getId();
} }
@Transactional @Transactional
......
...@@ -252,7 +252,7 @@ public class PlatElderExportVO extends BaseTenantDTO { ...@@ -252,7 +252,7 @@ public class PlatElderExportVO extends BaseTenantDTO {
// @ApiModelProperty(value = "婚姻") // @ApiModelProperty(value = "婚姻")
// private String marriage; // private String marriage;
@ExcelProperty(value = "备注")
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remark; private String remark;
......
...@@ -134,16 +134,11 @@ sms: ...@@ -134,16 +134,11 @@ sms:
url: http://www.aozoneyun.com/message/message/send url: http://www.aozoneyun.com/message/message/send
uid: 357 uid: 357
pwd: xmks123456 pwd: xmks123456
rec: voice-sms:
url: send:
query: url: http://www.aozoneyun.com/Message/Message/video_send
url: http://www.aozoneyun.com/message/message/balance uid: 362
pwd: xmksyy123456
voiceSms:
url: http://www.aozoneyun.com/Message/Message/video_send
uid: 362
pwd: xmksyy123456
......
...@@ -131,13 +131,8 @@ sms: ...@@ -131,13 +131,8 @@ sms:
url: http://www.aozoneyun.com/message/message/send url: http://www.aozoneyun.com/message/message/send
uid: 357 uid: 357
pwd: xmks123456 pwd: xmks123456
rec: voice-sms:
url: send:
query: url: http://www.aozoneyun.com/Message/Message/video_send
url: http://www.aozoneyun.com/message/message/balance uid: 362
pwd: xmksyy123456
\ No newline at end of file
voiceSms:
url: http://www.aozoneyun.com/Message/Message/video_send
uid: 362
pwd: xmksyy123456
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment