|
@ -0,0 +1,465 @@
|
|
|
package com.yihu.jw.care.service.birthday;
|
|
|
|
|
|
import com.yihu.jw.care.dao.birthday.BirthDayWishesToPatientDao;
|
|
|
import com.yihu.jw.care.dao.birthday.BirthdayWishesTemplateDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
|
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
|
import com.yihu.jw.entity.care.birthday.BirthDayWishesToPatient;
|
|
|
import com.yihu.jw.entity.care.birthday.BirthdayWishesTemplate;
|
|
|
import com.yihu.jw.patient.dao.BasePatientDao;
|
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.json.JSONObject;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* Created by Bing on 2021/7/16.
|
|
|
*/
|
|
|
@Service
|
|
|
public class BirthdayWishesService {
|
|
|
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
private static LinkedBlockingQueue<JSONObject> queue = new LinkedBlockingQueue<>();
|
|
|
@Autowired
|
|
|
private BaseDoctorDao doctorDao;
|
|
|
@Autowired
|
|
|
private BasePatientDao patientDao;
|
|
|
@Autowired
|
|
|
private BirthdayWishesTemplateDao bwTemplateDao;
|
|
|
@Autowired
|
|
|
private BirthDayWishesToPatientDao bwToPatientDao;
|
|
|
@Autowired
|
|
|
private BaseDoctorHospitalDao hospitalDao;
|
|
|
@Autowired
|
|
|
private RedisTemplate redisTemplate;
|
|
|
|
|
|
// /**
|
|
|
// * 发送到mq
|
|
|
// *
|
|
|
// */
|
|
|
// public void sender(List<BirthDayWishesToPatientES> birthDayWishesToPatientES) {
|
|
|
// //发送到队列
|
|
|
// birthDayWishesToPatientES.stream().forEach(one -> {
|
|
|
// jmsTemplate.send(channelName, new MessageCreator() {
|
|
|
// @Override
|
|
|
// public Message createMessage(Session session) throws JMSException {
|
|
|
// TextMessage textMessage = session.createTextMessage();
|
|
|
// textMessage.setText(net.sf.json.JSONObject.fromObject(one).toString());
|
|
|
// return textMessage;
|
|
|
// }
|
|
|
// });
|
|
|
// });
|
|
|
// }
|
|
|
|
|
|
/**
|
|
|
* 医生端--新建祝福语模板
|
|
|
* @param doctor
|
|
|
* @param content
|
|
|
* @param applicableRange
|
|
|
* @param id
|
|
|
* @param isDefault
|
|
|
*/
|
|
|
public Long create(String doctor, String content, Integer applicableRange, Long id, Integer isDefault) {
|
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctor);
|
|
|
BirthdayWishesTemplate template = null;
|
|
|
//判断是编辑还是创建
|
|
|
if(id != null){
|
|
|
template = bwTemplateDao.findOne(id);
|
|
|
}else {
|
|
|
template = new BirthdayWishesTemplate();
|
|
|
template.setCode(UUID.randomUUID().toString().replace("-",""));
|
|
|
template.setType(2);
|
|
|
template.setDel(1);
|
|
|
template.setCreateUser(doctor);
|
|
|
template.setCreateUserName(doctorDO.getName());
|
|
|
}
|
|
|
template.setApplicableRange(applicableRange);
|
|
|
template.setContent(content);
|
|
|
template.setCreateTime(new Date());
|
|
|
if(isDefault != null) {
|
|
|
if(isDefault == 1){
|
|
|
//先取消该医生自创的默认模板
|
|
|
BirthdayWishesTemplate docTemplate = bwTemplateDao.findByCreateUserAndApplicableRangeAndIsDefault(doctor, applicableRange, 1);
|
|
|
if(docTemplate != null){
|
|
|
bwTemplateDao.setDefalutTemplateById(docTemplate.getId(), 0);
|
|
|
}
|
|
|
}
|
|
|
template.setIsDefault(isDefault);
|
|
|
}else if(id == null || template.getIsDefault() == null){
|
|
|
template.setIsDefault(0);
|
|
|
}
|
|
|
bwTemplateDao.save(template);
|
|
|
return template.getId();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取系统模板和医生创建模板
|
|
|
* @return
|
|
|
*/
|
|
|
public List<BirthdayWishesTemplate> getTemplateByDoctor(String doctor) {
|
|
|
return bwTemplateDao.getTemplateByDoctor(doctor);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据id获取模板消息
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
public BirthdayWishesTemplate getTemplateById(Long id) {
|
|
|
return bwTemplateDao.findOne(id);
|
|
|
}
|
|
|
|
|
|
public void deleteTemplateById(Long id) {
|
|
|
bwTemplateDao.delete(id);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 根据ID设置为默认模板
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
@Transactional
|
|
|
public BirthdayWishesTemplate setDefalutTemplateById(String doctor, Long id) {
|
|
|
BirthdayWishesTemplate template = bwTemplateDao.findOne(id);
|
|
|
//先取消该医生自创的默认模板
|
|
|
BirthdayWishesTemplate docTemplate = bwTemplateDao.findByCreateUserAndApplicableRangeAndIsDefault(doctor, template.getApplicableRange(), 1);
|
|
|
if(docTemplate != null){
|
|
|
bwTemplateDao.setDefalutTemplateById(docTemplate.getId(), 0);
|
|
|
}
|
|
|
//如果不是系统模板,就添加默认模板标识
|
|
|
if(template.getType() != 1){
|
|
|
bwTemplateDao.setDefalutTemplateById(id, 1);
|
|
|
}
|
|
|
return template;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取医生当天未发送生日祝福居民信息
|
|
|
* @param doctor
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String, Object>> getPatientByDoctor(String doctor) throws Exception{
|
|
|
//es日期格式
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String createTime = sdf.format(new Date()) + " 00:00:00";
|
|
|
//今日推送的居民
|
|
|
Set<String> sendPatients = (Set<String>) redisTemplate.opsForValue().get("birthday:wish:sendPatient");
|
|
|
|
|
|
Date currentTime = new Date();
|
|
|
SimpleDateFormat format = new SimpleDateFormat("MMdd");
|
|
|
String dateString = format.format(currentTime);
|
|
|
|
|
|
//获取当天0点
|
|
|
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
|
|
|
String now = f.format(new Date());
|
|
|
String sql = "SELECT p.id patient, p.`name`, " +
|
|
|
"CASE p.sex WHEN 1 THEN '男' WHEN 2 THEN '女' END sex," +
|
|
|
"p.idcard, p.photo," +
|
|
|
" CASE LENGTH(p.idcard) WHEN 18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END date " +
|
|
|
"from wlyy_archive a,base_patient p WHERE a.patient = p.id and a.sign_status = 1 and EXISTS( " +
|
|
|
"SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
|
|
|
"base_service_package_item i,base_team_member m " +
|
|
|
"WHERE sr.id = r.sign_id and sr.patient = a.patient and r.service_package_id = i.service_package_id " +
|
|
|
"and i.del = 1 and m.team_code = i.team_code and m.doctor_code = '"+doctor+"' ) "+
|
|
|
" and (p.archive_status<>2 or p.archive_status is null) " +
|
|
|
"AND CASE LENGTH(p.idcard) WHEN 18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END = '" + dateString + "' " ;
|
|
|
List<Map<String, Object>> patientInfos = jdbcTemplate.queryForList(sql);
|
|
|
//整理未发送居民信息
|
|
|
for(Map<String, Object> map : patientInfos){
|
|
|
if (sendPatients == null || !sendPatients.contains(map.get("patient"))) {
|
|
|
int age = IdCardUtil.getAgeForIdcard(map.get("idcard") + "");
|
|
|
Date birthday = IdCardUtil.getBirthdayForIdcard(map.get("idcard") + "");
|
|
|
map.put("age", age);
|
|
|
map.put("birthday", DateUtil.dateToStr(birthday, "yyyy-MM-dd"));
|
|
|
}
|
|
|
}
|
|
|
return patientInfos;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取医生生日列表
|
|
|
*/
|
|
|
public Map<String, Object> getBirthdayPatientList(String doctorCode, String patientName, Integer signYear, String startDate, String endDate, Integer status, String currentUserRole, String currentUserRoleLevel,
|
|
|
Integer roleType, Integer page, Integer pageSize, Integer teamId, Integer isLeader) throws Exception {
|
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
|
List<Map<String, Object>> resultList = new ArrayList();
|
|
|
Long allCount = 0l;
|
|
|
//判断是否筛选推送条件,若未筛选则从数据库直接查生日居民,再进行匹配是否推送,若选择已推送则从推送记录查,若未发送则从未推送表查
|
|
|
//助老员签约患者
|
|
|
String sql = " SELECT Distinct p.id patient,p.idcard,p.mobile,p.name,p.sex,p.id,p.photo," +
|
|
|
"CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END birthday " ;
|
|
|
String sqlCount = "SELECT count(distinct p.idcard) ";
|
|
|
|
|
|
String whereSql = "from wlyy_archive a,base_patient p WHERE a.patient = p.id and a.sign_status = 1 and EXISTS( " +
|
|
|
"SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
|
|
|
"base_service_package_item i,base_team_member m " +
|
|
|
"WHERE sr.id = r.sign_id and sr.patient = a.patient and r.service_package_id = i.service_package_id " +
|
|
|
"and i.del = 1 and m.team_code = i.team_code ";
|
|
|
|
|
|
//根据权限获取生日居民列表
|
|
|
if (roleType == 1) {
|
|
|
whereSql += " and m.doctor_code = '"+doctorCode+"' ";
|
|
|
} else {//管理员
|
|
|
switch (currentUserRoleLevel) {
|
|
|
case "1": {//省
|
|
|
whereSql += " and i.org_code in ( select org.code from base_org org where org.province_code = '"+currentUserRole+"' and org.del=1 ) ";
|
|
|
break;
|
|
|
}
|
|
|
case "2": {//市
|
|
|
whereSql += " and i.org_code in ( select org.code from base_org org where org.city_code = '"+currentUserRole+"' and org.del=1 ) ";
|
|
|
break;
|
|
|
}
|
|
|
case "3": {//区
|
|
|
whereSql += " and i.org_code in ( select org.code from base_org org where org.town_code = '"+currentUserRole+"' and org.del=1 ) ";
|
|
|
break;
|
|
|
}
|
|
|
case "4": {//社区机构
|
|
|
whereSql += " and i.org_code = '" + currentUserRole + "' ";
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(patientName)) {
|
|
|
whereSql += "and p.name like '%" + patientName + "%' ";
|
|
|
}
|
|
|
//根据签约年限来获取生日居民
|
|
|
if ( null== signYear|| signYear == DateUtil.getNowYear()) {//当前年度
|
|
|
whereSql += " and sr.status=1 ";
|
|
|
} else {//
|
|
|
whereSql += " and sr.status=-1 and sr.start_time >='" + signYear+" 01-01:00:00:00" + "' and sr.start_time <='" + signYear+" 12-31:23:59:59" + "' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
|
|
|
String start = startDate.substring(4).replace("-", "");
|
|
|
String end = endDate.substring(4).replace("-", "");
|
|
|
Integer birStart = Integer.parseInt(start);
|
|
|
Integer birEnd = Integer.parseInt(end);
|
|
|
//判断生日日期
|
|
|
if(birEnd > birStart) {
|
|
|
whereSql += "AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END >= '" + start + "' " +
|
|
|
"AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END <= '" + end + "' ";
|
|
|
}else if(birEnd < birStart){
|
|
|
whereSql += "AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END >= '" + end + "' " +
|
|
|
"AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END <= '" + start + "' ";
|
|
|
}else {
|
|
|
whereSql += "AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END = '" + end + "' ";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
whereSql += "and DATE_FORMAT(sr.create_time,'%m%d')< CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END ";
|
|
|
sql = sql + whereSql + " ) order by birthday limit "+(page-1)*pageSize + "," + pageSize;
|
|
|
sqlCount = sqlCount + whereSql+")";
|
|
|
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
allCount = jdbcTemplate.queryForObject(sqlCount, Long.class);
|
|
|
resultMap.put("total", allCount);
|
|
|
//获取生日居民code
|
|
|
String patientString = "";
|
|
|
for (Map<String, Object> map : list) {
|
|
|
patientString += "'"+ map.get("patient") + "',";
|
|
|
}
|
|
|
if(patientString.length() > 0) {
|
|
|
//查询该居民是否有推送过
|
|
|
String es = "SELECT patient_code patientCode,doctor_name doctorName,content,birthday,create_time createTime FROM birthday_wishes_to_patient where patient_code in (" + patientString.substring(0, patientString.length() - 1) + ") and user_type =1 and create_time > '" + startDate + " 00:00:00' and create_time < '" + endDate + " 23:59:59'";
|
|
|
List<Map<String, Object>> sendPatientList = jdbcTemplate.queryForList(es);
|
|
|
Set<String> patientSet = new HashSet<>();
|
|
|
for (Map<String, Object> map : list) {
|
|
|
String patientCode = map.get("patient") + "";
|
|
|
//判断是否在推送记录里
|
|
|
if( null == status || 1 == status ) {
|
|
|
for (Map<String, Object> esMap : sendPatientList) {
|
|
|
if (patientCode.equals(esMap.get("patientCode") + "")) {
|
|
|
map.put("birthday", esMap.get("birthday") + "");
|
|
|
map.put("doctorName", esMap.get("doctorName") + "");
|
|
|
map.put("content", esMap.get("content") + "");
|
|
|
map.put("createTime", (esMap.get("createTime") + "").replace("T", " ").replace("+0800", ""));
|
|
|
map.put("status", "已发送");
|
|
|
patientSet.add(patientCode);
|
|
|
resultList.add(map);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if(null == status || 2 == status) {
|
|
|
//存取未发送居民
|
|
|
for (Map<String, Object> map : list) {
|
|
|
String patientCode = map.get("patient") + "";
|
|
|
if (!patientSet.contains(patientCode)) {
|
|
|
String birthday = map.get("birthday")+"日";
|
|
|
StringBuilder bir = new StringBuilder(birthday);
|
|
|
bir.insert(2, "月");
|
|
|
// int age = IdCardUtil.getAgeForIdcard(map.get("idcard") + "");
|
|
|
map.put("birthday", bir.toString());
|
|
|
// int age = IdCardUtil.getAgeForIdcard(map.get("idcard") + "");
|
|
|
// map.put("age", age);
|
|
|
map.put("status", "未发送");
|
|
|
resultList.add(map);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
resultMap.put("detailModelList", resultList);
|
|
|
resultMap.put("total", allCount);
|
|
|
resultMap.put("pageCount", allCount%pageSize == 0 ?allCount/pageSize : allCount/pageSize +1);
|
|
|
return resultMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 将发送祝福的居民相关信息存到es
|
|
|
* @param json
|
|
|
* @return
|
|
|
*/
|
|
|
public List<BirthDayWishesToPatient> saveBirthdayWishesES(JSONObject json) {
|
|
|
List<BirthDayWishesToPatient> list = new ArrayList<>();
|
|
|
List<BirthDayWishesToPatient> birthdayWishesList = new ArrayList<>();
|
|
|
String p = json.get("patient") + "";
|
|
|
String doctorCode = json.get("doctorCode") + "";
|
|
|
Integer sendType = (Integer) json.get("sendType");
|
|
|
String currentUserRole = json.has("currentUserRole")?json.get("currentUserRole") + "":null;
|
|
|
String currentUserRoleLevel = json.has("currentUserRoleLevel")?json.get("currentUserRoleLevel") + "":null;
|
|
|
String dateString = json.get("birthday") + "";
|
|
|
Integer isSave = (Integer) json.get("isSave");
|
|
|
Long templateId = null;
|
|
|
String content = null;
|
|
|
if(isSave == 1) {
|
|
|
templateId = (Long) json.get("templateId");
|
|
|
BirthdayWishesTemplate birthdayWishesTemplate = bwTemplateDao.findOne(templateId);
|
|
|
content = birthdayWishesTemplate.getContent();
|
|
|
}else if(isSave == 0){
|
|
|
content = json.get("content") + "";
|
|
|
}
|
|
|
|
|
|
Set<String> patientSet = new HashSet<>();
|
|
|
|
|
|
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
String createTime = f.format(new Date());
|
|
|
//医生今日推送的居民
|
|
|
List<BirthDayWishesToPatient> sendPatientList = findSendPatientByCreateTime(p.toString(),createTime);
|
|
|
Set<String> sendPatient = sendPatientList.stream().map(BirthDayWishesToPatient::getPatientCode).collect(Collectors.toSet());
|
|
|
|
|
|
Set<String> openidSet = new HashSet<>();
|
|
|
BaseDoctorDO doctor = doctorDao.findById(doctorCode);
|
|
|
|
|
|
String sql = " select * from ( select p.id as patient,p.name,we.openid from base_patient p inner join base_patient_wechat we on p.id = we.patient_id and we.patient_id in ( "+p.toString()+") " +
|
|
|
" order by we.create_time desc )A group by A.patient ";
|
|
|
|
|
|
List<Map<String, Object>> patientInfos = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
//批量发送要属于同一批次
|
|
|
String batchNo = UUID.randomUUID().toString();
|
|
|
for (Map<String, Object> patientInfo : patientInfos) {
|
|
|
String s = patientInfo.get("patient") + "";
|
|
|
//已推送则不再重复推送
|
|
|
if(!sendPatient.contains(s)) {
|
|
|
patientSet.add(s);
|
|
|
//获取已推送居民
|
|
|
sendPatient.add(s);
|
|
|
}else {
|
|
|
continue;
|
|
|
}
|
|
|
openidSet.add(patientInfo.get("openid") + "");
|
|
|
BirthDayWishesToPatient es = new BirthDayWishesToPatient();
|
|
|
es.setBatchNo(batchNo);
|
|
|
es.setPatientCode(s);
|
|
|
es.setPatientName(patientInfo.get("name") + "");
|
|
|
es.setDoctorCode(doctor.getId());
|
|
|
es.setDoctorName(doctor.getName());
|
|
|
es.setUserType(1);
|
|
|
|
|
|
List<BaseDoctorHospitalDO> hospitalDOs = hospitalDao.findByDoctorCode(doctorCode);
|
|
|
|
|
|
|
|
|
//存储发送人信息
|
|
|
es.setSendPic(doctor.getPhoto());
|
|
|
es.setSendSex(doctor.getSex()+"");
|
|
|
// es.setAdminTeamName(patientInfo.get("teamName") + "");
|
|
|
// es.setAdminTeamCode(Long.valueOf(patientInfo.get("admin_team_code")+""));
|
|
|
if (hospitalDOs.size()>0){
|
|
|
es.setHospital(hospitalDOs.get(0).getOrgCode());
|
|
|
es.setHospitalName(hospitalDOs.get(0).getOrgName());
|
|
|
}
|
|
|
|
|
|
es.setTown(doctor.getTownCode());
|
|
|
es.setTownName(doctor.getTownName());
|
|
|
es.setSendType(sendType);
|
|
|
es.setSendLevel(doctor.getLevel());
|
|
|
|
|
|
if (StringUtils.isNotBlank(currentUserRole)){
|
|
|
es.setCurrentUserRoleCode(currentUserRole);
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(currentUserRoleLevel)){
|
|
|
es.setCurrentUserRoleLevel(currentUserRoleLevel);
|
|
|
}
|
|
|
|
|
|
es.setAllCount(patientSet.size());
|
|
|
es.setOpenidSet(openidSet.toString());
|
|
|
|
|
|
//生日祝福信息
|
|
|
es.setBirthday(dateString);
|
|
|
es.setTemplateId(templateId);
|
|
|
es.setContent(content);
|
|
|
es.setCreateTime(DateUtil.getStringDate());
|
|
|
list.add(es);
|
|
|
|
|
|
}
|
|
|
|
|
|
if(list.size()>0){
|
|
|
//保存到ES中
|
|
|
// elastricSearchSave.save(list, esIndex, esType);
|
|
|
//另存一条发送祝福的医生信息,便于查询医生发送祝福的居民列表
|
|
|
BirthDayWishesToPatient e = new BirthDayWishesToPatient();
|
|
|
BeanUtils.copyProperties(list.get(0), e);
|
|
|
e.setUserType(2);
|
|
|
e.setPatientCode(null);
|
|
|
e.setPatientName(null);
|
|
|
list.add(e);
|
|
|
bwToPatientDao.save(list);
|
|
|
// System.out.println("ES保存成功!");
|
|
|
//将发送生日祝福的居民code存起来
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.set(Calendar.HOUR, 23);
|
|
|
today.set(Calendar.MINUTE, 59);
|
|
|
today.set(Calendar.SECOND, 59);
|
|
|
today.set(Calendar.MILLISECOND, 999);
|
|
|
redisTemplate.opsForValue().set("birthday:wish:sendPatient", sendPatient);
|
|
|
redisTemplate.expire("birthday:wish:sendPatient", today.getTimeInMillis() - Calendar.getInstance().getTimeInMillis(), TimeUnit.MILLISECONDS);
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取今日已推送居民
|
|
|
* @param
|
|
|
* @return
|
|
|
*/
|
|
|
public List<BirthDayWishesToPatient> findSendPatientByCreateTime(String patient,String createTime) {
|
|
|
|
|
|
StringBuffer sql = new StringBuffer("select patient_code patientCode from birthday_wishes_to_patient "+
|
|
|
" where user_type=1 and create_time>'" + createTime + "' ");
|
|
|
if (StringUtils.isNotBlank(patient)){
|
|
|
sql.append(" and patient_code in ( "+patient+" ) ") ;
|
|
|
}
|
|
|
sql.append(" limit 0,500000 ");
|
|
|
List<BirthDayWishesToPatient> patientList = jdbcTemplate.queryForList(sql.toString(), BirthDayWishesToPatient.class);
|
|
|
return patientList;
|
|
|
}
|
|
|
}
|