Explorar o código

医生变更消息推送

lyr %!s(int64=8) %!d(string=hai) anos
pai
achega
d7a774b942

+ 38 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/account/DoctorInfoService.java

@ -33,6 +33,7 @@ import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.service.app.scheduling.DoctorWorkTimeService;
import com.yihu.wlyy.service.app.talk.TalkGroupService;
import com.yihu.wlyy.service.common.SMSService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.MD5;
import org.apache.commons.beanutils.converters.IntegerConverter;
import org.apache.commons.lang3.StringUtils;
@ -832,6 +833,23 @@ public class DoctorInfoService extends BaseService {
        newDoctorTeamMember.setDel("1");
        newDoctorTeamMember.setCode(UUID.randomUUID().toString().replace("-", ""));
        doctorTeamDoctor.save(newDoctorTeamMember);
        Patient p = patientDao.findByCode(patient);
        JSONObject data = new JSONObject();
        if(StringUtils.isNotEmpty(oldDoctorCode)) {
            data.put("first", "因签约团队内分工调整,您的责任医生有变动," + signFamily.getDoctorHealthName() +
                    "医生无法继续为您服务,具体变动如下:");
            data.put("keyword1", "家庭签约");
            data.put("keyword2", newD.getName());
            data.put("remark",  signFamily.getDoctorName() + "医生与" + newD.getName() +
                    "医生一道,为您提供优质健康服务");
        } else {
            data.put("first", "您的签约团队新增一位责任医生,其将与" + signFamily.getDoctorName() +
                    "医生一道,为您提供优质健康管理服务,医生信息如下:");
            data.put("keyword1", "家庭签约");
            data.put("keyword2", newD.getName());
        }
        PushMsgTask.getInstance().putWxMsg("", 10, p.getOpenid(), p.getName(), data);
    }
    @Transactional
@ -885,6 +903,15 @@ public class DoctorInfoService extends BaseService {
        newDoctorTeamMember.setCode(UUID.randomUUID().toString().replace("-", ""));
        doctorTeamDoctor.save(newDoctorTeamMember);
        Patient p = patientDao.findByCode(patient);
        JSONObject data = new JSONObject();
        data.put("first", "您的签约团队新增一位责任医生,其将与" + signFamily.getDoctorName() +
                "医生一道,为您提供优质健康管理服务,医生信息如下:");
        data.put("keyword1", "家庭签约");
        data.put("keyword2", newD.getName());
        PushMsgTask.getInstance().putWxMsg("", 10, p.getOpenid(), p.getName(), data);
        return 1;
    }
@ -1031,5 +1058,16 @@ public class DoctorInfoService extends BaseService {
        newDoctorTeamMember.setDel("1");
        newDoctorTeamMember.setCode(UUID.randomUUID().toString().replace("-", ""));
        doctorTeamDoctor.save(newDoctorTeamMember);
        Patient p = patientDao.findByCode(patient);
        JSONObject data = new JSONObject();
        data.put("first", "因签约团队内分工调整,您的责任医生有变动," + signFamily.getDoctorName() +
                "医生无法继续为您服务,具体变动如下:");
        data.put("keyword1", "家庭签约");
        data.put("keyword2", newD.getName());
        data.put("remark", newD.getName() + "医生" +
                (StringUtils.isNotEmpty(signFamily.getDoctorHealthName()) ? ( "与" + signFamily.getDoctorHealthName() + "医生一道") : "") +
                ",为您提供优质健康服务");
        PushMsgTask.getInstance().putWxMsg("", 10, p.getOpenid(), p.getName(), data);
    }
}

