| 
					
				 | 
			
			
				@ -3712,8 +3712,8 @@ public class StatisticsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(name)) nameSql = " AND p.name LIKE '%" + name + "%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(deviceSn)) deviceSnSql = " AND pd.device_sn = '" + deviceSn + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String filter=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqltmp = " SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' OR dict_name ='jkzl_helper' OR dict_name= 'jkzl_olderRelative' OR dict_name ='jkzl_user') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String filter="AND pd.USER NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_user' OR dict_name = 'jkzl_older' ) AND dict_code IS NOT NULL ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*String sqltmp = " SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' OR dict_name ='jkzl_helper' OR dict_name= 'jkzl_olderRelative' OR dict_name ='jkzl_user') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(listtmp.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes")); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3721,46 +3721,58 @@ public class StatisticsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                orgCodes = orgCodes.replaceAll(",","','"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                filter = " and p.id not in ('"+orgCodes+"') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        page = page>0?page-1:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String deviceSql = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if ("jk".equals(type)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            categoryCodeSql = " AND ( pd.category_code = 1 OR pd.category_code = 2 )"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            categoryCodeSql = " AND pd.device_type = 0 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(categoryCode)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            deviceSql = "SELECT DISTINCT  p.id AS patient, pd.id as id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,'健康设备' AS deviceType,p.`name`," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " p.mobile,p.phone,dd.photo,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            deviceSql = "SELECT p.id AS patient,pd.id AS id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,dd.photo,'健康设备' AS deviceType,p.`name`,p.mobile,p.phone,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " pd.del = 0 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql = "SELECT count(DISTINCT pd.id) FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " pd.del = 0 " +filter+ nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN base_patient p ON pd.USER = p.id AND pd.del = 0 AND p.del = 1    " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql = "SELECT count(pd.id) FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN base_patient p ON pd.USER = p.id  AND pd.del = 0  AND p.del = 1  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if ("af".equals(type) || StringUtils.isBlank(type)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            categoryCodeSql = " AND pd.category_code > 2 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            categoryCodeSql = " AND pd.device_type = 1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(categoryCode)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            deviceSql = " SELECT DISTINCT  p.id AS patient,pd.id AS id ,pd.device_name AS deviceName,pd.device_sn AS deviceSn,'安防设备' AS deviceType,p.`name`,p.mobile,p.phone,dd.photo,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            deviceSql = "SELECT p.id AS patient,pd.id AS id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,dd.photo,'安防设备' AS deviceType,p.`name`,p.mobile,p.phone,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " pd.del = 0 " +filter+nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN base_patient p ON pd.USER = p.id AND pd.del = 0 AND p.del = 1    " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql = "SELECT count(pd.id) FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " INNER JOIN base_patient p ON pd.USER = p.id  AND pd.del = 0  AND p.del = 1  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            totalSql = " SELECT count(DISTINCT pd.id) FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " pd.del = 0 " +filter+nameSql + deviceSnSql + categoryCodeSql + contactStatusSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        deviceSql += " GROUP BY id LIMIT " + page*size + "," + size + " "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        deviceSql += " GROUP BY pd.id LIMIT " + page*size + "," + size + " "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> deviceList = jdbcTemplate.queryForList(deviceSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> list = jdbcTemplate.queryForList(totalSql, String.class); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3840,6 +3852,8 @@ public class StatisticsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "                where pd.device_type = "+type+"  AND EXISTS(SELECT 1 FROM device_data_push_log pl WHERE pl.device_sn = pd.device_sn "+deviceCategorySql+" AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= pl.create_time ) AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //设备类型总数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String deviceCodeTotalSql ="SELECT count(DISTINCT device_code) FROM wlyy_devices WHERE (device_code IS NOT NULL OR device_code <> '') AND category_code = '"+deviceCategory+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Integer> total = jdbcTemplate.queryForList(typeTotalSql, Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("typeTotal",total.get(0)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -3850,9 +3864,10 @@ public class StatisticsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        total = jdbcTemplate.queryForList(lineDeviceSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("lineDevice",total.get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        total = jdbcTemplate.queryForList(sevenDayUseSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer deviceCodeTotal = jdbcTemplate.queryForObject(deviceCodeTotalSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Float num = 0F; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (total.size()>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            num= (float)total.get(0)/(float)Integer.parseInt(jsonObject.get("deviceTotal").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            num= (float)total.get(0)/(float)deviceCodeTotal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("sevenDayUse",num*100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 |