Exemplo n.º 1
0
        public async Task <IActionResult> GetDepartDetail([FromForm] InDepartD model)
        {
            var data = await departService.GetDepartDetail(model);

            return(Ok(new ResutModel <OutDepartD>
            {
                data = data,
                errorCode = 0,
                errorMsg = ""
            }));
        }
Exemplo n.º 2
0
        public async Task <OutDepartD> GetDepartDetail(InDepartD model)
        {
            OutDepartD outDepartD = new OutDepartD
            {
                Info = new List <OutDepartD_List>()
            };
            string formula, re, Ret, formula_t, re_t, Ret_t, formula_h, re_h, Ret_h;
            string starttime = model.StartTime;
            string endtime   = model.EndTime;

            string[] array_tb    = Method.GetTB(starttime, endtime).Split(",");
            string   starttime_t = array_tb[0].ToString();
            string   endtime_t   = array_tb[1].ToString();

            string[] array_hb    = Method.GetHB(starttime, endtime).Split(",");
            string   starttime_h = array_hb[0].ToString();
            string   endtime_h   = array_hb[1].ToString();

            var ohsetdata = await oHZBRepository.QueryFirstOrDefaultAsync <OhSet>("select * from OH_Set ");

            outDepartD.UpdateTime = ohsetdata.UpdateTime.ToString("yyyy-MM-dd HH:mm");
            var domain = await oHZBRepository.QueryFirstOrDefaultAsync <OhCbxx>("select * from OH_CBXX where Id=@Id", new { Id = model.ID });

            outDepartD.DepartName = domain.Name;
            outDepartD.StartTime  = starttime;
            outDepartD.EndTime    = endtime;
            var zbdata = (await oHZBRepository.QueryAsync <OhZb>("select * from OH_ZB  where IsEnable=1 and CID=0")).ToList();

            DataTable dt = new DataTable();

            foreach (var item in zbdata)
            {
                formula_h = formula_t = formula = item.Formula;
                OutDepartD_List info = new OutDepartD_List();
                info.Name = item.Zbmc;
                info.Type = item.Type.ToString();
                var array = Method.GetInteger(item.Formula).Split(",").GroupBy(p => p).Select(p => p.Key).ToArray();
                for (int j = 0; j < array.Length; j++)
                {
                    //部门指标数值
                    re = await oHZBRepository.GetDepartList(starttime, endtime, array[j].ToString(), model.ID);

                    formula = formula.Replace("'" + array[j].ToString() + "'", re);


                    //同比
                    if (starttime_t != "")
                    {
                        re_t = await oHZBRepository.GetDepartList(starttime_t, endtime_t, array[j].ToString(), model.ID);

                        formula_t = formula_t.Replace("'" + array[j].ToString() + "'", re_t);
                    }

                    //环比
                    if (starttime_t != "")
                    {
                        re_h = await oHZBRepository.GetDepartList(starttime_h, endtime_h, array[j].ToString(), model.ID);

                        formula_h = formula_h.Replace("'" + array[j].ToString() + "'", re_h);
                    }
                }
                Ret      = double.Parse(dt.Compute(formula, "false").ToString()).ToString("0.##");
                Ret_t    = formula_t == "" ? "" : double.Parse(dt.Compute(formula_t, "false").ToString()).ToString("0.##");
                Ret_h    = formula_h == "" ? "" : double.Parse(dt.Compute(formula_h, "false").ToString()).ToString("0.##");
                Ret_t    = (double.Parse(Ret) / double.Parse(Ret_t) - 1).ToString("0.##");
                Ret_h    = (double.Parse(Ret) / double.Parse(Ret_h) - 1).ToString("0.##");
                info.Num = Ret;
                info.TB  = Ret_t;
                info.HB  = Ret_h;
                outDepartD.Info.Add(info);
            }
            return(outDepartD);
        }