+ 75 - 35
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -1612,6 +1612,15 @@ public class FamilyContractService extends BaseService {
     */
    public JSONObject updateSignInfo(String patient, String healthDoctor, String doctor, String expensesType) {
        JSONObject result = new JSONObject();
        Patient p = patientDao.findByCode(patient);
        if (p == null) {
            result.put("status", -1);
            result.put("msg", "居民不存在");
            return result;
        }
        List<JSONObject> wxMessages = new ArrayList<>();
        SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
@ -1644,6 +1653,22 @@ public class FamilyContractService extends BaseService {
                    teamMember.setCzrq(new Date());
                    doctorTeamDoctor.save(teamMember);
                }
                JSONObject data = new JSONObject();
                data.put("first", "因签约团队内分工调整,您的责任医生有变动," + signFamily.getDoctorHealthName() +
                        "医生无法继续为您服务,具体变动如下:");
                data.put("keyword1", "家庭签约");
                data.put("keyword2", docHealth.getName());
                data.put("remark", signFamily.getDoctorName() + "医生与" + docHealth.getName() +
                        "医生一道,为您提供优质健康服务");
                wxMessages.add(data);
            } else {
                JSONObject data = new JSONObject();
                data.put("first", "您的签约团队新增一位责任医生,其将与" + signFamily.getDoctorName() +
                        "医生一道,为您提供优质健康管理服务,医生信息如下:");
                data.put("keyword1", "家庭签约");
                data.put("keyword2", docHealth.getName());
                wxMessages.add(data);
            }
            // 新增团队信息
            if (StringUtils.isNotEmpty(signFamily.getTeamCode())) {
@ -1701,6 +1726,16 @@ public class FamilyContractService extends BaseService {
            signFamily.setDoctor(docQk.getCode());
            signFamily.setDoctorName(docQk.getName());
            signFamily.setCzrq(new Date());
            JSONObject data = new JSONObject();
            data.put("first", "因签约团队内分工调整,您的责任医生有变动," + signFamily.getDoctorName() +
                    "医生无法继续为您服务,具体变动如下:");
            data.put("keyword1", "家庭签约");
            data.put("keyword2", docQk.getName());
            data.put("remark", docQk.getName() + "医生" +
                    (StringUtils.isNotEmpty(signFamily.getDoctorHealthName()) ? ("与" + signFamily.getDoctorHealthName() + "医生一道") : "") +
                    ",为您提供优质健康服务");
            wxMessages.add(data);
        }
        if (StringUtils.isNotEmpty(expensesType)) {
@ -1716,6 +1751,10 @@ public class FamilyContractService extends BaseService {
        result.put("status", 1);
        result.put("msg", "更新成功");
        for (JSONObject msg : wxMessages) {
            PushMsgTask.getInstance().putWxMsg("", 10, p.getOpenid(), p.getName(), msg);
        }
        return result;
    }
@ -1734,22 +1773,22 @@ public class FamilyContractService extends BaseService {
                " WHERE " +
                " sf.type = 2 " +
                " AND sf. STATUS >= 0 " +
                " and sf.doctor = ? "+
                " AND ( sf.doctor_health is null or sf.doctor_health ='' ) ) a where 1=1" ;
        if(!org.springframework.util.StringUtils.isEmpty(patientAddr)){
            sql+= " AND a.address like '%"+patientAddr+"%'";
        }
        if(!org.springframework.util.StringUtils.isEmpty(patientName)){
            sql+= " AND a.name like '%"+patientName+"%'";
        }
        List<Map<String, Object>> datas =  jdbcTemplate.queryForList(sql, doctorCode );
        if(datas!=null&&datas.size()>0){
            for(Map<String, Object> map:datas){
                JSONObject jo=new JSONObject();
                jo.put("signcode",map.get("signcode"));
                jo.put("name",map.get("name"));
                jo.put("code",map.get("code"));
                jo.put("hasopenid",map.get("hasopenid"));
                " and sf.doctor = ? " +
                " AND ( sf.doctor_health is null or sf.doctor_health ='' ) ) a where 1=1";
        if (!org.springframework.util.StringUtils.isEmpty(patientAddr)) {
            sql += " AND a.address like '%" + patientAddr + "%'";
        }
        if (!org.springframework.util.StringUtils.isEmpty(patientName)) {
            sql += " AND a.name like '%" + patientName + "%'";
        }
        List<Map<String, Object>> datas = jdbcTemplate.queryForList(sql, doctorCode);
        if (datas != null && datas.size() > 0) {
            for (Map<String, Object> map : datas) {
                JSONObject jo = new JSONObject();
                jo.put("signcode", map.get("signcode"));
                jo.put("name", map.get("name"));
                jo.put("code", map.get("code"));
                jo.put("hasopenid", map.get("hasopenid"));
                jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
                jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
                returnMap.put(jo);
@ -1757,7 +1796,8 @@ public class FamilyContractService extends BaseService {
        }
        return returnMap;
    }
    public JSONObject findNoHealthSignFamilyHealth(String doctorCode, String labelType, String patientName) throws  Exception{
    public JSONObject findNoHealthSignFamilyHealth(String doctorCode, String labelType, String patientName) throws Exception {
        JSONObject returnMap = new JSONObject();
        //健康管理师
        String sql = "SELECT " +
@ -1766,21 +1806,21 @@ public class FamilyContractService extends BaseService {
                "  p.code code, " +
                "  CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
                "  sp.id labelid, " +
                "  CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, "+
                "  CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, " +
                "  sp.label_type labeltype, " +
                "  p.idcard idcard " +
         " FROM " +
                " FROM " +
                " wlyy_sign_family sf " +
                " JOIN wlyy_patient p ON sf.patient = p.CODE " +
                " left JOIN wlyy_sign_patient_label_info sp ON sf.patient = sp.patient AND sp.label_type = ? AND sp.`status` = 1 " +
          " WHERE " +
                " WHERE " +
                " sf.type = 2 " +
                " AND sf. STATUS >= 0 " +
                " and sf.doctor = ? "+
                " AND ( sf.doctor_health is null or sf.doctor_health ='' ) " ;
                " and sf.doctor = ? " +
                " AND ( sf.doctor_health is null or sf.doctor_health ='' ) ";
        List<Map<String, Object>> datas = null;
        //查找居民
        datas = jdbcTemplate.queryForList(sql,labelType , doctorCode );
        datas = jdbcTemplate.queryForList(sql, labelType, doctorCode);
        //根据类别查找标签
        List<SignPatientLabel> s = labelDao.findByLabelTypeAndStatus(labelType, 1);
@ -1790,11 +1830,11 @@ public class FamilyContractService extends BaseService {
            }
            if (datas != null && datas.size() > 0) {
                for (Map<String, Object> map : datas) {
                    JSONObject jo=new JSONObject();
                    jo.put("signcode",map.get("signcode"));
                    jo.put("name",map.get("name"));
                    jo.put("code",map.get("code"));
                    jo.put("hasopenid",map.get("hasopenid"));
                    JSONObject jo = new JSONObject();
                    jo.put("signcode", map.get("signcode"));
                    jo.put("name", map.get("name"));
                    jo.put("code", map.get("code"));
                    jo.put("hasopenid", map.get("hasopenid"));
                    jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
                    jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
                    JSONArray jr = returnMap.getJSONArray(map.get("labelname").toString());
@ -2067,7 +2107,7 @@ public class FamilyContractService extends BaseService {
                    "  p.code code, " +
                    "  CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
                    "  sp.id labelid, " +
                     " CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, "+
                    " CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, " +
                    "  sp.label_type labeltype, " +
                    "  p.idcard idcard " +
                    " FROM " +
@ -2089,7 +2129,7 @@ public class FamilyContractService extends BaseService {
                    "  p.code code, " +
                    "  CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
                    "  sp.id labelid, " +
                    " CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, "+
                    " CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, " +
                    "  sp.label_type labeltype, " +
                    "  p.idcard idcard " +
                    " FROM " +
@ -2115,11 +2155,11 @@ public class FamilyContractService extends BaseService {
            }
            if (datas != null && datas.size() > 0) {
                for (Map<String, Object> map : datas) {
                    JSONObject jo=new JSONObject();
                    jo.put("signcode",map.get("signcode"));
                    jo.put("name",map.get("name"));
                    jo.put("code",map.get("code"));
                    jo.put("hasopenid",map.get("hasopenid"));
                    JSONObject jo = new JSONObject();
                    jo.put("signcode", map.get("signcode"));
                    jo.put("name", map.get("name"));
                    jo.put("code", map.get("code"));
                    jo.put("hasopenid", map.get("hasopenid"));
                    jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
                    jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
                    //判断name是否为空 为空就是未标注

+ 10 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/task/PushMsgTask.java

@ -175,7 +175,7 @@ public class PushMsgTask {
    /**
     * 发送微信模板消息
     *
     * @param type 1:签约成功  2:签约失败  3:咨询回复通知  4:健康指导提醒  5:解约申请通知  6:预约挂号成功通知  7:预约取消通知 8 缴费提醒 9 健康教育
     * @param type 1:签约成功  2:签约失败  3:咨询回复通知  4:健康指导提醒  5:解约申请通知  6:预约挂号成功通知  7:预约取消通知 8 缴费提醒 9 健康教育  10 签约医生变更
     * @param json 当type==1||type==2时:{"first":"消息主题",”doctor":"医生code","doctorName":"医生名","date":"签约时间","content":"签约内容","remark":"消息备注"}
     *             type==3时:{"first":"消息主题","consult":"医生咨询编号","consultcontent":"咨询内容","replycontent":"回复内容","doctorName":"医生名","remark":"消息备注"}
     *             type==4时:{"first":"消息主题","date":"指导时间","orgName":"指导机构","doctorName":"指导医生名","content":"指导内容","remark":"消息备注"}
@ -183,6 +183,7 @@ public class PushMsgTask {
     *             type==6时:{"first":"消息主题","date":"预约时间",”id":"预约ID","doctorName":"医生名","orgName":"预约医院","deptName":"预约科室","remark":"消息备注"}
     *             type==7时:{"first":"消息主题","name":"就诊人名","date":"预约时间","doctorName":"医生名","orgName":"预约医院","remark":"消息备注"}
     *             type==9时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
     *             type==10时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
     * @return
     */
    private boolean sendWeixinMessage(String access_token, int type, String openid, String name, JSONObject json) {
@ -405,6 +406,14 @@ public class PushMsgTask {
                keyword5.setColor("#000000");
                keyword5.setValue(json.getString("remark"));
                m.put("remark", keyword5);
            } else if (type == 10){
                temp.setUrl("");
                temp.setTemplate_id(SystemConf.getInstance().getSystemProperties()
                        .getProperty("template_healthy_article"));
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("keyword1"));
                m.put("keyword1", keyword1);
            }
            temp.setData(m);
            ObjectMapper mapper = new ObjectMapper();