| 
					
				 | 
			
			
				@ -0,0 +1,345 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.iot.service.device; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.iot.service.common.OrgUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.iot.service.useragent.UserAgent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.iot.device.DeviceHealthIndexVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.iot.device.WlyyDeviceVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.iot.device.WlyyHealthStandardVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.iot.device.WlyyPatientDeviceVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.MixEnvelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.rm.iot.IotRequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.PageImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.PageRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Pageable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.BeanPropertyRowMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by ysj on 2020/07/29 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * device数据库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class WlyyDeviceService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 血糖餐前最小值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_ST_MIN_BEFORE = 4;//3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 血糖餐前最大值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_ST_MAX_BEFORE = 7;//6.1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 血糖餐后最小值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_ST_MIN_AFTER = 4;//4.4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 血糖餐后最大值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_ST_MAX_AFTER = 11.1;//7.8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 舒张压最小值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_SZY_MIN = 60;//60 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 舒张压最大值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_SZY_MAX = 90;//89 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 收缩压最小值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_SSY_MIN = 90;//90 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // 收缩压最大值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final double HEALTH_STANDARD_SSY_MAX = 140;//139 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private JdbcTemplate jdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private UserAgent userAgent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private OrgUserService orgUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop<WlyyDeviceVO,WlyyDeviceVO> searchDeviceList(String deviceName,String deviceCode,String orgName,String linkman,Integer page,Integer pageSize){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select * from device.wlyy_devices where 1=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(orgName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql +=" and org_name like '%"+orgName+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(deviceCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql +=" and device_code = '"+deviceCode+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(deviceName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql +=" and device_name like '%"+deviceName+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(linkman)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql +=" and linkmam like '%"+linkman+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //数据权限过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> orgList = orgUserService.getUserOrgNameById(userAgent.getUID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!orgList.contains(userAgent.commonHospitalName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and org_name in ("+orgUserService.getUserOrg(orgList)+") "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += " order by id desc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long count = Long.valueOf(jdbcTemplate.queryForList(sql).size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += "limit " + (page - 1) * pageSize + "," + pageSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDeviceVO> deviceVOList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WlyyDeviceVO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find, deviceVOList, page, pageSize, count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop<WlyyDeviceVO,WlyyDeviceVO> findById(Long id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select * from device.wlyy_devices where id = "+id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyDeviceVO> deviceVOList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WlyyDeviceVO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,deviceVOList.get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Page<DeviceHealthIndexVO> searchList(String deviceSn, String date, String idcard, String userName, String indexType, Integer page, Integer pageSize, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 Double indexTypeMin1, Double indexTypeMax1, Double indexTypeMin2, Double indexTypeMax2, String doctorName)throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (page == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            page = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(pageSize == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pageSize = 15; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Pageable pageRequest = new PageRequest(page-1,pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuilder filter = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql =" SELECT i.* ,p.name userName FROM device.wlyy_patient_health_index i left join wlyy.wlyy_sign_family s on i.`user` = s. patient and s.`status`>0, wlyy.wlyy_patient p WHERE i.user=p.code "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String countSql =" SELECT count(1) as num FROM device.wlyy_patient_health_index i left join wlyy.wlyy_sign_family s on i.`user` = s. patient and s.`status`>0, wlyy.wlyy_patient p WHERE i.user=p.code "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //根据患者名称过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(userName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" AND p.name LIKE '%"+userName+"%' "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(deviceSn)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and i.device_sn='"+deviceSn+"' "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(idcard)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and i.idcard='"+idcard+"' "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //体征数据创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(date)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Date startTimeTemp  =  DateUtil.simpleDateParse(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar calendar = new GregorianCalendar(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.setTime(startTimeTemp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.set(Calendar.HOUR,23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.set(Calendar.MINUTE,59); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.set(Calendar.SECOND,59); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.set(Calendar.MILLISECOND,999); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Date endTimeTemp = calendar.getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and i.czrq>='" + DateUtil.simpleDateTimeFormat(startTimeTemp)+"'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and i.czrq<='" + DateUtil.simpleDateTimeFormat(endTimeTemp)+"'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //指标类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(indexType)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and i.type="+indexType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //体征数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(indexTypeMin1!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and value1>="+indexTypeMin1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(indexTypeMax1!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and value1<="+indexTypeMax1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(indexTypeMin2!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and value2>="+indexTypeMin2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(indexTypeMax2!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter.append(" and value2<="+indexTypeMax2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //数据权限过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!orgList.contains(userAgent.commonHospital)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and s.hospital in ("+orgUserService.getUserOrg(orgList)+") "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String f = filter.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql+f+" order by i.czrq desc "+" limit "+(page-1)*pageSize+","+pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(resultList.size()<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new PageImpl<DeviceHealthIndexVO>(new ArrayList<>(), pageRequest, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long count = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String regex = "(\\w{3})(\\w+)(\\w{3})"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<DeviceHealthIndexVO> listTemp = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(resultList !=null && resultList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            count = getCount(filter.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            count = jdbcTemplate.queryForObject(countSql+filter.toString(),Long.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map<String, Object> info : resultList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                DeviceHealthIndexVO bean = new DeviceHealthIndexVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setId(Long.getLong(info.get("id")+"")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setCzrq(info.get("czrq")!=null?(Date)info.get("czrq"):null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setDel(info.get("del")!=null?info.get("del")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setDeviceSn(info.get("device_sn")!=null?info.get("device_sn")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setIdcard(info.get("idcard")!=null?info.get("idcard")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setIntervene(info.get("intervene")!=null?info.get("intervene")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setRecordDate(info.get("record_date")!=null?(Date)info.get("record_date"):null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setSortDate(info.get("sort_date")!=null?(Date)info.get("sort_date"):null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setStatus(info.get("status")!=null?(Integer)info.get("status"):null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setType(info.get("type")!=null?(Integer)info.get("type"):0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setUser(info.get("user")!=null?info.get("user")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setUserName(info.get("userName")!=null?info.get("userName")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setValue1(info.get("value1")!=null?info.get("value1")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setValue2(info.get("value2")!=null?info.get("value2")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setValue3(info.get("value3")!=null?info.get("value3")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setValue4(info.get("value4")!=null?info.get("value4")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setValue5(info.get("value5")!=null?info.get("value5")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setValue6(info.get("value6")!=null?info.get("value6")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setValue7(info.get("value7")!=null?info.get("value7")+"":null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isNotBlank(bean.getIdcard())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    bean.setIdcard(bean.getIdcard().replaceAll(regex, "$1****$3")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bean.setHealthStandard(gethealthStandard(bean.getType(),bean.getUser()).toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                listTemp.add(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new PageImpl<DeviceHealthIndexVO>(listTemp,pageRequest,count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WlyyHealthStandardVO findStandard(String patient,Integer type){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select id,type,patient,min_value_1 minValue1,doctor,czrq,max_value_1 maxValue1,min_value_2 minValue2,max_value_2 maxValue2" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from wlyy.wlyy_patient_health_standard where patient = '"+patient+"' and type = "+type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHealthStandardVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WlyyHealthStandardVO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(list.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return list.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject gethealthStandard(Integer type, String patientCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //血糖校验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (type == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 血糖记录,查询患者血糖预警值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            WlyyHealthStandardVO standard = findStandard(patientCode, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double maxValueBefore = HEALTH_STANDARD_ST_MAX_BEFORE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double minValueBefore = HEALTH_STANDARD_ST_MIN_BEFORE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double maxValueAfter = HEALTH_STANDARD_ST_MAX_AFTER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double minValueAfter = HEALTH_STANDARD_ST_MIN_AFTER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (standard != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMaxValue1() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    maxValueBefore = standard.getMaxValue1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMinValue1() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    minValueBefore = standard.getMinValue1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMaxValue2() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    maxValueAfter = standard.getMaxValue2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMinValue2() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    minValueAfter = standard.getMinValue2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("maxValueAfter", maxValueAfter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("maxValueBefore", maxValueBefore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("minValueBefore", minValueBefore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("minValueAfter", minValueAfter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //血压校验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else if (type == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 血压记录,查询患者血压预警值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            WlyyHealthStandardVO standard = findStandard(patientCode, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double maxValueSSY = HEALTH_STANDARD_SSY_MAX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double minValueSSY = HEALTH_STANDARD_SSY_MIN; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double maxValueSZY = HEALTH_STANDARD_SZY_MAX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double minValueSZY = HEALTH_STANDARD_SZY_MIN; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (standard != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMaxValue1() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    maxValueSSY = standard.getMaxValue1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMinValue1() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    minValueSSY = standard.getMinValue1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMaxValue2() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    maxValueSZY = standard.getMaxValue2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (standard.getMinValue2() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    minValueSZY = standard.getMinValue2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("minValueSZY", minValueSZY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("maxValueSZY", maxValueSZY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("minValueSSY", minValueSSY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("maxValueSSY", maxValueSSY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<WlyyPatientDeviceVO> searchListNew(String deviceName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                   String categoryCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                   String deviceSn, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                   String userName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                   String doctorName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                   String hospitalName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                   String hospitalCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                   Integer page, Integer pageSize) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyPatientDeviceVO> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "SELECT d.id as id,d.device_id as deviceId,d.user as user,p.name as userName,d.category_code as categoryCode,d.device_name as deviceName," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "d.device_sn as deviceSn,d.sim as sim,d.user_type as userType,p.mobile," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "CONCAT(LEFT (p.idcard,6),'**********',RIGHT (p.idcard,2)) userIdcard,d.czrq as czrq,s.doctor,s.doctor_name doctorName " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "FROM wlyy.wlyy_patient_device d left join wlyy.wlyy_sign_family s on d.`user` = s. patient and s.`status`>0,wlyy.wlyy_patient p " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "WHERE d.`user`=p.CODE "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(userName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND p.name like '%"+userName+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(deviceSn)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND d.device_sn like '%"+deviceSn+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(categoryCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND d.category_code like '%"+categoryCode+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(deviceName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND d.device_name like '%"+deviceName+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //数据权限过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!orgList.contains(userAgent.commonHospital)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and s.hospital in ("+orgUserService.getUserOrg(orgList)+") "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql = sql+"ORDER BY d.id DESC limit " + (page-1)*pageSize+", "+pageSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        list =  jdbcTemplate.query(sql,new BeanPropertyRowMapper(WlyyPatientDeviceVO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return list ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Long getCountSearchListNew(String deviceName, String categoryCode, String deviceSn, String userName, String doctorName, String hospitalName,String hospitalCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql  = "SELECT count(d.id) " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " wlyy.wlyy_patient_device d left join wlyy.wlyy_sign_family s on d.`user` = s. patient and s.`status`>0," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " wlyy.wlyy_patient p " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.`user`=p.CODE "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(userName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND p.name like '%"+doctorName+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(deviceSn)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND d.device_sn like '%"+deviceSn+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(categoryCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND d.category_code like '%"+categoryCode+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(deviceName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql = sql + "AND d.device_name like '%"+deviceName+"%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //数据权限过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!orgList.contains(userAgent.commonHospital)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and s.hospital in ("+orgUserService.getUserOrg(orgList)+") "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long total = jdbcTemplate.queryForObject(sql, Long.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return total ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |