Commit 20f349ef by 李小龙

整理代码

parent 166bb587
...@@ -19,7 +19,7 @@ public class PlatUserUtil { ...@@ -19,7 +19,7 @@ public class PlatUserUtil {
public static boolean isSuper() { public static boolean isSuper() {
PlatUserVO userVO = PlatUserUtil.getUserVO(); PlatUserVO userVO = PlatUserUtil.getUserVO();
return IsFactoryAccountEnum.YES.getValue().equals(userVO.getTenantId()) return IsFactoryAccountEnum.YES.getValue().equals(userVO.getIsTenant())
|| IdConst.SUPER_ADMIN_ID.equals(userVO.getId()); || IdConst.SUPER_ADMIN_ID.equals(userVO.getId());
} }
......
...@@ -9,18 +9,16 @@ import com.makeit.entity.platform.alarm.PlatAlarmRecord; ...@@ -9,18 +9,16 @@ import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO; import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
/** /**
* @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
*/ */
public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> { 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); PageVO<PlatAlarmRecordVO> childrenPage(PageReqDTO<PlatAlarmRecordQueryDTO> dto);
...@@ -28,11 +26,30 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> { ...@@ -28,11 +26,30 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
void deal(String recordId); void deal(String recordId);
/**
* 通知家属
* @param recordId
*/
void noticeRelation(String recordId); void noticeRelation(String recordId);
/**
* 通知家属
* 子女端小程序
* 短信
* 语音短信
*/
void noticeChildren(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord); void noticeChildren(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord);
void noticeUser(PlatAlarmConfig alarmConfig,PlatAlarmRecord alarmRecord); /**
* 通知工作人员
* 短信
* 语音短信
* 邮件
*/
void noticeUser(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord);
void noticeDeviceAlarm(PlatAlarmConfig alarmConfig,PlatAlarmRecord alarmRecord); /**
* 设备告警调用 发送消息
*/
void noticeDeviceAlarm(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord);
} }
...@@ -3,6 +3,7 @@ package com.makeit.service.platform.alarm.impl; ...@@ -3,6 +3,7 @@ package com.makeit.service.platform.alarm.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.BaseBusEntity;
import com.makeit.common.entity.BaseEntity; import com.makeit.common.entity.BaseEntity;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
...@@ -17,6 +18,7 @@ import com.makeit.global.aspect.tenant.TenantIdIgnore; ...@@ -17,6 +18,7 @@ import com.makeit.global.aspect.tenant.TenantIdIgnore;
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.auth.PlatUserService;
import com.makeit.service.platform.elder.PlatElderChildrenInfoService; import com.makeit.service.platform.elder.PlatElderChildrenInfoService;
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;
...@@ -58,6 +60,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -58,6 +60,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
private PlatElderChildrenInfoService platElderChildrenInfoService; private PlatElderChildrenInfoService platElderChildrenInfoService;
@Autowired @Autowired
private PlatUserService platUserService;
@Autowired
private MsgSendUtil msgUtil; private MsgSendUtil msgUtil;
@Override @Override
...@@ -69,9 +74,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -69,9 +74,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
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);
} }
...@@ -119,9 +122,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -119,9 +122,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
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;
} }
...@@ -136,6 +137,10 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -136,6 +137,10 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
updateById(platAlarmRecord); updateById(platAlarmRecord);
} }
/**
* 通知家属
* @param recordId
*/
@Override @Override
@Transactional @Transactional
public void noticeRelation(String recordId) { public void noticeRelation(String recordId) {
...@@ -145,15 +150,22 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -145,15 +150,22 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
if (StringUtils.isBlank(elderIds)) { if (StringUtils.isBlank(elderIds)) {
throw new BusinessException("设备没绑定长者"); throw new BusinessException("设备没绑定长者");
} }
noticeChildren(platAlarmConfig,platAlarmRecord); noticeChildren(platAlarmConfig, platAlarmRecord);
} }
/** /**
* 发送消息 * 设备告警调用 发送消息
*/ */
@Transactional @Transactional
@Override @Override
public void noticeDeviceAlarm(PlatAlarmConfig alarmConfig,PlatAlarmRecord alarmRecord){ @TenantIdIgnore
public void noticeDeviceAlarm(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord) {
//判断是否需要同时通知家属
if (StringUtils.equals(alarmConfig.getNotifyRelation(), "1")) {
noticeChildren(alarmConfig, alarmRecord);
}
//通知内部人员
noticeUser(alarmConfig, alarmRecord);
} }
...@@ -162,12 +174,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -162,12 +174,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
* 子女端小程序 * 子女端小程序
* 短信 * 短信
* 语音短信 * 语音短信
*
* @param alarmConfig * @param alarmConfig
* @param alarmRecord * @param alarmRecord
*/ */
@Transactional @Transactional
@TenantIdIgnore @TenantIdIgnore
public void noticeChildren(PlatAlarmConfig alarmConfig,PlatAlarmRecord alarmRecord){ public void noticeChildren(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord) {
String elderIds = alarmRecord.getElderIds(); String elderIds = alarmRecord.getElderIds();
List<PlatElderChildrenInfo> allChildInfoList = new ArrayList<>(); List<PlatElderChildrenInfo> allChildInfoList = new ArrayList<>();
...@@ -175,9 +188,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -175,9 +188,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
//通知每个长者的子女 //通知每个长者的子女
for (String elderId : elderIdSplit) { for (String elderId : elderIdSplit) {
LambdaQueryWrapper<PlatElderChildrenInfo> childrenInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatElderChildrenInfo> childrenInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
childrenInfoLambdaQueryWrapper.and(qw -> { childrenInfoLambdaQueryWrapper.eq(BaseBusEntity::getTenantId, alarmConfig.getTenantId());
qw.apply("find_in_set('" + elderId + "',elder_id)"); childrenInfoLambdaQueryWrapper.and(qw -> qw.apply("find_in_set('" + elderId + "',elder_id)"));
});
List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoService.list(childrenInfoLambdaQueryWrapper); List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoService.list(childrenInfoLambdaQueryWrapper);
if (CollectionUtils.isEmpty(childrenInfoList)) { if (CollectionUtils.isEmpty(childrenInfoList)) {
log.debug("子女端账号未绑定长者"); log.debug("子女端账号未绑定长者");
...@@ -185,23 +197,11 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -185,23 +197,11 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
} }
allChildInfoList.addAll(childrenInfoList); allChildInfoList.addAll(childrenInfoList);
Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet()); Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet());
String notifyChannel = alarmConfig.getNotifyChannel();
String[] split = notifyChannel.split(",");
//告警配置和租户告警 字典一致 //告警配置和租户告警 字典一致
List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT); 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); noticeByChannel(alarmConfig, alarmRecord, phoneSet, notifyChannelList);
if (contains) {
MsgSendDTO msgSendDTO = new MsgSendDTO();
msgSendDTO.setSendTypeEnum(sendTypeEnum);
msgSendDTO.setReceiverList(phoneSet);
msgSendDTO.setOriContent(alarmRecord.getContent());
//todo 小程序消息
msgUtil.send(msgSendDTO);
}
}
} }
String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(",")); String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(","));
//通知的子女 //通知的子女
...@@ -216,18 +216,63 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -216,18 +216,63 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
* 短信 * 短信
* 语音短信 * 语音短信
* 邮件 * 邮件
*
* @param alarmConfig * @param alarmConfig
* @param alarmRecord * @param alarmRecord
*/ */
@Transactional @Transactional
@Override @Override
@TenantIdIgnore @TenantIdIgnore
public void noticeUser(PlatAlarmConfig alarmConfig,PlatAlarmRecord alarmRecord){ public void noticeUser(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord) {
String notifyWay = alarmConfig.getNotifyWay(); String notifyWay = alarmConfig.getNotifyWay();
List<PlatUser> platUserList = new ArrayList<>(); List<PlatUser> platUserList = new ArrayList<>();
if(StringUtils.equals(notifyWay,"1")){ if (StringUtils.equals(notifyWay, "1")) {
}else { LambdaQueryWrapper<PlatUser> platUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
platUserLambdaQueryWrapper.eq(PlatUser::getTenantId, alarmConfig.getTenantId())
.eq(PlatUser::getOrgId, alarmConfig.getOrgId());
List<PlatUser> platUsers = platUserService.list(platUserLambdaQueryWrapper);
platUserList.addAll(platUsers);
} else {
String notifyUser = alarmConfig.getNotifyUser();
String[] userArray = notifyUser.split(",");
List<PlatUser> platUsers = platUserService.listByIds(Arrays.asList(userArray));
platUserList.addAll(platUsers);
} }
platUserList.removeIf(Objects::isNull);
if (CollectionUtils.isEmpty(platUserList)) {
log.debug("通知工作人员时,找不到人员数据;" + "orgId:" + alarmConfig.getOrgId() + ",tenantId:" + alarmConfig.getTenantId() + "alarmConfigId:" + alarmConfig.getId());
return;
}
List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.MAIL);
Set<String> phoneSet = platUserList.stream().map(PlatUser::getMobile).collect(Collectors.toSet());
//发送消息
noticeByChannel(alarmConfig, alarmRecord, phoneSet, notifyChannelList);
} }
/**
* 根据配置渠道发送消息
*
* @param alarmConfig
* @param alarmRecord
* @param phoneSet 工作人员手机号
* @param notifyChannelList 通知渠道
*/
private void noticeByChannel(PlatAlarmConfig alarmConfig, PlatAlarmRecord alarmRecord, Set<String> phoneSet, List<SendTypeEnum> notifyChannelList) {
String notifyChannel = alarmConfig.getNotifyChannel();
String[] split = notifyChannel.split(",");
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(alarmRecord.getContent());
//todo 小程序消息
msgUtil.send(msgSendDTO);
}
}
}
} }
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