|
|
|
@ -49,25 +49,123 @@ namespace VOL.Data.Services
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<Data_Produce> produceDataGroupByWeekDays() {
|
|
|
|
|
var db = _repository.DbContext.Set<Data_Produce>();
|
|
|
|
|
List<Data_Produce> data_Produces = new();
|
|
|
|
|
data_Produces =
|
|
|
|
|
db.FromSqlRaw(
|
|
|
|
|
"SELECT c.datelist as date, COALESCE(MAX(turnout_all), 0) AS currentTurnout, d.* FROM Data_Calendar c" +
|
|
|
|
|
"LEFT JOIN Data_Produce d ON c.datelist = DATE(d.CreateDate) and d.com_status = 5 " +
|
|
|
|
|
"WHERE c.datelist BETWEEN CURDATE() - INTERVAL 6 DAY AND CURDATE()" +
|
|
|
|
|
"GROUP BY c.datelist").ToList();
|
|
|
|
|
//var result = (from c in db.Set<Data_Calendar>()
|
|
|
|
|
// join d in db.Set<Data_Produce>()
|
|
|
|
|
// on c.datelist equals DATE(d.CreateDate) && d.com_status = 5 into joinResult
|
|
|
|
|
// from d in joinResult.DefaultIfEmpty());
|
|
|
|
|
//select new
|
|
|
|
|
//{
|
|
|
|
|
// Column1 = t1.Column1,
|
|
|
|
|
// Column2 = t2.Column2
|
|
|
|
|
//};
|
|
|
|
|
return data_Produces;
|
|
|
|
|
public Dictionary<string, object> produceDataGroupByWeekDays() {
|
|
|
|
|
List<Data_Config> configList = Data_ConfigService.Instance.getConfigList();
|
|
|
|
|
if (configList == null) {
|
|
|
|
|
return new();
|
|
|
|
|
}
|
|
|
|
|
var dapper = DBServerProvider.SqlDapper;
|
|
|
|
|
string sql = @"SELECT
|
|
|
|
|
c.datelist AS date,
|
|
|
|
|
d.config_id AS configId,
|
|
|
|
|
COALESCE ( MAX( turnout_all ), 0 ) AS currentTurnout
|
|
|
|
|
FROM
|
|
|
|
|
data_calendar c
|
|
|
|
|
LEFT JOIN data_produce d ON c.datelist = DATE( d.CreateDate )
|
|
|
|
|
AND d.com_status = @comStatus
|
|
|
|
|
WHERE
|
|
|
|
|
c.datelist BETWEEN CURDATE() - INTERVAL @Redays DAY
|
|
|
|
|
AND CURDATE()
|
|
|
|
|
GROUP BY
|
|
|
|
|
c.datelist,
|
|
|
|
|
d.config_id";
|
|
|
|
|
int comStatus = 5;
|
|
|
|
|
int Redays = 6;
|
|
|
|
|
// 原生sql动态查询
|
|
|
|
|
var result = dapper.QueryDynamicList(sql, new { comStatus, Redays });
|
|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
//Console.WriteLine(item.currentTurnout.GetType()); Int64
|
|
|
|
|
if (item.configId == null || item.configId == config.id) {
|
|
|
|
|
data.Add(Convert.ToInt32(item.currentTurnout));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
configMap.Add(config.id.ToString(), data);
|
|
|
|
|
}
|
|
|
|
|
resultMap.Add("datelist", datelist);
|
|
|
|
|
resultMap.Add("dataMap", configMap);
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Dictionary<string, object> workDataGroupByWeekDays(int configId, string target)
|
|
|
|
|
{
|
|
|
|
|
var dapper = DBServerProvider.SqlDapper;
|
|
|
|
|
string sql = @"SELECT
|
|
|
|
|
c.datelist AS date,
|
|
|
|
|
d.config_id AS configId,
|
|
|
|
|
COALESCE ( MAX( id ), 0 ) AS lastId
|
|
|
|
|
FROM
|
|
|
|
|
data_calendar c
|
|
|
|
|
LEFT JOIN data_produce d ON c.datelist = DATE( d.CreateDate )
|
|
|
|
|
AND d.com_status = @comStatus
|
|
|
|
|
AND d.config_id = @configId
|
|
|
|
|
WHERE
|
|
|
|
|
c.datelist BETWEEN CURDATE() - INTERVAL @Redays DAY
|
|
|
|
|
AND CURDATE()
|
|
|
|
|
GROUP BY
|
|
|
|
|
c.datelist,
|
|
|
|
|
d.config_id";
|
|
|
|
|
int comStatus = 5;
|
|
|
|
|
int Redays = 6;
|
|
|
|
|
var result = dapper.QueryDynamicList(sql, new { comStatus, configId, Redays });
|
|
|
|
|
var datelist = result.Select(p => p.date.ToString("yyyy-MM-dd")).Distinct().ToList();
|
|
|
|
|
var resultMap = new Dictionary<string, object>();
|
|
|
|
|
var dataMap = new Dictionary<string, List<List<int>>>();
|
|
|
|
|
var dataSize = datelist.Count;
|
|
|
|
|
// 初始化所有指标数据
|
|
|
|
|
var work1_Turnouts = new List<int>(dataSize);
|
|
|
|
|
var work2_Turnouts = new List<int>(dataSize);
|
|
|
|
|
var work3_Turnouts = new List<int>(dataSize);
|
|
|
|
|
var work1_Schedules = new List<int>(dataSize);
|
|
|
|
|
var work2_Schedules = new List<int>(dataSize);
|
|
|
|
|
var work3_Schedules = new List<int>(dataSize);
|
|
|
|
|
var work1_Yields = new List<int>(dataSize);
|
|
|
|
|
var work2_Yields = new List<int>(dataSize);
|
|
|
|
|
var work3_Yields = new List<int>(dataSize);
|
|
|
|
|
foreach (var item in result)
|
|
|
|
|
{
|
|
|
|
|
int a = 0, b = 0, c = 0, aa = 0, bb = 0, cc = 0, aaa = 0, bbb = 0, ccc = 0;
|
|
|
|
|
var data = new List<int>();
|
|
|
|
|
if (item.configId != null && item.lastId != 0)
|
|
|
|
|
{
|
|
|
|
|
sql = @"SELECT * from data_produce where id = @lastId";
|
|
|
|
|
var row = dapper.QueryDynamicFirst(sql, new { item.lastId });
|
|
|
|
|
if (row != null)
|
|
|
|
|
{
|
|
|
|
|
a = row.turnout_1 ?? 0;
|
|
|
|
|
b = row.turnout_2 ?? 0;
|
|
|
|
|
c = row.turnout_3 ?? 0;
|
|
|
|
|
aa = row.schedule_1 != null ? Convert.ToInt32(row.schedule_1 * 100) : 0;
|
|
|
|
|
bb = row.schedule_2 != null ? Convert.ToInt32(row.schedule_2 * 100) : 0;
|
|
|
|
|
cc = row.schedule_3 != null ? Convert.ToInt32(row.schedule_3 * 100) : 0;
|
|
|
|
|
aaa = row.yield_1 != null ? Convert.ToInt32(row.yield_1 * 100) : 0;
|
|
|
|
|
bbb = row.yield_2 != null ? Convert.ToInt32(row.yield_2 * 100) : 0;
|
|
|
|
|
ccc = row.yield_3 != null ? Convert.ToInt32(row.yield_3 * 100) : 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
work1_Turnouts.Add(a);
|
|
|
|
|
work2_Turnouts.Add(b);
|
|
|
|
|
work3_Turnouts.Add(c);
|
|
|
|
|
work1_Schedules.Add(aa);
|
|
|
|
|
work2_Schedules.Add(bb);
|
|
|
|
|
work3_Schedules.Add(cc);
|
|
|
|
|
work1_Yields.Add(aaa);
|
|
|
|
|
work2_Yields.Add(bbb);
|
|
|
|
|
work3_Yields.Add(ccc);
|
|
|
|
|
}
|
|
|
|
|
dataMap.Add("turnout", new List<List<int>> { work1_Turnouts , work2_Turnouts, work3_Turnouts });
|
|
|
|
|
dataMap.Add("schedule", new List<List<int>> { work1_Schedules, work2_Schedules, work3_Schedules });
|
|
|
|
|
dataMap.Add("yield", new List<List<int>> { work1_Yields, work2_Yields, work3_Yields });
|
|
|
|
|
resultMap.Add("datelist", datelist);
|
|
|
|
|
resultMap.Add("dataMap", dataMap);
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|