Beispiel #1
0
        public ActionResult ClearDataAll(string clientKey, string kpiArray)
        {
            try
            {
                var list = new List <KPI_EXCUTE_VIEWMODEL>();
                foreach (var item in kpiArray?.Trim('|').Split('|'))
                {
                    var id  = int.Parse(item.ToString());
                    var kpi = _kpiService.Get(r => r.SD_EKPI_ID == id);
                    if (kpi.VALUE_TABLE_ID == 1)
                    {
                        list.Add(new KPI_EXCUTE_VIEWMODEL()
                        {
                            primaryKey = item.ToString(), KPI_NAME = kpi.SD_EKPI_NAME, clientKey = clientKey
                        });
                    }
                }

                Task.Factory.StartNew(() =>
                {
                    double index = 0;
                    list.ForEach(r =>
                    {
                        index      += 1;
                        var percent = Math.Round(index * 100 / list.Count, 2);
                        _procStateService.KPIDoClear(ProjectProvider.Instance.Current.SD_ID, r.primaryKey);
                        var result = _kpiService.Clear(r.primaryKey);
                        _procLogService.Insert(new PDP_PROC_LOG()
                        {
                            PROC_CONTENT_ID = r.primaryKey,
                            SD_ID           = ProjectProvider.Instance.Current.SD_ID,
                            PROC_CAT_CODE   = "3",
                            PROC_STAT_CODE  = 3,
                        });
                        ProcessHub.GetInstance().Send(clientKey, $"{percent}%", "批量清库", $"评价指标:{r.KPI_NAME} 清库成功,共清除 {result}条!!!", "");
                    });
                });

                return(View("Progress"));;
            }
            catch (Exception e)
            {
                return(Error(e.Message));
            }
        }