You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
8.2 KiB
203 lines
8.2 KiB
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<TreeSelectModel>();
|
|
if (RoleFullName.Contains("采购"))
|
|
{
|
|
var mainddata = data.Where(x => x.F_EnCode.Contains(RoleEnCode)).ToList();
|
|
var detailpart = new List<OrganizeByVendorEntity>();
|
|
//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<TreeViewModel>();
|
|
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<TreeGridModel>();
|
|
if (RoleFullName.Contains("采购"))
|
|
{
|
|
var mainddata = data.Where(x => x.F_EnCode.Contains(RoleEnCode)).ToList();
|
|
var detailpart = new List<OrganizeByVendorEntity>();
|
|
//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("删除成功。");
|
|
}
|
|
}
|
|
}
|