huangwenjie il y a 5 ans
Parent
commit
9c714b0ff5

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

@ -1939,20 +1939,133 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return result;
    }
    
    public List<Map<String,Object>> findClinicRoomList(String dept) {
    public List<JSONObject> findClinicRoomList(String dept,String date) {
        if(StringUtils.isBlank(date)){
            date = DateUtil.getStringDateShort();
        }
        
        String sql ="SELECT " +
                "id," +
                "doctor_name," +
                "clinic_status AS visit_status," +
                "patient_name AS patient_name," +
                "waiting_count AS waiting_count," +
                "room_name AS room_name " +
                "FROM wlyy_doctor_clinic_room ";
        //获取今天的排班列表
        String doctorsql ="SELECT doctor,doctor_name FROM wlyy_doctor_work_time WHERE date='"+date+"' GROUP BY doctor";
    
        List<Map<String,Object>> doctorlist = jdbcTemplate.queryForList(doctorsql);
    
        HashMap<String ,JSONObject> result = new HashMap<>();
    
        for (int i = 0; i < doctorlist.size(); i++) {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("id",(String)doctorlist.get(0).get("doctor"));
    
            if(StringUtils.isNoneBlank((String)doctorlist.get(0).get("doctor_name"))){
                jsonObject.put("doctor_name",(String)doctorlist.get(0).get("doctor_name"));
            }else{
                jsonObject.put("doctor_name","");
            }
            jsonObject.put("visit_status",0);
            jsonObject.put("waiting_count",0);
            jsonObject.put("patient_name","");
            jsonObject.put("time_cost",0);
            result.put((String)doctorlist.get(0).get("doctor"),jsonObject);
        }
        
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        //获取预约了今天的候诊居民
        String waitingSql ="SELECT count(op.id) AS waitCount," +
                "room.doctor AS doctor, " +
                "room.doctor_name AS doctorName " +
                "FROM wlyy_outpatient op,wlyy_hospital_waiting_room room " +
                "WHERE op.`status`=0 AND room.outpatient_id=op.id AND room.consult_type=2 " +
                "AND room.doctor IS NOT NULL " +
                "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' GROUP BY room.doctor; ";
    
        List<Map<String,Object>> waitinglist = jdbcTemplate.queryForList(waitingSql);
        if(waitinglist!=null&&waitinglist.size()>0){
            //根据身份证计算年龄
            for(Map<String,Object> waitObj :waitinglist){
                String doctor = (String) waitObj.get("doctor");
                if(StringUtils.isNoneBlank(doctor)){
                    Long waitCount = (Long) waitObj.get("waitCount");
                    if(result.keySet().contains(doctor)){
                        result.get(doctor).put("waiting_count",waitCount);
                    }else{
                        JSONObject jsonObject = new JSONObject();
                        jsonObject.put("id",doctor);
                        jsonObject.put("visit_status",0);
                        jsonObject.put("waiting_count",waitCount);
                        if(StringUtils.isNoneBlank((String)waitObj.get("doctorName"))){
                            jsonObject.put("doctor_name",(String)waitObj.get("doctorName"));
                        }else{
                            jsonObject.put("doctor_name","");
                        }
                        jsonObject.put("patient_name","");
                        jsonObject.put("time_cost",0);
                        result.put(doctor,jsonObject);
                    }
                }
            }
        }
        
        return list;
        //获取进行中的居民
        String onlineSql ="SELECT " +
                "room.outpatient_id AS id," +
                "room.patient_id AS patient_id," +
                "room.patient_name AS patient_name," +
                "patient.sex AS sex," +
                "patient.idcard AS idcard," +
                "patient.photo AS photo," +
                "patient.birthday AS birthday," +
                "room.consult_type AS consult_type," +
                "room.reservation_time AS time," +
                "TIMESTAMPDIFF(MINUTE, room.reservation_time,NOW()) AS time_cost," +
                "room.doctor AS doctor, " +
                "room.doctor_name AS doctorName " +
                "FROM " +
                "wlyy_hospital_waiting_room room," +
                "base_patient patient," +
                "wlyy_outpatient outpatient," +
                "wlyy_consult_team consult " +
                "WHERE " +
                "room.patient_id=patient.id " +
                "AND room.outpatient_id=outpatient.id " +
                "AND consult.relation_code=outpatient.id " +
                "AND outpatient.STATUS=1 " +
                "AND room.consult_type=2 " +
                "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' " +
                "GROUP BY room.doctor";
        List<Map<String,Object>> onlinelist = jdbcTemplate.queryForList(onlineSql);
        if(waitinglist!=null&&waitinglist.size()>0){
            //根据身份证计算年龄
            for(Map<String,Object> onlineObj :onlinelist){
                String doctor = (String) onlineObj.get("doctor");
                if(StringUtils.isNoneBlank(doctor)){
                    if(result.keySet().contains(doctor)){
                        result.get(doctor).put("visit_status",1);
                        result.get(doctor).put("patient_name",(String) onlineObj.get("patient_name"));
                        result.get(doctor).put("time_cost",(Long) onlineObj.get("time_cost"));
                    }else{
                        JSONObject jsonObject = new JSONObject();
                        jsonObject.put("id",doctor);
    
                        if(StringUtils.isNoneBlank((String) onlineObj.get("doctorName"))){
                            jsonObject.put("doctor_name",(String) onlineObj.get("doctorName"));
                        }else{
                            jsonObject.put("doctor_name","");
                        }
                        jsonObject.put("visit_status",1);
                        jsonObject.put("waiting_count",0);
                        jsonObject.put("patient_name",(String) onlineObj.get("patient_name"));
                        jsonObject.put("time_cost",(Long) onlineObj.get("time_cost"));
                        result.put(doctor,jsonObject);
                    }
                }
            }
        }
        
        List<JSONObject> finalresult  = new ArrayList<>();
    
        for (JSONObject jsonObject : result.values()) {
            finalresult.add(jsonObject);
        }
        
        return finalresult;
    }
    
    public WlyyDoctorClinicRoomDO findClinicRoomStatus(String id) {

+ 4 - 2
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/DoctorConsultEndpoint.java

@ -64,9 +64,11 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
	@ApiOperation(value = "导诊台诊室列表", notes = "导诊台诊室列表")
	public Envelop findClinicRoomList(
			@ApiParam(name = "dept", value = "部门CODE")
			@RequestParam(value = "dept",required = false) String dept){
			@RequestParam(value = "dept",required = false) String dept,
			@ApiParam(name = "date", value = "日期")
			@RequestParam(value = "date",required = false) String date){
//		String result = "[{\"id\":\"XXD2019887711\",\"doctor_name\":\"蔡建春\",\"visit_status\":0,\"patient_name\":\"张三\",\"visit_time\":\"2019-06-21 08:30:00\",\"time_cost\":50,\"waiting_count\":26,\"room_name\":\"01诊室\"},{\"id\":\"XXD2019887712\",\"doctor_name\":\"蔡阿梅\",\"visit_status\":1,\"patient_name\":\"李四\",\"visit_time\":\"2019-06-21 09:30:00\",\"time_cost\":60,\"waiting_count\":33,\"room_name\":\"02诊室\"}]";
		return success("请求成功",prescriptionService.findClinicRoomList(dept));
		return success("请求成功",prescriptionService.findClinicRoomList(dept,date));
	}
	
	@GetMapping(value = BaseHospitalRequestMapping.DodtorIM.findClinicRoomStatus)