WX
2022-03-17 3d87b751b29e3681a8908be38e798e0ea91b21d4
ZTICInterface.Application/Service/TableProductionSalesService.cs
@@ -28,20 +28,11 @@
    /// <returns></returns>
    public async Task<Page<Dictionary<string, object>>> GetPages(VmParamTableProductionSalesPageSearch param)
    {
        var cms = param.Main.ToIConditionalModels();
        var cms = param.ColCondition.ToIConditionalModels();
        var page = await Context.Queryable<TableProductionSalesName>()
            .Where(cms)
            .OrderBy(a=>a.UpdateTime,OrderByType.Desc)
            .ToPageAsync(param.PageIndex, param.PageSize);
        var dbDataRange = await Context.Queryable<TableProductionSalesValue>()
            .Where(a => page.Items.Select(p => p.Id).Contains(a.NameId))
            .Select(a => new
            {
                Min = SqlFunc.AggregateMin(Convert.ToDateTime(SqlFunc.MergeString(a.Year.ToString(), "/", a.Month.ToString(), "/1"))),
                Max = SqlFunc.AggregateMax(Convert.ToDateTime(SqlFunc.MergeString(a.Year.ToString(), "/", a.Month.ToString(), "/1"))),
            })
            .FirstAsync();
        // 符合条件的数据值
        var valueList = await Context.Queryable<TableProductionSalesValue>()
@@ -55,7 +46,7 @@
        var startDate = param.DateRange.StartTime ?? minDateRange;
        var endDate = param.DateRange.EndTime ?? maxDateRange;
        
        var frequencyItem = param?.Main.Find(a =>
        var frequencyItem = param?.ColCondition.Find(a =>
            string.Equals(a.FieldName, "Frequency", StringComparison.CurrentCultureIgnoreCase));
        // 如果条件type是=的话,拿频率值
        var frequency = frequencyItem?.ConditionalType == ConditionalType.Equal ? frequencyItem.FieldValue : "";
@@ -90,18 +81,9 @@
                break;
        }
        var kvList = new List<Dictionary<string,object>>();
        var nameProps = typeof(TableProductionSalesName).GetProperties();
        foreach (var item in page.Items)
        {
            var dict = new Dictionary<string, object>();
            foreach (var prop in nameProps)
            {
                var value = prop.GetValue(item);
                dict.Add(prop.Name,value);
            }
            kvList.Add(dict);
        }
        // 结果组装
        var kvList = page.Items.ToJson().ToObject<List<Dictionary<string, object>>>();
        // 添加每个指标对应时间的值
        foreach (var dateTime in dateRange)
        {
            var colName = dateTime.ToString("yyyy-MM");
@@ -110,8 +92,7 @@
                var value = valueList.Find(a =>
                    a.Year == dateTime.Year && a.Month == dateTime.Month &&
                    a.NameId.ToString() == kvItem["Id"].ToString())?.Value;
                if (value != null)
                    kvItem[colName] = $"{value:N2}";
                kvItem[colName] = $"{value:N2}";
            }
        }