| 
					
				 | 
			
			
				@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.wlyy.service.app.sign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.es.entity.HealthEduArticleES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.address.Country; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.address.Street; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.address.Town; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -34,6 +35,7 @@ import com.yihu.wlyy.service.system.SystemDictService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.third.jw.JwSignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.task.PushMsgTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.ElasticsearchUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -42,6 +44,7 @@ import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.PageRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.redis.core.StringRedisTemplate; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -49,6 +52,7 @@ import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -117,6 +121,12 @@ public class SignWebService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private SMSService smsService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PushMsgTask pushMsgTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${es.type.HealthEduArticlePatient}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String esType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${es.index.HealthEduArticlePatient}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String esIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ElasticsearchUtil elasticsearchUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 厦门市 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1025,11 +1035,13 @@ public class SignWebService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getSignServiceInfo(String signCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getSignServiceInfo(String signCode) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SignFamily signFamily = signFamilyDao.findByCode(signCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (signFamily == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctorHealth = signFamily.getDoctorHealth(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctor = signFamily.getDoctor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Patient p = patientService.findByCode(signFamily.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String patient = p.getCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //获取咨询 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1039,12 +1051,18 @@ public class SignWebService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //获取待预约 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String reservation_sql = "select w.code,w.id, w.doctor_name,w.doctor_code,w.doctor_job,w.doctor,w.dname,w.org_code,w.status,w.start_time as czrq,3 as type from wlyy_patient_reservation  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //获取健康教育 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String article_sql = "select w.id,w.article,w2.title,w2.summary,w.czrq,w.doctor,w.doctor_name,w.is_read,4 as type from wlyy_health_edu_article_patient  w,wlyy_health_edu_article w2 where w.article = w2.code and  (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String article_sql = "select w.id,w.article,w2.title,w2.summary,w.czrq,w.doctor,w.doctor_name,w.is_read,4 as type from wlyy_health_edu_article_patient  w,wlyy_health_edu_article w2 where w.article = w2.code and  (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date startTime = DateUtil.getBeginDayOfYear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date endTime = DateUtil.getEndDayOfYear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String startDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String endDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String start = elasticsearchUtil.changeTime(startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String end = elasticsearchUtil.changeTime(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String article_sql = "SELECT id,articleId as article,articleTitle as title,createTime as czrq,doctorCode as doctor,doctorName as doctor_name,isRead as is_read,articleContent as content FROM "+esIndex+" where userType='1' and patientCode='"+patient+"' and (doctorCode='"+doctorHealth+"' or doctorCode='"+doctor+"') and createTime>='"+start+"' and createTime<='"+end+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //获取健康指导 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String guidance_sql = "select w.id,w.doctor,w.content,w.czrq,w.read_status,5 as type  from wlyy_patient_health_guidance  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctorHealth = signFamily.getDoctorHealth(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctor = signFamily.getDoctor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int year = calendar.get(Calendar.YEAR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //咨询量 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1054,7 +1072,15 @@ public class SignWebService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //待预约量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> reservationResult = jdbcTemplate.queryForList(reservation_sql, new Object[]{doctorHealth, doctor, patient, year}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //健康教育量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> articleResult = jdbcTemplate.queryForList(article_sql, new Object[]{doctorHealth, doctor, patient, year}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        List<Map<String, Object>> articleResult = jdbcTemplate.queryForList(article_sql, new Object[]{doctorHealth, doctor, patient, year}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        List<HealthEduArticleES> esList = elasticsearchUtil.excute(article_sql, HealthEduArticleES.class, esIndex, esType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> articleResult = elasticsearchUtil.excuteDataModel(article_sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map<String, Object> map :articleResult){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("type","4"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("czrq",map.get("czrq")!=null?simpleDateFormat.format(new Date(((Long)map.get("czrq")).longValue())):""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("summary",map.get("content")!=null?(map.get("content").toString().length()>40?map.get("content").toString().substring(0,40):map.get("content").toString()):""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //健康指导量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> guidanceResult = jdbcTemplate.queryForList(guidance_sql, new Object[]{doctorHealth, doctor, patient, year}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<JSONObject> objects = new ArrayList<>(); 
			 |