瀏覽代碼

客服系統

trick9191 7 年之前
父節點
當前提交
bbe666fdeb

+ 1 - 10
common/common-entity/src/main/java/com/yihu/wlyy/entity/call/CallService.java

@ -16,7 +16,6 @@ public class CallService extends IdEntity {
    private String code; //服务编号
    private String callCode; //关联通话记录
    private Integer serverType; //服务类型:0.医生咨询,1.预约挂号
    private String patient; //服务对象(患者code)
    private String patientName; // 服务对象名称(患者名称)
    private String ssc; // 社保卡号
@ -29,7 +28,7 @@ public class CallService extends IdEntity {
    private Date createTime; //创建时间
    private Date updateTime; //更新时间
    private String remark; //备注
    private Integer type; //服务类型:0.咨询,2.预约
    private Integer type; //服务类型:0.咨询,1.预约
    private Integer dealType; //处理方式:1.电话回复,2.客服回复
    private Date dealTime; //处理时间
    private Integer dealState; // 处理结果:1.完成,2.无法联系居民
@ -62,14 +61,6 @@ public class CallService extends IdEntity {
        this.callCode = callCode;
    }
    public Integer getServerType() {
        return serverType;
    }
    public void setServerType(Integer serverType) {
        this.serverType = serverType;
    }
    public String getPatient() {
        return patient;
    }

+ 24 - 13
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/common/account/CustomerController.java

@ -229,11 +229,11 @@ public class CustomerController extends BaseController {
    @RequestMapping(value = "/updateCallRecordService", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "更新通话记录的服务记录信息")
    public String  updateCallRecordService(@ApiParam(name="code",value="通话记录code")@RequestParam(required = true)String code,
                                           @ApiParam(name="idCard",value="身份证号")@RequestParam(required = true)String idCard,
                                           @ApiParam(name="phone",value="服务对象电话号码")@RequestParam(required = true)String phone,
                                           @ApiParam(name="serviceType",value="服务类型:1.医生转接 2.代理咨询")@RequestParam(required = true)Integer serviceType,
                                           @ApiParam(name="serviceContent",value="服务内容")@RequestParam(required = false) String serviceContent){
        try {
            return write(200,"保存成功","data",customerService.updateCallRecordService(code,idCard,serviceType,serviceContent));
            return write(200,"保存成功","data",customerService.updateCallRecordService(code,phone,serviceType,serviceContent));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
@ -254,17 +254,17 @@ public class CustomerController extends BaseController {
    @RequestMapping(value = "/getCallRecords", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "获取通讯记录列表")
    public String getCallRecords(@ApiParam(name="callerNumber",value="呼叫人电话")@RequestParam(required = false)String callerNumber,
                                 @ApiParam(name="answerStatus",value="接听状态: 1.接通,2. 队列中放弃,3.接通")@RequestParam(required = false)Integer answerStatus,
                                 @ApiParam(name="answerStatus",value="接听状态: 1.接通,2. 队列中放弃,3.未接通")@RequestParam(required = false)Integer answerStatus,
                                 @ApiParam(name="serviceType",value="服务类型:0.医生咨询,1.预约挂号")@RequestParam(required = false)Integer serviceType ,
                                 @ApiParam(name="startDate",value="开始时间")@RequestParam(required = false)String startDate,
                                 @ApiParam(name="endDate",value="结束时间")@RequestParam(required = false)String endDate,
                                 @ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
                                 @ApiParam(name="size",value="页码大小")@RequestParam(required = true)Integer size){
        try {
            return write(200,"保存成功","data",customerService.getCallRecords(callerNumber,answerStatus,serviceType,startDate,endDate,page,size));
            return write(200,"查询成功","data",customerService.getCallRecords(callerNumber,answerStatus,serviceType,startDate,endDate,page,size));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
            return error(-1,"查询失败");
        }
    }
@ -272,10 +272,10 @@ public class CustomerController extends BaseController {
    @ApiOperation(value = "获取通讯记录详情")
    public String getCallRecordInfo(@ApiParam(name="code",value="通话记录code")@RequestParam(required = true)String code){
        try {
            return write(200,"保存成功","data",customerService.getCallRecordInfo(code));
            return write(200,"查询成功","data",customerService.getCallRecordInfo(code));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
            return error(-1,"查询失败");
        }
    }
@ -283,10 +283,10 @@ public class CustomerController extends BaseController {
    @ApiOperation(value = "获取协同服务编号")
    public String getCallServiceCode(@ApiParam(name="type",value="协同服务类型编号,1为咨询 2为待预约")@RequestParam(required = true)String type){
        try {
            return write(200,"保存成功","data",customerService.getCallServiceCode(type));
            return write(200,"查询成功","data",customerService.getCallServiceCode(type));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
            return error(-1,"查询失败");
        }
    }
@ -301,6 +301,17 @@ public class CustomerController extends BaseController {
        }
    }
    @RequestMapping(value = "/updateCallService", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "更新协同服务")
    public String updateCallService(@ApiParam(name="callServiceJson",value="协同服务json串")@RequestParam(required = true)String callServiceJson){
        try {
            return write(200,"保存成功","data",customerService.updateCallService( callServiceJson,getUID()));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/getCallServices", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "协同服务查询")
    public String getCallServices(@ApiParam(name="keyword",value="姓名或身份证或医保卡号")@RequestParam(required = false)String keyword,
@ -317,10 +328,10 @@ public class CustomerController extends BaseController {
                                  @ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
                                  @ApiParam(name="size",value="每页大小")@RequestParam(required = true)Integer size){
        try {
            return write(200,"保存成功","data",customerService.getCallServices(keyword, serverType,state,patientName,ssc,idCard,doctorName, code,adminTeamCode,startDate, endDate, page, size));
            return write(200,"查询成功","data",customerService.getCallServices(keyword, serverType,state,patientName,ssc,idCard,doctorName, code,adminTeamCode,startDate, endDate, page, size));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
            return error(-1,"查询失败");
        }
    }
@ -328,10 +339,10 @@ public class CustomerController extends BaseController {
    @ApiOperation(value = "协同服务详情")
    public String getCallServiceInfo(@ApiParam(name="code",value="协同服务编号")@RequestParam(required = true)String code){
        try {
            return write(200,"保存成功","data",customerService.getCallServiceInfo(code));
            return write(200,"查询成功","data",customerService.getCallServiceInfo(code));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
            return error(-1,"查询失败");
        }
    }

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/call/CallRecord.java

@ -18,7 +18,7 @@ public class CallRecord extends IdEntity {
    private Integer type; //1.呼入,2.呼出
    private String  callerNumber; //主叫号码
    private String  recipientNumber;//被叫号码
    private Integer  answerStatus;//接听状态: 1.接通,2. 队列中放弃,3.接通
    private Integer  answerStatus;//接听状态: 1.接通,2. 队列中放弃,3.未接通
    private Integer  serviceType; //服务类型:1.医生转接 2.代理咨询
    private String  serviceContent; //服务内容
    private Date createTime; //创建时间

+ 1 - 10
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/call/CallService.java

@ -16,7 +16,6 @@ public class CallService extends IdEntity {
    private String code; //服务编号
    private String callCode; //关联通话记录
    private Integer serverType; //服务类型:0.医生咨询,1.预约挂号
    private String patient; //服务对象(患者code)
    private String patientName; // 服务对象名称(患者名称)
    private String ssc; // 社保卡号
@ -29,7 +28,7 @@ public class CallService extends IdEntity {
    private Date createTime; //创建时间
    private Date updateTime; //更新时间
    private String remark; //备注
    private Integer type; //服务类型:0.咨询,2.预约
    private Integer type; //服务类型:0.咨询,1.预约
    private Integer dealType; //处理方式:1.电话回复,2.客服回复
    private Date dealTime; //处理时间
    private Integer dealState; // 处理结果:1.完成,2.无法联系居民
@ -62,14 +61,6 @@ public class CallService extends IdEntity {
        this.callCode = callCode;
    }
    public Integer getServerType() {
        return serverType;
    }
    public void setServerType(Integer serverType) {
        this.serverType = serverType;
    }
    public String getPatient() {
        return patient;
    }

+ 119 - 19
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/account/CustomerService.java

@ -220,20 +220,23 @@ public class CustomerService extends BaseService{
		return "1";
	}
	public Map<String,Object> updateCallRecordService(String code,String idCard,Integer serviceType,String serviceContent){
	public Map<String,Object> updateCallRecordService(String code,String phone,Integer serviceType,String serviceContent){
		CallRecord callRecord = callRecordDao.findByCode(code);
		Patient p =  patientDao.findByIdcard(idCard);
		List<Patient> list =  patientDao.findByMobile(phone);
		Map<String,Object> rs = new HashedMap();
		if(p==null){
		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(p==null){
		if(sf==null){
			rs.put("state",-2);
			rs.put("mes","未找到患者签约信息");
			rs.put("callRecord",null);
@ -267,7 +270,26 @@ public class CustomerService extends BaseService{
		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, " +
@ -276,7 +298,7 @@ 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.code" +
@ -284,6 +306,20 @@ public class CustomerService extends BaseService{
				" 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+"'";
		}
@ -299,10 +335,7 @@ public class CustomerService extends BaseService{
		if(StringUtils.isNotBlank(endDate)){
			sql +=" AND r.call_time <='"+endDate+" 23:59:59'";
		}
		sql += " ORDER BY r.call_time DESC LIMIT "+(page-1)*size+","+size;
		List<Map<String,Object>> rs = jdbcTemplate.queryForList(sql);
		return rs;
		return sql;
	}
	public Map<String,Object> getCallRecordInfo(String code){
@ -357,7 +390,42 @@ 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());
		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 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());
@ -389,7 +457,27 @@ 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 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, " +
@ -406,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+"')";
		}
@ -436,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 += "  ORDER BY s.create_time DESC LIMIT "+(page-1)*size+","+size ;
		List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
		return list;
		return sql;
	}
	public Map<String,Object> getCallServiceInfo(String code){

+ 8 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/call/CustomerService.java

@ -37,16 +37,21 @@ public class CustomerService extends BaseService{
				" s.patient_name AS patientName, " +
				" s.doctor, " +
				" s.doctor_name AS doctorName, " +
				" s.server_type As serverType, " +
				" s.type As type, " +
				" s.state, " +
				" s.server_content AS serverContent, " +
				" s.create_time AS createTime, " +
				" s.user, " +
				" s.user_name AS userName " +
				" s.user_name AS userName ," +
				" s.create_Time AS createTime ," +
				" p.sex," +
				" p.photo," +
				" TIMESTAMPDIFF(YEAR,p.birthday,SYSDATE()) age" +
				" FROM " +
				" manage_call_service s " +
				" LEFT JOIN wlyy_patient p ON s.code = s.patient" +
				" WHERE " +
				" 1 = 1";
				" s.state >0 ";
		if(StringUtils.isNotBlank(keyword)){
			sql +=" AND (s.patient_name = '"+keyword+"' OR s.ssc ='"+keyword+"' OR s.Idcard ='"+keyword+"')";
		}