|
@ -3,6 +3,7 @@ package com.yihu.jw.care.job.data;
|
|
|
import com.yihu.jw.care.util.DateUtil;
|
|
|
import com.yihu.jw.care.zhylyjkglxt.dao.*;
|
|
|
import com.yihu.jw.care.zhylyjkglxt.entity.*;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.quartz.Job;
|
|
|
import org.quartz.JobExecutionContext;
|
|
|
import org.quartz.JobExecutionException;
|
|
@ -13,7 +14,10 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
public class SaveDataPushJob implements Job {
|
|
|
|
|
@ -48,39 +52,89 @@ public class SaveDataPushJob implements Job {
|
|
|
String date = DateUtil.dateToStrShort(new Date());
|
|
|
//System.out.println(date);
|
|
|
date = DateUtil.getNextDay(date, -1);
|
|
|
// String filterOrg = "";//排除的测试机构
|
|
|
// String sqltmp = "SELECT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null ";
|
|
|
// List<String> listtmp = jdbcTemplate.queryForList(sqltmp,String.class);
|
|
|
// Map<String,String> jkzlOrgMap = new HashMap<>();
|
|
|
// if(listtmp.size()>0){
|
|
|
// jkzlOrgMap = listtmp.stream().collect(Collectors.toMap(String::toString,String::toString));
|
|
|
// filterOrg = " '" +String.join("','",listtmp)+ "' ";
|
|
|
// }
|
|
|
|
|
|
String filterUser = " ";//排除的测试用户
|
|
|
String sqltmp = "SELECT dict_code from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' " +
|
|
|
" or dict_name = 'jkzl_user' or dict_name = 'jkzl_helper' or dict_name = 'jkzl_teacher' ) and dict_code is not null";
|
|
|
List<String> listtmp = jdbcTemplate.queryForList(sqltmp,String.class);
|
|
|
Map<String,String> jkzlUserMap = new HashMap<>();
|
|
|
if (listtmp.size() > 0) {
|
|
|
jkzlUserMap = listtmp.stream().collect(Collectors.toMap(String::toString,String::toString));
|
|
|
filterUser = " '" +String.join("','",listtmp)+ "' ";
|
|
|
}
|
|
|
|
|
|
//签约老人id
|
|
|
String signOlderSql="SELECT " +
|
|
|
" DISTINCT p.id " +
|
|
|
" FROM " +
|
|
|
" base_patient p INNER JOIN base_service_package_sign_record sr on p.id = sr.patient and sr.`status`=1 and " +
|
|
|
" p.id not in ("+filterUser+") " +
|
|
|
" WHERE p.del = 1 and p.archive_type =1 " ;
|
|
|
List<String> signOlderList = jdbcTemplate.queryForList(signOlderSql,String.class);
|
|
|
Map<String,String> signOlderMap = signOlderList.stream().collect(Collectors.toMap(String::toString,String::toString));
|
|
|
|
|
|
//System.out.println(date);
|
|
|
saveSecurityMonitoringOrder(date);
|
|
|
saveEmergencyAssistanceOrder(date);
|
|
|
saveDoorCoachOrder(date);
|
|
|
saveSecurityMonitoringOrder(date,signOlderMap);
|
|
|
saveEmergencyAssistanceOrder(date,signOlderMap);
|
|
|
saveDoorCoachOrder(date,jkzlUserMap);
|
|
|
saveDoorCoachFeeDetail(date);
|
|
|
saveLifeCareOrder(date);
|
|
|
saveLifeCareOrder(date,signOlderMap);
|
|
|
saveLifeCareFeeDetail(date);
|
|
|
savePatientInfo(date);
|
|
|
savePatientInfo(date,signOlderMap);
|
|
|
saveServicePackageItem(date);
|
|
|
savePatientDevice(date);
|
|
|
savePatientDevice(date,signOlderMap);
|
|
|
saveWlyyDevice(date);
|
|
|
}
|
|
|
|
|
|
|
|
|
//安防监护工单
|
|
|
public void saveSecurityMonitoringOrder(String date){
|
|
|
public void saveSecurityMonitoringOrder(String date,Map<String,String> signOlderMap){
|
|
|
String securityMonitoringOrderSql="SELECT id,number,patient,serve_desc,serve_town,serve_address,doctor_name,`status`,hospital,service_status from base_security_monitoring_order WHERE create_time >= '"+date+"'";
|
|
|
List<ZhSecurityMonitoringOrderDO> query = jdbcTemplate.query(securityMonitoringOrderSql, new BeanPropertyRowMapper<>(ZhSecurityMonitoringOrderDO.class));
|
|
|
zhSecurityMonitoringOrderDao.save(query);
|
|
|
for(ZhSecurityMonitoringOrderDO orderDO:query){
|
|
|
if(!signOlderMap.containsKey(orderDO.getPatient())){
|
|
|
query.remove(orderDO);
|
|
|
}
|
|
|
}
|
|
|
if(query.size()>0){
|
|
|
zhSecurityMonitoringOrderDao.save(query);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//紧急救助工单
|
|
|
public void saveEmergencyAssistanceOrder(String date){
|
|
|
String emergencyAssistanceOrderSql ="SELECT id,patient_name,patient_phone,patient_idcard,org_name,serve_address,doctor_name,doctor_address,complete_time,team_code,proxy_patient_name,proxy_patient_phone,type,order_source FROM base_emergency_assistance_order WHERE create_time >= '"+date+"'";
|
|
|
public void saveEmergencyAssistanceOrder(String date,Map<String,String> signOlderMap){
|
|
|
String emergencyAssistanceOrderSql ="SELECT id,patient,patient_name,patient_phone,patient_idcard,org_name,serve_address,doctor_name,doctor_address,complete_time,team_code,proxy_patient_name,proxy_patient_phone,type,order_source FROM base_emergency_assistance_order WHERE create_time >= '"+date+"'";
|
|
|
List<ZhEmergencyAssistanceDO> query = jdbcTemplate.query(emergencyAssistanceOrderSql, new BeanPropertyRowMapper<>(ZhEmergencyAssistanceDO.class));
|
|
|
zhEmergencyAssistanceDao.save(query);
|
|
|
for(ZhEmergencyAssistanceDO orderDO:query){
|
|
|
if(!signOlderMap.containsKey(orderDO.getPatient())){
|
|
|
query.remove(orderDO);
|
|
|
}
|
|
|
}
|
|
|
if(query.size()>0){
|
|
|
zhEmergencyAssistanceDao.save(query);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//上门辅导工单
|
|
|
public void saveDoorCoachOrder(String date){
|
|
|
String doorCoachOrderSql = "SELECT id,proxy_patient_name,proxy_patient_phone,patient_name,patient_relation,patient_expected_serve_time,serve_desc,serve_address,serve_town,is_trans_other_org,total_fee,doctor_name,doctor_type,doctor_sign_time,doctor_sign_location,patient_confirm_finish_time,exam_paper_imgs,`status`,expected_doctor_name,hospital,followup_date FROM base_door_coach_order WHERE create_time >= '"+date+"'";
|
|
|
public void saveDoorCoachOrder(String date,Map<String,String> jkzlUserMap){
|
|
|
String doorCoachOrderSql = "SELECT id,proxy_patient_name,proxy_patient_phone,patient,patient_name,patient_relation,patient_expected_serve_time,serve_desc,serve_address,serve_town,is_trans_other_org,total_fee,doctor_name,doctor_type,doctor_sign_time,doctor_sign_location,patient_confirm_finish_time,exam_paper_imgs,`status`,expected_doctor_name,hospital,followup_date FROM base_door_coach_order WHERE create_time >= '"+date+"'";
|
|
|
List<ZhBaseDoorCoachOrderDO> query = jdbcTemplate.query(doorCoachOrderSql, new BeanPropertyRowMapper<>(ZhBaseDoorCoachOrderDO.class));
|
|
|
zhBaseDoorCoachOrderDao.save(query);
|
|
|
for (ZhBaseDoorCoachOrderDO orderDO:query){
|
|
|
if(jkzlUserMap.containsKey(orderDO.getPatient())){
|
|
|
query.remove(orderDO);
|
|
|
}
|
|
|
}
|
|
|
if(query.size()>0){
|
|
|
zhBaseDoorCoachOrderDao.save(query);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//上门辅导 服务工单价格
|
|
@ -91,10 +145,17 @@ public class SaveDataPushJob implements Job {
|
|
|
}
|
|
|
|
|
|
// 生活照料 工单
|
|
|
public void saveLifeCareOrder(String date){
|
|
|
String lifeCareOrderSql = "SELECT id,proxy_patient_name,proxy_patient_phone,patient_name,patient_phone,patient_relation,serve_desc,serve_town,serve_address,total_fee,doctor_name,doctor_type,`status`,doctor_sign_location,sign_doctor_name,conclusion_remark,pay_status FROM base_life_care_order WHERE create_time >= '"+date+"'";
|
|
|
public void saveLifeCareOrder(String date,Map<String,String> signOlderMap){
|
|
|
String lifeCareOrderSql = "SELECT id,proxy_patient_name,proxy_patient_phone,patient,patient_name,patient_phone,patient_relation,serve_desc,serve_town,serve_address,total_fee,doctor_name,doctor_type,`status`,doctor_sign_location,sign_doctor_name,conclusion_remark,pay_status FROM base_life_care_order WHERE create_time >= '"+date+"'";
|
|
|
List<ZhLifeCareOrderDO> query = jdbcTemplate.query(lifeCareOrderSql, new BeanPropertyRowMapper<>(ZhLifeCareOrderDO.class));
|
|
|
zhLifeCareOrderDao.save(query);
|
|
|
for (ZhLifeCareOrderDO orderDO:query){
|
|
|
if(!signOlderMap.containsKey(orderDO.getPatient())){
|
|
|
query.remove(orderDO);
|
|
|
}
|
|
|
}
|
|
|
if(query.size()>0){
|
|
|
zhLifeCareOrderDao.save(query);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//生活照料 价格
|
|
@ -105,10 +166,21 @@ public class SaveDataPushJob implements Job {
|
|
|
}
|
|
|
|
|
|
//居民信息
|
|
|
public void savePatientInfo(String date){
|
|
|
String patientInfoSql="SELECT id,register,idcard,`name`,birthday,sex,mobile,province_name,city_name,town_name,street_name,committee_name,address,patient_status,marriage,national,blood,archive_status,archive_type,ssc,disease,home_address,sign_status,medical_state FROM base_patient WHERE create_time>= '"+date+"'";
|
|
|
public void savePatientInfo(String date,Map<String,String> signOlderMap){
|
|
|
//暂时只推送已签约的老人,幼儿另外建表推送
|
|
|
String patientInfoSql="SELECT a.id,a.register,a.idcard,a.`name`,a.birthday,a.sex,a.mobile,a.province_name,a.city_name,a.town_name,a.street_name,a.committee_name, " +
|
|
|
" a.address,a.patient_status,a.marriage,a.national,a.blood,a.archive_status,a.archive_type,a.ssc,a.disease,a.home_address,a.sign_status,a.medical_state " +
|
|
|
" FROM base_patient a " +
|
|
|
" WHERE a.archive_type=1 and a.idcard is not null and a.create_time>= '"+date+"' ";
|
|
|
List<ZhBasePatientDO> query = jdbcTemplate.query(patientInfoSql, new BeanPropertyRowMapper<>(ZhBasePatientDO.class));
|
|
|
zhBasePatientDao.save(query);
|
|
|
for (ZhBasePatientDO patientDO: query){
|
|
|
if(!signOlderMap.containsKey(patientDO.getId())){
|
|
|
query.remove(patientDO);
|
|
|
}
|
|
|
}
|
|
|
if(query.size()>0){
|
|
|
zhBasePatientDao.save(query);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//服务项
|
|
@ -119,9 +191,14 @@ public class SaveDataPushJob implements Job {
|
|
|
}
|
|
|
|
|
|
// 居民设备表
|
|
|
public void savePatientDevice(String date){
|
|
|
public void savePatientDevice(String date,Map<String,String> signOlderMap){
|
|
|
String patientDeviceSql = "SELECT id,device_id,`user`,category_code,device_name,user_idcard,doctor_name,hospital_name,device_type from wlyy_patient_device WHERE czrq >= '"+date+"'";
|
|
|
List<ZhDevicePatientDevice> query = jdbcTemplate.query(patientDeviceSql, new BeanPropertyRowMapper<>(ZhDevicePatientDevice.class));
|
|
|
for (ZhDevicePatientDevice patientDO: query){
|
|
|
if(!signOlderMap.containsKey(patientDO.getUser())){
|
|
|
query.remove(patientDO);
|
|
|
}
|
|
|
}
|
|
|
zhDevicePatientDeviceDao.save(query);
|
|
|
|
|
|
}
|