Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
Education
Commits
20822a95
Commit
20822a95
authored
Apr 19, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/Kui2/education
parents
1db10c5c
26dbb980
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
587 additions
and
1 deletion
+587
-1
RB_Sell_Achievements_Emp_ViewModel.cs
...odel/ViewModel/Sell/RB_Sell_Achievements_Emp_ViewModel.cs
+10
-0
SellAchievementsModule.cs
Edu.Module.Course/SellAchievementsModule.cs
+445
-1
RB_Sell_Achievements_EmpRepository.cs
Edu.Repository/Sell/RB_Sell_Achievements_EmpRepository.cs
+18
-0
SellAchievementsController.cs
Edu.WebApi/Controllers/Course/SellAchievementsController.cs
+114
-0
No files found.
Edu.Model/ViewModel/Sell/RB_Sell_Achievements_Emp_ViewModel.cs
View file @
20822a95
...
...
@@ -19,5 +19,15 @@ namespace Edu.Model.ViewModel.Sell
/// 订单ids
/// </summary>
public
string
OrderIds
{
get
;
set
;
}
/// <summary>
/// 期数
/// </summary>
public
string
Periods
{
get
;
set
;
}
/// <summary>
/// 返佣总金额
/// </summary>
public
decimal
CommissionMoney
{
get
;
set
;
}
}
}
\ No newline at end of file
Edu.Module.Course/SellAchievementsModule.cs
View file @
20822a95
...
...
@@ -618,7 +618,7 @@ namespace Edu.Module.Course
empModel
.
GiveOutMoney
=
(
cHoursMoney
<
0
?
0
:
cHoursMoney
)
+
oldCommission
;
empModel
.
GiveOutState
=
2
;
}
}
}
/// <summary>
/// 获取未发放提成用户列表 + 提成金额
...
...
@@ -2338,5 +2338,449 @@ namespace Edu.Module.Course
return
list
;
}
#
endregion
#
region
业绩统计
/// <summary>
/// 业绩排名统计
/// </summary>
/// <param name="startMonth"></param>
/// <param name="endMonth"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public
object
GetSellAchievementsRankStat
(
string
startMonth
,
string
endMonth
,
int
group_Id
)
{
List
<
string
>
monthList
=
new
List
<
string
>();
DateTime
STime
=
Convert
.
ToDateTime
(
startMonth
+
"-01"
);
DateTime
ETime
=
Convert
.
ToDateTime
(
endMonth
+
"-01"
);
while
(
true
)
{
monthList
.
Add
(
"'"
+
STime
.
ToString
(
"yyyy-MM"
)
+
"'"
);
if
(
STime
==
ETime
)
{
break
;
}
STime
=
STime
.
AddMonths
(
1
);
}
List
<
object
>
RList
=
new
List
<
object
>();
var
list
=
sell_Achievements_EmpRepository
.
GetSellAchievementsRankStat
(
monthList
,
group_Id
);
if
(
list
.
Any
())
{
list
.
Where
(
x
=>
x
.
Type
==
3
).
ToList
().
ForEach
(
x
=>
{
x
.
Type
=
1
;
});
//切换 教师为 市场吧
//首先查询所有的人员信息
string
userIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
EmpId
).
Distinct
());
var
EmpList
=
accountRepository
.
GetEmployeeListRepository
(
new
Employee_ViewModel
()
{
Group_Id
=
group_Id
,
QIds
=
userIds
});
for
(
var
i
=
1
;
i
<=
4
;
i
++)
{
int
type
=
1
,
isDept
=
2
;
switch
(
i
)
{
case
1
:
type
=
1
;
isDept
=
2
;
break
;
//市场
case
2
:
type
=
2
;
isDept
=
2
;
break
;
//顾问
case
3
:
type
=
1
;
isDept
=
1
;
break
;
//市场部门
case
4
:
type
=
2
;
isDept
=
1
;
break
;
//顾问部门
}
if
(
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
).
Any
())
{
foreach
(
var
item
in
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
))
{
var
empModel
=
EmpList
.
Where
(
x
=>
x
.
Id
==
item
.
EmpId
).
FirstOrDefault
();
//遍历月份集合
List
<
decimal
>
AchievementList
=
new
List
<
decimal
>();
List
<
decimal
>
CommissionList
=
new
List
<
decimal
>();
List
<
decimal
>
RateList
=
new
List
<
decimal
>();
List
<
decimal
>
RebateList
=
new
List
<
decimal
>();
decimal
TotalCommission
=
0
;
foreach
(
var
month
in
monthList
)
{
var
mModel
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
&&
x
.
EmpId
==
item
.
EmpId
&&
month
.
Contains
(
x
.
Periods
)).
FirstOrDefault
();
AchievementList
.
Add
(
mModel
?.
SaleMoney
??
0
);
CommissionList
.
Add
(
mModel
?.
PushMoney
??
0
);
RateList
.
Add
(
mModel
?.
Rate
??
0
);
RebateList
.
Add
(
mModel
?.
CommissionMoney
??
0
);
TotalCommission
+=
(
mModel
?.
PushMoney
??
0
);
}
RList
.
Add
(
new
{
EmpId
=
item
.
EmpId
,
DeptName
=
empModel
?.
DeptName
??
""
,
RoleName
=
item
.
Type
==
1
?
"市场"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
)
:
item
.
Type
==
2
?
"顾问"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
)
:
"教师"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
),
EmpName
=
empModel
?.
EmployeeName
??
""
,
AchievementList
,
RateList
,
RebateList
,
CommissionList
,
TotalCommission
});
}
#
region
汇总
List
<
decimal
>
TAchievementList
=
new
List
<
decimal
>();
List
<
decimal
>
TCommissionList
=
new
List
<
decimal
>();
List
<
decimal
>
TRateList
=
new
List
<
decimal
>();
List
<
decimal
>
TRebateList
=
new
List
<
decimal
>();
decimal
TTotalCommission
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
).
Sum
(
x
=>
x
.
PushMoney
);
foreach
(
var
month
in
monthList
)
{
var
clist
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
&&
month
.
Contains
(
x
.
Periods
)).
ToList
();
TAchievementList
.
Add
(
clist
.
Sum
(
x
=>
x
.
SaleMoney
));
TRateList
.
Add
(
clist
.
Sum
(
x
=>
x
.
Rate
));
TRebateList
.
Add
(
clist
.
Sum
(
x
=>
x
.
CommissionMoney
));
TCommissionList
.
Add
(
clist
.
Sum
(
x
=>
x
.
PushMoney
));
}
//增加汇总数据
RList
.
Add
(
new
{
EmpId
=
0
,
DeptName
=
""
,
RoleName
=
"小计"
,
EmpName
=
""
,
AchievementList
=
TAchievementList
,
RateList
=
TRateList
,
RebateList
=
TRebateList
,
CommissionList
=
TCommissionList
,
TotalCommission
=
TTotalCommission
});
#
endregion
}
}
#
region
累计汇总
List
<
decimal
>
T2AchievementList
=
new
List
<
decimal
>();
List
<
decimal
>
T2CommissionList
=
new
List
<
decimal
>();
List
<
decimal
>
T2RateList
=
new
List
<
decimal
>();
List
<
decimal
>
T2RebateList
=
new
List
<
decimal
>();
decimal
T2TotalCommission
=
list
.
Sum
(
x
=>
x
.
PushMoney
);
foreach
(
var
month
in
monthList
)
{
var
clist
=
list
.
Where
(
x
=>
month
.
Contains
(
x
.
Periods
)).
ToList
();
T2AchievementList
.
Add
(
clist
.
Sum
(
x
=>
x
.
SaleMoney
));
T2RateList
.
Add
(
clist
.
Sum
(
x
=>
x
.
Rate
));
T2RebateList
.
Add
(
clist
.
Sum
(
x
=>
x
.
CommissionMoney
));
T2CommissionList
.
Add
(
clist
.
Sum
(
x
=>
x
.
PushMoney
));
}
//增加汇总数据
RList
.
Add
(
new
{
EmpId
=
0
,
DeptName
=
""
,
RoleName
=
"累计汇总"
,
EmpName
=
""
,
AchievementList
=
T2AchievementList
,
RateList
=
T2RateList
,
RebateList
=
T2RebateList
,
CommissionList
=
T2CommissionList
,
TotalCommission
=
T2TotalCommission
});
#
endregion
}
return
RList
;
}
/// <summary>
/// 业绩排名统计——V2
/// </summary>
/// <param name="startMonth"></param>
/// <param name="endMonth"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public
object
GetSellAchievementsRankStat_V2
(
string
startMonth
,
string
endMonth
,
int
group_Id
)
{
List
<
string
>
monthList
=
new
List
<
string
>();
DateTime
STime
=
Convert
.
ToDateTime
(
startMonth
+
"-01"
);
DateTime
ETime
=
Convert
.
ToDateTime
(
endMonth
+
"-01"
);
while
(
true
)
{
monthList
.
Add
(
"'"
+
STime
.
ToString
(
"yyyy-MM"
)
+
"'"
);
if
(
STime
==
ETime
)
{
break
;
}
STime
=
STime
.
AddMonths
(
1
);
}
List
<
object
>
RList
=
new
List
<
object
>();
var
list
=
sell_Achievements_EmpRepository
.
GetSellAchievementsRankStat
(
monthList
,
group_Id
);
if
(
list
.
Any
())
{
list
.
Where
(
x
=>
x
.
Type
==
3
).
ToList
().
ForEach
(
x
=>
{
x
.
Type
=
1
;
});
//切换 教师为 市场吧
//首先查询所有的人员信息
string
userIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
EmpId
).
Distinct
());
var
EmpList
=
accountRepository
.
GetEmployeeListRepository
(
new
Employee_ViewModel
()
{
Group_Id
=
group_Id
,
QIds
=
userIds
});
for
(
var
i
=
1
;
i
<=
4
;
i
++)
{
int
type
=
1
,
isDept
=
2
;
switch
(
i
)
{
case
1
:
type
=
1
;
isDept
=
2
;
break
;
//市场
case
2
:
type
=
2
;
isDept
=
2
;
break
;
//顾问
case
3
:
type
=
1
;
isDept
=
1
;
break
;
//市场部门
case
4
:
type
=
2
;
isDept
=
1
;
break
;
//顾问部门
}
if
(
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
).
Any
())
{
foreach
(
var
item
in
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
))
{
var
empModel
=
EmpList
.
Where
(
x
=>
x
.
Id
==
item
.
EmpId
).
FirstOrDefault
();
//遍历月份集合
List
<
object
>
MonthList
=
new
List
<
object
>();
decimal
TotalCommission
=
0
;
foreach
(
var
month
in
monthList
)
{
var
mModel
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
&&
x
.
EmpId
==
item
.
EmpId
&&
month
.
Contains
(
x
.
Periods
)).
FirstOrDefault
();
MonthList
.
Add
(
new
{
Month
=
month
.
Replace
(
"'"
,
""
),
Achievement
=
mModel
?.
SaleMoney
??
0
,
Rate
=
mModel
?.
CommissionMoney
??
0
,
Rebate
=
mModel
?.
CommissionMoney
??
0
,
Commission
=
mModel
?.
PushMoney
??
0
,
});
TotalCommission
+=
(
mModel
?.
PushMoney
??
0
);
}
RList
.
Add
(
new
{
EmpId
=
item
.
EmpId
,
DeptName
=
empModel
?.
DeptName
??
""
,
RoleName
=
item
.
Type
==
1
?
"市场"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
)
:
item
.
Type
==
2
?
"顾问"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
)
:
"教师"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
),
EmpName
=
empModel
?.
EmployeeName
??
""
,
MonthList
,
TotalCommission
});
}
#
region
汇总
List
<
object
>
TMonthList
=
new
List
<
object
>();
decimal
TTotalCommission
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
).
Sum
(
x
=>
x
.
PushMoney
);
foreach
(
var
month
in
monthList
)
{
var
clist
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
&&
month
.
Contains
(
x
.
Periods
)).
ToList
();
TMonthList
.
Add
(
new
{
Month
=
month
.
Replace
(
"'"
,
""
),
Achievement
=
clist
.
Sum
(
x
=>
x
.
SaleMoney
),
Rate
=
clist
.
Sum
(
x
=>
x
.
Rate
),
Rebate
=
clist
.
Sum
(
x
=>
x
.
CommissionMoney
),
Commission
=
clist
.
Sum
(
x
=>
x
.
PushMoney
),
});
}
//增加汇总数据
RList
.
Add
(
new
{
EmpId
=
0
,
DeptName
=
""
,
RoleName
=
"小计"
,
EmpName
=
""
,
MonthList
=
TMonthList
,
TotalCommission
=
TTotalCommission
});
#
endregion
}
}
#
region
累计汇总
List
<
object
>
T2MonthList
=
new
List
<
object
>();
decimal
T2TotalCommission
=
list
.
Sum
(
x
=>
x
.
PushMoney
);
foreach
(
var
month
in
monthList
)
{
var
clist
=
list
.
Where
(
x
=>
month
.
Contains
(
x
.
Periods
)).
ToList
();
T2MonthList
.
Add
(
new
{
Month
=
month
.
Replace
(
"'"
,
""
),
Achievement
=
clist
.
Sum
(
x
=>
x
.
SaleMoney
),
Rate
=
clist
.
Sum
(
x
=>
x
.
Rate
),
Rebate
=
clist
.
Sum
(
x
=>
x
.
CommissionMoney
),
Commission
=
clist
.
Sum
(
x
=>
x
.
PushMoney
),
});
}
//增加汇总数据
RList
.
Add
(
new
{
EmpId
=
0
,
DeptName
=
""
,
RoleName
=
"累计汇总"
,
EmpName
=
""
,
MonthList
=
T2MonthList
,
TotalCommission
=
T2TotalCommission
});
#
endregion
}
return
RList
;
}
/// <summary>
/// 业绩排名excel导出
/// </summary>
/// <param name="startMonth"></param>
/// <param name="endMonth"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public
List
<
ExcelDataSource
>
GetSellAchievementsRankStatToExcel
(
string
startMonth
,
string
endMonth
,
int
group_Id
)
{
List
<
string
>
monthList
=
new
List
<
string
>();
List
<
string
>
MList
=
new
List
<
string
>();
DateTime
STime
=
Convert
.
ToDateTime
(
startMonth
+
"-01"
);
DateTime
ETime
=
Convert
.
ToDateTime
(
endMonth
+
"-01"
);
while
(
true
)
{
monthList
.
Add
(
"'"
+
STime
.
ToString
(
"yyyy-MM"
)
+
"'"
);
MList
.
Add
(
STime
.
ToString
(
"yyyy-MM"
));
if
(
STime
==
ETime
)
{
break
;
}
STime
=
STime
.
AddMonths
(
1
);
}
List
<
ExcelDataSource
>
RList
=
new
List
<
ExcelDataSource
>();
#
region
组装头部
ExcelDataSource
header
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
"部门"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
,
Rowspan
=
2
},
new
ExcelColumn
(
value
:
"角色"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
,
Rowspan
=
2
},
new
ExcelColumn
(
value
:
"人员"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
,
Rowspan
=
2
},
}
};
foreach
(
var
item
in
MList
)
{
header
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
Convert
.
ToDateTime
(
item
).
ToString
(
"MM"
)
+
"月"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
,
Colspan
=
4
});
}
header
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
"提成合计"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
,
Rowspan
=
2
});
RList
.
Add
(
header
);
ExcelDataSource
header2
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
""
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
""
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
""
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
}
};
foreach
(
var
item
in
MList
)
{
header2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
"业绩"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
});
header2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
"比例"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
});
header2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
"返佣"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
});
header2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
"提成"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
});
}
header2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
""
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
});
RList
.
Add
(
header2
);
#
endregion
#
region
数据拼接
var
list
=
sell_Achievements_EmpRepository
.
GetSellAchievementsRankStat
(
monthList
,
group_Id
);
if
(
list
.
Any
())
{
list
.
Where
(
x
=>
x
.
Type
==
3
).
ToList
().
ForEach
(
x
=>
{
x
.
Type
=
1
;
});
//切换 教师为 市场吧
//首先查询所有的人员信息
string
userIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
EmpId
).
Distinct
());
var
EmpList
=
accountRepository
.
GetEmployeeListRepository
(
new
Employee_ViewModel
()
{
Group_Id
=
group_Id
,
QIds
=
userIds
});
for
(
var
i
=
1
;
i
<=
4
;
i
++)
{
int
type
=
1
,
isDept
=
2
;
switch
(
i
)
{
case
1
:
type
=
1
;
isDept
=
2
;
break
;
//市场
case
2
:
type
=
2
;
isDept
=
2
;
break
;
//顾问
case
3
:
type
=
1
;
isDept
=
1
;
break
;
//市场部门
case
4
:
type
=
2
;
isDept
=
1
;
break
;
//顾问部门
}
if
(
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
).
Any
())
{
foreach
(
var
item
in
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
))
{
var
empModel
=
EmpList
.
Where
(
x
=>
x
.
Id
==
item
.
EmpId
).
FirstOrDefault
();
ExcelDataSource
datarow
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
empModel
?.
DeptName
??
""
)
{
},
new
ExcelColumn
(
value
:
item
.
Type
==
1
?
"市场"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
)
:
item
.
Type
==
2
?
"顾问"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
)
:
"教师"
+
(
item
.
IsDept
==
1
?
"/部门"
:
""
))
{
},
new
ExcelColumn
(
value
:
empModel
?.
EmployeeName
??
""
)
{
},
}
};
//遍历月份集合
decimal
TotalCommission
=
0
;
foreach
(
var
month
in
monthList
)
{
var
mModel
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
&&
x
.
EmpId
==
item
.
EmpId
&&
month
.
Contains
(
x
.
Periods
)).
FirstOrDefault
();
TotalCommission
+=
(
mModel
?.
PushMoney
??
0
);
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
mModel
?.
SaleMoney
??
0
).
ToString
(
"#0.00"
))
{
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
mModel
?.
Rate
??
0
).
ToString
(
"#0.00"
)
+
"%"
)
{
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
mModel
?.
CommissionMoney
??
0
).
ToString
(
"#0.00"
))
{
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
mModel
?.
PushMoney
??
0
).
ToString
(
"#0.00"
))
{
});
}
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
TotalCommission
.
ToString
(
"#0.00"
))
{
});
RList
.
Add
(
datarow
);
}
#
region
汇总
ExcelDataSource
datarowT
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
""
)
{
},
new
ExcelColumn
(
value
:
"小计"
)
{
},
new
ExcelColumn
(
value
:
""
)
{
},
}
};
decimal
TTotalCommission
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
).
Sum
(
x
=>
x
.
PushMoney
);
foreach
(
var
month
in
monthList
)
{
var
clist
=
list
.
Where
(
x
=>
x
.
Type
==
type
&&
x
.
IsDept
==
isDept
&&
month
.
Contains
(
x
.
Periods
)).
ToList
();
datarowT
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
clist
.
Sum
(
x
=>
x
.
SaleMoney
)).
ToString
(
"#0.00"
))
{
});
datarowT
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
""
)
{
});
datarowT
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
clist
.
Sum
(
x
=>
x
.
CommissionMoney
)).
ToString
(
"#0.00"
))
{
});
datarowT
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
clist
.
Sum
(
x
=>
x
.
PushMoney
)).
ToString
(
"#0.00"
))
{
});
}
datarowT
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
TTotalCommission
.
ToString
(
"#0.00"
))
{
});
//增加汇总数据
RList
.
Add
(
datarowT
);
#
endregion
//增加一行空白
ExcelDataSource
datarowB
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
""
)
{
Colspan
=
(
monthList
.
Count
()
+
1
)*
4
},
}
};
}
}
#
region
累计汇总
ExcelDataSource
datarowT2
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
""
)
{
},
new
ExcelColumn
(
value
:
"累计汇总"
)
{
},
new
ExcelColumn
(
value
:
""
)
{
},
}
};
List
<
decimal
>
T2AchievementList
=
new
List
<
decimal
>();
List
<
decimal
>
T2CommissionList
=
new
List
<
decimal
>();
List
<
decimal
>
T2RateList
=
new
List
<
decimal
>();
List
<
decimal
>
T2RebateList
=
new
List
<
decimal
>();
decimal
T2TotalCommission
=
list
.
Sum
(
x
=>
x
.
PushMoney
);
foreach
(
var
month
in
monthList
)
{
var
clist
=
list
.
Where
(
x
=>
month
.
Contains
(
x
.
Periods
)).
ToList
();
datarowT2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
clist
.
Sum
(
x
=>
x
.
SaleMoney
)).
ToString
(
"#0.00"
))
{
});
datarowT2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
""
)
{
});
datarowT2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
clist
.
Sum
(
x
=>
x
.
CommissionMoney
)).
ToString
(
"#0.00"
))
{
});
datarowT2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
clist
.
Sum
(
x
=>
x
.
PushMoney
)).
ToString
(
"#0.00"
))
{
});
}
datarowT2
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
T2TotalCommission
.
ToString
(
"#0.00"
))
{
});
//增加汇总数据
RList
.
Add
(
datarowT2
);
#
endregion
}
#
endregion
return
null
;
}
#
endregion
}
}
Edu.Repository/Sell/RB_Sell_Achievements_EmpRepository.cs
View file @
20822a95
...
...
@@ -161,5 +161,23 @@ GROUP BY g.RenewState";
string
sql
=
$@"SELECT SUM(PushMoney) as PushMoney,SUM(GiveOutMoney) as GiveOutMoney FROM rb_sell_achievements_emp WHERE Group_Id =
{
group_Id
}
and EmpId =
{
empId
}
and IsDept =2"
;
return
Get
<
RB_Sell_Achievements_Emp_ViewModel
>(
sql
).
FirstOrDefault
();
}
/// <summary>
/// 获取业绩排名统计
/// </summary>
/// <param name="monthList"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public
List
<
RB_Sell_Achievements_Emp_ViewModel
>
GetSellAchievementsRankStat
(
List
<
string
>
monthList
,
int
group_Id
)
{
string
sql
=
$@"SELECT e.Type,e.EmpId,e.Rate,e.IsDept,p.Periods,SUM(e.PushMoney) as PushMoney,Max(e.SaleMoney) as SaleMoney,
SUM(e.OrderSaleMoney) as OrderSaleMoney,SUM(o.PreferPrice - o.DiscountMoney - e.OrderSaleMoney) as CommissionMoney
FROM rb_sell_achievements_emp e
INNER JOIN rb_sell_achievements_periods p on e.PeriodsId = p.Id
INNER JOIN rb_order o on e.OrderId = o.OrderId
WHERE e.Group_Id =
{
group_Id
}
and p.Periods in(
{
string
.
Join
(
","
,
monthList
)}
)
GROUP BY e.Type,e.EmpId,e.Rate,e.IsDept,p.Periods"
;
return
Get
<
RB_Sell_Achievements_Emp_ViewModel
>(
sql
).
ToList
();
}
}
}
Edu.WebApi/Controllers/Course/SellAchievementsController.cs
View file @
20822a95
...
...
@@ -661,5 +661,119 @@ namespace Edu.WebApi.Controllers.Course
return
ApiResult
.
Success
(
""
,
pmodel
);
}
#
endregion
#
region
提成统计
/// <summary>
/// 获取业绩排名统计
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetSellAchievementsRankStat
()
{
string
StartMonth
=
ParmJObj
.
GetStringValue
(
"StartMonth"
);
string
EndMonth
=
ParmJObj
.
GetStringValue
(
"EndMonth"
);
if
(
string
.
IsNullOrEmpty
(
StartMonth
)
||
string
.
IsNullOrEmpty
(
EndMonth
))
{
return
ApiResult
.
ParamIsNull
();
}
try
{
StartMonth
=
Convert
.
ToDateTime
(
StartMonth
).
ToString
(
"yyyy-MM"
);
EndMonth
=
Convert
.
ToDateTime
(
EndMonth
).
ToString
(
"yyyy-MM"
);
}
catch
(
Exception
)
{
return
ApiResult
.
Failed
(
"日期格式有误"
);
}
if
(
Convert
.
ToDateTime
(
StartMonth
)
>
Convert
.
ToDateTime
(
EndMonth
))
{
return
ApiResult
.
Failed
(
"开始日期不能大于结束日期"
);
}
var
list
=
sellAchievementsModule
.
GetSellAchievementsRankStat
(
StartMonth
,
EndMonth
,
UserInfo
.
Group_Id
);
return
ApiResult
.
Success
(
""
,
list
);
}
/// <summary>
/// 获取业绩排名统计_V2
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetSellAchievementsRankStat_V2
()
{
string
StartMonth
=
ParmJObj
.
GetStringValue
(
"StartMonth"
);
string
EndMonth
=
ParmJObj
.
GetStringValue
(
"EndMonth"
);
if
(
string
.
IsNullOrEmpty
(
StartMonth
)
||
string
.
IsNullOrEmpty
(
EndMonth
))
{
return
ApiResult
.
ParamIsNull
();
}
try
{
StartMonth
=
Convert
.
ToDateTime
(
StartMonth
).
ToString
(
"yyyy-MM"
);
EndMonth
=
Convert
.
ToDateTime
(
EndMonth
).
ToString
(
"yyyy-MM"
);
}
catch
(
Exception
)
{
return
ApiResult
.
Failed
(
"日期格式有误"
);
}
if
(
Convert
.
ToDateTime
(
StartMonth
)
>
Convert
.
ToDateTime
(
EndMonth
))
{
return
ApiResult
.
Failed
(
"开始日期不能大于结束日期"
);
}
var
list
=
sellAchievementsModule
.
GetSellAchievementsRankStat_V2
(
StartMonth
,
EndMonth
,
UserInfo
.
Group_Id
);
return
ApiResult
.
Success
(
""
,
list
);
}
/// <summary>
/// 导出业绩排名统计 Excel
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Obsolete
]
public
FileContentResult
GetSellAchievementsRankStatToExcel
()
{
string
ExcelName
=
"业绩排名"
+
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmss"
)
+
".xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
string
StartMonth
=
ParmJObj
.
GetStringValue
(
"StartMonth"
);
string
EndMonth
=
ParmJObj
.
GetStringValue
(
"EndMonth"
);
if
(
string
.
IsNullOrEmpty
(
StartMonth
)
||
string
.
IsNullOrEmpty
(
EndMonth
))
{
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
ExcelName
);
}
try
{
StartMonth
=
Convert
.
ToDateTime
(
StartMonth
).
ToString
(
"yyyy-MM"
);
EndMonth
=
Convert
.
ToDateTime
(
EndMonth
).
ToString
(
"yyyy-MM"
);
}
catch
(
Exception
)
{
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
ExcelName
);
}
if
(
Convert
.
ToDateTime
(
StartMonth
)
>
Convert
.
ToDateTime
(
EndMonth
))
{
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
ExcelName
);
}
try
{
List
<
ExcelDataSource
>
list
=
sellAchievementsModule
.
GetSellAchievementsRankStatToExcel
(
StartMonth
,
EndMonth
,
UserInfo
.
Group_Id
);
slist
.
AddRange
(
list
);
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
ExcelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
string
.
Format
(
"GetTeachingBonusDetailToExcel: {0}"
,
JsonHelper
.
Serialize
(
RequestParm
)));
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
ExcelName
);
}
}
#
endregion
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment