Beispiel #1
0
        public async Task <IActionResult> GetHisZb([FromForm] InZBHis model)
        {
            var data = await comService.GetZbHisData(model);

            return(Ok(new ResutModel <OutZBHis>
            {
                data = data,
                errorCode = 0,
                errorMsg = ""
            }));
        }
Beispiel #2
0
        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);
        }
    }