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