ソースを参照

同步客服系统

trick9191 7 年 前
コミット
6748743fcd

+ 11 - 1
common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/PatientReservation.java

@ -67,7 +67,7 @@ public class PatientReservation extends IdEntity {
	private String canceler;
	//取消预约者姓名(状态为预约取消时才有值)
	private String cancelerName;
	//取消预约者角色(状态为预约取消时才有值)1专科医生,2全科医生,3健康管理师,4临时专科 5.患者 (与医生服务团队角色一直)
	//取消预约者角色(状态为预约取消时才有值)1专科医生,2全科医生,3健康管理师,4临时专科 5.患者 (与医生服务团队角色一直)6.客服
	private Integer cancelerType;
	//取消时间(状态为预约取消时才有值)
	private String cancelerTime;
@ -79,6 +79,8 @@ public class PatientReservation extends IdEntity {
	private Integer signType;
	// 行政团队
	private Long adminTeamCode;
	//关联电话记录Code
	private String callCode;
	public String getCode() {
		return code;
@ -319,4 +321,12 @@ public class PatientReservation extends IdEntity {
	public void setAdminTeamCode(Long adminTeamCode) {
		this.adminTeamCode = adminTeamCode;
	}
	public String getCallCode() {
		return callCode;
	}
	public void setCallCode(String callCode) {
		this.callCode = callCode;
	}
}

+ 116 - 116
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/common/account/BookingController.java

@ -166,123 +166,123 @@ public class BookingController extends WeixinBaseController {
        }
    }
//    @RequestMapping(value = "CreateOrderByDoctor", method = RequestMethod.POST)
//    @ResponseBody
//    @ApiOperation("(内网)转诊预约挂号")
//    public String CreateOrderByDoctor(@ApiParam(name = "hospitalId", value = "医院ID", defaultValue = "350211A1001")
//                                      @RequestParam(value = "hospitalId", required = true) String hospitalId,
//                                      @ApiParam(name = "hospitalName", value = "医院名称", defaultValue = "厦门大学附属第一医院")
//                                      @RequestParam(value = "hospitalName", required = true) String hospitalName,
//                                      @ApiParam(name = "hosDeptId", value = "科室ID", defaultValue = "1011610")
//                                      @RequestParam(value = "hosDeptId", required = true) String hosDeptId,
//                                      @ApiParam(name = "hosDeptName", value = "医院科室名称", defaultValue = "内分泌糖尿病科门诊")
//                                      @RequestParam(value = "hosDeptName", required = true) String hosDeptName,
//                                      @ApiParam(name = "doctorId", value = "医生ID", defaultValue = "50108")
//                                      @RequestParam(value = "doctorId", required = true) String doctorId,
//                                      @ApiParam(name = "doctorName", value = "医生姓名", defaultValue = "杨叔禹")
//                                      @RequestParam(value = "doctorName", required = true) String doctorName,
//                                      @ApiParam(name = "arrangeDate", value = "排班信息", defaultValue = "{\"sectionType\":\"p\",\"startTime\":\"2016-12-29 14:00:00\",\"endTime\":\"2016-12-29 14:08:00\"}")
//                                      @RequestParam(value = "arrangeDate", required = true) String arrangeDate,
//                                      @ApiParam(name = "patient", value = "患者代码", defaultValue = "01954b2ebbb24a40a05da9d2f5c94795")
//                                      @RequestParam(value = "patient", required = true) String patient,
//                                      @ApiParam(name = "patientName", value = "患者姓名", defaultValue = "张锦川")
//                                      @RequestParam(value = "patientName", required = true) String patientName,
//                                      @ApiParam(name = "cardNo", value = "身份证号码", defaultValue = "35052419880511553X")
//                                      @RequestParam(value = "cardNo", required = true) String cardNo,
//                                      @ApiParam(name = "clinicCard", value = "市民卡号", defaultValue = "A0601003595X")
//                                      @RequestParam(value = "clinicCard", required = true) String clinicCard,
//                                      @ApiParam(name = "patientPhone", value = "患者手机", defaultValue = "13559207522")
//                                      @RequestParam(value = "patientPhone", required = true) String patientPhone,
//                                      @ApiParam(name = "dcode", value = "代预约医生编号", defaultValue = "test00000000005")
//                                      @RequestParam(value = "dcode", required = true) String dcode,
//                                      @ApiParam(name = "dname", value = "代预约医生名称", defaultValue = "组2全科医生")
//                                      @RequestParam(value = "dname", required = true) String dname) {
//        try {
//            String orderCode = guahaoXM.CreateOrderByDoctor(hospitalId, hospitalName, hosDeptId, hosDeptName, doctorId, doctorName, arrangeDate, patient, patientName, cardNo, clinicCard, patientPhone, dname, dcode);
//            //获取预约信息查询是否挂号成功
//            PatientReservation obj = patientReservationService.findByCode(orderCode);
//            if (obj != null) {
//                String des = "";
//                try {
//                    String msg = obj.getDname() + "医生已成功为您预约:" + DateUtil.dateToChinese(obj.getStartTime()) + "," + obj.getOrgName() +
//                            obj.getDeptName() + obj.getDoctorName() + "医生的号源。您可直接前往医院就诊。";
//
//                    //发送短信消息,调用总部发送信息的接口
//                    JSONObject resultJson = smsService.sendMsg(patientPhone,msg);
//                    if (resultJson != null && resultJson.getInt("result") != 0) {
//                        des = "短信提醒失败!(原因:"+resultJson.getString("description")+")";
//                    }
//                    //保存短信记录
//                    SMS sms = new SMS();
//                    sms.setContent(msg+des);
//                    sms.setCaptcha(null);
//                    Date date = new Date();
//                    sms.setDeadline(date);
//                    sms.setCzrq(date);
//                    sms.setMobile(patientPhone);
//                    sms.setIp(NetworkUtil.getIpAddress(request));
//                    sms.setType(6);
//                    sms.setStatus(1);
//                    smsDao.save(sms);
//
//                    // 推送消息给微信端
//                    Patient p = patientService.findByCode(patient);
//                    if (StringUtils.isNotEmpty(p.getOpenid())) {
//
//                        JSONObject json = new JSONObject();
//                        json.put("first", "");
//                        json.put("toUser", patient);
//                        json.put("represented",patient);//被代理人
//                        json.put("id", orderCode);
//                        json.put("date", obj.getStartTime());
//                        json.put("orgName", obj.getOrgName());
//                        json.put("orgCode", obj.getOrgCode());
//                        json.put("doctorName", obj.getDeptName());
//                        json.put("deptName", obj.getDeptName());
//                        json.put("remark", patientName + ",您好!\n" + msg);
//
//                        //判断是否判定openId,有没有发则查找家人发送
//                        if(StringUtils.isNotBlank(p.getOpenid())){
//                            // 添加到发送队列
//                            pushMsgTaskWlyy.putWxMsg(getAccessToken(), 6, p.getOpenid(), patientName, json);
//                        }
////
//                        //发送代理人
//                        JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(p.getCode(),p.getOpenid());
//                        if(jsonArray!=null&&jsonArray.length()>0){
//                            for (int i = 0;i<jsonArray.length();i++){
//                                JSONObject j  = jsonArray.getJSONObject(i);
//                                Patient member = (Patient) j.get("member");
//                                JSONObject data = json;
//                                data.remove("toUser");
//                                data.put("toUser",member.getCode());
//                                //String first = (String) json.get("first");
//                                data.remove("first");
//                                data.put("first",weiXinOpenIdUtils.getTitleMes(p,j.getInt("relation"),p.getName()));
//                                pushMsgTaskWlyy.putWxMsg(getAccessToken(), 6, member.getOpenid(), p.getName(), data);
//                            }
//                        }
//
    @RequestMapping(value = "CreateOrderByDoctor", method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation("(内网)转诊预约挂号")
    public String CreateOrderByDoctor(@ApiParam(name = "hospitalId", value = "医院ID", defaultValue = "350211A1001")
                                      @RequestParam(value = "hospitalId", required = true) String hospitalId,
                                      @ApiParam(name = "hospitalName", value = "医院名称", defaultValue = "厦门大学附属第一医院")
                                      @RequestParam(value = "hospitalName", required = true) String hospitalName,
                                      @ApiParam(name = "hosDeptId", value = "科室ID", defaultValue = "1011610")
                                      @RequestParam(value = "hosDeptId", required = true) String hosDeptId,
                                      @ApiParam(name = "hosDeptName", value = "医院科室名称", defaultValue = "内分泌糖尿病科门诊")
                                      @RequestParam(value = "hosDeptName", required = true) String hosDeptName,
                                      @ApiParam(name = "doctorId", value = "医生ID", defaultValue = "50108")
                                      @RequestParam(value = "doctorId", required = true) String doctorId,
                                      @ApiParam(name = "doctorName", value = "医生姓名", defaultValue = "杨叔禹")
                                      @RequestParam(value = "doctorName", required = true) String doctorName,
                                      @ApiParam(name = "arrangeDate", value = "排班信息", defaultValue = "{\"sectionType\":\"p\",\"startTime\":\"2016-12-29 14:00:00\",\"endTime\":\"2016-12-29 14:08:00\"}")
                                      @RequestParam(value = "arrangeDate", required = true) String arrangeDate,
                                      @ApiParam(name = "patient", value = "患者代码", defaultValue = "01954b2ebbb24a40a05da9d2f5c94795")
                                      @RequestParam(value = "patient", required = true) String patient,
                                      @ApiParam(name = "patientName", value = "患者姓名", defaultValue = "张锦川")
                                      @RequestParam(value = "patientName", required = true) String patientName,
                                      @ApiParam(name = "cardNo", value = "身份证号码", defaultValue = "35052419880511553X")
                                      @RequestParam(value = "cardNo", required = true) String cardNo,
                                      @ApiParam(name = "clinicCard", value = "市民卡号", defaultValue = "A0601003595X")
                                      @RequestParam(value = "clinicCard", required = true) String clinicCard,
                                      @ApiParam(name = "patientPhone", value = "患者手机", defaultValue = "13559207522")
                                      @RequestParam(value = "patientPhone", required = true) String patientPhone,
                                      @ApiParam(name = "dcode", value = "代预约医生编号", defaultValue = "test00000000005")
                                      @RequestParam(value = "dcode", required = true) String dcode,
                                      @ApiParam(name = "dname", value = "代预约医生名称", defaultValue = "组2全科医生")
                                      @RequestParam(value = "dname", required = true) String dname) {
        try {
            String orderCode = guahaoXM.CreateOrderByDoctor(hospitalId, hospitalName, hosDeptId, hosDeptName, doctorId, doctorName, arrangeDate, patient, patientName, cardNo, clinicCard, patientPhone, dname, dcode);
            //获取预约信息查询是否挂号成功
            PatientReservation obj = patientReservationService.findByCode(orderCode);
            if (obj != null) {
                String des = "";
                try {
                    String msg = obj.getDname() + "医生已成功为您预约:" + DateUtil.dateToChinese(obj.getStartTime()) + "," + obj.getOrgName() +
                            obj.getDeptName() + obj.getDoctorName() + "医生的号源。您可直接前往医院就诊。";
                    //发送短信消息,调用总部发送信息的接口
                    JSONObject resultJson = smsService.sendMsg(patientPhone,msg);
                    if (resultJson != null && resultJson.getInt("result") != 0) {
                        des = "短信提醒失败!(原因:"+resultJson.getString("description")+")";
                    }
                    //保存短信记录
                    SMS sms = new SMS();
                    sms.setContent(msg+des);
                    sms.setCaptcha(null);
                    Date date = new Date();
                    sms.setDeadline(date);
                    sms.setCzrq(date);
                    sms.setMobile(patientPhone);
                    sms.setIp(NetworkUtil.getIpAddress(request));
                    sms.setType(6);
                    sms.setStatus(1);
                    smsDao.save(sms);
                    // 推送消息给微信端
                    Patient p = patientService.findByCode(patient);
                    if (StringUtils.isNotEmpty(p.getOpenid())) {
                        JSONObject json = new JSONObject();
                        json.put("first", "");
                        json.put("toUser", patient);
                        json.put("represented",patient);//被代理人
                        json.put("id", orderCode);
                        json.put("date", obj.getStartTime());
                        json.put("orgName", obj.getOrgName());
                        json.put("orgCode", obj.getOrgCode());
                        json.put("doctorName", obj.getDeptName());
                        json.put("deptName", obj.getDeptName());
                        json.put("remark", patientName + ",您好!\n" + msg);
                        //判断是否判定openId,有没有发则查找家人发送
                        if(StringUtils.isNotBlank(p.getOpenid())){
                            // 添加到发送队列
                            pushMsgTaskWlyy.putWxMsg(getAccessToken(), 6, p.getOpenid(), patientName, json);
                        }
//
//                    }
//                    else{
//                        des +=" 微信提醒失败,患者无绑定微信!";
//                    }
//                    BusinessLogs.info(BusinessLogs.BusinessType.appointment, getUID(), p.getCode(), new JSONObject(obj));
//                }
//                catch (Exception ex)
//                {
//                    ex.printStackTrace();
//                }
//                return write(200, "创建挂号单成功!"+des,"data",obj.getId());
//            } else {
//                return error(-1, "创建挂号单失败!");
//            }
//        } catch (Exception e) {
//            error(e);
//            return error(-1, e.getMessage());
//        }
//    }
                        //发送代理人
                        JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(p.getCode(),p.getOpenid());
                        if(jsonArray!=null&&jsonArray.length()>0){
                            for (int i = 0;i<jsonArray.length();i++){
                                JSONObject j  = jsonArray.getJSONObject(i);
                                Patient member = (Patient) j.get("member");
                                JSONObject data = json;
                                data.remove("toUser");
                                data.put("toUser",member.getCode());
                                //String first = (String) json.get("first");
                                data.remove("first");
                                data.put("first",weiXinOpenIdUtils.getTitleMes(p,j.getInt("relation"),p.getName()));
                                pushMsgTaskWlyy.putWxMsg(getAccessToken(), 6, member.getOpenid(), p.getName(), data);
                            }
                        }
                    }
                    else{
                        des +=" 微信提醒失败,患者无绑定微信!";
                    }
                    BusinessLogs.info(BusinessLogs.BusinessType.appointment, getUID(), p.getCode(), new JSONObject(obj));
                }
                catch (Exception ex)
                {
                    ex.printStackTrace();
                }
                return write(200, "创建挂号单成功!"+des,"data",obj.getId());
            } else {
                return error(-1, "创建挂号单失败!");
            }
        } catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());
        }
    }
    @RequestMapping(value = "CancelOrder", method = RequestMethod.POST)
    @ResponseBody

+ 12 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/PatientReservation.java

@ -66,7 +66,7 @@ public class PatientReservation extends IdEntity {
	private String canceler;
	//取消预约者姓名(状态为预约取消时才有值)
	private String cancelerName;
	//取消预约者角色(状态为预约取消时才有值)1专科医生,2全科医生,3健康管理师,4临时专科 5.患者 (与医生服务团队角色一直)
	//取消预约者角色(状态为预约取消时才有值)1专科医生,2全科医生,3健康管理师,4临时专科 5.患者 (与医生服务团队角色一直)6.客服系统
	private Integer cancelerType;
	//取消时间(状态为预约取消时才有值)
	private String cancelerTime;
@ -79,6 +79,9 @@ public class PatientReservation extends IdEntity {
	// 行政团队
	private Long adminTeamCode;
	//关联电话记录Code
	private String callCode;
	public String getCode() {
		return code;
	}
@ -318,4 +321,12 @@ public class PatientReservation extends IdEntity {
	public void setAdminTeamCode(Long adminTeamCode) {
		this.adminTeamCode = adminTeamCode;
	}
	public String getCallCode() {
		return callCode;
	}
	public void setCallCode(String callCode) {
		this.callCode = callCode;
	}
}