From c2bdcb0544f107e6f5e7a4cfa47f009a9a191e10 Mon Sep 17 00:00:00 2001
From: WX <wx036@qq.com>
Date: 星期六, 25 十一月 2023 18:59:20 +0800
Subject: [PATCH] 主营分析图表接口
---
GasolineBlend/Controllers/RcyController.cs | 13 ++++++++++++-
RiskControl.NewService/Service/RcyService.cs | 47 +++++++++++++++++++++++++++++++++++++++++++----
2 files changed, 55 insertions(+), 5 deletions(-)
diff --git a/GasolineBlend/Controllers/RcyController.cs b/GasolineBlend/Controllers/RcyController.cs
index dfbb4e0..a117590 100644
--- a/GasolineBlend/Controllers/RcyController.cs
+++ b/GasolineBlend/Controllers/RcyController.cs
@@ -101,7 +101,18 @@
[HttpPost]
public async Task<ActionResult> GetChainIncomeCostPage(int pageIndex, int pageSize, string[] exchangeCodes)
{
- var res = await _rcyService.GetChainIncomeCostPage(pageIndex,pageSize, exchangeCodes);
+ var res = await _rcyService.GetChainIncomeCostPage(pageIndex, pageSize, exchangeCodes);
+ return SuccessNoShow(data: res);
+ }
+ /// <summary>
+ /// 涓昏惀鍒嗘瀽鍥捐〃鎺ュ彛
+ /// </summary>
+ /// <param name="type">income,cost,grossmargin</param>
+ /// <returns></returns>
+ [HttpPost]
+ public async Task<ActionResult> GetChainIncomeCostChart(string type)
+ {
+ var res = await _rcyService.GetChainIncomeCostChart(type);
return SuccessNoShow(data: res);
}
}
diff --git a/RiskControl.NewService/Service/RcyService.cs b/RiskControl.NewService/Service/RcyService.cs
index 07df17d..2ad4ce7 100644
--- a/RiskControl.NewService/Service/RcyService.cs
+++ b/RiskControl.NewService/Service/RcyService.cs
@@ -10,7 +10,7 @@
/// <summary>
/// 浠佷骇鐮�
/// </summary>
- public class RcyService :DbContext
+ public class RcyService : DbContext
{
/// <summary>
/// 鏅皵鐭╅樀
@@ -29,6 +29,7 @@
.ToPageAsync(pageIndex, pageSize);
return res;
}
+
/// <summary>
/// 鏅皵鐭╅樀
/// </summary>
@@ -39,6 +40,7 @@
.ToListAsync();
return res;
}
+
/// <summary>
/// 涓婂競鍦颁綅
/// </summary>
@@ -56,6 +58,7 @@
.ToPageAsync(pageIndex, pageSize);
return res;
}
+
/// <summary>
/// 涓婂競鍦颁綅
/// </summary>
@@ -66,6 +69,7 @@
.ToListAsync();
return res;
}
+
/// <summary>
/// 鍏徃璇︽儏
/// </summary>
@@ -83,6 +87,7 @@
.ToPageAsync(pageIndex, pageSize);
return res;
}
+
/// <summary>
/// 鍏徃璇︽儏
/// </summary>
@@ -93,6 +98,7 @@
.ToListAsync();
return res;
}
+
/// <summary>
/// 浜т笟鍦板浘
/// </summary>
@@ -101,19 +107,52 @@
{
var res = await RiskControlRRDb.Queryable<RcyGsxq>()
.GroupBy(a => a.Sf)
- .Select(a => new { Name = a.Sf, Value = SqlFunc.AggregateCount(a.Sf) })
+ .Select(a => new {Name = a.Sf, Value = SqlFunc.AggregateCount(a.Sf)})
.ToListAsync();
return res;
}
- public async Task<Page<ChainIncomeCost>> GetChainIncomeCostPage(int pageIndex,int pageSize,string[] exchangeCodes)
+ public async Task<Page<ChainIncomeCost>> GetChainIncomeCostPage(int pageIndex, int pageSize,
+ string[] exchangeCodes)
{
var res = await RiskControlRRDb.Queryable<ChainIncomeCost>()
- .WhereIF(exchangeCodes.Length>0,a=>exchangeCodes.Contains(a.ExchangeCode))
+ .WhereIF(exchangeCodes.Length > 0, a => exchangeCodes.Contains(a.ExchangeCode))
.ToPageAsync(pageIndex, pageSize);
return res;
}
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="type">income,cost,grossmargin</param>
+ /// <returns></returns>
+ public async Task<object> GetChainIncomeCostChart(string type)
+ {
+ var data = await RiskControlRRDb.Queryable<ChainIncomeCost>()
+ .Where(a => a.CompanyName == "鎬昏")
+ .FirstAsync();
+ var props = typeof(ChainIncomeCost).GetProperties();
+ var dict = new SortedDictionary<int, double>();
+ foreach (var p in props.Where(a=>a.Name.ToLower().StartsWith(type.ToLower())))
+ {
+ var year =int.Parse(p.Name.ToLower().Replace(type.ToLower(), ""));
+ var val = (double?) p.GetValue(data);
+ if(val != null)
+ dict.Add(year,(double)val);
+ }
+
+ var res = new List<object>();
+ var index = 0;
+ foreach (var kv in dict)
+ {
+ var obj = new {year = kv.Key, value = kv.Value, rate = index == 0 ? (double?)null : (kv.Value - dict[kv.Key-1])/ dict[kv.Key - 1] *100};
+ res.Add(obj);
+ index++;
+ }
+
+ return res;
+ }
+
}
}
\ No newline at end of file
--
Gitblit v1.8.0