|  | @ -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.WlyyDoctorOnlineTimeDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.hospital.doctor.WlyyDoctorWorkTimeDO;
 |  | import com.yihu.jw.entity.hospital.doctor.WlyyDoctorWorkTimeDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
 |  | 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.YlzMedicalMxDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.hospital.healthCare.YlzMedicalRelationDO;
 |  | import com.yihu.jw.entity.hospital.healthCare.YlzMedicalRelationDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
 |  | 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.PatientRegisterTimeDao;
 | 
												
													
														
															|  | import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao;
 |  | import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao;
 | 
												
													
														
															|  | import com.yihu.jw.hospital.drugstore.dao.BaseDrugStoreDao;
 |  | 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.YlzMedicailMxDao;
 | 
												
													
														
															|  | import com.yihu.jw.hospital.healthCare.YlzMedicailRelationDao;
 |  | import com.yihu.jw.hospital.healthCare.YlzMedicailRelationDao;
 | 
												
													
														
															|  | import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
 |  | 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.restmodel.web.*;
 | 
												
													
														
															|  | import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
 |  | import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
 | 
												
													
														
															|  | import com.yihu.jw.rm.iot.IotRequestMapping;
 |  | 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.sms.service.ZhongShanSMSService;
 | 
												
													
														
															|  | import com.yihu.jw.util.common.IdCardUtil;
 |  | import com.yihu.jw.util.common.IdCardUtil;
 | 
												
													
														
															|  | import com.yihu.jw.util.common.LatitudeUtils;
 |  | 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.wechat.service.WxAccessTokenService;
 | 
												
													
														
															|  | import com.yihu.jw.yx.dao.YxTokenMappingDao;
 |  | import com.yihu.jw.yx.dao.YxTokenMappingDao;
 | 
												
													
														
															|  | import com.yihu.mysql.query.BaseJpaService;
 |  | import com.yihu.mysql.query.BaseJpaService;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | import com.yihu.utils.security.MD5;
 |  | import com.yihu.utils.security.MD5;
 | 
												
													
														
															|  | import com.ylzinfo.ehc.EhcHandler;
 |  | import com.ylzinfo.ehc.EhcHandler;
 | 
												
													
														
															|  | import com.ylzinfo.ehc.common.utils.DateUtils;
 |  | 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.transaction.annotation.Transactional;
 | 
												
													
														
															|  | import org.springframework.util.CollectionUtils;
 |  | 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.IOException;
 | 
												
													
														
															|  | import java.io.OutputStream;
 |  | import java.io.OutputStream;
 | 
												
													
														
															|  | import java.lang.Boolean;
 |  | import java.lang.Boolean;
 | 
												
											
												
													
														
															|  | @ -7295,6 +7288,98 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
												
													
														
															|  |         System.out.println("old"+(new Date().getTime()-statr));
 |  |         System.out.println("old"+(new Date().getTime()-statr));
 | 
												
													
														
															|  |         return envelop;
 |  |         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;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     /**
 |  |     /**
 | 
												
													
														
															|  |      * 获取常见疾病、热门部门、医生拒绝接诊原因 字典
 |  |      * 获取常见疾病、热门部门、医生拒绝接诊原因 字典
 | 
												
													
														
															|  |      *
 |  |      *
 |