/// <summary>
/// 创建人:tqy 创建时间:2017-8-24
/// 修改人: 修改时间:
/// 说明:获取部门信息,同级及子级
/// </summary>
/// <returns>部门信息</returns>
public Result GetDepartmentSub(int depid)
{
var resulta = from c in db.DepartmentSet
join b in db.DepartmentSet on c.ParentId equals b.ParentId
where (c.Id == depid)
select new VGetDepartmentTree
{
Id = b.Id,
Name = b.Name,
ParentId = b.ParentId,
TreeType = db.DepartmentSet
.Where(ds => ds.ParentId == b.Id).Count() > 0 ? "r" : "c"
};
//var resultb = from c in db.DepartmentSet
// join b in db.DepartmentSet on c.Id equals b.ParentId
// where (c.Id == depid)
// select new VGetDepartmentTree
// {
// Id = b.Id,
// Name = b.Name,
// ParentId = b.ParentId,
// TreeType = db.DepartmentSet
// .Where(ds => ds.ParentId == b.Id).Count() > 0 ? "r" : "c"
// };
var resultb = GetDparentsID(depid);
var result = resulta.ToList().Concat(resultb);
var data = new { data = result,
rootdep = resulta.Take(1)
};
return new Result { IsSuccess = true, Data = data };
}
/// <summary>
/// 递归查询部门,
/// </summary>
/// <param name="p_id">父级部门ID</param>
/// <returns></returns>
public IEnumerable<VGetDepartmentTree> GetDparentsID(int p_id)
{
var resultb = from c in db.DepartmentSet
join b in db.DepartmentSet on c.Id equals b.ParentId
where (c.Id == p_id)
select new VGetDepartmentTree
{
Id = b.Id,
Name = b.Name,
ParentId = b.ParentId,
TreeType = db.DepartmentSet
.Where(ds => ds.ParentId == b.Id).Count() > 0 ? "r" : "c"
};
return resultb.ToList().Concat(resultb.ToList().SelectMany(t => GetDparentsID(t.Id)));
}