|
@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
import com.netflix.ribbon.proxy.annotation.Http;
|
|
|
import com.yihu.jw.care.dao.assistance.EmergencyAssistanceDao;
|
|
|
import com.yihu.jw.care.dao.sign.ServicePackageSignRecordDao;
|
|
|
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
|
|
@ -31,8 +30,6 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
@ -74,7 +71,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
* @param jsonData
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject newOrder(String patient,String jsonData) throws Exception{
|
|
|
public JSONObject newOrder(String patient,String jsonData,String proxyPatient) throws Exception{
|
|
|
JSONObject result = new JSONObject();
|
|
|
EmergencyAssistanceDO assistanceDO = JSON.parseObject(jsonData,EmergencyAssistanceDO.class);
|
|
|
BasePatientDO patientDO = patientDao.findById(patient);
|
|
@ -89,6 +86,18 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
assistanceDO.setPatientIdcard(patientDO.getIdcard());
|
|
|
assistanceDO.setPatientName(patientDO.getName());
|
|
|
assistanceDO.setPatientPhone(patientDO.getMobile());
|
|
|
if(patient.equals(proxyPatient)) {//本人发起
|
|
|
assistanceDO.setProxyPatient(patient);
|
|
|
assistanceDO.setProxyPatientName(patientDO.getName());
|
|
|
assistanceDO.setProxyPatientPhone(patientDO.getMobile());
|
|
|
assistanceDO.setType(1);
|
|
|
}else {//家人
|
|
|
BasePatientDO proxyPatientDO = patientDao.findById(proxyPatient);
|
|
|
assistanceDO.setProxyPatient(proxyPatient);
|
|
|
assistanceDO.setProxyPatientName(proxyPatientDO.getName());
|
|
|
assistanceDO.setProxyPatientPhone(proxyPatientDO.getMobile());
|
|
|
assistanceDO.setType(2);
|
|
|
}
|
|
|
|
|
|
if (emergencyAssistanceDao.findByPatientAndStatus(patient,1)!=null){
|
|
|
String failMsg = "当前居民存在申请中的救助,请完成后再申请";
|
|
@ -140,7 +149,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
// }
|
|
|
assistanceDO = emergencyAssistanceDao.save(assistanceDO);
|
|
|
//创建im会话 紧急救助咨询的sessionid 为居民code+(wlyy_consult_team表consult)+20
|
|
|
JSONObject IMObj = consultTeamService.addServiceConsult(assistanceDO.getId(),patient,null);
|
|
|
JSONObject IMObj = consultTeamService.addServiceConsult(assistanceDO.getId(),patient,proxyPatient,null);
|
|
|
String sessionId=patient+"_"+ IMObj.getJSONObject("resultMsg").getString("consult") + "_20";
|
|
|
assistanceDO.setSessionId(sessionId);
|
|
|
//向会话中发送一条 陈XX发起紧急救助
|
|
@ -308,7 +317,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
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+"' group by ord.status ");
|
|
|
sql.append( " and (ord.patient='"+patient+"' or ord.proxy_patient='"+patient+"' ) group by ord.status ");
|
|
|
}
|
|
|
else if (StringUtils.isNotBlank(doctor)) {
|
|
|
sql.append(" AND EXISTS (" +
|
|
@ -359,6 +368,31 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
* @return
|
|
|
*/
|
|
|
public List<EmergencyAssistanceDO> getOrderList(String patient,String doctor,String status,Integer page,Integer pageSize,String sort){
|
|
|
StringBuilder sql = new StringBuilder(" select ord.* from base_emergency_assistance_order ord where 1=1 ");
|
|
|
if (StringUtils.isNotBlank(doctor)){
|
|
|
sql.append(" AND EXISTS (" +
|
|
|
"SELECT sr.patient from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i ," +
|
|
|
"base_team_member m " +
|
|
|
"where ord.patient = CONVERT(sr.patient USING utf8) and sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and m.team_code = i.team_code " +
|
|
|
" and i.del = 1 and sr.`status`=1 and i.code='emergencyAssistance' and m.doctor_code = '"+doctor+"' and m.del = '1') ");
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(patient)){
|
|
|
sql.append(" and ( ord.patient = '"+patient+"' or ord.proxy_patient='"+patient+"' )");
|
|
|
}
|
|
|
sql.append(" and ord.status in ( '").append(status.replace(",","','")).append("') ");
|
|
|
sql.append(" order by ord.create_time "+sort+" limit "+page*pageSize+","+pageSize);
|
|
|
|
|
|
List<EmergencyAssistanceDO> resultList = jdbcTemplate.query(sql.toString(),new BeanPropertyRowMapper(EmergencyAssistanceDO.class));
|
|
|
for (EmergencyAssistanceDO obj:resultList){
|
|
|
BasePatientDO patientDO = patientDao.findById(obj.getPatient());
|
|
|
obj.setPatientPhoto(patientDO.getPhoto());
|
|
|
obj.setPatientSex(patientDO.getSex());
|
|
|
obj.setPatientAge(IdCardUtil.getAgeForIdcard(patientDO.getIdcard()));
|
|
|
}
|
|
|
return resultList;
|
|
|
}
|
|
|
|
|
|
public List<EmergencyAssistanceDO> doctorGetOrderList(String patient,String doctor,String status,Integer page,Integer pageSize,String sort){
|
|
|
StringBuilder sql = new StringBuilder(" select ord.* from base_emergency_assistance_order ord where 1=1 ");
|
|
|
if (StringUtils.isNotBlank(doctor)){
|
|
|
sql.append(" AND EXISTS (" +
|
|
@ -385,6 +419,13 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
|
|
|
public JSONObject cancelOrder(String patient,String orderId){
|
|
|
JSONObject result = new JSONObject();
|
|
|
BasePatientDO patientDO = patientDao.findById(patient);
|
|
|
if (patientDO==null){
|
|
|
String failMsg = "当前居民信息获取失败";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg,failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
EmergencyAssistanceDO assistanceDO = emergencyAssistanceDao.findOne(orderId);
|
|
|
if (assistanceDO==null){
|
|
|
String failMsg = "当前救助工单不存在";
|
|
@ -406,9 +447,15 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
}
|
|
|
assistanceDO.setStatus(-1);
|
|
|
assistanceDO.setUpdateUser(patient);
|
|
|
assistanceDO.setUpdateUserName(assistanceDO.getPatientName());
|
|
|
assistanceDO.setUpdateUserName(patientDO.getName());
|
|
|
assistanceDO.setUpdateTime(new Date());
|
|
|
//im是否结束会话?
|
|
|
//结束救助咨询
|
|
|
if (!consultTeamService.finishEmergencyConsult(assistanceDO,patient,1)){
|
|
|
String failMsg = "咨询结束失败 无法完成工单";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg,failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
emergencyAssistanceDao.save(assistanceDO);
|
|
|
String failMsg = "当前救助工单已取消";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
@ -446,7 +493,13 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
assistanceDO.setUpdateUser(doctor);
|
|
|
assistanceDO.setUpdateUserName(assistanceDO.getDoctorName());
|
|
|
assistanceDO.setUpdateTime(new Date());
|
|
|
//im会话是否结束?
|
|
|
//结束会话
|
|
|
if (!consultTeamService.finishEmergencyConsult(assistanceDO,doctor,2)){
|
|
|
String failMsg = "咨询结束失败 无法完成工单";
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg,failMsg);
|
|
|
return result;
|
|
|
}
|
|
|
return getOrderDetail(orderId);
|
|
|
}
|
|
|
|
|
@ -531,4 +584,28 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
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.finishEmergencyConsult(assistanceDO,doctor,2)){
|
|
|
// String failMsg = "咨询结束失败 无法完成工单";
|
|
|
//
|
|
|
// return failMsg;
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
}
|