|
|
|
@ -24,6 +24,8 @@ using VOL.Core.Enums;
|
|
|
|
|
using VOL.Core.Filters;
|
|
|
|
|
using VOL.System.IServices;
|
|
|
|
|
using VOL.System.Services;
|
|
|
|
|
using Confluent.Kafka;
|
|
|
|
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
|
|
|
|
|
|
|
|
|
|
namespace VOL.Data.Services
|
|
|
|
|
{
|
|
|
|
@ -79,12 +81,16 @@ namespace VOL.Data.Services
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Dictionary<string, object> produceDataGroupByWeekDays() {
|
|
|
|
|
List<Data_Config> configList = Data_ConfigService.Instance.getConfigList();
|
|
|
|
|
//List<Data_Config> configList = Data_ConfigService.Instance.getConfigList();
|
|
|
|
|
List<Data_Config> configList = Data_ConfigService.Instance.getNKNConfigList();
|
|
|
|
|
if (configList == null) {
|
|
|
|
|
return new();
|
|
|
|
|
}
|
|
|
|
|
List<string> configIds = configList.Select(c => c.id.ToString()).ToList();
|
|
|
|
|
//string configIds = string.Join(",", idList);
|
|
|
|
|
var dapper = DBServerProvider.SqlDapper;
|
|
|
|
|
string sql = @"SELECT
|
|
|
|
|
d.id,
|
|
|
|
|
c.datelist AS date,
|
|
|
|
|
d.config_id AS configId,
|
|
|
|
|
COALESCE ( MAX( turnout_all ), 0 ) AS currentTurnout
|
|
|
|
@ -92,30 +98,39 @@ namespace VOL.Data.Services
|
|
|
|
|
data_calendar c
|
|
|
|
|
LEFT JOIN data_produce d ON c.datelist = DATE( d.CreateDate )
|
|
|
|
|
AND d.com_status = @comStatus
|
|
|
|
|
AND d.config_id IN @configIds
|
|
|
|
|
WHERE
|
|
|
|
|
c.datelist BETWEEN CURDATE() - INTERVAL @Redays DAY
|
|
|
|
|
AND CURDATE()
|
|
|
|
|
c.datelist BETWEEN CURDATE() - INTERVAL @Redays DAY AND CURDATE()
|
|
|
|
|
GROUP BY
|
|
|
|
|
c.datelist,
|
|
|
|
|
d.config_id";
|
|
|
|
|
date,
|
|
|
|
|
configId";
|
|
|
|
|
int comStatus = 5;
|
|
|
|
|
int Redays = 6;
|
|
|
|
|
// 原生sql动态查询
|
|
|
|
|
var result = dapper.QueryDynamicList(sql, new { comStatus, Redays });
|
|
|
|
|
var result = dapper.QueryDynamicList(sql, new { comStatus, configIds, Redays });
|
|
|
|
|
Console.WriteLine(result);
|
|
|
|
|
var resultMap = new Dictionary<string, object>();
|
|
|
|
|
var datelist = result.Select(p => p.date.ToString("yyyy-MM-dd")).Distinct().ToList();
|
|
|
|
|
var configMap = new Dictionary<string, List<int>>();
|
|
|
|
|
foreach (var config in configList)
|
|
|
|
|
{
|
|
|
|
|
var data = new List<int>();
|
|
|
|
|
foreach (var item in result)
|
|
|
|
|
configMap.Add(config.id.ToString(), new List<int>());
|
|
|
|
|
}
|
|
|
|
|
foreach (var item in result)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (item.configId == null)
|
|
|
|
|
{
|
|
|
|
|
//Console.WriteLine(item.currentTurnout.GetType()); Int64
|
|
|
|
|
if (item.configId == null || item.configId == config.id) {
|
|
|
|
|
data.Add(Convert.ToInt32(item.currentTurnout));
|
|
|
|
|
foreach (var configPair in configMap)
|
|
|
|
|
{
|
|
|
|
|
configPair.Value.Add(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
configMap.Add(config.id.ToString(), data);
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
string id = item.configId.ToString();
|
|
|
|
|
configMap[id]?.Add(Convert.ToInt32(item.currentTurnout));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
resultMap.Add("datelist", datelist);
|
|
|
|
|
resultMap.Add("dataMap", configMap);
|
|
|
|
|