using NFine.Application.SystemManage; using NFine.Code; using NFine.Domain._03_Entity.SystemManage; using NFine.Domain.Entity.SystemManage; using NPOI.SS.Formula.Functions; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Web.Mvc; using System.Web.Razor.Tokenizer.Symbols; namespace NFine.Web.Areas.SystemManage.Controllers { public class OrganizeByVendorController : ControllerBase { private OrganizeByVendorApp organizeApp = new OrganizeByVendorApp(); [HttpGet] [HandlerAjaxOnly] public ActionResult GetTreeSelectJson() { string RoleEnCode = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode; string RoleFullName = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleFullName; var data = organizeApp.GetList(); var treeList = new List(); if (RoleFullName.Contains("采购")) { var mainddata = data.Where(x => x.F_EnCode.Contains(RoleEnCode)).ToList(); var detailpart = new List(); //var query = from a in data // join b in data on a.F_Id equals b.F_ParentId into ab // from detail in ab.DefaultIfEmpty() // where a.F_EnCode == RoleEnCode // select new { // main=a, // dets=detail // }; foreach (var item in mainddata) { detailpart = data.Where(x => item.F_Id == x.F_ParentId).ToList(); TreeSelectModel treeModel = new TreeSelectModel(); treeModel.id = item.F_Id; treeModel.text = item.F_FullName; treeModel.parentId = item.F_ParentId; treeModel.data = item; treeList.Add(treeModel); foreach (var detail in detailpart) { TreeSelectModel treeModeldetail = new TreeSelectModel(); treeModeldetail.id = detail.F_Id; treeModeldetail.text = detail.F_FullName; ; treeModeldetail.parentId = detail.F_ParentId; treeModel.data = detail; treeList.Add(treeModeldetail); } } } else { foreach (OrganizeByVendorEntity item in data) { TreeSelectModel treeModel = new TreeSelectModel(); //bool hasChildren = data.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; treeModel.id = item.F_Id; treeModel.text = item.F_FullName; treeModel.parentId = item.F_ParentId; treeModel.data = item; treeList.Add(treeModel); } } return Content(treeList.TreeSelectJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetTreeJson() { var data = organizeApp.GetList(); var treeList = new List(); foreach (OrganizeByVendorEntity item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; tree.id = item.F_Id; tree.text = item.F_FullName; tree.value = item.F_EnCode; tree.parentId = item.F_ParentId; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return Content(treeList.TreeViewJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetTreeGridJson(string keyword) { string RoleEnCode = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode; string RoleFullName = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleFullName; var data = organizeApp.GetList(); if (!string.IsNullOrEmpty(keyword)) { data = data.Where(x=>x.F_FullName.Contains(keyword)).ToList(); } var treeList = new List(); if (RoleFullName.Contains("采购")) { var mainddata = data.Where(x => x.F_EnCode.Contains(RoleEnCode)).ToList(); var detailpart = new List(); //var query = from a in data // join b in data on a.F_Id equals b.F_ParentId into ab // from detail in ab.DefaultIfEmpty() // where a.F_EnCode == RoleEnCode // select new { // main=a, // dets=detail // }; foreach (var item in mainddata) { detailpart = data.Where(x => item.F_Id == x.F_ParentId).ToList(); TreeGridModel treeModel = new TreeGridModel(); treeModel.id = item.F_Id; treeModel.isLeaf = true; treeModel.parentId = item.F_ParentId; treeModel.expanded = true; treeModel.entityJson = item.ToJson(); treeList.Add(treeModel); foreach (var detail in detailpart) { TreeGridModel treeModeldetail = new TreeGridModel(); treeModeldetail.id = detail.F_Id; treeModeldetail.isLeaf = false; treeModeldetail.parentId = detail.F_ParentId; treeModeldetail.expanded = false; treeModeldetail.entityJson = detail.ToJson(); treeList.Add(treeModeldetail); } } } else { foreach (OrganizeByVendorEntity item in data) { TreeGridModel treeModel = new TreeGridModel(); bool hasChildren = data.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; treeModel.id = item.F_Id; treeModel.isLeaf = hasChildren; treeModel.parentId = item.F_ParentId; treeModel.expanded = hasChildren; treeModel.entityJson = item.ToJson(); treeList.Add(treeModel); } } //foreach (var item in query) //{ // TreeGridModel treeModel = new TreeGridModel(); // bool hasChildren = data.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; // treeModel.id = item.main.F_Id; // treeModel.isLeaf = hasChildren; // treeModel.parentId = item.F_ParentId; // treeModel.expanded = hasChildren; // treeModel.entityJson = item.ToJson(); // treeList.Add(treeModel); //} return Content(treeList.TreeGridJson()); } [HttpGet] [HandlerAjaxOnly] public ActionResult GetFormJson(string keyValue) { var data = organizeApp.GetForm(keyValue); return Content(data.ToJson()); } [HttpPost] [HandlerAjaxOnly] [ValidateAntiForgeryToken] public ActionResult SubmitForm(OrganizeByVendorEntity organizeEntity, string keyValue) { organizeApp.SubmitForm(organizeEntity, keyValue); return Success("操作成功。"); } [HttpPost] [HandlerAjaxOnly] [HandlerAuthorize] [ValidateAntiForgeryToken] public ActionResult DeleteForm(string keyValue) { organizeApp.DeleteForm(keyValue); return Success("删除成功。"); } } }