public async Task <IActionResult> GetZbCom([FromForm] InZBCom model) { var data = await comService.GetZbComData(model); return(Ok(new ResutModel <OutZBCom> { data = data, errorCode = 0, errorMsg = "" })); }
public async Task <OutZBCom> GetZbComData(InZBCom model) { var outZbCom = new OutZBCom { Head = new List <OutZBCom_Head>(), Body = new List <OutZBCom_Body>() }; var head = new List <OutZBCom_Head>(); var data = await ohSetRepository.QueryFirstOrDefaultAsync <OhSet>("select * from OH_Set"); outZbCom.UpdateTime = data.UpdateTime.ToString("yyyy-MM-dd HH:mm"); head.Add(new OutZBCom_Head { Name = "名称" }); if (model.Info == null || model.ZB == null) { return(new OutZBCom()); } head.AddRange(model.ZB.Select(item => new OutZBCom_Head { Name = $"{item.Name} {item.StartTime} 至 {item.EndTime}" })); var dt = new DataTable(); var typeC = string.Empty; foreach (var t in model.Info) { var table = string.Empty; switch (t.Type) { case "bm": table = "OH_CBXX"; typeC = "1"; break; case "lx": table = "OH_AJLX"; typeC = "2"; break; case "xz": table = "OH_AJXZ"; typeC = "3"; break; case "ay": table = "OH_AY"; typeC = "4"; break; case "cbr": table = "OH_CBXX"; typeC = "5"; break; case "qt": table = ""; typeC = "0"; break; } if (table != "") { var name = await ohSetRepository.QueryFirstOrDefaultAsync <dynamic>($"select name from {table} where Id=@Id", new { Id = t.Data.ToString() }); _logger.LogWarning($"sql 语句返回 dynamic {JsonConvert.SerializeObject(data)}"); head.Add(new OutZBCom_Head { Name = name }); } foreach (var t1 in model.ZB) { var databag = await ohSetRepository.QueryAsync <OhZb>("select * from OH_ZB where IsEnable=1 and CID=0 and ID=@ID", new { t1.ID }); foreach (var item in databag) { var Body = new OutZBCom_Body { Row = new List <OutZBCom_Row>() }; var array = Method.GetInteger(item.Formula).Split(",").GroupBy(p => p).Select(p => p.Key).ToArray(); foreach (var t2 in array) { var re = await ohSetRepository.GetComList(t1.StartTime, t1.EndTime, t2.ToString(), typeC, t.Data); item.Formula = item.Formula.Replace("'" + t2.ToString() + "'", re); } var Ret = double.Parse(dt.Compute(item.Formula, "false").ToString() ?? string.Empty).ToString("0.##"); Body.Row.Add(new OutZBCom_Row { val = Ret }); outZbCom.Body.Add(Body); } } } outZbCom.Head = head; return(outZbCom); }