public virtual JObject Public(HttpContext context) { YZRequest request = new YZRequest(context); this.ApproveCheck(context); int taskid = request.GetInt32("TaskID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; BPMObjectNameCollection accounts = jPost["uids"].ToObject <BPMObjectNameCollection>(); UserCollection users = new UserCollection(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (string account in accounts) { User user = BPMTask.Public(cn, taskid, account); users.Add(user); } JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["UserNameList"] = YZStringHelper.GetUserNameListString(users); return(rv); } }
public virtual JObject Repair(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("TaskID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; List <int> fromStepIDs = jPost["fromStepIDs"].ToObject <List <int> >(); BPMObjectNameCollection toNodeNames = jPost["toNodeNames"].ToObject <BPMObjectNameCollection>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMStepCollection steps = BPMTask.Repair(cn, taskid, fromStepIDs.ToArray(), toNodeNames, comments); List <string> to = new List <string>(); foreach (BPMProcStep step in steps) { to.Add(String.Format("{0}[{1}]", step.NodeName, YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName))); } JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["tosteps"] = String.Join(";", to.ToArray()); return(rv); } }
public virtual JObject InviteIndicate(HttpContext context) { YZRequest request = new YZRequest(context); this.ApproveCheck(context); int taskid = request.GetInt32("TaskID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; BPMObjectNameCollection accounts = jPost["uids"].ToObject <BPMObjectNameCollection>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMTask task = BPMTask.Load(cn, taskid); UserCollection users = BPMTask.InviteIndicate(cn, taskid, accounts, comments); JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["SN"] = task.SerialNum; rv["UserNameList"] = YZStringHelper.GetUserNameListString(users); return(rv); } }
public virtual void MoveOUObjects(HttpContext context) { YZRequest request = new YZRequest(context); string src = request.GetString("src"); string tag = request.GetString("tag"); bool copy = request.GetBool("copy"); JObject post = request.GetPostData <JObject>(); BPMObjectNameCollection roles = post["roles"].ToObject <BPMObjectNameCollection>(); BPMObjectNameCollection members = post["members"].ToObject <BPMObjectNameCollection>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (copy) { OU.CopyRoleAndMembers(cn, src, tag, roles, members); } else { OU.MoveRoleAndMembers(cn, src, tag, roles, members); } } }
protected virtual void ExpandTree(BPMConnection cn, JArray items, string path) { BPMObjectNameCollection folderNames = cn.GetFolders(StoreZoneType.FormService, path, BPMPermision.Read); foreach (String folderName in folderNames) { string folderPath; if (String.IsNullOrEmpty(path)) { folderPath = folderName; } else { folderPath = path + "/" + folderName; } JObject item = new JObject(); items.Add(item); item["leaf"] = false; item["text"] = folderName; item["iconCls"] = "folder"; item["expanded"] = false; item["path"] = folderPath; item["rsid"] = StoreZoneType.FormService.ToString() + "://" + folderPath; JArray children = new JArray(); item[YZJsonProperty.children] = children; this.ExpandTree(cn, children, folderPath); } }
protected void _btnSubmit_Click(object sender, EventArgs e) { BPMObjectNameCollection rejectedNotifys = new BPMObjectNameCollection(); foreach (ListItem lstItem in this._chksProvider.Items) { if (!lstItem.Selected) { rejectedNotifys.Add(lstItem.Value); } } using (BPMConnection cn = new BPMConnection()) { try { cn.WebOpen(); BPM.Client.User.SaveNotifySetting(cn, YZAuthHelper.LoginUserAccount, rejectedNotifys); this._labErr.Visible = false; this._labInfo.Visible = true; this._labInfo.Text = Resources.YZStrings.Aspx_ChgNotify_Success; } catch (Exception exp) { this._labInfo.Visible = true; this._labInfo.Text = Resources.YZStrings.Aspx_ChgNotify_Fail; this._labErr.Visible = true; this._labErr.Text = exp.Message; } } }
public virtual JObject MemberFromFullNames(HttpContext context) { YZRequest request = new YZRequest(context); JArray jPost = request.GetPostData <JArray>(); BPMObjectNameCollection memberfullnames = jPost.ToObject <BPMObjectNameCollection>(); JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (string memberfullname in memberfullnames) { Member member = Member.TryGetMember(cn, memberfullname); if (member == null) { continue; } User user = member.GetUser(cn); //已删除和禁用的用户不显示 if (user == null || user.Disabled) { continue; } rv[memberfullname] = this.JObjectFromMember(member, user); } } return(rv); }
public UserCollection GetUnSignedUsers(BPMConnection cn, BPMObjectNameCollection accounts) { BPMObjectNameCollection accountsUnSigned = new BPMObjectNameCollection(); accountsUnSigned.AddRange(accounts); foreach (Footmark footmark in this) { if (accountsUnSigned.Contains(footmark.Account)) { accountsUnSigned.Remove(footmark.Account); } } UserCollection users = new UserCollection(); foreach (string account in accountsUnSigned) { if (users.Contains(account)) { continue; } User user = User.TryGetUser(cn, account); if (user != null) { users.Add(user); } } return(users); }
public static void ApplayRecordPermision(BPMConnection cn, JsonItemCollection items, string rsid, string tableName, string jsonitemKeyAttrName) { //获得资源上的记录级权限种类 UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, rsid); BPMObjectNameCollection permNames = new BPMObjectNameCollection(); foreach (UserResourcePermision resourcePerm in resourcePerms) { if (resourcePerm.PermType == UserResourcePermisionType.Record) { permNames.Add(resourcePerm.PermName); } } //应用权限 foreach (JsonItem item in items) { string key = Convert.ToString(item.Attributes[jsonitemKeyAttrName]); bool[] rv = RecordSecurityManager.CheckPermision(cn, tableName, key, permNames); JsonItem jsonPerm = new JsonItem(); item.Attributes["perm"] = jsonPerm; for (int i = 0; i < permNames.Count; i++) { jsonPerm.Attributes[permNames[i]] = rv[i]; } } }
public static object[] GetRoles(BPMConnection cn, string memberFullName) { List <object> rv = new List <object>(); BPMObjectNameCollection roleSids = SecurityManager.GetMemberRoleSIDs(cn, memberFullName); foreach (string sid in roleSids) { string dept = null; string roleName = SecurityManager.TryGetObjectNameFromSID(cn, SIDType.RoleSID, sid); if (String.IsNullOrEmpty(roleName)) { roleName = sid; } else { Role role = new Role(); role.Open(cn, roleName); roleName = role.Name; OU ou = role.GetParentOU(cn); dept = ou.GetFriendlyFullName(cn); } rv.Add( new { ou = dept, RoleName = roleName } ); } return(rv.ToArray()); }
public virtual JObject UserFromUIDs(HttpContext context) { YZRequest request = new YZRequest(context); JArray jPost = request.GetPostData <JArray>(); BPMObjectNameCollection uids = jPost.ToObject <BPMObjectNameCollection>(); JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (string uid in uids) { User user = User.TryGetUser(cn, uid); //已删除和禁用的用户不显示 if (user == null || user.Disabled) { continue; } rv[uid] = this.JObjectFromMember(new Member(), user); } } return(rv); }
protected virtual string GetFilter(IDbCommand cmd, string columnName, BPMObjectNameCollection include, BPMObjectNameCollection exclude) { string filter = null; string paramName = this.GetParameterName(columnName); if (include != null && include.Count != 0) { if (include.Count == 1) { filter = this.CombinCond(filter, String.Format("{0}={1}", columnName, paramName)); cmd.Parameters.Add(this.CreateParameter(paramName, this.Convert(include[0], true), false)); } else { filter = this.CombinCond(filter, String.Format("{0} IN({1})", columnName, this.GetDbInList(include))); } } if (exclude != null && exclude.Count != 0) { filter = this.CombinCond(filter, String.Format("{0} NOT IN({1})", columnName, this.GetDbInList(exclude))); } return(filter); }
public virtual JObject GetRecordPermision(HttpContext context) { YZRequest request = new YZRequest(context); string datasource = request.GetString("datasource", null); string rsid = request.GetString("rsid"); string strPerms = request.GetString("perms", null); string strIds = request.GetString("ids", ""); BPMObjectNameCollection permNames = BPMObjectNameCollection.FromStringList(strPerms, ','); JObject rv = new JObject(); JObject perms = new JObject(); rv["perms"] = perms; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (string id in strIds.Split(',')) { bool[] checkResult = RecordSecurityManager.CheckPermision(cn, rsid, id, permNames, datasource); JObject jPerm = new JObject(); perms[id] = jPerm; for (int i = 0; i < permNames.Count; i++) { jPerm[permNames[i]] = checkResult[i]; } } } rv[YZJsonProperty.success] = true; return(rv); }
//日志 public IDataReader GetAppLog(IDbConnection cn, BPMObjectNameCollection sids, DateTime date, string filter, string sort, int startRowIndex, int rows) { date = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0); //Command using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = cn as OracleConnection; cmd.BindByName = true; //获得查询条件 filter = this.CombinCond("EXTDATE=:EXTDATE", filter); cmd.Parameters.Add(":EXTDATE", OracleDbType.Date).Value = date; if (!sids.Contains(WellKnownSID.Administrators)) { string sidfilter = String.Format("ObjectID IN(SELECT ObjectID FROM BPMSysAppLogACL WITH(INDEX(YZIX_BPMSysAppLogACL_ExtDate)) WHERE ExtDate=:ExtDate AND SID IN({0}))", this.GetDbInList(sids)); filter = this.CombinCond(filter, sidfilter); } if (!String.IsNullOrEmpty(filter)) { filter = " WHERE " + filter; } //排序 if (String.IsNullOrEmpty(sort)) { sort = "LOGDATE DESC"; } this.GeneratePageCommand(cmd, "SELECT * FROM BPMSYSAPPLOG" + filter, sort, startRowIndex, rows); return(cmd.ExecuteReader()); } }
public virtual JObject SaveRole(HttpContext context) { YZRequest request = new YZRequest(context); string mode = request.GetString("mode"); JObject data = request.GetPostData <JObject>(); Role role = data["Role"].ToObject <Role>(); BPMObjectNameCollection members = data["Members"].ToObject <BPMObjectNameCollection>(); Role newRole = null; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (mode == "edit") { newRole = Role.UpdateRole(cn, request.GetString("fullname"), role, members); } else { newRole = OU.AddRole(cn, request.GetString("parentou"), role, members); } } return(this.SerializeOUObject(newRole)); }
public virtual JObject AddExistUsers(HttpContext context) { YZRequest request = new YZRequest(context); string parentou = request.GetString("parentou"); JArray post = request.GetPostData <JArray>(); BPMObjectNameCollection accounts = post.ToObject <BPMObjectNameCollection>(); JObject rv = new JObject(); JArray added = new JArray(); rv["added"] = added; try { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (string account in accounts) { OU.AddMember(cn, parentou, account); added.Add(account); } } } catch (Exception e) { rv[YZJsonProperty.success] = false; rv[YZJsonProperty.errorMessage] = e.Message; } return(rv); }
public void SubscribeTo(BPMObjectNameCollection channels) { lock (this._syncRootSubscriptions) { this._subscriptions.AddRange(channels); } }
public void UnSubscribeTo(BPMObjectNameCollection channels) { lock (this._syncRootSubscriptions) { this._subscriptions.Remove(channels); } }
public IDataReader GetProcessAnalysisTrend(IDbConnection cn, int year, BPMObjectNameCollection include, BPMObjectNameCollection exclude) { //Command OracleCommand cmd = new OracleCommand(); cmd.Connection = cn as OracleConnection; cmd.BindByName = true; //in过滤 string extFilter = this.GetFilter(cmd, "PROCESSNAME", include, exclude); if (!String.IsNullOrEmpty(extFilter)) { extFilter = " AND " + extFilter; } //查询语句 cmd.CommandText = @" --DECLARE :ExtYear int; --DECLARE :ProcessName nvarchar(50); --SELECT :ExtYear=2015; WITH A AS( SELECT to_number(to_char(CreateAt,'MM')) Month,ProcessName,State,GREATEST(ROUND(TO_NUMBER(FinishAt-CreateAt) * 24 * 60),0) Minutes FROM BPMInstTasks WHERE ExtYear=:ExtYear" + extFilter + @" ), AA AS( SELECT State,Month,Count(*) Counts,avg(Minutes) AvgMinutes FROM A GROUP BY State,Month ), B AS( SELECT Month, max(case when State='Approved' then Counts else 0 end) Approved, max(case when State='Rejected' then Counts else 0 end) Rejected, max(case when State='Running' then Counts else 0 end) Running, max(case when State='Aborted' then Counts else 0 end) Aborted, max(case when State='Deleted' then Counts else 0 end) Deleted, nvl(sum(Counts),0) Total, max(case when State='Approved' then AvgMinutes else 0 end) AvgMinutes FROM AA GROUP BY Month ), C AS( SELECT rownum Month from dual connect by rownum <=12 ), D AS( SELECT C.Month, nvl(B.Approved,0) Approved, nvl(B.Rejected,0) Rejected, nvl(B.Running,0) Running, nvl(B.Aborted,0) Aborted, nvl(B.Deleted,0) Deleted, nvl(B.Total,0) Total, nvl(B.AvgMinutes,0) AvgMinutes FROM C LEFT JOIN B ON C.Month=B.Month ) SELECT * FROM D ORDER BY Month "; cmd.Parameters.Add(":ExtYear", OracleDbType.Int32).Value = year; return(cmd.ExecuteReader()); }
public IDataReader GetProcessUsageKPI(IDbConnection cn, int year, int month, BPMObjectNameCollection include, BPMObjectNameCollection exclude) { //Command OracleCommand cmd = new OracleCommand(); cmd.Connection = cn as OracleConnection; cmd.BindByName = true; //in过滤 string extFilter = this.GetFilter(cmd, "ProcessName", include, exclude); if (!String.IsNullOrEmpty(extFilter)) { extFilter = " AND " + extFilter; } //查询语句 cmd.CommandText = @" --DECLARE :ExtYear int; --DECLARE :Month int; --SELECT :ExtYear=2015; ----SELECT :Month=2; WITH A AS( SELECT ProcessName,State FROM BPMInstTasks WHERE ExtYear=:ExtYear AND (:Month IS NULL OR to_number(to_char(CreateAt,'MM'))=:Month)" + extFilter + @" ), B AS ( SELECT :ExtYear ExtYear,State,Count(*) Counts FROM A GROUP BY State ), C AS( SELECT ExtYear, max(case when State='Approved' then Counts else 0 end) Approved, max(case when State='Rejected' then Counts else 0 end) Rejected, max(case when State='Running' then Counts else 0 end) Running, max(case when State='Aborted' then Counts else 0 end) Aborted, max(case when State='Deleted' then Counts else 0 end) Deleted, nvl(sum(Counts),0) Total FROM B GROUP BY ExtYear ), D AS( SELECT nvl(count(DISTINCT ProcessName),0) ProcessCount FROM A ) SELECT C.*,D.* FROM C,D "; cmd.Parameters.Add(":ExtYear", OracleDbType.Int32).Value = year; if (month == -1) { cmd.Parameters.Add(":Month", OracleDbType.Int32).Value = DBNull.Value; } else { cmd.Parameters.Add(":Month", OracleDbType.Int32).Value = month + 1; } return(cmd.ExecuteReader()); }
public virtual JObject Remind(HttpContext context) { YZRequest request = new YZRequest(context); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; JArray jTargets = (JArray)jPost["targets"]; UserCollection users = new UserCollection(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (JObject jTarget in jTargets) { int stepid = (int)jTarget["stepid"]; BPMObjectNameCollection uids = jTarget["uids"].ToObject <BPMObjectNameCollection>(); users.Append(BPMProcStep.Remind(cn, stepid, uids, comments)); } } JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["UserNameList"] = YZStringHelper.GetUserNameListString(users); return(rv); }
public virtual JObject CheckPermisions(HttpContext context) { YZRequest request = new YZRequest(context); string rsid = request.GetString("rsid"); string strPerms = request.GetString("perms", null); BPMObjectNameCollection perms = BPMObjectNameCollection.FromStringList(strPerms, ','); JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); ACL acl = SecurityManager.GetACL(cn, rsid); foreach (string strPerm in perms) { BPMPermision perm; if (Enum.TryParse <BPMPermision>(strPerm, out perm)) { rv[strPerm] = acl.HasPermision(cn.Token, perm); } } } return(rv); }
public virtual JArray MemberFromUIDs(HttpContext context) { YZRequest request = new YZRequest(context); JArray jPost = request.GetPostData <JArray>(); BPMObjectNameCollection uids = jPost.ToObject <BPMObjectNameCollection>(); JArray rv = new JArray(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (string uid in uids) { User user = User.TryGetUser(cn, uid); //已删除和禁用的用户不显示 if (user == null || user.Disabled) { continue; } Member member = OrgSvr.TryGetMemberFromAccount(cn, user.Account); if (member == null) { member = new Member(); } rv.Add(this.Serialize(member, user)); } } return(rv); }
public virtual object RelationshipAppGetRelatited(HttpContext context) { YZRequest request = new YZRequest(context); string fileid = request.GetString("fileid"); BPMObjectNameCollection spriteids = JArray.Parse(request.GetString("spriteids")).ToObject <BPMObjectNameCollection>(); BPMObjectNameCollection tagfiletype = JArray.Parse(request.GetString("tagfiletype")).ToObject <BPMObjectNameCollection>(); JArray rv = new JArray(); using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { File file = File.Load(provider, cn, fileid); this.AddReference(provider, cn, file, null, file.Property.Owner, tagfiletype, rv); foreach (Sprite sprite in file.Sprites.SortByOrder()) { if (spriteids.Count != 0 && !spriteids.Contains(sprite.Id)) { continue; } this.AddReference(provider, cn, file, sprite, sprite.AllReferences, tagfiletype, rv); } return(rv); } } }
public virtual JObject GetAllProcessNames(HttpContext context) { YZRequest request = new YZRequest(context); string bpmServer = request.GetString("bpmServer", null); BPMObjectNameCollection processNames = new BPMObjectNameCollection(); using (BPMConnection cn = new BPMConnection()) { this.OpenConnection(cn, bpmServer); processNames = ProcessNameManager.GetProcessNames(cn); } //将数据转化为Json集合 JObject rv = new JObject(); rv[YZJsonProperty.total] = processNames.Count; JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (string processName in processNames) { JObject item = new JObject(); children.Add(item); item["ProcessName"] = processName; } //输出数据 rv[YZJsonProperty.success] = true; return(rv); }
public static OSFileInfoCollection GetFiles(string folderPath, BPMObjectNameCollection excludes) { DirectoryInfo folder = new DirectoryInfo(folderPath); FileInfo[] files = folder.GetFiles("*.*"); OSFileInfoCollection rv = new OSFileInfoCollection(); foreach (FileInfo fileInfo in files) { if ((fileInfo.Attributes & FileAttributes.Directory) == 0 && (fileInfo.Attributes & FileAttributes.System) == 0 && (fileInfo.Attributes & FileAttributes.Hidden) == 0) { if (NameCompare.Equals(fileInfo.Extension, ".extension")) { continue; } if (excludes.Contains(fileInfo.Extension)) { continue; } rv.Add(new OSFileInfo(fileInfo)); } } rv.Sort(); return(rv); }
public IDataReader GetProcessAnalysisTrend(IDbConnection cn, int year, BPMObjectNameCollection include, BPMObjectNameCollection exclude) { //Command SqlCommand cmd = new SqlCommand(); cmd.Connection = cn as SqlConnection; //in过滤 string extFilter = this.GetFilter(cmd, "ProcessName", include, exclude); if (!String.IsNullOrEmpty(extFilter)) { extFilter = " AND " + extFilter; } //查询语句 cmd.CommandText = @" --DECLARE @ExtYear int; --DECLARE @ProcessName nvarchar(50); --SELECT @ExtYear=2015; WITH A AS( SELECT Month(CreateAt) [Month],ProcessName,State,DATEDIFF(mi,CreateAt,FinishAt) Minutes FROM BPMInstTasks WHERE ExtYear=@ExtYear" + extFilter + @" ), AA AS( SELECT State,[Month],Count(*) Counts,avg(Minutes) AvgMinutes FROM A GROUP BY State,[Month] ), B AS( SELECT [Month], max(case when State='Approved' then Counts else 0 end) Approved, max(case when State='Rejected' then Counts else 0 end) Rejected, max(case when State='Running' then Counts else 0 end) Running, max(case when State='Aborted' then Counts else 0 end) Aborted, max(case when State='Deleted' then Counts else 0 end) Deleted, ISNULL(sum(Counts),0) Total, max(case when State='Approved' then AvgMinutes else 0 end) AvgMinutes FROM AA GROUP BY [Month] ), C AS( SELECT number [Month] FROM MASTER..spt_values WHERE type='P' and number between 1 and 12 ), D AS( SELECT C.[Month], ISNULL(B.Approved,0) Approved, ISNULL(B.Rejected,0) Rejected, ISNULL(B.Running,0) Running, ISNULL(B.Aborted,0) Aborted, ISNULL(B.Deleted,0) Deleted, ISNULL(B.Total,0) Total, ISNULL(B.AvgMinutes,0) AvgMinutes FROM C LEFT JOIN B ON C.[Month]=B.[Month] ) SELECT * FROM D ORDER BY [Month] "; cmd.Parameters.Add("@ExtYear", SqlDbType.Int).Value = year; return(cmd.ExecuteReader()); }
public string GetDBInString(BPMObjectNameCollection strs) { if (strs == null) { return(null); } return(this.GetDBInString(strs.ToArray())); }
public IDataReader GetDeletedObjects(IDbConnection cn, BPMObjectNameCollection libTypes, string deletedBy) { using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = cn as OracleConnection; cmd.BindByName = true; //查询条件 string libFilter = null; for (int i = 0; i < libTypes.Count; i++) { string paramName = ":LibType" + i.ToString(); string libType = libTypes[i]; libFilter = this.CombinCondOR(libFilter, String.Format("LibType = {0}", paramName)); cmd.Parameters.Add(paramName, OracleDbType.NVarchar2).Value = libType; } if (!String.IsNullOrEmpty(libFilter)) { libFilter = " WHERE " + libFilter; } cmd.CommandText = String.Format(@" WITH A AS( SELECT * FROM YZV_RootFolders {0} ), FA AS( SELECT * FROM YZAppFolderFiles WHERE Recyclebin=1 AND (:DeleteBy IS NULL OR DeleteBy=:DeleteBy) ), FB AS( SELECT YZAppFolders.RootID,FA.* FROM FA,YZAppFolders WHERE FA.FolderID = YZAppFolders.FolderID ), FC AS( SELECT A.*,FB.* FROM A,FB WHERE A.RootFolderID=FB.RootID ), FD AS( SELECT FC.LibID,FC.LibType,FC.LibName,FC.LibDesc,FC.DeleteBy,FC.DeleteAt,YZDirectoryGetPath(FC.FolderID) as Path,null as FolderID,YZAppAttachment." + "\"NAME\"" + @",FC." + "\"ID\"" + @",FC.FileID,YZAppAttachment.Ext,YZAppAttachment." + "\"SIZE\"" + @" FROM FC,YZAppAttachment WHERE FC.FileID=YZAppAttachment.FileID ), FDA AS( SELECT * FROM YZAppFolders WHERE Recyclebin=1 AND (:DeleteBy IS NULL OR DeleteBy=:DeleteBy) ), FDB AS( SELECT A.LibID,A.LibType,A.LibName,A.LibDesc,FDA.DeleteBy,FDA.DeleteAt,YZDirectoryGetPath(FDA.ParentID) as Path,FDA.FolderID,FDA." + "\"NAME\"" + @",null as " + "\"ID\"" + @",null as FileID,null as Ext,null as " + "\"SIZE\"" + @" FROM A,FDA WHERE A.RootFolderID=FDA.RootID ), Z AS( SELECT * FROM FD UNION SELECT * FROM FDB ) SELECT * FROM Z Order BY DeleteAt desc ", libFilter); //查询条件 cmd.Parameters.Add(":DeleteBy", OracleDbType.NVarchar2).Value = this.Convert(deletedBy, true); return(cmd.ExecuteReader()); } }
public virtual object GetTeamReports(HttpContext context) { YZRequest request = new YZRequest(context); string myaccount = request.GetString("account", YZAuthHelper.LoginUserAccount); DateTime date = request.GetDateTime("date"); BPMObjectNameCollection accounts = new BPMObjectNameCollection(); accounts.Add(myaccount); using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); MemberCollection positions = OrgSvr.GetUserPositions(bpmcn, myaccount); foreach (Member position in positions) { DirectXSCollection xss = position.GetDirectXSs(bpmcn); foreach (DirectXS xs in xss) { if (!accounts.Contains(xs.UserAccount)) { accounts.Add(xs.UserAccount); } } } DailyReportCollection rv = new DailyReportCollection(); foreach (string account in accounts) { DailyReport dailyReport; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { dailyReport = DailyReportManager.TryGetReport(provider, cn, account, date); if (dailyReport == null) { dailyReport = new DailyReport(); dailyReport.Account = account; dailyReport.Date = date; } rv.Add(dailyReport); } } User user = User.TryGetUser(bpmcn, account); dailyReport["ShortName"] = user == null ? "" : user.ShortName; } return(rv); } }
public string GetDBInString(BPMObjectNameCollection sids, string uid) { if (sids == null) return null; BPMObjectNameCollection lsids = new BPMObjectNameCollection(); sids.CopyTo(lsids); lsids.Add(uid); return this.GetDBInString(lsids); }
public string GetDBInString(BPMObjectNameCollection strs) { if (strs == null) return null; return this.GetDBInString(strs.ToArray()); }
public virtual IDbCommand GetTaskCommunicationListCommand(IDbConnection cn, string uid, BPMObjectNameCollection sids, string taskTableFilter, string messageTableFilter, int start, int limit) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; string filter = null; if (!String.IsNullOrEmpty(messageTableFilter)) filter = String.Format("TaskID IN(SELECT DISTINCT TaskID FROM B WHERE {0})",messageTableFilter); filter = this.CombinCondOR(filter, taskTableFilter); if (!String.IsNullOrEmpty(filter)) filter = "WHERE " + filter; StringBuilder sb = new StringBuilder(); sb.AppendLine("WITH A AS(SELECT M.* FROM YZV_TaskCommunicationRead M WHERE uid=@uid),"); sb.AppendLine("B AS(SELECT M.*,A.uid as ruid,isnull(A.readId,0) as readId FROM YZV_TaskCommunication M LEFT JOIN A ON M.TaskID=A.TaskID),"); sb.AppendLine("C1 AS(SELECT sum(case when id>readId then 1 else 0 end) count,count(*) total,max(id) as lastMsgId FROM B GROUP BY TaskID),"); sb.AppendLine("C AS(SELECT B.*,C1.* FROM C1 INNER JOIN B ON C1.lastMsgId=B.id),"); //sb.AppendLine("B AS(SELECT M.*,A.uid as ruid FROM YZV_TaskCommunication M LEFT JOIN A ON M.TaskID=A.TaskID WHERE M.id>isnull(A.readId,0)),"); //sb.AppendLine("C AS(SELECT TaskID,count(*) count FROM B GROUP BY TaskID),"); sb.AppendLine("D AS(SELECT * FROM C WHERE TaskID IN(SELECT TaskID FROM YZV_TaskAccess WHERE SID IN({0}))),"); sb.AppendLine("E AS(SELECT D.*,SerialNum,ProcessName,OwnerAccount,AgentAccount,CreateAt,Description,State FROM D INNER JOIN BPMInstTasks M ON D.TaskID=M.TaskID),"); sb.AppendLine("F AS(SELECT * FROM E {1}),"); sb.AppendLine("X AS(SELECT *,ROW_NUMBER() OVER(ORDER BY id DESC) AS RowNum FROM F),"); sb.AppendLine("Y AS(SELECT count(*) AS TotalRows FROM X),"); sb.AppendLine("Z AS(SELECT X.*,Y.TotalRows FROM Y,X)"); sb.AppendLine("SELECT * FROM Z WHERE RowNum = 1 OR RowNum BETWEEN @StartRowIndex AND @EndRowIndex ORDER BY RowNum"); cmd.CommandText = String.Format(sb.ToString(), this.GetDBInString(sids, uid), filter); cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid; cmd.Parameters.Add("@StartRowIndex", SqlDbType.Int).Value = start + 1; cmd.Parameters.Add("@EndRowIndex", SqlDbType.Int).Value = start + limit; return cmd; } }
public static string GetUserNameListString(StepRecipientCollection recps) { BPMObjectNameCollection names = new BPMObjectNameCollection(); foreach (StepRecipient recp in recps) names.Add(YZStringHelper.GetRecpientDisplayName(recp)); return names.ToStringList(';'); }
public static string GetUserShortNameListString(UserCollection users) { BPMObjectNameCollection names = new BPMObjectNameCollection(); foreach (User user in users) names.Add(YZStringHelper.GetUserShortName(user.Account, user.DisplayName)); return names.ToStringList(';'); }
public static void ApplayRecordPermision(BPMConnection cn, JsonItemCollection items,string rsid, string tableName,string jsonitemKeyAttrName) { //获得资源上的记录级权限种类 UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, rsid); BPMObjectNameCollection permNames = new BPMObjectNameCollection(); foreach (UserResourcePermision resourcePerm in resourcePerms) { if (resourcePerm.PermType == UserResourcePermisionType.Record) permNames.Add(resourcePerm.PermName); } //应用权限 foreach(JsonItem item in items) { string key = Convert.ToString(item.Attributes[jsonitemKeyAttrName]); bool[] rv = RecordSecurityManager.CheckPermision(cn, tableName, key, permNames); JsonItem jsonPerm = new JsonItem(); item.Attributes["perm"] = jsonPerm; for (int i = 0; i < permNames.Count; i++) jsonPerm.Attributes[permNames[i]] = rv[i]; } }
public static void ApplayPermision(BPMConnection cn, JsonItemCollection items) { for(int moduleIndex = 0; moduleIndex < items.Count ; moduleIndex++) { JsonItem item = items[moduleIndex]; bool moduleExecute = true; if (item.Attributes.ContainsKey("modulePerm")) { YZModulePermision perm = item.Attributes["modulePerm"] as YZModulePermision; item.Attributes.Remove("modulePerm"); //检查模块权限 moduleExecute = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, "Execute"); if (moduleExecute) { //获得模块config配置项 JsonItem config = null; if (item.Attributes.ContainsKey("config")) config = item.Attributes["config"] as JsonItem; else { config = new JsonItem(); item.Attributes["config"] = config; } //在config配置项下建perm配置 JsonItem jsonPerm = new JsonItem(); config.Attributes["perm"] = jsonPerm; //记录模块rsid jsonPerm.Attributes["rsid"] = perm.RSID; //生成工具条上的访问权限 if (perm.GenToolbarPermision) { //获得工具条上的模块级权限种类 UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, perm.RSID); BPMObjectNameCollection permNames = new BPMObjectNameCollection(); foreach (UserResourcePermision resourcePerm in resourcePerms) { if (resourcePerm.PermType == UserResourcePermisionType.Module) permNames.Add(resourcePerm.PermName); } //记录工具条上的模块级权限许可情况 bool[] rv = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, permNames); for (int i = 0; i < permNames.Count; i++) jsonPerm.Attributes[permNames[i]] = rv[i]; } } else { items.RemoveAt(moduleIndex); moduleIndex--; } } //此模块可见则检查子级 if (moduleExecute) { if (item.Attributes.ContainsKey("children")) { JsonItemCollection children = item.Attributes["children"] as JsonItemCollection; if (children != null) { int allCount = children.Count; ApplayPermision(cn, children); if (allCount != 0 && children.Count == 0) { //item.Attributes["empty"] = true; items.RemoveAt(moduleIndex); moduleIndex--; continue; } } } if (item.Attributes.ContainsKey("tabs")) { JsonItemCollection tabs = item.Attributes["tabs"] as JsonItemCollection; if (tabs != null) { int allCount = tabs.Count; ApplayPermision(cn, tabs); if (allCount != 0 && tabs.Count == 0) { //item.Attributes["empty"] = true; items.RemoveAt(moduleIndex); moduleIndex--; continue; } } } } } }
public virtual int GetTaskCommunicationNewMessageCount(IDbConnection cn, string uid, BPMObjectNameCollection sids) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; StringBuilder sb = new StringBuilder(); sb.AppendLine("WITH A AS(SELECT M.* FROM YZV_TaskCommunicationRead M WHERE uid=@uid),"); sb.AppendLine("B AS(SELECT M.*,A.uid as ruid,isnull(A.readId,0) readId FROM YZV_TaskCommunication M LEFT JOIN A ON M.TaskID=A.TaskID WHERE M.id>isnull(A.readId,0)),"); sb.AppendLine("C AS(SELECT TaskID,count(*) count FROM B GROUP BY TaskID),"); sb.AppendLine(String.Format("D AS(SELECT * FROM C WHERE TaskID IN(SELECT TaskID FROM YZV_TaskAccess WHERE SID IN({0})))", this.GetDBInString(sids, uid))); sb.AppendLine("SELECT ISNULL(sum(count),0) as count FROM D"); cmd.CommandText = sb.ToString(); cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid; return Convert.ToInt32(this.ExecuteScalar(cmd)); } }
public static string GetTaskStateDisplayString(BPMConnection cn, TaskState state, int taskid) { if (state != TaskState.Running) return YZStringHelper.GetTaskStateDisplayName(state); Dictionary<string, BPMObjectNameCollection> results = new Dictionary<string, BPMObjectNameCollection>(); BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid); foreach (BPMProcStep step in steps) { string stepName = step.StepDisplayName; if(step.Share && String.IsNullOrEmpty(step.RecipientAccount)) stepName = stepName + "(等待获取)"; BPMObjectNameCollection users = null; if (results.ContainsKey(stepName)) { users = results[stepName]; } else { users = new BPMObjectNameCollection(); results.Add(stepName, users); } string userName = YZStringHelper.GetUserShortName(step.RecipientAccount,step.RecipientFullName); if (!String.IsNullOrEmpty(userName) && !users.Contains(userName)) users.Add(userName); } List<string> rvs = new List<string>(); foreach (KeyValuePair<string, BPMObjectNameCollection> kv in results) { string users = String.Join(",",kv.Value.ToArray()); if (String.IsNullOrEmpty(users)) rvs.Add(kv.Key); else rvs.Add(String.Format("{0}:{1}",kv.Key,users)); } return String.Join(";",rvs.ToArray()); }