|  | @ -221,20 +221,24 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |      * 推送信息
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     private void sendMessage(String content, Patient patient, PatientHealthIndex model) {
 | 
	
		
			
				|  |  |         logger.info("======start sendMessage======");
 | 
	
		
			
				|  |  |         String patientCode = patient.getCode();
 | 
	
		
			
				|  |  |         // 消息接收者
 | 
	
		
			
				|  |  |         List<String> receivers = new ArrayList<String>();
 | 
	
		
			
				|  |  |         // 查询病人家庭签约的健康管理师
 | 
	
		
			
				|  |  |         SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patientCode);
 | 
	
		
			
				|  |  |         logger.info("签约对象--全科医生code===="+signFamily.getDoctor());
 | 
	
		
			
				|  |  |         String healthDoctorFamily = "";
 | 
	
		
			
				|  |  |         String doctorFamily = "";
 | 
	
		
			
				|  |  |         if (signFamily != null) {
 | 
	
		
			
				|  |  |             healthDoctorFamily = signFamily.getDoctorHealth();
 | 
	
		
			
				|  |  |             doctorFamily = signFamily.getDoctor();
 | 
	
		
			
				|  |  |             logger.info("全科医生code======"+doctorFamily);
 | 
	
		
			
				|  |  |             if (StringUtils.isNotEmpty(healthDoctorFamily)) {
 | 
	
		
			
				|  |  |                 // 添加到消息接收人列表
 | 
	
		
			
				|  |  |                 receivers.add(healthDoctorFamily);
 | 
	
		
			
				|  |  |             } else if (StringUtils.isNotEmpty(doctorFamily)){
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (StringUtils.isNotEmpty(doctorFamily)){
 | 
	
		
			
				|  |  |                 // 添加到消息接收人列表
 | 
	
		
			
				|  |  |                 receivers.add(doctorFamily);
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -248,7 +252,7 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |                 // 添加到消息接收人列表
 | 
	
		
			
				|  |  |                 receivers.add(healthDoctorTeam);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (StringUtils.isNotEmpty(signFamilySS.getDoctor())){
 | 
	
		
			
				|  |  |             if (StringUtils.isNotEmpty(signFamilySS.getDoctor())&& !StringUtils.equals(doctorFamily, signFamilySS.getDoctor())){
 | 
	
		
			
				|  |  |                 receivers.add(signFamilySS.getDoctor());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -292,6 +296,7 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         // 批量保存消息
 | 
	
		
			
				|  |  |         logger.info("消息数量---"+messages.size());
 | 
	
		
			
				|  |  |         messageDao.save(messages);
 | 
	
		
			
				|  |  |         // 推送消息给医生
 | 
	
		
			
				|  |  |         pushMsgTask.put(array);
 | 
	
	
		
			
				|  | @ -459,6 +464,73 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 设置
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public int setTrackPatientByDoctor(String patient){
 | 
	
		
			
				|  |  |         SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
 | 
	
		
			
				|  |  |         if(signFamily==null){
 | 
	
		
			
				|  |  |             return -1;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Patient p = patientDao.findByCode(patient);
 | 
	
		
			
				|  |  |         if(p==null){
 | 
	
		
			
				|  |  |             return -1;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //医生是否自动追踪居民
 | 
	
		
			
				|  |  |         DoctorSwitch sw =  doctorSwitchDao.findByDoctor(signFamily.getDoctor());
 | 
	
		
			
				|  |  |         DoctorSwitch swh =  doctorSwitchDao.findByDoctor(signFamily.getDoctorHealth());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(sw!=null){
 | 
	
		
			
				|  |  |             if("1".equals(sw.getAlertPatientSwitch())){
 | 
	
		
			
				|  |  |                 //查询是否与医生建立重点跟踪关系,诺无关系则建立
 | 
	
		
			
				|  |  |                 TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctor(),patient);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if(trackPatient == null){
 | 
	
		
			
				|  |  |                     TrackPatient t = new TrackPatient();
 | 
	
		
			
				|  |  |                     t.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                     t.setDoctorCode(signFamily.getDoctor());
 | 
	
		
			
				|  |  |                     t.setDoctorName(signFamily.getDoctorName());
 | 
	
		
			
				|  |  |                     t.setIdcard(signFamily.getIdcard());
 | 
	
		
			
				|  |  |                     t.setSsc(signFamily.getSsc());
 | 
	
		
			
				|  |  |                     t.setTeamCode(signFamily.getAdminTeamId().intValue());
 | 
	
		
			
				|  |  |                     t.setPatientCode(patient);
 | 
	
		
			
				|  |  |                     t.setPatientName(p.getName());
 | 
	
		
			
				|  |  |                     t.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(t);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     trackPatient.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(trackPatient);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(swh!=null){
 | 
	
		
			
				|  |  |             if("1".equals(swh.getAlertPatientSwitch())){
 | 
	
		
			
				|  |  |                 //查询是否与医生建立重点跟踪关系,诺无关系则建立
 | 
	
		
			
				|  |  |                 TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctorHealth(),patient);
 | 
	
		
			
				|  |  |                 if(trackPatient == null){
 | 
	
		
			
				|  |  |                     TrackPatient t = new TrackPatient();
 | 
	
		
			
				|  |  |                     t.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                     t.setDoctorCode(signFamily.getDoctorHealth());
 | 
	
		
			
				|  |  |                     t.setDoctorName(signFamily.getDoctorHealthName());
 | 
	
		
			
				|  |  |                     t.setIdcard(signFamily.getIdcard());
 | 
	
		
			
				|  |  |                     t.setSsc(signFamily.getSsc());
 | 
	
		
			
				|  |  |                     t.setTeamCode(signFamily.getAdminTeamId().intValue());
 | 
	
		
			
				|  |  |                     t.setPatientCode(patient);
 | 
	
		
			
				|  |  |                     t.setPatientName(p.getName());
 | 
	
		
			
				|  |  |                     t.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(t);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     trackPatient.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(trackPatient);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return 1;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 添加积分
 | 
	
		
			
				|  |  |      * @param deviceSn
 | 
	
	
		
			
				|  | @ -482,11 +554,11 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |                 flagStr="GLU_MEASURE";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             int dataUoloadCount = 0;
 | 
	
		
			
				|  |  |             PatientDevice patientDevice = patientDeviceDao.findByDeviceSnAndCategoryCodeAndUserType(deviceSn,type,userType);
 | 
	
		
			
				|  |  |             boolean dataUoloadCount = true;
 | 
	
		
			
				|  |  |             if (patientDevice!=null){
 | 
	
		
			
				|  |  |                 String today = DateUtil.getStringDateShort();
 | 
	
		
			
				|  |  |                 String startTime = today+" 00:00:00";
 | 
	
		
			
				|  |  |                 /*String startTime = today+" 00:00:00";
 | 
	
		
			
				|  |  |                 String endTime = today+" 23:59:59";
 | 
	
		
			
				|  |  |                 int dateType =1;
 | 
	
		
			
				|  |  |                 if (deviceType==1){
 | 
	
	
		
			
				|  | @ -496,19 +568,38 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 String countSql = "SELECT count(*) num FROM device.wlyy_patient_health_index where `user`='"+patientDevice.getUser()+"' and type = "+dateType+" AND record_date >'"+startTime+"' and record_date <= '"+endTime+"'";
 | 
	
		
			
				|  |  |                 Map<String,Object> countMap = jdbcTemplate.queryForMap(countSql);
 | 
	
		
			
				|  |  |                 dataUoloadCount = Integer.valueOf(String.valueOf(countMap.get("num")));
 | 
	
		
			
				|  |  |                 dataUoloadCount = Integer.valueOf(String.valueOf(countMap.get("num")));*/
 | 
	
		
			
				|  |  |                 //判断今天是否加过体征积分
 | 
	
		
			
				|  |  |                 String urlSearch = wlyyService + "healthBank/selectByDate";
 | 
	
		
			
				|  |  |                 List<NameValuePair> paramsSearch1 = new ArrayList<>();
 | 
	
		
			
				|  |  |                 paramsSearch1.add(new BasicNameValuePair("objectStr", "{\"taskCode\":\"BP_MEASURE\",\"startTime\":\""+today+"\",\"endTime\":\""+today+"\",\"patientId\":\""+patientCode+"\"}"));
 | 
	
		
			
				|  |  |                 String responseSearch1 = HttpClientUtil.post(urlSearch, paramsSearch1, "UTF-8");
 | 
	
		
			
				|  |  |                 List<NameValuePair> paramsSearch2 = new ArrayList<>();
 | 
	
		
			
				|  |  |                 paramsSearch2.add(new BasicNameValuePair("objectStr", "{\"taskCode\":\"GLU_MEASURE\",\"startTime\":\""+today+"\",\"endTime\":\""+today+"\",\"patientId\":\""+patientCode+"\"}"));
 | 
	
		
			
				|  |  |                 String responseSearch2 = HttpClientUtil.post(urlSearch, paramsSearch2, "UTF-8");
 | 
	
		
			
				|  |  |                 com.alibaba.fastjson.JSONObject object1 = com.alibaba.fastjson.JSONObject.parseObject(responseSearch1);
 | 
	
		
			
				|  |  |                 com.alibaba.fastjson.JSONObject object2 = com.alibaba.fastjson.JSONObject.parseObject(responseSearch2);
 | 
	
		
			
				|  |  |                 if(object1!=null && object2!=null){
 | 
	
		
			
				|  |  |                     com.alibaba.fastjson.JSONObject jsonObject1 = (com.alibaba.fastjson.JSONObject) object1.getJSONObject("data").getJSONArray("detailModelList").get(0);
 | 
	
		
			
				|  |  |                     com.alibaba.fastjson.JSONObject jsonObject2 = (com.alibaba.fastjson.JSONObject) object2.getJSONObject("data").getJSONArray("detailModelList").get(0);
 | 
	
		
			
				|  |  |                     if (jsonObject1.getJSONArray("creditsDetailDOS").size()==0 && jsonObject2.getJSONArray("creditsDetailDOS").size()==0){
 | 
	
		
			
				|  |  |                         dataUoloadCount = false;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 logger.info("今日测量数量:"+dataUoloadCount);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //增加积分
 | 
	
		
			
				|  |  |             if (dataUoloadCount == 0 && "350205".equals(hospital.substring(0,6))){
 | 
	
		
			
				|  |  |             if (!dataUoloadCount && "350205".equals(hospital.substring(0,6))){
 | 
	
		
			
				|  |  |                 logger.info("体征增加积分入口--------");
 | 
	
		
			
				|  |  |                 String sql = "select count(*) num from device.wlyy_devices where device_code = '"+deviceSn+"'";
 | 
	
		
			
				|  |  |                 Map<String,Object> deviceCountMap = jdbcTemplate.queryForMap(sql);
 | 
	
		
			
				|  |  |                 if (Integer.valueOf(String.valueOf(deviceCountMap.get("num")))>0){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     logger.info("开始体征增加积分------");
 | 
	
		
			
				|  |  |                     String url = wlyyService + "healthBank/insertCredits";
 | 
	
		
			
				|  |  |                     List<NameValuePair> params = new ArrayList<>();
 | 
	
		
			
				|  |  |                     params.add(new BasicNameValuePair("creditsDetail", "{\"tradeType\":\"ACTIVITY_TASK\",\"flag\":\""+flagStr+"\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+patientCode+"\",\"hospital\":\"350205\"}"));
 | 
	
		
			
				|  |  |                     String response = HttpClientUtil.post(url, params, "UTF-8");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     logger.info("增加积分返回结果"+response);
 | 
	
		
			
				|  |  |                     com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(response);
 | 
	
		
			
				|  |  |                     String status = jsonObject.getString("status");
 | 
	
		
			
				|  |  |                     if (!"200".equals(status)){
 | 
	
	
		
			
				|  | @ -517,7 +608,7 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //增加活跃度
 | 
	
		
			
				|  |  |             if (dataUoloadCount == 0){
 | 
	
		
			
				|  |  |             if (!dataUoloadCount){
 | 
	
		
			
				|  |  |                 String url = wlyyService + "healthBank/createActiveRecord";
 | 
	
		
			
				|  |  |                 List<NameValuePair> params = new ArrayList<>();
 | 
	
		
			
				|  |  |                 params.add(new BasicNameValuePair("activeRecord", "{\"taskCode\":\""+flagStr+"\",\"patientId\":\""+patientCode+"\"}"));
 | 
	
	
		
			
				|  | @ -534,73 +625,6 @@ public class AsyncService extends BaseService{
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 设置
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public int setTrackPatientByDoctor(String patient){
 | 
	
		
			
				|  |  |         SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
 | 
	
		
			
				|  |  |         if(signFamily==null){
 | 
	
		
			
				|  |  |             return -1;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Patient p = patientDao.findByCode(patient);
 | 
	
		
			
				|  |  |         if(p==null){
 | 
	
		
			
				|  |  |             return -1;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //医生是否自动追踪居民
 | 
	
		
			
				|  |  |         DoctorSwitch sw =  doctorSwitchDao.findByDoctor(signFamily.getDoctor());
 | 
	
		
			
				|  |  |         DoctorSwitch swh =  doctorSwitchDao.findByDoctor(signFamily.getDoctorHealth());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(sw!=null){
 | 
	
		
			
				|  |  |             if("1".equals(sw.getAlertPatientSwitch())){
 | 
	
		
			
				|  |  |                 //查询是否与医生建立重点跟踪关系,诺无关系则建立
 | 
	
		
			
				|  |  |                 TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctor(),patient);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 if(trackPatient == null){
 | 
	
		
			
				|  |  |                     TrackPatient t = new TrackPatient();
 | 
	
		
			
				|  |  |                     t.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                     t.setDoctorCode(signFamily.getDoctor());
 | 
	
		
			
				|  |  |                     t.setDoctorName(signFamily.getDoctorName());
 | 
	
		
			
				|  |  |                     t.setIdcard(signFamily.getIdcard());
 | 
	
		
			
				|  |  |                     t.setSsc(signFamily.getSsc());
 | 
	
		
			
				|  |  |                     t.setTeamCode(signFamily.getAdminTeamId().intValue());
 | 
	
		
			
				|  |  |                     t.setPatientCode(patient);
 | 
	
		
			
				|  |  |                     t.setPatientName(p.getName());
 | 
	
		
			
				|  |  |                     t.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(t);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     trackPatient.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(trackPatient);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(swh!=null){
 | 
	
		
			
				|  |  |             if("1".equals(swh.getAlertPatientSwitch())){
 | 
	
		
			
				|  |  |                 //查询是否与医生建立重点跟踪关系,诺无关系则建立
 | 
	
		
			
				|  |  |                 TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctorHealth(),patient);
 | 
	
		
			
				|  |  |                 if(trackPatient == null){
 | 
	
		
			
				|  |  |                     TrackPatient t = new TrackPatient();
 | 
	
		
			
				|  |  |                     t.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                     t.setDoctorCode(signFamily.getDoctorHealth());
 | 
	
		
			
				|  |  |                     t.setDoctorName(signFamily.getDoctorHealthName());
 | 
	
		
			
				|  |  |                     t.setIdcard(signFamily.getIdcard());
 | 
	
		
			
				|  |  |                     t.setSsc(signFamily.getSsc());
 | 
	
		
			
				|  |  |                     t.setTeamCode(signFamily.getAdminTeamId().intValue());
 | 
	
		
			
				|  |  |                     t.setPatientCode(patient);
 | 
	
		
			
				|  |  |                     t.setPatientName(p.getName());
 | 
	
		
			
				|  |  |                     t.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(t);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     trackPatient.setDel("1");
 | 
	
		
			
				|  |  |                     trackPatientDao.save(trackPatient);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return 1;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public int cancalTrackPatientByDoctor(String patient){
 | 
	
		
			
				|  |  |         SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
 | 
	
		
			
				|  |  |         if(signFamily==null){
 |