|
@ -12,9 +12,12 @@ import com.yihu.jw.patient.dao.BasePatientDao;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
@ -42,6 +45,9 @@ public class DeviceLostMessageUtil {
|
|
@Autowired
|
|
@Autowired
|
|
BasePushRecordLogDao basePushRecordLogDao;
|
|
BasePushRecordLogDao basePushRecordLogDao;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private RestTemplate restTemplate;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* 设备离线通知--家属 、社工、助老元
|
|
* 设备离线通知--家属 、社工、助老元
|
|
@ -150,6 +156,7 @@ public class DeviceLostMessageUtil {
|
|
* 设备离通知-用户自己
|
|
* 设备离通知-用户自己
|
|
* @param devices
|
|
* @param devices
|
|
*/
|
|
*/
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void deviceLostMessagePatient(List<String> devices){
|
|
public void deviceLostMessagePatient(List<String> devices){
|
|
List<SystemMessageDO> messageDOS = new ArrayList<>();
|
|
List<SystemMessageDO> messageDOS = new ArrayList<>();
|
|
String content = "{name}{sex}您好,您的{device}设备已离线,请保持设备连接通畅。";
|
|
String content = "{name}{sex}您好,您的{device}设备已离线,请保持设备连接通畅。";
|
|
@ -162,10 +169,12 @@ public class DeviceLostMessageUtil {
|
|
|
|
|
|
|
|
|
|
List<Map<String,Object>> patientList = jdbcTemplate.queryForList(sql);
|
|
List<Map<String,Object>> patientList = jdbcTemplate.queryForList(sql);
|
|
|
|
System.out.println(devices);
|
|
//所有居民的设备
|
|
//所有居民的设备
|
|
for (Map<String, Object> patient : patientList) {
|
|
for (Map<String, Object> patient : patientList) {
|
|
String deviceSns = patient.get("deviceSn").toString();
|
|
String deviceSns = patient.get("deviceSn").toString();
|
|
String[] deviceSplit = deviceSns.split(",");
|
|
String[] deviceSplit = deviceSns.split(",");
|
|
|
|
System.out.println(patient.get("id"));
|
|
String deivceName = "";
|
|
String deivceName = "";
|
|
for (String deviceSn : deviceSplit) {
|
|
for (String deviceSn : deviceSplit) {
|
|
//离线的设备 offLineDevice
|
|
//离线的设备 offLineDevice
|
|
@ -176,12 +185,14 @@ public class DeviceLostMessageUtil {
|
|
systemMessageDao.delete(sendMessageBefore);
|
|
systemMessageDao.delete(sendMessageBefore);
|
|
}
|
|
}
|
|
String deviceInfoSql = "SELECT device_sn,device_name,category_code FROM wlyy_patient_device WHERE device_sn = '"+offLineDeviceSn+"'";
|
|
String deviceInfoSql = "SELECT device_sn,device_name,category_code FROM wlyy_patient_device WHERE device_sn = '"+offLineDeviceSn+"'";
|
|
DevicePatientDevice devicePatientDevice = jdbcTemplate.queryForObject(deviceInfoSql, new BeanPropertyRowMapper<>(DevicePatientDevice.class));
|
|
|
|
|
|
System.out.println("SN吗 "+offLineDeviceSn);
|
|
|
|
List<DevicePatientDevice> query = jdbcTemplate.query(deviceInfoSql, new BeanPropertyRowMapper<>(DevicePatientDevice.class));
|
|
if (StringUtils.isNotBlank(deivceName)){
|
|
if (StringUtils.isNotBlank(deivceName)){
|
|
deivceName+=devicePatientDevice.getDeviceName();
|
|
|
|
|
|
deivceName+=","+query.get(0).getDeviceName();
|
|
}else {
|
|
}else {
|
|
deivceName+=","+devicePatientDevice.getAgentName();
|
|
|
|
|
|
deivceName+= query.get(0).getDeviceName();
|
|
}
|
|
}
|
|
|
|
System.out.println(deivceName);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@ -191,7 +202,6 @@ public class DeviceLostMessageUtil {
|
|
sContent = sContent.replace("{name}",patient.get("name").toString());
|
|
sContent = sContent.replace("{name}",patient.get("name").toString());
|
|
sContent = sContent.replace("{sex}",Integer.parseInt(patient.get("sex").toString())==1?"大爷":"大妈");
|
|
sContent = sContent.replace("{sex}",Integer.parseInt(patient.get("sex").toString())==1?"大爷":"大妈");
|
|
sContent = sContent.replace("{device}",deivceName);
|
|
sContent = sContent.replace("{device}",deivceName);
|
|
|
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
messageDO.setTitle("设备离线通知");
|
|
messageDO.setTitle("设备离线通知");
|
|
messageDO.setContent(sContent);
|
|
messageDO.setContent(sContent);
|
|
@ -206,15 +216,14 @@ public class DeviceLostMessageUtil {
|
|
messageDO.setDel("1");
|
|
messageDO.setDel("1");
|
|
messageDO.setCreateTime(new Date());
|
|
messageDO.setCreateTime(new Date());
|
|
messageDO.setSenderPhoto(patient.get("photo").toString());
|
|
messageDO.setSenderPhoto(patient.get("photo").toString());
|
|
|
|
messageDO.setAudioUrl(audioUrl(content));
|
|
messageDOS.add(messageDO);
|
|
messageDOS.add(messageDO);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
if (messageDOS.size()>0){
|
|
if (messageDOS.size()>0){
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
logEntity.setContent(content);
|
|
logEntity.setContent(content);
|
|
logEntity.setPushType("1");
|
|
|
|
|
|
logEntity.setPushType("3");
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setNum(messageDOS.size());
|
|
logEntity.setNum(messageDOS.size());
|
|
logEntity.setStatus(1);
|
|
logEntity.setStatus(1);
|
|
@ -224,7 +233,6 @@ public class DeviceLostMessageUtil {
|
|
logEntity.setMessageType(6);
|
|
logEntity.setMessageType(6);
|
|
systemMessageDao.save(messageDOS);
|
|
systemMessageDao.save(messageDOS);
|
|
basePushRecordLogDao.save(logEntity);
|
|
basePushRecordLogDao.save(logEntity);
|
|
systemMessageDao.save(messageDOS);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@ -257,13 +265,14 @@ public class DeviceLostMessageUtil {
|
|
messageDO.setDel("1");
|
|
messageDO.setDel("1");
|
|
messageDO.setCreateTime(new Date());
|
|
messageDO.setCreateTime(new Date());
|
|
messageDO.setSenderPhoto(jsonObject.getString("photo"));
|
|
messageDO.setSenderPhoto(jsonObject.getString("photo"));
|
|
|
|
messageDO.setAudioUrl(audioUrl(contentTwo));
|
|
messageDOS.add(messageDO);
|
|
messageDOS.add(messageDO);
|
|
|
|
|
|
}
|
|
}
|
|
if (messageDOS.size() > 0) {
|
|
if (messageDOS.size() > 0) {
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
logEntity.setContent(contentOne);
|
|
logEntity.setContent(contentOne);
|
|
logEntity.setPushType("1");
|
|
|
|
|
|
logEntity.setPushType("3");
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setNum(messageDOS.size());
|
|
logEntity.setNum(messageDOS.size());
|
|
logEntity.setStatus(1);
|
|
logEntity.setStatus(1);
|
|
@ -298,52 +307,61 @@ public class DeviceLostMessageUtil {
|
|
for (JSONObject jsonObject : patientList) {
|
|
for (JSONObject jsonObject : patientList) {
|
|
switch (jsonObject.getInteger("category_code")){
|
|
switch (jsonObject.getInteger("category_code")){
|
|
case 4:
|
|
case 4:
|
|
SystemMessageDO messageDOWatch = new SystemMessageDO();
|
|
|
|
messageDOWatch.setTitle("设备电量低通知");
|
|
|
|
messageDOWatch.setContent(watchContent);
|
|
|
|
messageDOWatch.setType("992");
|
|
|
|
messageDOWatch.setIsRead("0");
|
|
|
|
messageDOWatch.setSender("system");
|
|
|
|
messageDOWatch.setSenderName("设备电量通知助手");
|
|
|
|
messageDOWatch.setReceiver(jsonObject.getString("patient"));
|
|
|
|
messageDOWatch.setReceiverName(jsonObject.getString("name"));
|
|
|
|
messageDOWatch.setOver("1");
|
|
|
|
// messageDO.setData(deviceName+"离线");
|
|
|
|
messageDOWatch.setDel("1");
|
|
|
|
messageDOWatch.setCreateTime(new Date());
|
|
|
|
messageDOWatch.setSenderPhoto(jsonObject.getString("photo"));
|
|
|
|
messageDOSWatch.add(messageDOWatch);
|
|
|
|
watchSize+=1;
|
|
|
|
if (StringUtils.isNotBlank(watchName)){
|
|
|
|
watchName+=","+jsonObject.getString("patient");
|
|
|
|
|
|
if (messageOnOff(3)){
|
|
|
|
SystemMessageDO messageDOWatch = new SystemMessageDO();
|
|
|
|
messageDOWatch.setTitle("设备电量低通知");
|
|
|
|
messageDOWatch.setContent(watchContent);
|
|
|
|
messageDOWatch.setType("992");
|
|
|
|
messageDOWatch.setIsRead("0");
|
|
|
|
messageDOWatch.setSender("system");
|
|
|
|
messageDOWatch.setSenderName("设备电量通知助手");
|
|
|
|
messageDOWatch.setReceiver(jsonObject.getString("patient"));
|
|
|
|
messageDOWatch.setReceiverName(jsonObject.getString("name"));
|
|
|
|
messageDOWatch.setOver("1");
|
|
|
|
// messageDO.setData(deviceName+"离线");
|
|
|
|
messageDOWatch.setDel("1");
|
|
|
|
messageDOWatch.setCreateTime(new Date());
|
|
|
|
messageDOWatch.setSenderPhoto(jsonObject.getString("photo"));
|
|
|
|
messageDOWatch.setAudioUrl(audioUrl(watchContent));
|
|
|
|
messageDOSWatch.add(messageDOWatch);
|
|
|
|
watchSize+=1;
|
|
|
|
if (StringUtils.isNotBlank(watchName)){
|
|
|
|
watchName+=","+jsonObject.getString("patient");
|
|
|
|
}else {
|
|
|
|
watchName+=jsonObject.getString("patient");
|
|
|
|
}
|
|
|
|
break;
|
|
}else {
|
|
}else {
|
|
watchName+=jsonObject.getString("patient");
|
|
|
|
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 7:
|
|
case 7:
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
|
messageDO.setTitle("设备电量低通知");
|
|
|
|
messageDO.setContent(SosContent);
|
|
|
|
messageDO.setType("993");
|
|
|
|
messageDO.setIsRead("0");
|
|
|
|
messageDO.setSender("system");
|
|
|
|
messageDO.setSenderName("设备电量通知助手");
|
|
|
|
messageDO.setReceiver(jsonObject.getString("patient"));
|
|
|
|
messageDO.setReceiverName(jsonObject.getString("name"));
|
|
|
|
messageDO.setOver("1");
|
|
|
|
// messageDO.setData(deviceName+"离线");
|
|
|
|
messageDO.setDel("1");
|
|
|
|
messageDO.setCreateTime(new Date());
|
|
|
|
messageDO.setSenderPhoto(jsonObject.getString("photo"));
|
|
|
|
messageDOSSOS.add(messageDO);
|
|
|
|
SOSSize+=1;
|
|
|
|
if (StringUtils.isNotBlank(SOSName)){
|
|
|
|
SOSName+=","+jsonObject.getString("patient");
|
|
|
|
|
|
if (messageOnOff(4)){
|
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
|
messageDO.setTitle("设备电量低通知");
|
|
|
|
messageDO.setContent(SosContent);
|
|
|
|
messageDO.setType("993");
|
|
|
|
messageDO.setIsRead("0");
|
|
|
|
messageDO.setSender("system");
|
|
|
|
messageDO.setSenderName("设备电量通知助手");
|
|
|
|
messageDO.setReceiver(jsonObject.getString("patient"));
|
|
|
|
messageDO.setReceiverName(jsonObject.getString("name"));
|
|
|
|
messageDO.setOver("1");
|
|
|
|
// messageDO.setData(deviceName+"离线");
|
|
|
|
messageDO.setDel("1");
|
|
|
|
messageDO.setCreateTime(new Date());
|
|
|
|
messageDO.setSenderPhoto(jsonObject.getString("photo"));
|
|
|
|
messageDO.setAudioUrl(audioUrl(SosContent));
|
|
|
|
messageDOSSOS.add(messageDO);
|
|
|
|
SOSSize+=1;
|
|
|
|
if (StringUtils.isNotBlank(SOSName)){
|
|
|
|
SOSName+=","+jsonObject.getString("patient");
|
|
|
|
}else {
|
|
|
|
SOSName+=jsonObject.getString("patient");
|
|
|
|
}
|
|
|
|
break;
|
|
}else {
|
|
}else {
|
|
SOSName+=jsonObject.getString("patient");
|
|
|
|
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@ -351,7 +369,7 @@ public class DeviceLostMessageUtil {
|
|
if (messageDOSWatch.size() > 0) {
|
|
if (messageDOSWatch.size() > 0) {
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
logEntity.setContent(watchContent);
|
|
logEntity.setContent(watchContent);
|
|
logEntity.setPushType("1");
|
|
|
|
|
|
logEntity.setPushType("3");
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setNum(watchSize);
|
|
logEntity.setNum(watchSize);
|
|
logEntity.setStatus(1);
|
|
logEntity.setStatus(1);
|
|
@ -366,7 +384,7 @@ public class DeviceLostMessageUtil {
|
|
if (messageDOSSOS.size() > 0) {
|
|
if (messageDOSSOS.size() > 0) {
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
BasePushRecordLogEntity logEntity = new BasePushRecordLogEntity();
|
|
logEntity.setContent(SosContent);
|
|
logEntity.setContent(SosContent);
|
|
logEntity.setPushType("1");
|
|
|
|
|
|
logEntity.setPushType("3");
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setSendTime(new Date());
|
|
logEntity.setNum(SOSSize);
|
|
logEntity.setNum(SOSSize);
|
|
logEntity.setStatus(1);
|
|
logEntity.setStatus(1);
|
|
@ -428,9 +446,9 @@ public class DeviceLostMessageUtil {
|
|
for (int i = 0; i < patients.size(); i++) {
|
|
for (int i = 0; i < patients.size(); i++) {
|
|
String name =patients.get(i).get("name").toString();
|
|
String name =patients.get(i).get("name").toString();
|
|
if (StringUtils.isNotBlank(names)) {
|
|
if (StringUtils.isNotBlank(names)) {
|
|
names += name;
|
|
|
|
} else {
|
|
|
|
names += "," + name;
|
|
names += "," + name;
|
|
|
|
} else {
|
|
|
|
names += name;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (type == 2) {
|
|
} else if (type == 2) {
|
|
@ -438,9 +456,9 @@ public class DeviceLostMessageUtil {
|
|
for (int i = 0; i < patients.size(); i++) {
|
|
for (int i = 0; i < patients.size(); i++) {
|
|
String name = patients.get(i).getString("name");
|
|
String name = patients.get(i).getString("name");
|
|
if (StringUtils.isNotBlank(names)) {
|
|
if (StringUtils.isNotBlank(names)) {
|
|
names += name;
|
|
|
|
} else {
|
|
|
|
names += "," + name;
|
|
names += "," + name;
|
|
|
|
} else {
|
|
|
|
names += name;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@ -448,5 +466,23 @@ public class DeviceLostMessageUtil {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//开关判断
|
|
|
|
public Boolean messageOnOff(Integer code){
|
|
|
|
String sql = "SELECT py_code FROM wlyy_hospital_sys_dict WHERE dict_name = 'pushOnOff' AND dict_code ='"+code+"' ";
|
|
|
|
String onOff= jdbcTemplate.queryForObject(sql,String.class);
|
|
|
|
Boolean kg = Boolean.parseBoolean(onOff);
|
|
|
|
return kg;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String audioUrl(String content){
|
|
|
|
ResponseEntity<String> forEntity = restTemplate.getForEntity("http://svr-cloud-care:10301/common/open/wordToVoice?text={1}", String.class, content);
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody());
|
|
|
|
if (jsonObject.getInteger("status") == 200){
|
|
|
|
return jsonObject.getString("message");
|
|
|
|
}else {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|