using Newtonsoft.Json; using NFine.Code; using NFine.Data.Extensions; using NFine.Domain._03_Entity.SystemManage; using NFine.Domain.Entity.SystemManage; using NFine.Domain.IRepository.SystemManage; using NFine.Repository; using NFine.Repository.SystemManage; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace NFine.Application.SystemManage { public class DataActionApp : RepositoryFactory { public string DataActionSqlGet(string MenuID) { OperatorModel oo = NFine.Code.OperatorProvider.Provider.GetCurrent(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sqlstr = string.Empty; try { string sql = @" select B.DataActionId from Sys_SRM_User A INNER JOIN Sys_RoleDataPower B ON B.RoleId=A.F_RoleId where F_Account='{0}' and F_Location in({1})"; sql = string.Format(sql, MUSER, WorkPoint.TrimEnd(',')); DataTable dt = SqlHelper.GetDataTableBySql(sql); if (dt.Rows.Count == 0) { sqlstr = ""; } else { string DataActionID = ""; foreach (DataRow dr in dt.Rows) { DataActionID += "'" + dr["DataActionId"].ToString() + "',"; } sql = @" SELECT CCaption 条件名称, CValueBegin 起始值,CValueEnd 结束值 from Sys_FormDataAction con where con.ID in ({0}) AND con.SourceId='{1}'"; sql = string.Format(sql, DataActionID.TrimEnd(','), MenuID); dt = SqlHelper.GetDataTableBySql(sql); foreach (DataRow dr in dt.Rows) { if (dr["起始值"].ToString() != "" && dr["结束值"].ToString() != "") { sqlstr += " and " + dr["条件名称"].ToString() + " >= '" + dr["起始值"].ToString() + @"' and " + dr["条件名称"].ToString() + " <= '" + dr["结束值"].ToString() + "'"; } else if (dr["起始值"].ToString() == "" && dr["结束值"].ToString() == "") { continue; } else { string wherestr = ""; if (dr["起始值"].ToString() != "") { if (dr["起始值"].ToString().Contains(',')) { string[] strList = dr["起始值"].ToString().Split(','); foreach (string str in strList) { wherestr += "'" + str + "',"; } wherestr = wherestr.TrimEnd(','); sqlstr += " and " + dr["条件名称"].ToString() + " IN (" + wherestr + ")"; } else { sqlstr += " and " + dr["条件名称"].ToString() + " = '" + dr["起始值"].ToString() + "'"; } } else { if (dr["结束值"].ToString().Contains(',')) { string[] strList = dr["结束值"].ToString().Split(','); foreach (string str in strList) { wherestr += "'" + str + "',"; } wherestr = wherestr.TrimEnd(','); sqlstr += " and " + dr["条件名称"].ToString() + " IN (" + wherestr + ")"; } else { sqlstr += " and " + dr["条件名称"].ToString() + " = '" + dr["结束值"].ToString() + "'"; } } } if (dr["起始值"].ToString().Contains("[AppConfig.WorkPointCode]") || dr["起始值"].ToString().Contains("[AppConfig.UserId]") || dr["起始值"].ToString().Contains("[AppConfig.UserCode]") || dr["起始值"].ToString().Contains("[AppConfig.UserName]") || dr["起始值"].ToString().Contains("[AppConfig.RoleCode]")) { sqlstr = sqlstr.Replace("[AppConfig.WorkPointCode]", oo.Location); sqlstr = sqlstr.Replace("[AppConfig.UserId]", oo.UserId); sqlstr = sqlstr.Replace("[AppConfig.UserCode]", oo.UserCode); sqlstr = sqlstr.Replace("[AppConfig.UserName]", oo.UserName); sqlstr = sqlstr.Replace("[AppConfig.RoleCode]", oo.RoleEnCode); } } } } catch (Exception ex) { throw new Exception(ex.Message); } return sqlstr; } public string DataActionSqlGet() { OperatorModel oo = NFine.Code.OperatorProvider.Provider.GetCurrent(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sqlstr = string.Empty; try { string sql = @" select B.DataActionId from Sys_SRM_User A INNER JOIN Sys_RoleDataPower B ON B.RoleId=A.F_RoleId where F_Account='{0}' and F_Location='{1}'"; sql = string.Format(sql, MUSER, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); if (dt.Rows.Count == 0) { sqlstr = ""; } else { string DataActionID = ""; foreach (DataRow dr in dt.Rows) { DataActionID += "'" + dr["DataActionId"].ToString() + "',"; } sql = @" SELECT CCaption 条件名称, CValueBegin 起始值,CValueEnd 结束值 from Sys_FormDataAction con where con.ID in ({0})"; sql = string.Format(sql, DataActionID.TrimEnd(',')); dt = SqlHelper.GetDataTableBySql(sql); foreach (DataRow dr in dt.Rows) { if (dr["起始值"].ToString() != "" && dr["结束值"].ToString() != "") { sqlstr += " and " + dr["条件名称"].ToString() + " >= '" + dr["起始值"].ToString() + @"' and " + dr["条件名称"].ToString() + " <= '" + dr["结束值"].ToString() + "'"; } else if (dr["起始值"].ToString() == "" && dr["结束值"].ToString() == "") { continue; } else { string wherestr = ""; if (dr["起始值"].ToString() != "") { if (dr["起始值"].ToString().Contains(',')) { string[] strList = dr["起始值"].ToString().Split(','); foreach (string str in strList) { wherestr += "'" + str + "',"; } wherestr = wherestr.TrimEnd(','); sqlstr += " and " + dr["条件名称"].ToString() + " IN (" + wherestr + ")"; } else { sqlstr += " and " + dr["条件名称"].ToString() + " = '" + dr["起始值"].ToString() + "'"; } } else { if (dr["结束值"].ToString().Contains(',')) { string[] strList = dr["结束值"].ToString().Split(','); foreach (string str in strList) { wherestr += "'" + str + "',"; } wherestr = wherestr.TrimEnd(','); sqlstr += " and " + dr["条件名称"].ToString() + " IN (" + wherestr + ")"; } else { sqlstr += " and " + dr["条件名称"].ToString() + " = '" + dr["结束值"].ToString() + "'"; } } } if (dr["起始值"].ToString().Contains("[AppConfig.WorkPointCode]") || dr["起始值"].ToString().Contains("[AppConfig.UserId]") || dr["起始值"].ToString().Contains("[AppConfig.UserCode]") || dr["起始值"].ToString().Contains("[AppConfig.UserName]") || dr["起始值"].ToString().Contains("[AppConfig.RoleCode]")) { sqlstr = sqlstr.Replace("[AppConfig.WorkPointCode]", oo.Location); sqlstr = sqlstr.Replace("[AppConfig.UserId]", oo.UserId); sqlstr = sqlstr.Replace("[AppConfig.UserCode]", oo.UserCode); sqlstr = sqlstr.Replace("[AppConfig.UserName]", oo.UserName); sqlstr = sqlstr.Replace("[AppConfig.RoleCode]", oo.RoleEnCode); } } } } catch (Exception ex) { throw new Exception(ex.Message); } return sqlstr; } } }