| 
					
				 | 
			
			
				@ -1,6 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.wlyy.service.app.statistics; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.es.entity.HealthEduArticleES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.es.entity.HealthEduArticleESResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.address.Town; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.doctor.profile.Doctor; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -16,12 +15,8 @@ import com.yihu.wlyy.repository.doctor.DoctorDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.repository.organization.HospitalDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.repository.statistics.PopulationBaseDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.BaseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.app.team.AdminTeamService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.models.auth.In; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.collections.map.HashedMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.time.DateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.elasticsearch.common.inject.internal.Join; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -31,15 +26,14 @@ import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.redis.core.StringRedisTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.BeanPropertyRowMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.support.nativejdbc.OracleJdbc4NativeJdbcExtractor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.DecimalFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.ParseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by lyr on 2016/08/16. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2304,7 +2298,24 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //健康教育排行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String edurc_sql = "SELECT s.rowno AS articleRK FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String adminTeamSql ="SELECT m.id FROM wlyy_admin_team m  WHERE m.org_code ='" + orgcode + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> adminTeamIds = jdbcTemplate.queryForList(adminTeamSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String adminTeamIdsStr = adminTeamIds.stream().map(one->String.valueOf(one.get("id"))+",").collect(Collectors.joining()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (adminTeamIdsStr!= null && adminTeamIdsStr.length()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            adminTeamIdsStr = adminTeamIdsStr.substring(0,adminTeamIdsStr.length()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        startDate = changeDate(startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        endDate = changeDate(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String es_edurc_sql ="SELECT count(*) number,adminTeamCode FROM "+esIndex+" where czrq > '"+startDate+"' and czrq < '"+endDate+"' and adminTeamCode in ("+adminTeamIdsStr+") GROUP BY adminTeamCode ORDER BY number DESC"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> returnList = elasticsearchUtil.excuteDataModel(es_edurc_sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int rk =0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Map<String, Object> map : returnList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (Long.valueOf(String.valueOf(map.get("adminTeamCode"))).equals(id)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rk = returnList.indexOf(map)+1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*String edurc_sql = "SELECT s.rowno AS articleRK FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "( " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " SELECT (@rowNum :=@rowNum + 1) AS rowno,t.count,t.admin_team_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " FROM ( " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2328,7 +2339,10 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("articleRK", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        map.put("articleRK", rk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        rs.put(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return rs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2558,7 +2572,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //按月统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = "SELECT" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " (DATE_FORMAT(c.create_time, '%v')- DATE_FORMAT('2017-12-01 00:00:00', '%v')+ 1)AS weekOfMonth, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " (DATE_FORMAT(c.create_time, '%v')- DATE_FORMAT('"+startDate+"', '%v')+ 1)AS weekOfMonth, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " COUNT(1)AS noRely " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_admin_team_member m JOIN(" + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2585,7 +2599,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " GROUP BY weekOfMonth"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql="SELECT" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " (DATE_FORMAT(c.create_time, '%v')- DATE_FORMAT('2017-12-01 00:00:00', '%v')+ 1)AS weekOfMonth, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " (DATE_FORMAT(c.create_time, '%v')- DATE_FORMAT('"+startDate+"', '%v')+ 1)AS weekOfMonth, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " COUNT(1)AS total " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_admin_team_member m JOIN(" + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3119,7 +3133,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //按月 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSQL = "SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ( " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDateStr + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDate +" 17:00:00" + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ) AS weekOfMonth,COUNT(1) AS followupCount " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_followup w " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3130,7 +3144,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " AND w.create_time <= '?2' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            planSQL = "SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ( " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDateStr + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDate +" 17:00:00"  + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ) AS weekOfMonth,COUNT(1) AS planCount " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_followup w " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3528,7 +3542,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //查月份 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql = "SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  ( " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.czrq, '%v') - DATE_FORMAT('" + startDateStr + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.czrq, '%v') - DATE_FORMAT('" + startDate+" 17:00:00" + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ) AS weekOfMonth,COUNT(1) AS reservationCount " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_reservation w " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3754,7 +3768,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //按月统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SQL = "SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ( " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDateStr + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDate+" 17:00:00" + "', '%v') + 1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ) AS weekOfMonth, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " COUNT(1) AS guidanceCount " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 |