| 
					
				 | 
			
			
				@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.base.service.doctor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.serializer.SimplePropertyPreFilter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -12,8 +13,7 @@ import com.yihu.jw.base.service.org.tree.TreeNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.base.util.ConstantUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.base.util.JavaBeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.patient.BasePatientDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.patient.PatientMedicareCardDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -24,10 +24,8 @@ import org.springframework.util.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.regex.Pattern; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 *  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -45,16 +43,16 @@ import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorHospitalService baseDoctorHospitalService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorDao baseDoctorDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorRoleDictService baseDoctorRoleDictService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorHospitalService baseDoctorHospitalService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private JdbcTemplate jdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorRoleService baseDoctorRoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private OrgTreeService orgTreeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private JdbcTemplate jdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ObjectMapper objectMapper; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -66,7 +64,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 医生id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Map<String,Object> getDoctorInfo(String orgId, String doctorId) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Map<String,Object> getOneDoctorInfo(String orgId, String doctorId) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,Object> resultMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(orgId) || StringUtils.isEmpty(doctorId)){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -94,40 +92,82 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取医生信息(包括医生任职的医院相关信息) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idcard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param nameOrIdcard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param orgCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param docStatus 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String,Object>> getDoctorFullInfo(String name,String idcard,String orgCode,String docStatus){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuilder sql = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.append("select doc.id,doc.name,doc.idcard,case doc.sex when 1 then '男' when 2 then '女' else '未知' end as sex,doc.del as status,hos.hosp_name as hosptialName,dept.name as deptName,hos.role_name as roleName,hos.job_title_name jobTitleName from base_doctor doc,base_doctor_hospital hos,dict_hospital_dept dept where doc.id = hos.doctor_code and hos.dept_code = dept.code and hos.del = 1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(name) && StringUtils.isEmpty(idcard) && StringUtils.isEmpty(orgCode) && StringUtils.isEmpty(docStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           result = jdbcTemplate.queryForList(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if(StringUtils.isEmpty(name) || StringUtils.isEmpty(idcard)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.append(" and doc.name = '").append(idcard).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.append(" and doc.idcard = '").append(name).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(StringUtils.isEmpty(orgCode) && !StringUtils.isEmpty(docStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.append(" and doc.del = '").append(docStatus).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if(!StringUtils.isEmpty(orgCode) && StringUtils.isEmpty(docStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.append(" and hos.hosp_code = '").append(orgCode).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.append(" and hos.hosp_code = '").append(orgCode).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.append(" and doc.del = '").append(docStatus).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result = jdbcTemplate.queryForList(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if(StringUtils.isEmpty(orgCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql.append(" and doc.hosp_code = '").append(orgCode).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result = jdbcTemplate.queryForList(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql.append(" and doc.del = '").append(docStatus).append("'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result = jdbcTemplate.queryForList(sql.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject queryDoctorListFullInfo(String nameOrIdcard, String orgCode, String docStatus, int page, int size) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String orgCodeVale = null == orgCode ? "" : orgCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String del = null == docStatus ? "" : docStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String nameOrIdcardValue = null == nameOrIdcard ? "" : nameOrIdcard; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int start = 0 == page ? page++ : (page - 1) * size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int end = 0 == size ? 15 : page * size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  tb.id as id," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  tb.name as name," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  tb.idcard as idcard,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  tb.sex as sex,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  tb.mobile as mobile,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  GROUP_CONCAT(tb.org SEPARATOR ',') as orgInfo,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  tb.status as status " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  (  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    select  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     doc.id,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     doc.name,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     doc.idcard,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     case doc.sex when 1 then '男' when 2 then '女' else '未知' end as sex,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     doc.mobile,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     concat(hos.hosp_name,'/',dept.name,'/',hos.doctor_duty_name,'/',hos.job_title_name) as org,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     case doc.del when 0 then '无效' when 1 then '有效' end as status,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "      doc.create_time  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     base_doctor doc,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     base_doctor_hospital hos,  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     dict_hospital_dept dept  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  where  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    doc.id = hos.doctor_code  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    and  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    hos.dept_code = dept.code  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    and  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    ((doc.idcard like '{idcard}' or ''= '{idcard}'  ) and (hos.hosp_code = '{orgCode}' or ''= '{orgCode}') and (doc.del = '{docStatus}' or ''= '{docStatus}'))  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "      or  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    ((doc.name like '{name}'  or ''= '{name}' )  and (hos.hosp_code = '{orgCode}' or ''= '{orgCode}') and (doc.del = '{docStatus}' or ''= '{docStatus}'))  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  ) tb  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "GROUP BY tb.id order by tb.create_time desc limit {start},{end} "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String finalSql = sql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{idcard}",nameOrIdcardValue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{name}",nameOrIdcardValue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{orgCode}",orgCodeVale) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{docStatus}",del) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{start}",String.valueOf(start)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{end}",String.valueOf(end)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String countSql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     count(DISTINCT (doc.id)) as count " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   from " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     base_doctor doc, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     base_doctor_hospital hos, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     dict_hospital_dept dept " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    doc.id = hos.doctor_code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    and " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    hos.dept_code = dept.code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    and " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    ((doc.idcard like '{idcard}' or ''= '{idcard}' ) and (hos.hosp_code = '{orgCode}' or ''= '{orgCode}') and (doc.del = '{docStatus}' or ''= '{docStatus}')) " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "      or " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    ((doc.name like '{name}' or ''= '{name}')  and (hos.hosp_code = '{orgCode}' or ''= '{orgCode}') and (doc.del = '{docStatus}' or ''= '{docStatus}')) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String finalCountSql = countSql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{idcard}",nameOrIdcardValue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{name}",nameOrIdcardValue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{orgCode}",orgCodeVale) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{docStatus}",del); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> list = jdbcTemplate.queryForList(finalSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int count = jdbcTemplate.queryForObject(finalCountSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("count", count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -146,14 +186,15 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = JSONObject.parseObject(jsonData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject doctor = jsonObject.getJSONObject("doctor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject hospital = jsonObject.getJSONObject("hospital"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == doctor || null == hospital){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray role = jsonObject.getJSONArray("role"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray hospital = jsonObject.getJSONArray("hospital"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == doctor || CollectionUtils.isEmpty(role) || CollectionUtils.isEmpty(hospital)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","parameter doctor or hospital of jsonData is null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response", ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //组装医生信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO baseDoctorDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorHospitalDO baseDoctorHospitalDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO = objectMapper.readValue(doctor.toJSONString(),BaseDoctorDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -161,34 +202,263 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorDO.setPassword(baseDoctorDO.getIdcard().substring(11,17)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.save(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //组装医生角色关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorRoleDO baseDoctorRoleDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorRoleDO> baseDoctorRoleDOList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Object object : role){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorRoleDO = objectMapper.readValue(object.toString(),BaseDoctorRoleDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorRoleDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorRoleDOList.add(baseDoctorRoleDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorRoleService.batchInsert(baseDoctorRoleDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 组装医生任职机构及职业信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorHospitalDO baseDoctorHospitalDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorHospitalDO> hospitalDOList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorHospitalDO = objectMapper.readValue(hospital.toJSONString(),BaseDoctorHospitalDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Object object : hospital){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO = objectMapper.readValue(object.toString(),BaseDoctorHospitalDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                hospitalDOList.add(baseDoctorHospitalDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorHospitalService.save(baseDoctorHospitalDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorHospitalService.batchInsert(hospitalDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("response",ConstantUtils.SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("msg",baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 修改医生 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param jsonData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String updateDoctor(String jsonData){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(jsonData)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","jsonData is null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response", ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = JSONObject.parseObject(jsonData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject doctor = jsonObject.getJSONObject("doctor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray role = jsonObject.getJSONArray("role"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray hospital = jsonObject.getJSONArray("hospital"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == doctor || CollectionUtils.isEmpty(role) || CollectionUtils.isEmpty(hospital)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","parameter doctor or hospital of jsonData is null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response", ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //判断医生id是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(doctor.getString("id"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","parameter id for doctor is null when update doctor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response", ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 修改医生信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO baseDoctorDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO = objectMapper.readValue(doctor.toJSONString(),BaseDoctorDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","convert doctor jsonObject to BaseDoctorDO failed," + e.getCause()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.save(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //修改医生角色关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorRoleDO baseDoctorRoleDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Set<Object> roleIdList = baseDoctorRoleService.findRoleIdList(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Object object : hospital){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorRoleDO = objectMapper.readValue(object.toString(),BaseDoctorRoleDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(roleIdList.contains(baseDoctorRoleDO.getId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    roleIdList.remove(baseDoctorRoleDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorRoleDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorRoleService.save(baseDoctorRoleDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorHospitalService.delete(roleIdList.toArray()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 修改医生任职机构及职业信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorHospitalDO baseDoctorHospitalDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Set<Object> hospitalIdList = baseDoctorHospitalService.findDocHospIdList(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(Object object : hospital){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO = objectMapper.readValue(object.toString(),BaseDoctorHospitalDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(hospitalIdList.contains(baseDoctorHospitalDO.getId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    hospitalIdList.remove(baseDoctorHospitalDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalService.save(baseDoctorHospitalDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorHospitalService.delete(hospitalIdList.toArray()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("response",ConstantUtils.SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("msg",baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 生效或失效单个医生 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param del 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String enableOrDisableDoctor(String doctorCode,String del){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(doctorCode) || StringUtils.isEmpty(del)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","parameter doctorCode or del is null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO baseDoctorDO = baseDoctorDao.findOne(doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if( null == baseDoctorDO ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","doctor not exist for id:" + doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response",ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorDO.setDel(del); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.save(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("response",ConstantUtils.SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result.toJSONString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取医生已选中的机构/职务树形结构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getDoctorDutyTree(String doctorCode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(doctorCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorHospitalDO> list = baseDoctorHospitalService.getOrgAndDutyListByDoctorCode(doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<OrgTree> orgTreeList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(BaseDoctorHospitalDO one : list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OrgTree orgTreeParent = new OrgTree(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeParent.setParentCode(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeParent.setCode(one.getHospCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeParent.setName(one.getHospName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeList.add(orgTreeParent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OrgTree orgTreeChild = new OrgTree(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeChild.setParentCode(one.getHospCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeChild.setCode(one.getDoctorDutyCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeChild.setName(one.getDoctorDutyName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeList.add(orgTreeChild); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return getOrgTree(orgTreeList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 构建区域树形结构() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @Param level 参考OrgTree的Level枚举类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取医生已选中的机构/科室树形结构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getOrgTree(OrgTree.Level level){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getDoctorDeptTree(String doctorCode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(doctorCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.doctor_code ," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.hosp_code as parentCode," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  org.name as parentName," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.dept_code as childCode," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  dept.name as childName" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  base_doctor_hospital hos," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  base_org org," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  dict_hospital_dept dept" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.hosp_code = org.code" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  and" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.hosp_code = dept.org_code" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  and" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.dept_code = dept.code" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  and doctor_code = '{doctorCode}'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql.replace("{doctorCode}",doctorCode)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<OrgTree> orgTreeList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map<String,Object> one : list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OrgTree orgTreeParent = new OrgTree(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeParent.setParentCode(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeParent.setCode(String.valueOf(one.get("parentCode"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeParent.setName(String.valueOf(one.get("parentName"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeList.add(orgTreeParent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OrgTree orgTreeChild = new OrgTree(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeChild.setParentCode(String.valueOf(one.get("parentCode"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeChild.setCode(String.valueOf(one.get("childCode"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeChild.setName(String.valueOf(one.get("childName"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            orgTreeList.add(orgTreeChild); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return getOrgTree(orgTreeList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 构建树形结构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getOrgTree(List<OrgTree> orgTreeList ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<TreeNode> treeNodes = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        treeNodes.addAll(orgTreeService.findListByLevel(level.getLevelValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        treeNodes.addAll(orgTreeList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleTree tree = new SimpleTree(treeNodes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SimpleTreeNode> treeNode = tree.getRoot(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimplePropertyPreFilter filter = new SimplePropertyPreFilter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        filter.getExcludes().add("parent"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        filter.getExcludes().add("allChildren"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        filter.getExcludes().add("parentNodeId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        filter.getExcludes().add("orderNum"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        filter.getExcludes().add("level"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return JSONObject.toJSONString(treeNode, filter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取某一科室下的医生列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param deptCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getDoctorListByDept(String deptCode) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isEmpty(deptCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("msg","parameter deptCode is null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("response", ConstantUtils.FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  DISTINCT hos.doctor_code as doctorCode, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  doc.name as name, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.dept_code as deptCode " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  base_doctor_hospital hos, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  base_doctor doc " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  hos.doctor_code = doc.id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " and hos.dept_code = '" + deptCode + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("response", ConstantUtils.SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("msg",JavaBeanUtils.getInstance().mapListJson(list)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |