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 } }