|
@ -36,6 +36,8 @@ public class DeviceLostMessageUtil {
|
|
|
@Autowired
|
|
|
private SystemMessageDao systemMessageDao;
|
|
|
@Autowired
|
|
|
private SystemPushMessageUtil systemPushMessageUtil;
|
|
|
@Autowired
|
|
|
private PatientDeviceDao patientDeviceDao;
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
@ -164,6 +166,7 @@ public class DeviceLostMessageUtil {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void deviceLostMessagePatient(List<String> devices){
|
|
|
List<SystemMessageDO> messageDOS = new ArrayList<>();
|
|
|
|
|
|
String content = "{name}{sex}您好,您的{device}设备已离线,请保持设备连接通畅。";
|
|
|
|
|
|
|
|
@ -201,11 +204,11 @@ public class DeviceLostMessageUtil {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(deivceName)){
|
|
|
if (StringUtils.isNotBlank(deivceName)) {
|
|
|
String sContent = content;
|
|
|
sContent = sContent.replace("{name}",patient.get("name").toString());
|
|
|
sContent = sContent.replace("{sex}",Integer.parseInt(patient.get("sex").toString())==1?"大爷":"大妈");
|
|
|
sContent = sContent.replace("{device}",deivceName);
|
|
|
sContent = sContent.replace("{name}", patient.get("name").toString());
|
|
|
sContent = sContent.replace("{sex}", Integer.parseInt(patient.get("sex").toString()) == 1 ? "爷爷" : "奶奶");
|
|
|
sContent = sContent.replace("{device}", deivceName);
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
messageDO.setTitle("设备离线通知");
|
|
|
messageDO.setContent(sContent);
|
|
@ -216,17 +219,18 @@ public class DeviceLostMessageUtil {
|
|
|
messageDO.setReceiver(patient.get("id").toString());
|
|
|
messageDO.setReceiverName(patient.get("name").toString());
|
|
|
messageDO.setOver("1");
|
|
|
// messageDO.setData(deviceName+"离线");
|
|
|
// messageDO.setData(deviceName+"离线");
|
|
|
messageDO.setDel("1");
|
|
|
messageDO.setUserType(1);
|
|
|
messageDO.setCreateTime(new Date());
|
|
|
messageDO.setSenderPhoto(patient.get("photo").toString());
|
|
|
messageDO.setAudioUrl(audioUrl(sContent));
|
|
|
messageDOS.add(messageDO);
|
|
|
|
|
|
//socket推送
|
|
|
patientMessageSocket(messageDO,deviceSnS);
|
|
|
}
|
|
|
patientMessageSocket(messageDO, deviceSnS);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
if (messageDOS.size()>0){
|
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
|
logEntity.setContent(content);
|
|
@ -244,6 +248,12 @@ public class DeviceLostMessageUtil {
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<Map<String, Object>> faminlyPatientList(String patientId){
|
|
|
String faminlySql = "SELECT p.patient,p.name,p.openid FROM base_patient p INNER JOIN base_patient_family_member m ON p.id = m.patient WHERE m.patient = '"+patientId+"' AND m.del AND p.archive_type = 3 ";
|
|
|
return jdbcTemplate.queryForList(faminlySql);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 手表未佩戴居民通知
|
|
|
* @param patientList
|
|
@ -251,15 +261,17 @@ public class DeviceLostMessageUtil {
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void watchOffWear(List<JSONObject> patientList){
|
|
|
List<SystemMessageDO> messageDOS = new ArrayList<>();
|
|
|
List<SystemMessageDO> familyMessageDOS = new ArrayList<>();
|
|
|
String contentOne = "{name}{sex} 监测到您没有佩戴手表,建议正确佩戴手表,方便我们对您进行照护。";
|
|
|
|
|
|
String faminlyContent = "您的亲属未正确佩戴手表,为防止失联,请正确佩戴手表。";
|
|
|
for (JSONObject jsonObject : patientList) {
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
String contentTwo = contentOne;
|
|
|
contentTwo = contentTwo.replace("{name}",jsonObject.getString("name"));
|
|
|
contentTwo = contentTwo.replace("{sex}",1==jsonObject.getInteger("sex")?"大爷":"大妈");
|
|
|
contentTwo = contentTwo.replace("{sex}",1==jsonObject.getInteger("sex")?"爷爷":"奶奶");
|
|
|
|
|
|
String s = audioUrl(contentTwo);
|
|
|
messageDO.setTitle("设备未佩戴通知");
|
|
@ -278,6 +290,41 @@ public class DeviceLostMessageUtil {
|
|
|
messageDO.setAudioUrl(s);
|
|
|
messageDOS.add(messageDO);
|
|
|
|
|
|
//家属
|
|
|
List<Map<String, Object>> familyListMap = faminlyPatientList(jsonObject.getString("patient"));
|
|
|
System.out.println("家属数量:" + familyListMap.size());
|
|
|
if (familyListMap.size() > 0) {
|
|
|
for (Map<String, Object> familys : familyListMap) {
|
|
|
if (systemPushMessageUtil.familyMessagePushOnOff(familys.get("patient").toString(), 2)) {
|
|
|
|
|
|
String familyMessageName = "{ \"name\":\""+familys.get("name").toString()+"\"," +
|
|
|
" \"deviceName\":\"智能手表\"," +
|
|
|
" \"deviceSn\":\""+jsonObject.getString("device_sn")+"\" " +
|
|
|
"}\n";
|
|
|
|
|
|
SystemMessageDO messageFamily = new SystemMessageDO();
|
|
|
messageFamily.setTitle("智能手表");
|
|
|
messageFamily.setContent(faminlyContent);
|
|
|
messageFamily.setType("991");
|
|
|
messageFamily.setIsRead("0");
|
|
|
messageFamily.setSender("system");
|
|
|
messageFamily.setUserType(3);
|
|
|
messageFamily.setSenderName("设备未佩戴通知助手");
|
|
|
messageFamily.setCreateTime(new Date());
|
|
|
messageFamily.setReceiver(familys.get("patient").toString());
|
|
|
messageFamily.setReceiverName(familys.get("name").toString());
|
|
|
messageFamily.setData(familyMessageName);
|
|
|
messageFamily.setOver("1");
|
|
|
messageFamily.setDel("1");
|
|
|
familyMessageDOS.add(messageFamily);
|
|
|
delDeviceMessage(familys.get("patient").toString(), "991");
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject message = new JSONObject();
|
|
|
message.put("title","设备未佩戴通知");
|
|
|
message.put("type","991");
|
|
@ -300,9 +347,14 @@ public class DeviceLostMessageUtil {
|
|
|
logEntity.setMessageType(3);
|
|
|
systemMessageDao.save(messageDOS);
|
|
|
basePushRecordLogDao.save(logEntity);
|
|
|
systemMessageDao.save(familyMessageDOS);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void delDeviceMessage(String patientId,String type){
|
|
|
String sql = "delete from base_system_message where user_type = 3 and receiver = '"+patientId+"' and type ='"+type+"' ";
|
|
|
jdbcTemplate.update(sql);
|
|
|
}
|
|
|
|
|
|
|
|
@ -331,10 +383,14 @@ public class DeviceLostMessageUtil {
|
|
|
*/
|
|
|
public void watchRemainingPower(List<JSONObject> patientList){
|
|
|
List<SystemMessageDO> messageDOSWatch = new ArrayList<>();
|
|
|
List<SystemMessageDO> messageDOSWatchFamily = new ArrayList<>();
|
|
|
List<SystemMessageDO> messageDOSSOS = new ArrayList<>();
|
|
|
String watchContent = "手表电量低,请充电";
|
|
|
String watchContent = "<patientName><sex> 您的手表电量低,请充电";
|
|
|
String SosContent = "报警器电量低,请充电";
|
|
|
|
|
|
StringBuffer watchFamilyContent = new StringBuffer("您的亲属智能手表电量低,为防止失联,请及时充电");
|
|
|
|
|
|
|
|
|
Integer watchSize = 0;
|
|
|
String watchName = "";
|
|
|
Integer SOSSize = 0;
|
|
@ -345,13 +401,14 @@ public class DeviceLostMessageUtil {
|
|
|
switch (jsonObject.getInteger("category_code")){
|
|
|
case 4:
|
|
|
if (messageOnOff(3)){
|
|
|
|
|
|
String newContent = watchContent.replace("<patientName>",jsonObject.getString("name"));
|
|
|
newContent = newContent.replace("<sex>",1==jsonObject.getInteger("sex")?"爷爷":"奶奶");
|
|
|
//文字转语音
|
|
|
String url = audioUrl(watchContent);
|
|
|
String url = audioUrl(newContent);
|
|
|
|
|
|
SystemMessageDO messageDOWatch = new SystemMessageDO();
|
|
|
messageDOWatch.setTitle("设备电量低通知");
|
|
|
messageDOWatch.setContent(watchContent);
|
|
|
messageDOWatch.setContent(newContent);
|
|
|
messageDOWatch.setType("992");
|
|
|
messageDOWatch.setIsRead("0");
|
|
|
messageDOWatch.setSender("system");
|
|
@ -371,8 +428,40 @@ public class DeviceLostMessageUtil {
|
|
|
}else {
|
|
|
watchName+=jsonObject.getString("name");
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> familyList = faminlyPatientList(jsonObject.getString("patient"));
|
|
|
if (familyList.size() > 0) {
|
|
|
for (Map<String, Object> map : familyList) {
|
|
|
if (systemPushMessageUtil.familyMessagePushOnOff(map.get("patient").toString(), 2)) {
|
|
|
|
|
|
String familyMessageName = "{ \"name\":\""+map.get("name").toString()+"\"," +
|
|
|
" \"deviceName\":\"智能手表\"," +
|
|
|
" \"deviceSn\":\""+jsonObject.getString("device_sn")+"\" " +
|
|
|
"}\n";
|
|
|
|
|
|
SystemMessageDO messageDOWatchFamily = new SystemMessageDO();
|
|
|
messageDOWatchFamily.setCreateTime(new Date());
|
|
|
messageDOWatchFamily.setIsRead("0");
|
|
|
messageDOWatchFamily.setUserType(3);
|
|
|
messageDOWatchFamily.setType("992");
|
|
|
messageDOWatchFamily.setOver("1");
|
|
|
messageDOWatchFamily.setDel("1");
|
|
|
messageDOWatchFamily.setSender("system");
|
|
|
messageDOWatchFamily.setSenderName("设备电量通知助手");
|
|
|
messageDOWatchFamily.setTitle("智能手表");
|
|
|
messageDOWatchFamily.setReceiver(map.get("patient").toString());
|
|
|
messageDOWatchFamily.setReceiverName(map.get("name").toString());
|
|
|
messageDOWatchFamily.setData(familyMessageName);
|
|
|
messageDOWatchFamily.setContent(watchFamilyContent.toString());
|
|
|
messageDOSWatchFamily.add(messageDOWatchFamily);
|
|
|
delDeviceMessage(map.get("patient").toString(), "992");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/*socket 推送*/
|
|
|
patientMessageSocket(messageDOWatch, jsonObject.getString("deviceSn"));
|
|
|
|
|
|
}
|
|
|
break;
|
|
|
case 7:
|
|
@ -420,6 +509,7 @@ public class DeviceLostMessageUtil {
|
|
|
logEntity.setMessageType(4);
|
|
|
systemMessageDao.save(messageDOSWatch);
|
|
|
basePushRecordLogDao.save(logEntity);
|
|
|
systemMessageDao.save(messageDOSWatchFamily);
|
|
|
}
|
|
|
|
|
|
if (messageDOSSOS.size() > 0) {
|
|
@ -515,6 +605,8 @@ public class DeviceLostMessageUtil {
|
|
|
return kg;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String audioUrl(String content){
|
|
|
ResponseEntity<String> forEntity = restTemplate.getForEntity("http://127.0.0.1:10301/common/open/wordToVoice?text={1}", String.class, content);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody());
|