protected virtual string GetTimeoutMonitorWorklistFilterString(YZRequest request, IYZDbProvider provider) { string filter = null; string searchType = request.GetString("SearchType", null); string searchBy = request.GetString("SearchBy", null); string processName = request.GetString("ProcessName", null); if (!String.IsNullOrEmpty(processName)) { filter = String.Format("ProcessName=N'{0}'", provider.EncodeText(processName)); } if (!YZStringHelper.EquName(searchType, "AdvancedSearch")) { filter = provider.CombinCond(filter, "Progress >= 1"); } else { if (YZStringHelper.EquName(searchBy, "Progress")) { decimal minProgress = request.GetDecimal("minProgress"); decimal maxProgress = request.GetDecimal("maxProgress", -1); filter = provider.CombinCond(filter, String.Format("Progress >= {0}", minProgress)); if (maxProgress != -1) { filter = provider.CombinCond(filter, String.Format("Progress < {0}", maxProgress)); } } else { DateTime deadline = request.GetDateTime("Deadline"); filter = provider.CombinCond(filter, String.Format("TimeoutDeadline IS NOT NULL AND Progress < 10000 AND TimeoutDeadline <= {0}", provider.DateToQueryString(deadline))); } } return(filter); }
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); }
protected override void OnPreRender(EventArgs e) { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); User user = BPM.Client.User.TryGetUser(cn, YZAuthHelper.LoginUserAccount); this._labUser.Text = HttpUtility.HtmlEncode(YZStringHelper.GetUserFriendlyName(user.Account, user.DisplayName)); NotifyProviderInfoCollection provInfos = NotifyManager.GetProviders(cn); UserCommonInfo cInfo = UserCommonInfo.FromAccount(cn, YZAuthHelper.LoginUserAccount); this._chksProvider.Items.Clear(); foreach (NotifyProviderInfo provInfo in provInfos) { ListItem lstItem = new ListItem(provInfo.Name, provInfo.Name); lstItem.Selected = !cInfo.RejectedNotifys.Contains(provInfo.Name); this._chksProvider.Items.Add(lstItem); } } base.OnPreRender(e); }
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 virtual JObject Inform(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(); UserCollection users = BPMTask.Inform(cn, taskid, accounts, comments); JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["UserNameList"] = YZStringHelper.GetUserNameListString(users); return(rv); } }
protected virtual string GetFilterString(YZRequest request, IYZDbProvider provider) { string filter = null; string searchType = request.GetString("SearchType", null); string keyword = request.GetString("Kwd", null); string clienIPLike = null; string accountLike = null; string actionLike = null; string actParam1Like = null; string actParam2Like = null; string errLike = null; if (!String.IsNullOrEmpty(keyword)) { clienIPLike = String.Format("ClientIP LIKE(N'%{0}%')", provider.EncodeText(keyword)); accountLike = String.Format("UserAccount LIKE(N'%{0}%')", provider.EncodeText(keyword)); actionLike = String.Format("Action LIKE(N'%{0}%')", provider.EncodeText(keyword)); actParam1Like = String.Format("ActParam1 LIKE(N'%{0}%')", provider.EncodeText(keyword)); actParam2Like = String.Format("ActParam2 LIKE(N'%{0}%')", provider.EncodeText(keyword)); errLike = String.Format("Error LIKE(N'%{0}%')", provider.EncodeText(keyword)); } if (YZStringHelper.EquName(searchType, "AdvancedSearch")) { string account = request.GetString("Account", null); string action = request.GetString("Action", null); string result = request.GetString("Result", null); string clientIP = request.GetString("ClientIP", null); string keywordFilter = null; if (!String.IsNullOrEmpty(account)) { filter = provider.CombinCond(filter, String.Format("UserAccount=N'{0}'", provider.EncodeText(account))); } else { keywordFilter = provider.CombinCondOR(keywordFilter, accountLike); } if (action != "all") { filter = provider.CombinCond(filter, String.Format("Action=N'{0}'", provider.EncodeText(action))); } else { keywordFilter = provider.CombinCondOR(keywordFilter, actionLike); } if (result == YZJsonProperty.success) { filter = provider.CombinCond(filter, "Succeed=1"); } if (result == "Failed") { filter = provider.CombinCond(filter, "Succeed=0"); } if (!String.IsNullOrEmpty(clientIP)) { filter = provider.CombinCond(filter, String.Format("ClientIP=N'{0}'", provider.EncodeText(clientIP))); } else { keywordFilter = provider.CombinCondOR(keywordFilter, clienIPLike); } if (!String.IsNullOrEmpty(keyword)) { keywordFilter = provider.CombinCondOR(keywordFilter, actParam1Like); keywordFilter = provider.CombinCondOR(keywordFilter, actParam2Like); keywordFilter = provider.CombinCondOR(keywordFilter, errLike); } filter = provider.CombinCond(filter, keywordFilter); } return(filter); }
public static string DateToStringL(DateTime date) { return(YZStringHelper.DateToStringL(date, null)); }
public static string MinutesToStringDHM(int minutes) { return(YZStringHelper.MinutesToStringDHM(minutes, 24)); }
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 virtual void ExportGrid2Excel(HttpContext context) { YZRequest request = new YZRequest(context); bool dynamicParams = request.GetBool("dynamicParams", false); //获得数据 - jsonResponse string jsonResponse; JObject jRequest = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(context.Request.Params["request"]))); string url = (string)jRequest["url"]; url = "~/" + url; JToken jToken; using (StringWriter sw = new StringWriter()) { HtmlTextWriter writer = new HtmlTextWriter(sw); HttpResponse response = new HttpResponse(writer); List <string> queryParams = new List <string>(); queryParams.Add("DateFormat=text"); foreach (KeyValuePair <string, JToken> property in (jRequest["params"] as JObject)) { queryParams.Add(property.Key + "=" + HttpUtility.UrlEncode((string)property.Value, Encoding.Default)); } HttpRequest callrequest = new HttpRequest(null, context.Request.Url.ToString(), String.Join("&", queryParams.ToArray())); HttpContext callcontext = new HttpContext(callrequest, response); IHttpHandler handler = PageParser.GetCompiledPageInstance(url, context.Server.MapPath(url), context); handler.ProcessRequest(callcontext); jsonResponse = sw.ToString(); jToken = JToken.Parse(jsonResponse); if (jToken is JObject) { JObject jObject = jToken as JObject; if (jObject["success"] != null && jObject["success"].Type == JTokenType.Boolean && (bool)jObject["success"] == false) { throw new Exception((string)jObject["errorMessage"]); } } } //将数据转化为Table DataTable table; string rootProperty = request.GetString("rootProperty", null); JArray jTable; if (String.IsNullOrEmpty(rootProperty)) { jTable = jToken as JArray; } else { jTable = (jToken as JObject)[rootProperty] as JArray; } foreach (JObject jRow in jTable) { foreach (KeyValuePair <string, JToken> jProperty in jRow) { if (jProperty.Value is JArray) { jRow[jProperty.Key] = Convert.ToString(jProperty.Value); } if (jProperty.Value is JObject) { jRow[jProperty.Key] = Convert.ToString(jProperty.Value); } } } table = jTable.ToObject <DataTable>(); table.TableName = "GridStore"; //SQL Server数据库中monery4位小数点处理 foreach (DataRow row in table.Rows) { foreach (DataColumn column in table.Columns) { object value = row[column]; if (value is decimal) { value = (decimal)Decimal.ToDouble((decimal)value); } row[column] = value; } } //生成Excel string templateExcel = request.GetString("templateExcel", String.Empty); HSSFWorkbook book = null; if (String.IsNullOrEmpty(templateExcel)) { book = this.NoTemplateExport(context, table); } else { if (!templateExcel.StartsWith("~/")) { templateExcel = "~/" + templateExcel; } Dictionary <string, string> reportParams = new Dictionary <string, string>(); //获得查询参数 foreach (KeyValuePair <string, JToken> property in (jRequest["params"] as JObject)) { reportParams.Add(property.Key, (string)property.Value); } if (!reportParams.ContainsKey("Kwd")) { reportParams.Add("Kwd", ""); } if (dynamicParams) { string strRuntimeParams = reportParams["params"]; if (!String.IsNullOrEmpty(strRuntimeParams)) { YZClientParamCollection runtimeParams = JArray.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(strRuntimeParams))).ToObject <YZClientParamCollection>(); foreach (YZClientParam clientParams in runtimeParams) { reportParams[clientParams.name] = Convert.ToString(clientParams.value); } } } //打开文件 using (FileStream file = new FileStream(context.Server.MapPath(templateExcel), FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { book = new HSSFWorkbook(file); } DataSet dataset = new DataSet(); dataset.Tables.Add(table); YZExcelGenerate.Fill(book, reportParams, dataset); YZExcelGenerate.PrepareForOutput(book); } //Excel文件保存到流 byte[] bytes; using (MemoryStream ms = new MemoryStream()) { book.Write(ms); bytes = ms.ToArray(); } //导出文件名 string fileName = context.Request.Params["fileName"]; if (String.IsNullOrEmpty(fileName)) { fileName = "Export"; } fileName += YZStringHelper.DateToString(DateTime.Now) + ".xls"; this.ProcessResponseHeader(context, fileName, true); context.Response.BinaryWrite(bytes); //this.OnExported(context, table); //设置Response头 //context.Response.Clear(); //context.Response.ContentType = "application/vnd.ms-excel"; //context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); //context.Response.AppendHeader("Content-Length", bytes.Length.ToString()); //context.Response.BinaryWrite(bytes); //context.Response.End(); }
public static string GetSelActionDisplayString(BPMProcStep step) { if (!step.Finished) { return(Resources.YZStrings.All_Running); } if (YZStringHelper.EquName(step.SelAction, SystemAction.Abort)) { return(Resources.YZStrings.Aspx_SysAct_Abort); } if (YZStringHelper.EquName(step.SelAction, SystemAction.RecedeBack)) { return(Resources.YZStrings.Aspx_SysAct_RecedeBack); } if (YZStringHelper.EquName(step.SelAction, SystemAction.AssignOwner)) { return(Resources.YZStrings.Aspx_SysAct_AssignOwner); } if (YZStringHelper.EquName(step.SelAction, SystemAction.Continue)) { return(Resources.YZStrings.Aspx_SysAct_Continue); } if (YZStringHelper.EquName(step.SelAction, SystemAction.Delete)) { return(Resources.YZStrings.Aspx_SysAct_Delete); } if (YZStringHelper.EquName(step.SelAction, SystemAction.Jump)) { return(Resources.YZStrings.Aspx_SysAct_Jump + "(" + step.Memo + ")"); } if (YZStringHelper.EquName(step.SelAction, SystemAction.TimeoutJump)) { return(Resources.YZStrings.Aspx_SysAct_TimeoutJump + "(" + step.Memo + ")"); } if (YZStringHelper.EquName(step.SelAction, SystemAction.PickBackRestart)) { return("重新取回");// Resources.YZStrings.Aspx_SysAct_PickbackRestart; } if (YZStringHelper.EquName(step.SelAction, SystemAction.PickBack)) { return("取回");// Resources.YZStrings.Aspx_SysAct_Pickback; } if (YZStringHelper.EquName(step.SelAction, SystemAction.RecedeRestart)) { return(Resources.YZStrings.Aspx_SysAct_RecedeRestart); } if (YZStringHelper.EquName(step.SelAction, SystemAction.Reject)) { return(Resources.YZStrings.Aspx_SysAct_Reject); } if (YZStringHelper.EquName(step.SelAction, SystemAction.Transfer)) { return(Resources.YZStrings.Aspx_SysAct_Agent); } if (YZStringHelper.EquName(step.SelAction, SystemAction.DirectSend)) { return(Resources.YZStrings.Aspx_SysAct_DirectSend); } if (YZStringHelper.EquName(step.SelAction, SystemAction.InviteIndicate)) { return(Resources.YZStrings.Aspx_SysAct_InviteIndicate); } if (!step.AutoProcess) { return(step.SelAction); } else { return(step.SelAction + "(" + Resources.YZStrings.Aspx_Auto + ")"); } }
public virtual object Post(HttpContext context) { StringBuilder sb = new StringBuilder(); //if (String.Compare(YZAuthHelper.LoginUserAccount, "usera06", true) == 0) //{ //using (FileStream fs = new FileStream(@"d:\aaa.xml", FileMode.Create, FileAccess.Write)) //{ // byte[] bytes = new byte[context.Request.InputStream.Length]; // context.Request.InputStream.Read(bytes, 0, (int)context.Request.InputStream.Length); // fs.Write(bytes, 0, bytes.Length); //} //context.Request.InputStream.Seek(0, SeekOrigin.Begin); //} //qqw888 //XmlDocument doc = new XmlDocument(); //doc.Load(context.Request.InputStream); //doc.Save("e:\\aaa.xml");//需要打开网站的写权限,和C盘EveryOne的写权限 System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture; if (cultureInfo.LCID != 1033 && //en-us cultureInfo.LCID != 2052 && //中文 - 中华人民共和国 cultureInfo.LCID != 3076 && //中文 - 中华人民共和国香港特别行政区 cultureInfo.LCID != 4100 && //中文 - 新加坡 cultureInfo.LCID != 1028 && //中文 - 台湾地区 cultureInfo.LCID != 1041) //日语 { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(1033); } PostResult postResult = null; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); postResult = BPMProcess.Post(cn, context.Request.InputStream); } List <object> recipients = new List <object>(); foreach (StepRecipient recp in postResult.Recipients) { recipients.Add( new { Account = recp.Owner.Account, DisplayName = YZStringHelper.GetRecpientDisplayName(recp) } ); } List <object> indicators = new List <object>(); foreach (User indicateUser in postResult.InviteIndicateUsers) { indicators.Add( new { Account = YZStringHelper.GetUserFriendlyName(indicateUser.Account, indicateUser.DisplayName) } ); } List <object> informs = new List <object>(); foreach (User informUser in postResult.InformUsers) { indicators.Add( new { Account = YZStringHelper.GetUserFriendlyName(informUser.Account, informUser.DisplayName) } ); } return(new { success = true, PostResult = postResult.PostResultType.ToString(), SN = postResult.SN, Key = postResult.Key, TaskID = postResult.TaskID, CustomMessage = postResult.CustomMessage, Accounts = recipients, Indicators = indicators, Informs = informs, message = YZStringHelper.GetPostResultDisplayStringShort(postResult) }); }
protected virtual string GetFilterStringHistoryTaskTaskTable(YZRequest request, IYZDbProvider provider) { string filter = null; string serialNumLike = null; string processNameLike = null; string ownerAccountLike = null; string agentAccountLike = null; string descriptionLike = null; string taskidEqu = null; string keyword = request.GetString("Keyword", null); if (!String.IsNullOrEmpty(keyword)) { serialNumLike = String.Format("SerialNum LIKE(N'%{0}%')", provider.EncodeText(keyword)); processNameLike = String.Format("ProcessName LIKE(N'%{0}%')", provider.EncodeText(keyword)); ownerAccountLike = String.Format("OwnerAccount LIKE(N'%{0}%')", provider.EncodeText(keyword)); agentAccountLike = String.Format("AgentAccount LIKE(N'%{0}%')", provider.EncodeText(keyword)); descriptionLike = String.Format("Description LIKE(N'%{0}%')", provider.EncodeText(keyword)); if (YZStringHelper.IsNumber(keyword)) { taskidEqu = String.Format("TaskID={0}", keyword); } } string processName = request.GetString("processName", null); string status = request.GetString("status", null); string sn = request.GetString("sn", null); string keywordFilter = null; if (!String.IsNullOrEmpty(processName)) { filter = provider.CombinCond(filter, String.Format("ProcessName=N'{0}'", provider.EncodeText(processName))); } else { keywordFilter = provider.CombinCondOR(keywordFilter, processNameLike); } DateTime date1 = DateTime.MinValue; DateTime date2 = DateTime.MaxValue; date1 = request.GetDateTime("reqStart", DateTime.MinValue); date2 = request.GetDateTime("reqEnd", DateTime.MaxValue); if (date1 != DateTime.MinValue || date2 != DateTime.MaxValue) { filter = provider.CombinCond(filter, provider.GenPeriodCond("CreateAt", date1, date2)); } if (!String.IsNullOrEmpty(status)) { filter = provider.CombinCond(filter, String.Format("State=N'{0}'", status)); } if (!String.IsNullOrEmpty(sn)) { filter = provider.CombinCond(filter, String.Format("SerialNum LIKE(N'%{0}%')", provider.EncodeText(sn))); } else { keywordFilter = provider.CombinCondOR(keywordFilter, serialNumLike); } keywordFilter = provider.CombinCondOR(keywordFilter, ownerAccountLike); keywordFilter = provider.CombinCondOR(keywordFilter, agentAccountLike); keywordFilter = provider.CombinCondOR(keywordFilter, taskidEqu); keywordFilter = provider.CombinCondOR(keywordFilter, descriptionLike); filter = provider.CombinCond(filter, keywordFilter); return(filter); }
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.OwnerDisplayName; item["AgentAccount"] = task.AgentAccount; item["AgentDisplayName"] = task.AgentDisplayName; item["CreateAt"] = task.CreateAt; item["NodeName"] = stepDisplayName; item["ReceiveAt"] = task.ReceiveAt; item["Share"] = task.Share; item["TimeoutFirstNotifyDate"] = task.TimeoutFirstNotifyDate; item["TimeoutDeadline"] = task.TimeoutDeadline; item["TimeoutNotifyCount"] = task.TimeoutNotifyCount; item["Description"] = task.Description; if (task.Progress != -1) { item["Progress"] = task.Progress; } try { string memberFullName = PositionManager.MemberFullNameFromID(cn, task.OwnerPositionID); OU ou = Member.GetParentOU(cn, memberFullName, null); item["Owner"] = String.Format("{0}/{1}", task.OwnerDisplayName, ou.Name); } catch (Exception) { item["Owner"] = task.OwnerDisplayName; } try { ProcessProperty property = BPMProcess.GetProcessProperty(cn, task.ProcessName, task.ProcessVersion); item["ShortName"] = property.ShortName; item["Color"] = property.Color; if (String.IsNullOrEmpty(property.ShortName)) { item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName); } } catch (Exception) { item["Color"] = this._deletedProcessColor; item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName); } JObject perm = new JObject(); item["perm"] = perm; perm["Share"] = task.Share; } return(rv); }
public virtual JObject GetHistoryTasks(HttpContext context) { YZRequest request = new YZRequest(context); HistoryTaskType taskType = request.GetEnum <HistoryTaskType>("HistoryTaskType", HistoryTaskType.AllAccessable); int year = request.GetString("byYear", "1") == "0" ? -1 : request.GetInt32("Year", DateTime.Today.Year); //获得数据 JObject rv = new JObject(); string taskTableFilter; string stepTableFilter; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { taskTableFilter = this.GetFilterStringHistoryTaskTaskTable(request, provider); stepTableFilter = this.GetFilterStringHistoryTaskStep(request, provider); } using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); int rowcount; BPMTaskCollection tasks = cn.GetHistoryTasks(year, taskType, taskTableFilter, stepTableFilter, null, request.Start, request.Limit, out rowcount); rv[YZJsonProperty.total] = rowcount; JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (BPMTask task in tasks) { JObject item = new JObject(); children.Add(item); 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.OwnerDisplayName; item["AgentAccount"] = task.AgentAccount; item["AgentDisplayName"] = task.AgentDisplayName; item["CreateAt"] = task.CreateAt; item["State"] = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID); item["Description"] = task.Description; try { ProcessProperty property = BPMProcess.GetProcessProperty(cn, task.ProcessName, task.ProcessVersion); item["ShortName"] = property.ShortName; item["Color"] = property.Color; if (String.IsNullOrEmpty(property.ShortName)) { item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName); } } catch (Exception) { item["Color"] = this._deletedProcessColor; item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName); } } } return(rv); }
public void ProcessRequest(HttpContext context) { try { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); string method = context.Request.Params["Method"]; JsonItem JosonRv = new JsonItem(); if (YZStringHelper.EquName(method, "GET")) { string uid = YZAuthHelper.LoginUserAccount; using (BPMConnection cn = new BPMConnection()) { JsonItem data = new JsonItem(); JosonRv.Attributes.Add("data", data); cn.WebOpen(); UserAccount currentUser = cn.getCurrentUser(uid); User user = User.FromAccount(cn, uid); #region 用户信息 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; #endregion #region 获得OU //获得OU String OULevel = String.Empty; String OUName = String.Empty; String Dept = String.Empty; BPMObjectNameCollection depts = new BPMObjectNameCollection(); MemberCollection members = OrgSvr.GetUserPositions(cn, uid); foreach (Member member in members) { OU ou = member.GetParentOU(cn); OULevel = ou.OULevel; Dept = 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]; depts.Add(OUName); } else { OUName = ou.Name; } if (String.IsNullOrEmpty(member.LeaderTitle)) { depts.Add(ou.Name); } else { depts.Add(String.Format("{0}({1})", ou.Name, member.LeaderTitle)); } } data.Attributes["Dept"] = String.Join(" > ", depts.ToArray()); #endregion UserCommonInfo userCommonInfo = UserCommonInfo.FromAccount(cn, uid); data.Attributes["AppSN"] = Net.Common.JosonRandom.GetRandomByDateTime(1, 999).Replace("/", ""); data.Attributes["AppCompany"] = OUName.GetShortName(); data.Attributes["AppDept"] = Dept; data.Attributes["AppDate"] = DateTime.Now; data.Attributes["AppHRName"] = user.ShortName; data.Attributes["AppHRID"] = YZAuthHelper.LoginUserAccount; data.Attributes["isSkyWorth"] = currentUser.AppFristDept != "制造中心" ? 0 : 1; data.Attributes["AppComDept"] = currentUser.AppCompany.ToConnects("\\") + currentUser.AppDept; JosonRv.Attributes.Add("success", true); JosonRv.Attributes.Add("successMessage", "ok"); context.Response.Write(JosonRv.ToString()); } } else if (YZStringHelper.EquName(method, "Submit")) { //遍历File表单元素 //HttpFileCollection files = HttpContext.Current.Request.Files; //try //{ // for (int iFile = 0; iFile < files.Count; iFile++) // { // ///检查文件扩展名字 // HttpPostedFile postedFile = files[iFile]; // string fileName, fileExtension; // fileName = System.IO.Path.GetFileName(postedFile.FileName); // if (fileName != "") // { // ///注意:可能要修改你的文件夹的匿名写入权限。 // postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("YZSoft/attachment/") + fileName); // } // } // HttpContext.Current.Response.Write("{success:true,msg:'File was successfully uploaded.'}"); //} //catch (System.Exception Ex) //{ // HttpContext.Current.Response.Write("{success:true,msg:'File was successfully uploaded.'}"); //} #region 接收数据 string uid = YZAuthHelper.LoginUserAccount; string EmpID = Convert.ToString(context.Request.Params["AppHRID"]); string EmpName = Convert.ToString(context.Request.Params["AppHRName"]); string LeaveID = Convert.ToString(context.Request.Params["LeaveID"]); string LeaveName = Convert.ToString(context.Request.Params["LeaveName"]); string LeaveTypeID = Convert.ToString(context.Request.Params["LeaveTypeID"]); String AppSN = Convert.ToString(context.Request.Params["AppSN"]); String AppCompany = Convert.ToString(context.Request.Params["AppCompany"]); String AppDept = Convert.ToString(context.Request.Params["AppDept"]); DateTime AppDate = Convert.ToDateTime(context.Request.Params["AppDate"]); String AppHRName = Convert.ToString(context.Request.Params["AppHRName"]); String AppHRID = Convert.ToString(context.Request.Params["AppHRID"]); String Address = Convert.ToString(context.Request.Params["Address"]); DateTime FromDate = YZStringHelper.StringToDate(context.Request.Params["startTime"]); DateTime ToDate = YZStringHelper.StringToDate(context.Request.Params["endTime"]); String allHours = Convert.ToString(context.Request.Params["allHours"]); int DayInt = Convert.ToInt32(allHours.Split('天')[0]); int HourInt = Convert.ToInt32(allHours.Split('天')[1].Split('小')[0]); String reasonWhyNote = Convert.ToString(context.Request.Params["reasonWhy"]); String suggestionMsg = Convert.ToString(context.Request.Params["suggestionMsg"]); String strAttachment = Convert.ToString(context.Request.Params["strAttachment"]); int isSkyWorth = Convert.ToInt32(context.Request.Params["isSkyWorth"]); #region iPHone 早期版本 客户端Bug修改 String strFromClient = submitFrom.UserAgent(context); //if (suggestionMsg.IndexOf("iphone") > -1 || suggestionMsg.IndexOf("iPhone") > -1) //{ // if (LeaveTypeID == "20") // { // LeaveTypeID = "30"; // } // else // { // LeaveTypeID = LeaveTypeID == "30" ? "20" : LeaveTypeID; // } //} #endregion #endregion using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); // Net.Common.GetRequestForm.Post<T> // http://extjs.org.cn/node/712 #region 提交数据 MemoryStream xmlStream = GeneratePostXML(Guid.NewGuid(), cn , AppSN , AppHRID , AppHRName , AppDate , AppDept , AppCompany , EmpID , EmpName , LeaveID , LeaveName , LeaveTypeID , FromDate , ToDate , DayInt , HourInt , reasonWhyNote + suggestionMsg + "\n\r" + strFromClient , strAttachment , isSkyWorth ); #endregion PostResult result = BPMProcess.Post(cn, xmlStream); String DisplayName = result.Recipients[0].Owner.DisplayName; //JsonItem JosonRv = new JsonItem(); JosonRv.Attributes.Add("success", true); JosonRv.Attributes.Add("successMessage", "\n\r <BR> 流程【" + result.SN + "】\n\r <BR> 成功提交给 " + DisplayName); context.Response.Write(JosonRv.ToString()); } } else { String strMsg = String.Format(JosonStrings.Aspx_UnknowCommand, method); //JsonItem JosonRv = new JsonItem(); JosonRv.Attributes.Add("success", false); JosonRv.Attributes.Add("errorMessage", strMsg); context.Response.Write(JosonRv.ToString()); throw new Exception(strMsg); } //System.Threading.Thread.Sleep(500); } catch (Exception e) { JsonItem JosonRv = new JsonItem(); JosonRv.Attributes.Add("success", false); JosonRv.Attributes.Add("errorMessage", e.Message); context.Response.Write(JosonRv.ToString()); } }
public virtual JObject GetPostInfo(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("pn", null); int restartTaskID = request.GetInt32("restartTaskID", -1); string owner = request.GetString("owner", null); string permisions = request.GetString("Permisions", null); string did = request.GetString("did", null); Version processVersion = null; PostInfo postInfo; JObject perm; BPMDraft draft = null; JObject jDraftHeader = null; bool delagation; string selectPosition; MemberCollection positions; JObject rv = new JObject(); PostSubModel subModel; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (!String.IsNullOrEmpty(did)) { draft = new BPMDraft(); draft.Open(cn, new Guid(did)); processName = draft.ProcessName; if (!String.IsNullOrEmpty(draft.Header)) { jDraftHeader = JObject.Parse(draft.Header); } } if (draft != null) { subModel = (PostSubModel)Enum.Parse(typeof(PostSubModel), draft.Type.ToString()); } else { subModel = PostSubModel.Post; } if (restartTaskID == -1) { processVersion = cn.GetGlobalObjectLastVersion(StoreZoneType.Process, processName); } postInfo = BPMProcess.GetPostInfo(cn, processName, processVersion, owner, restartTaskID); perm = this.CheckPermision(postInfo, permisions); //获得delagation/selectPosition if (draft != null) { selectPosition = PositionManager.MemberFullNameFromID(cn, draft.OwnerPositionID); delagation = !YZStringHelper.EquName(draft.OwnerAccount, cn.UID); } else { if (postInfo.IsPostByAgent) { delagation = true; selectPosition = owner; } else { delagation = false; selectPosition = owner; } } //获得positions if (!delagation) { positions = OrgSvr.GetUserPositions(cn, cn.UID); if (String.IsNullOrEmpty(selectPosition) && positions.Count != 0) { selectPosition = positions[0].FullName; } } else { Member mb = new Member(); mb.Open(cn, selectPosition); positions = OrgSvr.GetUserPositions(cn, mb.UserAccount); selectPosition = mb.FullName; } if (String.IsNullOrEmpty(postInfo.FormFile)) { throw new Exception(Resources.YZStrings.Aspx_Post_MissForm); } //返回 rv[YZJsonProperty.success] = true; rv["subModel"] = subModel.ToString(); //基本信息 rv["pn"] = postInfo.ProcessName; rv["version"] = postInfo.ProcessVersion.ToString(2); rv["restartTaskID"] = restartTaskID; rv["url"] = YZUtility.GetFormRedirectUrl(postInfo.FormFile).ToString(); rv["perm"] = perm; rv["PersistParams"] = postInfo.PersistParams; rv["NodePermisions"] = this.Serialize(postInfo.NodePermision); rv["Comments"] = draft != null ? draft.Comments : null; rv["DraftHeader"] = jDraftHeader; //处理按钮 JArray links = new JArray(); rv["links"] = links; foreach (Link link in postInfo.Links) { links.Add(this.Serialize(link, "normal")); } //提交职位 rv["delagation"] = delagation; rv["selectPosition"] = selectPosition; JArray jPoss = new JArray(); rv["positions"] = jPoss; foreach (Member position in positions) { JObject jPos = new JObject(); jPoss.Add(jPos); string name = position.GetParentOU(cn).Name + "\\" + position.UserAccount; if (position.IsLeader) { name += "(" + position.LeaderTitle + ")"; } jPos["name"] = name; jPos["value"] = position.FullName; } //自由流 rv["ParticipantDeclares"] = JArray.FromObject(postInfo.ParticipantDeclares); } return(rv); }
public void ProcessRequest(HttpContext context) { try { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); string method = context.Request.Params["Method"]; JsonItem JosonRv = new JsonItem(); if (YZStringHelper.EquName(method, "GET")) { string uid = YZAuthHelper.LoginUserAccount; using (BPMConnection cn = new BPMConnection()) { JsonItem data = new JsonItem(); JosonRv.Attributes.Add("data", data); cn.WebOpen(); UserAccount currentUser = cn.getCurrentUser(uid); //User user = User.FromAccount(cn, uid); //UserCommonInfo userCommonInfo = UserCommonInfo.FromAccount(cn, uid); data.Attributes["AppSN"] = currentUser.AppSN; data.Attributes["AppCompany"] = currentUser.AppCompany; data.Attributes["AppDept"] = currentUser.AppDept; data.Attributes["AppDate"] = currentUser.SubmitDateTime; data.Attributes["AppHRName"] = currentUser.ShortName; data.Attributes["AppHRID"] = currentUser.AppHRID; data.Attributes["isSkyWorth"] = currentUser.AppFristDept != "制造中心" ? 0 : 1; data.Attributes["AppComDept"] = currentUser.AppCompany.ToConnects("\\") + currentUser.AppDept; JosonRv.Attributes.Add("success", true); JosonRv.Attributes.Add("successMessage", "ok"); context.Response.Write(JosonRv.ToString()); } } else if (YZStringHelper.EquName(method, "Submit")) { #region 接收数据 String AppSN = Convert.ToString(context.Request.Params["AppSN"]); String AppCompany = Convert.ToString(context.Request.Params["AppCompany"]); String AppDept = Convert.ToString(context.Request.Params["AppDept"]); DateTime AppDate = Convert.ToDateTime(context.Request.Params["AppDate"]); String AppHRName = Convert.ToString(context.Request.Params["AppHRName"]); String AppHRID = Convert.ToString(context.Request.Params["AppHRID"]); string EmpID = Convert.ToString(context.Request.Params["AppHRID"]); string EmpName = Convert.ToString(context.Request.Params["AppHRName"]); String Address = Convert.ToString(context.Request.Params["Address"]); DateTime FromDate = YZStringHelper.StringToDate(context.Request.Params["startTime"]); DateTime ToDate = YZStringHelper.StringToDate(context.Request.Params["endTime"]); String allHours = Convert.ToString(context.Request.Params["allHours"]); int DayInt = Convert.ToInt32(allHours.Split('天')[0]); int HourInt = Convert.ToInt32(allHours.Split('天')[1].Split('小')[0]); String strVehicle = Convert.ToString(context.Request.Params["Vehicle"]); String OtherVehicle = Convert.ToString(context.Request.Params["OtherVehicle"]); String reasonWhyNote = Convert.ToString(context.Request.Params["reasonWhy"]); String suggestionMsg = Convert.ToString(context.Request.Params["suggestionMsg"]); String strAttachment = Convert.ToString(context.Request.Params["strAttachment"]); int isSkyWorth = Convert.ToInt32(context.Request.Params["isSkyWorth"]); #endregion using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); // Net.Common.GetRequestForm.Post<T> // http://extjs.org.cn/node/712 #region 提交数据 MemoryStream xmlStream = GeneratePostXML(Guid.NewGuid(), cn , AppSN , AppHRID , AppHRName , AppDate , AppDept , AppCompany , EmpID , EmpName , Address , FromDate , ToDate , DayInt , HourInt , reasonWhyNote + suggestionMsg , strAttachment , isSkyWorth ); #endregion PostResult result = BPMProcess.Post(cn, xmlStream); String DisplayName = result.Recipients[0].Owner.DisplayName; //JsonItem JosonRv = new JsonItem(); JosonRv.Attributes.Add("success", true); JosonRv.Attributes.Add("successMessage", "\n\r <BR> 流程【" + result.SN + "】\n\r <BR> 成功提交给 " + DisplayName); context.Response.Write(JosonRv.ToString()); } } else { String strMsg = String.Format(JosonStrings.Aspx_UnknowCommand, method); //JsonItem JosonRv = new JsonItem(); JosonRv.Attributes.Add("success", false); JosonRv.Attributes.Add("errorMessage", strMsg); context.Response.Write(JosonRv.ToString()); throw new Exception(strMsg); } //System.Threading.Thread.Sleep(500); } catch (Exception e) { JsonItem JosonRv = new JsonItem(); JosonRv.Attributes.Add("success", false); JosonRv.Attributes.Add("errorMessage", e.Message); context.Response.Write(JosonRv.ToString()); } }
protected static void TimeSpanRender1(HSSFCell cell, string varName, DataSet dataset, object value, string emptyText) { value = YZStringHelper.MinutesToStringDHM(Convert.ToInt32(value)); DefaultRender(cell, varName, dataset, value, emptyText); }
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 virtual DataTable GetProcessPerformanceKPI(HttpContext context) { YZRequest request = new YZRequest(context); string strInclude = request.GetString("include", null); string strExclude = request.GetString("exclude", null); string type = request.GetString("Type", "year"); int year = request.GetInt32("year", DateTime.Today.Year); int month = request.GetInt32("month", -1); bool byYear = String.Compare(type, "year", true) == 0; if (byYear) { 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 srcTable; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { using (YZReader reader = new YZReader(provider.GetProcessPerformanceKPI(cn, year, month, include, exclude))) { srcTable = reader.LoadTable(); } } } int runingProcessCount = 0; int TaskCounts = 0; int AvgMinutes = 0; int MaxMinutes = 0; runingProcessCount = Convert.ToInt32(srcTable.Rows[0]["ProcessCounts"]); TaskCounts = Convert.ToInt32(srcTable.Rows[0]["TaskCounts"]); AvgMinutes = Convert.ToInt32(srcTable.Rows[0]["AvgMinutes"]); MaxMinutes = Convert.ToInt32(srcTable.Rows[0]["MaxMinutes"]); float avgDay = (float)TaskCounts / (float)(year == DateTime.Today.Year ? DateTime.Today.DayOfYear : 365); float avgMonth = (avgDay * 365) / 12; float avgWeek = avgDay * 7; int allProcessCounts; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); allProcessCounts = ProcessNameManager.GetProcessNames(cn).Count; } //输出KPI DataRow row; DataTable table = new DataTable(); table.Columns.Add("title"); table.Columns.Add("value"); //流程数 row = table.NewRow(); table.Rows.Add(row); row["title"] = Resources.YZStrings.Aspx_ProcessCount; row["value"] = String.Format("{0:#,##0}/{1:#,##0}", runingProcessCount, allProcessCounts); //总发起数 row = table.NewRow(); table.Rows.Add(row); row["title"] = Resources.YZStrings.Aspx_ReportApprovedCount; row["value"] = TaskCounts.ToString("#,##0"); if (byYear) { row = table.NewRow(); table.Rows.Add(row); row["title"] = Resources.YZStrings.Aspx_ReportMonthlyApprovedCount; row["value"] = Convert.ToInt32(avgMonth).ToString("#,##0"); } else { row = table.NewRow(); table.Rows.Add(row); row["title"] = Resources.YZStrings.Aspx_ReportDaily; row["value"] = Convert.ToInt32(avgDay).ToString("#,##0"); } row = table.NewRow(); table.Rows.Add(row); row["title"] = Resources.YZStrings.Aspx_ReportAvgTimeCost; row["value"] = YZStringHelper.MinutesToStringDHM(AvgMinutes); row = table.NewRow(); table.Rows.Add(row); row["title"] = Resources.YZStrings.Aspx_ReportMaxTimeCost; row["value"] = YZStringHelper.MinutesToStringDHM(MaxMinutes); return(table); }
private JObject SaveAttachment(HttpContext context) { JObject result = new JObject(); HttpFileCollection files = context.Request.Files; if (files.Count > 0 && files[0].ContentLength > 0) { HttpPostedFile file = files[0]; string fileName = System.IO.Path.GetFileName(file.FileName); long fileSize = file.ContentLength; string fileExt = System.IO.Path.GetExtension(fileName).ToLower(); //华为手机,fileExt格式 .png?112714368714 if (!String.IsNullOrEmpty(fileExt)) { int index = fileExt.IndexOf('?'); if (index != -1) { fileExt = fileExt.Substring(0, index); } } string fileId = YZAttachmentHelper.GetNewFileID(); string savePath = Attachment.FileIDToPath(fileId, YZAttachmentHelper.AttachmentRootPath); Directory.CreateDirectory(savePath.Substring(0, savePath.LastIndexOf(@"\"))); file.SaveAs(savePath); Attachment attachment = new Attachment(); attachment.Name = fileName; attachment.Ext = fileExt; attachment.Size = fileSize; attachment.FileID = fileId; if (String.IsNullOrEmpty(attachment.Name)) { attachment.Name = fileId + attachment.Ext; } attachment.LastUpdate = DateTime.Now; attachment.OwnerAccount = YZAuthHelper.LoginUserAccount; using (IDbConnection cn = QueryManager.CurrentProvider.OpenConnection()) { QueryManager.CurrentProvider.InsertAttachmentInfo(cn, attachment); } result["success"] = true; result["fileid"] = attachment.FileID; JObject attach = new JObject(); result["attachment"] = attach; attach["FileID"] = attachment.FileID; attach["Name"] = attachment.Name; attach["Ext"] = attachment.Ext; attach["Size"] = attachment.Size; attach["FileID"] = attachment.FileID; attach["LastUpdate"] = YZStringHelper.DateToStringL(attachment.LastUpdate); attach["OwnerAccount"] = attachment.OwnerAccount; } else { throw new Exception("未上传文件"); } return(result); }
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()); }
private JObject GetApprovalLog(BPMConnection cn, int TaskID) { JObject result = new JObject(); BPMTask task = BPMTask.Load(cn, TaskID); result["success"] = true; result["TaskID"] = TaskID; result["SN"] = task.SerialNum; result["State"] = task.TaskState.ToString(); JArray StepItems = new JArray(); result["StepItems"] = StepItems; BPMStepCollection steps = BPMTask.GetAllSteps(cn, TaskID); foreach (BPMProcStep step in steps) { if (step.IsHumanStep) { JObject item = new JObject(); StepItems.Add(item); item["StepID"] = step.StepID; item["NodeName"] = step.NodeName; item["ReceiveAt"] = YZStringHelper.DateToStringL(step.ReceiveAt); item["FinishAt"] = step.FinishAt == DateTime.MinValue ? "" : YZStringHelper.DateToStringL(step.FinishAt); item["OwnerAccount"] = step.OwnerAccount; item["OwnerName"] = step.OwnerFullName; item["RecipientAccount"] = step.RecipientAccount == null ? "" : step.RecipientAccount; item["RecipientName"] = step.RecipientFullName == null ? "" : step.RecipientFullName; item["HandlerAccount"] = step.HandlerAccount == null ? "" : step.HandlerAccount; item["HandlerName"] = step.HandlerFullName == null ? "" : step.HandlerFullName; item["AgentAccount"] = step.AgentAccount == null ? "" : step.AgentAccount; item["AgentName"] = step.AgentFullName == null ? "" : step.AgentFullName; item["SelAction"] = step.SelAction == null ? "" : step.SelAction; item["Comments"] = step.Comments == null ? "" : step.Comments; } } return(result); }
public static string GetPostResultDisplayStringShort(PostResult postResult) { //获得处理结果 string message; string customMessage = postResult.CustomMessage; if (!String.IsNullOrEmpty(customMessage)) { customMessage = "[" + customMessage + "]"; } switch (postResult.PostResultType) { case PostResultType.HasSentToOtherUsers: message = String.Format(Resources.YZStrings.Aspx_PostResult_HasSentToOtherUsers1, YZStringHelper.GetUserNameListString(postResult.Recipients), customMessage); break; case PostResultType.InWaitingOtherUsers: message = String.Format(Resources.YZStrings.Aspx_PostResult_InWaitingOtherUsers1, YZStringHelper.GetUserNameListString(postResult.Recipients), customMessage); break; case PostResultType.TaskInWaiting: message = String.Format(Resources.YZStrings.Aspx_PostResult_TaskInWaiting1, customMessage); break; case PostResultType.TaskFinishedApproved: message = String.Format(Resources.YZStrings.Aspx_PostResult_TaskFinishedApproved1, customMessage); break; case PostResultType.TaskFinishedRejected: message = String.Format(Resources.YZStrings.Aspx_PostResult_TaskFinishedRejected1, customMessage); break; case PostResultType.RecedeRestarted: message = String.Format(Resources.YZStrings.Aspx_PostResult_RecedeRestarted1, YZStringHelper.GetUserNameListString(postResult.Recipients), customMessage); break; default: message = String.Empty; break; } return(message); }
private JObject GetFormInfo(BPMConnection cn, string UserAccount, int TaskID, int StepID) { FlowDataSet formData = null; BPMTask task = null; string FormXml = ""; //获取表单名称 JObject rv = new JObject(); //最终组合的 JArray TaskCommList = new JArray(); rv["TaskCommList"] = TaskCommList; JArray FormInfo = new JArray(); rv["FormInfo"] = FormInfo; JArray ButtonList = new JArray(); rv["ButtonList"] = ButtonList; if (StepID < 0) { BPMStepCollection Steps = BPM.Client.BPMTask.GetAllSteps(cn, TaskID); foreach (BPM.Client.BPMProcStep item in Steps) { if (item.NodeName.Equals("开始")) { StepID = item.StepID; break; } } } //按钮开始 BPM.Client.ProcessInfo processInfo = BPM.Client.BPMProcess.GetProcessInfo(cn, StepID); BPMTask bt = BPMTask.Load(cn, TaskID); JObject TaskComm = new JObject(); TaskCommList.Add(TaskComm); TaskComm["TaskID"] = bt.TaskID; TaskComm["ParentStepID"] = bt.ParentStepID; TaskComm["SerialNum"] = bt.SerialNum; TaskComm["ProcessName"] = bt.ProcessName; TaskComm["ApplicantAccount"] = bt.ApplicantAccount; TaskComm["AgentAccount"] = bt.AgentAccount; TaskComm["AgentDisplayName"] = bt.AgentDisplayName; TaskComm["AgentDisplayName"] = bt.AgentDisplayName; TaskComm["OwnerAccount"] = bt.OwnerAccount; TaskComm["OwnerDisplayName"] = bt.OwnerDisplayName; TaskComm["OwnerFullName"] = bt.OwnerFullName; TaskComm["CreateAt"] = bt.CreateAt; TaskComm["FinishAt"] = bt.FinishAt; TaskComm["OptAt"] = bt.OptAt; TaskComm["OptUser"] = bt.OptUser; TaskComm["OptMemo"] = bt.OptMemo; //TaskComm["Description"] = bt.Description; // TaskComm["ReturnToParent"] = bt.ReturnToParent; TaskComm["TaskState"] = bt.TaskState.ToString(); TaskComm["State"] = bt.State.ToString(); if (IsCurrentStep(cn, UserAccount, StepID, TaskID) && bt.TaskState.ToString().Equals("Running", StringComparison.OrdinalIgnoreCase)) { BPM.Client.LinkCollection links = processInfo.Links;//提交按钮 foreach (Link link in links) { JObject button = new JObject(); ButtonList.Add(button); string s = link.DisplayString; button["Text"] = s; button["Action"] = s; button["Type"] = "Post"; } bool canReject = (processInfo.NodePermision & NodePermision.Reject) == NodePermision.Reject;//拒绝按钮 if (canReject) { JObject button = new JObject(); ButtonList.Add(button); button["Text"] = "拒绝"; button["Action"] = "Reject"; button["Type"] = "Reject"; } bool canTransfer = (processInfo.NodePermision & NodePermision.Transfer) == NodePermision.Transfer;//委托按钮 if (canTransfer) { JObject button = new JObject(); ButtonList.Add(button); button["Text"] = "委托"; button["Action"] = "Transfer"; button["Type"] = "Transfer"; } bool canConsign = (processInfo.NodePermision & NodePermision.Consign) == NodePermision.Consign;//加签按钮 if (canConsign) { string s = links[0].DisplayString; JObject button = new JObject(); ButtonList.Add(button); button["Text"] = "加签"; button["Action"] = s; button["Type"] = "Consign"; } bool canRecedeBack = (processInfo.NodePermision & NodePermision.RecedeBack) == NodePermision.RecedeBack;//退回重填按钮 if (canRecedeBack) { JObject button = new JObject(); ButtonList.Add(button); button["Text"] = "退回某步"; button["Action"] = "RecedeBack"; button["Type"] = "RecedeBack"; } bool recedeRestart = (processInfo.NodePermision & NodePermision.RecedeRestart) == NodePermision.RecedeRestart;//退回重填 BPMProcStep stepLoad = BPMProcStep.Load(cn, StepID); int idx = processInfo.SystemLinks.Find(SystemLinkType.DirectSend); if (stepLoad.RecedeFromStep != -1 && idx != -1 && processInfo.SystemLinks[idx].Enabled) { BPMStepCollection directSendToSteps = BPMProcStep.LoadPrevSteps(cn, StepID); BPMObjectNameCollection stepNames = new BPMObjectNameCollection(); foreach (BPMProcStep step in directSendToSteps) { if (step.IsHumanStep) { stepNames.Add(step.NodeName + ":" + YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName)); string buttonText = "直送->" + stepNames.ToStringList(';'); JObject button = new JObject(); ButtonList.Add(button); button["Text"] = buttonText; button["Action"] = "DirectSend"; button["Type"] = "DirectSend"; } } } } //按钮结束 FormXml = processInfo.FormFile; //获取表单数据 formData = BPMProcess.GetFormData(cn, StepID); if (formData.Tables.Count == 0) { throw new Exception("获取表单数据失败"); } //初始化布局文件 task = BPMTask.Load(cn, TaskID); if (task == null) { throw new Exception("通过TaskID获取任务失败"); } //int startIndex=FormXml.LastIndexOf(@"\"); //int endIndex=FormXml.LastIndexOf(".aspx"); // FormXml = FormXml.Substring(startIndex+1, endIndex - startIndex-1); FormXml = FormXml.Replace(".aspx", ""); FormXml = FormXml.Replace("\\", "("); //throw new Exception(FormXml); XmlDocument layoutDoc = new XmlDocument(); string layoutFilePath = HttpContext.Current.Server.MapPath(String.Format("~/FormLayout/{0}.xml", FormXml)); string debugger = ""; if (System.IO.File.Exists(layoutFilePath)) { layoutDoc.Load(layoutFilePath); XmlNodeList layoutTables = layoutDoc.SelectNodes("Layout/Table"); foreach (XmlNode layoutTable in layoutTables) { string TableID = TryGetNodeAttribute(layoutTable, "ID"); //测试报文中Table是否与流程中的Table匹配 debugger += "[TableID]" + TableID; foreach (FlowDataTable item in formData.Tables) { debugger += "[TableName]" + item.TableName; } // FlowDataTable formDataTable = formData.Tables[TableID]; try { if (formDataTable != null) { JObject bwTable = new JObject(); FormInfo.Add(bwTable); bwTable["TableName"] = TableID; bwTable["DisplayName"] = TryGetNodeAttribute(layoutTable, "Name"); bwTable["IsRepeatable"] = formDataTable.IsRepeatableTable; JArray bwRows = new JArray(); bwTable["Rows"] = bwRows; foreach (FlowDataRow formDataRow in formDataTable.Rows) { JObject bwRow = new JObject(); bwRows.Add(bwRow); XmlNodeList layoutColumns = layoutTable.ChildNodes; int i = 0; foreach (XmlNode layoutColumn in layoutColumns) { //debugger += "**" + TryGetNodeAttribute(layoutColumn, "Type") + "**"; if (!string.IsNullOrEmpty(TryGetNodeAttribute(layoutColumn, "Type")) && TryGetNodeAttribute(layoutColumn, "Type").Equals("Attachment", StringComparison.OrdinalIgnoreCase)) { JObject bwColumn = new JObject(); bwRow["Attachments_" + layoutColumn.Name] = bwColumn; bwColumn["Name"] = TryGetNodeAttribute(layoutColumn, "Name"); string FileID = Convert.ToString(formDataRow[layoutColumn.Name]); //调用方法获取附件名称,附件路径 JObject Attachments = GetAttachments(FileID); JArray bwAttachments = new JArray(); bwColumn["Items"] = bwAttachments; foreach (JObject item in JTokenToJArray(Attachments["files"])) { JObject attachment1 = new JObject(); bwAttachments.Add(attachment1); attachment1["FileName"] = item["name"]; attachment1["DownloadUrl"] = item["DownloadUrl"]; } i++; } else { JObject bwColumn = new JObject(); bwRow[layoutColumn.Name] = bwColumn; bwColumn["DataType"] = TryGetNodeAttribute(layoutColumn, "DataType"); bwColumn["DataFormat"] = TryGetNodeAttribute(layoutColumn, "DataFormat"); bwColumn["Order"] = TryGetNodeAttribute(layoutColumn, "Order"); bwColumn["Name"] = TryGetNodeAttribute(layoutColumn, "Name"); bwColumn["Value"] = Convert.ToString(formDataRow[layoutColumn.Name]); } } } } } catch (Exception e) { throw new Exception(debugger + "---------" + e.Message); } } } else { //throw new Exception(String.Format("流程[{0}]没有布局文件[{1}]", task.ProcessName, layoutFilePath)); } return(rv); }
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 { 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.ContentType = "text/json"; string account = context.Request.Params["UserAccount"]; string token = context.Request.Params["Token"]; string thumbnail = context.Request.Params["thumbnail"]; YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); //if (!YZAuthHelper.IsAuthenticated) //{ // JsonItem rv = new JsonItem(); // rv.Attributes["success"] = false; // rv.Attributes["errorMessage"] = JosonStrings.Aspx_Upload_NoAuth; // context.Response.Write(rv.ToString()); // return; //} HttpFileCollection files = context.Request.Files; if (files.Count > 0 && files[0].ContentLength > 0) { HttpPostedFile file = files[0]; string fileName = System.IO.Path.GetFileName(file.FileName); long fileSize = file.ContentLength; string fileExt = System.IO.Path.GetExtension(fileName).ToLower(); string fileId; string savePath; do { fileId = YZAttachmentHelper.GetNewFileID(); savePath = Attachment.FileIDToPath(fileId, YZAttachmentHelper.AttachmentRootPath); } while (File.Exists(savePath)); Directory.CreateDirectory(savePath.Substring(0, savePath.LastIndexOf(@"\"))); file.SaveAs(savePath); if (!String.IsNullOrEmpty(thumbnail) && !YZStringHelper.EquName(thumbnail, "n")) { this.MakeThumbnail(savePath, "S"); this.MakeThumbnail(savePath, "M"); } Attachment attachment = new Attachment(); attachment.FileID = fileId; attachment.Name = fileName; attachment.Ext = fileExt; attachment.Size = fileSize; attachment.LastUpdate = DateTime.Now; attachment.OwnerAccount = YZAuthHelper.LoginUserAccount; using (IDbConnection cn = YZDBProviderManager.CurrentProvider.OpenConnection()) { YZDBProviderManager.CurrentProvider.InsertAttachmentInfo(cn, attachment); } JsonItem rv = new JsonItem(); rv.Attributes["success"] = true; rv.Attributes["fileid"] = fileId; rv.Attributes["Name"] = fileName; rv.Attributes["Ext"] = fileExt; rv.Attributes["Size"] = fileSize; rv.Attributes["OwnerAccount"] = attachment.OwnerAccount; rv.Attributes["LastUpdate"] = YZStringHelper.DateToStringL(attachment.LastUpdate); context.Response.Write(rv.ToString()); } else { JsonItem rv = new JsonItem(); rv.Attributes["success"] = false; rv.Attributes["errorMessage"] = JosonStrings.Aspx_Invalid_File; context.Response.Write(rv.ToString()); } } catch (Exception exp) { JsonItem rv = new JsonItem(); rv.Attributes["success"] = false; rv.Attributes["errorMessage"] = exp.Message /* + exp.StackTrace*/; context.Response.Write(rv.ToString()); } }
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()); } }
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()); } }