|
@ -4,10 +4,9 @@ import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
|
|
|
|
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
|
|
|
|
import com.yihu.jw.entity.base.wx.WxTemplateDO;
|
|
|
|
|
|
import com.yihu.jw.entity.base.wx.*;
|
|
import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService;
|
|
import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService;
|
|
|
|
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
|
|
import com.yihu.jw.oauth.OauthSsoService;
|
|
import com.yihu.jw.oauth.OauthSsoService;
|
|
import com.yihu.jw.patient.dao.BasePatientDao;
|
|
import com.yihu.jw.patient.dao.BasePatientDao;
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
@ -15,7 +14,9 @@ import com.yihu.jw.rm.base.BaseRequestMapping;
|
|
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
|
|
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
|
|
import com.yihu.jw.util.wechat.wxhttp.HttpUtil;
|
|
import com.yihu.jw.util.wechat.wxhttp.HttpUtil;
|
|
import com.yihu.jw.utils.RSAEncrypt;
|
|
import com.yihu.jw.utils.RSAEncrypt;
|
|
|
|
import com.yihu.jw.utils.hibernate.HibenateUtils;
|
|
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
|
|
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
|
|
|
|
import com.yihu.jw.wechat.dao.WxPushLogDao;
|
|
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
|
|
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
|
|
import com.yihu.jw.wechat.dao.WxTemplateDao;
|
|
import com.yihu.jw.wechat.dao.WxTemplateDao;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@ -28,6 +29,7 @@ import java.net.URLEncoder;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Created by Administrator on 2017/5/19 0019.
|
|
* Created by Administrator on 2017/5/19 0019.
|
|
@ -62,6 +64,14 @@ public class WxTemplateService {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private XzzxEntranceService xzzxEntranceService;
|
|
private XzzxEntranceService xzzxEntranceService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private YkyyEntranceService ykyyEntranceService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private WxPushLogDao wxPushLogDao;
|
|
|
|
@Autowired
|
|
|
|
private HibenateUtils hibenateUtils;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@ -115,6 +125,72 @@ public class WxTemplateService {
|
|
|
|
|
|
return "success";
|
|
return "success";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 查询HIS的01表中的审方状态,如果已审方,且未结算,则推送一条模板消息给居民,让居民进行支付结算。
|
|
|
|
*/
|
|
|
|
public void unSettledHISPrescription() throws Exception{
|
|
|
|
if("xm_ykyy_wx".equals(wechatId)){
|
|
|
|
//获取已审核未结算的处方
|
|
|
|
JSONArray array = ykyyEntranceService.getUnsettledPrescription();
|
|
|
|
// JSONArray array = new JSONArray();
|
|
|
|
// JSONObject tmpjson = new JSONObject();
|
|
|
|
// tmpjson.put("BRID","1234");
|
|
|
|
// tmpjson.put("CFSB","1159744");
|
|
|
|
// array.add(tmpjson);
|
|
|
|
//发送模板
|
|
|
|
if(array!=null&&array.size()>0) {
|
|
|
|
for (int i = 0; i<array.size(); i++){
|
|
|
|
JSONObject json = array.getJSONObject(i);
|
|
|
|
String brid = json.getString("BRID");
|
|
|
|
String cfsb = json.getString("CFSB");
|
|
|
|
|
|
|
|
//查找居民信息
|
|
|
|
BasePatientDO patientDO = ykyyEntranceService.findPatientByMapingCode(brid);
|
|
|
|
if(patientDO!=null){
|
|
|
|
//查找对应的处方
|
|
|
|
String sql = "SELECT w.OUTPATIENT_ID,w.ID,w.DOCTOR_NAME from WLYY_PRESCRIPTION w WHERE REAL_ORDER = '"+cfsb+"' ORDER BY w.CREATE_TIME desc";
|
|
|
|
List<Map<String, Object>> pre = hibenateUtils.createSQLQuery(sql);
|
|
|
|
if(pre!=null && pre.size()>0){
|
|
|
|
String outpatientId = pre.get(0).get("OUTPATIENT_ID").toString();
|
|
|
|
String prescriptionId = pre.get(0).get("ID").toString();
|
|
|
|
String doctorName = pre.get(0).get("DOCTOR_NAME").toString();
|
|
|
|
|
|
|
|
//判断是否发送过
|
|
|
|
String countSql = "SELECT id from WX_PUSH_LOG w WHERE w.RECEIVER = '"+patientDO.getId()
|
|
|
|
+"' and w.OPENID = '"+prescriptionId+"' and w.scene = 'djsxxtz' and w.WECHAT_ID='"+wechatId+"'";
|
|
|
|
List<Map<String, Object>> count = hibenateUtils.createSQLQuery(countSql);
|
|
|
|
if(count==null || count.size() == 0){
|
|
|
|
List<BasePatientWechatDo> ps = basePatientWechatDao.findByWechatIdAndPatientId(wechatId,patientDO.getId());
|
|
|
|
if(ps.isEmpty()){
|
|
|
|
logger.info("该用户"+patientDO.getName()+"没有openid,无法推送模版消息,用户ID:"+patientDO.getId()+"wechatId:"+wechatId);
|
|
|
|
}else{
|
|
|
|
ps.stream().forEach(one->{
|
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId,"template_unsettled_notice","djsxxtz",1);
|
|
|
|
config.setFirst(config.getFirst().replace("key1",patientDO.getName()));
|
|
|
|
config.setUrl(config.getUrl()+""+outpatientId+"&openid="+one.getOpenid());
|
|
|
|
config.setKeyword3(doctorName);
|
|
|
|
WxAccessTokenDO wxAccessTokenDO = wxAccessTokenService.getWxAccessTokenById(wechatId);
|
|
|
|
weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(),one.getOpenid(),config);
|
|
|
|
});
|
|
|
|
//保存发送模板记录,
|
|
|
|
WxPushLogDO wxPushLogDO = new WxPushLogDO();
|
|
|
|
wxPushLogDO.setCreateTime(new Date());
|
|
|
|
wxPushLogDO.setOpenid(prescriptionId);
|
|
|
|
wxPushLogDO.setReceiver(patientDO.getId());
|
|
|
|
wxPushLogDO.setWechatId(wechatId);
|
|
|
|
wxPushLogDO.setReceiverName(patientDO.getName());
|
|
|
|
wxPushLogDO.setScene("djsxxtz");
|
|
|
|
wxPushLogDao.save(wxPushLogDO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
public String sendWeTempMesTest(String wechatId,String openid)throws Exception{
|
|
public String sendWeTempMesTest(String wechatId,String openid)throws Exception{
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId,"template_survey","test",1);
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId,"template_survey","test",1);
|