|
@@ -25,6 +25,7 @@ using System.ComponentModel.Design;
|
|
|
using NetTaste;
|
|
|
using OASystem.Domain.ViewModels.QiYeWeChat;
|
|
|
using NPOI.POIFS.Crypt.Dsig;
|
|
|
+using EyeSoft.SequentialIdentity;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
|
{
|
|
@@ -2253,6 +2254,7 @@ namespace OASystem.API.Controllers
|
|
|
private async Task<SalesYOYView> GroupSales(int companyId, int groupPickupUserId,string beginDt, string endDt)
|
|
|
{
|
|
|
decimal thisSales = 0.00M, lastSales = 0.00M, yoy = 1.00M;
|
|
|
+
|
|
|
var _view = new SalesYOYView();
|
|
|
List<int> userIds = new List<int>();
|
|
|
userIds = await GetUserIds(companyId, groupPickupUserId);
|
|
@@ -2270,101 +2272,59 @@ namespace OASystem.API.Controllers
|
|
|
};
|
|
|
return _view;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- string sql = string.Format($@"SELECT
|
|
|
- CAST(SUM(Sales) AS decimal(12,2)) AS Sales
|
|
|
-FROM
|
|
|
- (
|
|
|
- SELECT
|
|
|
- YEAR(di.VisitDate) AS [Year],
|
|
|
- (
|
|
|
- SELECT
|
|
|
- CAST(SUM(ItemSumPrice * Rate) AS decimal(12,2))
|
|
|
- FROM
|
|
|
- Fin_ForeignReceivables
|
|
|
- WHERE
|
|
|
- IsDel = 0
|
|
|
- AND AddingWay IN (0, 1, 2)
|
|
|
- AND di.Id = Diid
|
|
|
- ) AS Sales
|
|
|
- FROM
|
|
|
- Grp_DelegationInfo di
|
|
|
- WHERE
|
|
|
- di.IsDel = 0
|
|
|
- AND di.IsSure = 1
|
|
|
- AND di.JietuanOperator IN (
|
|
|
- SELECT
|
|
|
- Id
|
|
|
- FROM
|
|
|
- Sys_Users
|
|
|
- WITH
|
|
|
- (NoLock)
|
|
|
- WHERE
|
|
|
- IsDel = 0 {userSqlWhere}
|
|
|
- )
|
|
|
- AND di.VisitDate BETWEEN '{beginDt}' AND '{endDt}'
|
|
|
- ) temp");
|
|
|
-
|
|
|
- var newDB = _sqlSugar.CopyNew();
|
|
|
- var salesData = newDB.SqlQueryable<SalesView>(sql).First();
|
|
|
-
|
|
|
- thisSales = salesData?.Sales ?? 0.00M;
|
|
|
|
|
|
string lastBeginDt = Convert.ToDateTime(beginDt).AddYears(-1).ToString("yyyy-MM-dd HH:mm:ss"),
|
|
|
lastEndDt = Convert.ToDateTime(endDt).AddYears(-1).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
- string lastSql = string.Format($@"SELECT
|
|
|
- CAST(SUM(Sales) AS decimal(12,2)) AS Sales
|
|
|
+ string salesSql = string.Format(@"
|
|
|
+SELECT
|
|
|
+ 'ThisSales' As [Name],
|
|
|
+ CAST(SUM(Sales) AS decimal(12,2)) As Sales
|
|
|
FROM
|
|
|
- (
|
|
|
- SELECT
|
|
|
- YEAR(di.VisitDate) AS [Year],
|
|
|
- (
|
|
|
- SELECT
|
|
|
- CAST(SUM(ItemSumPrice * Rate) AS decimal(12,2))
|
|
|
- FROM
|
|
|
- Fin_ForeignReceivables
|
|
|
- WHERE
|
|
|
- IsDel = 0
|
|
|
- AND AddingWay IN (0, 1, 2)
|
|
|
- AND di.Id = Diid
|
|
|
- ) AS Sales
|
|
|
- FROM
|
|
|
- Grp_DelegationInfo di
|
|
|
- WHERE
|
|
|
- di.IsDel = 0
|
|
|
- AND di.IsSure = 1
|
|
|
- AND di.JietuanOperator IN (
|
|
|
- SELECT
|
|
|
- Id
|
|
|
- FROM
|
|
|
- Sys_Users
|
|
|
- WITH
|
|
|
- (NoLock)
|
|
|
- WHERE
|
|
|
- IsDel = 0 {userSqlWhere}
|
|
|
- )
|
|
|
- AND di.Issure = 1
|
|
|
- AND di.VisitDate BETWEEN '{lastBeginDt}' AND '{lastEndDt}'
|
|
|
- ) temp");
|
|
|
-
|
|
|
- var salesData1 = newDB.SqlQueryable<SalesView>(lastSql).First();
|
|
|
- lastSales = salesData1?.Sales ?? 0.00M;
|
|
|
-
|
|
|
- if (lastSales != 0 && thisSales != 0) yoy = (thisSales - lastSales) / lastSales;
|
|
|
-
|
|
|
- _view = new SalesYOYView
|
|
|
- {
|
|
|
+ (
|
|
|
+ SELECT di.VisitDate,
|
|
|
+ (SELECT CAST(SUM(ItemSumPrice * Rate) AS decimal(12,2)) FROM Fin_ForeignReceivables
|
|
|
+ WHERE IsDel = 0 AND AddingWay IN (0, 1, 2)AND di.Id = Diid
|
|
|
+ ) AS Sales
|
|
|
+ FROM
|
|
|
+ Grp_DelegationInfo di
|
|
|
+ WHERE di.IsDel = 0 AND di.IsSure = 1
|
|
|
+ AND di.JietuanOperator IN (SELECT Id FROM Sys_Users WITH (NoLock) WHERE IsDel = 0 {0})
|
|
|
+ AND di.VisitDate BETWEEN '{1}' AND '{2}'
|
|
|
+ ) temp
|
|
|
+Union ALL
|
|
|
+SELECT
|
|
|
+ 'LastSales' As [Name],
|
|
|
+ CAST(SUM(Sales) AS decimal(12,2)) As Sales
|
|
|
+FROM
|
|
|
+ (
|
|
|
+ SELECT di.VisitDate,
|
|
|
+ (SELECT CAST(SUM(ItemSumPrice * Rate) AS decimal(12,2)) FROM Fin_ForeignReceivables
|
|
|
+ WHERE IsDel = 0 AND AddingWay IN (0, 1, 2)AND di.Id = Diid
|
|
|
+ ) AS Sales
|
|
|
+ FROM
|
|
|
+ Grp_DelegationInfo di
|
|
|
+ WHERE di.IsDel = 0 AND di.IsSure = 1
|
|
|
+ AND di.JietuanOperator IN (SELECT Id FROM Sys_Users WITH (NoLock) WHERE IsDel = 0 {3})
|
|
|
+ AND di.VisitDate BETWEEN '{4}' AND '{5}'
|
|
|
+ ) temp", userSqlWhere, beginDt, endDt, userSqlWhere, lastBeginDt, lastEndDt);
|
|
|
+
|
|
|
+ var salesData = await _sqlSugar.SqlQueryable<SalesView>(salesSql).ToListAsync();
|
|
|
+
|
|
|
+ thisSales = salesData.Where(x => x.Name.Equals("ThisSales")).First()?.Sales ?? 0;
|
|
|
+ lastSales = salesData.Where(x => x.Name.Equals("LastSales")).First()?.Sales ?? 0;
|
|
|
+
|
|
|
+ if (lastSales != 0 && thisSales != 0) yoy = (thisSales - lastSales) / lastSales;
|
|
|
+
|
|
|
+ return new SalesYOYView() {
|
|
|
thisYearSales = thisSales.ToString("#0.00"),
|
|
|
lastYearSales = lastSales.ToString("#0.00"),
|
|
|
yoy = yoy.ToString("#0.00")
|
|
|
-
|
|
|
};
|
|
|
- return _view;
|
|
|
}
|
|
|
|
|
|
private class SalesView
|
|
|
{
|
|
|
+ public string Name { get; set; }
|
|
|
public decimal Sales { get; set; }
|
|
|
}
|
|
|
|