Просмотр исходного кода

统计工程随访、分配健管师

wujunjie 7 лет назад
Родитель
Сommit
4433831be8

+ 45 - 0
patient-co/patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/message/FollowupPlanJob.java

@ -1,9 +1,15 @@
package com.yihu.wlyy.statistics.job.message;
import com.yihu.wlyy.statistics.dao.DoctorDao;
import com.yihu.wlyy.statistics.dao.MessageDao;
import com.yihu.wlyy.statistics.model.doctor.Doctor;
import com.yihu.wlyy.statistics.model.signfamily.Message;
import com.yihu.wlyy.statistics.task.PushMsgTask;
import com.yihu.wlyy.statistics.util.DateUtil;
import com.yihu.wlyy.statistics.util.HttpClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@ -15,6 +21,7 @@ import org.springframework.stereotype.Component;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
import javax.transaction.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
@ -32,6 +39,12 @@ public class FollowupPlanJob implements Job {
    @Autowired
    private MessageDao messageDao;
    @Value("${doctorAssistant.api}")
    private String doctorAssistant;
    @Value("${doctorAssistant.target_url}")
    private String targetUrl;
    @Autowired
    private DoctorDao doctorDao;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
@ -86,6 +99,38 @@ public class FollowupPlanJob implements Job {
                    PushMsgTask.url= url;
                    // 推送消息给医生
                    PushMsgTask.getInstance().put(doctor,"4",title,content,"");
                    try {
                        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        String hql = "SELECT a.patient_name patientName,a.patient_code patientCode,count(1) amount FROM wlyy_followup a WHERE a.doctor_code = ? " +
                                " AND a.followup_plan_date BETWEEN ? AND ? AND a. STATUS NOT IN ('0', '1') GROUP BY a.patient_code;";
                        //获取所有未执行随访计划
                        List<Map<String, Object>> followups = jdbcTemplate.queryForList(hql,doctor,format.parse(start),format.parse(end));
                        for (Map<String,Object> followup:followups) {
                            //            新增发送医生助手模板消息 v1.4.0 by wujunjie
                            String patientName = String.valueOf(followup.get("patientName"));
                            String patientCount = String.valueOf(followup.get("amount"));
                            Doctor doctor1 = doctorDao.findByCode(doctor);
                            String doctorOpenID = doctor1.getOpenid();
                            if (StringUtils.isNotEmpty(doctorOpenID)) {
                                String url = doctorAssistant + "/wlyy/feldsher/sendDoctorTemplates";
                                List<NameValuePair> params = new ArrayList<>();
                                params.add(new BasicNameValuePair("type", "6"));
                                params.add(new BasicNameValuePair("openId", doctorOpenID));
                                params.add(new BasicNameValuePair("url", targetUrl));
                                params.add(new BasicNameValuePair("first", "您今日有"+patientCount+"个随访计划待处理"));
                                params.add(new BasicNameValuePair("remark", ""));
                                SimpleDateFormat formatDate = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
                                String newDate = formatDate.format(new Date());
                                String keywords = patientName+ "," + newDate + "," + "请进入手机APP查看";
                                params.add(new BasicNameValuePair("keywords", keywords));
                                HttpClientUtil.post(url, params, "UTF-8");
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                messageDao.save(list);

+ 34 - 0
patient-co/patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/message/HealthMessageJob.java

@ -1,14 +1,19 @@
package com.yihu.wlyy.statistics.job.message;
import com.yihu.wlyy.statistics.dao.DoctorDao;
import com.yihu.wlyy.statistics.dao.MessageDao;
import com.yihu.wlyy.statistics.etl.extract.DBExtract;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.doctor.Doctor;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import com.yihu.wlyy.statistics.model.signfamily.Message;
import com.yihu.wlyy.statistics.model.signfamily.SignFamily;
import com.yihu.wlyy.statistics.task.PushMsgTask;
import com.yihu.wlyy.statistics.util.HttpClientUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@ -43,6 +48,12 @@ public class HealthMessageJob implements Job {
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private DBStorage dbStorage;
    @Value("${doctorAssistant.api}")
    private String doctorAssistant;
    @Value("${doctorAssistant.target_url}")
    private String targetUrl;
    @Autowired
    private DoctorDao doctorDao;
    @Transactional
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
@ -112,6 +123,29 @@ public class HealthMessageJob implements Job {
                message.setReceiver(teamLeader);
                messageDao.save(message);
                try {
                    //            新增发送医生助手模板消息 v1.4.0 by wujunjie
                    Doctor doctor = doctorDao.findByCode(teamLeader);
                    String doctorOpenID = doctor.getOpenid();
                    if (!StringUtils.isEmpty(doctorOpenID)) {
                        String url = doctorAssistant + "/wlyy/feldsher/sendDoctorTemplates";
                        List<NameValuePair> sendParams = new ArrayList<>();
                        sendParams.add(new BasicNameValuePair("type", "9"));
                        sendParams.add(new BasicNameValuePair("openId", doctorOpenID));
                        sendParams.add(new BasicNameValuePair("url", targetUrl));
                        sendParams.add(new BasicNameValuePair("first", doctor.getName()+"医生您好。" + content));
                        sendParams.add(new BasicNameValuePair("remark", "请进入手机APP查看"));
                        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
                        String date = format.format(new Date());
                        String keywords = "分配健管师" + "," + date  ;
                        sendParams.add(new BasicNameValuePair("keywords", keywords));
                        HttpClientUtil.post(url, sendParams, "UTF-8");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                // 异常通知
                JSONObject json = new JSONObject();

+ 9 - 0
patient-co/patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/model/doctor/Doctor.java

@ -59,6 +59,15 @@ public class Doctor extends IdEntity {
	private String idcard;          //身份证号
	private Integer isFamous;       //是否是名医 1是  0或者空不是
	private String isPasswordPrompt;// 是否提示密码信息 1是 0或者空是否
	private String openid; //医生微信openID
	public String getOpenid() {
		return openid;
	}
	public void setOpenid(String openid) {
		this.openid = openid;
	}
	public Doctor() {}

+ 13 - 0
patient-co/patient-co-statistics/src/main/resources/application.yml

@ -160,6 +160,11 @@ spring:
systemConfig:
  msg_push_server: http://127.0.0.1:3000
#医生助手服务器地址及模板跳转链接(医生未读消息统计页)
doctorAssistant:
  api: http://172.19.103.88:443/assistant/
  target_url: home/html/unreadMessageStatistic.html
---
spring:
@ -191,6 +196,10 @@ spring:
systemConfig:
  msg_push_server: http://127.0.0.1:3000
#医生助手服务器地址及模板跳转链接(医生未读消息统计页)
doctorAssistant:
  api: http://www.xmtyw.cn/assistant/
  target_url: home/html/unreadMessageStatistic.html
---
spring:
@ -236,6 +245,10 @@ fv:
systemConfig:
  msg_push_server: http://172.19.103.76:3000
#医生助手服务器地址及模板跳转链接(医生未读消息统计页)
doctorAssistant:
  api: http://192.168.131.113:8080/
  target_url: home/html/unreadMessageStatistic.html
---
spring:

+ 5 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/ehc/PatientEHCService.java

@ -63,6 +63,7 @@ public class PatientEHCService extends BaseService {
            String idcard = patient.getIdcard();
            String name = patient.getName();
            Integer sex = patient.getSex();//1男,2女
            String mobile = patient.getMobile();
            if (StringUtils.isEmpty(openId)) {
                return "-1";
            }
@ -72,12 +73,14 @@ public class PatientEHCService extends BaseService {
            if (StringUtils.isEmpty(name)) {
                return "-1";
            }
            if (StringUtils.isEmpty(mobile)) {
                return "-1";
            }
            if (sex == null) {
                return "-1";
            }
            Date birthday = patient.getBirthday();
            String mobile = patient.getMobile();
            String phone = patient.getPhone();
            String provinceName = patient.getProvinceName();
            String cityName = patient.getCityName();
@ -95,9 +98,9 @@ public class PatientEHCService extends BaseService {
            bizContent.put("id_no", idcard);
            bizContent.put("user_name", name);
            bizContent.put("user_sex", "" + sex);
            bizContent.put("mobile_phone", mobile);
            bizContent.put("birthday", DateUtil.dateToStr(birthday, format));
            bizContent.put("mobile_phone", mobile);
            bizContent.put("telephone", phone);
            bizContent.put("address", address);
            bizContent.put("work_unit", provinceName + cityName + townName + streetName);