|  | @ -2,12 +2,18 @@ package com.yihu.jw.es.service.yqfk;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.IntegerIdentityEntity;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.utils.StringUtil;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.slf4j.Logger;
 | 
	
		
			
				|  |  | import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.persistence.criteria.CriteriaBuilder;
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -34,49 +40,381 @@ public class YqfkService {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject yqfkStatisticsHead(String startTime,String endTime){
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         String sql = "select COUNT(1) as confirmedTotal from MID_CDC_CASE_INFO where ";
 | 
	
		
			
				|  |  |         object.put("confirmed","");//现有确诊
 | 
	
		
			
				|  |  |         object.put("newHome","");//新增本土
 | 
	
		
			
				|  |  |         object.put("newAsymptomatic","");//新增无症状;
 | 
	
		
			
				|  |  |         object.put("confirmedTotal","");//累计确诊
 | 
	
		
			
				|  |  |         object.put("cureTotal","");//累计治愈
 | 
	
		
			
				|  |  |         object.put("deathTotal","");//累计死亡
 | 
	
		
			
				|  |  |         //现有确诊
 | 
	
		
			
				|  |  |         String nowConfirmedSql = "SELECT\n" +
 | 
	
		
			
				|  |  |                 "\tCOUNT(1) AS confirmedTotal\n" +
 | 
	
		
			
				|  |  |                 "FROM\n" +
 | 
	
		
			
				|  |  |                 "\tMID_CDC_CASE_INFO\n" +
 | 
	
		
			
				|  |  |                 "WHERE\n" +
 | 
	
		
			
				|  |  |                 "\tdim_cond IS NOT NULL\n" +
 | 
	
		
			
				|  |  |                 "AND dim_cond NOT IN ('6', '7')\n" +
 | 
	
		
			
				|  |  |                 "AND dim_input_case = '99'\n" +
 | 
	
		
			
				|  |  |                 "AND DIM_CASE_TYPE = '1'\n" +
 | 
	
		
			
				|  |  |                 "and LOCAL_CASE_FLAG ='是'";
 | 
	
		
			
				|  |  |         logger.info("nowConfirmedSql"+nowConfirmedSql);
 | 
	
		
			
				|  |  |         Map<String,Object> confirmedMap = jdbcTemplate.queryForMap(nowConfirmedSql);
 | 
	
		
			
				|  |  |         Integer newConfirmedTotal = 0;
 | 
	
		
			
				|  |  |         if (confirmedMap!=null){
 | 
	
		
			
				|  |  |             newConfirmedTotal=Integer.parseInt(confirmedMap.get("confirmedTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //新增本土
 | 
	
		
			
				|  |  |         String newHomeSql = "select COUNT(1) as newHomeTotal from MID_CDC_CASE_INFO where dim_cond is not null AND dim_input_case = '99' AND dim_cond not in('6','7') AND DIM_CASE_TYPE = '1' and LOCAL_CASE_FLAG ='是' and diag_time >='"+ DateUtil.getStringDateShort()+" 00:00:00"+"'"+" and diag_time >='"+ DateUtil.getStringDateShort()+" 23:59:59"+"'";
 | 
	
		
			
				|  |  |         logger.info("newHomeSql"+newHomeSql);
 | 
	
		
			
				|  |  |         Map<String,Object> newHomeMap = jdbcTemplate.queryForMap(newHomeSql);
 | 
	
		
			
				|  |  |         Integer newHomeTotal = 0;
 | 
	
		
			
				|  |  |         if (newHomeMap!=null){
 | 
	
		
			
				|  |  |             newHomeTotal=Integer.parseInt(newHomeMap.get("newHomeTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //新增无症状
 | 
	
		
			
				|  |  |         String newAsymptomaticSql = "select COUNT(1) as newAsymptomaticTotal from MID_CDC_CASE_INFO where dim_cond is not null AND dim_cond in('0') AND dim_input_case = '99' AND DIM_CASE_TYPE = '1' and LOCAL_CASE_FLAG ='是' and diag_time >='"+ DateUtil.getStringDateShort()+" 00:00:00"+"'"+" and diag_time >='"+ DateUtil.getStringDateShort()+" 23:59:59"+"'";
 | 
	
		
			
				|  |  |         logger.info("newAsymptomaticSql"+newAsymptomaticSql);
 | 
	
		
			
				|  |  |         Map<String,Object> newAsymptomaticeMap = jdbcTemplate.queryForMap(newAsymptomaticSql);
 | 
	
		
			
				|  |  |         Integer newAsymptomaticTotal = 0;
 | 
	
		
			
				|  |  |         if (newAsymptomaticeMap!=null){
 | 
	
		
			
				|  |  |             newAsymptomaticTotal=Integer.parseInt(newAsymptomaticeMap.get("newAsymptomaticTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //累计确诊
 | 
	
		
			
				|  |  |         String confirmedTotalSql = "select COUNT(1) as confirmedTotal from MID_CDC_CASE_INFO where  DIM_CASE_TYPE = '1' and LOCAL_CASE_FLAG ='是' AND dim_input_case = '99' AND dim_cond is not null ";
 | 
	
		
			
				|  |  |         logger.info("confirmedTotalSql"+confirmedTotalSql);
 | 
	
		
			
				|  |  |         Map<String,Object> confirmedTotalMap = jdbcTemplate.queryForMap(confirmedTotalSql);
 | 
	
		
			
				|  |  |         Integer confirmedTotalTotal = 0;
 | 
	
		
			
				|  |  |         if (confirmedTotalMap!=null){
 | 
	
		
			
				|  |  |             confirmedTotalTotal=Integer.parseInt(confirmedTotalMap.get("confirmedTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //累计治愈
 | 
	
		
			
				|  |  |         String cureTotalSql = "select COUNT(1) as cureTotal from MID_CDC_CASE_INFO where dim_cond is not null AND DIM_CASE_TYPE = '1' and LOCAL_CASE_FLAG ='是' AND dim_input_case = '99' AND dim_cond in('6') ";
 | 
	
		
			
				|  |  |         logger.info("cureTotalSql"+cureTotalSql);
 | 
	
		
			
				|  |  |         Map<String,Object> cureTotalMap = jdbcTemplate.queryForMap(cureTotalSql);
 | 
	
		
			
				|  |  |         Integer cureTotalTotal = 0;
 | 
	
		
			
				|  |  |         if (cureTotalMap!=null){
 | 
	
		
			
				|  |  |             cureTotalTotal=Integer.parseInt(cureTotalMap.get("cureTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //累计死亡
 | 
	
		
			
				|  |  |         String deathTotalSql = "select COUNT(1) as deathTotal from MID_CDC_CASE_INFO where dim_cond is not null AND DIM_CASE_TYPE = '1' and LOCAL_CASE_FLAG ='是' AND dim_input_case = '99' AND dim_cond in('7') ";
 | 
	
		
			
				|  |  |         logger.info("deathTotalSql"+deathTotalSql);
 | 
	
		
			
				|  |  |         Map<String,Object> deathTotalMap = jdbcTemplate.queryForMap(deathTotalSql);
 | 
	
		
			
				|  |  |         Integer deathTotalTotal = 0;
 | 
	
		
			
				|  |  |         if (deathTotalMap!=null){
 | 
	
		
			
				|  |  |             deathTotalTotal=Integer.parseInt(deathTotalMap.get("deathTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         object.put("confirmed",newConfirmedTotal);//现有确诊
 | 
	
		
			
				|  |  |         object.put("newHome",newHomeTotal);//新增本土
 | 
	
		
			
				|  |  |         object.put("newAsymptomatic",newAsymptomaticTotal);//新增无症状;
 | 
	
		
			
				|  |  |         object.put("confirmedTotal",confirmedTotalTotal);//累计确诊
 | 
	
		
			
				|  |  |         object.put("cureTotal",cureTotalTotal);//累计治愈
 | 
	
		
			
				|  |  |         object.put("deathTotal",deathTotalTotal);//累计死亡
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public JSONObject yqfkStatisticsTail(String startTime,String endTime){
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 疫情防控底部-密接次接数据统计
 | 
	
		
			
				|  |  |      * @param patientId
 | 
	
		
			
				|  |  |      * @param endTime
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject yqfkStatisticsTail(String patientId,String endTime){
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         String patientSql = "";
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(patientId)){
 | 
	
		
			
				|  |  |             String[] str= patientId.split(",");
 | 
	
		
			
				|  |  |             String patientList = "";
 | 
	
		
			
				|  |  |             for (int i=0;i<str.length;i++){
 | 
	
		
			
				|  |  |                 patientList+="'"+str[i]+"',";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (StringUtils.isNoneBlank(patientList)){
 | 
	
		
			
				|  |  |                 patientList=patientList.substring(0,patientList.length()-1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             patientSql=" AND PATIENT_ID IN ("+patientList+")   ";
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             patientSql = "  AND PATIENT_ID IN (SELECT md.PATIENT_ID FROM MID_CDC_CASE_INFO md where  md.DIM_CASE_TYPE IN ('1','3'))   ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject MjObject = new JSONObject();//在厦密接
 | 
	
		
			
				|  |  |         MjObject.put("zyTotal","");//正转运
 | 
	
		
			
				|  |  |         MjObject.put("jdTotal","");//在酒店/已采核酸
 | 
	
		
			
				|  |  |         MjObject.put("dlsTotal","");//待落实
 | 
	
		
			
				|  |  |         MjObject.put("total","");//总计
 | 
	
		
			
				|  |  |         //密接已隔离
 | 
	
		
			
				|  |  |         String mjGlSql = "select count(1) as \"glTotal\" from MID_CDC_CCC_INFO where  dim_track_stat=1 AND dim_mg_mode=1"+patientSql;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         logger.info("mjGlSql"+mjGlSql);
 | 
	
		
			
				|  |  |         Map<String,Object> mjglMap= jdbcTemplate.queryForMap(mjGlSql);
 | 
	
		
			
				|  |  |         Integer mjglTotal = 0;
 | 
	
		
			
				|  |  |         if (mjglMap!=null){
 | 
	
		
			
				|  |  |             mjglTotal = Integer.parseInt(mjglMap.get("glTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //县区列表
 | 
	
		
			
				|  |  |         String countySqlList = "select DIM_COUNTY as \"code\",DIM_COUNTY_NAME as \"area\" from DIM_COUNTY_DICT where DIM_AREA = '350200'";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> countySqlMapList = jdbcTemplate.queryForList(countySqlList);
 | 
	
		
			
				|  |  |         logger.info("countySqlList"+countySqlList);
 | 
	
		
			
				|  |  |         //密接已隔离列表
 | 
	
		
			
				|  |  |         String mjGlSqlList = "select dim_county,COUNT(1) as total  from MID_CDC_CCC_INFO  where  dim_track_stat=1 and dim_county is not NULL AND dim_mg_mode=1 "+patientSql+"  GROUP BY dim_county ORDER BY COUNT(1) DESC   ";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> mjGlSqlMapList = jdbcTemplate.queryForList(mjGlSqlList);
 | 
	
		
			
				|  |  |         //密接待落实列表
 | 
	
		
			
				|  |  |         String mjDlsSqlList = "select dim_county,COUNT(1) as total  from MID_CDC_CCC_INFO  where  dim_imp_stat NOT IN('1') and dim_imp_stat is not NULL AND dim_mg_mode=1 "+patientSql+"  GROUP BY dim_county ORDER BY COUNT(1) DESC   ";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> mjDlsSqlMapList = jdbcTemplate.queryForList(mjDlsSqlList);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String,Object>> mjList = countySqlMapList;
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:mjList){
 | 
	
		
			
				|  |  |             String code = map.get("code").toString();
 | 
	
		
			
				|  |  |             for (Map<String,Object> map1:mjGlSqlMapList){
 | 
	
		
			
				|  |  |                 String dimCounty = map1.get("dim_county").toString();
 | 
	
		
			
				|  |  |                 if (code.equalsIgnoreCase(dimCounty)){
 | 
	
		
			
				|  |  |                     map.put("ygl",map1.get("total"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:mjList){
 | 
	
		
			
				|  |  |             String code = map.get("code").toString();
 | 
	
		
			
				|  |  |             for (Map<String,Object> map1:mjDlsSqlMapList){
 | 
	
		
			
				|  |  |                 String dimCounty = map1.get("dim_county").toString();
 | 
	
		
			
				|  |  |                 if (code.equalsIgnoreCase(dimCounty)){
 | 
	
		
			
				|  |  |                     map.put("dls",map1.get("total"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:mjList){
 | 
	
		
			
				|  |  |             Integer total = 0;
 | 
	
		
			
				|  |  |             if (map.get("ygl")!=null){
 | 
	
		
			
				|  |  |                 Integer ygl = Integer.parseInt(map.get("ygl").toString());
 | 
	
		
			
				|  |  |                 if (map.get("dls")!=null){
 | 
	
		
			
				|  |  |                     Integer dls = Integer.parseInt(map.get("dls").toString());
 | 
	
		
			
				|  |  |                     total = ygl+dls;
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     map.put("dls",0);
 | 
	
		
			
				|  |  |                     total = ygl;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 map.put("ygl",0);
 | 
	
		
			
				|  |  |                 if (map.get("dls")!=null){
 | 
	
		
			
				|  |  |                     Integer dls = Integer.parseInt(map.get("dls").toString());
 | 
	
		
			
				|  |  |                     total = dls;
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     map.put("dls",0);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             map.put("total",total);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //密接待落实
 | 
	
		
			
				|  |  |         String mjDlsSql = "select count(1) as \"dlsTotal\" from MID_CDC_CCC_INFO where dim_imp_stat NOT IN('1') and dim_imp_stat is not NULL AND dim_mg_mode=1 "+patientSql;
 | 
	
		
			
				|  |  |         logger.info("mjDlsSql"+mjDlsSql);
 | 
	
		
			
				|  |  |         Map<String,Object> mjdlsMap= jdbcTemplate.queryForMap(mjDlsSql);
 | 
	
		
			
				|  |  |         Integer mjDlsTotal = 0;
 | 
	
		
			
				|  |  |         if (mjdlsMap!=null){
 | 
	
		
			
				|  |  |             mjDlsTotal = Integer.parseInt(mjdlsMap.get("dlsTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         /*   MjObject.put("zyTotal","");//正转运*/
 | 
	
		
			
				|  |  |         MjObject.put("ygl",mjglTotal);//已隔离
 | 
	
		
			
				|  |  |         MjObject.put("dls",mjDlsTotal);//待落实
 | 
	
		
			
				|  |  |         MjObject.put("total",mjglTotal+mjDlsTotal);//总计
 | 
	
		
			
				|  |  |         MjObject.put("list",mjList);//列表
 | 
	
		
			
				|  |  |         //次密接已隔离
 | 
	
		
			
				|  |  |         String cmglSql = "select count(1) as \"glTotal\" from MID_CDC_CCC_SED_INFO where dim_track_stat=1 AND dim_mg_mode=1 "+patientSql;;
 | 
	
		
			
				|  |  |         logger.info("cmglSql"+cmglSql);
 | 
	
		
			
				|  |  |         Map<String,Object> cmglMap= jdbcTemplate.queryForMap(cmglSql);
 | 
	
		
			
				|  |  |         Integer cmglTotal = 0;
 | 
	
		
			
				|  |  |         if (cmglMap!=null){
 | 
	
		
			
				|  |  |             cmglTotal = Integer.parseInt(cmglMap.get("glTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //次密接待落实
 | 
	
		
			
				|  |  |         String cmDlsSql = "select count(1) as \"dlsTotal\" from MID_CDC_CCC_SED_INFO where dim_imp_stat NOT IN('1') and dim_imp_stat is not NULL AND dim_mg_mode=1 "+patientSql;;
 | 
	
		
			
				|  |  |         logger.info("cmDlsSql"+cmDlsSql);
 | 
	
		
			
				|  |  |         Map<String,Object> cmdlsMap= jdbcTemplate.queryForMap(cmDlsSql);
 | 
	
		
			
				|  |  |         Integer cmDlsTotal = 0;
 | 
	
		
			
				|  |  |         if (cmdlsMap!=null){
 | 
	
		
			
				|  |  |             cmDlsTotal = Integer.parseInt(cmdlsMap.get("dlsTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //县区列表
 | 
	
		
			
				|  |  |         String cmCountySqlList = "select DIM_COUNTY as \"code\",DIM_COUNTY_NAME as \"area\" from DIM_COUNTY_DICT where DIM_AREA = '350200'";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> cmCountySqlMapList = jdbcTemplate.queryForList(cmCountySqlList);
 | 
	
		
			
				|  |  |         logger.info("cmCountySqlMapList"+cmCountySqlMapList);
 | 
	
		
			
				|  |  |         //次密接已隔离列表
 | 
	
		
			
				|  |  |         String cmGlSqlList = "select dim_county,COUNT(1) as total  from MID_CDC_CCC_SED_INFO  where  dim_track_stat=1 and dim_county is not NULL AND dim_mg_mode=1 "+patientSql+"  GROUP BY dim_county ORDER BY COUNT(1) DESC   ";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> cmGlSqlMapList = jdbcTemplate.queryForList(cmGlSqlList);
 | 
	
		
			
				|  |  |         //次密接待落实列表
 | 
	
		
			
				|  |  |         String cmDlsSqlList = "select dim_county,COUNT(1) as total  from MID_CDC_CCC_SED_INFO  where  dim_imp_stat NOT IN('1') and dim_imp_stat is not NULL AND dim_mg_mode=1 "+patientSql+"  GROUP BY dim_county ORDER BY COUNT(1) DESC   ";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> cmDlsSqlMapList = jdbcTemplate.queryForList(cmDlsSqlList);
 | 
	
		
			
				|  |  |         List<Map<String,Object>> cmList = cmCountySqlMapList;
 | 
	
		
			
				|  |  |         logger.info("cmList"+cmList);
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:cmList){
 | 
	
		
			
				|  |  |             String code = map.get("code").toString();
 | 
	
		
			
				|  |  |             for (Map<String,Object> map1:cmGlSqlMapList){
 | 
	
		
			
				|  |  |                 String dimCounty = map1.get("dim_county").toString();
 | 
	
		
			
				|  |  |                 if (code.equalsIgnoreCase(dimCounty)){
 | 
	
		
			
				|  |  |                     map.put("ygl",map1.get("total"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:cmList){
 | 
	
		
			
				|  |  |             String code = map.get("code").toString();
 | 
	
		
			
				|  |  |             for (Map<String,Object> map1:cmDlsSqlMapList){
 | 
	
		
			
				|  |  |                 String dimCounty = map1.get("dim_county").toString();
 | 
	
		
			
				|  |  |                 if (code.equalsIgnoreCase(dimCounty)){
 | 
	
		
			
				|  |  |                     map.put("dls",map1.get("total"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:cmList){
 | 
	
		
			
				|  |  |             Integer total = 0;
 | 
	
		
			
				|  |  |             if (map.get("ygl")!=null){
 | 
	
		
			
				|  |  |                 Integer ygl = Integer.parseInt(map.get("ygl").toString());
 | 
	
		
			
				|  |  |                 if (map.get("dls")!=null){
 | 
	
		
			
				|  |  |                     Integer dls = Integer.parseInt(map.get("dls").toString());
 | 
	
		
			
				|  |  |                     total = ygl+dls;
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     map.put("dls",0);
 | 
	
		
			
				|  |  |                     total = ygl;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 map.put("ygl",0);
 | 
	
		
			
				|  |  |                 if (map.get("dls")!=null){
 | 
	
		
			
				|  |  |                     Integer dls = Integer.parseInt(map.get("dls").toString());
 | 
	
		
			
				|  |  |                     total = dls;
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     map.put("dls",0);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             map.put("total",total);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject CmObject = new JSONObject();//在厦次密
 | 
	
		
			
				|  |  |         CmObject.put("zyTotal","");//正转运
 | 
	
		
			
				|  |  |         CmObject.put("jdTotal","");//在酒店/已采核酸
 | 
	
		
			
				|  |  |         CmObject.put("dlsTotal","");//待落实
 | 
	
		
			
				|  |  |         CmObject.put("total","");//总计
 | 
	
		
			
				|  |  |       /*  CmObject.put("zyTotal","");//正转运*/
 | 
	
		
			
				|  |  |         CmObject.put("ygl",cmglTotal);//已隔离
 | 
	
		
			
				|  |  |         CmObject.put("dls",cmDlsTotal);//待落实
 | 
	
		
			
				|  |  |         CmObject.put("total",cmglTotal+cmDlsTotal);//总计
 | 
	
		
			
				|  |  |         CmObject.put("list",cmList);//列表
 | 
	
		
			
				|  |  |         //一般密接已隔离
 | 
	
		
			
				|  |  |         String ybglSql = "select count(1) as \"glTotal\" from MID_KEYNOTE_CROWD_INFO where dim_track_stat=1 AND dim_mg_mode=1 "+patientSql;
 | 
	
		
			
				|  |  |         logger.info("ybglSql"+ybglSql);
 | 
	
		
			
				|  |  |         Map<String,Object> ybglMap= jdbcTemplate.queryForMap(ybglSql);
 | 
	
		
			
				|  |  |         Integer ybglTotal = 0;
 | 
	
		
			
				|  |  |         if (ybglMap!=null){
 | 
	
		
			
				|  |  |             ybglTotal = Integer.parseInt(ybglMap.get("glTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //一般密接待落实
 | 
	
		
			
				|  |  |         String ybDlsSql = "select count(1) as \"dlsTotal\" from MID_KEYNOTE_CROWD_INFO where dim_imp_stat NOT IN('1') and dim_imp_stat is not NULL AND dim_mg_mode=1 "+patientSql;;
 | 
	
		
			
				|  |  |         logger.info("ybDlsSql"+ybDlsSql);
 | 
	
		
			
				|  |  |         Map<String,Object> ybdlsMap= jdbcTemplate.queryForMap(ybDlsSql);
 | 
	
		
			
				|  |  |         Integer ybDlsTotal = 0;
 | 
	
		
			
				|  |  |         if (ybdlsMap!=null){
 | 
	
		
			
				|  |  |             ybDlsTotal = Integer.parseInt(ybdlsMap.get("dlsTotal").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //县区列表
 | 
	
		
			
				|  |  |         String ybCountySqlList = "select DIM_COUNTY as \"code\",DIM_COUNTY_NAME as \"area\" from DIM_COUNTY_DICT where DIM_AREA = '350200'";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> ybCountySqlMapList = jdbcTemplate.queryForList(ybCountySqlList);
 | 
	
		
			
				|  |  |         logger.info("ybCountySqlMapList"+ybCountySqlList);
 | 
	
		
			
				|  |  |         //次密接已隔离列表
 | 
	
		
			
				|  |  |         String ybGlSqlList = "select dim_county,COUNT(1) as total  from MID_KEYNOTE_CROWD_INFO  where  dim_track_stat=1 and dim_county is not NULL AND dim_mg_mode=1 "+patientSql+"  GROUP BY dim_county ORDER BY COUNT(1) DESC   ";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> ybGlSqlMapList = jdbcTemplate.queryForList(ybGlSqlList);
 | 
	
		
			
				|  |  |         //次密接待落实列表
 | 
	
		
			
				|  |  |         String ybDlsSqlList = "select dim_county,COUNT(1) as total  from MID_KEYNOTE_CROWD_INFO  where  dim_imp_stat NOT IN('1') and dim_imp_stat is not NULL AND dim_mg_mode=1 "+patientSql+"  GROUP BY dim_county ORDER BY COUNT(1) DESC   ";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> ybDlsSqlMapList = jdbcTemplate.queryForList(ybDlsSqlList);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String,Object>> ybList = ybCountySqlMapList;
 | 
	
		
			
				|  |  |         logger.info("ybList="+ybList);
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:ybList){
 | 
	
		
			
				|  |  |             String code = map.get("code").toString();
 | 
	
		
			
				|  |  |             for (Map<String,Object> map1:ybGlSqlMapList){
 | 
	
		
			
				|  |  |                 String dimCounty = map1.get("dim_county").toString();
 | 
	
		
			
				|  |  |                 if (code.equalsIgnoreCase(dimCounty)){
 | 
	
		
			
				|  |  |                     map.put("ygl",map1.get("total"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:ybList){
 | 
	
		
			
				|  |  |             String code = map.get("code").toString();
 | 
	
		
			
				|  |  |             for (Map<String,Object> map1:ybDlsSqlMapList){
 | 
	
		
			
				|  |  |                 String dimCounty = map1.get("dim_county").toString();
 | 
	
		
			
				|  |  |                 if (code.equalsIgnoreCase(dimCounty)){
 | 
	
		
			
				|  |  |                     map.put("dls",map1.get("total"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (Map<String,Object> map:ybList){
 | 
	
		
			
				|  |  |             Integer total = 0;
 | 
	
		
			
				|  |  |             if (map.get("ygl")!=null){
 | 
	
		
			
				|  |  |                 Integer ygl = Integer.parseInt(map.get("ygl").toString());
 | 
	
		
			
				|  |  |                 if (map.get("dls")!=null){
 | 
	
		
			
				|  |  |                     Integer dls = Integer.parseInt(map.get("dls").toString());
 | 
	
		
			
				|  |  |                     total = ygl+dls;
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     map.put("dls",0);
 | 
	
		
			
				|  |  |                     total = ygl;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 map.put("ygl",0);
 | 
	
		
			
				|  |  |                 if (map.get("dls")!=null){
 | 
	
		
			
				|  |  |                     Integer dls = Integer.parseInt(map.get("dls").toString());
 | 
	
		
			
				|  |  |                     total = dls;
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     map.put("dls",0);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             map.put("total",total);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject ybObject = new JSONObject();//在厦一般接触者
 | 
	
		
			
				|  |  |         ybObject.put("zyTotal","");//正转运
 | 
	
		
			
				|  |  |         ybObject.put("jdTotal","");//在酒店/已采核酸
 | 
	
		
			
				|  |  |         ybObject.put("dlsTotal","");//待落实
 | 
	
		
			
				|  |  |         ybObject.put("total","");//总计
 | 
	
		
			
				|  |  |         object.put("MjObject",MjObject);
 | 
	
		
			
				|  |  |         object.put("CmObject", CmObject);
 | 
	
		
			
				|  |  |         object.put("ybObject",ybObject);
 | 
	
		
			
				|  |  | /*        ybObject.put("zyTotal","");//正转运*/
 | 
	
		
			
				|  |  |         ybObject.put("ygl",ybglTotal);//已隔离
 | 
	
		
			
				|  |  |         ybObject.put("dls",ybDlsTotal);//待落实
 | 
	
		
			
				|  |  |         ybObject.put("total",ybDlsTotal+ybglTotal);//总计
 | 
	
		
			
				|  |  |         ybObject.put("list",ybList);
 | 
	
		
			
				|  |  |         object.put("zxmj",MjObject);
 | 
	
		
			
				|  |  |         object.put("zxcm", CmObject);
 | 
	
		
			
				|  |  |         object.put("zxybjcz",ybObject);
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public  List<Map<String, Object>> confirmedList(){
 | 
	
		
			
				|  |  |         String confirmedListSql = "select PATIENT_ID as \"patientId\",PATIENT_NAME as \"patientName\",PATIENT_SEX as \"patientSex\",PATIENT_AGE as \"patientAge\",DIAG_TIME as \"diagTime\" from MID_CDC_CASE_INFO ";
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 确诊人数详情
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @param flag 1、本地 2、外地协查,3、境外输入,4全部,5、本地阳性、6、境外阳性
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public  List<Map<String, Object>> confirmedList(String name,String flag){
 | 
	
		
			
				|  |  |         String localSql = "";
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(flag)&&flag!=null){
 | 
	
		
			
				|  |  |             if (flag.equalsIgnoreCase("1")){//本地
 | 
	
		
			
				|  |  |                 localSql=" and  md.LOCAL_CASE_FLAG = '是' AND md.dim_input_case = '99' and md.DIM_CASE_TYPE = '1'  ";
 | 
	
		
			
				|  |  |             }else if (flag.equalsIgnoreCase("2")){//外地协查
 | 
	
		
			
				|  |  |                 localSql=" and  md.LOCAL_CASE_FLAG = '否'  and md.DIM_CASE_TYPE = '1'  ";
 | 
	
		
			
				|  |  |             }else if (flag.equalsIgnoreCase("3")){//境外输入
 | 
	
		
			
				|  |  |                 localSql=" and  md.LOCAL_CASE_FLAG = '是'  and md.DIM_CASE_TYPE = '1' AND md.dim_input_case != '99' ";
 | 
	
		
			
				|  |  |             }else if (flag.equalsIgnoreCase("4")){//全部
 | 
	
		
			
				|  |  |                 localSql=" and md.DIM_CASE_TYPE IN ('1','3') ";
 | 
	
		
			
				|  |  |             }else if (flag.equalsIgnoreCase("5")){//本地阳性
 | 
	
		
			
				|  |  |                 localSql=" and md.DIM_CASE_TYPE IN ('3') and  md.LOCAL_CASE_FLAG = '是' AND md.dim_input_case = '99' ";
 | 
	
		
			
				|  |  |             }else if (flag.equalsIgnoreCase("6")){//境外阳性
 | 
	
		
			
				|  |  |                 localSql=" and md.DIM_CASE_TYPE IN ('3') and  md.LOCAL_CASE_FLAG = '是' AND md.dim_input_case != '99' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String confirmedListSql = "SELECT\n" +
 | 
	
		
			
				|  |  |                 "\tmd.PATIENT_ID AS \"patientId\",\n" +
 | 
	
		
			
				|  |  |                 "\tmd.PATIENT_NAME AS \"patientName\",\n" +
 | 
	
		
			
				|  |  |                 "\tmd.PATIENT_SEX AS \"patientSex\",\n" +
 | 
	
		
			
				|  |  |                 "\tmd.PATIENT_AGE AS \"patientAge\",\n" +
 | 
	
		
			
				|  |  |                 "\tmd.DIAG_TIME AS \"diagTime\",\n" +
 | 
	
		
			
				|  |  |                 "\tmd.DIM_COND AS \"dimCond\",\n" +
 | 
	
		
			
				|  |  |                 "\tp.DIM_PROV_NAME AS \"dimProvName\",\n" +
 | 
	
		
			
				|  |  |                 "\ta.DIM_AREA_NAME AS \"dimAreaName\",\n" +
 | 
	
		
			
				|  |  |                 "\tmj.total as \"mjTotal\",\n" +
 | 
	
		
			
				|  |  |                 "\tcm.total as \"cmjTotal\",\n" +
 | 
	
		
			
				|  |  |                 "\tyb.total as \"ybmjTotal\"\n" +
 | 
	
		
			
				|  |  |                 "FROM\n" +
 | 
	
		
			
				|  |  |                 "\tMID_CDC_CASE_INFO md\n" +
 | 
	
		
			
				|  |  |                 "LEFT JOIN DIM_PROV_DICT p ON p.DIM_PROV = md.DIM_CS_PROV\n" +
 | 
	
		
			
				|  |  |                 "LEFT JOIN DIM_AREA_DICT a ON a.DIM_AREA = md.DIM_CS_AREA\n" +
 | 
	
		
			
				|  |  |                 "LEFT JOIN MID_CDC_CCC_INFO_COUNT mj ON mj.patientId = md.PATIENT_ID\n" +
 | 
	
		
			
				|  |  |                 "LEFT JOIN MID_CDC_CCC_SED_INFO_COUNT cm ON cm.patientId = md.PATIENT_ID\n" +
 | 
	
		
			
				|  |  |                 "LEFT JOIN MID_KEYNOTE_CROWD_INFO_COUNT yb ON yb.patientId = md.PATIENT_ID" +
 | 
	
		
			
				|  |  |                 " WHERE\n" +
 | 
	
		
			
				|  |  |                 "   1=1 "+localSql;
 | 
	
		
			
				|  |  |         if (name!=null&&name!=""){
 | 
	
		
			
				|  |  |             confirmedListSql =confirmedListSql+" and md.PATIENT_NAME LIKE '%"+name+"%'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("confirmedListSql"+confirmedListSql);
 | 
	
		
			
				|  |  |         List<Map<String, Object>> confirmedList = jdbcTemplate.queryForList(confirmedListSql);
 | 
	
		
			
				|  |  |         if (confirmedList!=null&&confirmedList.size()!=0){
 | 
	
		
			
				|  |  |       /*  if (confirmedList!=null&&confirmedList.size()!=0){
 | 
	
		
			
				|  |  |             for (Map<String,Object> map:confirmedList){
 | 
	
		
			
				|  |  |                 String patientId = map.get("patientId").toString();
 | 
	
		
			
				|  |  |                 //密接人数计算
 | 
	
		
			
				|  |  |                 String mjTotalSql = "select count(1) as total from MID_CDC_CCC_INFO where PATIENT_ID='"+patientId+"'";
 | 
	
		
			
				|  |  |                 logger.info("mjTotalSql"+mjTotalSql);
 | 
	
		
			
				|  |  |                 List<Map<String, Object>> mjList = jdbcTemplate.queryForList(mjTotalSql);
 | 
	
		
			
				|  |  |                 Integer mjTotal = 0;//密接人数
 | 
	
		
			
				|  |  |                 if (mjList!=null&&mjList.size()!=0){
 | 
	
	
		
			
				|  | @ -86,6 +424,7 @@ public class YqfkService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //次密接人数计算
 | 
	
		
			
				|  |  |                 String cmjTotalSql = "select count(1) as total from MID_CDC_CCC_SED_INFO where PATIENT_ID='"+patientId+"'";
 | 
	
		
			
				|  |  |                 logger.info("cmjTotalSql"+cmjTotalSql);
 | 
	
		
			
				|  |  |                 List<Map<String, Object>> cmjList = jdbcTemplate.queryForList(cmjTotalSql);
 | 
	
		
			
				|  |  |                 Integer cmjTotal = 0;//密接人数
 | 
	
		
			
				|  |  |                 if (cmjList!=null&&cmjList.size()!=0){
 | 
	
	
		
			
				|  | @ -96,6 +435,7 @@ public class YqfkService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //一般接触人数计算
 | 
	
		
			
				|  |  |                 String ybmjTotalSql = "select count(1) as total from MID_KEYNOTE_CROWD_INFO where PATIENT_ID='"+patientId+"'";
 | 
	
		
			
				|  |  |                 logger.info("ybmjTotalSql"+ybmjTotalSql);
 | 
	
		
			
				|  |  |                 List<Map<String, Object>> ybmjList = jdbcTemplate.queryForList(ybmjTotalSql);
 | 
	
		
			
				|  |  |                 Integer ybmjTotal = 0;//密接人数
 | 
	
		
			
				|  |  |                 if (ybmjList!=null&&ybmjList.size()!=0){
 | 
	
	
		
			
				|  | @ -103,7 +443,7 @@ public class YqfkService {
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 map.put("ybmjTotal",ybmjTotal);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         }*/
 | 
	
		
			
				|  |  |         return confirmedList;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 |