コード例 #1
0
        private void btn计算工作情况_Click(object sender, EventArgs e)
        {
            var _List原始数据     = new List <_库位明细信息>();
            var _List统计时间内的数据 = new List <_库位明细信息>();
            var settime       = dtp截至时间.Value;

            #region 读取数据
            var actReadData = new Action(() =>
            {
                var strError = string.Empty;
                ShowMsg("开始读取紧急单数据");
                FormHelper.ReadCSVFile(txt紧急单.Text, ref _List原始数据, ref strError);

                #region 过滤截至时间之后的数据
                if (_List原始数据.Count > 0)
                {
                    for (int idx = _List原始数据.Count - 1; idx >= 0; idx--)
                    {
                        var curData = _List原始数据[idx];
                        if (!string.IsNullOrWhiteSpace(curData._内部标签))
                        {
                            var strArr = curData._内部标签.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
                            if (strArr.Length >= 3)
                            {
                                var strTime = strArr[2].Substring(0, 8);
                                var cTime   = Convert.ToDateTime(string.Format("{0} {1}", DateTime.Now.ToString("yyyy-MM-dd"), strTime));
                                if (cTime <= settime)
                                {
                                    _List统计时间内的数据.Add(curData);
                                }
                            }
                        }
                    }
                }
                #endregion
            });
            #endregion

            #region 处理数据
            actReadData.BeginInvoke((obj) =>
            {
                ShowMsg("紧急单数据读取完毕,即将开始计算");
                var _采购员姓名List = _List原始数据.Where(x => !string.IsNullOrWhiteSpace(x._采购员)).Select(x => x._采购员).Distinct().ToList();
                var _list统计结果  = new List <_统计结果>();
                if (_采购员姓名List.Count > 0)
                {
                    _采购员姓名List.ForEach(name =>
                    {
                        //if (name == "唐汉成")
                        //{

                        //}
                        var referAllDatas    = _List原始数据.Where(x => x._采购员 == name).ToList();
                        var referInTimeDatas = _List统计时间内的数据.Where(x => x._采购员 == name).ToList();
                        var list统计时间内的紧急订单   = referInTimeDatas.Where(x => x._备注.Contains("紧急")).ToList();
                        var list统计时间内的完成订单   = referInTimeDatas.Where(x => x._内部标签.Contains("付")).ToList();

                        var mode       = new _统计结果();
                        mode._采购员      = name;
                        mode._紧急订单数    = referAllDatas.Select(x => x._采购订单号).Distinct().Count();
                        mode._完成订单数    = list统计时间内的完成订单.Select(x => x._采购订单号).Distinct().Count();
                        mode._异常订单     = referInTimeDatas.Where(x => x._备注.Contains("标") || x._备注.Contains("缺")).Select(x => x._采购订单号).Distinct().Count();
                        mode._紧急单SKU个数 = referAllDatas.Select(x => x.SKU).Distinct().Count();
                        mode._完成SKU个数  = list统计时间内的完成订单.Select(x => x.SKU).Distinct().Count();

                        var d订单完成占比   = mode._紧急订单数 - mode._异常订单 > 0 ? Math.Round(mode._完成订单数 * 1.0m / (mode._紧急订单数 - mode._异常订单), 4) : 0;
                        mode._订单完成占比  = d订单完成占比;
                        mode._SKU完成占比 = mode._紧急单SKU个数 > 0 ? Math.Round(mode._完成SKU个数 * 1.0m / mode._紧急单SKU个数, 4) : 0;


                        _list统计结果.Add(mode);
                    });
                }

                ExportExcel(_list统计结果);
            }, null);
            #endregion
        }
コード例 #2
0
        private void btn合并_Click(object sender, EventArgs e)
        {
            var pathStr = txtPath.Text;

            if (!string.IsNullOrWhiteSpace(pathStr))
            {
                btn浏览.Enabled = false;
                btn合并.Enabled = false;
                var paths  = pathStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                var list   = new List <_退款数据>();
                var result = new List <_统计结果>();

                #region 读取数据
                var actReadData = new Action(() =>
                {
                    ShowMsg("正在读取数据,请稍等");
                    foreach (var path in paths)
                    {
                        using (var excel = new ExcelQueryFactory(path))
                        {
                            var qs = from c in excel.Worksheet <_退款数据>()
                                     select c;
                            list.AddRange(qs);
                        }
                    }
                });
                #endregion

                #region 处理数据
                actReadData.BeginInvoke((obj) =>
                {
                    ShowMsg("正在处理数据,请稍等");
                    foreach (var item in list)
                    {
                        var bExist = false;
                        for (int idx = result.Count - 1; idx >= 0; idx--)
                        {
                            var rsItem = result[idx];
                            if (rsItem._卖家简称 == item._卖家简称 && rsItem._物流方式 == item._物流方式 &&
                                rsItem._月份 == item._月份 && rsItem._交易国家 == item._交易国家)
                            {
                                rsItem._发货++;
                                if (item._已退款)
                                {
                                    rsItem._退款++;
                                }
                                bExist = true;
                                break;
                            }
                        }

                        if (!bExist)
                        {
                            var mode   = new _统计结果();
                            mode._卖家简称 = item._卖家简称;
                            mode._物流方式 = item._物流方式;
                            mode._月份   = item._月份;
                            mode._交易国家 = item._交易国家;
                            mode._发货   = 1;
                            mode._退款   = item._已退款 ? 1 : 0;
                            result.Add(mode);
                        }
                    }

                    ShowMsg("即将导出表格");
                    Export_合并汇总(result);
                }, null);
                #endregion
            }
        }