public async Task <IActionResult> GetHisZb([FromForm] InZBHis model) { var data = await comService.GetZbHisData(model); return(Ok(new ResutModel <OutZBHis> { data = data, errorCode = 0, errorMsg = "" })); }
public async Task <OutZBHis> GetZbHisData(InZBHis model) { var outZbHis = new OutZBHis { Body = new List <OutZBHis_Body>(), Head = new List <OutZBHis_Head>() }; var head = new List <OutZBHis_Head>(); var data = await ohSetRepository.QueryFirstOrDefaultAsync <OhSet>("select * from OH_Set"); outZbHis.UpdateTime = data.UpdateTime.ToString("yyyy-MM-dd HH:mm"); head.Add(new OutZBHis_Head { Name = "时间" }); if (model.Info == null) { return(new OutZBHis()); } foreach (var t in model.Info) { var reN = await ohSetRepository.QueryFirstOrDefaultAsync <dynamic>("select name from OH_CBXX where ID=@Id", new { Id = t.Data.ToString() }); head.Add(new OutZBHis_Head { Name = reN + model.Name }); _logger.LogWarning($"sql 语句返回 dynamic {JsonConvert.SerializeObject(data)}"); } var dt = new DataTable(); var databag = await ohSetRepository.QueryFirstOrDefaultAsync <OhZb>("select * from OH_ZB where IsEnable=1 and CID=0 and ID=@Id", new { Id = model.ID }); var array = Method.GetInteger(databag.Formula).Split(",").GroupBy(p => p).Select(p => p.Key).ToArray(); var time = Method.GetHisDate(); var adl = JsonConvert.DeserializeObject <HisTime>(time); foreach (var t in adl.Info) { var body = new OutZBHis_Body { Row = new List <OutZBHis_Row>() }; body.Row.Add(new OutZBHis_Row { val = t.Name }); var typeC = string.Empty; foreach (var t1 in model.Info) { typeC = t1.Type switch { "bm" => "1", "cbr" => "5", _ => typeC }; foreach (var t2 in array) { var re = await ohSetRepository.GetComList(t.StartTime, t.EndTime, t2.ToString(), typeC, t1.Data); databag.Formula = databag.Formula.Replace("'" + t2.ToString() + "'", re); } var ret = double.Parse(dt.Compute(databag.Formula, "false").ToString() ?? string.Empty).ToString("0.##"); body.Row.Add(new OutZBHis_Row { val = ret }); } outZbHis.Body.Add(body); } outZbHis.Head = head; return(outZbHis); } }