/******************************
* 说明:主程序相关方法实现
* 创建人:龚宇超
* 创建日期:2017-09-01
* 修改人:
* 修改日期:
* 修改备注:
* 版本:1.0.0.0
******************************/
using System;
using System.Data;
using Lskj.Core;
using Lskj.Util;
using System.Data.SqlClient;
using Lskj.Model;
using System.Net;
using System.Collections.Generic;
using System.Linq;
using Kdbndp;
using KdbndpTypes;
namespace Lskj.Business.Impl
{
///
/// 主程序相关方法实现
///
public class MainImpl : BaseImpl
{
///
/// 说明:解析配置的域名dns
/// 创建人:龚宇超
/// 创建日期:2018-04-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// true if XXXX, false otherwise.
///
public static void DnsHostEntry()
{
try
{
// 创建DNS字段
string sqlValue = "alter table p_systemtab add DnsHostEntry varchar(50)";
int result = SqlHelper.ExecuteNonQuery(sqlValue);
sqlValue = "update p_systemtab set DnsHostEntry = InternetIP";
result = SqlHelper.ExecuteNonQuery(sqlValue);
}
catch (Exception)
{
}
try
{
// 修改dns值
string sqlValue = "select DnsHostEntry from p_systemtab";
DataRow rowItem = GetDataRowResult(sqlValue);
if (rowItem != null)
{
string dnsHostEntry = rowItem["DnsHostEntry"] + "";
string startHost = dnsHostEntry.Substring(0, dnsHostEntry.IndexOf("."));
int startNumber = 0;
if (!string.IsNullOrWhiteSpace(dnsHostEntry) && !Int32.TryParse(startHost, out startNumber))
{
string ipAddress = Dns.GetHostEntry(dnsHostEntry).AddressList[0] + "";
sqlValue = string.Format("update p_systemtab set InternetIP = '{0}'", ipAddress);
SqlHelper.ExecuteNonQuery(sqlValue);
}
}
}
catch (Exception)
{
}
}
///
/// 说明:登录
/// 创建人:龚宇超
/// 创建日期:2017-08-12
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// 用户名Id
/// 密码
/// 是否强制登录
/// System.Int32.
public static int Login(string userId, string password, bool isConstraint)
{
password = SHAHelper.EncryptPassword(password);//密码加密
//强制登陆
if (isConstraint)
{
string tmpsql = string.Format("delete from p_LoginHostInfotab where OperatorId='{0}' and Tagid=1", userId);
SqlHelper.ExecuteNonQuery(CommandType.Text, tmpsql);
}
List list = new List
{
new SqlParameter("@ReturnValue",SqlDbType.NVarChar),
new SqlParameter("@operatorid",SqlDbType.VarChar),
new SqlParameter("@pwd",SqlDbType.VarChar,100),
};
if (SystemInfo.Instance.IsEncrypt)
{
list.Add(new SqlParameter("@IsEncrypt", SqlDbType.VarChar, 100));
}
SqlParameter[] cmdParams = list.ToArray();
cmdParams[0].Direction = ParameterDirection.ReturnValue;
cmdParams[1].Value = userId;
cmdParams[2].Value = password;
if (cmdParams.Length > 7)
{
cmdParams[7].Value = 1;
}
SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "P_Login_pr", cmdParams);
return Convert.ToInt32(cmdParams[0].Value);
}
public static int MesLogin(string userCode, string password, bool isConstraint)
{
password = SHAHelper.EncryptPassword(password);
//强制登陆
//if (isConstraint)
//{
try
{
DataRow UserTable = MainImpl.MesGetUserID(userCode);
if (UserTable != null)
{
string tmpsql = string.Format("delete from p_LoginHostInfotab where OperatorId='{0}' and Tagid=4", UserTable["employeeid"] + "");
SqlHelper.ExecuteNonQuery(CommandType.Text, tmpsql);
}
}
catch (Exception)
{
}
//}
SqlParameter[] cmdParams = new SqlParameter[]
{
new SqlParameter("@ReturnValue",SqlDbType.Int),
new SqlParameter("@operatorid",SqlDbType.VarChar),
new SqlParameter("@pwd",SqlDbType.VarChar,100),
new SqlParameter("@LoginAccount",SqlDbType.VarChar,100),
new SqlParameter("@ClientIP",SqlDbType.VarChar,100),
new SqlParameter("@LoginType",SqlDbType.Int),
};
cmdParams[0].Direction = ParameterDirection.ReturnValue;
cmdParams[1].Value = userCode;
cmdParams[2].Value = password;
cmdParams[3].Value = "";
cmdParams[4].Value = "";
cmdParams[5].Value = 4;
SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "P_Login_pr", cmdParams);
return Convert.ToInt32(cmdParams[0].Value);
}
///
/// 说明:强制修改密码
/// 创建人:龚宇超
/// 创建日期:2017-08-12
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The pass_before.
/// The pass_after.
/// 1.修改成功;0.修改失败,用户不存在
public static int ForceUpdatePassword(string userId, string password)
{
DataTable dtTable = GetEmployeeList(userId);
if (dtTable.Rows.Count == 0) return 0;
//md5加密密码
string mdpassword = SHAHelper.GetMd5Hash(password);
password = SHAHelper.EncryptPassword(password);
string sqlValue = string.Format("update P_EmployeeTab set password='{0}' where employeeId='{1}'", password, userId);
if (BaseImpl.HasExistsColumn("P_EmployeeTab", "p_emp_password"))
{
sqlValue = string.Format("update P_EmployeeTab set password='{0}',p_emp_password='{1}' where EmployeeId='{2}' select @@ROWCOUNT", password, mdpassword, userId);
}
int result = SqlHelper.ExecuteNonQuery(sqlValue);
return result;
}
///
/// 说明:修改密码
/// 创建人:龚宇超
/// 创建日期:2017-08-15
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// 0.用户不存在.1.修改成功.2.旧密码错误.
public static int UpdatePassword(string userId, string beforePass, string afterPass)
{
// 检查用户是否存在
//string sqlValue = string.Format("select password from P_EmployeeTab WHERE sign=0 and UseFlag=1 and EmployeeId='{0}' order by loginaccount", userId);
//string password = SqlHelper.ExecuteString("password", sqlValue);
//if (string.IsNullOrWhiteSpace(password)) return 0;
DataTable dtTable = GetEmployeeList(userId);
if (dtTable.Rows.Count == 0) return 0;
string sqlValue = string.Format("select password from P_EmployeeTab WHERE sign=0 and UseFlag=1 and EmployeeId='{0}' order by loginaccount", userId);
string password = SqlHelper.ExecuteString("password", sqlValue);
//md5加密密码
string mdpassword = SHAHelper.GetMd5Hash(afterPass);
beforePass = SHAHelper.EncryptPassword(beforePass);
afterPass = SHAHelper.EncryptPassword(afterPass);
// 检查旧密码是否一致
if (!password.Equals(beforePass)&&!string.IsNullOrWhiteSpace(password)) return 2;
sqlValue = string.Format("update P_EmployeeTab set password='{0}' where EmployeeId='{1}' select @@ROWCOUNT", afterPass, userId);
if (BaseImpl.HasExistsColumn("P_EmployeeTab", "p_emp_password"))
{
sqlValue = string.Format("update P_EmployeeTab set password='{0}',p_emp_password='{1}' where EmployeeId='{2}' select @@ROWCOUNT", afterPass, mdpassword, userId);
}
DataTable dt = SqlHelper.ExecuteDataTable(sqlValue);
int numberOfAffectedRows = dt != null && dt.Rows.Count > 0 ? int.Parse(dt.Rows[0][0] + "") : 0;
return numberOfAffectedRows;
}
///
/// 修改密码,传入到存储过程中处理
///
///
///
///
///
public static int ChangePassword(string personid, string newpsw, out string tipMsg)
{
try
{
//md5加密密码
//string mdpassword = SHAHelper.GetMd5Hash(newpsw);
newpsw = SHAHelper.EncryptPassword(newpsw);
SqlParameter pMsg = ERPInfo.Instance.ChangeParameterType ? new SqlParameter("@msg", SqlDbType.NVarChar, 4000) : new SqlParameter("@msg", SqlDbType.VarChar, 2000);
pMsg.Direction = ParameterDirection.Output;
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
returnValue.Direction = ParameterDirection.ReturnValue;
SqlParameter[] param =
{
new SqlParameter("@personid",SqlDbType.Int),
new SqlParameter("@newpsw",SqlDbType.VarChar),
pMsg,
returnValue
};
param[0].Value = personid;
param[1].Value = newpsw;
param[2].Value = "";
int result = MainImpl.ExecProcedure("pr_sytemchangepsw", param);
tipMsg = pMsg.Value.ToString();
int rValue = Convert.ToInt32(returnValue.Value);
return rValue;
}
catch (Exception ex)
{
tipMsg = ex.Message;
}
return -1;
}
///
/// 记录修改后的密码
///
///
///
///
public static bool RecordPassword(string afterPass)
{
try
{
//加密密码
afterPass = AESUtil.Encrypt(afterPass);
LogUtil.WriteDebug("", "修改密码", afterPass, "");
return true;
}
catch (Exception ex)
{
return false;
}
}
///
/// 说明:跨数据库修改密码
/// 创建人:曹屹峰
/// 创建日期:2023-05-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
///
public static bool UpdatePasswordAllSubsystem(string userId, string afterPass)
{
try
{
string condition = string.Format("where ShowName !='{0}'", ERPInfo.Instance.AccountBook);
//获取套账表格
DataTable subsystemDt = MainImpl.GetLedgerList(condition);
//让数据库可以跨数据库操作
BaseImpl.ExecSqlValue("exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure");
string Connection1 = "QkYyNjE3QTcxQjc4RDFFMDlERjlFMDc1QkIyMDVGRjdDRUIyMEVEOUM5NjBCQjc5NTA5NzdEQTk0MkNEQTE1RTFGMEIwMThFNUJDQTE0RjE1NjQwM0U5QTYxMThCMDY2MTA4NkE2OTIxNTNBQjQ0MjRDMDIwM0Q5OEVDQjkwQTVCN0RENjJBODkxNUNGOUM5OEI5RTEzN0E3ODBERjg2OURCNEQ5QTlCMzhCQUZGQ0FBNUREMjY4M0FCODg2RTkxMDRERTQ3MjRGQTE1MERDOTJGRDFDRjY2REQ1ODYyREUzN0RGM0ZBQzc4NzJENjIwNDg4RUUyNkI3ODE1RjlDM0I0MjNCQzcyOENDN0VDMTg0QUU0MjgwMDVDMENBOUZF";
int numberOfAffectedRows = 0;
afterPass = SHAHelper.EncryptPassword(afterPass);
foreach (DataRow dr in subsystemDt.Rows)
{
try
{
string Ip = dr["IP"] + "";
string DBname = dr["DBname"] + "";
string link = string.Format(AESUtil.Decrypt(Connection1), Ip, DBname);
//跨库修改
string sqlValue = string.Format("update OPENDATASOURCE( 'SQLOLEDB ', '{0}').{1}.dbo.P_EmployeeTab set password='{2}' where EmployeeId='{3}' select @@ROWCOUNT", link, DBname, afterPass, userId);
DataTable dt = SqlHelper.ExecuteDataTable(sqlValue);
numberOfAffectedRows += dt != null && dt.Rows.Count > 0 ? int.Parse(dt.Rows[0][0] + "") : 0;
}
catch (Exception ex)
{
ErrorMessage.PromptErrorMessage(ex);
}
}
//关闭跨数据库权限
BaseImpl.ExecSqlValue("exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure");
return subsystemDt.Rows.Count == numberOfAffectedRows;
}
catch (Exception e)
{
ErrorMessage.PromptErrorMessage(e);
BaseImpl.ExecSqlValue("exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure");
return false;
}
}
///
/// 说明:保存用户皮肤
/// 创建人:龚宇超
/// 创建日期:2018-01-26
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// Name of the skin.
/// System.Int32.
///
public static int SaveUserSkin(string skinName)
{
string sqlValue = string.Format("update p_EmployeeTab set {0}='{1}' where employeeId='{2}'", ERPInfo.Instance.SkinFieldName, skinName, ERPInfo.Instance.UserId);
return SqlHelper.ExecuteNonQuery(sqlValue);
}
///
/// 说明:检查Mac地址过滤
/// 创建人:龚宇超
/// 创建日期:2018-06-21
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The mac address.
/// System.Int32.
public static int CheckMacAddress(string macAddress, string username)
{
// 不存在表
if (!HasExistsTable("P_SystemMacTab")) return -1;
string sqlValue = string.Format("select * from P_SystemMacTab where MacAddress='{0}' and UserName ='{1}' and isnull(Enabled,0)=0", macAddress, username);
return GetDataRowResult(sqlValue) != null ? 1 : 0;
}
///
/// 说明:记录登陆者的mac地址
/// 创建人:王一帆
/// 创建日期:2020-10-30
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The mac address.
/// System.Int32.
public static void LoginAfterRegister(string macAddress, string username)
{
// 不存在表
if (!HasExistsTable("HR_MacAddresstab")) return;
string sqlValue = string.Format("insert into HR_MacAddresstab (UserName,MacAddress,Operatedate) values('{0}','{1}','{2}')", username, macAddress, DateTime.Now + "");
}
///
/// 说明:获取用户皮肤
/// 创建人:龚宇超
/// 创建日期:2018-01-26
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// System.String.
public static string GetUserSkin(string userId)
{
if (!HasExistsColumn("P_employeeTab", "SkinName"))
{
SqlHelper.ExecuteNonQuery("alter table P_employeeTab add SkinName varchar(50)");
}
string sqlValue = string.Format("select SkinName from P_employeeTab where employeeId='{0}'", userId);
return GetResult(sqlValue) + "";
}
///
/// 说明:获取可用的子系统数量
/// 创建人:龚宇超
/// 创建日期:2017-08-12
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// System.Int32.
public static DataTable EnableSubSystem(string where = "")
{
string sqlValue = string.Format("select SubSysId,SubSysName from P_SubSystemTab where UseEd=1 {0} order by orderid", where);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取单个模块信息
/// 创建人:龚宇超
/// 创建日期:2017-09-12
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The menu code.
/// DataRow.
///
public static DataRow GetSystemdllTab(string menuCode)
{
string sqlValue = $"select * from P_systemdlltab where DllCoid = '{menuCode}'";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue);//执行sql返回DataTable
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
///
/// 说明:获取员工信息
/// 创建人:龚宇超
/// 创建日期:2017-09-01
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The user identifier.
/// DataTable.
public static DataTable GetEmployeeList(string userId = null)
{
string sqlWhere = string.Empty;
string fields = string.Empty;
if (!string.IsNullOrWhiteSpace(userId))
sqlWhere = string.Format(" and EmployeeId='{0}'", userId);
DataTable dataTable = GetTableColumns("P_EmployeeTab");
if (dataTable.Columns.Contains("SignBmp"))
fields = ",SignBmp";
if (dataTable.Columns.Contains("Password"))
fields += ",Password";
if (dataTable.Columns.Contains("AD_Id"))
fields += ",AD_Id";
if (dataTable.Columns.Contains("useLanguage"))
fields += ",useLanguage";
if (!string.IsNullOrWhiteSpace(SystemInfo.Instance.LoginUsername) && dataTable.Columns.Contains(SystemInfo.Instance.LoginUsername))
{
fields += " ," + SystemInfo.Instance.LoginUsername;
}
//if (HasExistsColumn("P_EmployeeTab", "DefaultLedger"))
// fields += ",DefaultLedger";
string sqlValue = string.Format("select EmployeeId UserId,LoginAccount UserCode,EmployeeName UserName {1} from P_EmployeeTab WHERE sign=0 and UseFlag=1 {0} order by loginaccount", sqlWhere, fields);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取mes系统员工信息
/// 创建人:曹屹峰
/// 创建日期:2023-12-05
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetMesEmployeeList()
{
string conditions = string.Empty;
string fields = string.Empty;
DataTable dataTable = GetTableColumns("P_EmployeeTab");
if (dataTable.Columns.Contains("SignBmp"))
fields = ",SignBmp";
if (dataTable.Columns.Contains("Password"))
fields += ",Password";
if (dataTable.Columns.Contains("AD_Id"))
fields += ",AD_Id";
if (dataTable.Columns.Contains("useLanguage"))
fields += ",useLanguage";
if (dataTable.Columns.Contains("mestig"))
{
conditions = "and mestig=1";
}
string sqlValue = string.Format("select EmployeeId UserId,LoginAccount UserCode,EmployeeName UserName {1} from P_EmployeeTab WHERE sign=0 and UseFlag=1 {0} order by loginaccount", conditions, fields);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取员工信息
/// 创建人:龚宇超
/// 创建日期:2017-09-01
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The user identifier.
/// DataTable.
public static DataTable GetEmployeeListNew(string userId = null)
{
string sqlWhere = string.Empty;
string fields = string.Empty;
if (!string.IsNullOrWhiteSpace(userId))
sqlWhere = string.Format(" and EmployeeId='{0}'", userId);
DataTable dataTable = GetTableColumns("P_EmployeeTab");
if (dataTable.Columns.Contains("SignBmp"))
fields = ",SignBmp";
if (dataTable.Columns.Contains("Password"))
fields += ",Password";
if (dataTable.Columns.Contains("AD_Id"))
fields += ",AD_Id";
if (dataTable.Columns.Contains("useLanguage"))
fields += ",useLanguage";
if (!string.IsNullOrWhiteSpace(SystemInfo.Instance.LoginUsername)&& dataTable.Columns.Contains(SystemInfo.Instance.LoginUsername))
{
fields += " ," + SystemInfo.Instance.LoginUsername;
}
//if (HasExistsColumn("P_EmployeeTab", "DefaultLedger"))
// fields += ",DefaultLedger";
string sqlValue = string.Format("select EmployeeId UserId,LoginAccount UserCode,EmployeeName UserName,LoginAccount 工号 {1} from P_EmployeeTab WHERE sign=0 and UseFlag=1 {0} order by loginaccount", sqlWhere, fields);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取帐套信息
/// 创建人:龚宇超
/// 创建日期:2017-09-01
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetLedgerList(string where = null)
{
string sqlValue = string.Format("select * from p_sydbGroupTab " + where + " order by orderid ");
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取方案信息
/// 创建人:王一帆
/// 创建日期:2020-11-02
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetProgramme(string where = null)
{
string sqlValue = string.Format("select id,SeriesName,SeriesScript remark from p_systemproductseriestab");
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取全部子系统信息
/// 创建人:龚宇超
/// 创建日期:2017-08-12
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetSubSystems(string where = "")
{
try
{
string sqlValue = string.Format("select * from P_SubSystemTab where ISNULL(visible,0)=0 and SubSysId<>0 {0} order by UseEd desc,orderid,right('000'+cast(showid as varchar),3)+right('0000'+cast(SubSysId as varchar),4)", where);
if (!ERPInfo.Instance.IsUserManager && SystemInfo.Instance.MainMenuType > 2)//是超级管理员,并且主要菜单类型>2
{
sqlValue = string.Format(@"select * from P_SubSystemTab
where ISNULL(visible,0)=0 and SubSysId in (
select SubSysId from P_FormMenuConfigTab
where 1=1 and useed=1 and isnull(dllfilename,'')<>'' " + GetPurviewCond() + @" ) {0}
order by UseEd desc,orderid,right('000'+cast(showid as varchar),3)+right('0000'+cast(SubSysId as varchar),4)", where);
}
return SqlHelper.ExecuteDataSet(sqlValue).Tables[0];
}
catch (Exception)
{
string sqlValue = "select * from P_SubSystemTab where SubSysId<>0 order by UseEd desc,right('000'+cast(showid as varchar),3)+right('0000'+cast(SubSysId as varchar),4)";
if (!ERPInfo.Instance.IsUserManager && SystemInfo.Instance.MainMenuType > 2)
{
sqlValue = @"select * from P_SubSystemTab
where SubSysId in (
select SubSysId from P_FormMenuConfigTab
where 1=1 and useed=1 and isnull(dllfilename,'')<>'' " + GetPurviewCond() + @" )
order by UseEd desc,right('000'+cast(showid as varchar),3)+right('0000'+cast(SubSysId as varchar),4)";
}
return SqlHelper.ExecuteDataSet(sqlValue).Tables[0];
}
}
///
/// 说明:根据配置MenuType加载菜单
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetMenusByMenuType(out string menuSql)
{
// MainMenuType:1: 加载子系统菜单数据,2.加载所有菜单,3.加载子系统权限菜单,4.加载所有权限菜单
int menutype = SystemInfo.Instance.MainMenuType;
string condWhere = string.Empty;
string sqlValue = string.Empty;
if (menutype > 2)
{
// 获取权限
condWhere = GetPurviewCond();
}
DataTable dataTable = GetTableColumns("P_FormMenuConfigTab");
if (dataTable.Columns.Contains("useFlag"))
{
// 获取可用菜单标识
condWhere += " and isnull(useFlag,0)=1";
}
if (dataTable.Columns.Contains("TargetMode"))
{
// 获取CS端显示标识(0 全部、1cs、 2 手机、3、bs)
condWhere += " and isnull(TargetMode,0) in (0,1)";
}
string fields = string.Empty, field = string.Empty;
if (dataTable.Columns.Contains("menuRow"))
{
fields += ",menuRow";
field += "a.menuRow,";
}
if (dataTable.Columns.Contains("menuposition"))
{
fields += ",isnull(menuposition,0)";
field += "isnull(a.menuposition,0) as menuposition,";
}
if (dataTable.Columns.Contains("GroupCaption"))
{
fields += ",GroupCaption";
field += "a.GroupCaption,";
}
string SeriesConds = string.Empty; string SeriesCond = string.Empty;
if (dataTable.Columns.Contains("SeriesId") && !string.IsNullOrEmpty(ERPInfo.Instance.SeriesId))
{
SeriesConds = ",SeriesId";
SeriesCond = "a.SeriesId,";
}
string countSqlconditions = string.Empty;
string countSql = string.Empty;
if (SystemInfo.Instance.BillCornerMark && HasExistsColumn("P_systemdlltab", "countSql") && HasExistsColumn("p_systembilltype", "countSql"))
{
countSqlconditions = string.Format(@"left join P_systemdlltab e on a.PurviewId=e.DllCoid
left join (
select a.menuid as mkid , e.typecode ,countSql
from p_formmenuconfigtab a
left join p_systembilltype e on a.PurviewId=e.typecode
where 1=1 {0}
)x on a.menuid=x.mkid ", string.IsNullOrWhiteSpace(SystemInfo.Instance.DocumentQuantityLimit) ? "and DllFileName in ('Lskj.PubBill.dll')" : SystemInfo.Instance.DocumentQuantityLimit);
countSql = "(select (CASE isnull(e.countSql,'') WHEN '' THEN (x.countSql) ELSE(e.countSql)END )) as'countSql',";//如果e.countSql为空,就用x.countSql,否则还是e.countSql
}
else if (HasExistsColumn("P_systemdlltab", "countSql"))
{
countSqlconditions = " left join P_systemdlltab e on a.PurviewId=e.DllCoid ";
countSql = "e.countSql as countSql,";
}
else if (SystemInfo.Instance.BillCornerMark && HasExistsColumn("p_systembilltype", "countSql"))
{
//countSqlconditions = "left join p_systembilltype x on a.PurviewId=x.typecode ";
//countSql = " x.countSql as countSqlBill,";
countSqlconditions = string.Format(@"
left join (
select a.menuid as mkid , e.typecode ,countSql
from p_formmenuconfigtab a
left join p_systembilltype e on a.PurviewId=e.typecode
where 1=1 {0}
)x on a.menuid=x.mkid ", string.IsNullOrWhiteSpace(SystemInfo.Instance.DocumentQuantityLimit) ? "and DllFileName in ('Lskj.PubBill.dll')" : SystemInfo.Instance.DocumentQuantityLimit);
countSql = " x.countSql as countSql,";
}
if (SystemInfo.Instance.DefaultMainTag == 2)
{
sqlValue = string.Format(@"select * from (select MenuId,MouseOutImg,MouseOverImg1,MenuCaption,DllFileName,MenuStruct,PurviewId,UrlParams,SubSysId {2} {3}
FROM p_formmenuconfigtab
WHERE SubSysId={0} {1}) x
inner join (select left(MenuStruct,2) as MenuStruct,count(1) as menucount
FROM p_formmenuconfigtab
WHERE SubSysId={0} and LEN(MenuStruct)=4 and isnull(dllfilename,'')<>'' {1}
group by left(MenuStruct,2) ) y on left(x.menustruct,2)=y.menustruct
where LEN(x.MenuStruct)=2
ORDER BY x.menustruct", ERPInfo.Instance.SubSysId, condWhere, fields, SeriesConds);
}
else
{
if (menutype == 1 || menutype == 3)
{
// 加载子系统下的菜单数据
sqlValue = string.Format(@"select * from (
select a.MenuId,a.MouseOutImg,a.MouseOverImg1,a.MenuCaption,a.DllFileName,a.MenuStruct,a.PurviewId,a.UrlParams,a.subsysid,{1} {2} {3}
z.SubSysName,MenuCaption+'-'+z.SubSysName SearchMenuCaption
FROM p_formmenuconfigtab a
{4}
left join P_SubSystemTab z on a.SubSysId=z.SubSysId
WHERE z.SubSysId={0} " + condWhere + @") x
inner join (select left(MenuStruct,2) as MenuStruct,count(1) as menucount
FROM p_formmenuconfigtab
WHERE SubSysId={0} and isnull(dllfilename,'')<>'' " + condWhere + @"
group by left(MenuStruct,2) ) y on left(x.menustruct,2)=y.menustruct
ORDER BY x.menustruct", ERPInfo.Instance.SubSysId, field, SeriesCond, countSql, countSqlconditions);
}
else
{
// 加载所有菜单下的数据
sqlValue = string.Format(@"select * from (
select a.MenuId,a.MouseOutImg,a.MouseOverImg1,a.MenuCaption,a.DllFileName,a.MenuStruct,a.PurviewId,a.UrlParams,a.subsysid,{0} {1} {2}
z.SubSysName,MenuCaption+'-'+z.SubSysName SearchMenuCaption
FROM p_formmenuconfigtab a
{3}
left join P_SubSystemTab z on a.SubSysId=z.SubSysId
WHERE 1=1 " + condWhere + @") x
inner join (select left(MenuStruct,2) as MenuStruct,count(1) as menucount
FROM p_formmenuconfigtab
WHERE isnull(dllfilename,'')<>'' " + condWhere + @"
group by left(MenuStruct,2) ) y on left(x.menustruct,2)=y.menustruct
ORDER BY x.menustruct", field, SeriesCond, countSql, countSqlconditions);
}
}
// and LEN(MenuStruct)>0
menuSql = string.Format(@"select * from (
select a.MenuId,a.MouseOutImg,a.MouseOverImg1,a.MenuCaption,a.DllFileName,a.MenuStruct,a.PurviewId,a.UrlParams,a.subsysid,{0} {1}
z.SubSysName,MenuCaption+'-'+z.SubSysName SearchMenuCaption
FROM p_formmenuconfigtab a
left join P_SubSystemTab z on a.SubSysId=z.SubSysId
WHERE 1=1 " + condWhere + @") x
where LEN(x.MenuStruct)=4", field, SeriesCond);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:根据用户ID获取快捷通道数据
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetGallerysByUserId(string userId = null)
{
//string sql = string.Format(@"select a.*,b.PurviewId from
// (select * from P_RoleShortcut where EmployeeID in ( select roleId from p_systemRoleOperSetTab where roleOperatorId='{0}') and grouptagid in ('1','2'))
// a join p_formmenuconfigtab b on a.LMenuId=b.MenuId where LinkModeTag=1 order by grouptagid,ItemTagId", ERPInfo.Instance.UserId);
//P_MessageToolLinkDllTab表中cardId=-99为通用模块(右侧快捷通道通用模块) 2023-12-4 徐成说的cardId=-99的配置
if (!BaseImpl.HasExistsColumn("P_MessageToolLinkDllTab", "cardId"))
{
SqlHelper.ExecuteNonQuery("alter table P_MessageToolLinkDllTab add cardId int");
}
string sqlValue = string.Format("select a.*,b.PurviewId,b.MouseOutImg,b.MouseOverImg1,b.DllFileName,z.SubSysName,b.menucaption from(select * from P_MessageToolLinkDllTab where employeeid={0} and ( grouptagid=2 or grouptagid=1) and isnull(cardId,0) !=-99 "
+ " union "
+ " select * from P_MessageToolLinkDllTab where cardId=-99 and ( grouptagid=2 or grouptagid=1) "
+ ")a join p_formmenuconfigtab b on a.LMenuId=b.MenuId" +
" left join P_SubSystemTab z on a.LSubSysId=z.SubSysId where LinkModeTag=1 order by grouptagid,ItemTagId", ERPInfo.Instance.UserId);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:根据用户ID获取快捷通道数据
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable newGetGallerysByUserId(string userId)
{
//P_MessageToolLinkDllTab表中cardId=-99为通用模块(右侧快捷通道通用模块) 2023-12-4 徐成说的cardId=-99的配置
string sqlValue = string.Format("select a.*,b.PurviewId,b.MouseOutImg,b.MouseOverImg1 from(select * from P_MessageToolLinkDllTab where employeeid='{0}' and ( grouptagid=2 or grouptagid=1) and isnull(cardId,0) !=-99 "
+ " union "
+ " select * from P_MessageToolLinkDllTab where cardId=-99 and ( grouptagid=2 or grouptagid=1) "
+ ")a join p_formmenuconfigtab b on a.LMenuId=b.MenuId where LinkModeTag=1 order by grouptagid,ItemTagId", userId);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:根据用户ID获取快捷通道数据
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetPrivatesByUserId()
{
string sqlValue = string.Format("select * from P_PrivateDllTab where privateTag = 1");
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:根据用户ID获取快捷通道数据
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetGallerysByRoleId(string userId)
{
string sqlValue = string.Format("select a.*,b.PurviewId from(select * from P_RoleShortcut where employeeid='{0}' and grouptagid=1 "
+ " union "
+ " select * from P_RoleShortcut where employeeid='{0}' and grouptagid=2 "
+ ")a join p_formmenuconfigtab b on a.LMenuId=b.MenuId where LinkModeTag=1 order by grouptagid,ItemTagId", userId);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取当前登录用户对应子系统的通知数据
/// 创建人:龚宇超
/// 创建日期:2018-04-17
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The subsys identifier.
/// The user identifier.
/// DataTable.
///
public static DataTable GetNotifys(string subsysId, string userId)
{
if (string.IsNullOrEmpty(subsysId) || string.IsNullOrEmpty(userId))
return new DataTable();
string sqlValue = string.Empty;
string billCond = string.Empty;
if (HasExistsColumn("p_systemNotification", "billdocument_id"))
billCond = " and isnull(a.billdocument_id,'')='' ";
if (HasExistsColumn("p_systemNotification", "msgid"))
{
sqlValue = string.Format(@"select distinct a.DLLCoid moduleid,sum(Cnt1) num,a.DllFileName dllname,b.MenuCaption modulename,ISNULL(MenuMode_Mobile,0) menumode,b.menuid from p_systemNotification a WITH (NOLOCK)
inner join P_FormMenuConfigTab b WITH (NOLOCK) ON ISNULL(a.menuid,0)=b.MenuId where isnull(a.status,0)=0 and isnull(a.Cnt1,0)<>0 and msgid='1' and a.UserId={0} and b.SubSysId={1} group by a.DLLCoid,TypeId,a.DllFileName,isnull(MenuMode_Mobile,0),b.MenuId,b.MenuCaption", userId, subsysId);
}
else
if (HasExistsColumn("p_systemNotification", "menuid"))
{
sqlValue = string.Format(@"select distinct a.DLLCoid moduleid,Cnt1 num,a.DllFileName dllname,b.MenuCaption modulename,ISNULL(MenuMode_Mobile,0) menumode,b.menuid from p_systemNotification a WITH (NOLOCK)
inner join P_FormMenuConfigTab b WITH (NOLOCK) ON ISNULL(a.menuid,0)=b.MenuId where isnull(a.status,0)=0 and isnull(a.Cnt1,0)<>0 {2} and a.UserId={0} and b.SubSysId={1}", userId, subsysId, billCond);
}
else
{
sqlValue = string.Format(@"select distinct a.DLLCoid moduleid,Cnt1 num,a.DllFileName dllname,b.MenuCaption modulename,ISNULL(MenuMode_Mobile,0) menumode,b.menuid from p_systemNotification a WITH (NOLOCK)
inner join P_FormMenuConfigTab b WITH (NOLOCK) ON a.DLLCoid=UrlParams and a.DllFileName=b.DllFileName where isnull(a.status,0)=0 and isnull(a.Cnt1,0)<>0 {2} and a.UserId={0} and b.SubSysId={1}", userId, subsysId, billCond);
}
return GetDataTableResult(sqlValue);
}
///
/// 说明:获取子菜单集
/// 创建人:龚宇超
/// 创建日期:2018-04-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// 子模块Id
/// 菜单编号.
/// 权限设置
/// 菜单的显隐配置
/// DataTable.
public static DataTable GetChildsMenu(string subSysId, string menuStruct, string purviewCond)
{
string sqlValue = string.Format("select * from P_FormMenuConfigTab where subsysid='{0}' and LEN(MenuStruct)=4 and SUBSTRING(MenuStruct,1,2)='{1}' and isnull(useflag,0)=1 {2} and isnull(useFlag,0)=1 order by MenuStruct", subSysId, menuStruct, purviewCond);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:获取左部分菜单树
/// 创建人:龚宇超
/// 创建日期:2018-04-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetLeftTreeView()
{
string sqlValue = string.Format(@"select distinct * from (
select a.* from Hr_PeraonnelSpecTab a
inner join(
select SpeciesNo,speciesname from Hr_PeraonnelSpecTab
where CHARINDEX(',{0},',','+purview+',')>0 and LEN(SpeciesNo)=6
) b on LEFT(a.SpeciesNo,4)=LEFT(b.SpeciesNo,4) or LEFT(a.SpeciesNo,2)=LEFT(b.SpeciesNo,2)
where len(a.SpeciesNo)<>6
union all
select * from Hr_PeraonnelSpecTab
where CHARINDEX(',{0},',','+purview+',')>0 and LEN(SpeciesNo)=6
)a
order by speciesno desc", ERPInfo.Instance.UserName);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:
/// 创建人:龚宇超
/// 创建日期:2019-07-29
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable MesGetCJ()
{
string conditions = string.Empty;
if (HasExistsColumn("mes_ws_list", "mes_ws_ban"))
{
conditions = " and isnull(mes_ws_ban,0)=0";
}
string sqlValue = string.Format("select mes_ws_id dm,mes_ws_name mc,dllcoid,mes_ws_no no from mes_ws_list where 1=1 {0}", conditions);
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:
/// 创建人:Mes获取班组信息
/// 创建日期:2020-11-09
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataRow MesGetTeam()
{
if (!HasExistsTable("MES_SystemNoticeTab"))
{
return null;
}
string sqlValue = string.Format("select noticeContent from MES_SystemNoticeTab where (classname ='{0}' or ISNULL(classname,'')='') and (ISNULL(noticeoperator,'') ='' or CHARINDEX(',{1},',','+noticeoperator+',')>0) and noticedate<=GETDATE() and expirydate>=GETDATE()", ERPInfo.Instance.WorkBZ, ERPInfo.Instance.UserName);
DataTable mesTeam = SqlHelper.ExecuteDataTable(sqlValue);
return (mesTeam != null && mesTeam.Rows.Count > 0) ? mesTeam.Rows[0] : null;
}
///
/// 说明:
/// 创建人:龚宇超
/// 创建日期:2019-07-29
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable MesGetJT(string cjid)
{
string Str = "";
if (HasExistsColumn("Mps_MachineSetTab", "JzName"))
{
Str = ",JzName";
}
if (HasExistsColumn("Mps_MachineSetTab", "modid"))
{
Str += ",modid";
}
string sqlValue = string.Format("select id dm,jtname mc{1} from Mps_MachineSetTab where workshopid='{0}' ", cjid, Str);
if (!string.IsNullOrWhiteSpace(SystemInfo.Instance.MachineConditions)) sqlValue = sqlValue + SystemInfo.Instance.MachineConditions;
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:通过机台选中值改变登录人员
/// 创建人:王一帆
/// 创建日期:2022-05-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataRow JTGetStaff(string jtname)
{
string Str = "";
if (HasExistsColumn("Mps_MachineSetTab", "JzName"))
{
Str = ",JzName";
}
string sqlValue = string.Format("select id dm,jtname mc{1} from Mps_MachineSetTab WHERE jtname='{0}'", jtname, Str);
DataTable mesTeam = SqlHelper.ExecuteDataTable(sqlValue);
return (mesTeam != null && mesTeam.Rows.Count > 0) ? mesTeam.Rows[0] : null;
}
///
/// 说明:
/// 创建人:龚宇超
/// 创建日期:2019-07-29
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable MesGetBZ()
{
string sqlValue = string.Format("select id dm,className mc from mps_ClassTimeSetTab");
return SqlHelper.ExecuteDataTable(sqlValue);
}
///
/// 说明:通过工号获取用户信息
/// 创建人:龚宇超
/// 创建日期:2019-07-29
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The account.
/// DataRow.
public static DataRow MesGetUserID(string account)
{
string sqlValue = string.Format("select * from p_employeetab where LoginAccount='{0}' or employeename='{0}'", account);
DataTable table = SqlHelper.ExecuteDataTable(sqlValue);
return table != null && table.Rows.Count > 0 ? table.Rows[0] : null;
}
///
/// 说明:根据用户ID获取快捷通道数据和待审核的数量
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataTable.
public static DataTable GetGallerysByUserIdAndReviewAmount(string userId = null)
{
try
{
string sqlValue = string.Format("select a.*,b.PurviewId,ss.amount from ( select * from P_MessageToolLinkDllTab where employeeid={0} and grouptagid=1 "
+ " union "
+ " select * from P_MessageToolLinkDllTab where employeeid={0} and grouptagid=2 "
+ ")a join p_formmenuconfigtab b on a.LMenuId=b.MenuId left join (select aa.UserId,aa.DLLCoid,count(1) amount from p_systemNotification aa group by aa.UserId,aa.DLLCoid) ss on ss.UserId=a.EmployeeID and ss.DLLCoid =case when len(b.PurviewId)>15 then b.PurviewId_DLLCoid else b.PurviewId end where LinkModeTag=1 order by grouptagid,ItemTagId", ERPInfo.Instance.UserId);
if (HasExistsColumn("p_systemDlltab", "countsql") && HasExistsColumn("p_systembilltype", "countSql"))
{
sqlValue = string.Format(@"select a.*,b.PurviewId,ss.amount,countsql from (
select * from P_MessageToolLinkDllTab where employeeid={0} and grouptagid=1
union
select * from P_MessageToolLinkDllTab where employeeid={0} and grouptagid=2
)a join p_formmenuconfigtab b on a.LMenuId=b.MenuId
left join (
select aa.UserId,aa.DLLCoid,count(1) amount from p_systemNotification aa group by aa.UserId,aa.DLLCoid
) ss on ss.UserId=a.EmployeeID and ss.DLLCoid =case when len(b.PurviewId)>15 then b.PurviewId_DLLCoid else b.PurviewId end
left join (
SELECT dllcoid,countsql,1 lx from p_systemDlltab where isnull(countsql,'')<>''
union all
select typecode,countsql,2 lx from p_systembilltype where isnull(countsql,'')<>''
)mk on b.PurviewId=mk.dllcoid
where LinkModeTag=1
order by grouptagid,ItemTagId ", ERPInfo.Instance.UserId);
}
return SqlHelper.ExecuteDataTable(sqlValue);
}
catch (Exception)
{
return null;
}
}
///
/// 说明:通过基础模块配置的待审数量sql获得当前数量
/// 创建人:曹屹峰
/// 创建日期:2022-08-2
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The account.
/// DataRow.
public static DataRow GetModuleDisplayQuantity(string sqlValue)
{
DataTable table = SqlHelper.ExecuteDataTable(sqlValue);
return table != null && table.Rows.Count > 0 ? table.Rows[0] : null;
}
//默认获得指定模块的待审数量
public static string GetModuleDisplayQuantityDefault(string DllId, string userId)
{
if (string.IsNullOrEmpty(DllId) || string.IsNullOrEmpty(userId))
return "0";
string sqlValue = string.Empty;
string billCond = string.Empty;
if (HasExistsColumn("p_systemNotification", "billdocument_id"))
billCond = " and isnull(a.billdocument_id,'')='' ";
if (HasExistsColumn("p_systemNotification", "msgid"))
{
sqlValue = string.Format(@"select distinct a.DLLCoid moduleid,sum(Cnt1) num,a.DllFileName dllname,b.MenuCaption modulename,ISNULL(MenuMode_Mobile,0) menumode,b.menuid from p_systemNotification a WITH (NOLOCK)
inner join P_FormMenuConfigTab b WITH (NOLOCK) ON ISNULL(a.menuid,0)=b.MenuId where isnull(a.status,0)=0 and isnull(a.Cnt1,0)<>0 and msgid='1' and a.UserId={0} and b.menuId='{1}' group by a.DLLCoid,TypeId,a.DllFileName,isnull(MenuMode_Mobile,0),b.MenuId,b.MenuCaption", userId, DllId);
}
else
if (HasExistsColumn("p_systemNotification", "menuid"))
{
sqlValue = string.Format(@"select distinct a.DLLCoid moduleid,Cnt1 num,a.DllFileName dllname,b.MenuCaption modulename,ISNULL(MenuMode_Mobile,0) menumode,b.menuid from p_systemNotification a WITH (NOLOCK)
inner join P_FormMenuConfigTab b WITH (NOLOCK) ON ISNULL(a.menuid,0)=b.MenuId where isnull(a.status,0)=0 and isnull(a.Cnt1,0)<>0 {2} and a.UserId={0} and b.menuId='{1}'", userId, DllId, billCond);
}
else
{
sqlValue = string.Format(@"select distinct a.DLLCoid moduleid,Cnt1 num,a.DllFileName dllname,b.MenuCaption modulename,ISNULL(MenuMode_Mobile,0) menumode,b.menuid from p_systemNotification a WITH (NOLOCK)
inner join P_FormMenuConfigTab b WITH (NOLOCK) ON a.DLLCoid=UrlParams and a.DllFileName=b.DllFileName where isnull(a.status,0)=0 and isnull(a.Cnt1,0)<>0 {2} and a.UserId={0} and b.menuId='{1}'", userId, DllId, billCond);
}
DataTable table = SqlHelper.ExecuteDataTable(sqlValue);
return table != null && table.Rows.Count > 0 ? table.Rows[0]["num"] + "" : "";
}
///
/// 说明:获取用户电话
/// 创建人:曹屹峰
/// 创建日期:2022-12-12
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// System.String.
public static string GetUserPhone(string userId)
{
if (HasExistsColumn("P_employeeTab", "p_emp_linkphone"))
{
string sqlValue = string.Format("select p_emp_linkphone from P_employeeTab where employeeId='{0}'", userId);
return GetResult(sqlValue) + "";
}
return "";
}
///
/// 说明:切换人员时判断条件
/// 创建人:曹屹峰
/// 创建日期:2023-10-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// System.String.
public static bool SwitchPermissions(string userId, string userName)
{
try
{
string sqlValue = string.Format(@"select * from P_SubSystemTab
where ISNULL(visible,0)=0 and SubSysId in (
select SubSysId from P_FormMenuConfigTab
where 1=1 and useed=1 and isnull(dllfilename,'')<>'' and (CHARINDEX(','+CAST(menuid as varchar)+',',(select top 1
','+isnull(wmsPurview,'')+','','+isnull(KcPurview,'')+','','+isnull(crmPurview,'')+','','+isnull(bomPurview,'')+','','+isnull(mpsPurview,'')+','','+isnull(mrpPurview,'')+','','+isnull(scmPurview,'')+','','+isnull(sellPurview,'')+','','+isnull(RdmPurview,'')+','','+isnull(hrPurview,'')+','','+isnull(costPurview,'')+','','+isnull(eamPurview,'')+','','+isnull(accPurview,'')+','','+isnull(oaPurview,'')+','','+isnull(BiPurview,'')+','','+isnull(QmsPurview,'')+','','+isnull(FmPurview,'')+','','+isnull(Ppurview,'')+','','+isnull(EMApurview,'')+','','+isnull(GYSpurview,'')+','','+isnull(scmtestPurview,'')+','','+isnull(CBpurview,'')+','','+isnull(PMPurview,'')+','','+isnull(SMSPurview,'')+','','+isnull(AMSPurview,'')+','','+isnull(cmspurview,'')+','','+isnull(MEspurview,'')+','','+isnull(APSPurview,'')+','','+isnull(qmcPurview,'')+','
from [p_SubsysPurviewTab]
where employeeid={0}))>0
or CHARINDEX(','+CAST(menuid as varchar)+'|,',(select top 1
','+isnull(wmsPurview,'')+'|,'','+isnull(KcPurview,'')+'|,'','+isnull(crmPurview,'')+'|,'','+isnull(bomPurview,'')+'|,'','+isnull(mpsPurview,'')+'|,'','+isnull(mrpPurview,'')+'|,'','+isnull(scmPurview,'')+'|,'','+isnull(sellPurview,'')+'|,'','+isnull(RdmPurview,'')+'|,'','+isnull(hrPurview,'')+'|,'','+isnull(costPurview,'')+'|,'','+isnull(eamPurview,'')+'|,'','+isnull(accPurview,'')+'|,'','+isnull(oaPurview,'')+'|,'','+isnull(BiPurview,'')+'|,'','+isnull(QmsPurview,'')+'|,'','+isnull(FmPurview,'')+'|,'','+isnull(Ppurview,'')+'|,'','+isnull(EMApurview,'')+'|,'','+isnull(GYSpurview,'')+'|,'','+isnull(scmtestPurview,'')+'|,'','+isnull(CBpurview,'')+'|,'','+isnull(PMPurview,'')+'|,'','+isnull(SMSPurview,'')+'|,'','+isnull(AMSPurview,'')+'|,'','+isnull(cmspurview,'')+'|,'','+isnull(MEspurview,'')+'|,'','+isnull(APSPurview,'')+'|,'','+isnull(qmcPurview,'')+'|,'
from [p_SubsysPurviewTab]
where employeeid={0}))>0 or len(menustruct)=2 or {0}=1 or '{1}'='管理员') )
order by UseEd desc,orderid,right('000'+cast(showid as varchar),3)+right('0000'+cast(SubSysId as varchar),4)", userId, userName);
DataTable table = SqlHelper.ExecuteDataTable(sqlValue);
return table != null && table.Rows.Count > 0;
}
catch (Exception ex)
{
return false;
}
return false;
}
///
/// 说明:登录时判断mac地址
/// 创建人:曹屹峰
/// 创建日期:2023-10-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// System.String.
public static bool CheckingMacAddress(string userId)
{
try
{
if (SystemInfo.Instance.MacMandatoryJudgment)
{
if (HasExistsTable("P_MacAddressTable"))
{
DataTable table = SqlHelper.ExecuteDataTable(string.Format("select MacAddress from P_MacAddressTable where userid='{0}'", userId));
DataRow dataRow = table != null && table.Rows.Count > 0 ? table.Rows[0] : null;
//if (dataRow == null) return false; 没有配置就默认成功
if (dataRow != null && !string.IsNullOrWhiteSpace(dataRow["MacAddress"] + ""))
{
List MacAddress = ((dataRow["MacAddress"] + "").Split(',')).ToList();
return MacAddress.Contains(ERPInfo.Instance.MacAddress);
}
}
}
}
catch (Exception ex)
{
return false;
}
return true;
}
///
/// 说明:获取模块信息
/// 创建人:曹屹峰
/// 创建日期:2025-03-03
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public static DataRow GetModuleInformation(string menuCode)
{
string sqlValue = string.Format("select * from p_formmenuconfigtab where PurviewId='{0}'", menuCode);
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue);
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
///
/// 获取自增长列名
///
///
public static string GetAutogrowcolumn(string tableName)
{
string sqlvalue = $@"SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns
WHERE TABLE_NAME = '{tableName}' AND COLUMNPROPERTY(OBJECT_ID('{tableName}'),COLUMN_NAME,'IsIdentity')= 1;";
if (SqlHelper.ConnectionType == ConnectionType.DmServer)