#region using System; using System.Collections.Generic; using System.Data; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Interfaces; using CSFrameworkV5.Interfaces.InterfaceModels; using CSFrameworkV5.Models; #endregion namespace CSFrameworkV5.DataAccess { public class dalCommon : dalBase, IBridge_CommonData { /// /// 构造器 /// /// 当前用户登录信息 public dalCommon(Loginer user) : base(user) { } public bool ApprovalBusiness(QueryApproval P) { if (string.IsNullOrWhiteSpace(P.DBID)) throw new Exception("ApprovalBusiness方法缺少DBID的值。"); try { var db = DatabaseProvider.GetDatabase(P.DBID); var sp = db.CreateSqlProc("usp_ApprovalBusiness"); sp.AddParam("TableName", DbType.String, 50, P.TableName); sp.AddParam("KeyFieldName", DbType.String, 50, P.KeyFieldName); sp.AddParam("KeyValue", DbType.String, 50, P.KeyValue); sp.AddParam("FlagApp", DbType.String, 250, P.FlagApp); sp.AddParam("AppUser", DbType.String, 250, _Loginer.Account); db.ExecuteCommand(sp.Command); //没报异常,审核成功! return true; } catch { return false; } } /// /// 获取业务单据名称定义 /// /// public DataTable GetBusinessTables() { var SQL = "SELECT * FROM sys_BusinessTables ORDER BY ModuleID,SortID;"; return DatabaseProvider.SystemDatabase.GetTable(SQL, "sys_BusinessTables"); } /// /// 获取自动序号,如:XX0000001 /// /// XX /// 作为前缀返回 /// public string GetDataSN(string dataCode, bool asHeader) { var no = DocNoTool.GetDataSN(_Database, dataCode, asHeader); return no; } public List GetDbTableFields(string DBName, string TableName) { var db = DatabaseProvider.SystemDatabase; var sql = $"SELECT DISTINCT DBName,TableName,FieldName,DisplayName FROM sys_FieldNameDefs WHERE DBName={db.ParamSymboName}DBName AND TableName={db.ParamSymboName}TableName"; var sp = db.CreateCommand(sql); sp.AddParam("DBName", DBName); sp.AddParam("TableName", TableName); return db.ExecuteReaderList(sp.Command); } public List GetDbTables() { var sql = "SELECT DISTINCT DBName,TableName FROM sys_FieldNameDefs"; var sp = DatabaseProvider.SystemDatabase.CreateCommand(sql); return DatabaseProvider.SystemDatabase .ExecuteReaderList(sp.Command); } /// /// 获取单据号码(单据流水号码) /// /// /// public string GetDocNo(string DocNoName) { var no = DocNoTool.GetDocNo(_Database, DocNoName); return no; } /// /// 获取空表 /// /// 账套编号 /// 表名 /// public DataTable GetEmptyTable(string DBID, string tableName) { if (string.IsNullOrEmpty(tableName)) throw new Exception("表名不能为空!"); var sql = $"SELECT * FROM {tableName} WHERE 1=0;"; return DatabaseProvider.GetDatabase(DBID).GetTable(sql, tableName); } /// /// 获取模块名称定义 /// /// public DataTable GetModules() { return _Database.GetTable("SELECT * FROM sys_ModuleFileList;", "sys_ModuleFileList"); } public DateTime GetServerTime() { return _Database.GetServerTime(); } /// /// 获取系统帐套清单 /// /// public DataTable GetSystemDataSet() { //系统数据库 var db = DatabaseProvider.SystemDatabase; var sql = $"SELECT * FROM tb_DataSet WHERE IsUse={db.ParamSymboName}IsUse;"; var cmd = db.CreateCommand(sql); cmd.AddParam("IsUse", "Y"); return db.GetTable(cmd.Command, "tb_DataSet"); } public DataTable GetSystemDataSet(string user, string password) { var sp = DatabaseProvider.SystemDatabase.CreateSqlProc( "usp_GetDataSetByUser"); sp.AddParam("User", DbType.String, user); sp.AddParam("Password", DbType.String, password); //取系统数据库里的资料表 return DatabaseProvider.SystemDatabase.GetTable(sp.Command, "tb_DataSet"); } public DataTable GetSystemSettings4Program(string DataSetID, string UserID) { var sp = DatabaseProvider.SystemDatabase.CreateSqlProc( "usp_sys_GetSystemSettings4Program"); sp.AddParam("DataSetID", DbType.String, 50, DataSetID); sp.AddParam("UserID", DbType.String, 50, UserID); return DatabaseProvider.SystemDatabase.GetTable(sp.Command, sys_SystemSettingsByUser.__TableName); } public DataTable GetSystemSettingsByUser(string DataSetID, string UserID) { var sp = DatabaseProvider.SystemDatabase.CreateSqlProc( "usp_sys_GetSystemSettingsByUser"); sp.AddParam("DataSetID", DbType.String, 50, DataSetID); sp.AddParam("UserID", DbType.String, 50, UserID); return DatabaseProvider.SystemDatabase.GetTable(sp.Command, sys_SystemSettingsByUser.__TableName); } public DataTable GetSystemSettingsEx(string ParamName, string ParamType) { var sp = DatabaseProvider.SystemDatabase.CreateSqlProc( "usp_sys_GetSystemSettings"); sp.AddParam("Content", DbType.String, 50, ParamName); sp.AddParam("ParamType", DbType.String, 50, ParamType); return DatabaseProvider.SystemDatabase.GetTable(sp.Command, sys_SystemSettings.__TableName); } /// /// 获取物理表的字段 /// /// 物理表名 /// public DataTable GetTableFields(string tableName) { var sp = _Database.CreateSqlProc("sp_sys_GetTableFieldType"); sp.AddParam("TableName", DbType.String, 50, tableName); return _Database.GetTable(sp.Command, "tb_TableFieldTypeData"); } /// /// 获取表的所有字段 /// /// 表名 public DataTable GetTableFieldsDef(string tableName, bool onlyDisplayField) { var sp = DatabaseProvider.SystemDatabase.CreateSqlProc( "sp_sys_GetTableFieldsForPicker"); sp.AddParam("TableName", tableName); sp.AddParam("ReturnAll", onlyDisplayField ? "N" : "Y"); return DatabaseProvider.SystemDatabase.GetTable(sp.Command, "Fields"); } public byte[] GetUpgrader(string upgraderName, string serverVer) { //获取当前DLL版本字节 return new dalFileUpload().GetUpgrader(upgraderName, serverVer); } public string GetUpgraderVersion(string upgraderName) { //获取最新版本号 return new dalFileUpload().GetUpgraderVersion(upgraderName); } /// /// 获取版本更新表数据 /// /// public DataTable GetUpgraderVersionData() { return DatabaseProvider.SystemDatabase.GetTable( "SELECT distinct upgraderName FROM sys_UpgraderVersion;", "sys_UpgraderVersion"); } /// /// 获取当前模块报表样式 /// /// public DataTable GetReports(string ReportsName) { return DatabaseProvider.SystemDatabase.GetTable( string.Format( "SELECT * FROM SYS_Reports WHERE ReportTitle='{0}';", ReportsName), "SYS_Reports"); } public void PostUserSettings(Loginer currentUser, string paramKey, string paramValue) { var sp = DatabaseProvider.SystemDatabase.CreateSqlProc( "usp_sys_PostSystemSettings4User"); sp.AddParam("DatasetID", DbType.String, 50, currentUser.DBID); sp.AddParam("UserID", DbType.String, 50, currentUser.Account); sp.AddParam("ParamCode", DbType.String, 50, paramKey); sp.AddParam("ParamValue", DbType.String, 250, paramValue); DatabaseProvider.SystemDatabase.ExecuteCommand(sp.Command); } public DataTable SearchOutstanding(string invoiceNo, string customer, DateTime dateFrom, DateTime dateTo, DateTime dateEnd, string outstandingType) { //outstandingType:AR/AP/ALL if (outstandingType == "AR") { var sp = _Database.CreateSqlProc("sp_QueryOutstandingAR"); sp.AddParam("InvoiceNo", DbType.String, 20, invoiceNo); sp.AddParam("CustomerCode", DbType.String, 20, customer); sp.AddParam("FromDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateFrom)); sp.AddParam("ToDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateTo)); sp.AddParam("EndDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateEnd)); return _Database.GetTable(sp.Command, "Outstanding" + outstandingType); } if (outstandingType == "AP") { var sp = _Database.CreateSqlProc("sp_QueryOutstandingAP"); sp.AddParam("InvoiceNo", DbType.String, 20, invoiceNo); sp.AddParam("SupplierCode", DbType.String, 20, customer); sp.AddParam("FromDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateFrom)); sp.AddParam("ToDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateTo)); sp.AddParam("EndDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateEnd)); return _Database.GetTable(sp.Command, "Outstanding" + outstandingType); } return null; } public DataSet SearchOutstandingByPage(string invoiceNo, string customer, DateTime dateFrom, DateTime dateTo, DateTime dateEnd, string outstandingType, int pageNo, int pageSize) { //outstandingType:AR/AP/ALL if (outstandingType == "AR") { var sp = _Database.CreateSqlProc("sp_QueryOutstandingAR_ByPage"); sp.AddParam("InvoiceNo", DbType.String, 20, invoiceNo); sp.AddParam("CustomerCode", DbType.String, 20, customer); sp.AddParam("FromDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateFrom)); sp.AddParam("ToDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateTo)); sp.AddParam("EndDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateEnd)); sp.AddParam("PageNo", DbType.Int32, 8, pageNo); sp.AddParam("PageSize", DbType.Int32, 8, pageSize); var ds = _Database.GetDataSet(sp.Command); ds.Tables[0].TableName = "Outstanding" + outstandingType; ds.Tables[1].TableName = "TOTAL_PAGES"; return ds; } if (outstandingType == "AP") { var sp = _Database.CreateSqlProc("sp_QueryOutstandingAP_ByPage"); sp.AddParam("InvoiceNo", DbType.String, 20, invoiceNo); sp.AddParam("SupplierCode", DbType.String, 20, customer); sp.AddParam("FromDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateFrom)); sp.AddParam("ToDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateTo)); sp.AddParam("EndDate", DbType.String, 8, ConvertEx.ToCharYYYYMMDD(dateEnd)); sp.AddParam("PageNo", DbType.Int32, 8, pageNo); sp.AddParam("PageSize", DbType.Int32, 8, pageSize); var ds = _Database.GetDataSet(sp.Command); ds.Tables[0].TableName = "Outstanding" + outstandingType; ds.Tables[1].TableName = "TOTAL_PAGES"; return ds; } return null; } public bool UploadUpgrader(string upgraderName, byte[] body, string version, DateTime uploadTime, string user) { new dalFileUpload().UploadUpgrader(upgraderName, body, version, uploadTime, user); return true; } public DataTable GetSysBusinessTables() { var sql = "SELECT * FROM sys_BusinessTables;"; //取系统数据库里的资料表 return DatabaseProvider.SystemDatabase.GetTable(sql, "sys_BusinessTables"); } /// /// 获取系统帐套清单 /// /// 系统数据库名 /// public DataTable GetSystemDataSet(string user, string password, string systemDB) { var sp = DatabaseProvider.SystemDatabase.CreateSqlProc( "usp_GetDataSetByUser"); sp.AddParam("User", DbType.String, user); sp.AddParam("Password", DbType.String, password); return DatabaseProvider.SystemDatabase.GetTable(sp.Command, "tb_DataSet"); } public int GetUpgraderPackages(string currentVersionID) { return new dalFileUpload().GetUpgraderPackages(currentVersionID); } public bool TestConnection() { var sql = "SELECT COUNT(*) FROM tb_DataSet;"; //取系统数据库的帐套数据表 var o = DatabaseProvider.SystemDatabase.ExecuteScalar(sql); return true; } } }