|
@ -6,8 +6,10 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
import com.yihu.jw.care.dao.assistance.EmergencyAssistanceDao;
|
|
|
import com.yihu.jw.care.dao.device.PatientDeviceDao;
|
|
|
import com.yihu.jw.care.dao.security.BaseEmergencyWarnLogDao;
|
|
|
import com.yihu.jw.care.dao.security.EmergencyWarnConclusionDao;
|
|
|
import com.yihu.jw.care.dao.security.EmergencyWarnDoctorResponseDao;
|
|
|
import com.yihu.jw.care.dao.security.SecurityMonitoringOrderDao;
|
|
|
import com.yihu.jw.care.dao.sign.ServicePackageSignRecordDao;
|
|
|
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
|
|
|
import com.yihu.jw.care.service.common.DictService;
|
|
@ -23,8 +25,10 @@ import com.yihu.jw.entity.base.im.ConsultTeamDo;
|
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
|
import com.yihu.jw.entity.care.assistance.EmergencyAssistanceDO;
|
|
|
import com.yihu.jw.entity.care.device.DevicePatientDevice;
|
|
|
import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
|
|
|
import com.yihu.jw.entity.care.securitymonitoring.EmergencyWarnConclusionDO;
|
|
|
import com.yihu.jw.entity.care.securitymonitoring.EmergencyWarnDoctorResponseDO;
|
|
|
import com.yihu.jw.entity.care.securitymonitoring.SecurityMonitoringOrderDO;
|
|
|
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
|
|
|
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
|
|
|
import com.yihu.jw.im.dao.ConsultDao;
|
|
@ -96,7 +100,10 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
private ConsultDao consultDao;
|
|
|
@Autowired
|
|
|
private DictService dictService;
|
|
|
|
|
|
@Autowired
|
|
|
private BaseEmergencyWarnLogDao logDao;
|
|
|
@Autowired
|
|
|
private SecurityMonitoringOrderDao securityMonitoringOrderDao;
|
|
|
|
|
|
/**
|
|
|
* 新建居民紧急救助
|
|
@ -114,6 +121,12 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
result.put(ResponseContant.resultMsg,failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
if (emergencyAssistanceDao.findByPatientAndStatus(patient,EmergencyAssistanceDO.Status.apply.getType())!=null){
|
|
|
String failMsg = "当前居民存在发起中工单,请完成后再申请";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg,failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
assistanceDO.setOrderSource(orderSource);
|
|
|
assistanceDO.setStatus(1);
|
|
|
assistanceDO.setPatient(patient);
|
|
@ -173,22 +186,6 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
result.put(ResponseContant.resultMsg,failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
//获取距离患者最近的一个医生(默认直线距离最近的医生)
|
|
|
// double distance = 0.0;
|
|
|
// for (BaseDoctorDO doctorDO:doctorDOS){
|
|
|
// if (StringUtils.isBlank(doctorDO.getDoctorLat())||StringUtils.isBlank(doctorDO.getDoctorLon())){
|
|
|
// continue;
|
|
|
// }
|
|
|
// double distanceTmp = countDistance.getDistance(Double.parseDouble(assistanceDO.getServeLat()),Double.parseDouble(assistanceDO.getServeLon()),Double.parseDouble(doctorDO.getDoctorLat()),Double.parseDouble(doctorDO.getDoctorLon()));
|
|
|
// if (distanceTmp>distance){
|
|
|
// distance = distanceTmp;
|
|
|
// assistanceDO.setDoctor(doctorDO.getId());
|
|
|
// assistanceDO.setDoctorName(doctorDO.getName());
|
|
|
// assistanceDO.setDoctorAddress(doctorDO.getDoctorLocateAddress());
|
|
|
// assistanceDO.setDoctorLon(doctorDO.getDoctorLon());
|
|
|
// assistanceDO.setDoctorLat(doctorDO.getDoctorLat());
|
|
|
// }
|
|
|
// }
|
|
|
assistanceDO = emergencyAssistanceDao.save(assistanceDO);
|
|
|
//创建im会话 紧急救助咨询的sessionid 为居民code+(wlyy_consult_team表consult)+20
|
|
|
JSONObject IMObj = consultTeamService.addServiceConsult(assistanceDO.getId(),patient,proxyPatient,null);
|
|
@ -273,7 +270,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
case -2:statusName="误警报";break;
|
|
|
case -1:statusName="已取消";break;
|
|
|
case 0:statusName="已完成";break;
|
|
|
case 1:statusName="申请中";break;
|
|
|
case 1:statusName="预警中";break;
|
|
|
}
|
|
|
emergencyOrderVO.setStatusName(statusName);
|
|
|
emergencyOrderVO.setOrderId(orderID);
|
|
@ -287,6 +284,9 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
emergencyOrderVO.setSex(patientDO.getSex());
|
|
|
emergencyOrderVO.setPhone(assistanceDO.getPatientPhone());
|
|
|
|
|
|
List<BaseEmergencyWarnLogDO> logDOS = logDao.findByOrderIdOrderByCreateTimeDesc(assistanceDO.getId());
|
|
|
emergencyOrderVO.setOrderLogInfo(logDOS);
|
|
|
|
|
|
if(StringUtils.isNotBlank(patientDO.getIdcard())){
|
|
|
emergencyOrderVO.setAge((IdCardUtil.getAgeForIdcard(patientDO.getIdcard()))+"");
|
|
|
}
|
|
@ -314,7 +314,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
//附加信息 紧急救助无
|
|
|
//通知对象
|
|
|
List<Map<String,Object>> noticePersons = new ArrayList<>();
|
|
|
JSONArray familyArr = familyMemberService.getPatientMembers(assistanceDO.getPatient(),null,null,null);
|
|
|
JSONArray familyArr = familyMemberService.getPatientMembers(assistanceDO.getPatient(),null,null,null,null);
|
|
|
String emeCallPhone = "";
|
|
|
if (assistanceDO.getOrderSource()!=1){//设备发起工单
|
|
|
String category = assistanceDO.getOrderSource()==2?"4":"7";
|
|
@ -535,7 +535,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
tmpObj.put("status_-2",0);//误报警
|
|
|
tmpObj.put("status_-1",0);//已取消
|
|
|
tmpObj.put("status_0",0);//已完成
|
|
|
tmpObj.put("status_1",0);//申请中
|
|
|
tmpObj.put("status_1",0);//预警中
|
|
|
StringBuilder sql = new StringBuilder(" select ord.status,count(ord.id) count from base_emergency_assistance_order ord where 1=1") ;
|
|
|
if (StringUtils.isNotBlank(patient)){
|
|
|
sql.append( " and (ord.patient='"+patient+"' or ord.proxy_patient='"+patient+"' ) group by ord.status ");
|
|
@ -840,6 +840,18 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
responseDO.setDoctor(doctor);
|
|
|
responseDO.setResponseTime(new Date());
|
|
|
emergencyWarnDoctorResponseDao.save(responseDO);
|
|
|
|
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctor);
|
|
|
if (null!=doctorDO){
|
|
|
BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
|
|
|
logDO.setUserCode(doctor);
|
|
|
logDO.setUserName(doctorDO.getName());
|
|
|
logDO.setOrderId(orderId);
|
|
|
logDO.setUserType(2);
|
|
|
logDO.setCreateTime(new Date());
|
|
|
logDO.setContent("助老员"+doctorDO.getName()+"前往定位");
|
|
|
logDao.save(logDO);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.put("resultFlag", 1);
|
|
@ -916,30 +928,6 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public String test(String doctor,String orderID){
|
|
|
// JSONObject message = new JSONObject();
|
|
|
// message.put("session_id","808080eb78b5d8e90178b5fcfa330001_4028030c78f1df510178f217a6c50001_20");
|
|
|
// message.put("sender_name","一一");
|
|
|
// message.put("sender_code","808080eb78b5d8e90178b5fcfa330001");
|
|
|
// message.put("order_id","4028030c78f1df510178f217a6a70000");
|
|
|
// message.put("content_type",40);
|
|
|
// imUtill.sendMDTSocketMessageToDoctor(doctor,message.toString());
|
|
|
|
|
|
//结束救助咨询
|
|
|
String sql = "select id from base_emergency_assistance_order where status!=1";
|
|
|
List<String> ids = jdbcTemplate.queryForList(sql,String.class);
|
|
|
for (String id:ids){
|
|
|
EmergencyAssistanceDO assistanceDO = emergencyAssistanceDao.findOne(orderID);
|
|
|
if (!consultTeamService.finishConsult(assistanceDO.getId(),assistanceDO.getPatient(),doctor,2)){
|
|
|
String failMsg = "咨询结束失败 无法完成工单";
|
|
|
|
|
|
return failMsg;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public JSONObject getDoctorOrderList(String doctor, int page, int size) {
|
|
|
page = page>0?page-1:0;
|
|
|
String sqlCount = "select count(ord.id) from base_life_care_order ord where ord.doctor = '"+doctor+"' ";
|
|
@ -968,10 +956,10 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
*/
|
|
|
public PageEnvelop getEmergencyAssistanceList(Integer page, Integer size,String doctor){
|
|
|
page = page>0?page-1:0;
|
|
|
String sql = " select '20' as OrderType,ord.id,ord.doctor,p.name,'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time" +
|
|
|
String sql = " select '20' as OrderType,ord.id,ord.doctor,ord.status,p.name,'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time" +
|
|
|
" from base_emergency_assistance_order ord INNER JOIN base_doctor p on ord.doctor = p.id where ord.doctor='"+doctor+"'" ;
|
|
|
sql +="UNION " +
|
|
|
"select '22' as 'OrderType',ord.id,ord.doctor,p.name,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
|
|
|
"select '22' as 'OrderType',ord.id,ord.doctor,p.name,ord.status,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
|
|
|
"from base_security_monitoring_order ord INNER JOIN base_doctor p on ord.doctor = p.id where ord.doctor='"+doctor+"'" ;
|
|
|
String countSql = "select count(id) from ("+sql+")A ";
|
|
|
long count = jdbcTemplate.queryForObject(countSql,long.class);
|
|
@ -980,4 +968,32 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
return PageEnvelop.getSuccessListWithPage("查询成功",list,page,size,count);
|
|
|
}
|
|
|
|
|
|
public BaseEmergencyWarnLogDO doctorSendMessageLog(String doctor,String type,String session_id,String message){
|
|
|
BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
|
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctor);
|
|
|
if (null!=doctorDO){
|
|
|
if ("20".equals(type)){//紧急
|
|
|
List<EmergencyAssistanceDO> orderDOS = emergencyAssistanceDao.findBySessionId(session_id);
|
|
|
if (orderDOS.size()>0){
|
|
|
logDO.setOrderId(orderDOS.get(0).getId());
|
|
|
}
|
|
|
}else if ("22".equals(type)){//安防
|
|
|
String[]str = session_id.split("_");
|
|
|
ConsultTeamDo consultTeam = consultTeamDao.findByConsult(str[1]);
|
|
|
if (null!=consultTeam){
|
|
|
logDO.setOrderId(consultTeam.getRelationCode());
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(logDO.getOrderId())){
|
|
|
logDO.setUserCode(doctor);
|
|
|
logDO.setUserName(doctorDO.getName());
|
|
|
logDO.setUserType(2);
|
|
|
logDO.setContent("助老员"+doctorDO.getName()+"发送消\""+message+"\"");
|
|
|
logDO.setCreateTime(new Date());
|
|
|
logDao.save(logDO);
|
|
|
}
|
|
|
}
|
|
|
return logDO;
|
|
|
}
|
|
|
|
|
|
}
|