|
@ -28,9 +28,11 @@ import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Service
|
|
|
@Transactional
|
|
|
public class CustomerService extends BaseService{
|
|
|
|
|
|
@Autowired
|
|
@ -183,21 +185,11 @@ public class CustomerService extends BaseService{
|
|
|
return resp;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> addCallRecord(String user,Integer type,String callerNumber,String recipientNumber,Integer status,Integer serviceType,String serviceContent){
|
|
|
public Map<String,Object> addCallRecord(String user,Integer type,String callerNumber,String recipientNumber,Integer status){
|
|
|
|
|
|
|
|
|
List<Patient> list = patientDao.findByMobile(callerNumber);
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Patient p ;
|
|
|
if(list==null||list.size()==0){
|
|
|
rs.put("state",-1);
|
|
|
rs.put("mes","未找到患者信息");
|
|
|
rs.put("callRecord",null);
|
|
|
return rs;
|
|
|
}else{
|
|
|
p = list.get(0);
|
|
|
}
|
|
|
|
|
|
SignFamily sf = familyService.findByPatientCode(p.getCode());
|
|
|
User u = userDao.findByCode(user);
|
|
|
|
|
|
CallRecord callRecord = new CallRecord();
|
|
@ -206,18 +198,10 @@ public class CustomerService extends BaseService{
|
|
|
callRecord.setCallerNumber(callerNumber);
|
|
|
callRecord.setRecipientNumber(recipientNumber);
|
|
|
callRecord.setAnswerStatus(status);
|
|
|
callRecord.setServiceType(serviceType);
|
|
|
callRecord.setServiceContent(serviceContent);
|
|
|
callRecord.setCreateTime(new Date());
|
|
|
callRecord.setCallTime(new Date());
|
|
|
callRecord.setUserCode(user);
|
|
|
callRecord.setUserName(u.getName());
|
|
|
callRecord.setPatient(p.getCode());
|
|
|
callRecord.setPatientName(p.getName());
|
|
|
callRecord.setIdcard(p.getIdcard());
|
|
|
callRecord.setSsc(p.getSsc());
|
|
|
callRecord.setDoctor(sf.getDoctor());
|
|
|
callRecord.setDoctorName(sf.getDoctorName());
|
|
|
CallRecord temp = callRecordDao.save(callRecord);
|
|
|
|
|
|
rs.put("state",1);
|
|
@ -227,6 +211,8 @@ public class CustomerService extends BaseService{
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String updateCallRecord(String jsonString){
|
|
|
net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(jsonString);
|
|
|
CallRecord callRecord =(CallRecord)net.sf.json.JSONObject.toBean(json,CallRecord.class);
|
|
@ -234,16 +220,76 @@ public class CustomerService extends BaseService{
|
|
|
return "1";
|
|
|
}
|
|
|
|
|
|
public String updateCallRecordEndTime(String jsonString){
|
|
|
net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(jsonString);
|
|
|
CallRecord callRecord =(CallRecord)net.sf.json.JSONObject.toBean(json,CallRecord.class);
|
|
|
public Map<String,Object> updateCallRecordService(String code,String phone,Integer serviceType,String serviceContent){
|
|
|
CallRecord callRecord = callRecordDao.findByCode(code);
|
|
|
|
|
|
List<Patient> list = patientDao.findByMobile(phone);
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Patient p ;
|
|
|
if(list==null&&list.size()==0){
|
|
|
rs.put("state",-1);
|
|
|
rs.put("mes","未找到患者信息");
|
|
|
rs.put("callRecord",null);
|
|
|
return rs;
|
|
|
}else{
|
|
|
p = list.get(0);
|
|
|
}
|
|
|
|
|
|
SignFamily sf = familyService.findByPatientCode(p.getCode());
|
|
|
if(sf==null){
|
|
|
rs.put("state",-2);
|
|
|
rs.put("mes","未找到患者签约信息");
|
|
|
rs.put("callRecord",null);
|
|
|
return rs;
|
|
|
}
|
|
|
//存储患者信息信息
|
|
|
callRecord.setPatient(p.getCode());
|
|
|
callRecord.setPatientName(p.getName());
|
|
|
callRecord.setIdcard(p.getIdcard());
|
|
|
callRecord.setSsc(p.getSsc());
|
|
|
//存储医生信息
|
|
|
callRecord.setDoctor(sf.getDoctor());
|
|
|
callRecord.setDoctorName(sf.getDoctorName());
|
|
|
callRecord.setServiceType(serviceType);
|
|
|
callRecord.setServiceContent(serviceContent);
|
|
|
callRecord.setAdminTeamCode(sf.getAdminTeamId());
|
|
|
|
|
|
CallRecord call = callRecordDao.save(callRecord);
|
|
|
|
|
|
rs.put("state",1);
|
|
|
rs.put("mes","保存成功");
|
|
|
rs.put("callRecord",call);
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public String updateCallRecordEndTime(String code){
|
|
|
CallRecord callRecord = callRecordDao.findByCode(code);
|
|
|
callRecord.setEndTime(new Date());
|
|
|
callRecord.setTalkTime(DateUtil.getTimeDifference(callRecord.getCreateTime(),callRecord.getEndTime()));
|
|
|
callRecordDao.save(callRecord);
|
|
|
return "1";
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> getCallRecords(String callerNumber,Integer answerStatus,Integer serviceType ,String startDate,String endDate,Integer page,Integer size){
|
|
|
public Map<String,Object> getCallRecords(String callerNumber,Integer answerStatus,Integer serviceType ,String startDate,String endDate,Integer page,Integer size){
|
|
|
|
|
|
Map<String,Object> map = new HashedMap();
|
|
|
|
|
|
String sqltotal = "SELECT count(1) as total" +
|
|
|
" FROM " +
|
|
|
" manage_call_record r " +
|
|
|
" WHERE " +
|
|
|
" 1 = 1 ";
|
|
|
sqltotal = setCallRecordSql( sqltotal, callerNumber, answerStatus, serviceType , startDate, endDate);
|
|
|
List<Map<String,Object>> rsTotal = jdbcTemplate.queryForList(sqltotal);
|
|
|
Long total = (Long)rsTotal.get(0).get("total");
|
|
|
|
|
|
if(total==0){
|
|
|
map.put("callRecords",null);
|
|
|
map.put("page",page);
|
|
|
map.put("total",0);
|
|
|
map.put("records",0);
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
String sql = "SELECT " +
|
|
|
" r.type, " +
|
|
@ -252,13 +298,28 @@ public class CustomerService extends BaseService{
|
|
|
" r.call_time AS callTime, " +
|
|
|
" r.talk_time AS talkTime, " +
|
|
|
" r.answer_status AS answerStatus, " +
|
|
|
" r.service_type AS serviceType, " +
|
|
|
" r.type AS type, " +
|
|
|
" r.user_name AS userName, " +
|
|
|
" r.user_code AS userCode " +
|
|
|
" r.user_code AS userCode," +
|
|
|
" r.code" +
|
|
|
" FROM " +
|
|
|
" manage_call_record r " +
|
|
|
" WHERE " +
|
|
|
" 1 = 1 ";
|
|
|
sql = setCallRecordSql( sql, callerNumber, answerStatus, serviceType , startDate, endDate);
|
|
|
sql += " ORDER BY r.call_time DESC LIMIT "+(page-1)*size+","+size;
|
|
|
List<Map<String,Object>> rs = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
map.put("page",page);
|
|
|
map.put("records",total);
|
|
|
map.put("callRecords",rs);
|
|
|
double t = (double)total;
|
|
|
map.put("total",Math.ceil(t/size));
|
|
|
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
public String setCallRecordSql(String sql,String callerNumber,Integer answerStatus,Integer serviceType ,String startDate,String endDate){
|
|
|
if(StringUtils.isNotBlank(callerNumber)){
|
|
|
sql +=" AND r.caller_number = '"+callerNumber+"'";
|
|
|
}
|
|
@ -274,10 +335,7 @@ public class CustomerService extends BaseService{
|
|
|
if(StringUtils.isNotBlank(endDate)){
|
|
|
sql +=" AND r.call_time <='"+endDate+" 23:59:59'";
|
|
|
}
|
|
|
sql += " LIMIT "+(page-1)*size+","+size +" ORDER BY r.call_time DESC";
|
|
|
List<Map<String,Object>> rs = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
return rs;
|
|
|
return sql;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getCallRecordInfo(String code){
|
|
@ -332,7 +390,8 @@ public class CustomerService extends BaseService{
|
|
|
|
|
|
public String saveCallService(String callServiceJson,String user){
|
|
|
net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(callServiceJson);
|
|
|
CallService callService = (CallService)net.sf.json.JSONObject.toBean(jsonObject);
|
|
|
CallService callService = (CallService)net.sf.json.JSONObject.toBean(jsonObject,CallService.class);
|
|
|
callService.setCode(getCallServiceCode(callService.getType()+""));
|
|
|
callService.setUser(user);
|
|
|
User u = userDao.findByCode(user);
|
|
|
callService.setUserName(u.getName());
|
|
@ -364,7 +423,61 @@ public class CustomerService extends BaseService{
|
|
|
return "1";
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> getCallServices(String keyword, Integer serverType,Integer state,String patientName,String ssc,String idCard,String doctorName,String code,Integer adminTeamCode ,String startDate,String endDate,Integer page,Integer size){
|
|
|
public String updateCallService(String callServiceJson,String user){
|
|
|
net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(callServiceJson);
|
|
|
CallService callService = (CallService)net.sf.json.JSONObject.toBean(jsonObject,CallService.class);
|
|
|
callService.setUser(user);
|
|
|
User u = userDao.findByCode(user);
|
|
|
callService.setUserName(u.getName());
|
|
|
callServiceDao.save(callService);
|
|
|
|
|
|
//待处理发送消息给医生
|
|
|
if(callService.getState()==1){
|
|
|
Patient p = patientDao.findByCode(callService.getPatient());
|
|
|
// 添加签约消息
|
|
|
Message message = new Message();
|
|
|
message.setCzrq(new Date());
|
|
|
message.setCreateTime(new Date());
|
|
|
message.setContent("您有一条新的协同服务消息!");
|
|
|
message.setRead(1);//设置未读
|
|
|
message.setReceiver(callService.getDoctor());//设置接受医生的code
|
|
|
message.setSender(callService.getPatient());//设置发送的用户
|
|
|
message.setSenderName(callService.getPatientName());
|
|
|
message.setCode(getCode());
|
|
|
message.setSenderPhoto(p.getPhoto());
|
|
|
message.setTitle("协同服务消息");
|
|
|
message.setType(12);//协同服务消息
|
|
|
message.setReadonly(1);//是否只读消息
|
|
|
message.setSex(p.getSex());
|
|
|
message.setOver("1");//未处理
|
|
|
|
|
|
messageDao.save(message);
|
|
|
}
|
|
|
|
|
|
return "1";
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getCallServices(String keyword, Integer serverType,Integer state,String patientName,String ssc,String idCard,String doctorName,String code,Integer adminTeamCode ,String startDate,String endDate,Integer page,Integer size){
|
|
|
|
|
|
Map<String,Object> map = new HashedMap();
|
|
|
|
|
|
String sqltotal = "SELECT count(1) AS total" +
|
|
|
" FROM " +
|
|
|
" manage_call_service s " +
|
|
|
" WHERE " +
|
|
|
" 1 = 1";
|
|
|
sqltotal = setCallServiceSql( sqltotal, keyword, serverType, state, patientName, ssc, idCard, doctorName, code, adminTeamCode , startDate, endDate);
|
|
|
List<Map<String,Object>> totallist = jdbcTemplate.queryForList(sqltotal);
|
|
|
Long total = (Long)totallist.get(0).get("total");
|
|
|
|
|
|
if(total==0){
|
|
|
map.put("callServices",null);
|
|
|
map.put("page",page);
|
|
|
map.put("total",0);
|
|
|
map.put("records",0);
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
String sql = "SELECT " +
|
|
|
" s.`code`, " +
|
|
|
" s.patient, " +
|
|
@ -381,6 +494,22 @@ public class CustomerService extends BaseService{
|
|
|
" manage_call_service s " +
|
|
|
" WHERE " +
|
|
|
" 1 = 1";
|
|
|
sql = setCallServiceSql( sql, keyword, serverType, state, patientName, ssc, idCard, doctorName, code, adminTeamCode , startDate, endDate);
|
|
|
sql += " ORDER BY s.create_time DESC LIMIT "+(page-1)*size+","+size ;
|
|
|
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
map.put("page",page);
|
|
|
map.put("records",total);
|
|
|
map.put("callRecords",list);
|
|
|
double t = (double)total;
|
|
|
map.put("total",Math.ceil(t/size));
|
|
|
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
public String setCallServiceSql(String sql,String keyword, Integer serverType,Integer state,String patientName,String ssc,String idCard,String doctorName,String code,Integer adminTeamCode ,String startDate,String endDate){
|
|
|
|
|
|
if(StringUtils.isNotBlank(keyword)){
|
|
|
sql +=" AND (s.patient_name = '"+keyword+"' OR s.ssc ='"+keyword+"' OR s.Idcard ='"+keyword+"')";
|
|
|
}
|
|
@ -411,14 +540,10 @@ public class CustomerService extends BaseService{
|
|
|
if(StringUtils.isNotBlank(endDate)){
|
|
|
sql +=" AND s.create_time <='"+endDate+" 23:59:59'" ;
|
|
|
}
|
|
|
if(adminTeamCode!=null){
|
|
|
sql +=" AND s.admin_team_code ="+adminTeamCode ;
|
|
|
if(adminTeamCode!=null) {
|
|
|
sql += " AND s.admin_team_code =" + adminTeamCode;
|
|
|
}
|
|
|
sql += " LIMIT "+(page-1)*size+","+size +" ORDER BY r.create_time DESC";
|
|
|
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
return list;
|
|
|
return sql;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getCallServiceInfo(String code){
|