|
@ -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;
|
|
@ -7295,6 +7288,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;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取常见疾病、热门部门、医生拒绝接诊原因 字典
|
|
|
*
|