| 
					
				 | 
			
			
				@ -42,7 +42,6 @@ import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.doctor.WlyyDoctorOnlineTimeDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.doctor.WlyyDoctorWorkTimeDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.healthCare.YlzMedicalIcdDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.healthCare.YlzMedicalMxDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.healthCare.YlzMedicalRelationDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -64,7 +63,6 @@ import com.yihu.jw.hospital.doctor.dao.DoctorWorkTimeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.drugstore.dao.BaseDrugStoreDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.family.dao.WlyyNatPatientFamilyMemberDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.healthCare.YlzMedicailMxDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.healthCare.YlzMedicailRelationDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -95,7 +93,6 @@ import com.yihu.jw.restmodel.hospital.prescription.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.rm.iot.IotRequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.sms.dao.BaseSmsTemplateDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.sms.service.ZhongShanSMSService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.common.IdCardUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.common.LatitudeUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -116,7 +113,6 @@ import com.yihu.jw.wechat.service.BaseSensitiveFilterWordsService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.service.WxAccessTokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.yx.dao.YxTokenMappingDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.utils.security.MD5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.ehc.EhcHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.ylzinfo.ehc.common.utils.DateUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -144,9 +140,6 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.print.DocFlavor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.validation.constraints.Null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.beans.Transient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.OutputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.lang.Boolean; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -7273,6 +7266,98 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println("old"+(new Date().getTime()-statr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查找有专家问诊排班的医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(readOnly = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop findHospitalByZJ(String iswork, String orgName, String outpatientType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       String workingTime, Integer page, Integer pagesize) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long statr = new Date().getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " distinct o.name AS \"orgName\"," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " h.org_code AS \"orgCode\",o.photo AS \"photo\" " ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql+=" FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " base_doctor d " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " LEFT JOIN base_org o on o.code = h.org_code "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> params = new HashedMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(workingTime)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " JOIN wlyy_doctor_work_time wk on wk.doctor = d.id "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += " WHERE h.del = '1' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(iswork) && "1".equals(iswork)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("iswork:" + iswork); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " AND (" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " EXISTS ( " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  1 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  wlyy_doctor_work_time t " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "  t.doctor = d.id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " AND t.start_time <=:startTime" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " AND t.end_time >=:endTime" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " ) OR " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " d.consult_status = '1') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("startTime", date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("endTime", date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(orgName)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " AND h.org_name like :orgName"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("orgName", "%" + orgName + "%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(outpatientType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (outpatientType.contains("or")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String[] outpatientTypeArray = outpatientType.split("or"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql += " AND ( "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (int i = 0; i < outpatientTypeArray.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sql += " d.outpatient_type like'%" + outpatientTypeArray[i] + "%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (i != outpatientTypeArray.length - 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        sql += " or "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql += " ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql += " AND d.outpatient_type like'%" + outpatientType + "%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " AND d.outpatient_type is not null "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(workingTime)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " AND wk.work_date = :workingTime "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("workingTime", workingTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql +=" and d.del='1' and o.del='1' order by o.sort "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlCount = "select count(1) as \"total\" from ( "+sql+" ) t"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params, page, pagesize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> listCount = hibenateUtils.createSQLQuery(sqlCount, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long count = 0L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(listCount!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            count = hibenateUtils.objTransformLong(listCount.get(0).get("total")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("findHospitalByZJ end:" + DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss:SSS")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("sql:" + sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MixEnvelop envelop =new MixEnvelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop.setDetailModelList(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop.setTotalCount(count.intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop.setPageSize(pagesize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop.setCurrPage(page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println("old"+(new Date().getTime()-statr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取常见疾病、热门部门、医生拒绝接诊原因 字典 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 |