|
@@ -2079,12 +2079,14 @@ namespace OASystem.API.Controllers
|
|
|
.ToList();
|
|
|
List<int> depIds = depData.Select(it => it.Id).ToList();
|
|
|
|
|
|
- var jobData = _sqlSugar.Queryable<Sys_JobPost>().Where(it => it.IsDel == 0 && companyIds.Contains(it.CompanyId) && (it.JobName.Contains("经理") || it.JobName.Contains("主管")))
|
|
|
- .Select(it => new { it.Id, it.CompanyId, it.DepId, it.JobName })
|
|
|
- .ToList();
|
|
|
- List<int> jobIds = jobData.Select(it => it.Id).ToList();
|
|
|
+ //
|
|
|
+ //var jobData = _sqlSugar.Queryable<Sys_JobPost>().Where(it => it.IsDel == 0 && companyIds.Contains(it.CompanyId) && (it.JobName.Contains("经理") || it.JobName.Contains("主管")))
|
|
|
+ // .Select(it => new { it.Id, it.CompanyId, it.DepId, it.JobName })
|
|
|
+ // .ToList();
|
|
|
+ //List<int> jobIds = jobData.Select(it => it.Id).ToList();
|
|
|
+ //(depIds.Contains(it.DepId) || jobIds.Contains(it.JobPostId)
|
|
|
//userId = 21
|
|
|
- var userData = _sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && (depIds.Contains(it.DepId) || jobIds.Contains(it.JobPostId)))
|
|
|
+ var userData = _sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && (depIds.Contains(it.DepId) || it.Id==21))
|
|
|
.Select(it => new { id = it.Id, companyId = it.CompanyId, name = it.CnName })
|
|
|
.ToList();
|
|
|
|
|
@@ -2183,6 +2185,7 @@ namespace OASystem.API.Controllers
|
|
|
/// <summary>
|
|
|
/// 市场部销售额
|
|
|
/// 年度/季度/月度 报表(同比)
|
|
|
+ /// (增加团组查询条件 IsSure=1)
|
|
|
/// </summary>
|
|
|
/// <param name="_dto">市场部销售额请求dto</param>
|
|
|
/// <returns></returns>
|
|
@@ -2227,18 +2230,20 @@ 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 = 0.00M;
|
|
|
+ var _view = new SalesYOYView();
|
|
|
+ //团组查询条件增加 isSure=1
|
|
|
string userSqlWhere = "";
|
|
|
if (companyId > 0) userSqlWhere += string.Format($" And CompanyId={companyId}");
|
|
|
if (groupPickupUserId > 0) userSqlWhere += string.Format($" And Id={groupPickupUserId}");
|
|
|
string sql = string.Format($@"SELECT
|
|
|
- SUM(Sales) AS Sales
|
|
|
+ CAST(SUM(Sales) AS decimal(12,2)) AS Sales
|
|
|
FROM
|
|
|
(
|
|
|
SELECT
|
|
|
YEAR(di.VisitDate) AS [Year],
|
|
|
(
|
|
|
SELECT
|
|
|
- SUM(ItemSumPrice * Rate)
|
|
|
+ CAST(SUM(ItemSumPrice * Rate) AS decimal(12,2))
|
|
|
FROM
|
|
|
Fin_ForeignReceivables
|
|
|
WHERE
|
|
@@ -2250,6 +2255,7 @@ FROM
|
|
|
Grp_DelegationInfo di
|
|
|
WHERE
|
|
|
di.IsDel = 0
|
|
|
+ AND di.IsSure = 1
|
|
|
AND di.JietuanOperator IN (
|
|
|
SELECT
|
|
|
Id
|
|
@@ -2263,21 +2269,22 @@ FROM
|
|
|
AND di.VisitDate BETWEEN '{beginDt}' AND '{endDt}'
|
|
|
) temp");
|
|
|
|
|
|
- var salesData = await _sqlSugar.SqlQueryable<SalesView>(sql).FirstAsync();
|
|
|
+ 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
|
|
|
- SUM(Sales) AS Sales
|
|
|
+ CAST(SUM(Sales) AS decimal(12,2)) AS Sales
|
|
|
FROM
|
|
|
(
|
|
|
SELECT
|
|
|
YEAR(di.VisitDate) AS [Year],
|
|
|
(
|
|
|
SELECT
|
|
|
- SUM(ItemSumPrice * Rate)
|
|
|
+ CAST(SUM(ItemSumPrice * Rate) AS decimal(12,2))
|
|
|
FROM
|
|
|
Fin_ForeignReceivables
|
|
|
WHERE
|
|
@@ -2289,6 +2296,7 @@ FROM
|
|
|
Grp_DelegationInfo di
|
|
|
WHERE
|
|
|
di.IsDel = 0
|
|
|
+ AND di.IsSure = 1
|
|
|
AND di.JietuanOperator IN (
|
|
|
SELECT
|
|
|
Id
|
|
@@ -2302,12 +2310,18 @@ FROM
|
|
|
AND di.VisitDate BETWEEN '{lastBeginDt}' AND '{lastEndDt}'
|
|
|
) temp");
|
|
|
|
|
|
- var salesData1 = await _sqlSugar.SqlQueryable<SalesView>(lastSql).FirstAsync();
|
|
|
+ var salesData1 = newDB.SqlQueryable<SalesView>(lastSql).First();
|
|
|
lastSales = salesData1?.Sales ?? 0.00M;
|
|
|
|
|
|
+ if (lastSales < 1 || thisSales < 1)
|
|
|
+ {
|
|
|
+ thisSales = 1.00M;
|
|
|
+ lastSales = 1.00M;
|
|
|
+ }
|
|
|
+
|
|
|
if (lastSales != 0 && thisSales != 0) yoy = (thisSales - lastSales) / lastSales;
|
|
|
|
|
|
- var _view = new SalesYOYView
|
|
|
+ _view = new SalesYOYView
|
|
|
{
|
|
|
thisYearSales = thisSales.ToString("#0.00"),
|
|
|
lastYearSales = lastSales.ToString("#0.00"),
|
|
@@ -2333,6 +2347,7 @@ FROM
|
|
|
/// <summary>
|
|
|
/// 市场部销售额
|
|
|
/// 团组列表
|
|
|
+ /// (增加团组查询条件 IsSure=1)
|
|
|
/// </summary>
|
|
|
/// <param name="_dto">市场部销售额请求dto</param>
|
|
|
/// <returns></returns>
|
|
@@ -2363,41 +2378,85 @@ FROM
|
|
|
|
|
|
string userSql = "";
|
|
|
List<int> userIds = new List<int>();
|
|
|
+ //全部人员Id
|
|
|
+ //查询所有公司的市场部
|
|
|
+
|
|
|
+ var userDatas = await _sqlSugar.Queryable<Sys_Users>()
|
|
|
+ .InnerJoin<Sys_Company>((u, c) => u.CompanyId == c.Id)
|
|
|
+ .InnerJoin<Sys_Department>((u, c, d) => u.DepId == d.Id)
|
|
|
+ .Where((u, c, d) => u.IsDel == 0 && (u.Id == 21 || d.DepName.Contains("市场部")))
|
|
|
+ .Select((u, c, d) => new { u.Id ,u.CompanyId,u.CnName})
|
|
|
+ .ToListAsync();
|
|
|
+
|
|
|
+
|
|
|
if (_dto.CompanyId > 0)
|
|
|
{
|
|
|
- userIds = _sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && it.CompanyId == _dto.CompanyId).Select(it => it.Id).ToList();
|
|
|
+ userIds = userDatas.Where(it => it.CompanyId == _dto.CompanyId).Select(it => it.Id).ToList();
|
|
|
+
|
|
|
+ //userIds = _sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && it.CompanyId == _dto.CompanyId).Select(it => it.Id).ToList();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (_dto.GroupPickupUserId > 0)
|
|
|
+ {
|
|
|
+ userIds = userDatas.Where(it => it.Id == _dto.GroupPickupUserId).Select(it => it.Id).ToList();
|
|
|
}
|
|
|
|
|
|
- if (_dto.GroupPickupUserId > 0) userIds.Add(_dto.GroupPickupUserId);
|
|
|
+ userIds = userDatas.Select(it => it.Id).ToList();
|
|
|
|
|
|
if (userIds.Count > 0)
|
|
|
{
|
|
|
userSql = @$" And di.JietuanOperator In ({string.Join(",",userIds)})";
|
|
|
}
|
|
|
|
|
|
+ if (!string.IsNullOrEmpty(_dto.SearchCriteria))
|
|
|
+ {
|
|
|
+ userSql += string.Format(@$" AND di.TeamName Like '%{_dto.SearchCriteria}%'");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
string beginDt = $"{_dto.BeginDt} 00:00:00", endDt = $"{_dto.EndDt} 23:59:59";
|
|
|
|
|
|
- string sql = string.Format(@$"Select
|
|
|
- ROW_NUMBER() Over(Order By CollectionDays) As RowNumber,
|
|
|
- *
|
|
|
-From(
|
|
|
- Select
|
|
|
- di.Id,
|
|
|
- di.TeamName,
|
|
|
- di.ClientUnit,
|
|
|
- di.ClientName,
|
|
|
- di.VisitDate,
|
|
|
- di.VisitPNumber,
|
|
|
- di.JietuanOperator,
|
|
|
- di.VisitEndDate,
|
|
|
- u.CnName As GroupPickupUser,
|
|
|
- DATEADD(DAY, 7, di.VisitEndDate) As CollectionDays
|
|
|
- From Grp_DelegationInfo di With(NoLock)
|
|
|
- Left Join Sys_Users u On di.JietuanOperator = u.Id
|
|
|
- Where di.Isdel = 0 {userSql}
|
|
|
- And VisitDate Between '{beginDt}' And '{endDt}'
|
|
|
-) Temp ");
|
|
|
+ string sql = string.Format(@$"SELECT
|
|
|
+ ROW_NUMBER() OVER (
|
|
|
+ ORDER BY
|
|
|
+ CollectionDays
|
|
|
+ ) AS RowNumber,
|
|
|
+ *
|
|
|
+FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ di.Id,
|
|
|
+ di.TeamName,
|
|
|
+ di.ClientUnit,
|
|
|
+ di.ClientName,
|
|
|
+ di.VisitDate,
|
|
|
+ di.VisitPNumber,
|
|
|
+ di.JietuanOperator,
|
|
|
+ di.VisitEndDate,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ CAST(
|
|
|
+ COALESCE(SUM(ItemSumPrice * Rate), 0) AS DECIMAL(12, 2)
|
|
|
+ ) AS GroupSales
|
|
|
+ FROM
|
|
|
+ Fin_ForeignReceivables
|
|
|
+ WHERE
|
|
|
+ IsDel = 0
|
|
|
+ AND di.Id = Diid
|
|
|
+ AND AddingWay IN (0, 1, 2)
|
|
|
+ ) AS GroupSales,
|
|
|
+ u.CnName AS GroupPickupUser,
|
|
|
+ DATEADD(DAY, 7, di.VisitEndDate) AS CollectionDays
|
|
|
+ FROM
|
|
|
+ Grp_DelegationInfo di
|
|
|
+ WITH
|
|
|
+ (NoLock)
|
|
|
+ LEFT JOIN Sys_Users u ON di.JietuanOperator = u.Id
|
|
|
+ WHERE
|
|
|
+ di.Isdel = 0
|
|
|
+ AND di.IsSure = 1 {userSql}
|
|
|
+ AND VisitDate Between '{beginDt}' And '{endDt}'
|
|
|
+ ) Temp ");
|
|
|
|
|
|
RefAsync<int> total = 0;
|
|
|
var groupData = await _sqlSugar.SqlQueryable<MarketingSalesGroupList>(sql).ToPageListAsync(_dto.PageIndex, _dto.PageSize, total);
|