|
@ -1896,11 +1896,6 @@ public class SignWebService extends BaseService {
|
|
|
String expenses,
|
|
|
String refuseReason) throws Exception {
|
|
|
|
|
|
// List<SignFamily> renews = signFamilyDao.findByDoctorAndPatientOverDue(dotorCode, patientCode, signYear);
|
|
|
//
|
|
|
// if (renews == null || renews.size() == 0) {
|
|
|
// renews = signFamilyDao.findByDoctorHealthAndPatient(dotorCode, patientCode, signYear);
|
|
|
// }
|
|
|
SignFamily renew = signFamilyDao.findByCode(signCode);
|
|
|
|
|
|
if (renew != null) {
|
|
@ -2063,6 +2058,180 @@ public class SignWebService extends BaseService {
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 1.4.9.1健管师同意流程
|
|
|
* 健康管理师同意流程
|
|
|
* @param access_token 微信登录证明
|
|
|
* @param dotorCode 当前登录医生
|
|
|
* @param patientCode 患者code
|
|
|
* @param state 同意状态
|
|
|
* @param mesId 消息id
|
|
|
* @param signCode 签约code
|
|
|
* @param health 健康情况多条“,”分隔
|
|
|
* @param disease 疾病类型 格式同上
|
|
|
* @param custom 普通标签 格式同上
|
|
|
* @param sevId 服务类型
|
|
|
* @param doctor 全科医生编码
|
|
|
* @param teamCode 团队
|
|
|
* @param expenses 收费类别
|
|
|
* @param refuseReason 拒绝原因
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public int agreeRenewHealth(String access_token, String dotorCode, String patientCode, String state, Long mesId, String signCode, String health,
|
|
|
String disease,
|
|
|
String custom,
|
|
|
String sevId, String doctor,
|
|
|
Long teamCode,
|
|
|
String expenses,
|
|
|
String refuseReason) throws Exception {
|
|
|
|
|
|
SignFamily renew = signFamilyDao.findByCode(signCode);
|
|
|
|
|
|
if (renew != null) {
|
|
|
int status = renew.getStatus();
|
|
|
if (status == 0) {
|
|
|
if (StringUtils.isNotBlank(state)) {
|
|
|
if ("0".equals(state)) {
|
|
|
renew.setStatus(-2);
|
|
|
renew.setRefuseSpeak(refuseReason);
|
|
|
} else if ("1".equals(state)) {
|
|
|
renew.setStatus(1);
|
|
|
|
|
|
//1.3.3.2新增需求
|
|
|
//设置居民服务类型
|
|
|
setSevId(renew, sevId);
|
|
|
//1.3.3.2新增需求
|
|
|
//设置居民标签
|
|
|
signPatientLabelInfoService.resetPatientLabels(renew.getPatient(), health, disease, custom);
|
|
|
//1.4.9.1 建管师分配医生
|
|
|
if (StringUtils.isNotBlank(doctor)) {
|
|
|
setSignFamilyDoctor(renew, doctor);
|
|
|
}
|
|
|
//1.3.3.2设置新团队
|
|
|
if (teamCode != null && teamCode != 0) {
|
|
|
renew.setAdminTeamId(teamCode);
|
|
|
}
|
|
|
renew.setExpensesType(StringUtils.isEmpty(expenses) ? "01" : expenses);//收费类别
|
|
|
}
|
|
|
}
|
|
|
renew.setApplyDate(new Date());
|
|
|
//1.3.3.4 根据团队设置标识
|
|
|
setRenewFlag(renew, teamCode);
|
|
|
|
|
|
signFamilyDao.save(renew);
|
|
|
//消息设为已读
|
|
|
setMessState(mesId);
|
|
|
|
|
|
if ("1".equals(state)) {
|
|
|
setRenewLog(renew);
|
|
|
}
|
|
|
|
|
|
//发送微信模板消息
|
|
|
JSONObject data = new JSONObject();
|
|
|
data.put("doctorName", renew.getDoctorName());
|
|
|
data.put("date", DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
|
|
|
data.put("doctor", dotorCode);
|
|
|
data.put("toUser", patientCode);
|
|
|
data.put("represented", patientCode);
|
|
|
data.put("toName", renew.getName());
|
|
|
data.put("isRenew", "1");//表示为续签操作
|
|
|
data.put("signCode", signCode);
|
|
|
|
|
|
Patient patient = patientService.findByCode(renew.getPatient());
|
|
|
if (patient != null && StringUtils.isNotBlank(patient.getOpenid())) {
|
|
|
|
|
|
data.put("agent","0");
|
|
|
|
|
|
if ("0".equals(state)) {
|
|
|
if (StringUtils.isNotEmpty(refuseReason)){
|
|
|
data.put("content", refuseReason);
|
|
|
}else {
|
|
|
data.put("content", "家庭医生续签");
|
|
|
}
|
|
|
WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_sign_failed","failed");
|
|
|
String first = templateConfig.getFirst();
|
|
|
first = first.replace("key1",(renew.getName()==null?"":renew.getName())).replace("br","\n");
|
|
|
String remark = templateConfig.getRemark();
|
|
|
|
|
|
|
|
|
data.put("first", first);
|
|
|
data.put("remark", remark);
|
|
|
|
|
|
pushMsgTask.putWxMsg(access_token, 2, patient.getOpenid(), patient.getName(), data);
|
|
|
} else if ("1".equals(state)) {
|
|
|
WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_sign_success","success");
|
|
|
String first = templateConfig.getFirst();
|
|
|
first = first.replace("key1",(renew.getName()==null?"":renew.getName())).replace("br","\n");
|
|
|
String remark = templateConfig.getRemark();
|
|
|
String keyword4 = templateConfig.getKeyword4();
|
|
|
data.put("first", first);
|
|
|
data.put("remark", remark);
|
|
|
data.put("content", keyword4);
|
|
|
pushMsgTask.putWxMsg(access_token, 1, patient.getOpenid(), patient.getName(), data);
|
|
|
}
|
|
|
}else {
|
|
|
//发送代理人
|
|
|
JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient.getCode(), patient.getOpenid());
|
|
|
|
|
|
data.put("agent","1");
|
|
|
|
|
|
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");
|
|
|
data.remove("toUser");
|
|
|
data.put("toUser", member.getCode());
|
|
|
//String first = (String) json.get("first");
|
|
|
if ("0".equals(state)) {
|
|
|
WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_sign_failed","failed");
|
|
|
String first = templateConfig.getFirst();
|
|
|
first = first.replace("key1",(patient.getName()==null?"":patient.getName())).replace("br","\n");
|
|
|
String remark = templateConfig.getRemark();
|
|
|
|
|
|
data.put("first", weiXinOpenIdUtils.getTitleMes(patient, (int) j.get("relation"), patient.getName()) + "\n" + first);
|
|
|
data.put("remark", remark);
|
|
|
pushMsgTask.putWxMsg(access_token, 2, member.getOpenid(), patient.getName(), data);
|
|
|
} else if ("1".equals(state)) {
|
|
|
WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_sign_success","success");
|
|
|
String first = templateConfig.getFirst();
|
|
|
first = first.replace("key1",(patient.getName()==null?"":patient.getName())).replace("br","\n");
|
|
|
String remark = templateConfig.getRemark();
|
|
|
|
|
|
data.put("first", weiXinOpenIdUtils.getTitleMes(patient, (int) j.get("relation"), patient.getName()) + "\n" + first);
|
|
|
data.put("remark", remark);
|
|
|
|
|
|
pushMsgTask.putWxMsg(access_token, 1, member.getOpenid(), patient.getName(), data);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else if (status == 1) {
|
|
|
//已经同意
|
|
|
return 2;
|
|
|
} else if (status == -1) {
|
|
|
//已拒绝
|
|
|
return 3;
|
|
|
} else if (status == -2) {
|
|
|
//已拒绝
|
|
|
return 4;
|
|
|
} else if (status == -3) {
|
|
|
//已解约
|
|
|
return 5;
|
|
|
} else if (status == -4) {
|
|
|
//已到期
|
|
|
return 6;
|
|
|
} else {
|
|
|
//已取消
|
|
|
return 7;
|
|
|
}
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取年度列表
|
|
|
* 团队
|
|
@ -2626,85 +2795,126 @@ public class SignWebService extends BaseService {
|
|
|
renew.setDoctorHealth(hd.getCode());
|
|
|
}
|
|
|
|
|
|
public void setSignFamilyDoctor(SignFamily renew, String doctor) {
|
|
|
|
|
|
Doctor d = doctorDao.findByCode(doctor);
|
|
|
//设置签约医生
|
|
|
renew.setDoctor(doctor);
|
|
|
renew.setDoctorName(d.getName());
|
|
|
renew.setSignDoctorCode(doctor);
|
|
|
renew.setSignDoctorName(d.getName());
|
|
|
|
|
|
//创建团队
|
|
|
DoctorTeam t = new DoctorTeam();
|
|
|
String code = getCode();
|
|
|
t.setCode(code);
|
|
|
t.setName(renew.getDoctorName() + "," + d.getName() + "," + renew.getName());
|
|
|
t.setSignType("2");
|
|
|
t.setDel("1");
|
|
|
t.setCzrq(new Date());
|
|
|
|
|
|
//新建健康管理师
|
|
|
DoctorTeamMember hdmb = new DoctorTeamMember();
|
|
|
hdmb.setName(renew.getDoctorHealthName());
|
|
|
hdmb.setMemberCode(renew.getDoctorHealth());
|
|
|
hdmb.setCode(getCode());
|
|
|
hdmb.setDel("1");
|
|
|
hdmb.setCzrq(new Date());
|
|
|
hdmb.setTeam(code);
|
|
|
hdmb.setType(3);
|
|
|
hdmb.setSignType("2");
|
|
|
|
|
|
//新建全科医生成员
|
|
|
DoctorTeamMember dmb = new DoctorTeamMember();
|
|
|
dmb.setName(renew.getDoctorName());
|
|
|
dmb.setMemberCode(renew.getDoctor());
|
|
|
dmb.setCode(getCode());
|
|
|
dmb.setDel("1");
|
|
|
dmb.setCzrq(new Date());
|
|
|
dmb.setTeam(code);
|
|
|
dmb.setType(2);
|
|
|
dmb.setSignType("2");
|
|
|
|
|
|
//新建居民成员
|
|
|
DoctorTeamMember pmb = new DoctorTeamMember();
|
|
|
pmb.setName(renew.getName());
|
|
|
pmb.setMemberCode(renew.getPatient());
|
|
|
pmb.setCode(getCode());
|
|
|
pmb.setDel("1");
|
|
|
pmb.setCzrq(new Date());
|
|
|
pmb.setTeam(code);
|
|
|
pmb.setType(5);
|
|
|
pmb.setSignType("2");
|
|
|
|
|
|
//新增团队成员
|
|
|
doctorTeamMemberDao.save(hdmb);
|
|
|
doctorTeamMemberDao.save(dmb);
|
|
|
doctorTeamMemberDao.save(pmb);
|
|
|
//保存团队
|
|
|
doctorTeamDao.save(t);
|
|
|
|
|
|
return ;
|
|
|
}
|
|
|
|
|
|
|
|
|
public void updateHealthDoctor(SignFamily renew, String healthDoctor) {
|
|
|
|
|
|
DoctorTeam team = doctorTeamDao.findByCode(renew.getTeamCode());
|
|
|
if (StringUtils.isNotBlank(renew.getDoctorHealth())) {
|
|
|
//删除之前健管师成员
|
|
|
doctorTeamMemberDao.deleteMember(renew.getDoctorHealth());
|
|
|
}
|
|
|
Doctor hd = doctorDao.findByCode(healthDoctor);
|
|
|
if (hd == null) {
|
|
|
return;
|
|
|
}
|
|
|
if(team!=null){
|
|
|
team.setName(renew.getDoctorName() + "," + hd.getName() + "," + renew.getName());
|
|
|
//新建健康管理师
|
|
|
DoctorTeamMember hdmb = new DoctorTeamMember();
|
|
|
hdmb.setName(hd.getName());
|
|
|
hdmb.setMemberCode(healthDoctor);
|
|
|
hdmb.setCode(getCode());
|
|
|
hdmb.setDel("1");
|
|
|
hdmb.setCzrq(new Date());
|
|
|
hdmb.setTeam(team.getCode());
|
|
|
hdmb.setType(3);
|
|
|
hdmb.setSignType("2");
|
|
|
//新增团队成员
|
|
|
doctorTeamMemberDao.save(hdmb);
|
|
|
//保存团队
|
|
|
doctorTeamDao.save(team);
|
|
|
}else{
|
|
|
//创建团队
|
|
|
DoctorTeam t = new DoctorTeam();
|
|
|
String code = getCode();
|
|
|
t.setCode(code);
|
|
|
t.setName(renew.getDoctorName() + "," + hd.getName() + "," + renew.getName());
|
|
|
t.setSignType("2");
|
|
|
t.setDel("1");
|
|
|
t.setCzrq(new Date());
|
|
|
|
|
|
//新建健康管理师
|
|
|
DoctorTeamMember hdmb = new DoctorTeamMember();
|
|
|
hdmb.setName(hd.getName());
|
|
|
hdmb.setMemberCode(healthDoctor);
|
|
|
hdmb.setCode(getCode());
|
|
|
hdmb.setDel("1");
|
|
|
hdmb.setCzrq(new Date());
|
|
|
hdmb.setTeam(code);
|
|
|
hdmb.setType(3);
|
|
|
hdmb.setSignType("2");
|
|
|
|
|
|
//新建全科医生成员
|
|
|
DoctorTeamMember dmb = new DoctorTeamMember();
|
|
|
dmb.setName(renew.getDoctorName());
|
|
|
dmb.setMemberCode(renew.getDoctor());
|
|
|
dmb.setCode(getCode());
|
|
|
dmb.setDel("1");
|
|
|
dmb.setCzrq(new Date());
|
|
|
dmb.setTeam(code);
|
|
|
dmb.setType(2);
|
|
|
dmb.setSignType("2");
|
|
|
|
|
|
//新建居民成员
|
|
|
DoctorTeamMember pmb = new DoctorTeamMember();
|
|
|
pmb.setName(renew.getName());
|
|
|
pmb.setMemberCode(renew.getPatient());
|
|
|
pmb.setCode(getCode());
|
|
|
pmb.setDel("1");
|
|
|
pmb.setCzrq(new Date());
|
|
|
pmb.setTeam(code);
|
|
|
pmb.setType(5);
|
|
|
pmb.setSignType("2");
|
|
|
|
|
|
//新增团队成员
|
|
|
doctorTeamMemberDao.save(hdmb);
|
|
|
doctorTeamMemberDao.save(dmb);
|
|
|
doctorTeamMemberDao.save(pmb);
|
|
|
//保存团队
|
|
|
doctorTeamDao.save(t);
|
|
|
}
|
|
|
//创建团队
|
|
|
DoctorTeam t = new DoctorTeam();
|
|
|
String code = getCode();
|
|
|
t.setCode(code);
|
|
|
t.setName(renew.getDoctorName() + "," + hd.getName() + "," + renew.getName());
|
|
|
t.setSignType("2");
|
|
|
t.setDel("1");
|
|
|
t.setCzrq(new Date());
|
|
|
|
|
|
|
|
|
//新建健康管理师
|
|
|
DoctorTeamMember hdmb = new DoctorTeamMember();
|
|
|
hdmb.setName(hd.getName());
|
|
|
hdmb.setMemberCode(healthDoctor);
|
|
|
hdmb.setCode(getCode());
|
|
|
hdmb.setDel("1");
|
|
|
hdmb.setCzrq(new Date());
|
|
|
hdmb.setTeam(code);
|
|
|
hdmb.setType(3);
|
|
|
hdmb.setSignType("2");
|
|
|
|
|
|
//新建全科医生成员
|
|
|
DoctorTeamMember dmb = new DoctorTeamMember();
|
|
|
dmb.setName(renew.getDoctorName());
|
|
|
dmb.setMemberCode(renew.getDoctor());
|
|
|
dmb.setCode(getCode());
|
|
|
dmb.setDel("1");
|
|
|
dmb.setCzrq(new Date());
|
|
|
dmb.setTeam(code);
|
|
|
dmb.setType(2);
|
|
|
dmb.setSignType("2");
|
|
|
|
|
|
//新建居民成员
|
|
|
DoctorTeamMember pmb = new DoctorTeamMember();
|
|
|
pmb.setName(renew.getName());
|
|
|
pmb.setMemberCode(renew.getPatient());
|
|
|
pmb.setCode(getCode());
|
|
|
pmb.setDel("1");
|
|
|
pmb.setCzrq(new Date());
|
|
|
pmb.setTeam(code);
|
|
|
pmb.setType(5);
|
|
|
pmb.setSignType("2");
|
|
|
|
|
|
//新增团队成员
|
|
|
doctorTeamMemberDao.save(hdmb);
|
|
|
doctorTeamMemberDao.save(dmb);
|
|
|
doctorTeamMemberDao.save(pmb);
|
|
|
//保存团队
|
|
|
doctorTeamDao.save(t);
|
|
|
|
|
|
|
|
|
renew.setTeamCode(code);
|
|
|
renew.setDoctorHealthName(hd.getName());
|
|
|
renew.setDoctorHealth(hd.getCode());
|
|
|
}
|