private void QueryDonePointsList(object[] parameters)
        {
            HttpDataService httpDataService = new HttpDataService(Cookie);
            List <Bill>     bills           = new List <Bill>();

            TotalDonePoint = 0.0;
            foreach (Department dept in Departments)
            {
                bills = bills.Concat(httpDataService.GetBill(dept, Year.ToString(), Month.ToString(), Cookie)).ToList();
            }
            DonepointList = new ObservableCollection <DonePointViewModel>();
            string currentParentDepartment = bills.First().Zone;

            foreach (Bill bill in bills)
            {
                DonePointViewModel donepoint = new DonePointViewModel();
                donepoint.DonePoint  = bill.CN_Point + bill.F_Point;
                donepoint.Department = bill.Zone;
                donepoint.Name       = bill.Name;
                donepoint.Level      = bill.Level;
                DonepointList.Add(donepoint);
                if (donepoint.Department != null && donepoint.Department.Substring(17, 5).Equals(currentParentDepartment.Substring(17, 5)))
                {
                    if (donepoint.Department.Equals(currentParentDepartment))
                    {
                        TotalDonePoint += donepoint.DonePoint;
                    }
                    else
                    {
                        if (!donepoint.Department.Contains(currentParentDepartment))
                        {
                            TotalDonePoint         += donepoint.DonePoint;
                            currentParentDepartment = donepoint.Department;
                        }
                    }
                }
            }
            TotalDonePoint = Math.Round(TotalDonePoint, 4);
        }
        private ObservableCollection <DonePointViewModel> GetBill(string deptID, string year, string month, string cookie_str)
        {
            string uri = "http://www.acip.vip/ajax/bill_info.ashx";
            //string cookie_str = "UM_distinctid=16788d9cef9fd-0bcc9649da0e84-6313363-384000-16788d9cefd2c6; CNZZDATA1271442956=358702909-1544188911-null%7C1545309842; Hm_lvt_f5df380d5163c1cc4823c8d33ec5fa49=1545656171,1546693742,1546778220,1547003236; Hm_lvt_82131f194bfafb51664235f31934ebe0=1546693806,1547003365; iplatform1.0=user_name=H00669; ASP.NET_SessionId=wp0nsp2l5s5xl2s33ddm2fnp; Hm_lvt_bfc6c23974fbad0bbfed25f88a973fb0=1558523577,1559140092,1559220113,1559346861; acip.iplatform=652C40812A5FE2E60672AB0149118789104C146080C57E0B82FE6E320212EA1D5A6C950AA95CAF7AF7BAD2D1E1A6961F28C3EAAFEABA6FD6DFAE70416E6A653D049DFEAF855FED8F69EA88AF329DA62CFD41332723E40F5AE10849FC78304AC3E29C76D20C3C4C9398D6F13CCCD115726EC87804186C1A66EC9AE57D215C483C1A09348DBAD68E50546FBEE0846D77ABF5F7286B0A76D3E4E4C6B27ECEA68C75215B02FE96EC981B3142EA53409ACF5AD901DB5193BC10FE910AAB13CA1FE407; Hm_lpvt_bfc6c23974fbad0bbfed25f88a973fb0=1559361125";
            //string postData = string.Format("userid ={0}&password={1}","guset","123");
            //string postData = "dept_id=75926ed8-2f2f-4011-b206-6dc36a8632d0&year=2019&month=5&search_key=&call=GetDeptBonusList&page_size=10&page_index=0&get_total=true&key_id=id&id=&sort=cn_name+asc";
            string postData = string.Format("dept_id={0}&year={1}&month={2}&search_key={3}&call={4}&page_size={5}&page_index={6}&get_total={7}&key_id={8}&id={9}&sort={10}",
                                            deptID, year, month, "", "GetDeptBonusList", "20", "0", "true", "id", "", "cn_name+asc");

            byte[] data = Encoding.UTF8.GetBytes(postData);

            HttpWebRequest  request;
            HttpWebResponse response;

            request             = WebRequest.Create(uri) as HttpWebRequest;
            request.Method      = "POST";
            request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
            request.UserAgent   = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36";
            request.Headers.Add("Cookie", cookie_str);
            request.ContentLength = data.Length;
            Stream newStream = request.GetRequestStream();

            newStream.Write(data, 0, data.Length);
            newStream.Close();
            response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

            ObservableCollection <DonePointViewModel> bills = new ObservableCollection <DonePointViewModel>();
            string content = reader.ReadToEnd();

            if (!content.Contains("登录信息失效,请重新登陆!"))
            {
                JObject jo        = (JObject)JsonConvert.DeserializeObject(content);
                string  table_str = jo["table_rows"].ToString();
                if (table_str != "null")
                {
                    JArray             table     = JArray.Parse(table_str);
                    DonePointViewModel billTotal = new DonePointViewModel();
                    billTotal.Name = "总计";
                    foreach (JObject row in table)
                    {
                        DonePointViewModel bill = new DonePointViewModel();

                        bill.Name = row["cn_name"].ToString();
                        //bill.CN_Point = (double)row["real_point"];
                        if (row["real_point"].ToString() != "")
                        {
                            bill.DonePoint += (double)row["real_point"];
                        }

                        if (row["f_real_point"].ToString() != "")
                        {
                            bill.DonePoint += (double)row["f_real_point"];
                        }
                        billTotal.DonePoint += bill.DonePoint;
                        bill.Level           = row["cn_grade"].ToString();

                        bills.Add(bill);
                    }
                    bills.Add(billTotal);
                }
            }
            else
            {
                MessageBox.Show("登录过期,请重新登录", "出错了", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            return(bills);
        }