public async Task <IActionResult> GetDepartDetail([FromForm] InDepartD model) { var data = await departService.GetDepartDetail(model); return(Ok(new ResutModel <OutDepartD> { data = data, errorCode = 0, errorMsg = "" })); }
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); }