using LeaRun.Application.Busines.BaseManage;
using LeaRun.Application.Cache;
using LeaRun.Application.Code;
using LeaRun.Application.Entity.BaseManage;
using LeaRun.Util;
using LeaRun.Util.WebControl;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
namespace LeaRun.Application.Web.Areas.BaseManage.Controllers
{
///
/// 版 本 6.1
/// Copyright (c) 2013-2016 上海力软信息技术有限公司
/// 创建人:佘赐雄
/// 日 期:2015.11.02 14:27
/// 描 述:机构管理
///
public class OrganizeController : MvcControllerBase
{
private OrganizeBLL organizeBLL = new OrganizeBLL();
private OrganizeCache organizeCache = new OrganizeCache();
#region 视图功能
///
/// 机构管理
///
///
[HttpGet]
[HandlerAuthorize(PermissionMode.Enforce)]
public ActionResult Index()
{
return View();
}
///
/// 机构表单
///
///
[HttpGet]
[HandlerAuthorize(PermissionMode.Enforce)]
public ActionResult Form()
{
return View();
}
#endregion
#region 获取数据
///
/// 机构列表
///
/// 关键字
/// 返回树形Json
[HttpGet]
public ActionResult GetTreeJson(string keyword)
{
var data = organizeCache.GetList().ToList();
if (!string.IsNullOrEmpty(keyword))
{
data = data.TreeWhere(t => t.FullName.Contains(keyword), "OrganizeId");
}
var treeList = new List();
foreach (OrganizeEntity item in data)
{
TreeEntity tree = new TreeEntity();
bool hasChildren = data.Count(t => t.ParentId == item.OrganizeId) == 0 ? false : true;
tree.id = item.OrganizeId;
tree.text = item.FullName;
tree.value = item.OrganizeId;
tree.isexpand = true;
tree.complete = true;
tree.hasChildren = hasChildren;
tree.parentId = item.ParentId;
treeList.Add(tree);
}
return Content(treeList.TreeToJson());
}
///
/// 机构列表
///
/// 查询条件
/// 关键字
/// 返回树形列表Json
[HttpGet]
public ActionResult GetTreeListJson(string condition, string keyword)
{
var data = organizeBLL.GetList().ToList();
if (!string.IsNullOrEmpty(condition) && !string.IsNullOrEmpty(keyword))
{
#region 多条件查询
switch (condition)
{
case "FullName": //公司名称
data = data.TreeWhere(t => t.FullName.Contains(keyword), "OrganizeId");
break;
case "EnCode": //外文名称
data = data.TreeWhere(t => t.EnCode.Contains(keyword), "OrganizeId");
break;
case "ShortName": //中文名称
data = data.TreeWhere(t => t.ShortName.Contains(keyword), "OrganizeId");
break;
case "Manager": //负责人
data = data.TreeWhere(t => t.Manager.Contains(keyword), "OrganizeId");
break;
default:
break;
}
#endregion
}
var treeList = new List();
foreach (OrganizeEntity item in data)
{
TreeGridEntity tree = new TreeGridEntity();
bool hasChildren = data.Count(t => t.ParentId == item.OrganizeId) == 0 ? false : true;
tree.id = item.OrganizeId;
tree.hasChildren = hasChildren;
tree.parentId = item.ParentId;
tree.expanded = true;
tree.entityJson = item.ToJson();
treeList.Add(tree);
}
return Content(treeList.TreeJson());
}
///
/// 机构实体
///
/// 主键值
/// 返回对象Json
[HttpGet]
public ActionResult GetFormJson(string keyValue)
{
var data = organizeBLL.GetEntity(keyValue);
return Content(data.ToJson());
}
#endregion
#region 验证数据
///
/// 公司名称不能重复
///
/// 公司名称
/// 主键
///
[HttpGet]
public ActionResult ExistFullName(string FullName, string keyValue)
{
bool IsOk = organizeBLL.ExistFullName(FullName, keyValue);
return Content(IsOk.ToString());
}
///
/// 外文名称不能重复
///
/// 外文名称
/// 主键
///
[HttpGet]
public ActionResult ExistEnCode(string EnCode, string keyValue)
{
bool IsOk = organizeBLL.ExistEnCode(EnCode, keyValue);
return Content(IsOk.ToString());
}
///
/// 中文名称不能重复
///
/// 中文名称
/// 主键
///
[HttpGet]
public ActionResult ExistShortName(string ShortName, string keyValue)
{
bool IsOk = organizeBLL.ExistShortName(ShortName, keyValue);
return Content(IsOk.ToString());
}
#endregion
#region 提交数据
///
/// 删除机构
///
/// 主键值
///
[HttpPost]
[ValidateAntiForgeryToken]
[AjaxOnly]
[HandlerAuthorize(PermissionMode.Enforce)]
public ActionResult RemoveForm(string keyValue)
{
organizeBLL.RemoveForm(keyValue);
return Success("删除成功。");
}
///
/// 保存机构表单(新增、修改)
///
/// 主键值
/// 机构实体
///
[HttpPost]
[ValidateAntiForgeryToken]
[AjaxOnly]
public ActionResult SaveForm(string keyValue, OrganizeEntity organizeEntity)
{
organizeBLL.SaveForm(keyValue, organizeEntity);
return Success("操作成功。");
}
#endregion
}
}