Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
    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);
    }
Пример #4
0
        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);
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
 public static string DateToStringL(DateTime date)
 {
     return(YZStringHelper.DateToStringL(date, null));
 }
Пример #8
0
 public static string MinutesToStringDHM(int minutes)
 {
     return(YZStringHelper.MinutesToStringDHM(minutes, 24));
 }
Пример #9
0
        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);
        }
Пример #10
0
        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();
        }
Пример #11
0
    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 + ")");
        }
    }
Пример #12
0
        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)
            });
        }
Пример #13
0
        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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        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);
        }
Пример #16
0
        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());
            }
        }
Пример #17
0
        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);
        }
Пример #18
0
        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());
            }
        }
Пример #19
0
 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);
 }
Пример #20
0
        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());
            }
        }
Пример #21
0
        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);
        }
Пример #22
0
        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);
        }
Пример #23
0
        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());
        }
Пример #24
0
        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);
        }
Пример #25
0
    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);
    }
Пример #26
0
        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);
        }
Пример #27
0
        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";
        }
Пример #28
0
        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());
            }
        }
Пример #29
0
        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());
            }
        }
Пример #30
0
        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());
            }
        }