You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
11 KiB
Plaintext
274 lines
11 KiB
Plaintext
using System;
|
|
using System.Data;
|
|
using BP.DA;
|
|
using BP.Web;
|
|
using BP.WF.HttpHandler;
|
|
|
|
namespace BP.CCFast.CCMenu
|
|
{
|
|
/// <summary>
|
|
/// 页面功能实体
|
|
/// </summary>
|
|
public class PortPage : DirectoryPageBase
|
|
{
|
|
#region 构造函数
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
public PortPage()
|
|
{
|
|
}
|
|
#endregion 构造函数
|
|
|
|
#region 组织结构维护.
|
|
/// <summary>
|
|
/// 获取该部门的所有人员
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string LoadDatagridDeptEmp_Init()
|
|
{
|
|
string deptNo = this.GetRequestVal("deptNo");
|
|
if (string.IsNullOrEmpty(deptNo))
|
|
{
|
|
return "{ total: 0, rows: [] }";
|
|
}
|
|
string orderBy = this.GetRequestVal("orderBy");
|
|
|
|
|
|
string searchText = this.GetRequestVal("searchText");
|
|
if (!DataType.IsNullOrEmpty(searchText))
|
|
{
|
|
searchText.Trim();
|
|
}
|
|
string addQue = "";
|
|
if (!string.IsNullOrEmpty(searchText))
|
|
{
|
|
addQue = " AND (pe.No like '%" + searchText + "%' or pe.Name like '%" + searchText + "%') ";
|
|
}
|
|
|
|
string pageNumber = this.GetRequestVal("pageNumber");
|
|
int iPageNumber = string.IsNullOrEmpty(pageNumber) ? 1 : Convert.ToInt32(pageNumber);
|
|
//每页多少行
|
|
string pageSize = this.GetRequestVal("pageSize");
|
|
int iPageSize = string.IsNullOrEmpty(pageSize) ? 9999 : Convert.ToInt32(pageSize);
|
|
|
|
string sql = "(select pe.*,pd.name FK_DutyText from Port_Emp pe left join port_duty pd on pd.no = pe.fk_duty where pe.no in (select fk_emp from Port_DeptEmp where fk_dept='" + deptNo + "') "
|
|
+ addQue + " ) dbSo ";
|
|
|
|
|
|
return DBPaging(sql, iPageNumber, iPageSize, "No", orderBy);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 以下算法只包含 oracle mysql sqlserver 三种类型的数据库 qin
|
|
/// </summary>
|
|
/// <param name="dataSource">表名</param>
|
|
/// <param name="pageNumber">当前页</param>
|
|
/// <param name="pageSize">当前页数据条数</param>
|
|
/// <param name="key">计算总行数需要</param>
|
|
/// <param name="orderKey">排序字段</param>
|
|
/// <returns></returns>
|
|
public string DBPaging(string dataSource, int pageNumber, int pageSize, string key, string orderKey)
|
|
{
|
|
string sql = "";
|
|
string orderByStr = "";
|
|
|
|
if (!string.IsNullOrEmpty(orderKey))
|
|
orderByStr = " ORDER BY " + orderKey;
|
|
|
|
switch (DBAccess.AppCenterDBType)
|
|
{
|
|
case DBType.Oracle:
|
|
case DBType.KingBaseR3:
|
|
case DBType.KingBaseR6:
|
|
int beginIndex = (pageNumber - 1) * pageSize + 1;
|
|
int endIndex = pageNumber * pageSize;
|
|
|
|
sql = "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
|
|
"FROM (SELECT * FROM " + dataSource + orderByStr + ") A WHERE ROWNUM <= " + endIndex + " ) WHERE RN >=" + beginIndex;
|
|
break;
|
|
case DBType.MSSQL:
|
|
sql = "SELECT TOP " + pageSize + " * FROM " + dataSource + " WHERE " + key + " NOT IN ("
|
|
+ "SELECT TOP (" + pageSize + "*(" + pageNumber + "-1)) " + key + " FROM " + dataSource + " )" + orderByStr;
|
|
break;
|
|
case DBType.MySQL:
|
|
sql = "select * from " + dataSource + orderByStr + " limit " + (pageNumber - 1) * pageSize + "," + pageSize;
|
|
break;
|
|
default:
|
|
throw new Exception("暂不支持您的数据库类型.");
|
|
}
|
|
|
|
DataTable DTable = DBAccess.RunSQLReturnTable(sql);
|
|
|
|
int totalCount = DBAccess.RunSQLReturnCOUNT("select " + key + " from " + dataSource);
|
|
|
|
return DataTableConvertJson.DataTable2Json(DTable, totalCount);
|
|
}
|
|
#endregion
|
|
|
|
#region 获取菜单权限.
|
|
/// <summary>
|
|
/// 获得菜单数据.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GPM_DB_Menus()
|
|
{
|
|
var appNo = this.GetRequestVal("AppNo");
|
|
|
|
var sql1 = "SELECT No,Name,FK_Menu,ParentNo,UrlExt,Icon,Idx ";
|
|
sql1 += " FROM V_GPM_EmpMenu ";
|
|
sql1 += " WHERE FK_Emp = '" + WebUser.No + "' ";
|
|
sql1 += " AND MenuType = '3' ";
|
|
sql1 += " AND FK_App = '" + appNo + "' ";
|
|
sql1 += " UNION "; //加入不需要权限控制的菜单.
|
|
sql1 += "SELECT No,Name, No as FK_Menu,ParentNo,UrlExt,Icon,Idx";
|
|
sql1 += " FROM GPM_Menu ";
|
|
sql1 += " WHERE MenuCtrlWay=1 ";
|
|
sql1 += " AND MenuType = '3' ";
|
|
sql1 += " AND FK_App = '" + appNo + "' ORDER BY Idx ";
|
|
var dirs = DBAccess.RunSQLReturnTable(sql1);
|
|
dirs.TableName = "Dirs"; //获得目录.
|
|
|
|
var sql2 = "SELECT No,Name,FK_Menu,ParentNo,UrlExt,Icon,Idx ";
|
|
sql2 += " FROM V_GPM_EmpMenu ";
|
|
sql2 += " WHERE FK_Emp = '" + WebUser.No + "'";
|
|
sql2 += " AND MenuType = '4' ";
|
|
sql2 += " AND FK_App = '" + appNo + "' ";
|
|
sql2 += " UNION "; //加入不需要权限控制的菜单.
|
|
sql2 += "SELECT No,Name, No as FK_Menu,ParentNo,UrlExt,Icon,Idx ";
|
|
sql2 += " FROM GPM_Menu "; //加入不需要权限控制的菜单.
|
|
sql2 += " WHERE MenuCtrlWay=1 ";
|
|
sql2 += " AND MenuType = '4' ";
|
|
sql2 += " AND FK_App = '" + appNo + "' ORDER BY Idx ";
|
|
|
|
var menus = DBAccess.RunSQLReturnTable(sql2);
|
|
menus.TableName = "Menus"; //获得菜单.
|
|
|
|
//组装数据.
|
|
DataSet ds = new DataSet();
|
|
ds.Tables.Add(dirs);
|
|
ds.Tables.Add(menus);
|
|
|
|
return BP.Tools.Json.ToJson(ds);
|
|
}
|
|
/// <summary>
|
|
/// 获得OA菜单数据.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GPM_OA_Menus()
|
|
{
|
|
var appNo = this.GetRequestVal("AppNo");
|
|
|
|
Paras ps = new Paras();
|
|
string dbstr = BP.Difference.SystemConfig.AppCenterDBVarStr;
|
|
ps.SQL = "SELECT No FROM GPM_Menu WHERE MenuType=" + dbstr + "MenuType AND FK_App=" + dbstr + "FK_App";
|
|
ps.Add("MenuType", 2);
|
|
ps.Add("FK_App", appNo);
|
|
|
|
string ParentNo = DBAccess.RunSQLReturnString(ps);
|
|
|
|
if (string.IsNullOrWhiteSpace(ParentNo))
|
|
return "[]";
|
|
|
|
var sql1 = "SELECT No,Name,FK_Menu,MenuType,ParentNo,Url,UrlExt,Tag1,Tag2,Tag3,WebPath,Icon,Idx ";
|
|
sql1 += " FROM v_gpm_empmenu ";
|
|
sql1 += " WHERE FK_Emp = '" + WebUser.No + "' ";
|
|
sql1 += " AND ParentNo = '" + ParentNo + "' ";
|
|
sql1 += " AND FK_App = '" + appNo + "' ";
|
|
sql1 += " UNION "; //加入不需要权限控制的菜单.
|
|
sql1 += "SELECT No,Name, No as FK_Menu,MenuType,ParentNo,Url,UrlExt,Tag1,Tag2,Tag3,WebPath,Icon,Idx";
|
|
sql1 += " FROM GPM_Menu ";
|
|
sql1 += " WHERE MenuCtrlWay=1 ";
|
|
sql1 += " AND ParentNo = '" + ParentNo + "' ";
|
|
sql1 += " AND FK_App = '" + appNo + "' ORDER BY Idx ";
|
|
var dirs = DBAccess.RunSQLReturnTable(sql1);
|
|
dirs.TableName = "Dirs"; //获得目录.
|
|
|
|
var sql2 = "SELECT No,Name,FK_Menu,MenuType,ParentNo,Url,UrlExt,Tag1,Tag2,Tag3,WebPath,Icon,Idx,openway ";
|
|
sql2 += " FROM v_gpm_empmenu ";
|
|
sql2 += " WHERE FK_Emp = '" + WebUser.No + "'";
|
|
sql2 += " AND ParentNo != '" + ParentNo + "' ";
|
|
sql2 += " AND FK_App = '" + appNo + "' ";
|
|
sql2 += " UNION "; //加入不需要权限控制的菜单.
|
|
sql2 += "SELECT No,Name, No as FK_Menu,MenuType,ParentNo,Url,UrlExt,Tag1,Tag2,Tag3,WebPath,Icon,Idx,openway ";
|
|
sql2 += " FROM GPM_Menu "; //加入不需要权限控制的菜单.
|
|
sql2 += " WHERE MenuCtrlWay=1 ";
|
|
sql2 += " AND ParentNo != '" + ParentNo + "' ";
|
|
sql2 += " AND FK_App = '" + appNo + "' ORDER BY Idx ";
|
|
|
|
var menus = DBAccess.RunSQLReturnTable(sql2);
|
|
menus.TableName = "Menus"; //获得菜单.
|
|
|
|
//组装数据.
|
|
DataSet ds = new DataSet();
|
|
ds.Tables.Add(dirs);
|
|
ds.Tables.Add(menus);
|
|
|
|
return BP.Tools.Json.ToJson(ds);
|
|
}
|
|
/// <summary>
|
|
/// 是否可以执行当前工作
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GPM_IsCanExecuteFunction()
|
|
{
|
|
var dt = GPM_GenerFlagDB(); //获得所有的标记.
|
|
var funcNo = this.GetRequestVal("FuncFlag");
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
if (dr[0].ToString().Equals(funcNo) == true)
|
|
return "1";
|
|
}
|
|
return "0";
|
|
}
|
|
/// <summary>
|
|
/// 获得所有的权限标记.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataTable GPM_GenerFlagDB()
|
|
{
|
|
var appNo = this.GetRequestVal("AppNo");
|
|
var sql2 = "SELECT Flag,Idx";
|
|
sql2 += " FROM V_GPM_EmpMenu ";
|
|
sql2 += " WHERE FK_Emp = '" + WebUser.No + "'";
|
|
sql2 += " AND MenuType = '5' ";
|
|
sql2 += " AND FK_App = '" + appNo + "' ";
|
|
sql2 += " UNION "; //加入不需要权限控制的菜单.
|
|
sql2 += "SELECT Flag,Idx ";
|
|
sql2 += " FROM GPM_Menu "; //加入不需要权限控制的菜单.
|
|
sql2 += " WHERE MenuCtrlWay=1 ";
|
|
sql2 += " AND MenuType = '5' ";
|
|
sql2 += " AND FK_App = '" + appNo + "' ORDER BY Idx ";
|
|
DataTable dt = DBAccess.RunSQLReturnTable(sql2);
|
|
return dt;
|
|
}
|
|
/// <summary>
|
|
/// 获得所有权限的标记
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GPM_AutoHidShowPageElement()
|
|
{
|
|
var dt = GPM_GenerFlagDB(); //获得所有的标记.
|
|
return BP.Tools.Json.ToJson(dt);
|
|
}
|
|
/// <summary>
|
|
/// 组织结构查询
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GPM_Search()
|
|
{
|
|
var searchKey = this.GetRequestVal("searchKey");
|
|
//var SearchDept = this.GetRequestVal("SearchDept");
|
|
//var SearchEmp = this.GetRequestVal("SearchEmp");
|
|
//var SearchTel = this.GetRequestVal("SearchTel");
|
|
var sql = "SELECT e.No AS No,e.Name AS Name,d.Name AS deptName,e.Email AS Email,e.Tel AS Tel from Port_Dept d,Port_Emp e " +
|
|
"where d.No=e.FK_Dept AND (e.No LIKE '%" + searchKey + "%' or e.NAME LIKE '%" + searchKey + "%' or d.Name LIKE '%" + searchKey + "%' or e.Tel LIKE '%" + searchKey + "%')";
|
|
DataTable dt = DBAccess.RunSQLReturnTable(sql);
|
|
return BP.Tools.Json.ToJson(dt);
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
}
|