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
fe27f18f
Commit
fe27f18f
authored
Oct 08, 2023
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
96102e51
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
762 additions
and
10 deletions
+762
-10
QuarzHelper.cs
Edu.EducationCore/Helper/QuarzHelper.cs
+3
-0
RB_Report_UpdateRecord.cs
Edu.Model/Entity/DataStatistics/RB_Report_UpdateRecord.cs
+1
-1
RB_SimpleReport.cs
Edu.Model/Entity/DataStatistics/RB_SimpleReport.cs
+5
-0
FinanceModule.cs
Edu.Module.Finance/FinanceModule.cs
+746
-3
RB_SimpleReportRepository.cs
Edu.Repository/DataStatistics/RB_SimpleReportRepository.cs
+3
-2
FinanceController.cs
Edu.WebApi/Controllers/Finance/FinanceController.cs
+3
-3
appsettings.json
Edu.WebApi/appsettings.json
+1
-1
No files found.
Edu.EducationCore/Helper/QuarzHelper.cs
View file @
fe27f18f
...
...
@@ -544,6 +544,9 @@ namespace Edu.Education.Helper
//financeModule.InsertBatchSimple_V2(100000, 2020);
financeModule
.
InsertBatchSimple_V2
(
100000
,
DateTime
.
Now
.
Year
);
financeModule
.
InsertBatchSimple_V2
(
100000
,
DateTime
.
Now
.
Year
-
1
);
financeModule
.
InsertBatchSimple_V3
(
100000
,
DateTime
.
Now
.
Year
);
financeModule
.
InsertBatchSimple_V3
(
100000
,
DateTime
.
Now
.
Year
-
1
);
Console
.
WriteLine
(
"结束执行简易报表...."
);
LogHelper
.
Write
(
"结束执行简易报表...."
);
}
...
...
Edu.Model/Entity/DataStatistics/RB_Report_UpdateRecord.cs
View file @
fe27f18f
...
...
@@ -19,7 +19,7 @@ namespace Edu.Model.Entity.Finance
set
;
}
/// <summary>
/// 1 团队营收 2 简易报表
/// 1 团队营收 2 简易报表
3 新版简易报表
/// </summary>
public
int
Type
{
...
...
Edu.Model/Entity/DataStatistics/RB_SimpleReport.cs
View file @
fe27f18f
...
...
@@ -213,5 +213,10 @@ namespace Edu.Model.Entity.Finance
/// 费用类型
/// </summary>
public
string
CostTypeIds
{
get
;
set
;
}
/// <summary>
/// 报表类型 0正常 1新版报表 (教育使用)
/// </summary>
public
int
ExpectedType
{
get
;
set
;
}
}
}
Edu.Module.Finance/FinanceModule.cs
View file @
fe27f18f
...
...
@@ -661,9 +661,9 @@ namespace Edu.Module.Finance
/// 获取最新记录
/// </summary>
/// <returns></returns>
public
RB_Report_UpdateRecord
GetUpdateRecordNew
()
public
RB_Report_UpdateRecord
GetUpdateRecordNew
(
int
Type
=
1
)
{
return
edu_UpdateRecordRepository
.
GetList
(
new
RB_Report_UpdateRecord
()
{
Type
=
1
}).
FirstOrDefault
();
return
edu_UpdateRecordRepository
.
GetList
(
new
RB_Report_UpdateRecord
()
{
Type
=
Type
}).
FirstOrDefault
();
}
/// <summary>
...
...
@@ -1934,6 +1934,749 @@ namespace Edu.Module.Finance
return
true
;
}
/// <summary>
/// 新版本更新简易报表(全部按科目统计)
/// </summary>
/// <param name="GroupId"></param>
/// <param name="Year"></param>
/// <returns></returns>
public
bool
InsertBatchSimple_V3
(
int
GroupId
,
int
Year
)
{
edu_UpdateRecordRepository
.
Insert
(
new
RB_Report_UpdateRecord
()
{
Type
=
3
,
StartDate
=
DateTime
.
Now
});
try
{
string
sDate
=
Year
+
"-01-01"
;
string
eDate
=
DateTime
.
Now
.
AddYears
(
1
).
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
#
region
查询费用
var
ctList
=
costtypeRepository
.
GetList
(
new
RB_Costtype_Extend
()
{
RB_Group_Id
=
GroupId
});
//查询出分组的费用
List
<
int
>
groupList
=
ctList
.
Where
(
x
=>
x
.
ReportType
>
0
||
(
x
.
ReportType
==
0
&&
x
.
ParentId
==
0
)).
Select
(
x
=>
x
.
ID
).
ToList
();
//再查询出该下面 所有最下级的费用 需是进入报表统计的
List
<
ReportGroupModel
>
RGList
=
new
List
<
ReportGroupModel
>();
foreach
(
var
item
in
groupList
)
{
var
nmodel
=
ctList
.
Where
(
x
=>
x
.
ID
==
item
).
FirstOrDefault
();
ReportGroupModel
rgModel
=
new
ReportGroupModel
()
{
CostTypeId
=
item
,
Name
=
nmodel
.
Name
,
ReportType
=
nmodel
.
ReportType
,
IncomeType
=
nmodel
.
Name
.
Contains
(
"收入"
)
?
1
:
2
,
Sort
=
nmodel
.
Sort
??
0
,
ChildList
=
new
List
<
ReportChildModel
>()
};
var
qlist
=
ctList
.
Where
(
x
=>
x
.
Is_Report
==
1
&&
x
.
ParentId
==
item
).
ToList
();
foreach
(
var
qitem
in
qlist
)
{
var
qctList
=
ctList
.
Where
(
x
=>
x
.
Is_Report
==
1
&&
x
.
ParentId
==
qitem
.
ID
).
ToList
();
if
(
qctList
.
Any
())
{
rgModel
.
ChildList
.
AddRange
(
qctList
.
Select
(
x
=>
new
ReportChildModel
()
{
CostTypeId
=
x
.
ID
,
Name
=
x
.
Name
,
Sort
=
x
.
Sort
??
0
}));
}
else
{
rgModel
.
ChildList
.
Add
(
new
ReportChildModel
()
{
CostTypeId
=
qitem
.
ID
,
Name
=
qitem
.
Name
,
Sort
=
qitem
.
Sort
??
0
});
}
}
RGList
.
Add
(
rgModel
);
}
#
endregion
//财务单据
var
RZFinancelist
=
RB_FinanceRepository
.
GetListForReport
(
new
RB_Finance_Extend
()
{
sAduitDate
=
DateTime
.
Parse
(
sDate
),
eAduitDate
=
DateTime
.
Now
.
AddYears
(
1
).
AddDays
(-
1
),
RB_Branch_Id
=
-
1
,
RB_Group_Id
=
GroupId
,
FinanceType
=
2
});
//获取资金调拨单据
var
CapitalAllocationFinanceList
=
RB_FinanceRepository
.
GetTradeWayForCapitalAllocation
(
new
RB_Finance_Extend
()
{
sAduitDate
=
DateTime
.
Parse
(
sDate
),
eAduitDate
=
DateTime
.
Now
.
AddYears
(
1
).
AddDays
(-
1
),
RB_Branch_Id
=
-
1
,
RB_Group_Id
=
GroupId
,
Is_TCID
=
1
,
TCID
=
-
1
});
//查询校区
var
schoolList
=
schoolRepository
.
GetSchoolListRepository
(
new
Model
.
ViewModel
.
User
.
RB_School_ViewModel
()
{
Group_Id
=
GroupId
});
List
<
string
>
shareList
=
new
List
<
string
>()
{
"01"
,
"02"
,
"03"
,
"04"
,
"05"
,
"06"
,
"07"
,
"08"
,
"09"
,
"10"
,
"11"
,
"12"
};
List
<
RB_SimpleReport
>
AllSchoolReportList
=
new
List
<
RB_SimpleReport
>();
foreach
(
var
branchitem
in
schoolList
)
{
Console
.
WriteLine
(
"校区:"
+
branchitem
.
SName
);
List
<
RB_SimpleReport
>
SchoolReportList
=
new
List
<
RB_SimpleReport
>();
#
region
班级统计
RB_SimpleReport
IncomeReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"展示课耗收入"
,
Rb_Group_Id
=
GroupId
,
Sort
=
1
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
//以下作废
RB_SimpleReport
OtherIncomeReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"其他收入"
,
Rb_Group_Id
=
GroupId
,
Sort
=
2
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
RB_SimpleReport
BonusReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"课时费"
,
Rb_Group_Id
=
GroupId
,
Sort
=
3
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
RB_SimpleReport
PerfReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"返佣"
,
Rb_Group_Id
=
GroupId
,
Sort
=
4
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
RB_SimpleReport
SellReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"销售提成"
,
Rb_Group_Id
=
GroupId
,
Sort
=
5
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
RB_SimpleReport
PeopleReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"人头奖励"
,
Rb_Group_Id
=
GroupId
,
Sort
=
5
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
RB_SimpleReport
OtherCostReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"其他成本"
,
Rb_Group_Id
=
GroupId
,
Sort
=
6
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
RB_SimpleReport
TotalReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"营业总毛利"
,
Rb_Group_Id
=
GroupId
,
Sort
=
7
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
foreach
(
var
month
in
shareList
)
{
string
startTime
=
Year
+
"-"
+
month
+
"-01"
;
string
endTime
=
Convert
.
ToDateTime
(
Year
+
"-"
+
month
+
"-01"
).
AddMonths
(
1
).
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
#
region
最新班级
//查询课耗
//根据学生签到表 查询
var
stulist
=
class_CheckRepository
.
GetStudentConsumptionHoursDetialList
(
0
,
branchitem
.
SId
,
0
,
startTime
,
endTime
,
""
,
0
,
""
,
GroupId
);
decimal
StuKHMoney
=
stulist
.
Sum
(
x
=>
Math
.
Round
(
x
.
UnitPrice
*
x
.
CurrentDeductionHours
,
6
,
MidpointRounding
.
AwayFromZero
));
//课时费 提成 书本费收入(OtherIncome)
//查询课时费
decimal
WBonusMoney
=
0
;
//查询业绩提成
decimal
sellCommission
=
0
;
decimal
SellMoney
=
0
;
//销售提成
sellCommission
+=
SellMoney
;
//查询返佣
decimal
ReturnMoney
=
0
;
//查询书本费收入 暂存 1159 = 书本费科目
//当月的财务单据
decimal
bookIncome
=
0
;
#
region
单据
decimal
OtherIncome
=
0
;
decimal
Fee
=
0
;
OtherIncome
-=
Fee
;
decimal
OtherCost
=
0
;
//支出也要排除订单订单退款
bookIncome
+=
OtherIncome
;
#
endregion
//查询人头奖励
decimal
PeopleBonus
=
0
;
UpdateClassReportDate
(
TotalReport
,
IncomeReport
,
OtherIncomeReport
,
BonusReport
,
PerfReport
,
SellReport
,
PeopleReport
,
OtherCostReport
,
month
,
StuKHMoney
,
WBonusMoney
,
ReturnMoney
,
sellCommission
,
bookIncome
,
OtherCost
,
PeopleBonus
);
#
endregion
}
Console
.
WriteLine
(
"班级OK"
);
#
endregion
#
region
主营业务
var
ZYList
=
RGList
.
Where
(
x
=>
x
.
ReportType
==
0
).
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
).
ToList
();
List
<
RB_SimpleReport
>
ZYReport
=
new
List
<
RB_SimpleReport
>();
//初始赋值营业总毛利
RB_SimpleReport
zTotalReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"营业总毛利"
,
Rb_Group_Id
=
GroupId
,
Sort
=
0
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
,
};
//管销费用
int
i
=
2
;
foreach
(
var
gitem
in
ZYList
)
{
RB_SimpleReport
groupReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
gitem
.
Name
+
"小计"
,
Rb_Group_Id
=
GroupId
,
Sort
=
0
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
string
.
Join
(
","
,
gitem
.
ChildList
.
Select
(
x
=>
x
.
CostTypeId
))
};
foreach
(
var
qitem
in
gitem
.
ChildList
.
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
))
{
//子集具体费用
RB_SimpleReport
fReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
qitem
.
Name
,
Rb_Group_Id
=
GroupId
,
Sort
=
i
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
qitem
.
CostTypeId
.
ToString
()
};
foreach
(
var
month
in
shareList
)
{
sDate
=
Convert
.
ToDateTime
(
Year
+
"-"
+
month
+
"-01"
).
ToString
(
"yyyy-MM-dd"
);
eDate
=
DateTime
.
Parse
((
Year
+
"-"
+
month
+
"-01"
)).
AddMonths
(
1
).
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
decimal
FYMoney
=
0
;
#
region
日常费用
//当月的财务单据
var
Financelist
=
RZFinancelist
.
Where
(
x
=>
x
.
CostTypeId
==
qitem
.
CostTypeId
&&
((
x
.
Type
==
WFTempLateClassEnum
.
OUT
&&
x
.
CreateDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
))
||
(
x
.
Type
!=
WFTempLateClassEnum
.
OUT
&&
x
.
TradeDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)))
&&
x
.
RB_Branch_Id
==
branchitem
.
SId
).
ToList
();
//获取收入和支出
var
cfinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
IN
).
ToList
();
decimal
ShouRu
=
cfinanceList
.
Where
(
y
=>
y
.
Is_Cashier
==
1
).
Sum
(
x
=>
x
.
Money
??
0
);
ShouRu
-=
cfinanceList
.
Where
(
x
=>
x
.
Is_Cashier
==
1
&&
x
.
Fee
>
0
).
GroupBy
(
x
=>
new
{
x
.
FrID
,
x
.
Fee
}).
Sum
(
x
=>
x
.
Key
.
Fee
??
0
);
//支出
var
ofinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
OUT
).
ToList
();
decimal
ZhiChu
=
ofinanceList
.
Sum
(
x
=>
x
.
Money
??
0
);
if
(
gitem
.
IncomeType
==
2
)
{
FYMoney
=
ZhiChu
-
ShouRu
;
}
else
{
FYMoney
=
ShouRu
-
ZhiChu
;
}
#
endregion
#
region
预付款处理
if
(
qitem
.
Name
.
Contains
(
"预付"
))
{
//预付款 冲抵
var
MatchList
=
Financelist
.
Where
(
x
=>
x
.
MatchMoney
>
0
).
ToList
();
if
(
MatchList
.
Any
())
{
//减去冲抵的金额
var
newFList
=
MatchList
.
Select
(
x
=>
x
.
FrID
).
Distinct
().
ToList
();
decimal
DelMoney
=
0
;
foreach
(
var
item
in
newFList
)
{
DelMoney
+=
MatchList
.
Where
(
x
=>
x
.
FrID
==
item
).
FirstOrDefault
()?.
MatchMoney
??
0
;
}
FYMoney
-=
DelMoney
;
}
}
#
endregion
#
region
资金调拨汇兑损益
if
(
qitem
.
Name
==
"汇兑损益"
)
{
var
calist
=
CapitalAllocationFinanceList
.
Where
(
x
=>
x
.
AllotDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)
&&
x
.
BranchId
==
branchitem
.
SId
).
ToList
();
//资金调拨的汇兑损益
decimal
iMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
1
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
decimal
oMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
2
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
FYMoney
+=
oMoney
-
iMoney
;
}
#
endregion
switch
(
month
)
{
case
"01"
:
fReport
.
January
=
FYMoney
;
groupReport
.
January
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
January
+=
FYMoney
;
else
zTotalReport
.
January
-=
FYMoney
;
break
;
case
"02"
:
fReport
.
February
=
FYMoney
;
groupReport
.
February
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
February
+=
FYMoney
;
else
zTotalReport
.
February
-=
FYMoney
;
break
;
case
"03"
:
fReport
.
March
=
FYMoney
;
groupReport
.
March
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
March
+=
FYMoney
;
else
zTotalReport
.
March
-=
FYMoney
;
break
;
case
"04"
:
fReport
.
April
=
FYMoney
;
groupReport
.
April
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
April
+=
FYMoney
;
else
zTotalReport
.
April
-=
FYMoney
;
break
;
case
"05"
:
fReport
.
May
=
FYMoney
;
groupReport
.
May
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
May
+=
FYMoney
;
else
zTotalReport
.
May
-=
FYMoney
;
break
;
case
"06"
:
fReport
.
June
=
FYMoney
;
groupReport
.
June
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
June
+=
FYMoney
;
else
zTotalReport
.
June
-=
FYMoney
;
break
;
case
"07"
:
fReport
.
July
=
FYMoney
;
groupReport
.
July
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
July
+=
FYMoney
;
else
zTotalReport
.
July
-=
FYMoney
;
break
;
case
"08"
:
fReport
.
August
=
FYMoney
;
groupReport
.
August
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
August
+=
FYMoney
;
else
zTotalReport
.
August
-=
FYMoney
;
break
;
case
"09"
:
fReport
.
September
=
FYMoney
;
groupReport
.
September
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
September
+=
FYMoney
;
else
zTotalReport
.
September
-=
FYMoney
;
break
;
case
"10"
:
fReport
.
October
=
FYMoney
;
groupReport
.
October
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
October
+=
FYMoney
;
else
zTotalReport
.
October
-=
FYMoney
;
break
;
case
"11"
:
fReport
.
November
=
FYMoney
;
groupReport
.
November
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
November
+=
FYMoney
;
else
zTotalReport
.
November
-=
FYMoney
;
break
;
case
"12"
:
fReport
.
December
=
FYMoney
;
groupReport
.
December
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
zTotalReport
.
December
+=
FYMoney
;
else
zTotalReport
.
December
-=
FYMoney
;
break
;
}
}
i
++;
ZYReport
.
Add
(
fReport
);
}
groupReport
.
Sort
=
i
;
i
++;
ZYReport
.
Add
(
groupReport
);
}
zTotalReport
.
Sort
=
i
;
i
++;
ZYReport
.
Add
(
zTotalReport
);
Console
.
WriteLine
(
"主营业务OK"
);
#
endregion
#
region
费用模块
var
FYList
=
RGList
.
Where
(
x
=>
x
.
ReportType
==
1
).
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
).
ToList
();
List
<
RB_SimpleReport
>
FYReport
=
new
List
<
RB_SimpleReport
>();
//初始赋值营业总毛利
RB_SimpleReport
fTotalReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"营业利润(亏损)"
,
Rb_Group_Id
=
GroupId
,
Sort
=
0
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
,
April
=
zTotalReport
.
April
,
August
=
zTotalReport
.
August
,
December
=
zTotalReport
.
December
,
February
=
zTotalReport
.
February
,
FirstQuarter
=
zTotalReport
.
FourthQuarter
,
FourthQuarter
=
zTotalReport
.
FourthQuarter
,
HalfReport
=
zTotalReport
.
HalfReport
,
January
=
zTotalReport
.
January
,
July
=
zTotalReport
.
July
,
June
=
zTotalReport
.
June
,
LastHalfReport
=
zTotalReport
.
LastHalfReport
,
March
=
zTotalReport
.
March
,
May
=
zTotalReport
.
May
,
November
=
zTotalReport
.
November
,
October
=
zTotalReport
.
October
,
SecondQuarter
=
zTotalReport
.
SecondQuarter
,
September
=
zTotalReport
.
September
,
ThirdQuarter
=
zTotalReport
.
ThirdQuarter
,
Total
=
zTotalReport
.
Total
};
//管销费用
foreach
(
var
gitem
in
FYList
)
{
RB_SimpleReport
groupReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
gitem
.
Name
+
"小计"
,
Rb_Group_Id
=
GroupId
,
Sort
=
0
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
string
.
Join
(
","
,
gitem
.
ChildList
.
Select
(
x
=>
x
.
CostTypeId
))
};
foreach
(
var
qitem
in
gitem
.
ChildList
.
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
))
{
//子集具体费用
RB_SimpleReport
fReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
qitem
.
Name
,
Rb_Group_Id
=
GroupId
,
Sort
=
i
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
qitem
.
CostTypeId
.
ToString
()
};
foreach
(
var
month
in
shareList
)
{
sDate
=
Convert
.
ToDateTime
(
Year
+
"-"
+
month
+
"-01"
).
ToString
(
"yyyy-MM-dd"
);
eDate
=
DateTime
.
Parse
((
Year
+
"-"
+
month
+
"-01"
)).
AddMonths
(
1
).
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
decimal
FYMoney
=
0
;
#
region
日常费用
//当月的财务单据
var
Financelist
=
RZFinancelist
.
Where
(
x
=>
x
.
CostTypeId
==
qitem
.
CostTypeId
&&
((
x
.
Type
==
WFTempLateClassEnum
.
OUT
&&
x
.
CreateDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
))
||
(
x
.
Type
!=
WFTempLateClassEnum
.
OUT
&&
x
.
TradeDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)))
&&
x
.
RB_Branch_Id
==
branchitem
.
SId
).
ToList
();
//获取收入和支出
var
cfinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
IN
).
ToList
();
decimal
ShouRu
=
cfinanceList
.
Where
(
y
=>
y
.
Is_Cashier
==
1
).
Sum
(
x
=>
x
.
Money
??
0
);
ShouRu
-=
cfinanceList
.
Where
(
x
=>
x
.
Is_Cashier
==
1
&&
x
.
Fee
>
0
).
GroupBy
(
x
=>
new
{
x
.
FrID
,
x
.
Fee
}).
Sum
(
x
=>
x
.
Key
.
Fee
??
0
);
//支出
var
ofinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
OUT
).
ToList
();
decimal
ZhiChu
=
ofinanceList
.
Sum
(
x
=>
x
.
Money
??
0
);
if
(
gitem
.
IncomeType
==
2
)
{
FYMoney
=
ZhiChu
-
ShouRu
;
}
else
{
FYMoney
=
ShouRu
-
ZhiChu
;
}
#
endregion
#
region
预付款处理
if
(
qitem
.
Name
.
Contains
(
"预付"
))
{
//预付款 冲抵
var
MatchList
=
Financelist
.
Where
(
x
=>
x
.
MatchMoney
>
0
).
ToList
();
if
(
MatchList
.
Any
())
{
//减去冲抵的金额
var
newFList
=
MatchList
.
Select
(
x
=>
x
.
FrID
).
Distinct
().
ToList
();
decimal
DelMoney
=
0
;
foreach
(
var
item
in
newFList
)
{
DelMoney
+=
MatchList
.
Where
(
x
=>
x
.
FrID
==
item
).
FirstOrDefault
()?.
MatchMoney
??
0
;
}
FYMoney
-=
DelMoney
;
}
}
#
endregion
#
region
资金调拨汇兑损益
if
(
qitem
.
Name
==
"汇兑损益"
)
{
var
calist
=
CapitalAllocationFinanceList
.
Where
(
x
=>
x
.
AllotDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)
&&
x
.
BranchId
==
branchitem
.
SId
).
ToList
();
//资金调拨的汇兑损益
decimal
iMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
1
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
decimal
oMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
2
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
FYMoney
+=
oMoney
-
iMoney
;
}
#
endregion
switch
(
month
)
{
case
"01"
:
fReport
.
January
=
FYMoney
;
groupReport
.
January
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
January
+=
FYMoney
;
else
fTotalReport
.
January
-=
FYMoney
;
break
;
case
"02"
:
fReport
.
February
=
FYMoney
;
groupReport
.
February
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
February
+=
FYMoney
;
else
fTotalReport
.
February
-=
FYMoney
;
break
;
case
"03"
:
fReport
.
March
=
FYMoney
;
groupReport
.
March
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
March
+=
FYMoney
;
else
fTotalReport
.
March
-=
FYMoney
;
break
;
case
"04"
:
fReport
.
April
=
FYMoney
;
groupReport
.
April
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
April
+=
FYMoney
;
else
fTotalReport
.
April
-=
FYMoney
;
break
;
case
"05"
:
fReport
.
May
=
FYMoney
;
groupReport
.
May
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
May
+=
FYMoney
;
else
fTotalReport
.
May
-=
FYMoney
;
break
;
case
"06"
:
fReport
.
June
=
FYMoney
;
groupReport
.
June
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
June
+=
FYMoney
;
else
fTotalReport
.
June
-=
FYMoney
;
break
;
case
"07"
:
fReport
.
July
=
FYMoney
;
groupReport
.
July
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
July
+=
FYMoney
;
else
fTotalReport
.
July
-=
FYMoney
;
break
;
case
"08"
:
fReport
.
August
=
FYMoney
;
groupReport
.
August
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
August
+=
FYMoney
;
else
fTotalReport
.
August
-=
FYMoney
;
break
;
case
"09"
:
fReport
.
September
=
FYMoney
;
groupReport
.
September
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
September
+=
FYMoney
;
else
fTotalReport
.
September
-=
FYMoney
;
break
;
case
"10"
:
fReport
.
October
=
FYMoney
;
groupReport
.
October
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
October
+=
FYMoney
;
else
fTotalReport
.
October
-=
FYMoney
;
break
;
case
"11"
:
fReport
.
November
=
FYMoney
;
groupReport
.
November
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
November
+=
FYMoney
;
else
fTotalReport
.
November
-=
FYMoney
;
break
;
case
"12"
:
fReport
.
December
=
FYMoney
;
groupReport
.
December
+=
FYMoney
;
if
(
gitem
.
IncomeType
==
1
)
fTotalReport
.
December
+=
FYMoney
;
else
fTotalReport
.
December
-=
FYMoney
;
break
;
}
}
i
++;
FYReport
.
Add
(
fReport
);
}
groupReport
.
Sort
=
i
;
i
++;
FYReport
.
Add
(
groupReport
);
}
fTotalReport
.
Sort
=
i
;
i
++;
FYReport
.
Add
(
fTotalReport
);
Console
.
WriteLine
(
"费用OK"
);
RB_SimpleReport
NotReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
"以下项均不计入计算"
,
Rb_Group_Id
=
GroupId
,
Sort
=
0
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
""
};
NotReport
.
Sort
=
i
;
i
++;
#
endregion
#
region
往来模块
var
WLList
=
RGList
.
Where
(
x
=>
x
.
ReportType
==
2
).
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
).
ToList
();
List
<
RB_SimpleReport
>
WLReport
=
new
List
<
RB_SimpleReport
>();
foreach
(
var
gitem
in
WLList
)
{
RB_SimpleReport
groupReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
gitem
.
Name
+
"小计"
,
Rb_Group_Id
=
GroupId
,
Sort
=
0
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
string
.
Join
(
","
,
gitem
.
ChildList
.
Select
(
x
=>
x
.
CostTypeId
))
};
foreach
(
var
qitem
in
gitem
.
ChildList
.
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
))
{
//子集具体费用
RB_SimpleReport
fReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
qitem
.
Name
,
Rb_Group_Id
=
GroupId
,
Sort
=
i
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
qitem
.
CostTypeId
.
ToString
()
};
foreach
(
var
month
in
shareList
)
{
sDate
=
Convert
.
ToDateTime
(
Year
+
"-"
+
month
+
"-01"
).
ToString
(
"yyyy-MM-dd"
);
eDate
=
DateTime
.
Parse
((
Year
+
"-"
+
month
+
"-01"
)).
AddMonths
(
1
).
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
decimal
FYMoney
=
0
;
#
region
日常费用
//当月的财务单据
var
Financelist
=
RZFinancelist
.
Where
(
x
=>
x
.
CostTypeId
==
qitem
.
CostTypeId
&&
((
x
.
Type
==
WFTempLateClassEnum
.
OUT
&&
x
.
CreateDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
))
||
(
x
.
Type
!=
WFTempLateClassEnum
.
OUT
&&
x
.
TradeDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)))
&&
x
.
RB_Branch_Id
==
branchitem
.
SId
).
ToList
();
//获取收入和支出
var
cfinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
IN
).
ToList
();
decimal
ShouRu
=
cfinanceList
.
Where
(
y
=>
y
.
Is_Cashier
==
1
).
Sum
(
x
=>
x
.
Money
??
0
);
ShouRu
-=
cfinanceList
.
Where
(
x
=>
x
.
Is_Cashier
==
1
&&
x
.
Fee
>
0
).
GroupBy
(
x
=>
new
{
x
.
FrID
,
x
.
Fee
}).
Sum
(
x
=>
x
.
Key
.
Fee
??
0
);
//支出
var
ofinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
OUT
).
ToList
();
decimal
ZhiChu
=
ofinanceList
.
Sum
(
x
=>
x
.
Money
??
0
);
if
(
gitem
.
IncomeType
==
2
)
{
FYMoney
=
ZhiChu
-
ShouRu
;
}
else
{
FYMoney
=
ShouRu
-
ZhiChu
;
}
#
endregion
#
region
预付款处理
if
(
qitem
.
Name
.
Contains
(
"预付"
))
{
//预付款 冲抵
var
MatchList
=
Financelist
.
Where
(
x
=>
x
.
MatchMoney
>
0
).
ToList
();
if
(
MatchList
.
Any
())
{
//减去冲抵的金额
var
newFList
=
MatchList
.
Select
(
x
=>
x
.
FrID
).
Distinct
().
ToList
();
decimal
DelMoney
=
0
;
foreach
(
var
item
in
newFList
)
{
DelMoney
+=
MatchList
.
Where
(
x
=>
x
.
FrID
==
item
).
FirstOrDefault
()?.
MatchMoney
??
0
;
}
FYMoney
-=
DelMoney
;
}
}
#
endregion
#
region
资金调拨汇兑损益
if
(
qitem
.
Name
==
"汇兑损益"
)
{
var
calist
=
CapitalAllocationFinanceList
.
Where
(
x
=>
x
.
AllotDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)
&&
x
.
BranchId
==
branchitem
.
SId
).
ToList
();
//资金调拨的汇兑损益
decimal
iMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
1
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
decimal
oMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
2
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
FYMoney
+=
oMoney
-
iMoney
;
}
#
endregion
RB_SimpleReport
cfReport
=
new
RB_SimpleReport
();
switch
(
month
)
{
case
"01"
:
fReport
.
January
=
FYMoney
;
groupReport
.
January
+=
FYMoney
;
break
;
case
"02"
:
fReport
.
February
=
FYMoney
;
groupReport
.
February
+=
FYMoney
;
break
;
case
"03"
:
fReport
.
March
=
FYMoney
;
groupReport
.
March
+=
FYMoney
;
break
;
case
"04"
:
fReport
.
April
=
FYMoney
;
groupReport
.
April
+=
FYMoney
;
break
;
case
"05"
:
fReport
.
May
=
FYMoney
;
groupReport
.
May
+=
FYMoney
;
break
;
case
"06"
:
fReport
.
June
=
FYMoney
;
groupReport
.
June
+=
FYMoney
;
break
;
case
"07"
:
fReport
.
July
=
FYMoney
;
groupReport
.
July
+=
FYMoney
;
break
;
case
"08"
:
fReport
.
August
=
FYMoney
;
groupReport
.
August
+=
FYMoney
;
break
;
case
"09"
:
fReport
.
September
=
FYMoney
;
groupReport
.
September
+=
FYMoney
;
break
;
case
"10"
:
fReport
.
October
=
FYMoney
;
groupReport
.
October
+=
FYMoney
;
break
;
case
"11"
:
fReport
.
November
=
FYMoney
;
groupReport
.
November
+=
FYMoney
;
break
;
case
"12"
:
fReport
.
December
=
FYMoney
;
groupReport
.
December
+=
FYMoney
;
break
;
}
}
i
++;
WLReport
.
Add
(
fReport
);
}
groupReport
.
Sort
=
i
;
i
++;
WLReport
.
Add
(
groupReport
);
}
Console
.
WriteLine
(
"往来OK"
);
#
endregion
#
region
其他模块
var
QTList
=
RGList
.
Where
(
x
=>
x
.
ReportType
==
3
).
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
).
ToList
();
List
<
RB_SimpleReport
>
QTReport
=
new
List
<
RB_SimpleReport
>();
foreach
(
var
gitem
in
QTList
)
{
RB_SimpleReport
groupReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
gitem
.
Name
+
"小计"
,
Rb_Group_Id
=
GroupId
,
Sort
=
0
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
string
.
Join
(
","
,
gitem
.
ChildList
.
Select
(
x
=>
x
.
CostTypeId
))
};
foreach
(
var
qitem
in
gitem
.
ChildList
.
OrderBy
(
x
=>
x
.
Sort
).
ThenBy
(
x
=>
x
.
CostTypeId
))
{
//子集具体费用
RB_SimpleReport
fReport
=
new
RB_SimpleReport
()
{
Year
=
Year
,
Abstract
=
qitem
.
Name
,
Rb_Group_Id
=
GroupId
,
Sort
=
i
,
BranchId
=
branchitem
.
SId
,
CostTypeIds
=
qitem
.
CostTypeId
.
ToString
()
};
foreach
(
var
month
in
shareList
)
{
sDate
=
Convert
.
ToDateTime
(
Year
+
"-"
+
month
+
"-01"
).
ToString
(
"yyyy-MM-dd"
);
eDate
=
DateTime
.
Parse
((
Year
+
"-"
+
month
+
"-01"
)).
AddMonths
(
1
).
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
decimal
FYMoney
=
0
;
#
region
日常费用
//当月的财务单据
var
Financelist
=
RZFinancelist
.
Where
(
x
=>
x
.
CostTypeId
==
qitem
.
CostTypeId
&&
((
x
.
Type
==
WFTempLateClassEnum
.
OUT
&&
x
.
CreateDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
))
||
(
x
.
Type
!=
WFTempLateClassEnum
.
OUT
&&
x
.
TradeDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)))
&&
x
.
RB_Branch_Id
==
branchitem
.
SId
).
ToList
();
//获取收入和支出
var
cfinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
IN
).
ToList
();
decimal
ShouRu
=
cfinanceList
.
Where
(
y
=>
y
.
Is_Cashier
==
1
).
Sum
(
x
=>
x
.
Money
??
0
);
ShouRu
-=
cfinanceList
.
Where
(
x
=>
x
.
Is_Cashier
==
1
&&
x
.
Fee
>
0
).
GroupBy
(
x
=>
new
{
x
.
FrID
,
x
.
Fee
}).
Sum
(
x
=>
x
.
Key
.
Fee
??
0
);
//支出
var
ofinanceList
=
Financelist
.
Where
(
x
=>
x
.
Type
==
WFTempLateClassEnum
.
OUT
).
ToList
();
decimal
ZhiChu
=
ofinanceList
.
Sum
(
x
=>
x
.
Money
??
0
);
if
(
gitem
.
IncomeType
==
2
)
{
FYMoney
=
ZhiChu
-
ShouRu
;
}
else
{
FYMoney
=
ShouRu
-
ZhiChu
;
}
#
endregion
#
region
预付款处理
if
(
qitem
.
Name
.
Contains
(
"预付"
))
{
//预付款 冲抵
var
MatchList
=
Financelist
.
Where
(
x
=>
x
.
MatchMoney
>
0
).
ToList
();
if
(
MatchList
.
Any
())
{
//减去冲抵的金额
var
newFList
=
MatchList
.
Select
(
x
=>
x
.
FrID
).
Distinct
().
ToList
();
decimal
DelMoney
=
0
;
foreach
(
var
item
in
newFList
)
{
DelMoney
+=
MatchList
.
Where
(
x
=>
x
.
FrID
==
item
).
FirstOrDefault
()?.
MatchMoney
??
0
;
}
FYMoney
-=
DelMoney
;
}
}
#
endregion
#
region
资金调拨汇兑损益
if
(
qitem
.
Name
==
"汇兑损益"
)
{
var
calist
=
CapitalAllocationFinanceList
.
Where
(
x
=>
x
.
AllotDate
.
Value
.
ToString
(
"yyyy-MM"
)
==
Convert
.
ToDateTime
(
sDate
).
ToString
(
"yyyy-MM"
)
&&
x
.
BranchId
==
branchitem
.
SId
).
ToList
();
//资金调拨的汇兑损益
decimal
iMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
1
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
decimal
oMoney
=
calist
.
Where
(
x
=>
x
.
AllotType
==
2
)?.
Sum
(
x
=>
x
.
Money
??
0
)
??
0
;
FYMoney
+=
oMoney
-
iMoney
;
}
#
endregion
switch
(
month
)
{
case
"01"
:
fReport
.
January
=
FYMoney
;
groupReport
.
January
+=
FYMoney
;
break
;
case
"02"
:
fReport
.
February
=
FYMoney
;
groupReport
.
February
+=
FYMoney
;
break
;
case
"03"
:
fReport
.
March
=
FYMoney
;
groupReport
.
March
+=
FYMoney
;
break
;
case
"04"
:
fReport
.
April
=
FYMoney
;
groupReport
.
April
+=
FYMoney
;
break
;
case
"05"
:
fReport
.
May
=
FYMoney
;
groupReport
.
May
+=
FYMoney
;
break
;
case
"06"
:
fReport
.
June
=
FYMoney
;
groupReport
.
June
+=
FYMoney
;
break
;
case
"07"
:
fReport
.
July
=
FYMoney
;
groupReport
.
July
+=
FYMoney
;
break
;
case
"08"
:
fReport
.
August
=
FYMoney
;
groupReport
.
August
+=
FYMoney
;
break
;
case
"09"
:
fReport
.
September
=
FYMoney
;
groupReport
.
September
+=
FYMoney
;
break
;
case
"10"
:
fReport
.
October
=
FYMoney
;
groupReport
.
October
+=
FYMoney
;
break
;
case
"11"
:
fReport
.
November
=
FYMoney
;
groupReport
.
November
+=
FYMoney
;
break
;
case
"12"
:
fReport
.
December
=
FYMoney
;
groupReport
.
December
+=
FYMoney
;
break
;
}
}
i
++;
QTReport
.
Add
(
fReport
);
}
groupReport
.
Sort
=
i
;
i
++;
QTReport
.
Add
(
groupReport
);
}
Console
.
WriteLine
(
"其他OK"
);
#
endregion
#
region
计算统计
SchoolReportList
.
Add
(
IncomeReport
);
//SchoolReportList.Add(OtherIncomeReport);
//SchoolReportList.Add(BonusReport);
//SchoolReportList.Add(PerfReport);
//SchoolReportList.Add(SellReport);
//SchoolReportList.Add(PeopleReport);
//SchoolReportList.Add(OtherCostReport);
//SchoolReportList.Add(TotalReport);
SchoolReportList
.
Add
(
NotReport
);
SchoolReportList
.
AddRange
(
ZYReport
);
SchoolReportList
.
AddRange
(
FYReport
);
SchoolReportList
.
AddRange
(
WLReport
);
SchoolReportList
.
AddRange
(
QTReport
);
SchoolReportList
.
ForEach
(
x
=>
{
x
.
FirstQuarter
=
x
.
January
+
x
.
February
+
x
.
March
;
x
.
SecondQuarter
=
x
.
April
+
x
.
May
+
x
.
June
;
x
.
ThirdQuarter
=
x
.
July
+
x
.
August
+
x
.
September
;
x
.
FourthQuarter
=
x
.
October
+
x
.
November
+
x
.
December
;
x
.
HalfReport
=
x
.
FirstQuarter
+
x
.
SecondQuarter
;
x
.
LastHalfReport
=
x
.
ThirdQuarter
+
x
.
FourthQuarter
;
x
.
Total
=
x
.
HalfReport
+
x
.
LastHalfReport
;
});
AllSchoolReportList
.
AddRange
(
SchoolReportList
);
#
endregion
}
if
(
AllSchoolReportList
.
Any
())
{
Console
.
WriteLine
(
"开始汇总插入:"
+
AllSchoolReportList
.
Count
());
//计算汇总
var
HZList
=
AllSchoolReportList
.
GroupBy
(
x
=>
new
{
x
.
Year
,
x
.
Abstract
,
x
.
Rb_Group_Id
,
x
.
Sort
,
x
.
CostTypeIds
}).
Select
(
x
=>
new
RB_SimpleReport_Extend
()
{
ID
=
0
,
Rb_Group_Id
=
x
.
Key
.
Rb_Group_Id
,
Year
=
x
.
Key
.
Year
,
Abstract
=
x
.
Key
.
Abstract
,
April
=
x
.
Sum
(
y
=>
y
.
April
),
August
=
x
.
Sum
(
y
=>
y
.
August
),
BranchId
=
-
1
,
CostTypeIds
=
x
.
Key
.
CostTypeIds
,
December
=
x
.
Sum
(
y
=>
y
.
December
),
February
=
x
.
Sum
(
y
=>
y
.
February
),
FirstQuarter
=
x
.
Sum
(
y
=>
y
.
FirstQuarter
),
FourthQuarter
=
x
.
Sum
(
z
=>
z
.
FourthQuarter
),
HalfReport
=
x
.
Sum
(
z
=>
z
.
HalfReport
),
January
=
x
.
Sum
(
z
=>
z
.
January
),
July
=
x
.
Sum
(
z
=>
z
.
July
),
June
=
x
.
Sum
(
z
=>
z
.
June
),
LastHalfReport
=
x
.
Sum
(
z
=>
z
.
LastHalfReport
),
March
=
x
.
Sum
(
z
=>
z
.
March
),
May
=
x
.
Sum
(
z
=>
z
.
May
),
November
=
x
.
Sum
(
z
=>
z
.
November
),
October
=
x
.
Sum
(
z
=>
z
.
October
),
SecondQuarter
=
x
.
Sum
(
z
=>
z
.
SecondQuarter
),
September
=
x
.
Sum
(
z
=>
z
.
September
),
Sort
=
x
.
Key
.
Sort
,
ThirdQuarter
=
x
.
Sum
(
z
=>
z
.
ThirdQuarter
),
Total
=
x
.
Sum
(
z
=>
z
.
Total
)
}).
ToList
();
AllSchoolReportList
.
AddRange
(
HZList
);
var
OldList
=
edu_simpleReportRepository
.
GetList
(
new
RB_SimpleReport_Extend
()
{
Year
=
Year
,
Rb_Group_Id
=
GroupId
,
BranchId
=
-
2
},
1
);
//查询所有的
foreach
(
var
item
in
AllSchoolReportList
)
{
item
.
ExpectedType
=
1
;
var
oldModel
=
OldList
.
Where
(
x
=>
x
.
Year
==
item
.
Year
&&
x
.
Abstract
==
item
.
Abstract
&&
x
.
BranchId
==
item
.
BranchId
).
FirstOrDefault
();
if
(
oldModel
==
null
)
{
edu_simpleReportRepository
.
Insert
(
item
);
}
else
{
item
.
ID
=
oldModel
.
ID
;
edu_simpleReportRepository
.
Update
(
item
);
oldModel
.
IsUpdate
=
1
;
}
}
var
delList
=
OldList
.
Where
(
x
=>
x
.
IsUpdate
==
0
).
ToList
();
edu_simpleReportRepository
.
DeleteBatch
(
delList
);
Console
.
WriteLine
(
"汇总OK"
);
}
var
fumodel
=
edu_UpdateRecordRepository
.
GetList
(
new
RB_Report_UpdateRecord
()
{
Type
=
3
}).
FirstOrDefault
();
if
(
fumodel
!=
null
)
{
fumodel
.
EndDate
=
DateTime
.
Now
;
edu_UpdateRecordRepository
.
Update
(
fumodel
);
}
return
true
;
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"InsertBatchSimple_V2"
);
}
return
true
;
}
/// <summary>
/// 更新班级数据
/// </summary>
...
...
@@ -2084,7 +2827,7 @@ namespace Edu.Module.Finance
/// <returns></returns>
public
List
<
RB_SimpleReport_Extend
>
GetEasyReportList
(
RB_SimpleReport_Extend
model
)
{
var
list
=
edu_simpleReportRepository
.
GetList
(
model
);
var
list
=
edu_simpleReportRepository
.
GetList
(
model
,
model
.
ExpectedType
);
return
list
;
}
...
...
Edu.Repository/DataStatistics/RB_SimpleReportRepository.cs
View file @
fe27f18f
...
...
@@ -16,10 +16,11 @@ namespace Edu.Repository.Finance
/// 获取列表
/// </summary>
/// <param name="model"></param>
/// <param name="ExpectedType"> 0正常 1预收报表</param>
/// <returns></returns>
public
List
<
RB_SimpleReport_Extend
>
GetList
(
RB_SimpleReport_Extend
model
)
public
List
<
RB_SimpleReport_Extend
>
GetList
(
RB_SimpleReport_Extend
model
,
int
ExpectedType
=
0
)
{
string
where
=
" 1=1
"
;
string
where
=
$" 1=1 and A.ExpectedType =
{
ExpectedType
}
"
;
if
(
model
.
Year
>
0
)
{
where
+=
string
.
Format
(
" AND A."
+
nameof
(
RB_SimpleReport_Extend
.
Year
)
+
"="
+
model
.
Year
);
...
...
Edu.WebApi/Controllers/Finance/FinanceController.cs
View file @
fe27f18f
...
...
@@ -1201,9 +1201,9 @@ namespace Edu.WebApi.Controllers.Finance
var
userInfo
=
base
.
UserInfo
;
var
model
=
JsonHelper
.
DeserializeObject
<
RB_SimpleReport_Extend
>(
RequestParm
.
Msg
.
ToString
());
model
.
Rb_Group_Id
=
userInfo
.
Group_Id
;
var
list
=
financeModule
.
GetEasyReportList
(
new
RB_SimpleReport_Extend
()
{
Year
=
model
.
Year
,
Rb_Group_Id
=
userInfo
.
Group_Id
,
BranchId
=
model
.
BranchId
});
var
list
=
financeModule
.
GetEasyReportList
(
new
RB_SimpleReport_Extend
()
{
Year
=
model
.
Year
,
Rb_Group_Id
=
userInfo
.
Group_Id
,
BranchId
=
model
.
BranchId
,
ExpectedType
=
model
.
ExpectedType
});
var
fumodel
=
financeModule
.
GetUpdateRecordNew
();
var
fumodel
=
financeModule
.
GetUpdateRecordNew
(
model
.
ExpectedType
==
1
?
3
:
2
);
int
Status
=
0
;
string
UpdateStartTime
=
""
;
string
UpdateEndTime
=
""
;
...
...
@@ -1266,7 +1266,7 @@ namespace Edu.WebApi.Controllers.Finance
var
userInfo
=
base
.
UserInfo
;
var
model
=
JsonHelper
.
DeserializeObject
<
RB_SimpleReport_Extend
>(
RequestParm
.
Msg
.
ToString
());
model
.
Rb_Group_Id
=
userInfo
.
Group_Id
;
var
list
=
financeModule
.
GetEasyReportList
(
new
RB_SimpleReport_Extend
()
{
Year
=
model
.
Year
,
Rb_Group_Id
=
userInfo
.
Group_Id
,
BranchId
=
model
.
BranchId
});
var
list
=
financeModule
.
GetEasyReportList
(
new
RB_SimpleReport_Extend
()
{
Year
=
model
.
Year
,
Rb_Group_Id
=
userInfo
.
Group_Id
,
BranchId
=
model
.
BranchId
,
ExpectedType
=
model
.
ExpectedType
});
try
{
foreach
(
var
sitem
in
list
)
...
...
Edu.WebApi/appsettings.json
View file @
fe27f18f
...
...
@@ -2,7 +2,7 @@
"ConnectionStrings"
:
{
"DefaultConnection"
:
"server=192.168.10.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; "
,
"DefaultConnectionPName"
:
"MySql.Data.MySqlClient"
,
"FinanceConnection"
:
"server=192.168.10.214;user id=reborn;password=Reborn@2018;database=
reborn
_finance;CharSet=utf8mb4; Convert Zero Datetime=true; "
,
"FinanceConnection"
:
"server=192.168.10.214;user id=reborn;password=Reborn@2018;database=
test
_finance;CharSet=utf8mb4; Convert Zero Datetime=true; "
,
"FinanceConnectionPName"
:
"MySql.Data.MySqlClient"
,
"DataStatisticsConnection"
:
"server=192.168.10.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; "
,
"DataStatisticsConnectionPName"
:
"MySql.Data.MySqlClient"
,
...
...
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