1274 lines
60 KiB
C#
1274 lines
60 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Web;
|
||
using System.Web.Mvc;
|
||
using WX.CRM.BLL.Application.UserComBox;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.IBLL.Base;
|
||
using WX.CRM.IBLL.Ord;
|
||
using WX.CRM.IBLL.Util;
|
||
using WX.CRM.Model.Entity;
|
||
using WX.CRM.WebHelper;
|
||
using WX.CRM.WebHelper.ExcelImport;
|
||
|
||
namespace WX.CRM.WEB.Controllers
|
||
{
|
||
public class ControlController : BaseController
|
||
{
|
||
//
|
||
// GET: /控件控制器/
|
||
IBAS_INNERGROUP_Q innerGroupBiz_Q;
|
||
//IGJS_MON_INNERGROUP_Q innerMonGroupBiz_Q;
|
||
IBAS_INNERUSER_Q innseruser_Q;
|
||
//IGJS_MON_INNERUSER_Q gjsinnseruser_Q;
|
||
IORD_MEMOTYPE_Q memoTypeBiz_Q;
|
||
IORD_MEMOSUBTYPE_Q memoSubBiz_Q;
|
||
IBAS_EXCELIMPORTLOG_Q excelImport_Q;
|
||
IBAS_INNERDEPARTMENT_Q innerDepartMent_Q;
|
||
ICACHE_Q _cacheQ;
|
||
private readonly IUserServices _userComBo;
|
||
public ControlController(IBAS_INNERGROUP_Q _innerGroupBiz_Q, IBAS_INNERUSER_Q _innseruser_Q, IORD_MEMOTYPE_Q _memoTypeBiz_Q, IORD_MEMOSUBTYPE_Q _memoSubBiz_Q, IBAS_EXCELIMPORTLOG_Q _excelImport_Q, IBAS_INNERDEPARTMENT_Q _innerDepartMent_Q, ICACHE_Q cacheQ, IUserServices userComBo)
|
||
{
|
||
this.innerGroupBiz_Q = _innerGroupBiz_Q;
|
||
this.innseruser_Q = _innseruser_Q;
|
||
this.memoTypeBiz_Q = _memoTypeBiz_Q;
|
||
this.memoSubBiz_Q = _memoSubBiz_Q;
|
||
this.excelImport_Q = _excelImport_Q;
|
||
//this.innerMonGroupBiz_Q = _innerMonGroupBiz_Q;
|
||
//this.gjsinnseruser_Q = _gjsinnseruser_Q;
|
||
this.innerDepartMent_Q = _innerDepartMent_Q;
|
||
this._cacheQ = cacheQ;
|
||
this._userComBo = userComBo;
|
||
}
|
||
[HttpGet]
|
||
public ActionResult ExcelExport()
|
||
{
|
||
string query = Server.UrlDecode(Request.QueryString["Query"]);
|
||
int Index = query.IndexOf("?") + 1;
|
||
string url = query.Substring(0, Index);
|
||
string param = query.Substring(Index, query.Length - Index);
|
||
foreach (string paramx in param.Split('&'))
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(paramx))
|
||
{
|
||
string[] paramaxs = paramx.Split('=');
|
||
url += "&" + paramaxs[0] + "=" + Server.UrlEncode(paramaxs[1]);
|
||
}
|
||
}
|
||
ViewBag.Query = url.Replace("?&", "?");
|
||
return View();
|
||
}
|
||
[HttpGet]
|
||
public ActionResult ExcelExport_cookie()
|
||
{
|
||
string query = Server.UrlDecode(Request.QueryString["Query"]);
|
||
int Index = query.IndexOf("?") + 1;
|
||
string url = query.Substring(0, Index);
|
||
string param = query.Substring(Index, query.Length - Index);
|
||
foreach (string paramx in param.Split('&'))
|
||
{
|
||
string[] paramaxs = paramx.Split('=');
|
||
url += "&" + paramaxs[0] + "=" + Server.UrlEncode(paramaxs[1]);
|
||
}
|
||
ViewBag.Query = url.Replace("?&", "?");
|
||
return View();
|
||
}
|
||
|
||
#region ToolBar(列表操作的顶端ToolBar控件)
|
||
public ActionResult ToolBar(ToolBar tool)
|
||
{
|
||
|
||
//这里可以将Tool进行数据过滤
|
||
return View(tool);
|
||
}
|
||
#endregion
|
||
|
||
#region ToolBar(列表操作的顶端ToolBar控件)
|
||
public ActionResult ToolBarNew(ToolBar tool, ToolBarNew[] otherToolBars)
|
||
{
|
||
ViewBag.toolBars = otherToolBars;
|
||
//这里可以将Tool进行数据过滤
|
||
return View(tool);
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
#region UserComBox(销售部/销售组/员工Combox级联控件)
|
||
|
||
#region 新组织结构接了SSO后版本
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
/// <param name="type"></param>
|
||
/// <param name="isShowDismiss"></param>
|
||
/// <param name="isSelf"></param>
|
||
/// <param name="currentRight">可传递指定权限作为等级设定</param>
|
||
/// <returns></returns>
|
||
public ActionResult UserSSOComBox(string type = "GroupAndUser", bool isShowDismiss = false, bool isSelf = false, string currentRight = null)
|
||
{
|
||
var level = LevelSSO(currentRight);
|
||
//decimal? channelMin = null;
|
||
//decimal? channelMax = null;
|
||
var comboxTree = new List<ComboTreeView>();
|
||
var companyList = _cacheQ.GetList_innerCompany();
|
||
var salesDeptList = _cacheQ.GetList_SalesDepartMent();
|
||
var groupList = _cacheQ.GetGroupList().ToList();
|
||
var rightLevel = _cacheQ.GetRightLevel();
|
||
var rightLevelDetail = _cacheQ.GetRightLevelDetail();
|
||
List<decimal> hasGid = new List<decimal>();//在部门中的所有GID
|
||
string topDeptIDs = string.Empty;//总部门或者组别
|
||
if (level == "All")
|
||
{
|
||
comboxTree.Insert(0, new ComboTreeView(0, "请选择", string.Empty, false, new ComboTreeAttribute(null, null, null, "All").ToJson(), null));
|
||
var firstNodeList = salesDeptList.Where(n => (n.DEPARTMENT_PARENTID == 0 || n.DEPARTMENT_PARENTID == null) && n.IS_DELETED == 0).OrderBy(m => m.DEPARTMENT_SORT).ToList();
|
||
foreach (var dept in firstNodeList)
|
||
{
|
||
ComboTreeView view = new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(null, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), new List<ComboTreeView>());
|
||
view.department_id = dept.DEPARTMENT_ID;
|
||
view.iconCls = "icon-deptmini";
|
||
GetChildDeptOrGroup(view, salesDeptList, groupList, hasGid);
|
||
comboxTree.Add(view);
|
||
}
|
||
topDeptIDs = "0";
|
||
}
|
||
else if (level == "Dept")
|
||
{
|
||
var nowcomboxTree = new List<ComboTreeView>();
|
||
foreach (var dept in salesDeptList.Where(p => userOnGroupId.Contains(p.SALEDEPTID) && p.IS_DELETED == 0).OrderBy(m=>m.DEPARTMENT_SORT))//自己管理的组别或者部门
|
||
{
|
||
ComboTreeView view = new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(null, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), new List<ComboTreeView>());
|
||
view.department_id = dept.DEPARTMENT_ID;
|
||
view.iconCls = "icon-deptmini";
|
||
GetChildDeptOrGroup(view, salesDeptList, groupList, hasGid);
|
||
nowcomboxTree.Add(view);
|
||
}
|
||
foreach (var group in groupList.Where(p => userOnGroupId.Contains(p.GID) && !hasGid.Contains(p.GID) && p.IS_DELETED == 0).OrderBy(m => m.DEPARTMENT_SORT))
|
||
{
|
||
var myg = new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(null, group.DEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null);
|
||
myg.iconCls = "icon-groupmini";
|
||
nowcomboxTree.Add(myg);
|
||
}
|
||
if (nowcomboxTree.Count() > 1)//如果数据大于1
|
||
{
|
||
topDeptIDs = string.Join(",", nowcomboxTree.Select(m => m.id));
|
||
comboxTree = new List<ComboTreeView>
|
||
{
|
||
new ComboTreeView(0, "所有部门", string.Empty, false, new ComboTreeAttribute(null,topDeptIDs ,null, "Dept").ToJson(),nowcomboxTree)
|
||
};
|
||
topDeptIDs = "0";
|
||
}
|
||
else
|
||
{
|
||
comboxTree = nowcomboxTree;
|
||
topDeptIDs = nowcomboxTree[0].id.ToString();
|
||
}
|
||
}
|
||
else if (level == "Self")
|
||
{
|
||
var groups = new List<ComboTreeView>();
|
||
foreach (var group in groupList.Where(p => p.GID == userGroupId))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(companyId, saleDeptId.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
|
||
comboxTree = groups;
|
||
topDeptIDs = comboxTree[0].id.ToString();
|
||
}
|
||
else if (level == "Privilege")//有特殊权限
|
||
{
|
||
var nowroles = userRoleCodes.Replace("][", ",").Replace("]", "").Replace("[", "").Split(',');
|
||
var list = rightLevel.Where(m => m.RIGHTID == currentRight && nowroles.Contains(m.ROLECODE) && m.STATUS == 1).ToList();
|
||
if (list.Count > 0)//发现特权
|
||
{
|
||
var levelid = list.Select(m => m.PKID).ToArray();
|
||
var detaillist = rightLevelDetail.Where(m => levelid.Contains(m.LEVELID)).ToList();
|
||
if (detaillist.Count > 0)//特权有详细内容,才能够执行特权
|
||
{
|
||
var deptdetail = detaillist.Where(m => m.TYPEID == 2).ToList();//部门
|
||
var groupdetail = detaillist.Where(m => m.TYPEID == 1).ToList();//组
|
||
var setdeptid = deptdetail.Select(m => m.CID).ToList();
|
||
var setgroupid = groupdetail.Select(m => m.CID).ToArray();
|
||
var nowcomboxTree = new List<ComboTreeView>();
|
||
foreach (var dept in salesDeptList.Where(p => setdeptid.Contains(p.SALEDEPTID)))//自己管理的组别或者部门
|
||
{
|
||
ComboTreeView view = new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(null, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), new List<ComboTreeView>());
|
||
view.department_id = dept.DEPARTMENT_ID;
|
||
view.iconCls = "icon-deptmini";
|
||
GetChildDeptOrGroup(view, salesDeptList, groupList, hasGid);
|
||
nowcomboxTree.Add(view);
|
||
}
|
||
foreach (var group in groupList.Where(p => setgroupid.Contains(p.GID) && !hasGid.Contains(p.GID)).OrderBy(m => m.DEPARTMENT_SORT))
|
||
{
|
||
var myg = new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(null, group.DEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null);
|
||
myg.iconCls = "icon-groupmini";
|
||
nowcomboxTree.Add(myg);
|
||
}
|
||
if (nowcomboxTree.Count() > 1)//如果数据大于1
|
||
{
|
||
topDeptIDs = string.Join(",", nowcomboxTree.Select(m => m.id));
|
||
comboxTree = new List<ComboTreeView>
|
||
{
|
||
new ComboTreeView(0, "所有部门", string.Empty, false, new ComboTreeAttribute(null,topDeptIDs ,null, "Dept").ToJson(),nowcomboxTree)
|
||
};
|
||
topDeptIDs = "0";
|
||
}
|
||
else
|
||
{
|
||
comboxTree = nowcomboxTree;
|
||
topDeptIDs = nowcomboxTree[0].id.ToString();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
ViewBag.tree = comboxTree.ToJson();
|
||
ViewBag.isShowDismiss = isShowDismiss.ToString();
|
||
ViewBag.isSelf = isSelf.ToString();
|
||
ViewBag.level = level;
|
||
ViewBag.type = type;
|
||
|
||
ViewBag.currentUserId = UserId.ToString();
|
||
ViewBag.currentGroupId = topDeptIDs;
|
||
//ViewBag.currentDeptId = saleDeptId.ToString();
|
||
//ViewBag.currentCompanyId = companyId.ToString();
|
||
return View();
|
||
}
|
||
public void GetChildDeptOrGroup(ComboTreeView view, List<BAS_SALESDEPARTMENT> salesDeptList, List<BAS_INNERGROUP> groupList, List<decimal> hasGid)
|
||
{
|
||
var firstNodeList = salesDeptList.Where(n => n.DEPARTMENT_PARENTID == view.department_id && n.IS_DELETED != 1 && (n.IS_PROFESSION == 1 || n.IS_PROFESSION == 3)).OrderBy(m => m.DEPARTMENT_SORT).ToList();//获取子级别数据
|
||
firstNodeList = firstNodeList.Union(salesDeptList.Where(n => n.DEPARTMENT_PARENTID == view.department_id && n.IS_PROFESSION == 0 && n.IS_DELETED == 0).OrderBy(m => m.DEPARTMENT_SORT).ToList()).ToList();
|
||
foreach (var dept in firstNodeList)
|
||
{
|
||
ComboTreeView cildview = new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(null, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), new List<ComboTreeView>());
|
||
cildview.department_id = dept.DEPARTMENT_ID;
|
||
if (dept.IS_PROFESSION == 1 || dept.IS_PROFESSION == 3)
|
||
{
|
||
cildview.iconCls = "icon-deptmini";
|
||
}
|
||
else
|
||
{
|
||
cildview.iconCls = "icon-otherdeptmini";
|
||
}
|
||
GetChildDeptOrGroup(cildview, salesDeptList, groupList, hasGid);
|
||
view.children.Add(cildview);
|
||
}
|
||
foreach (var group in groupList.Where(p => p.SALEDEPTID == view.id && p.IS_DELETED != 1).OrderBy(m => m.DEPARTMENT_SORT))
|
||
{
|
||
hasGid.Add(group.GID);
|
||
var myg = new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(null, view.id.ToString(), group.GID.ToString(), "Group").ToJson(), null);
|
||
myg.iconCls = "icon-groupmini";
|
||
view.children.Add(myg);
|
||
}
|
||
}
|
||
|
||
|
||
[HttpPost]
|
||
public JsonResult GetUserSSOCombo(decimal? companyId, decimal? deptId, string groupId, string level, bool isShowDismiss = false)
|
||
{
|
||
decimal? userId = null;
|
||
if (level == "Self")
|
||
{
|
||
userId = UserId;
|
||
}
|
||
var users = _userComBo.GetUserComBoSSO(deptId, groupId, userId);
|
||
if (!isShowDismiss)
|
||
{
|
||
users = users.Where(p => p.IsDimiss == 0).ToList();
|
||
}
|
||
users = users.OrderBy(p => p.Eid).ToList();
|
||
return Json(users, JsonRequestBehavior.AllowGet);
|
||
}
|
||
#endregion
|
||
|
||
|
||
#region 新组织结构
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
/// <param name="type"></param>
|
||
/// <param name="isShowDismiss"></param>
|
||
/// <param name="isSelf"></param>
|
||
/// <param name="currentRight">可传递指定权限作为等级设定</param>
|
||
/// <returns></returns>
|
||
public ActionResult UserComBox(string type = "GroupAndUser", bool isShowDismiss = false, bool isSelf = false, string currentRight = null)
|
||
{
|
||
var level = Level(currentRight);
|
||
//decimal? channelMin = null;
|
||
//decimal? channelMax = null;
|
||
var comboxTree = new List<ComboTreeView>();
|
||
var companyList = _cacheQ.GetList_innerCompany();
|
||
var salesDeptList = _cacheQ.GetList_SalesDepartMent();
|
||
var groupList = _cacheQ.GetGroupList().Where(p => p.ISHIDE == 0);
|
||
var rightLevel = _cacheQ.GetRightLevel();
|
||
var rightLevelDetail = _cacheQ.GetRightLevelDetail();
|
||
|
||
if (level == "All")
|
||
{
|
||
comboxTree.Insert(0, new ComboTreeView(0, "请选择", string.Empty, false, new ComboTreeAttribute(null, null, null, "All").ToJson(), null));
|
||
foreach (var company in companyList)
|
||
{
|
||
var depts = new List<ComboTreeView>();
|
||
foreach (var dept in salesDeptList.Where(p => p.COMPANYID == company.COMPANYID))
|
||
{
|
||
var groups = new List<ComboTreeView>();
|
||
foreach (var group in groupList.Where(p => p.SALEDEPTID == dept.SALEDEPTID))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(company.COMPANYID, dept.SALEDEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
depts.Add(new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(company.COMPANYID, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), groups));
|
||
}
|
||
comboxTree.Add(new ComboTreeView(company.COMPANYID, company.COMPANYNAME, string.Empty, false, new ComboTreeAttribute(company.COMPANYID, null, null, "Company").ToJson(), depts));
|
||
}
|
||
}
|
||
else if (level == "Company")
|
||
{
|
||
foreach (var company in companyList.Where(p => p.COMPANYID == companyId))
|
||
{
|
||
var depts = new List<ComboTreeView>();
|
||
foreach (var dept in salesDeptList.Where(p => p.COMPANYID == company.COMPANYID))
|
||
{
|
||
var groups = new List<ComboTreeView>();
|
||
foreach (var group in groupList.Where(p => p.SALEDEPTID == dept.SALEDEPTID))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(company.COMPANYID, dept.SALEDEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
depts.Add(new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(company.COMPANYID, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), groups));
|
||
}
|
||
comboxTree.Insert(0, new ComboTreeView(company.COMPANYID, company.COMPANYNAME, string.Empty, false, new ComboTreeAttribute(company.COMPANYID, null, null, "Company").ToJson(), depts));
|
||
}
|
||
}
|
||
else if (level == "Dept")
|
||
{
|
||
var depts = new List<ComboTreeView>();
|
||
foreach (var dept in salesDeptList.Where(p => p.SALEDEPTID == saleDeptId))
|
||
{
|
||
var groups = new List<ComboTreeView>();
|
||
foreach (var group in groupList.Where(p => p.SALEDEPTID == dept.SALEDEPTID))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(companyId, dept.SALEDEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
depts.Add(new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(companyId, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), groups));
|
||
}
|
||
comboxTree = depts;
|
||
}
|
||
else if (level == "Group")
|
||
{
|
||
var groups = new List<ComboTreeView>();
|
||
if (userOnGroupId != null)
|
||
{
|
||
if (userOnGroupId.Length > 0)
|
||
{
|
||
foreach (var group in groupList.Where(p => userOnGroupId.Contains(p.GID)))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(companyId, group.SALEDEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
}
|
||
if (userOnGroupId.Length > 1)
|
||
{
|
||
comboxTree = new List<ComboTreeView>
|
||
{
|
||
new ComboTreeView(0, "所有组", string.Empty, false, new ComboTreeAttribute(companyId, null, string.Join(",", userOnGroupId), "Group").ToJson(), groups)
|
||
};
|
||
}
|
||
else
|
||
{
|
||
comboxTree = groups;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//如果没有设置管理组则就是自己当前所在组
|
||
foreach (var group in groupList.Where(p => p.GID == userGroupId))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(companyId, group.SALEDEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
}
|
||
}
|
||
else if (level == "Self")
|
||
{
|
||
var groups = new List<ComboTreeView>();
|
||
foreach (var group in groupList.Where(p => p.GID == userGroupId))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(companyId, saleDeptId.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
|
||
comboxTree = groups;
|
||
}
|
||
else if (level == "Privilege")
|
||
{
|
||
var nowroles = userRoleCodes.Replace("][", ",").Replace("]", "").Replace("[", "").Split(',');
|
||
var list = rightLevel.Where(m => m.RIGHTID == currentRight && nowroles.Contains(m.ROLECODE) && m.STATUS == 1).ToList();
|
||
if (list.Count > 0)//发现特权
|
||
{
|
||
var levelid = list.Select(m => m.PKID).ToArray();
|
||
var detaillist = rightLevelDetail.Where(m => levelid.Contains(m.LEVELID)).ToList();
|
||
if (detaillist.Count > 0)//特权有详细内容,才能够执行特权
|
||
{
|
||
var deptdetail = detaillist.Where(m => m.TYPEID == 2).ToList();//部门
|
||
var groupdetail = detaillist.Where(m => m.TYPEID == 1).ToList();//组
|
||
|
||
if (deptdetail.Any())
|
||
{
|
||
var setdeptid = deptdetail.Select(m => m.CID).ToList();
|
||
//权限到部门
|
||
var depts = new List<ComboTreeView>();
|
||
var deptList = salesDeptList.Where(p => setdeptid.Contains(p.SALEDEPTID));
|
||
foreach (var dept in deptList)
|
||
{
|
||
var groups = new List<ComboTreeView>();
|
||
foreach (var group in groupList.Where(p => p.SALEDEPTID == dept.SALEDEPTID))
|
||
{
|
||
groups.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(companyId, dept.SALEDEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
depts.Add(new ComboTreeView(dept.SALEDEPTID, dept.DEPTNAME, string.Empty, false, new ComboTreeAttribute(companyId, dept.SALEDEPTID.ToString(), null, "Dept").ToJson(), groups));
|
||
}
|
||
if (deptList.Count() > 1)
|
||
{
|
||
var deptIds = deptList.Select(p => p.SALEDEPTID);
|
||
comboxTree = new List<ComboTreeView>
|
||
{
|
||
new ComboTreeView(0, "所有部门", string.Empty, false, new ComboTreeAttribute(companyId, string.Join(",", deptIds), null, "Dept").ToJson(), depts)
|
||
};
|
||
}
|
||
else
|
||
{
|
||
comboxTree = depts;
|
||
}
|
||
}
|
||
if (groupdetail.Any())
|
||
{
|
||
var setgroupid = groupdetail.Select(m => m.CID).ToArray();
|
||
var depts = new List<ComboTreeView>();
|
||
var groupsTree = new List<ComboTreeView>();
|
||
var groups = groupList.Where(p => setgroupid.Contains(p.GID));
|
||
foreach (var group in groups)
|
||
{
|
||
groupsTree.Add(new ComboTreeView(group.GID, group.GNAME, string.Empty, false, new ComboTreeAttribute(companyId, group.SALEDEPTID.ToString(), group.GID.ToString(), "Group").ToJson(), null));
|
||
}
|
||
if (groups.Count() > 1)
|
||
{
|
||
var gIds = groups.Select(p => p.GID);
|
||
depts.Add(new ComboTreeView(0, "所有组", string.Empty, false, new ComboTreeAttribute(companyId, null, string.Join(",", gIds), "Group").ToJson(), groupsTree));
|
||
}
|
||
if (deptdetail.Any())
|
||
{
|
||
comboxTree.AddRange(depts.Any() ? depts : groupsTree);
|
||
}
|
||
else
|
||
{
|
||
comboxTree = depts.Any() ? depts : groupsTree;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
ViewBag.tree = comboxTree.ToJson();
|
||
ViewBag.isShowDismiss = isShowDismiss.ToString();
|
||
ViewBag.isSelf = isSelf.ToString();
|
||
ViewBag.level = level;
|
||
ViewBag.type = type;
|
||
|
||
ViewBag.currentUserId = UserId.ToString();
|
||
ViewBag.currentGroupId = (userOnGroupId != null && userOnGroupId.Length > 0) ? (userOnGroupId.Length > 1 ? "0" : string.Join(",", userOnGroupId)) : userGroupId.ToString();
|
||
ViewBag.currentDeptId = saleDeptId.ToString();
|
||
ViewBag.currentCompanyId = companyId.ToString();
|
||
return View();
|
||
}
|
||
[HttpPost]
|
||
public JsonResult GetUserCombo(decimal? companyId, decimal? deptId, string groupId, string level, bool isShowDismiss = false)
|
||
{
|
||
decimal? userId = null;
|
||
if (level == "Self")
|
||
{
|
||
userId = UserId;
|
||
}
|
||
var users = _userComBo.GetUserComBo(companyId, deptId, groupId, userId);
|
||
if (!isShowDismiss)
|
||
{
|
||
users = users.Where(p => p.IsDimiss == 0).ToList();
|
||
}
|
||
users = users.OrderBy(p => p.Eid).ToList();
|
||
return Json(users, JsonRequestBehavior.AllowGet);
|
||
}
|
||
#endregion
|
||
|
||
|
||
#region 旧的组织结构
|
||
|
||
|
||
/// <summary>
|
||
/// UserComBox(销售部/销售组/员工Combox级联控件)(根据员工的不同权限来自动限制数据)
|
||
/// </summary>
|
||
/// <param name="type">null/empty/0:普通组织结构控件;1:月结动态变动组织结构控件 2:普通组织结构无员工 3:月结动态组织结构无员工</param>
|
||
/// <param name="controlName">控件ID名称</param>
|
||
/// <param name="roleCodes">角色代码("[]"将角色代码隔开)</param>
|
||
/// <param name="saledeptid">营业部ID</param>
|
||
/// <param name="salegroupid">销售组</param>
|
||
/// <param name="iseid">类型</param>
|
||
/// <param name="inneruserid">用户ID或者用户工号</param>
|
||
/// <param name="isShowDismiss">是否显示离职员工</param>
|
||
/// <returns></returns>
|
||
public ActionResult UserComBoxByRole(string DeptCode, string type, string controlName, string roleCodes, string saledeptid, string salegroupid, string iseid, string inneruserid, string onLoadSucced, string onLoadBeforeData, string labGroupTitle, string labUserTitle, string isShowDismiss, string isSelf, string currentRight)
|
||
{
|
||
decimal innerDeptId = 0;
|
||
if (string.IsNullOrWhiteSpace(type))
|
||
{
|
||
type = "0";
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(DeptCode))
|
||
{
|
||
BAS_INNERDEPARTMENT departMent = innerDepartMent_Q.GetModel(DeptCode);
|
||
innerDeptId = departMent == null ? -1 : departMent.DEPTID;
|
||
}
|
||
int queryType = 0;
|
||
if (roleCodes.IndexOf("[FZJ]") > -1)
|
||
{
|
||
if (userOnGroupId != null && userOnGroupId.Length > 0)
|
||
{
|
||
queryType = 2;
|
||
if (userOnGroupId.Length > 1)
|
||
{
|
||
saledeptid = "1";
|
||
queryType = 4;
|
||
if (string.IsNullOrEmpty(isSelf))
|
||
salegroupid = "";
|
||
}
|
||
}
|
||
}
|
||
else if (roleCodes.IndexOf("[GLY]") > -1 || roleCodes.IndexOf("[ZJ]") > -1 || roleCodes.IndexOf("[ZJZL]") > -1 || roleCodes.IndexOf("[CW]") > -1 || roleCodes.IndexOf("[ZJZG]") > -1 || roleCodes.IndexOf("[GJSBBSJY]") > -1 || (companyBusiness.IndexOf("[渤海]") > -1 && (roleCodes.IndexOf("[XHJL]") > -1 || roleCodes.IndexOf("[XHBBSJY]") > -1)))
|
||
{
|
||
queryType = 0;
|
||
if (string.IsNullOrEmpty(isSelf))
|
||
{
|
||
salegroupid = "";
|
||
saledeptid = "";
|
||
}
|
||
}
|
||
else if (roleCodes.IndexOf("[BMZG]") > -1)
|
||
{
|
||
|
||
queryType = 1;
|
||
}
|
||
else if (userOnGroupId != null && userOnGroupId.Length > 0)
|
||
{
|
||
queryType = 2;
|
||
if (userOnGroupId.Length > 1)
|
||
{
|
||
saledeptid = "1";
|
||
queryType = 4;
|
||
//if (userGroupId == 0)
|
||
//{
|
||
if (string.IsNullOrEmpty(isSelf))
|
||
salegroupid = "";
|
||
//}
|
||
}
|
||
}
|
||
else if (userGroupId != 0)
|
||
queryType = 3;
|
||
else
|
||
queryType = 5;
|
||
if (iseid == "1" && inneruserid != "")
|
||
{
|
||
BAS_INNERUSER model = innseruser_Q.GetModelByEid(Convert.ToDecimal(inneruserid));
|
||
if (model != null)
|
||
inneruserid = model.PKID.ToString();
|
||
}
|
||
else if (queryType == 3 && inneruserid == "")
|
||
{
|
||
inneruserid = UserId.ToString();
|
||
}
|
||
else if (queryType != 3 && queryType != 2)
|
||
{
|
||
if (string.IsNullOrEmpty(isSelf))
|
||
inneruserid = "";
|
||
}
|
||
if (queryType == 2)
|
||
{
|
||
if (string.IsNullOrEmpty(isSelf))
|
||
inneruserid = "";
|
||
}
|
||
ViewBag.controlName = controlName;
|
||
ViewBag.urlParameter = string.Format("saledeptid={0}&salegroupid={1}&iseid={2}&inneruserid={3}&roleCodes={4}&type={5}&innerDeptId={6}&isShowDismiss={7}¤tRight={8}", saledeptid, salegroupid, iseid, inneruserid, roleCodes, type, innerDeptId, isShowDismiss, currentRight);
|
||
ViewBag.iseid = iseid;
|
||
ViewBag.inneruserid = inneruserid;
|
||
ViewBag.salegroupid = salegroupid;
|
||
ViewBag.saledeptid = saledeptid;
|
||
ViewBag.queryType = queryType;
|
||
ViewBag.roleCodes = roleCodes;
|
||
ViewBag.onLoadSucced = onLoadSucced;//函数名称
|
||
ViewBag.onLoadBeforeData = onLoadBeforeData;
|
||
ViewBag.type = type;//控件类型
|
||
ViewBag.labGroupTitle = string.IsNullOrWhiteSpace(labGroupTitle) ? "销售组" : labGroupTitle;
|
||
ViewBag.labUserTitle = string.IsNullOrWhiteSpace(labUserTitle) ? "员工" : labUserTitle;
|
||
ViewBag.isSelf = isSelf;
|
||
return View();
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取combotree 的数据源(销售部/销售组)
|
||
/// </summary>
|
||
/// <param name="saledeptid"></param>
|
||
/// <param name="salegroupid"></param>
|
||
/// <param name="iseid"></param>
|
||
/// <param name="inneruserid"></param>
|
||
/// <returns></returns>
|
||
public JsonResult GetUserComBoxTreeList(string roleCodes, decimal? balanceCode, string type, string innerDeptId, string currentRight)
|
||
{
|
||
//---查询类型
|
||
//0:查询全部
|
||
//1:查询销售部门
|
||
//2:查询销售组
|
||
//3:普通人员只能查询自己
|
||
//4: 查询多个销售组
|
||
//5:不属于
|
||
//if (string.IsNullOrWhiteSpace(type) || type == "0" || type == "2")
|
||
//{
|
||
decimal deptId = 0;
|
||
if (!string.IsNullOrWhiteSpace(innerDeptId))
|
||
{
|
||
deptId = Convert.ToDecimal(innerDeptId);
|
||
}
|
||
int queryType = 0;
|
||
decimal _saledeptid = saleDeptId;//要查询的 销售部ID
|
||
decimal[] _groupdid = { userGroupId };//要查询的 销售组ID
|
||
decimal _userid = UserId;//要查询的 用户ID
|
||
if (roleCodes.IndexOf("[FZJ]") > -1)
|
||
{
|
||
if (userOnGroupId != null && userOnGroupId.Length > 0)
|
||
{
|
||
queryType = 2;
|
||
_groupdid = userOnGroupId;
|
||
if (userOnGroupId.Length > 1)
|
||
{
|
||
queryType = 4;
|
||
}
|
||
}
|
||
}
|
||
else if (roleCodes.IndexOf("[GLY]") > -1 || roleCodes.IndexOf("[ZJ]") > -1 || roleCodes.IndexOf("[ZJZL]") > -1 || roleCodes.IndexOf("[ZJZG]") > -1 || roleCodes.IndexOf("[CW]") > -1 || roleCodes.IndexOf("[GJSBBSJY]") > -1 || (companyBusiness.IndexOf("[渤海]") > -1 && (roleCodes.IndexOf("[XHJL]") > -1 || roleCodes.IndexOf("[XHBBSJY]") > -1)))
|
||
{
|
||
queryType = 0;
|
||
}
|
||
else if (roleCodes.IndexOf("[BMZG]") > -1)
|
||
queryType = 1;
|
||
else if (userOnGroupId != null && userOnGroupId.Length > 0)
|
||
{
|
||
queryType = 2;
|
||
_groupdid = userOnGroupId;
|
||
if (userOnGroupId.Length > 1)
|
||
{
|
||
queryType = 4;
|
||
}
|
||
}
|
||
else if (userGroupId != 0)
|
||
queryType = 3;
|
||
else
|
||
queryType = 5;
|
||
return Json(innerGroupBiz_Q.GetUserComBoxJson(queryType, _saledeptid, _groupdid, _userid, deptId, roleCodes, currentRight), JsonRequestBehavior.AllowGet);
|
||
//}
|
||
//else//这个是月结组织结构信息获取
|
||
//{
|
||
// //GJS_MON_USERINFO monUser = gjsinnseruser_Q.GetMonUserInfo(balanceCode.Value, UserId);
|
||
// //decimal deptId = 0;
|
||
// ////if (monUser.DeptId.HasValue)
|
||
// ////{
|
||
// //// deptId = monUser.DeptId.Value;
|
||
// ////}
|
||
// //int queryType = 0;
|
||
// //decimal _saledeptid = saleDeptId;//要查询的 销售部ID
|
||
// //decimal[] _groupdid = { monUser.GroupId.HasValue ? monUser.GroupId.Value : 0 };//要查询的 销售组ID
|
||
// //decimal _userid = UserId;//要查询的 用户ID
|
||
// //if (roleCodes.IndexOf("[GLY]") > -1 || roleCodes.IndexOf("[ZJ]") > -1 || roleCodes.IndexOf("[ZJZL]") > -1 || roleCodes.IndexOf("[ZJZG]") > -1 || roleCodes.IndexOf("[GJSBBSJY]") > -1 || (companyBusiness.IndexOf("[渤海]") > -1 && (roleCodes.IndexOf("[XHJL]") > -1 || roleCodes.IndexOf("[XHBBSJY]") > -1)))
|
||
// // queryType = 0;
|
||
// //else if (roleCodes.IndexOf("[BMZG]") > -1)
|
||
// // queryType = 1;
|
||
// //else if (monUser.userOnGroupId != null && monUser.userOnGroupId.Length > 0)
|
||
// //{
|
||
// // queryType = 2;
|
||
// // _groupdid = monUser.userOnGroupId;
|
||
// // if (monUser.userOnGroupId.Length > 1)
|
||
// // {
|
||
// // queryType = 4;
|
||
// // }
|
||
// //}
|
||
// //else if (userGroupId != 0)
|
||
// // queryType = 3;
|
||
// //else
|
||
// // queryType = 5;
|
||
|
||
// //return Json(innerMonGroupBiz_Q.GetMonUserComBoxJson(balanceCode.Value, queryType, _saledeptid, _groupdid, _userid, deptId), JsonRequestBehavior.AllowGet);
|
||
//}
|
||
}
|
||
|
||
[HttpPost]
|
||
/// <summary>
|
||
/// 获取select 的数据源(员工列表)
|
||
/// </summary>
|
||
/// <param name="iseid"></param>
|
||
/// <param name="ineruserid"></param>
|
||
/// <param name="salegroupids"></param>
|
||
/// <returns></returns>
|
||
public JsonResult GetUserComboxUserList(int queryType, string inneruserid, string salegroupids, string type, decimal? balanceCode, string innerDeptId, string isShowDismiss, string roleCodes, string currentRight)
|
||
{
|
||
decimal deptId = 0;
|
||
if (!string.IsNullOrWhiteSpace(innerDeptId))
|
||
{
|
||
deptId = Convert.ToDecimal(innerDeptId);
|
||
}
|
||
//if (string.IsNullOrWhiteSpace(type) || type == "0" || type == "2")
|
||
return Json(innseruser_Q.GetUserComBoxUser(queryType, inneruserid, salegroupids, deptId, isShowDismiss, roleCodes, currentRight), JsonRequestBehavior.AllowGet);
|
||
//else
|
||
// return Json(gjsinnseruser_Q.GetUserComBoxUser(balanceCode.Value, queryType, inneruserid, salegroupids, deptId), JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
|
||
#endregion
|
||
|
||
|
||
#endregion
|
||
|
||
|
||
#region 工单类型控件(业务类型|工单大类|工单小类)
|
||
/// <summary>
|
||
/// 工单类型控件(业务类型|工单大类|工单小类)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public ActionResult QueryMemoTypeUC()
|
||
{
|
||
List<SelectListItem> BusinessType = new List<SelectListItem>();//业务类型
|
||
ICACHE_Q ui = DataCacheHelper.GetCache();
|
||
List<ORD_MEMOTYPE> memoTypeList = ui.GetList_MemoType();//缓存读取 工单大类数据
|
||
List<ORD_MEMOSUBTYPE> memoSubTypeList = ui.GetList_MemoSubType();//缓存读取 获取所有工单小类数据
|
||
StringBuilder memoTypeArry = new StringBuilder();
|
||
List<ORD_MEMOTYPE> memoTypeTemp = new List<ORD_MEMOTYPE>();
|
||
SelectListItem iterm = null;
|
||
|
||
decimal BusinessId = 0;
|
||
decimal MemoTypeId = memoTypeList.Count > 0 ? memoTypeList.FirstOrDefault().TYPEID : 0;
|
||
string[] names = Enum.GetNames(typeof(WX.CRM.Model.Enum.EnumMemoType));
|
||
var values = Enum.GetValues(typeof(WX.CRM.Model.Enum.EnumMemoType));
|
||
var deptCode = Utility.GetSettingOrNullByKey("DataClientCode");
|
||
if (deptCode == "QBJZ")
|
||
{
|
||
names = Enum.GetNames(typeof(WX.CRM.Model.Enum.EnumMemoType_B1));
|
||
values = Enum.GetValues(typeof(WX.CRM.Model.Enum.EnumMemoType_B1));
|
||
}
|
||
foreach (int i in values)
|
||
{
|
||
//业务类型 添加数据
|
||
iterm = new SelectListItem() { Text = names[i], Value = i.ToString() };
|
||
BusinessType.Add(iterm);
|
||
|
||
//工单大类 添加 js容器数据
|
||
memoTypeTemp = memoTypeList.Where(m => m.MEMO_TYPE == Convert.ToDecimal(i)).ToList();
|
||
memoTypeArry.AppendFormat("Type[{0}]=", i.ToString());
|
||
memoTypeArry.Append("'");
|
||
memoTypeArry.Append("0#全部,");
|
||
for (int n = 0; n < memoTypeTemp.Count; n++)
|
||
{
|
||
memoTypeArry.AppendFormat("{0}#{1},", memoTypeTemp[n].TYPEID, memoTypeTemp[n].TYPENAME);
|
||
}
|
||
memoTypeArry.Remove(memoTypeArry.Length - 1, 1);
|
||
memoTypeArry.Append("';");
|
||
}
|
||
|
||
//获取小类数据
|
||
List<ORD_MEMOSUBTYPE> memoSubTypeTemp = new List<ORD_MEMOSUBTYPE>();
|
||
StringBuilder memoSubTypeArry = new StringBuilder();
|
||
memoSubTypeArry.Append("subType[0]='0#全部';");
|
||
foreach (var item in memoTypeList)
|
||
{
|
||
memoSubTypeTemp = memoSubTypeList.Where(m => m.MEMOTYPEID == item.TYPEID).ToList();
|
||
memoSubTypeArry.AppendFormat("subType[{0}]=", item.TYPEID);
|
||
memoSubTypeArry.Append("'");
|
||
memoSubTypeArry.AppendFormat("{0}#{1},", "0", "全部");
|
||
for (int i = 0; i < memoSubTypeTemp.Count; i++)
|
||
{
|
||
memoSubTypeArry.AppendFormat("{0}#{1},", memoSubTypeTemp[i].SUBTYPEID, memoSubTypeTemp[i].TYPENAME);
|
||
}
|
||
memoSubTypeArry.Remove(memoSubTypeArry.Length - 1, 1);
|
||
memoSubTypeArry.Append("';");
|
||
}
|
||
ViewBag.BusinessType = BusinessType;
|
||
List<SelectListItem> memoType = memoTypeList.Where(m => m.MEMO_TYPE == BusinessId).Select(m => new SelectListItem { Text = m.TYPENAME, Value = m.TYPEID.ToString() }).ToList();
|
||
memoType.Insert(0, new SelectListItem() { Value = "0", Text = "全部" });
|
||
ViewBag.memoType = memoType;//控件数据源
|
||
List<SelectListItem> memoSubType = memoSubTypeTemp.Where(m => m.MEMOTYPEID == MemoTypeId).Select(m => new SelectListItem { Text = m.TYPENAME, Value = m.SUBTYPEID.ToString() }).ToList();
|
||
memoSubType.Insert(0, new SelectListItem() { Value = "0", Text = "全部" });
|
||
ViewBag.memoSubType = memoSubType;//控件数据源
|
||
|
||
|
||
ViewBag.memoTypeArry = memoTypeArry;
|
||
ViewBag.memoSubTypeArry = memoSubTypeArry;
|
||
return View();
|
||
}
|
||
#endregion
|
||
|
||
#region 工单类型控件(重复)(业务类型|工单大类|工单小类)
|
||
/// <summary>
|
||
/// 工单类型控件(业务类型|工单大类|工单小类)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public ActionResult QueryMemoTypeRepeatUC()
|
||
{
|
||
List<SelectListItem> BusinessType = new List<SelectListItem>();//业务类型
|
||
ICACHE_Q ui = DataCacheHelper.GetCache();
|
||
List<ORD_MEMOTYPE> memoTypeList = ui.GetList_MemoType();//缓存读取 工单大类数据
|
||
List<ORD_MEMOSUBTYPE> memoSubTypeList = ui.GetList_MemoSubType();//缓存读取 获取所有工单小类数据
|
||
StringBuilder memoTypeArry = new StringBuilder();
|
||
List<ORD_MEMOTYPE> memoTypeTemp = new List<ORD_MEMOTYPE>();
|
||
SelectListItem iterm = null;
|
||
|
||
decimal BusinessId = 0;
|
||
decimal MemoTypeId = memoTypeList.Count > 0 ? memoTypeList.FirstOrDefault().TYPEID : 0;
|
||
string[] names = Enum.GetNames(typeof(WX.CRM.Model.Enum.EnumMemoType));
|
||
foreach (int i in Enum.GetValues(typeof(WX.CRM.Model.Enum.EnumMemoType)))
|
||
{
|
||
//业务类型 添加数据
|
||
iterm = new SelectListItem() { Text = names[i], Value = i.ToString() };
|
||
BusinessType.Add(iterm);
|
||
|
||
//工单大类 添加 js容器数据
|
||
memoTypeTemp = memoTypeList.Where(m => m.MEMO_TYPE == Convert.ToDecimal(i)).ToList();
|
||
memoTypeArry.AppendFormat("Type[{0}]=", i.ToString());
|
||
memoTypeArry.Append("'");
|
||
memoTypeArry.Append("0#全部,");
|
||
for (int n = 0; n < memoTypeTemp.Count; n++)
|
||
{
|
||
memoTypeArry.AppendFormat("{0}#{1},", memoTypeTemp[n].TYPEID, memoTypeTemp[n].TYPENAME);
|
||
}
|
||
memoTypeArry.Remove(memoTypeArry.Length - 1, 1);
|
||
memoTypeArry.Append("';");
|
||
}
|
||
|
||
//获取小类数据
|
||
List<ORD_MEMOSUBTYPE> memoSubTypeTemp = new List<ORD_MEMOSUBTYPE>();
|
||
StringBuilder memoSubTypeArry = new StringBuilder();
|
||
memoSubTypeArry.Append("subType[0]='0#全部';");
|
||
foreach (var item in memoTypeList)
|
||
{
|
||
memoSubTypeTemp = memoSubTypeList.Where(m => m.MEMOTYPEID == item.TYPEID).ToList();
|
||
memoSubTypeArry.AppendFormat("subType[{0}]=", item.TYPEID);
|
||
memoSubTypeArry.Append("'");
|
||
memoSubTypeArry.AppendFormat("{0}#{1},", "0", "全部");
|
||
for (int i = 0; i < memoSubTypeTemp.Count; i++)
|
||
{
|
||
memoSubTypeArry.AppendFormat("{0}#{1},", memoSubTypeTemp[i].SUBTYPEID, memoSubTypeTemp[i].TYPENAME);
|
||
}
|
||
memoSubTypeArry.Remove(memoSubTypeArry.Length - 1, 1);
|
||
memoSubTypeArry.Append("';");
|
||
}
|
||
ViewBag.BusinessType = BusinessType;
|
||
List<SelectListItem> memoType = memoTypeList.Where(m => m.MEMO_TYPE == BusinessId).Select(m => new SelectListItem { Text = m.TYPENAME, Value = m.TYPEID.ToString() }).ToList();
|
||
memoType.Insert(0, new SelectListItem() { Value = "0", Text = "全部" });
|
||
ViewBag.memoType = memoType;//控件数据源
|
||
List<SelectListItem> memoSubType = memoSubTypeTemp.Where(m => m.MEMOTYPEID == MemoTypeId).Select(m => new SelectListItem { Text = m.TYPENAME, Value = m.SUBTYPEID.ToString() }).ToList();
|
||
memoSubType.Insert(0, new SelectListItem() { Value = "0", Text = "全部" });
|
||
ViewBag.memoSubType = memoSubType;//控件数据源
|
||
|
||
|
||
ViewBag.memoTypeArry = memoTypeArry;
|
||
ViewBag.memoSubTypeArry = memoSubTypeArry;
|
||
return View();
|
||
}
|
||
#endregion
|
||
|
||
#region 添加任务时间控件
|
||
|
||
public ActionResult TimeUC()
|
||
{
|
||
IList<SelectListItem> houList = new List<SelectListItem>();
|
||
IList<SelectListItem> minuteList = new List<SelectListItem>();
|
||
SelectListItem item = null;
|
||
for (int i = 0; i < 24; i++)
|
||
{
|
||
item = new SelectListItem();
|
||
item.Text = i.ToString();
|
||
item.Value = i.ToString();
|
||
if (i == 13)
|
||
item.Selected = true;
|
||
houList.Add(item);
|
||
}
|
||
for (int i = 0; i < 60; i++)
|
||
{
|
||
item = new SelectListItem();
|
||
item.Text = i.ToString();
|
||
item.Value = i.ToString();
|
||
minuteList.Add(item);
|
||
}
|
||
ViewBag.houList = houList;
|
||
ViewBag.minuteList = minuteList;
|
||
ViewBag.date = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
|
||
return View();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 工单类型(工单大类|工单小类)
|
||
/// <summary>
|
||
/// 工单类型(工单大类|工单小类)
|
||
/// </summary>
|
||
/// <param name="bunissId"></param>
|
||
/// <returns></returns>
|
||
public ActionResult MemoTypeAllUC(decimal? bunissId)
|
||
{
|
||
ICACHE_Q ui = DataCacheHelper.GetCache();
|
||
IList<ORD_MEMOTYPE> memoTypeList = ui.GetList_MemoType().Where(p => p.MEMO_TYPE == bunissId && p.ISSHOW == 1).ToList();
|
||
|
||
IList<ORD_MEMOSUBTYPE> memoSubTypeTemp = ui.GetList_MemoSubType().Where(p => p.ISSHOW == 1).ToList();
|
||
decimal MemoTypeId = memoTypeList.Count > 0 ? memoTypeList.FirstOrDefault().TYPEID : 0;
|
||
|
||
IList<ORD_MEMOSUBTYPE> listTemp = null;
|
||
StringBuilder sb = new StringBuilder();
|
||
StringBuilder sbStyle = new StringBuilder();
|
||
foreach (ORD_MEMOTYPE memoType in memoTypeList)
|
||
{
|
||
listTemp = memoSubTypeTemp.Where(p => p.MEMOTYPEID == memoType.TYPEID).ToList();
|
||
sb.AppendFormat("subType[{0}]=", memoType.TYPEID);
|
||
sb.Append("'");
|
||
for (int i = 0; i < listTemp.Count; i++)
|
||
{
|
||
sb.AppendFormat("{0}#{1},", listTemp[i].SUBTYPEID, listTemp[i].TYPENAME);
|
||
sbStyle.AppendFormat("memoSubStyle['{0}']='{1}';", listTemp[i].SUBTYPEID, listTemp[i].MEMOSTYLEID);
|
||
}
|
||
if (listTemp.Count != 0)
|
||
sb.Remove(sb.Length - 1, 1);
|
||
sb.Append("';");
|
||
}
|
||
ViewBag.MemoSubTypes = sb.ToString();//数据源
|
||
ViewBag.SubStyle = sbStyle.ToString();//数据源
|
||
List<SelectListItem> memoType_slt = memoTypeList.Where(m => m.MEMO_TYPE == bunissId).Select(m => new SelectListItem { Text = m.TYPENAME, Value = m.TYPEID.ToString() }).ToList();
|
||
ViewBag.memoType = memoType_slt;//控件数据源
|
||
List<SelectListItem> memoSubType = memoSubTypeTemp.Where(m => m.MEMOTYPEID == MemoTypeId).Select(m => new SelectListItem { Text = m.TYPENAME, Value = m.SUBTYPEID.ToString() }).ToList();
|
||
ViewBag.memoSubType = memoSubType;//控件数据源
|
||
|
||
return View();
|
||
}
|
||
#endregion
|
||
|
||
|
||
#region excel数据导入
|
||
//public ActionResult ExcelUploadToolUC(AY.CRM.Model.Enum.EnumExcelDataType dataType, string name, decimal importId)
|
||
//{
|
||
// ViewBag.dataType = dataType;
|
||
// ViewBag.name = name;
|
||
// string step = "1";
|
||
// if (importId != 0)
|
||
// {
|
||
// BAS_EXCELIMPORTLOG log = excelImport_Q.GetModel(importId);
|
||
// if (log.DONESTATUS == 110 || log.DONESTATUS == 100)
|
||
// {
|
||
// step = "3";
|
||
// }
|
||
// }
|
||
// else
|
||
// importId = 0;
|
||
// ViewBag.importId = importId;
|
||
// ViewBag.step = step;
|
||
// return View();
|
||
//}
|
||
/// <summary>
|
||
/// 数据验证
|
||
/// </summary>
|
||
/// <param name="dataType"></param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public JsonResult CheckExcelUploadDataTable(Model.Enum.EnumExcelDataType dataType)
|
||
{
|
||
var uploadTool = GetUploadTool(dataType);
|
||
var erros = new ValidationErrors();
|
||
var message = string.Empty;
|
||
var ret = uploadTool.DataTableColumnCheck();
|
||
|
||
if (!ret)
|
||
{
|
||
return Json(new { type = 0, valid = 2, message = "字段变动生成有误" });
|
||
}
|
||
|
||
//LogHelper.Info("字段检查:" + ret.ToString());
|
||
var tab = uploadTool.CheckErroData(out message, ref erros);//去除Datatable数据
|
||
var valid = 1;
|
||
var html = string.Empty;
|
||
if (tab != null && tab.Rows.Count > 0)
|
||
{
|
||
html = DataTableHandler.GetPageTableHtml(tab, 15, 1);
|
||
valid = 0;
|
||
}
|
||
var json = new
|
||
{
|
||
tabHtml = html,
|
||
type = erros.Count > 0 ? 0 : 1,
|
||
valid = message != "" ? 2 : valid,
|
||
message = message != "" ? message : erros.Error
|
||
};
|
||
return Json(json);
|
||
}
|
||
/// <summary>
|
||
/// 上传文件显示出excel数据
|
||
/// </summary>
|
||
/// <param name="dataType">数据类型</param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public JsonResult CreateDataTableByExcel(Model.Enum.EnumExcelDataType dataType)
|
||
{
|
||
|
||
ComUploadTool uploadTool = GetUploadTool(dataType);
|
||
ValidationErrors erros = new ValidationErrors();
|
||
|
||
|
||
//0:旧方式 1:新旧一起 2:只用新导入方式
|
||
string ImpTypeConfig = _cacheQ.GetValue_Parameter("ImpType_" + dataType.ToString());//查找导入模式
|
||
if (string.IsNullOrEmpty(ImpTypeConfig))
|
||
{
|
||
ImpTypeConfig = "0";
|
||
}
|
||
DataTable tab = null;
|
||
string nfileName = string.Empty;
|
||
if (ImpTypeConfig == "0")
|
||
{
|
||
tab = uploadTool.CreateDataTable(Request, out erros, 0);//创建Datatable数据
|
||
nfileName = Request.Files["uploadFile"].FileName;
|
||
}
|
||
else if (ImpTypeConfig == "1")//两个文件同时导入,需要合并
|
||
{
|
||
DataTable tab1 = uploadTool.CreateDataTable(Request, out erros, 0);//创建Datatable数据
|
||
DataTable tab2 = uploadTool.CreateDataTable(Request, out erros, 1);//创建Datatable数据
|
||
tab = DataTableHelper.TwoDataTableMergeEfficiency(tab1, tab2);
|
||
nfileName = "【" + Request.Files["uploadFile"].FileName + "】+【" + Request.Files["uploadFile2"].FileName + "】";
|
||
}
|
||
else
|
||
{
|
||
tab = uploadTool.CreateDataTable(Request, out erros, 1);//创建Datatable数据
|
||
nfileName = Request.Files["uploadFile2"].FileName;
|
||
}
|
||
uploadTool.RemoveCacheData();//先移除缓存
|
||
uploadTool.SaveToCache(tab);
|
||
|
||
string html = erros.Count > 0 ? "" : DataTableHandler.GetPageTableHtml(tab, 15, 1);
|
||
uploadTool = null;
|
||
var json = new
|
||
{
|
||
fileName = nfileName,
|
||
tabHtml = html,
|
||
type = erros.Count > 0 ? 0 : 1,
|
||
message = erros.Error
|
||
};
|
||
|
||
JsonResult rs = Json(json);
|
||
rs.ContentType = "text/html";
|
||
return rs;
|
||
}
|
||
/// <summary>
|
||
/// 获取分页数据
|
||
/// </summary>
|
||
/// <param name="dataType">导入类型</param>
|
||
/// <param name="pageIndex">分页索引</param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public JsonResult GetDataTableByCache(Model.Enum.EnumExcelDataType dataType, int pageIndex)
|
||
{
|
||
ComUploadTool uploadTool = GetUploadTool(dataType);
|
||
ValidationErrors erros = new ValidationErrors();
|
||
DataTable tab = uploadTool.LoadFromCache(ref erros);//取出Datatable数据
|
||
string html = string.Empty;
|
||
if (tab != null && tab.Rows.Count > 0)
|
||
html = DataTableHandler.GetPageTableHtml(tab, 15, pageIndex);
|
||
var json = new
|
||
{
|
||
tabHtml = html,
|
||
type = erros.Count > 0 ? 0 : 1,
|
||
message = erros.Error
|
||
};
|
||
return Json(json);
|
||
}
|
||
/// <summary>
|
||
/// 保存或者放弃数据导入
|
||
/// </summary>
|
||
/// <param name="dataType">导入类型</param>
|
||
/// <param name="type">类型:1、导入数据0、取消导入</param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public JsonResult SaveOrGiveUPToDatabase(Model.Enum.EnumExcelDataType dataType, int type, string fileName, decimal importId)
|
||
{
|
||
ComUploadTool uploadTool = GetUploadTool(dataType);
|
||
ValidationErrors erros = new ValidationErrors();
|
||
if (type == 1)
|
||
{
|
||
DataTable tab = uploadTool.LoadFromCache(ref erros);//取出Datatable数据
|
||
uploadTool.SaveToDatabase(tab, UserId, fileName, out erros, ref importId);
|
||
}
|
||
else if (type == 0)
|
||
{
|
||
uploadTool.RemoveCacheData();//清除缓存
|
||
}
|
||
var json = new
|
||
{
|
||
type = erros.Count > 0 ? 0 : 1,
|
||
importId = importId,
|
||
message = erros.Error
|
||
};
|
||
return Json(json);
|
||
}
|
||
/// <summary>
|
||
/// 生存业务数据(放弃或者重试)
|
||
/// </summary>
|
||
/// <param name="dataType"></param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public JsonResult SyncBusinessData(Model.Enum.EnumExcelDataType dataType, decimal importId)
|
||
{
|
||
ComUploadTool uploadTool = GetUploadTool(dataType);
|
||
ValidationErrors erros = new ValidationErrors();
|
||
uploadTool.SyncBusinessData(out erros, importId);
|
||
var json = new
|
||
{
|
||
type = erros.Count > 0 ? 0 : 1,
|
||
message = erros.Error
|
||
};
|
||
return Json(json);
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 获取ComUploadTool子类(公用)
|
||
/// </summary>
|
||
/// <param name="dataType">导入类型</param>
|
||
/// <returns></returns>
|
||
private ComUploadTool GetUploadTool(Model.Enum.EnumExcelDataType dataType)
|
||
{
|
||
var deptCode = _cacheQ.GetValue_Parameter(Model.Enum.Parameter.Sys_Environment_DeptCode);
|
||
ICACHE_Q cache = DataCacheHelper.GetCache();
|
||
ComUploadTool uploadTool = null;
|
||
switch (dataType)
|
||
{
|
||
case Model.Enum.EnumExcelDataType.Qh_Customer:
|
||
uploadTool = new WebHelper.ExcelImport.QH.Qh_CustomerUploadTool();
|
||
break;
|
||
case Model.Enum.EnumExcelDataType.Qh_TransactionDetail:
|
||
uploadTool = new WebHelper.ExcelImport.QH.Qh_TransactionDetailUploadTool();
|
||
break;
|
||
case Model.Enum.EnumExcelDataType.Qh_CustomerPositions:
|
||
uploadTool = new WebHelper.ExcelImport.QH.Qh_CustomerPositionsUploadTool();
|
||
break;
|
||
case Model.Enum.EnumExcelDataType.Qh_DiscrepancyGold:
|
||
uploadTool = new WebHelper.ExcelImport.QH.Qh_DiscrepancyGoldUploadTool();
|
||
break;
|
||
//default:
|
||
// uploadTool = new WebHelper.ExcelImport.QH.Qh_CustomerUploadTool();
|
||
// break;
|
||
}
|
||
uploadTool.userLoginLogId = LoginLogId.ToString();//赋值登录日志ID
|
||
BAS_SALESDEPARTMENT departMent = cache.GetList_SalesDepartMent().FirstOrDefault(m => m.SALEDEPTID == saleDeptId);
|
||
uploadTool.deptCode = departMent != null ? departMent.SALEDEPTCODE : "";
|
||
List<BAS_COMPANY> companylist = cache.GetList_innerCompany();
|
||
|
||
BAS_COMPANY company = companylist.FirstOrDefault(m => m.COMPANYID == companyId);
|
||
|
||
uploadTool.Organ = string.Format("{0}", company == null ? companylist[0].ORGANNAME : company.ORGANNAME).Trim().Split(';');//获取机构名称
|
||
return uploadTool;
|
||
}
|
||
#endregion
|
||
|
||
public JsonResult SetCookie(string checkedTitles, string checkedFilds)
|
||
{
|
||
int type = 1;
|
||
string message = string.Empty;
|
||
|
||
try
|
||
{
|
||
HttpCookie cokie = new HttpCookie("checkedTitles", checkedTitles);
|
||
HttpCookie cokie2 = new HttpCookie("checkedFilds", checkedFilds);
|
||
//cokie.Expires = DateTime.Now.AddMinutes(10);
|
||
//cokie2.Expires = DateTime.Now.AddMinutes(10);
|
||
Response.AddHeader("P3P", "CP=CAO PSA OUR");
|
||
Response.Cookies.Add(cokie);
|
||
Response.Cookies.Add(cokie2);
|
||
|
||
|
||
//Common.CacheHelper.Set("checkedTitles_", checkedTitles);
|
||
//Common.CacheHelper.Set("checkedFilds_", checkedFilds);
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
type = 0;
|
||
message = "导出失败!";
|
||
}
|
||
return Json(new { type = type, message = message }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
|
||
//private string GetLevelByRole()
|
||
//{
|
||
// var level = "Self";
|
||
|
||
// if (userRoleCodes.IndexOf("[GLY]") > -1 || userRoleCodes.IndexOf("[LOOKALL]") > -1)//LOOKALL作为扩展权限
|
||
// {
|
||
// level = "All";
|
||
// }
|
||
// else if (userRoleCodes.IndexOf("[FZJ]") > -1 || userRoleCodes.IndexOf("[ZJ]") > -1 || userRoleCodes.IndexOf("[ZJZL]") > -1 || userRoleCodes.IndexOf("[ZJZG]") > -1 || userRoleCodes.IndexOf("[CW]") > -1)//副总监
|
||
// {
|
||
// level = "Company";
|
||
// }
|
||
// else if (userRoleCodes.IndexOf("[BMJL]") > -1)//部门经理
|
||
// {
|
||
// level = "Dept";
|
||
// }
|
||
// else if (userRoleCodes.IndexOf("[KFZG]") > -1)//销售组主管
|
||
// {
|
||
// level = "Group";
|
||
// }
|
||
|
||
// return level;
|
||
//}
|
||
|
||
public class ComboTreeView
|
||
{
|
||
public ComboTreeView(decimal id, string text, string state, bool @checked, string attributes, List<ComboTreeView> children)
|
||
{
|
||
this.id = id;
|
||
this.text = text;
|
||
this.state = state;
|
||
this.@checked = @checked;
|
||
this.attributes = attributes;
|
||
this.children = children;
|
||
}
|
||
|
||
public decimal id { get; set; }
|
||
public string text { get; set; }
|
||
public string state { get; set; }
|
||
public bool @checked { get; set; }
|
||
public string attributes { get; set; }
|
||
public decimal? department_id { get; set; }
|
||
/// <summary>
|
||
/// 图标
|
||
/// </summary>
|
||
public string iconCls { get; set; }
|
||
public List<ComboTreeView> children { get; set; }
|
||
}
|
||
|
||
private class ComboTreeAttribute
|
||
{
|
||
public ComboTreeAttribute(decimal? companyId, string deptId, string groupId, string level)
|
||
{
|
||
this.companyId = companyId;
|
||
this.deptId = deptId;
|
||
this.groupId = groupId;
|
||
this.level = level;
|
||
}
|
||
public decimal? companyId { get; set; }
|
||
public string deptId { get; set; }
|
||
public string groupId { get; set; }
|
||
public string level { get; set; }
|
||
}
|
||
}
|
||
} |