Преглед на файлове

首页医生查询优化

wangjun преди 4 години
родител
ревизия
af00c47ba8
променени са 1 файла, в които са добавени 27 реда и са изтрити 36 реда
  1. 27 36
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

+ 27 - 36
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -5848,6 +5848,23 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        }
        String sqlCount = "select count(1) as \"total\" from ( "+sql+" ) t";
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params, page, pagesize);
        List<WlyyHospitalSysDictDO> doctorFrontList = wlyyHospitalSysDictDao.findByDictNameOrderBySort("doctorFrontList",orgCode);
        List<Map<String,Object>> frontDoctor = new ArrayList<>();
        if (doctorFrontList!=null&&doctorFrontList.size()>0){
            if (list!=null&&list.size()>0){
                for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:doctorFrontList){
                    for(Map<String,Object> map: list){
                        if(map.get("id").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                            map.put("doctorFrontSort",wlyyHospitalSysDictDO.getSort());
                            logger.info("doctorFrontSort",wlyyHospitalSysDictDO.getSort());
                            logger.info("doctorId",wlyyHospitalSysDictDO.getDictCode());
                            frontDoctor.add(map);
                        }
                    }
                }
            }
        }
        /*list.stream().forEach(e->{
            if (null==e.get("consultStatus")){
                e.put("consultStatus",0);
@ -5861,14 +5878,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        String hospital="";
        for (Map<String,Object> map:list){
            String doctor = map.get("id").toString();
            //号别
            List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
            if (null!=depts&&depts.size()>0){
                BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                hospital = baseDoctorHospitalDO.getOrgCode();
            }
            /*List<Map<String,Object>> chargeDictDOLists = new ArrayList<>();
            if(null!=map.get("chargeType")){
                String chargeType = map.get("chargeType").toString();
@ -5924,6 +5933,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            }
            doctorScore = doctorScore / 3;
            map.put("doctorScore", doctorScore);
            if(doctorFrontList!=null&&doctorFrontList.size()>0){
                for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:doctorFrontList){
                    if (wlyyHospitalSysDictDO.getDictCode().equalsIgnoreCase(map.get("id").toString())){
                        list.remove(map);
                        break;
                    }
                }
            }
        }
        List<Map<String, Object>> listCount = hibenateUtils.createSQLQuery(sqlCount, params);
        Long count = 0L;
@ -5931,36 +5948,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(listCount.get(0).get("total"));
        }
        List<WlyyHospitalSysDictDO> doctorFrontList = wlyyHospitalSysDictDao.findByDictNameOrderBySort("doctorFrontList",hospital);
        if (doctorFrontList!=null&&doctorFrontList.size()>0){
            List<Map<String,Object>> frontDoctor = new ArrayList<>();
            if (list!=null&&list.size()>0){
                for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:doctorFrontList){
                    for(Map<String,Object> map: list){
                        if(map.get("id").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                            map.put("doctorFrontSort",wlyyHospitalSysDictDO.getSort());
                            logger.info("doctorFrontSort",wlyyHospitalSysDictDO.getSort());
                            logger.info("doctorId",wlyyHospitalSysDictDO.getDictCode());
                            frontDoctor.add(map);
                        }
                    }
                }
                for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:doctorFrontList){
                    for(Map<String,Object> map1: list){
                        if (wlyyHospitalSysDictDO.getDictCode().equalsIgnoreCase(map1.get("id").toString())){
                            list.remove(map1);
                            break;
                        }
                    }
                }
                for(Map<String,Object> map1: list){
                    frontDoctor.add(map1);
                }
                list = frontDoctor;
            }
            frontDoctor.addAll(list);
            list = frontDoctor;
        }
        logger.info("findDoctorByHospitalAndDiseaseAndDept end:" + DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss:SSS"));
        logger.info("sql:" + sql);
        MixEnvelop envelop =new MixEnvelop();