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
90002721
Commit
90002721
authored
Apr 19, 2022
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
245c8818
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 @
90002721
...
...
@@ -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 @
90002721
...
...
@@ -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 @
90002721
...
...
@@ -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 @
90002721
...
...
@@ -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