public virtual JObject RecedeBack(HttpContext context) { YZRequest request = new YZRequest(context); int stepid = request.GetInt32("StepID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; List <int> toStepIDs = jPost["toStepIDs"].ToObject <List <int> >(); BPMProcStep srcStep; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } srcStep = BPMProcStep.Load(cn, stepid); BPMStepCollection newSteps = BPMProcStep.RecedeBack(cn, stepid, toStepIDs.ToArray(), comments); List <string> to = new List <string>(); foreach (BPMProcStep step in newSteps) { to.Add(String.Format("{0}[{1}]", step.NodeName, YZStringHelper.GetUserShortName(step.RecipientAccount, step.RecipientFullName))); } JObject rv = new JObject(); rv["tosteps"] = String.Join(";", to.ToArray()); return(rv); } }
public static object[] GetSupervisors(BPMConnection cn, string memberFullName, bool includeDisabledUser) { List <object> rv = new List <object>(); SupervisorCollection supervisors = Member.GetSupervisors(cn, memberFullName); foreach (Supervisor supervisor in supervisors) { Member supervisorMember = Member.FromFullName(cn, supervisor.MemberFullName); User user = supervisorMember.GetUser(cn); if (user.Disabled && !includeDisabledUser) { continue; } rv.Add( new { ou = supervisorMember.GetParentOU(cn).GetFriendlyFullName(cn), LeaderTitle = supervisorMember.LeaderTitle, Level = supervisorMember.Level, Account = supervisor.UserAccount, UserName = YZStringHelper.GetUserShortName(supervisor.UserAccount, supervisor.UserFullName), FGYWEnabled = supervisor.FGYWEnabled, FGYWs = supervisor.FGYWs, Disabled = user.Disabled } ); } return(rv.ToArray()); }
public virtual JObject GetTaskRejectedInfo(HttpContext context) { YZRequest request = new YZRequest(context); int stepid = request.GetInt32("stepid"); //获得数据 BPMProcStep step = new BPMProcStep(); BPMTask task = new BPMTask(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); step.Open(cn, stepid); task.Open(cn, step.TaskID); JObject rv = new JObject(); rv["taskid"] = task.TaskID; rv["processName"] = task.ProcessName; rv["sn"] = task.SerialNum; rv["desc"] = task.Description; rv["rejectBy"] = YZStringHelper.GetUserShortName(step.HandlerAccount, step.HandlerDisplayName); rv["rejectAt"] = step.FinishAt; rv["comments"] = step.Comments; return(rv); } }
public static object[] GetDirectXSs(BPMConnection cn, string memberFullName, bool includeDisabledUser) { List <object> rv = new List <object>(); DirectXSCollection directXSs = Member.GetDirectXSs(cn, memberFullName); foreach (DirectXS xs in directXSs) { Member xsMember = Member.FromFullName(cn, xs.MemberFullName); User user = xsMember.GetUser(cn); if (user.Disabled && !includeDisabledUser) { continue; } rv.Add( new { ou = xsMember.GetParentOU(cn).GetFriendlyFullName(cn), LeaderTitle = xsMember.LeaderTitle, Level = xsMember.Level, Account = xsMember.UserAccount, UserName = YZStringHelper.GetUserShortName(xs.UserAccount, xs.UserFullName) } ); } return(rv.ToArray()); }
protected virtual JObject Serialize(BPMConnection cn, BPMTaskListCollection tasks, int rowcount) { JObject rv = new JObject(); //将数据转化为Json集合 rv[YZJsonProperty.total] = rowcount; JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (BPMTaskListItem task in tasks) { JObject item = new JObject(); children.Add(item); string stepDisplayName = BPMProcStep.GetStepDisplayName(task.StepName); item["StepID"] = task.StepID; item["TaskID"] = task.TaskID; item["SerialNum"] = task.SerialNum; item["ProcessName"] = task.ProcessName; item["ProcessVersion"] = task.ProcessVersion.ToString(2); item["OwnerAccount"] = task.OwnerAccount; item["OwnerDisplayName"] = task.OwnerFullName; item["OwnerShortName"] = YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerFullName); item["AgentAccount"] = task.AgentAccount; item["AgentDisplayName"] = task.AgentFullName; item["CreateAt"] = task.CreateAt; item["NodeName"] = stepDisplayName; item["ReceiveAt"] = task.ReceiveAt; JObject recipient = new JObject(); recipient["account"] = task.RecipientAccount; recipient["displayName"] = task.RecipientFullName; item["Recipient"] = recipient; item["RecipientShortName"] = YZStringHelper.GetUserShortName(task.RecipientAccount, task.RecipientFullName); item["Share"] = task.Share; item["State"] = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID); item["TimeoutFirstNotifyDate"] = task.TimeoutFirstNotifyDate; item["TimeoutDeadline"] = task.TimeoutDeadline; item["TimeoutNotifyCount"] = task.TimeoutNotifyCount; item["Description"] = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description; if (task.Progress != -1) { item["Progress"] = task.Progress; } JObject perm = new JObject(); item["perm"] = perm; perm["Share"] = task.Share; } return(rv); }
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())); }
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 string GetRecpientDisplayName(StepRecipient recp) { if (recp.Agent == null) { return(YZStringHelper.GetUserFriendlyName(recp.Owner.Account, recp.Owner.DisplayName)); } else { return(String.Format(Resources.YZStrings.Aspx_RecpDspFmt, YZStringHelper.GetUserFriendlyName(recp.Agent.Account, recp.Agent.DisplayName), YZStringHelper.GetUserShortName(recp.Owner.Account, recp.Owner.DisplayName))); } }
public virtual object GetCompanyContactInfo(HttpContext context) { YZRequest request = new YZRequest(context); string uid = request.GetString("uid"); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); User user = User.FromAccount(cn, uid); UserCommonInfo userCommonInfo = UserCommonInfo.FromAccount(cn, uid); MemberCollection members = OrgSvr.GetUserPositions(cn, user.Account); SupervisorCollection supervisors = new SupervisorCollection(); foreach (Member member in members) { supervisors.AddRange(member.GetSupervisors(cn)); } JArray jMembers = new JArray(); foreach (Member member in members) { JObject jMember = new JObject(); jMembers.Add(jMember); jMember["LeaderTitle"] = member.LeaderTitle; jMember["Level"] = member.Level; jMember["OUName"] = member.GetParentOU(cn).Name; } JArray jSupervisors = new JArray(); foreach (Supervisor supervisor in supervisors) { JObject jSupervisor = new JObject(); jSupervisors.Add(jSupervisor); jSupervisor["Account"] = supervisor.UserAccount; jSupervisor["ShortName"] = YZStringHelper.GetUserShortName(supervisor.UserAccount, supervisor.UserFullName); jSupervisor["FGYWs"] = supervisor.FGYWEnabled ? supervisor.FGYWs.ToStringList(','):""; } return(new { user = user, userCommonInfo = userCommonInfo, positions = jMembers, supervisors = jSupervisors }); } }
protected virtual JObject GetDirectSendInfo(BPMConnection cn, BPMProcStep step, SystemLinkCollection systemLinks) { if (step.RecedeFromStep == -1) { return(null); } int idx = systemLinks.Find(SystemLinkType.DirectSend); SystemLink directSendLink = idx == -1 ? null:systemLinks[idx]; if (directSendLink != null && !directSendLink.Enabled) { return(null); } BPMStepCollection toSteps = null; toSteps = BPMProcStep.GetDirectSendTargetSteps(cn, step.StepID); if (toSteps == null || toSteps.Count == 0) { return(null); } JObject rv = new JObject(); JArray jtoSteps = new JArray(); rv["toSteps"] = jtoSteps; rv["validationGroup"] = directSendLink.ValidationGroup; foreach (BPMProcStep toStep in toSteps) { JObject jtoStep = new JObject(); jtoSteps.Add(jtoStep); jtoStep["NodeName"] = toStep.NodeName; jtoStep["User"] = YZStringHelper.GetUserShortName(toStep.RecipientAccount, toStep.RecipientFullName); } return(rv); }
private JObject GenLoginResult(string account, bool trial) { string andriodPushService = WebConfigurationManager.AppSettings["AndroidPushService"]; DateTime today = DateTime.Today; JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); User user = User.FromAccount(cn, account); UserCommonInfo userCommonInfo = UserCommonInfo.FromAccount(cn, account); JObject juser = new JObject(); rv["user"] = juser; juser["Account"] = user.Account; juser["AndroidPushService"] = String.IsNullOrEmpty(andriodPushService) ? "JPush" : andriodPushService; juser["HRID"] = user.HRID; juser["DisplayName"] = user.DisplayName; juser["ShortName"] = YZStringHelper.GetUserShortName(user.Account, user.DisplayName); juser["LongName"] = YZStringHelper.GetUserFriendlyName(user.Account, user.DisplayName); juser["LoginDate"] = DateTime.Now; juser["ScreenLock"] = userCommonInfo.ScreenLock; juser["TouchUnlock"] = userCommonInfo.TouchUnlock; juser["Trial"] = trial; rv["BPMSiteUrl"] = WebConfigurationManager.AppSettings["BPMSiteUrl"]; rv["LocalLibrary"] = String.Compare(System.Web.Configuration.WebConfigurationManager.AppSettings["LocalLibrary"], "false", true) == 0 ? false : true; rv["JSCache"] = YZSetting.JSCache; rv["JSVersion"] = YZSetting.JSVersion; rv["ver"] = 2; } rv["xclass"] = "EMIP.view.Main"; rv["success"] = true; return(rv); }
public virtual JArray GetFieldModifies(HttpContext context) { YZRequest request = new YZRequest(context); string DataSource = request.GetString("DataSource", ""); string TableName = request.GetString("TableName"); string ColumnName = request.GetString("ColumnName"); string CKeyName = request.GetString("CKeyName", ""); string CKeyValue = request.GetString("CKeyValue"); JArray rv = new JArray(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); ModifyRecordCollection modifies = SpoorService.GetFieldSpoor(cn, DataSource, TableName, ColumnName, CKeyValue); foreach (ModifyRecord modify in modifies) { JObject item = new JObject(); rv.Add(item); string userName = modify.Account; User user = User.TryGetUser(cn, modify.Account); if (user != null) { userName = YZStringHelper.GetUserShortName(user.Account, user.DisplayName); } item["Account"] = userName; item["UserSortName"] = userName; item["Value"] = modify.Value; item["ModifyDate"] = YZStringHelper.DateToStringM(modify.ModifyDate); } } return(rv); }
public void ProcessRequest(HttpContext context) { JsonItem rv = new JsonItem(); string userid = context.Request.Params["uid"]; string password = context.Request.Params["pwd"]; string isWeixIn = context.Request.Params["isWeixIn"]; LoginUser loginUers = new LoginUser(); String NetWork = String.IsNullOrEmpty(context.Request.Params["NetWork"]) ? "" : context.Request.Params["NetWork"], Phone = String.IsNullOrEmpty(context.Request.Params["DevicePlatform"]) ? "" : context.Request.Params["DevicePlatform"], DeviceName = String.IsNullOrEmpty(context.Request.Params["DeviceName"]) ? "" : context.Request.Params["DeviceName"], UUID = String.IsNullOrEmpty(context.Request.Params["UUID"]) ? "" : context.Request.Params["UUID"], Versions = String.IsNullOrEmpty(context.Request.Params["Version"]) ? "Web客户端" : context.Request.Params["Version"], strErrorMsg = String.Empty; try { if (String.IsNullOrEmpty(userid) /*|| String.IsNullOrEmpty(password)*/) { if (String.IsNullOrWhiteSpace(isWeixIn)) { throw new Exception(JosonStrings.Aspx_Login_EnterAccountTip); } else { throw new Exception("请关注微信服务号【创维数字移动办公】后,绑定你的域账号!"); } } string realAccount = null; if (!String.IsNullOrEmpty(isWeixIn)) { var isDegug = Convert.ToString(context.Request.Params["isDebug"]).ToLower().Equals("true"); if (context.Request.UserAgent.ToLower().Contains("micromessenger")) { realAccount = userid; Versions = "微信客户端"; } else { if (!isDegug) { rv.Attributes["success"] = false; rv.Attributes["errorMessage"] = "试图非法登录!本次已经记录该操作!客户端仅提供微信绑定域用户使用" + DeviceName + Phone + NetWork; context.Response.Write(rv.ToString()); } else { realAccount = userid; Versions = "微信客户端"; } } } else { if (!BPMConnection.Authenticate(YZAuthHelper.BPMServerName, YZAuthHelper.BPMServerPort, userid, password, out realAccount)) { throw new Exception(JosonStrings.Aspx_Login_Fail); } } if (realAccount != null) { YZAuthHelper.SetAuthCookie(realAccount); YZAuthHelper.ClearLogoutFlag(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); User user = User.FromAccount(cn, realAccount); loginUers = cn.getLoginUser(userid, password, "LogIn", "logInOK", NetWork, Phone, UUID, DeviceName, Versions); JsonItem juser = new JsonItem(); rv.Attributes["user"] = juser; juser.Attributes["Account"] = user.Account; string andriodPushService = WebConfigurationManager.AppSettings["AndroidPushService"]; juser.Attributes["AndroidPushService"] = String.IsNullOrEmpty(andriodPushService) ? "JPush" : andriodPushService; juser.Attributes["HRID"] = user.HRID; juser.Attributes["DisplayName"] = user.DisplayName; juser.Attributes["ShortName"] = YZStringHelper.GetUserShortName(user.Account, user.DisplayName); juser.Attributes["LongName"] = YZStringHelper.GetUserFriendlyName(user.Account, user.DisplayName); DateTime today = DateTime.Today; juser.Attributes["LoginDate"] = String.Format("{0}年{1}月{2}日", today.Year, today.Month, today.Day); juser.Attributes["NetWork"] = NetWork; juser.Attributes["Phone"] = Phone; juser.Attributes["UUID"] = UUID; juser.Attributes["DeviceName"] = DeviceName; } new SqlServerProvider(context).InsertLogInInfo(loginUers); //System.Threading.Thread.Sleep(500); rv.Attributes["success"] = true; context.Response.Write(rv.ToString()); } } catch (Exception exp) { YZEventLog log = new YZEventLog(); log.WriteEntry(exp); loginUers.ErrorMsg = exp.Message; rv.Attributes["success"] = false; rv.Attributes["errorMessage"] = exp.Message; context.Response.Write(rv.ToString()); } }
protected virtual void PostProcessNotifyTopic(IYZDbProvider provider, IDbConnection cn, BPMConnection bpmcn, string loginUserAccount, DataRow row, bool countUsers) { JObject jExt = new JObject(); row["ext"] = jExt; YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), Convert.ToString(row["resType"]), true); row["resType"] = resType.ToString(); if (row.Table.Columns.Contains("uid")) { string uid = Convert.ToString(row["uid"]); User user = User.TryGetUser(bpmcn, uid); jExt["UserShortName"] = user == null ? uid : user.ShortName; } switch (resType) { case YZResourceType.Task: BPMTask task = BPMTask.Load(bpmcn, Int32.Parse(Convert.ToString(row["resId"]))); ProcessProperty property = BPMProcess.GetProcessProperty(bpmcn, task.ProcessName, task.ProcessVersion); string owner = YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName); row["resName"] = String.Format(Resources.YZStrings.All_BPM_Task_Title_FMT, owner, task.ProcessName); jExt["ProcessName"] = task.ProcessName; jExt["Owner"] = owner; jExt["Color"] = property.Color; jExt["ShortName"] = property.ShortName; if (String.IsNullOrEmpty(property.ShortName)) { jExt["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName); } break; case YZResourceType.Group: Group.Group group = GroupManager.GetGroup(provider, cn, Int32.Parse(Convert.ToString(row["resId"]))); row["resName"] = group.Name; jExt["GroupType"] = group.GroupType; jExt["ImageFileID"] = group.ImageFileID; if (countUsers) { jExt["MemberCount"] = GroupManager.GetGroupMemberCount(provider, cn, group.GroupID); } break; case YZResourceType.SingleChat: P2PGroup.P2PGroup p2pGroup = P2PGroupManager.GetGroup(provider, cn, Int32.Parse(Convert.ToString(row["resId"]))); row["resName"] = p2pGroup.GetGroupName(bpmcn, loginUserAccount); jExt["P2PPeerAccount"] = p2pGroup.GetPeerAccount(loginUserAccount); jExt["FolderID"] = p2pGroup.FolderID; break; case YZResourceType.TaskApproved: row["resName"] = Resources.YZStrings.Aspx_Message_Title_Approved; break; case YZResourceType.TaskRejected: row["resName"] = Resources.YZStrings.Aspx_Message_Title_Rejected; break; default: break; } }
public void ProcessRequest(HttpContext context) { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); GridPageInfo gridPageInfo = new GridPageInfo(context); IDBProvider dbProvider = YZDBProviderManager.CurrentProvider; //获得数据 BPMTaskListCollection tasks = new BPMTaskListCollection(); int rowcount; JsonItem rootItem = new JsonItem(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); tasks = cn.GetMyTaskList(dbProvider.FilterStringMyTask, null, gridPageInfo.Start, gridPageInfo.Limit, out rowcount); //将数据转化为Json集合 rootItem.Attributes.Add(JsonItem.TotalRows, rowcount); rootItem.Attributes.Add("total", rowcount); JsonItemCollection children = new JsonItemCollection(); rootItem.Attributes.Add("children", children); foreach (BPMTaskListItem task in tasks) { JsonItem item = new JsonItem(); children.Add(item); //string OwnerDisplayName = (YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName) + task.ProcessName).Length>4 // ? YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName).CutStrHTML(2) // : YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName); item.Attributes.Add("tid", task.TaskID); item.Attributes.Add("pid", task.StepID); item.Attributes.Add("sn", task.SerialNum); item.Attributes.Add("pn", task.ProcessName); item.Attributes.Add("stepName", string.Empty); //item.Attributes.Add("stepName", BPMProcStep.GetStepDisplayName(task.StepName).CutStrHTML(4)); //item.Attributes.Add("user", OwnerDisplayName); item.Attributes.Add("user", YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName)); //item.Attributes.Add("date", String.Empty); item.Attributes.Add("date", YZStringHelper.DateToStringL(task.CreateAt)); task.Description = task.ShowDescByProcessName(true); item.Attributes.Add("desc", String.IsNullOrEmpty(task.Description) ? "无内容摘要" : task.Description); DateTime time = new DateTime(); time.ToUniversalTime(); } } //System.Threading.Thread.Sleep(2000); context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; //输出数据 context.Response.Write(rootItem.ToString()); }
public void ProcessRequest(HttpContext context) { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); GridPageInfo gridPageInfo = new GridPageInfo(context); IDBProvider dbProvider = YZDBProviderManager.CurrentProvider; int year; if (context.Request.Params["byYear"] == "0") { year = -1; } else { string strYear = context.Request.Params["Year"]; year = String.IsNullOrEmpty(strYear) ? DateTime.Today.Year : Convert.ToInt32(strYear); } //获得数据 BPMTaskCollection tasks = new BPMTaskCollection(); int rowcount; JsonItem rootItem = new JsonItem(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); tasks = cn.GetHistoryTasks(year, HistoryTaskType.AllAccessable, dbProvider.FilterStringHistoryTaskTaskTableFilter, dbProvider.FilterStringHistoryTaskStepTableFilter, null, gridPageInfo.Start, gridPageInfo.Limit, out rowcount); //将数据转化为Json集合 rootItem.Attributes.Add(JsonItem.TotalRows, rowcount); JsonItemCollection children = new JsonItemCollection(); rootItem.Attributes.Add("children", children); rootItem.Attributes.Add("total", rowcount); foreach (BPMTask task in tasks) { JsonItem item = new JsonItem(); children.Add(item); item.Attributes.Add("tid", task.TaskID); item.Attributes.Add("pid", task.ParentStepID); item.Attributes.Add("sn", task.SerialNum); item.Attributes.Add("pn", task.ProcessName); item.Attributes.Add("user", YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerDisplayName)); item.Attributes.Add("state", task.TaskState.ToString()); item.Attributes.Add("stateText", YZStringHelper.GetTaskStateDisplayName(task.TaskState)); item.Attributes.Add("stateProcessing", YZStringHelper.GetTaskProcessingStatus(cn, task.TaskState, task.TaskID)); item.Attributes.Add("date", YZStringHelper.DateToStringL(task.CreateAt)); task.Description = task.ShowDescByProcessName(true); item.Attributes.Add("desc", String.IsNullOrEmpty(task.Description) ? "无内容摘要" : task.Description); } } //System.Threading.Thread.Sleep(500); context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; //输出数据 context.Response.Write(rootItem.ToString()); }
public virtual DataTable GetProcessAnalysisByHandlerAccount(HttpContext context) { YZRequest request = new YZRequest(context); string type = request.GetString("Type", "year"); string strInclude = request.GetString("include", null); string strExclude = request.GetString("exclude", null); int year = request.GetInt32("year", DateTime.Today.Year); int month = request.GetInt32("month", -1); string processName = request.GetString("ProcessName"); string orderby = request.GetString("OrderBy"); if (String.Compare(type, "year", true) == 0) { month = -1; } BPMObjectNameCollection include = null; BPMObjectNameCollection exclude = null; if (!String.IsNullOrEmpty(strInclude)) { include = JArray.Parse(strInclude).ToObject <BPMObjectNameCollection>(); } if (!String.IsNullOrEmpty(strExclude)) { exclude = JArray.Parse(strExclude).ToObject <BPMObjectNameCollection>(); } DataTable table; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { using (YZReader reader = new YZReader(provider.GetProcessAnalysisByHandlerAccount(cn, year, month, processName, orderby, include, exclude))) { table = reader.LoadTable(); PageResult.RegularColumnsName(table, new string[] { "HandlerAccount", "Counts", "SumMinutes", "AvgMinutes", "MaxMinutes", "TotalMinutes", "Per" }); } } } //补齐信息(账号的显示名) table.Columns.Add("HandlerUserShortName", typeof(string)); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (DataRow row in table.Rows) { string account = Convert.ToString(row["HandlerAccount"]); User user = User.TryGetUser(cn, account); row["HandlerUserShortName"] = YZStringHelper.GetUserShortName(account, user != null ? user.DisplayName : ""); } } return(table); }
public void ProcessRequest(HttpContext context) { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); string method = context.Request.Params["method"]; if (method == "GetUsers") { string keyword = context.Request.Params["keyword"]; keyword = string.IsNullOrEmpty(keyword) ? "ASDT" : keyword; //获得数据 UserCollection users = new UserCollection(); int rowcount; JsonItem rootItem = new JsonItem(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); users = OrgSvr.SearchUser(cn, keyword); List <User> usersLst = users.Where(s => s.NameSpace == "LDAP").ToList <User>(); //usersLst = users.Where(s => s.ExtAttributes["Supplayer"]=="SDT").ToList<User>(); //usersLst = users.Select(u => u.ExtAttributes["Supplayer"] == "").ToList<User>(); usersLst.Sort(new UserCompare()); rowcount = usersLst.Count; //将数据转化为Json集合 rootItem.Attributes.Add(JsonItem.TotalRows, rowcount); JsonItemCollection children = new JsonItemCollection(); rootItem.Attributes.Add("children", children); rootItem.Attributes.Add("total", rowcount); int i = 0; foreach (User user in usersLst) { i++; //if (i > 8) // break; if (user.Account == "sa") { continue; } JsonItem item = new JsonItem(); children.Add(item); item.Attributes.Add("Name", user.DisplayName); item.Attributes.Add("Account", user.Account); item.Attributes.Add("HRID", user.HRID); item.Attributes.Add("user", user.ShortName); item.Attributes.Add("group", YZPinYinHelper.GetShortPinyin(user.ShortName.Substring(0, 1)).ToUpper()); item.Attributes.Add("Mobile", user.Mobile); item.Attributes.Add("HomePhone", user.HomePhone); item.Attributes.Add("OfficePhone", user.OfficePhone); item.Attributes.Add("Mail", user.EMail); } } //输出数据 context.Response.Write(rootItem.ToString()); } else if (method == "GetUser") { string uid = context.Request.Params["uid"]; JsonItem rv = new JsonItem(); if (!String.IsNullOrEmpty(uid)) { using (BPMConnection cn = new BPMConnection()) { JsonItem data = new JsonItem(); rv.Attributes.Add("data", data); cn.WebOpen(); User user = User.FromAccount(cn, uid); data.Attributes["Account"] = user.Account; data.Attributes["HRID"] = user.HRID; data.Attributes["DisplayName"] = user.ShortName; data.Attributes["Mobile"] = user.Mobile; data.Attributes["OfficePhone"] = user.OfficePhone; data.Attributes["HomePhone"] = user.HomePhone; data.Attributes["EMail"] = user.EMail; data.Attributes["Office"] = user.Office; data.Attributes["Birthday"] = YZStringHelper.DateToString(user.Birthday); data.Attributes["DateHired"] = YZStringHelper.DateToString(user.DateHired); data.Attributes["Desc"] = user.Description; //获得所有主管 BPMObjectNameCollection depts = new BPMObjectNameCollection(); UserCollection supervisors = new UserCollection(); MemberCollection members = OrgSvr.GetUserPositions(cn, uid); foreach (Member member in members) { OU ou = member.GetParentOU(cn); String OULevel = ou.OULevel; String OUName = ou.Name; String FullName = member.GetParentOU(cn).FullName; String mFullName = member.FullName; String mDepartment = member.Department; if (!ou.IsRootOU) { OUName = mFullName.Split(new char[2] { '/', '/' })[2].GetShortName().ToString(); depts.Add(OUName); } if (String.IsNullOrEmpty(member.LeaderTitle)) { depts.Add(ou.Name); } else { depts.Add(ou.Name); } //depts.Add(String.Format("{0}({1})", ou.Name, member.LeaderTitle)); SupervisorCollection spvs = Member.GetSupervisors(cn, member.FullName); foreach (Supervisor spv in spvs) { User spvUser = User.TryGetUser(cn, spv.UserAccount); if (spvUser == null) { spvUser = new User(); spvUser.Account = spv.UserAccount; } spv.UserFullName = YZStringHelper.GetUserShortName(spvUser.Account, spvUser.DisplayName); if (!supervisors.Contains(spvUser.Account)) { supervisors.Add(spvUser); } } } JsonItemCollection jsonSupervisors = new JsonItemCollection(); data.Attributes["Supervisors"] = jsonSupervisors; foreach (User spv in supervisors) { JsonItem jsonSupervisor = new JsonItem(); jsonSupervisors.Add(jsonSupervisor); jsonSupervisor.Attributes["uid"] = spv.Account; jsonSupervisor.Attributes["ShortName"] = spv.ShortName; } data.Attributes["Dept"] = String.Join(" > ", depts.ToArray()); } } rv.Attributes.Add("success", true); context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; context.Response.Write(rv.ToString()); } }
public void ProcessRequest(HttpContext context) { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); try { UIStrings rs = new UIStrings(); int taskid = Int32.Parse(context.Request.Params["tid"]); JsonItem rv = new JsonItem(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMStepCollection steps = BPMTask.GetAllSteps(cn, taskid); BPMTask task = BPMTask.Load(cn, taskid); rv.Attributes.Add("sn", task.SerialNum); rv.Attributes.Add("pn", task.ProcessName); //将数据转化为Json集合 JsonItemCollection children = new JsonItemCollection(); rv.Attributes.Add("children", children); foreach (BPMProcStep step in steps) { //不是有效的步骤 if (!step.IsHumanStep) { continue; } //跳过 - 无处理人的非共享任务 if (String.IsNullOrEmpty(step.OwnerAccount) && !step.Share) { continue; } JsonItem item = new JsonItem(); children.Add(item); item.Attributes.Add("StepDisplayName", step.StepDisplayName); string recpAccount; string recpDisplayName; if (step.Finished) { recpAccount = step.HandlerAccount; recpDisplayName = YZStringHelper.GetUserShortName(step.HandlerAccount, step.HandlerFullName); } else { recpAccount = step.RecipientAccount; recpDisplayName = YZStringHelper.GetUserShortName(step.RecipientAccount, step.RecipientFullName); } if (!step.IsConsignStep && recpAccount != step.OwnerAccount) { recpDisplayName = String.Format(rs["XFormDesigner.XSignTrace.OwnerFmt"], recpDisplayName, YZStringHelper.GetUserShortName(step.OwnerAccount, step.OwnerDisplayName)); } item.Attributes.Add("Recipient", recpDisplayName); item.Attributes.Add("OwnerAccount", step.OwnerAccount); item.Attributes.Add("OwnerFullName", step.OwnerFullName); item.Attributes.Add("OwnerDisplayName", step.OwnerDisplayName); item.Attributes.Add("Finished", step.Finished); item.Attributes.Add("FinishAt", YZStringHelper.DateToStringM(step.FinishAt, "")); item.Attributes.Add("ReceiveAt", YZStringHelper.DateToStringM(step.ReceiveAt, "")); item.Attributes.Add("SelActionDisplayString", step.SelActionDisplayString); item.Attributes.Add("Comments", HttpUtility.HtmlEncode(step.Comments)); } } //System.Threading.Thread.Sleep(500); //输出数据 context.Response.Write(rv.ToString()); } catch (Exception e) { JsonItem rv = new JsonItem(); rv.Attributes.Add("success", false); rv.Attributes.Add("errorMessage", e.Message); context.Response.Write(rv.ToString()); } context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; }
public void ProcessRequest(HttpContext context) { try { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); string loginUid = YZAuthHelper.LoginUserAccount; IDBProvider dbProvider = YZDBProviderManager.CurrentProvider; string method = context.Request.Params["method"]; JsonItem rv = new JsonItem(); // System.Threading.Thread.Sleep(2000); if (method == "Send") { //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&restype=1&message=添加一条哦啊讨论啊&resId=216928&method=Send YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; string msg = context.Request.Params["message"]; if (!string.IsNullOrEmpty(msg.Trim())) { using (IDbConnection cn = dbProvider.OpenConnection()) { YZMessage message = new YZMessage(loginUid, DateTime.Now, resType, resId, msg); message.Insert(cn); YZCommunicationManager.UpdateReaded(cn, loginUid, resType, resId, message.id); JsonItem result = new JsonItem(); rv.Attributes.Add("message", result); message.Serialize(result); } } } else if (method == "GetTaskCommunicationList") { GridPageInfo gridPageInfo = new GridPageInfo(context); SecurityToken token = null; using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); token = bpmcn.Token; } using (IDbConnection cn = dbProvider.OpenConnection()) { //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&method=GetTaskCommunicationList&SearchType=QuickSearch&Keyword=216928 //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&method=GetTaskCommunicationList&SearchType=QuickSearch&Keyword=REQ2014090001 using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); IDbCommand cmd = dbProvider.GetTaskCommunicationListCommand(cn, loginUid, token.SIDs, dbProvider.FilterStringCommunicationListTaskTableFilter, dbProvider.FilterStringCommunicationMessageTableFilter, gridPageInfo.Start, gridPageInfo.Limit); cmd.Connection = cn; JsonItemCollection children = new JsonItemCollection(); rv.Attributes.Add("children", children); using (YZReader reader = new YZReader(cmd.ExecuteReader())) { while (reader.Read()) { JsonItem item = new JsonItem(); children.Add(item); string ownerAccount = reader.ReadString("OwnerAccount"); User owner = User.TryGetUser(bpmcn, ownerAccount); string ownerDisplayName = owner != null ? owner.DisplayName : ownerAccount; string lastMsgUid = reader.ReadString("uid"); User lastMsgUser = User.TryGetUser(bpmcn, lastMsgUid); string lastMessageUserShortName = lastMsgUser != null ? lastMsgUser.ShortName : lastMsgUid; TaskState state = (TaskState)reader.ReadEnum("State", typeof(TaskState), TaskState.Unknow); int taskid = reader.ReadInt32("TaskID"); item.Attributes["tid"] = taskid; item.Attributes["sn"] = reader.ReadString("SerialNum"); item.Attributes["pn"] = reader.ReadString("ProcessName"); item.Attributes["user"] = YZStringHelper.GetUserShortName(ownerAccount, ownerDisplayName); item.Attributes["state"] = state.ToString(); item.Attributes["stateText"] = YZStringHelper.GetTaskStateDisplayString(bpmcn, state, taskid); item.Attributes["date"] = YZStringHelper.DateToStringL(reader.ReadDateTime("CreateAt")); string desc = Convert.ToString(reader.ReadString("Description")); item.Attributes["desc"] = String.IsNullOrEmpty(desc) ? "无内容摘要" : desc.CutStrHTML(isHTML: true); item.Attributes["count"] = reader.ReadInt32("count"); item.Attributes["total"] = reader.ReadInt32("total"); item.Attributes["Id"] = reader.ReadInt32("Id"); item.Attributes["lastMessageId"] = reader.ReadInt32("lastMsgId"); item.Attributes["lastMessageUid"] = lastMsgUid; item.Attributes["lastMessageUserShortName"] = lastMessageUserShortName; item.Attributes["lastMessageDate"] = YZStringHelper.DateToStringL(reader.ReadDateTime("date")); item.Attributes["lastMessage"] = reader.ReadString("message"); } } } rv.Attributes["newMessageCount"] = dbProvider.GetTaskCommunicationNewMessageCount(cn, loginUid, token.SIDs); } } else if (method == "GetBadge") { YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; using (IDbConnection cn = dbProvider.OpenConnection()) { rv.Attributes["total"] = YZCommunicationManager.GetMessageCount(cn, resType, resId); rv.Attributes["newMessageCount"] = YZCommunicationManager.GetNewMessageCount(cn, loginUid, resType, resId); } } else if (method == "UpdateReaded") { YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; string strLastId = context.Request.Params["lastid"]; if (String.IsNullOrEmpty(strLastId)) { strLastId = "-1"; } int lastId = Convert.ToInt32(strLastId); using (IDbConnection cn = dbProvider.OpenConnection()) { YZCommunicationManager.UpdateReaded(cn, loginUid, resType, resId, lastId); } } else { //http://bpm.sdt.com/YZSoft/Forms/XForm/%E5%B7%A5%E4%BD%9C%E6%8A%A5%E5%91%8A/%E5%B7%A5%E4%BD%9C%E6%8A%A5%E5%91%8A.aspx?tid=216928 //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&restype=1&lastid=306&resId=216928 YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; string strLastId = context.Request.Params["lastid"]; if (String.IsNullOrEmpty(strLastId)) { strLastId = "-1"; } int lastId = Convert.ToInt32(strLastId); //获得数据 JsonItemCollection children = new JsonItemCollection(); rv.Attributes.Add("children", children); using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); using (IDbConnection cn = dbProvider.OpenConnection()) { YZMessageCollection messages = YZCommunicationManager.GetNewMessages(cn, resType, resId, lastId); messages.Serialize(bpmcn, children); } } } //输出数据 context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; //输出数据 rv.Attributes.Add("success", true); context.Response.Write(rv.ToString()); } catch (Exception e) { JsonItem rv = new JsonItem(); context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; rv.Attributes.Add("success", false); rv.Attributes.Add("errorMessage", e.Message); context.Response.Write(rv.ToString()); } }
internal static JObject Serialize(BPMConnection cn, BPMProcStep step) { JObject item = new JObject(); string stepMemo = null; if ((step.IsIndicateStep || step.IsInformStep) && String.IsNullOrEmpty(step.Memo)) { BPMStepCollection prevSteps = step.LoadPrevSteps(cn); if (prevSteps.Count != 0) { BPMProcStep prevStep = prevSteps[0]; stepMemo = "<span class='yz-stepraiser'>" + String.Format(Resources.YZStrings.Aspx_StepRaiser, YZStringHelper.GetUserShortName(prevStep.HandlerAccount, prevStep.HandlerFullName)) + "</span>"; } } item["TaskID"] = step.TaskID; item["StepID"] = step.StepID; item["ProcessName"] = step.ProcessName; item["ProcessVersion"] = step.ProcessVersion.ToString(2); item["NodeNameOrg"] = step.NodeName; item["NodeName"] = HttpUtility.HtmlEncode(step.StepDisplayName) + stepMemo; item["SelAction"] = step.SelActionDisplayString; item["OwnerAccount"] = step.OwnerAccount; item["OwnerDisplayName"] = step.OwnerFullName; item["AgentAccount"] = step.AgentAccount; item["AgentDisplayName"] = step.AgentFullName; item["FinishAt"] = step.FinishAt; item["ReceiveAt"] = step.ReceiveAt; item["IsConsignStep"] = step.IsConsignStep; item["RecipientAccount"] = step.RecipientAccount; item["RecipientDisplayName"] = step.RecipientFullName; item["HandlerAccount"] = step.HandlerAccount; item["HandlerDisplayName"] = step.HandlerFullName; item["Comments"] = step.Comments; item["Share"] = step.Share; item["Memo"] = step.Memo; item["AutoProcess"] = step.AutoProcess; return(item); }