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 1130 additions and 651 deletions
#旷时IOT项目
## 技术选型
###后端
#####框架:springboot2以上 、mybatis-plus
#####数据库:mysql5.7, ES6.8.1
##### 中间件:nginx 、redis5.7、RabbitMQ、MQTT
IOT框架:jetlinks
旷时IOT项目
技术选型
后端
框架:springboot2以上 、mybatis-plus
数据库:mysql5.7, ES6.8.1
中间件:nginx 、redis5.7、RabbitMQ、MQTT
IOT框架:jetlinks
前端:
#####后台:vue3
#####手机端:uniapp(不上架内部使用)
##### 子女端:子女端需要支持APP
#### 需要对接硬件:
#####1、呼吸雷达
#####2、空间雷达:
### 重要技术点:
##### 1、睡眠模型、呼吸模型、心率模型
##### 2、设备接入MQTT
##### 3、空间点位换算
##### 4、设备数据存储采用 ES
##### 5、业务数据库用mysql
##### 6、搭建RabbitMQ中间件,定义数据上报标准
## 注意事项:
##### 子女端: 子女端支持APP
地图:地图使用高德地图
##项目规范:
###后端:
#####1、项目按模块化开发:SASS端,子女小程序端,平台端,平台端小程序
#####2、模块部署:各个模块可以自己单独部署,模块中引用其他模块的,可单独出一个模块,写成公用的模块去引用,需要各自在公共去写自己引用的或者自己与其他开发进行协商。
##### 3、路径命名:/模块名/controller名/方法名
#####4、文件采用统一表存储,其余业务表直接记录文件表ID
##### 5、手机端接口单独出来写,与后台公用服务层,路径开头全部/app/模块名/controller名/方法名。
#####6、后端权限code: 模块名.controller名.方法名;
#####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、代码要用阿里巴巴的规范扫描一下,不能出现严重和中级的问题
后台:vue3
手机端:uniapp,写成小程序
子女端:子女端需要支持APP(不上架内部使用)
需要对接硬件:
1、呼吸雷达
2、空间雷达
3、跌倒雷达
重要技术点:
1、睡眠模型、呼吸模型、心率模型
2、设备接入MQTT
3、空间点位换算
4、设备数据存储采用 ES
5、业务数据库用mysql
6、搭建RabbitMQ中间件,定义数据上报标准
注意事项:
子女端: 子女端支持APP
业务端获取设备数据: 通过调用iot端接口
地图:地图使用高德地图
项目规范:
后端:
1、项目按模块化开发:SASS端,子女小程序端,平台端,平台端小程序
2、模块部署:各个模块可以自己单独部署,模块中引用其他模块的,可单独出一个模块,写成公用的模块去引用,需要各自在公共去写自己引用的或者自己与其他开发进行协商。
3、路径命名:/模块名/controller名/方法名
4、文件采用统一表存储,其余业务表直接记录文件表ID
5、手机端接口单独出来写,与后台公用服务层,路径开头全部/app/模块名/controller名/方法名。
6、后端权限code: 模块名.controller名.方法名;
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` (
`del_flag` char(1) DEFAULT NULL COMMENT '删除标识',
`create_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 '跳转参数',
`code` varchar(255) DEFAULT NULL COMMENT '页面标识',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户端资源管理';
......
......@@ -64,7 +64,7 @@ CREATE TABLE `plat_bed`
`name` varchar(128) NOT NULL COMMENT '床位名称 床位1,床位2',
`room_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_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
......@@ -80,31 +80,14 @@ CREATE TABLE `plat_bed`
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',
`region_setting_id` varchar(64) NOT NULL COMMENT '区域设置Id',
`install_type` char(1) NOT NULL COMMENT '安装方式 0-顶装 1-侧装',
`toward` char(1) NOT NULL COMMENT '设备朝向 0-上 1-下 2-左 3-右',
`region_name` varchar(64) DEFAULT NULL COMMENT '区域名称',
`region_range` varchar(128) DEFAULT NULL COMMENT '区域定位',
`room_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_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
......@@ -112,4 +95,4 @@ CREATE TABLE `plat_region_setting_location`
`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='区域设置定位';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域设置';
......@@ -64,9 +64,9 @@ public class SaasMenuController {
@Action(module = "saas端-菜单", name = "新增", code = "plat:menu:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasMenuDTOVO dto) {
platMenuService.add(dto);
return ApiResponseUtils.success();
public ApiResponseEntity<String> add(@Validated @RequestBody SaasMenuDTOVO dto) {
String id = platMenuService.add(dto);
return ApiResponseUtils.success(id);
}
@Action(module = "saas端-菜单", name = "编辑", code = "plat:menu:edit")
......
......@@ -65,9 +65,9 @@ public class SaasPlatMenuController {
@Action(module = "saas端-租户资源管理(菜单)", name = "新增", code = "saas:plat:menu:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody PlatMenuDTOVO dto){
platMenuService.add(dto);
return ApiResponseUtils.success();
public ApiResponseEntity<String> add(@Validated @RequestBody PlatMenuDTOVO dto){
String add = platMenuService.add(dto);
return ApiResponseUtils.success(add);
}
@Action(module = "saas端-租户资源管理(菜单)", name = "编辑", code = "saas:plat:menu:edit")
......
......@@ -68,9 +68,9 @@ public class SaasPlatUserController {
@Action(module = "saas端-租户账号", name = "新增", code = "saas.plat.user.add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody PlatUserDTOVO dto){
platUserService.add(dto);
return ApiResponseUtils.success();
public ApiResponseEntity<String> add(@Validated @RequestBody PlatUserDTOVO dto){
String add = platUserService.add(dto);
return ApiResponseUtils.success(add);
}
@Action(module = "saas端-租户账号", name = "编辑", code = "saas.plat.user.edit")
......
......@@ -33,9 +33,9 @@ public class SaasPrivacyConfigController {
//@PlatOperationLogger
@ApiOperation(value = "新增隐私政策-关于我们", notes = "")
@PostMapping("/add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasPrivacyConfigDTO saasPrivacyConfigDTO){
saasPrivacyConfigService.add(saasPrivacyConfigDTO);
return ApiResponseUtils.success();
public ApiResponseEntity<String> add(@Validated @RequestBody SaasPrivacyConfigDTO saasPrivacyConfigDTO){
String add = saasPrivacyConfigService.add(saasPrivacyConfigDTO);
return ApiResponseUtils.success(add);
}
@Action(module = "saas端-隐私政策-关于我们", name = "详情", code = "saas.sys.privacyConfig.view")
......
......@@ -63,9 +63,9 @@ public class SaasRoleController {
@Action(module = "saas端-角色", name = "新增", code = "saas:role:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasRoleDTOVO dto){
saasRoleService.add(dto);
return ApiResponseUtils.success();
public ApiResponseEntity<String> add(@Validated @RequestBody SaasRoleDTOVO dto){
String add = saasRoleService.add(dto);
return ApiResponseUtils.success(add);
}
@Action(module = "saas端-角色", name = "编辑", code = "saas:role:edit")
......
......@@ -74,9 +74,9 @@ public class SaasUserController {
@Action(module = "saas端-用户", name = "新增", code = "saas:user:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasUserDTOVO dto){
saasUserService.add(dto);
return ApiResponseUtils.success();
public ApiResponseEntity<String> add(@Validated @RequestBody SaasUserDTOVO dto){
String add = saasUserService.add(dto);
return ApiResponseUtils.success(add);
}
@Action(module = "saas端-用户", name = "编辑", code = "saas:user:edit")
......
......@@ -6,7 +6,7 @@ public class IdConst {
public static final String DEFAULT_ID_ZERO = "0";
public static final String DEFAULT_ID_ONE = "1";
//todo 这个id待确认
public static final String DEFAULT_FACTORY_ID = "1544975976697262082";
public static final String ROLE_COMMON_USER_NAME="普通用户";
......
......@@ -24,6 +24,11 @@ public class PlatMenuDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "名称")
private String name;
/**
* 资源标识
*/
private String code;
@ApiModelProperty(value = "图标")
private String icon;
......
......@@ -48,7 +48,7 @@ public class PlatTenantDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "租户管理员用户名")
private String userName;
@ApiModelProperty(value = "告警渠道")
@ApiModelProperty(value = "告警渠道 1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单")
private String alertChannel;
@ApiModelProperty(value = "菜单id集合")
......
package com.makeit.utils.msg;
import com.makeit.utils.msg.dto.MsgSendDTO;
import org.springframework.stereotype.Component;
import java.util.Collection;
@Component
public class MsgUtil {
public class MsgSendUtil {
/**
* 发送消息并保存记录
* 发送消息
*/
public void send(SendTypeEnum sendTypeEnum, Collection<String> receiverList, String content){
switch (sendTypeEnum){
......@@ -22,6 +23,28 @@ public class MsgUtil {
break;
case YUNLING:
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;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.Collection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
......@@ -15,16 +15,19 @@ import java.util.regex.Pattern;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MsgDTO {
public class MsgSendDTO {
private SendTypeEnum sendTypeEnum;
private String subject;
private List<String> receiverList;
private Collection<String> receiverList;
private String oriContent;
/**
* 语音短信:老人姓名 最多支持两个
*/
private String[] param;
private String sendContent;
......
package com.makeit.utils.msg.sender;
import com.makeit.utils.msg.dto.MsgDTO;
import com.makeit.utils.msg.dto.MsgSendDTO;
public interface IMsgSender {
......@@ -8,5 +8,5 @@ public interface IMsgSender {
* 发送消息
* @param msgData 消息数据
*/
void send(MsgDTO MsgDTO) throws Exception;
void send(MsgSendDTO msgDTO);
}
package com.makeit.utils.msg.sender;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -25,7 +25,7 @@ public class MailMsgSender implements IMsgSender {
@Override
public void send(MsgDTO msgDTO) {
public void send(MsgSendDTO msgDTO) {
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
......
......@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.makeit.exception.BusinessException;
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.third.HttpClient;
import org.apache.commons.lang3.StringUtils;
......@@ -13,9 +13,9 @@ import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import java.net.URLEncoder;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@Component
......@@ -30,14 +30,14 @@ public class SmsMsgSender implements IMsgSender{
* @param msgDTO
*/
@Override
public void send(MsgDTO msgDTO) throws Exception {
public void send(MsgSendDTO msgDTO) {
try {
Date now = new Date();
String time = String.valueOf(now.getTime());
List<String> receiverList = msgDTO.getReceiverList();
Collection<String> receiverList = msgDTO.getReceiverList();
String receiverJoin = receiverList.stream().collect(Collectors.joining(","));
HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("uid", smsConfig.getUid() + 1000);
paramMap.put("uid", smsConfig.getUid());
//md5-32位( md5-16位(登录密码)+ time )
String md16 = CryptoUtil.md5_16(smsConfig.getPwd());
String md32 = CryptoUtil.md5(md16 + time);
......@@ -47,7 +47,7 @@ public class SmsMsgSender implements IMsgSender{
paramMap.put("content", URLEncoder.encode(msgDTO.getOriContent(), "UTF-8"));
String resStr = HttpClient.sendJSONPostRequest(smsConfig.getUrl(), paramMap, new HttpHeaders(), String.class);
JSONObject jsonObject = JSON.parseObject(resStr);
String status = (String) jsonObject.get("status");
String status = String.valueOf(jsonObject.get("status"));
if (!StringUtils.equals(status, "0")) {
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 {
client = redissonClient;
}
public static RedissonClient getClient() {
return client;
}
/**
* 创建锁带默认过期时间
*/
......
......@@ -8,9 +8,6 @@ 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.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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -20,8 +17,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
@Api(tags = "告警记录")
@RestController
@RequestMapping("/plat/alarm-record")
......@@ -53,30 +48,43 @@ public class PlatAlarmRecordController {
return ApiResponseUtils.success();
}
@Autowired
private MailMsgSender mailMsgSender;
@Autowired
private SmsMsgSender smsMsgSender;
@ApiOperation("测试邮箱")
@PostMapping("testMail")
public ApiResponseEntity<Void> testMail(@RequestBody BaseIdDTO dto) {
MsgDTO msgDTO = new MsgDTO();
msgDTO.setSubject("测试消息");
msgDTO.setReceiverList(Collections.singletonList("994997968@qq.com"));
msgDTO.setOriContent("测试发送邮箱");
mailMsgSender.send(msgDTO);
return ApiResponseUtils.success();
}
@ApiOperation("测试短信")
@PostMapping("testMsg")
public ApiResponseEntity<Void> testMsg(@RequestBody BaseIdDTO dto) throws Exception {
MsgDTO msgDTO = new MsgDTO();
msgDTO.setReceiverList(Collections.singletonList("18850503603"));
msgDTO.setOriContent("测试短信test");
smsMsgSender.send(msgDTO);
return ApiResponseUtils.success();
}
// @Autowired
// private MailMsgSender mailMsgSender;
// @Autowired
// private SmsMsgSender smsMsgSender;
// @Autowired
// private SmsVoiceSender smsVoiceSender;
//
// @ApiOperation("测试邮箱")
// @PostMapping("testMail")
// public ApiResponseEntity<Void> testMail(@RequestBody BaseIdDTO dto) {
// MsgSendDTO msgDTO = new MsgSendDTO();
// msgDTO.setSubject("测试消息");
// msgDTO.setReceiverList(Collections.singletonList("994997968@qq.com"));
// msgDTO.setOriContent("测试发送邮箱");
// mailMsgSender.send(msgDTO);
// return ApiResponseUtils.success();
// }
//
// @ApiOperation("测试短信")
// @PostMapping("testMsg")
// public ApiResponseEntity<Void> testMsg(@RequestBody BaseIdDTO dto) throws Exception {
// MsgSendDTO msgDTO = new MsgSendDTO();
// msgDTO.setReceiverList(Collections.singletonList("18850503603"));
// 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;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoQueryDTO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.service.platform.elder.PlatElderChildrenInfoService;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
import io.swagger.annotations.Api;
......
......@@ -7,17 +7,20 @@ 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.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.vo.platform.elder.PlatElderListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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 org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -56,6 +59,20 @@ public class PlatElderController {
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("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody PlatElderAddDTO dto) {
......
......@@ -6,7 +6,7 @@ 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.elder.PlatElderPhysicalReportDTOVO;
import com.makeit.dto.platform.elder.add.PlatElderPhysicalReportDTOVO;
import com.makeit.service.platform.elder.PlatElderPhysicalReportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......
......@@ -5,11 +5,8 @@ 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.PlatBedEditDTO;
import com.makeit.dto.platform.space.PlatBedQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO;
import com.makeit.entity.platform.space.PlatBed;
import com.makeit.service.platform.space.PlatBedService;
import io.swagger.annotations.Api;
......@@ -21,8 +18,6 @@ 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/6 11:56
......@@ -64,18 +59,4 @@ public class PlatBedController {
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;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
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.user.wechat.WechatUserUtil;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -19,8 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
@Api(tags = "小程序-告警记录")
@RestController
@RequestMapping("/wechat/plat/alarm-record")
......@@ -32,6 +29,10 @@ public class WechatPlatAlarmRecordController {
@ApiOperation("列表")
@PostMapping("page")
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));
}
@ApiOperation("查看")
......@@ -51,19 +52,5 @@ public class WechatPlatAlarmRecordController {
platAlarmRecordService.noticeRelation(dto.getId());
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;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
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.vo.wechat.elder.PlatElderWechatSimpleVO;
import io.swagger.annotations.Api;
......
......@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* <p>
......@@ -51,6 +52,12 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO {
@ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常")
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.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.enums.platform.elder.PlatElderEnum;
......
package com.makeit.dto.platform.elder;
package com.makeit.dto.platform.elder.add;
import com.makeit.common.dto.BaseTenantDTO;
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 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.makeit.common.dto.BaseTenantDTO;
......
package com.makeit.dto.platform.elder;
package com.makeit.dto.platform.elder.add;
import com.makeit.common.dto.BaseTenantDTO;
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 io.swagger.annotations.ApiModel;
......
package com.makeit.dto.platform.elder;
package com.makeit.dto.platform.elder.children;
import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel;
......
......@@ -15,4 +15,7 @@ public class PlatBedDeviceQueryDTO {
@ApiModelProperty("房间Id")
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.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Author:lzy
* @Date:2023/8/31 11:50
* @Date:2023/9/8 14:51
* @Describe:
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "RegionSettingLocation对象", description = "区域设置定位")
public class PlatRegionSettingLocation extends BaseBusEntity {
@ApiModel("PlatRegionSettingDTO")
public class PlatRegionSettingDTO extends BaseIdDTO {
@ApiModelProperty("区域设置Id")
private String regionSettingId;
@ApiModelProperty("安装方式 0-顶装 1-侧装")
@ApiModelProperty("安装方式 数据字典:device.install 0-顶装 1-侧装")
private String installType;
@ApiModelProperty("设备朝向 0-上 1-下 2-左 3-右")
@ApiModelProperty("设备朝向 数据字典:device.toward 0-上 1-下 2-左 3-右")
private String toward;
@ApiModelProperty("区域名称")
......@@ -35,6 +30,11 @@ public class PlatRegionSettingLocation extends BaseBusEntity {
private String roomRange;
@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;
@ApiModel("PlatRoomBindDeviceDTO 设备绑定")
public class PlatRoomBindDeviceDTO {
@ApiModelProperty(value = "房间ID")
@ApiModelProperty(value = "房间ID",required = true)
private String roomId;
@ApiModelProperty(value = "设备Id")
private List<String> listEquipmentId;
@ApiModelProperty(value = "设备Id",required = true)
private List<String> listDeviceId;
@ApiModelProperty(value = "床位Id")
private String bedId;
......
......@@ -15,4 +15,7 @@ public class PlatRoomQueryDTO {
@ApiModelProperty("房间名称")
private String name;
@ApiModelProperty("空间ID")
private String spaceId;
}
......@@ -27,4 +27,10 @@ public class PlatSpaceDeviceQueryDTO {
@ApiModelProperty(value = "设备类型 device.category 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达")
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 {
*/
private LocalDateTime dealDate;
/**
* 组织id
*/
private String orgId;
/**
* 通知人员,逗号拼接
*/
private String notifyUser;
/**
* 设备id
*/
private String deviceId;
/**
* 老人id,逗号拼接
*/
private String elderIds;
}
......@@ -16,12 +16,30 @@ import lombok.EqualsAndHashCode;
@ApiModel(value = "RegionSetting对象", description = "区域设置")
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")
private String rangeMap;
@ApiModelProperty("房间门定位")
private String roomRange;
@ApiModelProperty("设备ID")
private String deviceId;
@ApiModelProperty("房间ID")
private String roomId;
}
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -16,13 +18,13 @@ import lombok.EqualsAndHashCode;
@ApiModel(value = "PlatRoomBedDevice对象", description = "房间床位设备中间表")
public class PlatRoomBedDevice extends BaseBusEntity {
@ApiModelProperty(value = "房间ID")
@ApiModelProperty(value = "房间ID",required = true)
private String roomId;
@ApiModelProperty(value = "设备Id")
private String equipmentId;
@ApiModelProperty(value = "设备Id",required = true)
private String deviceId;
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ApiModelProperty(value = "床位Id")
private String bedId;
}
......@@ -23,6 +23,11 @@ public class PlatMenu extends BaseEntity {
private String name;
/**
* 资源标识
*/
private String code;
/**
* 账号链接
*/
private String requestPath;
......
......@@ -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> {
PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto);
/**
* 子女端告警列表
* @param dto
* @return
*/
PageVO<PlatAlarmRecordVO> childrenPage(PageReqDTO<PlatAlarmRecordQueryDTO> dto);
PlatAlarmRecordVO view(String recordId);
void deal(String recordId);
......
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> {
List<PlatUserDTOVO> listTenant(PlatUserQueryDTO dto);
void add(PlatUserDTOVO dto);
String add(PlatUserDTOVO dto);
void edit(PlatUserDTOVO dto);
......
......@@ -235,7 +235,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
@Transactional
@Override
public void add(PlatUserDTOVO dto) {
public String add(PlatUserDTOVO dto) {
check(dto);
PlatUser user = BeanDtoVoUtils.convert(dto, PlatUser.class);
user.setIsTenant(CommonEnum.YES.getValue());
......@@ -247,6 +247,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
user.setAccount(dto.getMobile());
save(user);
dto.setId(user.getId());
return user.getId();
}
......
......@@ -3,8 +3,8 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoQueryDTO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO;
......
......@@ -3,7 +3,7 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO;
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 java.util.List;
......
......@@ -3,10 +3,14 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.vo.ExcelImportVo;
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.vo.platform.elder.PlatElderListVO;
import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -27,6 +31,10 @@ public interface PlatElderService extends IService<PlatElder> {
void exportExcel(HttpServletResponse response, PlatElderQueryDTO dto);
void exportTemplate(HttpServletResponse response);
ExcelImportVo importExcel(MultipartFile excelFile) throws Exception;
void add(PlatElderAddDTO dto);
void edit(PlatElderDTOVO dto);
......
......@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.elder.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.PlatElderChildrenInfoQueryDTO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
......@@ -23,7 +23,6 @@ import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.sql.join.JoinUtil;
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.wechat.elder.PlatElderChildrenInfoWechatVO;
import org.springframework.beans.factory.annotation.Autowired;
......
......@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.elder.PlatElderPhysicalReportDTOVO;
import com.makeit.dto.platform.elder.add.PlatElderPhysicalReportDTOVO;
import com.makeit.entity.platform.elder.PlatElderPhysicalReport;
import com.makeit.mapper.platform.elder.PlatElderPhysicalReportMapper;
import com.makeit.service.platform.elder.PlatElderPhysicalReportService;
......
......@@ -51,27 +51,6 @@ public interface PlatBedService extends IService<PlatBed> {
void del(String id);
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;
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 java.util.List;
/**
* @Author:lzy
* @Date:2023/8/31 16:13
* @Describe:
*/
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;
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 java.util.List;
/**
* @Author:lzy
* @Date:2023/9/6 17:44
* @Describe:
*/
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
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;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.enums.platform.device.PlatDeviceEnum;
import com.makeit.mapper.platform.space.PlatRegionSettingMapper;
import com.makeit.service.platform.device.PlatDeviceService;
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.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author:lzy
......@@ -13,4 +27,82 @@ import org.springframework.stereotype.Service;
*/
@Service
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;
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.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.enums.CommonEnum;
import com.makeit.enums.platform.device.PlatDeviceEnum;
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.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.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
......@@ -13,4 +40,127 @@ import org.springframework.stereotype.Service;
*/
@Service
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
removeByIds(ids);
}
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public void delCascade(List<String> ids) {
removeByIds(ids);
......@@ -118,6 +118,7 @@ public class PlatRoomServiceImpl extends ServiceImpl<PlatRoomMapper, PlatRoom> i
Page<PlatRoom> p = PageUtil.toMpPage(page);
LambdaQueryWrapper<PlatRoom> queryWrapper = new LambdaQueryWrapper<>();
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);
return PageUtil.toPageVO(pages.getRecords(), pages);
}
......
......@@ -19,7 +19,7 @@ public interface PlatMenuService extends IService<PlatMenu> {
List<PlatMenuDTOVO> tree(PlatMenuQueryDTO dto);
void add(PlatMenuDTOVO dto);
String add(PlatMenuDTOVO dto);
void edit(PlatMenuDTOVO dto);
......
......@@ -20,7 +20,7 @@ public interface SaasMenuService extends IService<SaasMenu> {
List<SaasMenuDTOVO> tree(SaasMenuQueryDTO dto);
void add(SaasMenuDTOVO dto);
String add(SaasMenuDTOVO dto);
void edit(SaasMenuDTOVO dto);
......
......@@ -14,7 +14,7 @@ public interface SaasPrivacyConfigService extends IService<SaasPrivacyConfig> {
*
* @param saasPrivacyConfigDTO
*/
void add(SaasPrivacyConfigDTO saasPrivacyConfigDTO);
String add(SaasPrivacyConfigDTO saasPrivacyConfigDTO);
/**
*
......
......@@ -22,7 +22,7 @@ public interface SaasRoleService extends IService<SaasRole> {
PageVO<SaasRoleDTOVO> page(PageReqDTO<SaasRoleDTOVO> dto);
void add(SaasRoleDTOVO dto);
String add(SaasRoleDTOVO dto);
void edit(SaasRoleDTOVO dto);
......
......@@ -26,7 +26,7 @@ public interface SaasUserService extends IService<SaasUser> {
List<SaasUserDTOVO> listNoSuperAdmin(SaasUserQueryDTO dto);
void add(SaasUserDTOVO dto);
String add(SaasUserDTOVO dto);
void edit(SaasUserDTOVO dto);
......
......@@ -117,7 +117,7 @@ implements PlatMenuService {
*/
private void checkCode(PlatMenuDTOVO dto) {
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())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_CODE_DUPLICATE);
}
......@@ -125,9 +125,11 @@ implements PlatMenuService {
@Transactional
@Override
public void add(PlatMenuDTOVO dto) {
public String add(PlatMenuDTOVO dto) {
checkCode(dto);
save(BeanDtoVoUtils.convert(dto, PlatMenu.class));
PlatMenu platMenu = BeanDtoVoUtils.convert(dto, PlatMenu.class);
save(platMenu);
return platMenu.getId();
}
@Transactional
......@@ -174,33 +176,33 @@ implements PlatMenuService {
public void sync() {
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())
);
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()));
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()));
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 ->
!exitButtonCodeMap.containsKey(item.getName())).collect(Collectors.toList());
!exitButtonCodeMap.containsKey(item.getCode())).collect(Collectors.toList());
//删除的权限
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())));
addActionList.forEach(e -> {
if (TreeConst.TOP_LEVEL.equals(e.getParentId())) {
exitCodeMap.put(e.getName(), e);
exitCodeMap.put(e.getCode(), e);
}
});
......@@ -210,7 +212,7 @@ implements PlatMenuService {
if (!TreeConst.TOP_LEVEL.equals(e.getParentId())) {
String groupCode = getGroupCode(e.getName());
String groupCode = getGroupCode(e.getCode());
PlatMenu buttonGroup = exitCodeMap.get(groupCode);
if (buttonGroup != null) {
e.setParentId(buttonGroup.getId());
......@@ -287,7 +289,7 @@ implements PlatMenuService {
PlatMenu button = new PlatMenu();
button.setName(action.name());
//button.setCode(e);
button.setCode(e);
button.setSort(0);
button.setStatus(CommonEnum.YES.getValue());
button.setResourceType(SysEnum.MenuTypeEnum.BUTTON.getValue());
......@@ -323,7 +325,7 @@ implements PlatMenuService {
private PlatMenu generateButtonGroup(String name, String code) {
PlatMenu button = new PlatMenu();
button.setName(name);
// button.setCode(code);
button.setCode(code);
button.setParentId(TreeConst.TOP_LEVEL);
button.setSort(0);
button.setStatus(CommonEnum.YES.getValue());
......
......@@ -127,9 +127,11 @@ public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> i
@Transactional
@Override
public void add(SaasMenuDTOVO dto) {
public String add(SaasMenuDTOVO dto) {
checkCode(dto);
save(BeanDtoVoUtils.convert(dto, SaasMenu.class));
SaasMenu saasMenu = BeanDtoVoUtils.convert(dto, SaasMenu.class);
save(saasMenu);
return saasMenu.getId();
}
@Transactional
......
......@@ -20,13 +20,15 @@ public class SaasPrivacyConfigServiceImpl extends ServiceImpl<SaasPrivacyConfigM
implements SaasPrivacyConfigService{
@Override
@Transactional
public void add(SaasPrivacyConfigDTO saasPrivacyConfigDTO) {
public String add(SaasPrivacyConfigDTO saasPrivacyConfigDTO) {
LambdaQueryWrapper<SaasPrivacyConfig> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SaasPrivacyConfig::getCategory, saasPrivacyConfigDTO.getCategory());
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{
@Transactional
@Override
public void add(SaasRoleDTOVO dto) {
public String add(SaasRoleDTOVO dto) {
check(dto);
SaasRole saasRole = BeanDtoVoUtils.convert(dto, SaasRole.class);
save(saasRole);
assignMenuList(saasRole.getId(),dto.getMenuIdList());
return saasRole.getId();
}
@Transactional
......
......@@ -230,7 +230,7 @@ implements SaasUserService{
@Transactional
@Override
public void add(SaasUserDTOVO dto) {
public String add(SaasUserDTOVO dto) {
check(dto);
SaasUser user = BeanDtoVoUtils.convert(dto, SaasUser.class);
......@@ -242,6 +242,8 @@ implements SaasUserService{
save(user);
dto.setId(user.getId());
setRoleList(dto);
return user.getId();
}
@Transactional
......
......@@ -252,7 +252,7 @@ public class PlatElderExportVO extends BaseTenantDTO {
// @ApiModelProperty(value = "婚姻")
// private String marriage;
@ExcelProperty(value = "备注")
@ApiModelProperty(value = "备注")
private String remark;
......
......@@ -134,16 +134,11 @@ sms:
url: http://www.aozoneyun.com/message/message/send
uid: 357
pwd: xmks123456
rec:
url:
query:
url: http://www.aozoneyun.com/message/message/balance
voiceSms:
url: http://www.aozoneyun.com/Message/Message/video_send
uid: 362
pwd: xmksyy123456
voice-sms:
send:
url: http://www.aozoneyun.com/Message/Message/video_send
uid: 362
pwd: xmksyy123456
......
......@@ -131,13 +131,8 @@ sms:
url: http://www.aozoneyun.com/message/message/send
uid: 357
pwd: xmks123456
rec:
url:
query:
url: http://www.aozoneyun.com/message/message/balance
voiceSms:
url: http://www.aozoneyun.com/Message/Message/video_send
uid: 362
pwd: xmksyy123456
\ No newline at end of file
voice-sms:
send:
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