示例#1
0
        /// <summary>
        ///获取所有的部门列表信息
        /// </summary>
        /// <param name="repuestParams"></param>
        /// <returns></returns>
        public List <Department> GetAllDepIds(RequestParams repuestParams)
        {
            List <Department>         depList = new List <Department>();
            IDingTalkClient           client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list");
            OapiDepartmentListRequest request = new OapiDepartmentListRequest();

            request.Id = "1";//如果不传,默认为1表示根部门id
            request.SetHttpMethod("GET");
            OapiDepartmentListResponse response = client.Execute(request, TooUtil.GetAccessToken());

            if (response.Errcode == 0 && response.Department.Count > 0)
            {
                response.Department.ForEach(u =>
                {
                    Department department      = new Department();
                    department.DepId           = u.Id;
                    department.ParentId        = u.Parentid;
                    department.DepName         = u.Name;
                    department.CreateDeptGroup = u.CreateDeptGroup;
                    department.AutoAddUser     = u.AutoAddUser;
                    depList.Add(department);
                });
            }
            return(depList);
        }
        public JsonResult GetDailyCounts()
        {
            Daily         daily         = new Daily();
            RequestParams requestParams = new RequestParams();

            requestParams.Cursor = 0L;
            requestParams.Size   = 100L;
            requestParams.OffSet = 0L;

            DateTime dt      = DateTime.Now;
            int      days    = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings.Get("dailyDaysBefore"));
            DateTime dtbefor = dt.AddDays(days);

            requestParams.StartTime = TooUtil.ToUnixTime(dtbefor);
            requestParams.EndTime   = TooUtil.ToUnixTime(dt);
            //保存数据库
            Task <int> task = new Task <int>(new Func <int>(() => { return(daily.SavaDailyToSqlServer()); }));
            Task <List <DailyCount> > task1 = new Task <List <DailyCount> >(new Func <List <DailyCount> >(() =>
            {
                return(daily.GetDailyCounts(requestParams));
            }));

            task1.Start();
            Task.WaitAll(new Task[] { task1 });
            task.Start();
            if (task1.Result.Count > 0)
            {
                return(Json(new
                {
                    code = 0,
                    msg = "请求成功!",
                    data = task1.Result
                }, JsonRequestBehavior.AllowGet));
            }


            //if (dailyContents.Count>0)
            //{
            //    return Json(new
            //    {
            //        code = 0,
            //        msg = "请求成功!",
            //        data = dailyContents
            //    }, JsonRequestBehavior.AllowGet);
            //}
            return(Json(new
            {
                code = -1,
                msg = "请求失败!",
            }, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        /// <summary>
        /// 获取一个部门的用户列表
        /// </summary>
        /// <param name="repuestParams"></param>
        /// <returns></returns>
        public List <Emplayee> GetOneDepEmplayee(RequestParams repuestParams)
        {
            IDingTalkClient     client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/list");
            OapiUserListRequest request = new OapiUserListRequest();

            request.DepartmentId = repuestParams.DepId;
            request.Offset       = repuestParams.OffSet;
            request.Size         = repuestParams.Size;
            request.SetHttpMethod("GET");
            OapiUserListResponse response = client.Execute(request, TooUtil.GetAccessToken());

            if (response.Errcode == 0 && response.Userlist != null && response.Userlist.Count > 0)
            {
                response.Userlist.ForEach(u =>
                {
                    Emplayee emplayee            = new Emplayee();
                    emplayee.EmpUserId           = u.Userid;
                    emplayee.EmpName             = u.Name;
                    emplayee.EmpUnionid          = u.Unionid;
                    emplayee.EmpMobile           = u.Mobile;
                    emplayee.EmpTel              = u.Tel;
                    emplayee.EmpWorkPlace        = u.WorkPlace;
                    emplayee.EmpRemark           = u.Remark;
                    emplayee.EmpOrder            = u.Order;
                    emplayee.EmpIsAdmin          = u.IsAdmin;
                    emplayee.EmpIsBoss           = u.IsBoss;
                    emplayee.EmpIsHide           = u.IsHide;
                    emplayee.EmpIsLeader         = u.IsLeader;
                    emplayee.EmpActive           = u.Active;
                    emplayee.EmpDepartmentIdsStr = u.Department;
                    emplayee.EmpPosition         = u.Position;
                    emplayee.EmpEmail            = u.Email;
                    emplayee.EmpAvatar           = u.Avatar;
                    emplayee.EmpJobNumber        = u.Jobnumber;
                    emplayee.EmpExtattr          = u.Extattr;
                    if (empList.All <Emplayee>(k => k.EmpUserId != emplayee.EmpUserId))
                    {
                        empList.Add(emplayee);
                    }
                });
            }
            if (response.HasMore)
            {
                GetOneDepEmplayee(repuestParams);
            }
            return(empList);
        }
示例#4
0
        /// <summary>
        /// 提交数据     统计
        /// </summary>
        /// <param name="requestParams"></param>
        /// <returns></returns>
        public List <DailyCount> GetDailyCounts(RequestParams requestParams)
        {
            userlistIdandname.Clear();
            dailyList.Clear();
            List <string>     creatorIds  = new List <string>();
            List <DailyCount> dailyCounts = new List <DailyCount>();
            //上个月年月
            string yearmonth           = DateTime.Now.AddMonths(-1).ToString("yyyy-MM");//上个月
            int    boforeMonthWorkDays = TooUtil.GetWorlDaysForBeforeMonth();

            GetOneEmplayeeDaily(requestParams);
            if (userlistIdandname.Count > 0)
            {
                foreach (var item in userlistIdandname)
                {
                    try
                    {
                        DailyCount dailyCountm = new DailyCount();
                        dailyCountm.SubmitedNum = dailyList.FindAll(delegate(Daily daily)
                        {
                            return(daily.DaiCreatorId == item.Key && daily.DaiDate != null && daily.DaiDate.Length > 0 && daily.DaiDate != "" && daily.DaiDate.StartsWith(yearmonth) == true);
                        }).Count;
                        if (dailyCountm.SubmitedNum >= boforeMonthWorkDays)
                        {
                            dailyCountm.SubmitedNum = boforeMonthWorkDays;
                        }
                        dailyCountm.EmpName      = item.Value;
                        dailyCountm.ShouldSubNum = boforeMonthWorkDays;
                        dailyCountm.NotSubmitted = boforeMonthWorkDays - dailyCountm.SubmitedNum;
                        dailyCountm.BeforMonth   = yearmonth;
                        DailyCount dailyCount = dailyCounts.Find(delegate(DailyCount dailyCountn) { return(dailyCountn.EmpName == item.Value); });
                        if (dailyCount == null)
                        {
                            dailyCounts.Add(dailyCountm);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
            return(dailyCounts);
        }
示例#5
0
        public List <Daily> GetOneEmplayeeDaily(RequestParams requestParams)
        {
            IDingTalkClient       client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/report/list");
            OapiReportListRequest request = new OapiReportListRequest();

            request.StartTime = requestParams.StartTime;
            request.EndTime   = requestParams.EndTime;
            request.Cursor    = requestParams.Cursor;
            request.Size      = requestParams.Size;
            OapiReportListResponse response = client.Execute(request, TooUtil.GetAccessToken());
            JObject jobjext = (JObject)JsonConvert.DeserializeObject(response.Body);

            if (jobjext["errcode"].ToString() == "0" && jobjext["result"]["data_list"].ToString().Length > 0 && jobjext["result"]["data_list"].ToString() != "")
            {
                JArray jr = (JArray)jobjext["result"]["data_list"];
                if (jr.Count > 0)
                {
                    foreach (var item in jr)
                    {
                        if (!userReportId.Contains(item["report_id"].ToString()))
                        {
                            userReportId.Add(item["report_id"].ToString());
                            Daily daily = new Daily();
                            daily.DaiContents = item["contents"].ToString();
                            if (item["contents"] != null)
                            {
                                JArray jrcont = (JArray)item["contents"];
                                if (jrcont.Count > 0)
                                {
                                    foreach (var ite in jrcont)
                                    {
                                        if (ite["key"] != null && ite["key"].ToString() == "日志日期")
                                        {
                                            daily.DaiDate = ite["value"].ToString();
                                        }
                                    }
                                }
                            }
                            daily.Remark          = item["remark"].ToString();
                            daily.DaiTemplateName = item["template_name"].ToString();
                            daily.DaiDeptName     = item["template_name"].ToString();
                            daily.DaiCreatorName  = item["creator_name"].ToString();
                            daily.DaiCreatorId    = item["creator_id"].ToString();
                            daily.DaiCreateTime   = Convert.ToInt64(item["create_time"].ToString());
                            daily.DaiReportId     = item["report_id"].ToString();
                            if (!userlistIdandname.ContainsKey(item["creator_id"].ToString()))
                            {
                                userlistIdandname.Add(item["creator_id"].ToString(), item["creator_name"].ToString());
                            }
                            dailyList.Add(daily);
                        }
                    }
                }
            }
            if (response.Result.HasMore)
            {
                RequestParams requestParametersDd = new RequestParams();
                requestParametersDd        = requestParams;
                requestParametersDd.Cursor = response.Result.NextCursor;
                GetOneEmplayeeDaily(requestParametersDd);
            }
            return(dailyList);
        }