package com.ssj.service.sys.organization.service;

import com.ssj.bean.sys.organization.domain.Organization;
import com.ssj.framework.core.common.service.BaseService;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/** 
 * @author  ZhangCaibao 
 * @version 2017年4月14日 下午2:43:09 
 * 类说明 
 */
public interface OrganizationService extends BaseService<Organization, String> {

	 List<Organization>  getSubNodesByPid(String pid, String code);
	 
	 List<Organization>  getPidAndCodes(String pid, List<String> codes);
	 
	 List<Organization>  getPidAndCodes(List<String> codes);
	 
	 List<Organization>  findByPid(String pid);
	 
	 
	 Integer updateSortNo(String id, int sortNo);
	 
	 public void changeSubCount(String id, boolean increase);
	 
	 List<Organization>  getOrganizationByCode(String orgCode);
	 /**
	  * 根据adminOrg获取已经全部选好的org
	 * @param adminId
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2018年2月11日 下午5:33:11 
	 * @List<Organization>
	  */
	 List<Organization>  getOrganizationByAdminOrg(String adminId);
	 /**
	  * 根据adminOrg获取已经全部选好的org ..只包含第三级别
	 * @param adminId
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2018年2月11日 下午5:33:11 
	 * @List<Organization>
	  */
	 List<Organization>  getOrganizationByAdminOrg(String adminId, Integer level);
	 /**
	  * 根据子节点查询父节点CODE
	 * @param orgCode
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年5月3日 上午10:09:54 
	 * @String
	  */
	 public  String getParentCodeByOrgCode(String orgCode);
	 /**
	  * 根据当前登录orgCode获得当前父ID
	 * @param code
	 * @return
	 * 创建人：ZhangCaibao 
	 * 2017年8月28日 下午5:22:15 
	 * @String
	  */
	 String findByCode(String code);
	 
	 Organization getByCode(String code);
	 
	 public  Page<Organization>  findByPage(Map<String, Object> params, Pageable sp);
}
