|  | @ -255,7 +255,6 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |             for(Object object : role){
 | 
	
		
			
				|  |  |                 baseDoctorRoleDO = objectMapper.readValue(object.toString(),BaseDoctorRoleDO.class);
 | 
	
		
			
				|  |  |                 baseDoctorRoleDO.setDoctorCode(baseDoctorDO.getId());
 | 
	
		
			
				|  |  |                 baseDoctorRoleDO.setDel(baseDoctorDO.getDel());
 | 
	
		
			
				|  |  |                 baseDoctorRoleDOList.add(baseDoctorRoleDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (IOException e) {
 | 
	
	
		
			
				|  | @ -339,14 +338,15 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |                         roleIdList.remove(baseDoctorRoleDO.getId());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     baseDoctorRoleDO.setDoctorCode(baseDoctorDO.getId());
 | 
	
		
			
				|  |  |                     baseDoctorRoleDO.setDel(baseDoctorDO.getDel());
 | 
	
		
			
				|  |  |                     baseDoctorRoleService.save(baseDoctorRoleDO);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             } catch (IOException e) {
 | 
	
		
			
				|  |  |                 result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause());
 | 
	
		
			
				|  |  |                 result.put("response",ConstantUtils.FAIL);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             baseDoctorRoleService.delete(roleIdList.toArray());
 | 
	
		
			
				|  |  |             if(roleIdList.size() > 0){
 | 
	
		
			
				|  |  |                 baseDoctorRoleService.delete(roleIdList.toArray());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -367,7 +367,9 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |                  result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause());
 | 
	
		
			
				|  |  |                  result.put("response",ConstantUtils.FAIL);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              baseDoctorHospitalService.delete(hospitalIdList.toArray());
 | 
	
		
			
				|  |  |              if(hospitalIdList.size() > 0){
 | 
	
		
			
				|  |  |                  baseDoctorHospitalService.delete(hospitalIdList.toArray());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         result.put("response",ConstantUtils.SUCCESS);
 | 
	
	
		
			
				|  | @ -401,7 +403,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取医生已选中的区县/机构列表,当有机构是被选中时,要标有checked=true的状态前端加载生成树形机构,
 | 
	
		
			
				|  |  |      * 获取医生已选中的区县/机构列表,当有机构是被选中时,要标有checked=true的状态,由前端加载生成树形机构,
 | 
	
		
			
				|  |  |      * @param doctorCode
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
	
		
			
				|  | @ -421,10 +423,10 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Map<String,Map<String, Object>> orgCodeMap = new HashMap<>();
 | 
	
		
			
				|  |  |         list.forEach( one-> orgCodeMap.put(String.valueOf(one.get("code")),one));
 | 
	
		
			
				|  |  |         List<BaseDoctorHospitalDO> selectedList = baseDoctorHospitalService.getOrgAndDutyListByDoctorCode(doctorCode);
 | 
	
		
			
				|  |  |         for(BaseDoctorHospitalDO one : selectedList){
 | 
	
		
			
				|  |  |             if(orgCodeMap.containsKey(one.getOrgCode())){
 | 
	
		
			
				|  |  |                 orgCodeMap.get(one.getOrgCode()).put("checked",true);
 | 
	
		
			
				|  |  |         List<Map<String,Object>> selectedList = baseDoctorHospitalService.getOrgAndDutyListByDoctorCode(doctorCode);
 | 
	
		
			
				|  |  |         for(Map<String,Object> one : selectedList){
 | 
	
		
			
				|  |  |             if(orgCodeMap.containsKey(one.get("orgCode"))){
 | 
	
		
			
				|  |  |                 orgCodeMap.get(one.get("orgCode")).put("checked",true);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         result.put("response", ConstantUtils.SUCCESS);
 | 
	
	
		
			
				|  | @ -434,7 +436,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取医生已选中的机构/职务树形结构,当有机构是被选中时,要标有checked=true的状态
 | 
	
		
			
				|  |  |      * 获取医生已选中的机构/职务树形结构,当有机构是被选中时,要标有checked=true的状态,生成树形结构,前端直接获取
 | 
	
		
			
				|  |  |      * @param doctorCode
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
	
		
			
				|  | @ -445,26 +447,26 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |             result.put("response", ConstantUtils.FAIL);
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<DictDoctorDutyDO> dutyDOList = dictDoctorDutyService.search(null);
 | 
	
		
			
				|  |  |         List<DictDoctorDutyDO> dutyDOList = dictDoctorDutyService.search(null,"-name");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<BaseDoctorHospitalDO> selectedDutylist = baseDoctorHospitalService.getOrgAndDutyListByDoctorCode(doctorCode);
 | 
	
		
			
				|  |  |         List<Map<String,Object>> selectedDutylist = baseDoctorHospitalService.getOrgAndDutyListByDoctorCode(doctorCode);
 | 
	
		
			
				|  |  |         Set<String> selectedDutySet = new HashSet<>();
 | 
	
		
			
				|  |  |         selectedDutylist.forEach( one -> selectedDutySet.add(one.getOrgCode()+one.getDoctorDutyCode()) );
 | 
	
		
			
				|  |  |         selectedDutylist.forEach( one -> selectedDutySet.add(String.valueOf(one.get("orgCode"))+one.get("doctorDutyCode")));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<OrgTree> orgTreeList = new ArrayList<>();
 | 
	
		
			
				|  |  |         for(BaseDoctorHospitalDO one : selectedDutylist){
 | 
	
		
			
				|  |  |         for(Map<String,Object> one : selectedDutylist){
 | 
	
		
			
				|  |  |             OrgTree orgTreeParent = new OrgTree();
 | 
	
		
			
				|  |  |             orgTreeParent.setParentCode("");
 | 
	
		
			
				|  |  |             orgTreeParent.setCode(one.getOrgCode());
 | 
	
		
			
				|  |  |             orgTreeParent.setName(one.getOrgName());
 | 
	
		
			
				|  |  |             orgTreeParent.setCode(String.valueOf(one.get("orgCode")));
 | 
	
		
			
				|  |  |             orgTreeParent.setName(String.valueOf(one.get("orgName")));
 | 
	
		
			
				|  |  |             orgTreeList.add(orgTreeParent);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for(DictDoctorDutyDO dictDoctorDutyDO :dutyDOList){
 | 
	
		
			
				|  |  |                 OrgTree orgTreeChild = new OrgTree();
 | 
	
		
			
				|  |  |                 orgTreeChild.setParentCode(one.getOrgCode());
 | 
	
		
			
				|  |  |                 orgTreeChild.setParentCode(String.valueOf(one.get("orgCode")));
 | 
	
		
			
				|  |  |                 orgTreeChild.setCode(dictDoctorDutyDO.getCode());
 | 
	
		
			
				|  |  |                 orgTreeChild.setName(dictDoctorDutyDO.getName());
 | 
	
		
			
				|  |  |                 if(selectedDutySet.contains(one.getOrgCode()+dictDoctorDutyDO.getCode())){
 | 
	
		
			
				|  |  |                 if(selectedDutySet.contains(String.valueOf(one.get("orgCode"))+dictDoctorDutyDO.getCode())){
 | 
	
		
			
				|  |  |                     orgTreeParent.setChecked(true);
 | 
	
		
			
				|  |  |                     orgTreeChild.setChecked(true);
 | 
	
		
			
				|  |  |                 }
 | 
	
	
		
			
				|  | @ -472,12 +474,13 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         result.put("response", ConstantUtils.SUCCESS);
 | 
	
		
			
				|  |  |         result.put("msg", objectMapper.readValue(makeTree(orgTreeList),JSONArray.class));
 | 
	
		
			
				|  |  |         // 不同医院职务可以相同
 | 
	
		
			
				|  |  |         result.put("msg", objectMapper.readValue(makeTree(orgTreeList,true),JSONArray.class));
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取医生已选中的机构/科室树形结构
 | 
	
		
			
				|  |  |      * 获取医生已选中的机构/科室树形结构,当有机构是被选中时,要标有checked=true的状态,生成树形结构,前端直接获取
 | 
	
		
			
				|  |  |      * @param doctorCode
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
	
		
			
				|  | @ -488,7 +491,28 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |             result.put("response", ConstantUtils.FAIL);
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String deptSql = "select" +
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //医生已选中的机构的里的科室列表
 | 
	
		
			
				|  |  |         String orgDeptSql = "SELECT" +
 | 
	
		
			
				|  |  |                 "  org.code AS orgCode," +
 | 
	
		
			
				|  |  |                 "  org.name     AS orgName," +
 | 
	
		
			
				|  |  |                 "  dept.code    AS deptCode," +
 | 
	
		
			
				|  |  |                 "  dept.name    AS deptName" +
 | 
	
		
			
				|  |  |                 " FROM" +
 | 
	
		
			
				|  |  |                 "  base_org org," +
 | 
	
		
			
				|  |  |                 "  dict_hospital_dept dept" +
 | 
	
		
			
				|  |  |                 " WHERE" +
 | 
	
		
			
				|  |  |                 "  dept.org_code = org.code" +
 | 
	
		
			
				|  |  |                 "  AND" +
 | 
	
		
			
				|  |  |                 "  dept.org_code" +
 | 
	
		
			
				|  |  |                 "  in (" +
 | 
	
		
			
				|  |  |                 "    SELECT DISTINCT hos.org_code from" +
 | 
	
		
			
				|  |  |                 "      base_doctor_hospital hos where hos.doctor_code = '" + doctorCode + "'" +
 | 
	
		
			
				|  |  |                 "  ) ORDER BY dept.name";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> deptList = jdbcTemplate.queryForList(orgDeptSql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //医生已选中的机构的里的所在科室
 | 
	
		
			
				|  |  |         String doctorSelectedDeptSql = "select" +
 | 
	
		
			
				|  |  |                 "  hos.doctor_code ," +
 | 
	
		
			
				|  |  |                 "  hos.org_code as orgCode," +
 | 
	
		
			
				|  |  |                 "  org.name as orgName," +
 | 
	
	
		
			
				|  | @ -501,37 +525,39 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |                 " where" +
 | 
	
		
			
				|  |  |                 "  hos.org_code = org.code" +
 | 
	
		
			
				|  |  |                 "  and" +
 | 
	
		
			
				|  |  |                 "  hos.org_code = dept.org_code";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String doctorSelectedDeptSql = deptSql + " and  hos.dept_code = dept.code and hos.doctor_code = '{doctorCode}'";
 | 
	
		
			
				|  |  |                 "  hos.org_code = dept.org_code" +
 | 
	
		
			
				|  |  |                 " and  hos.dept_code = dept.code and hos.doctor_code = '" + doctorCode + "' " +
 | 
	
		
			
				|  |  |                 "  ORDER BY dept.name";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> selectedDeptlist = jdbcTemplate.queryForList(doctorSelectedDeptSql.replace("{doctorCode}",doctorCode));
 | 
	
		
			
				|  |  |         List<Map<String,Object>> deptList = jdbcTemplate.queryForList(deptSql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Set<String> selectedDeptCodeSet = new HashSet<>();
 | 
	
		
			
				|  |  |         selectedDeptlist.forEach( one -> selectedDeptCodeSet.add(String.valueOf(one.get("orgCode")) + String.valueOf(one.get("deptCode"))));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<OrgTree> orgTreeList = new ArrayList<>();
 | 
	
		
			
				|  |  |         for(Map<String,Object> one : selectedDeptlist){
 | 
	
		
			
				|  |  |         selectedDeptlist.forEach(one -> {
 | 
	
		
			
				|  |  |             selectedDeptCodeSet.add(String.valueOf(one.get("orgCode")) + String.valueOf(one.get("deptCode")));
 | 
	
		
			
				|  |  |             //机构树
 | 
	
		
			
				|  |  |             OrgTree orgTreeParent = new OrgTree();
 | 
	
		
			
				|  |  |             orgTreeParent.setParentCode("");
 | 
	
		
			
				|  |  |             orgTreeParent.setCode(String.valueOf(one.get("orgCode")));
 | 
	
		
			
				|  |  |             orgTreeParent.setName(String.valueOf(one.get("orgName")));
 | 
	
		
			
				|  |  |             orgTreeList.add(orgTreeParent);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for(Map<String,Object> dept :deptList){
 | 
	
		
			
				|  |  |                 OrgTree orgTreeChild = new OrgTree();
 | 
	
		
			
				|  |  |                 orgTreeChild.setParentCode(String.valueOf(dept.get("orgCode")));
 | 
	
		
			
				|  |  |                 orgTreeChild.setCode(String.valueOf(dept.get("deptCode")));
 | 
	
		
			
				|  |  |                 orgTreeChild.setName(String.valueOf(dept.get("deptName")));
 | 
	
		
			
				|  |  |                 orgTreeList.add(orgTreeChild);
 | 
	
		
			
				|  |  |                 if(selectedDeptCodeSet.contains(String.valueOf(dept.get("orgCode")) + dept.get("deptCode"))){
 | 
	
		
			
				|  |  |                     orgTreeParent.setChecked(true);
 | 
	
		
			
				|  |  |                     orgTreeChild.setChecked(true);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             //本身就是加载已经选中了的机构,所以机构状态为true
 | 
	
		
			
				|  |  |             orgTreeParent.setChecked(true);
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //科室树
 | 
	
		
			
				|  |  |         for (Map<String, Object> dept : deptList) {
 | 
	
		
			
				|  |  |             OrgTree orgTreeChild = new OrgTree();
 | 
	
		
			
				|  |  |             orgTreeChild.setParentCode(String.valueOf(dept.get("orgCode")));
 | 
	
		
			
				|  |  |             orgTreeChild.setCode(String.valueOf(dept.get("deptCode")));
 | 
	
		
			
				|  |  |             orgTreeChild.setName(String.valueOf(dept.get("deptName")));
 | 
	
		
			
				|  |  |             orgTreeList.add(orgTreeChild);
 | 
	
		
			
				|  |  |             if (selectedDeptCodeSet.contains(String.valueOf(dept.get("orgCode")) + dept.get("deptCode"))) {
 | 
	
		
			
				|  |  |                 orgTreeChild.setChecked(true);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         result.put("response", ConstantUtils.SUCCESS);
 | 
	
		
			
				|  |  |         result.put("msg",objectMapper.readValue(makeTree(orgTreeList),JSONArray.class));
 | 
	
		
			
				|  |  |         //不同医院科室可以相同
 | 
	
		
			
				|  |  |         result.put("msg",objectMapper.readValue(makeTree(orgTreeList,true),JSONArray.class));
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -539,10 +565,10 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |      * 构建树形结构
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String makeTree(List<OrgTree> orgTreeList ){
 | 
	
		
			
				|  |  |     public String makeTree(List<OrgTree> orgTreeList,boolean isAllowedRepeat){
 | 
	
		
			
				|  |  |         List<TreeNode> treeNodes = new ArrayList<>();
 | 
	
		
			
				|  |  |         treeNodes.addAll(orgTreeList);
 | 
	
		
			
				|  |  |         SimpleTree tree = new SimpleTree(treeNodes);
 | 
	
		
			
				|  |  |         SimpleTree tree = new SimpleTree(treeNodes,isAllowedRepeat);
 | 
	
		
			
				|  |  |         List<SimpleTreeNode> treeNode = tree.getRoot();
 | 
	
		
			
				|  |  |         SimplePropertyPreFilter filter = new SimplePropertyPreFilter();
 | 
	
		
			
				|  |  |         filter.getExcludes().add("parent");
 | 
	
	
		
			
				|  | @ -646,9 +672,9 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
	
		
			
				|  |  |                         dictJobTitleDO = jobTitleDao.findByCode(roleCode);
 | 
	
		
			
				|  |  |                         baseDoctorRoleDO = new BaseDoctorRoleDO();
 | 
	
		
			
				|  |  |                         baseDoctorRoleDO.setDoctorCode(baseDoctorDO.getId());
 | 
	
		
			
				|  |  |                         baseDoctorRoleDO.setRoleModuleCode(dictJobTitleDO.getCode());
 | 
	
		
			
				|  |  |                         baseDoctorRoleDO.setName(dictJobTitleDO.getName());
 | 
	
		
			
				|  |  |                         baseDoctorRoleDO.setDel("1");
 | 
	
		
			
				|  |  | //                        baseDoctorRoleDO.setRoleModuleCode(dictJobTitleDO.getCode());
 | 
	
		
			
				|  |  | //                        baseDoctorRoleDO.setName(dictJobTitleDO.getName());
 | 
	
		
			
				|  |  | //                        baseDoctorRoleDO.setDel("1");
 | 
	
		
			
				|  |  |                         baseDoctorRoleDOList.add(baseDoctorRoleDO);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     baseDoctorRoleService.batchInsert(baseDoctorRoleDOList);
 |