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

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("删除成功。");
}
}
}