Jelajahi Sumber

Merge branch 'dev' of wujunjie/patient-co-management into dev

yeshijie 7 tahun lalu
induk
melakukan
3e2798e967

+ 91 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/PatientConfirmReceiptJob.java

@ -6,7 +6,13 @@ import com.yihu.wlyy.entity.patient.prescription.PrescriptionLog;
import com.yihu.wlyy.repository.dict.SystemDictDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.prescription.PrescriptionDao;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@ -14,6 +20,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -33,6 +40,12 @@ public class PatientConfirmReceiptJob implements Job {
    private PatientDao patientDao;
    @Autowired
    private SystemDictDao systemDictDao;
    @Autowired
    private PushMsgTask pushMsgTask;
    @Autowired
    private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
    @Autowired
    private WeiXinOpenIdUtils weiXinOpenIdUtils;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
@ -58,12 +71,14 @@ public class PatientConfirmReceiptJob implements Job {
                        long days = DateUtil.getDays(today,payTime);
                        if(days == 3){
                            //支付后第三天发送自动确认预提醒
                            sendWechatTemplate(1,patient);
                        }
                        int result = today.compareTo(confirm);
                        if (result >= 0) {
                            prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.finish.getValue());
                            list.add(prescription);
                            //发送自动确认提醒
                            sendWechatTemplate(2,patient);
                        }
                    }
                }
@ -77,4 +92,80 @@ public class PatientConfirmReceiptJob implements Job {
            logger.info("PatientConfirmReceiptJob error ..........,message:" + e.getMessage());
        }
    }
    /**
     * 自动确认收货推送信息变更通知消息提醒
     *
     * @param type    监测类型 2立即提醒,1预提醒
     * @param patient 居民code
     * @throws Exception
     */
    public void sendWechatTemplate(int type, String patient) throws Exception {
        Patient people = patientDao.findByCode(patient);
        String openId = people.getOpenid();
        String name = people.getName();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        JSONArray jsonArray = null;
        JSONObject sendJson = new JSONObject();
        if (type == 1) {
            String url = "prescription/html/order_tracking.html?represented="+patient;
            String first = name + "您好,您的续方订单将在4天后自动确认收药,如您已经取药,请点击本消息完成确认收药操作,结束订单";
            String remark = "如果您希望延长自动确认收药时间,请点击本消息后进行延长收药操作。";
            sendJson.put("keyword1", name);
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("keyword3", "续方订单状态");
            sendJson.put("first", first);
            sendJson.put("remark", remark);
            sendJson.put("url", url+ "&openid=" + openId +"&toUser=" + patient + "&toName=" +name);//带参数的模板跳转链接
            sendJson.put("toUser", patient);//带参数的模板跳转链接
            pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 11, openId, name, sendJson);
            //发送代理人
            if (StringUtils.isEmpty(openId)){
                jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient, openId);
                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 newJson =  new JSONObject();
                        newJson.put("toUser", member.getCode());//带参数的模板跳转链接
                        newJson.put("url", url+ "&openid=" + member.getOpenid() +"&toUser=" + member.getCode() + "&toName=" +name);
                        //name患者姓名
                        newJson.put("first", weiXinOpenIdUtils.getTitleMes(people, (int) j.get("relation"), name) + first);
                        pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 11, member.getOpenid(), name, newJson);
                    }
                }
            }
            logger.info("sendJson: " + sendJson);
        }else if (type == 2) {
            String first = name + "您好,您的续方订单已自动确认收药";
            String remark = "如果您未收到续方药品,请及时与社区药房工作人员联系。";
            sendJson.put("keyword1", name);
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("keyword3", "续方订单状态");
            sendJson.put("first", first);
            sendJson.put("remark", remark);
            sendJson.put("toUser", patient);//带参数的模板跳转链接
            pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 11, openId, name, sendJson);
            //发送代理人
            if (StringUtils.isEmpty(openId)){
                jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient, openId);
                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 newJson =  new JSONObject();
                        newJson.put("toUser", member.getCode());//带参数的模板跳转链接
                        //name患者姓名
                        newJson.put("first", weiXinOpenIdUtils.getTitleMes(people, (int) j.get("relation"), name) + first);
                        pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 11, member.getOpenid(), name, newJson);
                    }
                }
            }
            logger.info("sendJson: " + sendJson);
        }
    }
}

+ 1 - 1
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/quota/JobController.java

@ -734,7 +734,7 @@ public class JobController extends BaseController {
     * 居民端续方订单自动确认收货
     * @return
     */
    @RequestMapping(value = "startDoctorPrenatalInspectorJob", method = RequestMethod.GET)
    @RequestMapping(value = "startPatientConfirmReceiptJob", method = RequestMethod.GET)
    @ApiOperation("居民端续方订单自动确认收货")
    public String startPatientConfirmReceiptJob() {
        try {

+ 3 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/team/AdminTeamController.java

@ -275,7 +275,9 @@ public class AdminTeamController extends BaseController {
            ArrayList teams = new ArrayList();
            List<AdminTeam> teamList = teamService.getDoctorTeams(doctorCode);
            AdminTeam team = teamService.findByLeaderCode(doctorCode);
            teams.add(team);
            if (team != null){
                teams.add(team);
            }
            for (AdminTeam list : teamList){
                if (!doctorCode.equals(list.getLeaderCode())){
                    teams.add(list);

+ 16 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/consult/ConsultController.java

@ -650,6 +650,22 @@ public class ConsultController extends WeixinBaseController {
        }
    }
    @RequestMapping(value = "evaluateStatus")
    @ResponseBody
    public String statuss(String consult) {
        try {
            ConsultTeam ct = consultTeamService.findByCode(consult);
            if (ct == null) {
                return error(-1, "获取状态失败!");
            } else {
                return write(200, "获取状态成功!", "data", ct.getEvaluate());
            }
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "获取状态失败!");
        }
    }
    /**
     * 查询患者三师咨询咨询列表
     *