Commit 9a41ec4b by wyc

简单查询(补充)

parent ca1ba2c9
......@@ -307,7 +307,11 @@ public enum CustomTableLimitation
public enum Formatter
{
text,
numeric,
pre, // html pre标签保留文本中的所有空格、制表符和换行符。
numeric, // 数字
numeric_compare, // 数字对比 正-红 复-绿
pct, // 百分比
pct_compare, // 百分比对比 正-红 复-绿
tag,
}
}
......
using AngleSharp.Dom;
using AutoMapper;
using Dapper;
using GraphQL;
using Masuit.Tools;
using Masuit.Tools.Models;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Tokens;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using Performance.DtoModels;
......@@ -13,6 +15,7 @@
using Performance.Infrastructure;
using Performance.Infrastructure.Models;
using Performance.Repository;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
......@@ -165,11 +168,6 @@ public void DeleteAsync(params long[] procIds)
{
var dict = (IDictionary<string, object>)data.First();
var keys = dict.Select(w => w.Key).ToList();
//if (!keys.Any(key => string.Equals(key, "TreeId", StringComparison.OrdinalIgnoreCase)))
//{
//}
// 获取总页数
var totalCountKey = keys.FirstOrDefault(key => key.Equals("TotalCount", StringComparison.OrdinalIgnoreCase));
if (!string.IsNullOrEmpty(totalCountKey) && dict[totalCountKey] != null)
......@@ -214,18 +212,23 @@ public void DeleteAsync(params long[] procIds)
}
foreach (var item in columns)
{
var field = keys.FirstOrDefault(col => col.Equals(item.Field, StringComparison.OrdinalIgnoreCase));
if (!string.IsNullOrEmpty(field) && item.Formatter == Formatter.numeric.ToString())
if (!string.IsNullOrEmpty(field))
{
if (item.Formatter == Formatter.numeric.ToString() || item.Formatter == Formatter.numeric_compare.ToString())
{
object? sumValue = null;
try
{
var sumValue = data.Select(field).ToDynamicList().Cast<decimal?>().Sum();
total.AddOrUpdate(item.Field, sumValue, sumValue);
sumValue = data.Select(field, StringComparison.OrdinalIgnoreCase).ToListDynamic().Select(item => decimal.TryParse(item?.ToString(), out var value) ? (decimal?)value : null).Sum();
}
catch (Exception ex)
{
_logger.LogError(ex, "计算字段 {Field} 的总和时失败", field);
}
total.AddOrUpdate(item.Field, sumValue, sumValue);
}
}
}
}
......@@ -260,7 +263,24 @@ public async Task<(IQueryable<dynamic> data, List<ColumnResponse> columns)> GetE
_logger.LogInformation("存储过程:【{Script}】;参数:{Args}", script, string.Join(", ", args.Select(kv => $"{kv.Key}={kv.Value}")));
var multi = await conn.QueryMultipleAsync(script, args, commandTimeout: _commandTimeout);
var data = (await multi.ReadAsync()).AsQueryable();
var data = await multi.ReadAsync();
if (data.Any())
{
var dataFirt = (IDictionary<string, object>)data.First();
var key = dataFirt.Keys.FirstOrDefault(k => string.Equals(k, "treeid", StringComparison.OrdinalIgnoreCase));
dataFirt.TryGetValue(key, out var value);
if (string.IsNullOrEmpty(key) || string.IsNullOrEmpty(value?.ToString() ?? ""))
{
var index = 1;
data.ForEach(item =>
{
var pairs = (IDictionary<string, object>)item;
pairs.AddOrUpdate("treeid", index, StringComparer.OrdinalIgnoreCase);
pairs.AddOrUpdate("treeparentid", null, StringComparer.OrdinalIgnoreCase);
index += 1;
});
}
}
var columns = (await multi.ReadAsync<ColumnResponse>()).AsList();
columns.ForEach(column =>
{
......@@ -269,7 +289,7 @@ public async Task<(IQueryable<dynamic> data, List<ColumnResponse> columns)> GetE
});
columns = columns.OrderBy(w => w.Sort).ToList();
return (data, columns);
return (data.AsQueryable(), columns);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment