|  | @ -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);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 |