Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
performance
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zry
performance
Commits
e10576de
Commit
e10576de
authored
Oct 16, 2020
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
collect数据写入
parent
149adcc0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
674 additions
and
28 deletions
+674
-28
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+300
-9
performance/Performance.Services/DFExtractService.cs
+374
-19
No files found.
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
e10576de
...
@@ -54,6 +54,11 @@
...
@@ -54,6 +54,11 @@
数据收集角色(可查看所有)
数据收集角色(可查看所有)
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.AppSettings.Application.OfficeRole"
>
<summary>
行政科室二次绩效管理员
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AppSettings.Application.Receiver"
>
<member
name=
"P:Performance.DtoModels.AppSettings.Application.Receiver"
>
<summary>
<summary>
邮件指定接收人
邮件指定接收人
...
@@ -174,6 +179,41 @@
...
@@ -174,6 +179,41 @@
<member
name=
"F:Performance.DtoModels.DataFormat.日期"
>
<member
name=
"F:Performance.DtoModels.DataFormat.日期"
>
<summary>
日期
</summary>
<summary>
日期
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.HistoryData.Year"
>
<summary>
年
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HistoryData.Month"
>
<summary>
月
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HistoryData.HospitalID"
>
<summary>
医院ID
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HistoryData.SourceType"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HistoryData.AccountingUnit"
>
<summary>
科室核算单元
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HistoryData.Department"
>
<summary>
科室
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HistoryData.ResultData"
>
<summary>
结果值
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAgainData.RowNumber"
>
<member
name=
"P:Performance.DtoModels.PerAgainData.RowNumber"
>
<summary>
<summary>
行号
行号
...
@@ -394,6 +434,11 @@
...
@@ -394,6 +434,11 @@
核算基数
核算基数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.OtherManagePerfor"
>
<summary>
其他管理绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.DoctorName"
>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.DoctorName"
>
<summary>
<summary>
医生姓名
医生姓名
...
@@ -424,11 +469,26 @@
...
@@ -424,11 +469,26 @@
效率绩效人数
效率绩效人数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.AssessBeforeOtherFee"
>
<summary>
考核前其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.ScoreAverageRate"
>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.ScoreAverageRate"
>
<summary>
<summary>
考核得分率
考核得分率
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.AssessLaterOtherFee"
>
<summary>
考核后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.Attendance"
>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.Attendance"
>
<summary>
<summary>
出勤率
出勤率
...
@@ -464,6 +524,11 @@
...
@@ -464,6 +524,11 @@
管理绩效发放系数
管理绩效发放系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeEmployee.NightWorkPerfor"
>
<summary>
夜班费
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.AccountType"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.AccountType"
>
<summary>
<summary>
科室类别(例如 医技科室 临床科室 其他科室)
科室类别(例如 医技科室 临床科室 其他科室)
...
@@ -479,6 +544,16 @@
...
@@ -479,6 +544,16 @@
绩效基数核算参考对象
绩效基数核算参考对象
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.FitPeopleValue"
>
<summary>
绩效基础核算参考值
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.FitPeopleRatio"
>
<summary>
绩效基数核算参考对象取值比例(如临床科室护士*95%)
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.EmployeeName"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.EmployeeName"
>
<summary>
<summary>
人员姓名
人员姓名
...
@@ -486,7 +561,7 @@
...
@@ -486,7 +561,7 @@
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.PerforTotal"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.PerforTotal"
>
<summary>
<summary>
绩效合计(来自科室经济测算表)
绩效合计
考核前
(来自科室经济测算表)
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.Number"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.Number"
>
...
@@ -526,12 +601,27 @@
...
@@ -526,12 +601,27 @@
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.PerforSumFee"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.PerforSumFee"
>
<summary>
<summary>
绩效合计(需计算)
绩效合计 考核前(需计算)
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.AssessBeforeOtherFee"
>
<summary>
考核前其他绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.ScoreAverageRate"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.ScoreAverageRate"
>
<summary>
<summary>
考核对分率(来自人员名单)
考核得分率
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.AssessLaterOtherFee"
>
<summary>
考核后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.Attendance"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.Attendance"
>
...
@@ -544,6 +634,11 @@
...
@@ -544,6 +634,11 @@
医院奖罚 来自5.2
医院奖罚 来自5.2
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.OtherManagePerfor"
>
<summary>
其他管理绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.OtherPerfor"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.OtherPerfor"
>
<summary>
<summary>
其他绩效(来自人员名单)
其他绩效(来自人员名单)
...
@@ -551,7 +646,7 @@
...
@@ -551,7 +646,7 @@
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.GiveFee"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.GiveFee"
>
<summary>
<summary>
应发绩效(需计算)
应发绩效
考核前
(需计算)
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.BaiscNormPerforTotal"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.BaiscNormPerforTotal"
>
...
@@ -599,6 +694,11 @@
...
@@ -599,6 +694,11 @@
效率绩效人数
效率绩效人数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.NightWorkPerfor"
>
<summary>
夜班费
</summary>
</member>
<member
name=
"T:Performance.DtoModels.UnitType"
>
<member
name=
"T:Performance.DtoModels.UnitType"
>
<summary>
核算单元类型
</summary>
<summary>
核算单元类型
</summary>
</member>
</member>
...
@@ -665,6 +765,18 @@
...
@@ -665,6 +765,18 @@
<member
name=
"F:Performance.DtoModels.SheetType.LogisticsEmployee"
>
<member
name=
"F:Performance.DtoModels.SheetType.LogisticsEmployee"
>
<summary>
行政后勤
</summary>
<summary>
行政后勤
</summary>
</member>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.AccountScoreAverage"
>
<summary>
科室材料考核
</summary>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.AccountAdjustLaterOtherFee"
>
<summary>
科室调节后其他绩效
</summary>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.PersonAdjustLaterOtherFee"
>
<summary>
业务中层行政中高层调节后其他绩效
</summary>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.OtherWorkload"
>
<summary>
其他工作量(不参与核算)
</summary>
</member>
<member
name=
"T:Performance.DtoModels.AccountUnitType"
>
<member
name=
"T:Performance.DtoModels.AccountUnitType"
>
<summary>
<summary>
核算单元类型
核算单元类型
...
@@ -813,9 +925,9 @@
...
@@ -813,9 +925,9 @@
其他绩效1
其他绩效1
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.
OtherPerfor2
"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.
AssessBeforeOtherFee
"
>
<summary>
<summary>
其他绩效2
考核前其他绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.MedicineExtra"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.MedicineExtra"
>
...
@@ -838,11 +950,21 @@
...
@@ -838,11 +950,21 @@
考核对分率
考核对分率
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AssessLaterOtherFee"
>
<summary>
考核后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AdjustFactor"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AdjustFactor"
>
<summary>
<summary>
调节系数
调节系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Scale"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Scale"
>
<summary>
<summary>
规模绩效系数
规模绩效系数
...
@@ -880,7 +1002,12 @@
...
@@ -880,7 +1002,12 @@
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.PerforTotal"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.PerforTotal"
>
<summary>
<summary>
绩效合计
绩效合计 考核前
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AssessLaterPerforTotal"
>
<summary>
绩效合计 考核后
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Avg"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Avg"
>
...
@@ -923,6 +1050,11 @@
...
@@ -923,6 +1050,11 @@
职务分类
职务分类
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.FitPeopleValue"
>
<summary>
实际人均绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Basics"
>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Basics"
>
<summary>
<summary>
基础绩效系数
基础绩效系数
...
@@ -948,26 +1080,46 @@
...
@@ -948,26 +1080,46 @@
管理绩效发放系数
管理绩效发放系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.AssessBeforeOtherFee"
>
<summary>
考核前其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.ScoreAverageRate"
>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.ScoreAverageRate"
>
<summary>
<summary>
考核得分率
考核得分率
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.AssessLaterOtherFee"
>
<summary>
考核后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Attendance"
>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Attendance"
>
<summary>
<summary>
出勤率
出勤率
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Othe
Management
Perfor"
>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Othe
rManage
Perfor"
>
<summary>
<summary>
其他管理绩效
其他管理绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.OthePerfor"
>
<summary>
其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Adjust"
>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.Adjust"
>
<summary>
<summary>
调节系数
调节系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.RowNumber"
>
<member
name=
"P:Performance.DtoModels.PerDataClinicEmployee.RowNumber"
>
<summary>
<summary>
行号
行号
...
@@ -1023,11 +1175,26 @@
...
@@ -1023,11 +1175,26 @@
岗位系数
岗位系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.NightWorkPerfor"
>
<summary>
夜班费
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.AssessBeforeOtherFee"
>
<summary>
考核前其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.ScoreAverageRate"
>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.ScoreAverageRate"
>
<summary>
<summary>
考核得分率
考核得分率
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.AssessLaterOtherFee"
>
<summary>
考核后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.Attendance"
>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.Attendance"
>
<summary>
<summary>
出勤率
出勤率
...
@@ -1038,6 +1205,11 @@
...
@@ -1038,6 +1205,11 @@
调节系数
调节系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.RowNumber"
>
<member
name=
"P:Performance.DtoModels.PerDataEmployee.RowNumber"
>
<summary>
<summary>
行号
行号
...
@@ -1068,7 +1240,7 @@
...
@@ -1068,7 +1240,7 @@
科室类别(例如 医技科室 临床科室 其他科室)
科室类别(例如 医技科室 临床科室 其他科室)
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataLogisticsEmployee.
Job
Number"
>
<member
name=
"P:Performance.DtoModels.PerDataLogisticsEmployee.
Personnel
Number"
>
<summary>
<summary>
人员工号
人员工号
</summary>
</summary>
...
@@ -1098,6 +1270,11 @@
...
@@ -1098,6 +1270,11 @@
其他绩效
其他绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataLogisticsEmployee.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataLogisticsEmployee.RowNumber"
>
<member
name=
"P:Performance.DtoModels.PerDataLogisticsEmployee.RowNumber"
>
<summary>
<summary>
行号
行号
...
@@ -1468,6 +1645,15 @@
...
@@ -1468,6 +1645,15 @@
路径
路径
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.Id"
>
<summary>
二次绩效Id
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.IsPass"
>
<summary>
审核结果 1、审核通过 2、驳回
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.Remark"
>
<summary>
备注
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Request.SmsCodeRequest.Type"
>
<member
name=
"P:Performance.DtoModels.Request.SmsCodeRequest.Type"
>
<summary>
<summary>
短信验证类型 1 手机号登录 2 其他
短信验证类型 1 手机号登录 2 其他
...
@@ -1543,6 +1729,11 @@
...
@@ -1543,6 +1729,11 @@
汇总ID
汇总ID
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.DeptDetailRequest.UnitType"
>
<summary>
核算单元类型
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DirectorRequest.Department"
>
<member
name=
"P:Performance.DtoModels.DirectorRequest.Department"
>
<summary>
<summary>
科室
科室
...
@@ -1766,6 +1957,11 @@
...
@@ -1766,6 +1957,11 @@
是否显示绩效合计 1 显示绩效合计 2 显示管理绩效
是否显示绩效合计 1 显示绩效合计 2 显示管理绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.HospitalRequest.IsOpenCMIPercent"
>
<summary>
是否开启科室CMI占比 1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.DtoModels.IncomeRequest.SheetNameKeyword"
>
<member
name=
"P:Performance.DtoModels.IncomeRequest.SheetNameKeyword"
>
<summary>
<summary>
关键字匹配
关键字匹配
...
@@ -2387,11 +2583,46 @@
...
@@ -2387,11 +2583,46 @@
职位
职位
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.PerforSumFee"
>
<summary>
业绩绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.PerforManagementFee"
>
<summary>
管理绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.ShouldGiveFee"
>
<summary>
应发小计
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.OthePerfor"
>
<summary>
医院其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.NightWorkPerfor"
>
<summary>
夜班费
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.RealGiveFee"
>
<member
name=
"P:Performance.DtoModels.ComputeResponse.RealGiveFee"
>
<summary>
<summary>
实发绩效
实发绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.ReservedRatio"
>
<summary>
预留比例
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResponse.ReservedRatioFee"
>
<summary>
预留比例金额
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DeptDataDetails`1.Pandect"
>
<member
name=
"P:Performance.DtoModels.DeptDataDetails`1.Pandect"
>
<summary>
概览
</summary>
<summary>
概览
</summary>
</member>
</member>
...
@@ -2452,6 +2683,11 @@
...
@@ -2452,6 +2683,11 @@
<member
name=
"P:Performance.DtoModels.DetailModuleExtend.ItemValue2"
>
<member
name=
"P:Performance.DtoModels.DetailModuleExtend.ItemValue2"
>
<summary>
结算值
</summary>
<summary>
结算值
</summary>
</member>
</member>
<member
name=
"T:Performance.DtoModels.DeptIncomeResponse"
>
<summary>
查看科室绩效详情
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DeptResponse.ID"
>
<member
name=
"P:Performance.DtoModels.DeptResponse.ID"
>
<summary>
<summary>
...
@@ -2592,6 +2828,21 @@
...
@@ -2592,6 +2828,21 @@
备注
备注
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.DeptResponse.AssessBeforeOtherFee"
>
<summary>
考核前其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DeptResponse.AssessLaterOtherFee"
>
<summary>
考核后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DeptResponse.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DirectorResponse.TypeName"
>
<member
name=
"P:Performance.DtoModels.DirectorResponse.TypeName"
>
<summary>
<summary>
绩效类型
绩效类型
...
@@ -2647,6 +2898,16 @@
...
@@ -2647,6 +2898,16 @@
保底来源科室
保底来源科室
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.HospitalResponse.IsOpenCMIPercent"
>
<summary>
是否开启科室CMI占比 1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HospitalResponse.IsOpenNursingDeptAudit"
>
<summary>
是否开启护理部审核 1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.DtoModels.IncomeResponse.SheetNameKeyword"
>
<member
name=
"P:Performance.DtoModels.IncomeResponse.SheetNameKeyword"
>
<summary>
<summary>
关键字匹配
关键字匹配
...
@@ -2762,6 +3023,11 @@
...
@@ -2762,6 +3023,11 @@
规模绩效(需计算)
规模绩效(需计算)
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.OtherManagePerfor"
>
<summary>
其他管理绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.PostCoefficient"
>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.PostCoefficient"
>
<summary>
<summary>
岗位系数
岗位系数
...
@@ -2857,6 +3123,31 @@
...
@@ -2857,6 +3123,31 @@
效率绩效人数
效率绩效人数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.NightWorkPerfor"
>
<summary>
夜班费
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.OtherPerformance"
>
<summary>
医院其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.AssessBeforeOtherFee"
>
<summary>
考核前其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.AssessLaterOtherFee"
>
<summary>
考核后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ResComputeResponse.AdjustLaterOtherFee"
>
<summary>
调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.RoleResponse.RoleName"
>
<member
name=
"P:Performance.DtoModels.RoleResponse.RoleName"
>
<summary>
<summary>
角色名称
角色名称
...
...
performance/Performance.Services/DFExtractService.cs
View file @
e10576de
...
@@ -31,6 +31,7 @@ public class DFExtractService : IAutoInjection
...
@@ -31,6 +31,7 @@ public class DFExtractService : IAutoInjection
private
readonly
PerforImspecialunitRepository
perforImspecialunitRepository
;
private
readonly
PerforImspecialunitRepository
perforImspecialunitRepository
;
private
readonly
PerforImdataRepository
perforImdataRepository
;
private
readonly
PerforImdataRepository
perforImdataRepository
;
private
readonly
PerforRepimportconfigRepository
repimportconfigRepository
;
private
readonly
PerforRepimportconfigRepository
repimportconfigRepository
;
private
readonly
PerforcollectdataRepository
perforcollectdataRepository
;
private
readonly
PerforExitemRepository
perforExitemRepository
;
private
readonly
PerforExitemRepository
perforExitemRepository
;
private
readonly
PerforExmoduleRepository
perforExmoduleRepository
;
private
readonly
PerforExmoduleRepository
perforExmoduleRepository
;
...
@@ -60,6 +61,7 @@ public class DFExtractService : IAutoInjection
...
@@ -60,6 +61,7 @@ public class DFExtractService : IAutoInjection
PerforImspecialunitRepository
perforImspecialunitRepository
,
PerforImspecialunitRepository
perforImspecialunitRepository
,
PerforImdataRepository
perforImdataRepository
,
PerforImdataRepository
perforImdataRepository
,
PerforRepimportconfigRepository
repimportconfigRepository
,
PerforRepimportconfigRepository
repimportconfigRepository
,
PerforcollectdataRepository
perforcollectdataRepository
,
PerforExitemRepository
perforExitemRepository
,
PerforExitemRepository
perforExitemRepository
,
PerforExmoduleRepository
perforExmoduleRepository
,
PerforExmoduleRepository
perforExmoduleRepository
,
...
@@ -81,6 +83,7 @@ public class DFExtractService : IAutoInjection
...
@@ -81,6 +83,7 @@ public class DFExtractService : IAutoInjection
this
.
perforImspecialunitRepository
=
perforImspecialunitRepository
;
this
.
perforImspecialunitRepository
=
perforImspecialunitRepository
;
this
.
perforImdataRepository
=
perforImdataRepository
;
this
.
perforImdataRepository
=
perforImdataRepository
;
this
.
repimportconfigRepository
=
repimportconfigRepository
;
this
.
repimportconfigRepository
=
repimportconfigRepository
;
this
.
perforcollectdataRepository
=
perforcollectdataRepository
;
this
.
perforExitemRepository
=
perforExitemRepository
;
this
.
perforExitemRepository
=
perforExitemRepository
;
this
.
perforExmoduleRepository
=
perforExmoduleRepository
;
this
.
perforExmoduleRepository
=
perforExmoduleRepository
;
...
@@ -154,9 +157,12 @@ public string ExtractData(int allotId, string email, int hospitalId, string grou
...
@@ -154,9 +157,12 @@ public string ExtractData(int allotId, string email, int hospitalId, string grou
}
}
var
standData
=
StandData
(
data
);
var
standData
=
StandData
(
data
);
var
collectData
=
perforcollectdataRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
);
logger
.
LogInformation
(
"Execute Main"
);
logger
.
LogInformation
(
"Execute Main"
);
return
lastAllot
==
null
?
TemplateExecute
(
email
,
hospital
,
configs
,
modules
,
items
,
specials
,
standData
)
return
lastAllot
==
null
?
TemplateExecute
(
email
,
hospital
,
configs
,
modules
,
items
,
specials
,
standData
,
collectData
)
:
AlllotExecute
(
email
,
hospital
,
configs
,
modules
,
items
,
specials
,
standData
,
lastAllot
,
filePath
);
:
AlllotExecute
(
email
,
hospital
,
configs
,
modules
,
items
,
specials
,
standData
,
collectData
,
lastAllot
,
filePath
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
...
@@ -178,9 +184,6 @@ public string ExtractData(int allotId, string email, int hospitalId, string grou
...
@@ -178,9 +184,6 @@ public string ExtractData(int allotId, string email, int hospitalId, string grou
}
}
}
}
/// <summary>
/// <summary>
/// 抽取收入费用
/// 抽取收入费用
/// </summary>
/// </summary>
...
@@ -366,7 +369,7 @@ private void ClearHistData(per_allot allot)
...
@@ -366,7 +369,7 @@ private void ClearHistData(per_allot allot)
/// <param name="specials"></param>
/// <param name="specials"></param>
/// <param name="extracts"></param>
/// <param name="extracts"></param>
/// <returns></returns>
/// <returns></returns>
public
string
TemplateExecute
(
string
email
,
sys_hospital
hospital
,
List
<
sys_hospitalconfig
>
configs
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
ex_special
>
specials
,
List
<
NewExtractDto
>
data
)
public
string
TemplateExecute
(
string
email
,
sys_hospital
hospital
,
List
<
sys_hospitalconfig
>
configs
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
ex_special
>
specials
,
List
<
NewExtractDto
>
data
,
List
<
collect_data
>
collectData
)
{
{
if
(
Math
.
Round
(
ratio
)
<
60
)
if
(
Math
.
Round
(
ratio
)
<
60
)
{
{
...
@@ -405,6 +408,8 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
...
@@ -405,6 +408,8 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
var
sheetType
=
perSheetService
.
GetSheetType
(
sheet
.
SheetName
);
var
sheetType
=
perSheetService
.
GetSheetType
(
sheet
.
SheetName
);
if
(
sheetType
==
SheetType
.
Unidentifiable
)
continue
;
if
(
sheetType
==
SheetType
.
Unidentifiable
)
continue
;
var
sheetCollectData
=
collectData
?.
Where
(
t
=>
t
.
SheetName
==
sheet
.
SheetName
)?.
ToList
();
var
sheetRead
=
PerSheetDataFactory
.
GetDataRead
(
sheetType
);
var
sheetRead
=
PerSheetDataFactory
.
GetDataRead
(
sheetType
);
switch
(
sheetType
)
switch
(
sheetType
)
{
{
...
@@ -415,17 +420,17 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
...
@@ -415,17 +420,17 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
// WriteClinicEmployee(sheet, sheetRead);
// WriteClinicEmployee(sheet, sheetRead);
// break;
// break;
case
SheetType
.
OtherIncome
:
case
SheetType
.
OtherIncome
:
WriteOtherIncome
(
sheet
,
sheetRead
,
modules
,
items
,
data
);
WriteOtherIncome
(
sheet
,
sheetRead
,
modules
,
items
,
data
,
sheetCollectData
);
break
;
break
;
case
SheetType
.
Income
:
case
SheetType
.
Income
:
WriteIncome
(
sheet
,
sheetRead
,
modules
,
items
,
data
);
WriteIncome
(
sheet
,
sheetRead
,
modules
,
items
,
data
,
sheetCollectData
);
break
;
break
;
case
SheetType
.
Expend
:
case
SheetType
.
Expend
:
WriteExpend
(
sheet
,
sheetRead
,
modules
,
items
,
data
);
WriteExpend
(
sheet
,
sheetRead
,
modules
,
items
,
data
,
sheetCollectData
);
break
;
break
;
case
SheetType
.
Workload
:
case
SheetType
.
Workload
:
case
SheetType
.
OtherWorkload
:
case
SheetType
.
OtherWorkload
:
WriteWorkload
(
sheet
,
sheetRead
,
modules
,
items
,
data
);
WriteWorkload
(
sheet
,
sheetRead
,
modules
,
items
,
data
,
sheetCollectData
);
break
;
break
;
//case SheetType.AccountBasic:
//case SheetType.AccountBasic:
// WriteAccountBasic(sheet, sheetRead);
// WriteAccountBasic(sheet, sheetRead);
...
@@ -458,7 +463,7 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
...
@@ -458,7 +463,7 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
/// <param name="specials"></param>
/// <param name="specials"></param>
/// <param name="extracts"></param>
/// <param name="extracts"></param>
/// <returns></returns>
/// <returns></returns>
public
string
AlllotExecute
(
string
email
,
sys_hospital
hospital
,
List
<
sys_hospitalconfig
>
configs
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
ex_special
>
specials
,
List
<
NewExtractDto
>
extracts
,
per_allot
lastAllot
,
string
path
)
public
string
AlllotExecute
(
string
email
,
sys_hospital
hospital
,
List
<
sys_hospitalconfig
>
configs
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
ex_special
>
specials
,
List
<
NewExtractDto
>
extracts
,
List
<
collect_data
>
collectData
,
per_allot
lastAllot
,
string
path
)
{
{
if
(
Math
.
Round
(
ratio
)
<
60
)
if
(
Math
.
Round
(
ratio
)
<
60
)
{
{
...
@@ -498,6 +503,8 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
...
@@ -498,6 +503,8 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
var
sheetType
=
perSheetService
.
GetSheetType
(
sheet
.
SheetName
);
var
sheetType
=
perSheetService
.
GetSheetType
(
sheet
.
SheetName
);
if
(
sheetType
==
SheetType
.
Unidentifiable
)
continue
;
if
(
sheetType
==
SheetType
.
Unidentifiable
)
continue
;
var
sheetCollectData
=
collectData
?.
Where
(
t
=>
t
.
SheetName
==
sheet
.
SheetName
)?.
ToList
();
var
sheetRead
=
PerSheetDataFactory
.
GetDataRead
(
sheetType
);
var
sheetRead
=
PerSheetDataFactory
.
GetDataRead
(
sheetType
);
switch
(
sheetType
)
switch
(
sheetType
)
{
{
...
@@ -509,20 +516,20 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
...
@@ -509,20 +516,20 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
// break;
// break;
case
SheetType
.
OtherIncome
:
case
SheetType
.
OtherIncome
:
ClearData
(
sheet
,
5
,
7
);
ClearData
(
sheet
,
5
,
7
);
WriteOtherIncome
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
WriteOtherIncome
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
sheetCollectData
,
false
);
break
;
break
;
case
SheetType
.
Income
:
case
SheetType
.
Income
:
ClearData
(
sheet
,
5
,
3
,
true
);
ClearData
(
sheet
,
5
,
3
,
true
);
WriteIncome
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
WriteIncome
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
sheetCollectData
,
false
);
break
;
break
;
case
SheetType
.
Expend
:
case
SheetType
.
Expend
:
ClearData
(
sheet
,
5
,
7
);
ClearData
(
sheet
,
5
,
7
);
WriteExpend
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
WriteExpend
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
sheetCollectData
,
false
);
break
;
break
;
case
SheetType
.
Workload
:
case
SheetType
.
Workload
:
case
SheetType
.
OtherWorkload
:
case
SheetType
.
OtherWorkload
:
ClearData
(
sheet
,
3
,
3
);
ClearData
(
sheet
,
3
,
3
);
WriteWorkload
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
WriteWorkload
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
sheetCollectData
,
false
);
break
;
break
;
//case SheetType.AccountBasic:
//case SheetType.AccountBasic:
// WriteAccountBasic(sheet, sheetRead, false);
// WriteAccountBasic(sheet, sheetRead, false);
...
@@ -1202,9 +1209,17 @@ private void WriteAccountBasic(ISheet sheet, IPerSheetDataRead sheetRead, bool i
...
@@ -1202,9 +1209,17 @@ private void WriteAccountBasic(ISheet sheet, IPerSheetDataRead sheetRead, bool i
}
}
}
}
private
void
WriteOtherIncome
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
bool
isNewTemp
=
true
)
private
void
WriteOtherIncome
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
List
<
collect_data
>
collectData
,
bool
isNewTemp
=
true
)
{
{
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
if
(
collectData
!=
null
&&
collectData
.
Any
())
{
WriteCollectHeader
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
);
WriteCollectData
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
,
false
);
isNewTemp
=
false
;
}
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
(
int
)
SheetType
.
OtherIncome
);
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
(
int
)
SheetType
.
OtherIncome
);
if
(
module
==
null
)
return
;
if
(
module
==
null
)
return
;
...
@@ -1226,9 +1241,17 @@ private void WriteOtherIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
...
@@ -1226,9 +1241,17 @@ private void WriteOtherIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
写入结束."
);
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
写入结束."
);
}
}
private
void
WriteIncome
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
bool
isNewTemp
=
true
)
private
void
WriteIncome
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
List
<
collect_data
>
collectData
,
bool
isNewTemp
=
true
)
{
{
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
if
(
collectData
!=
null
&&
collectData
.
Any
())
{
WriteCollectHeader
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
);
WriteCollectData
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
,
true
);
isNewTemp
=
false
;
}
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
ModuleName
.
Replace
(
" "
,
""
)
==
sheet
.
SheetName
.
Replace
(
" "
,
""
));
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
ModuleName
.
Replace
(
" "
,
""
)
==
sheet
.
SheetName
.
Replace
(
" "
,
""
));
if
(
module
==
null
)
return
;
if
(
module
==
null
)
return
;
...
@@ -1259,9 +1282,17 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_modu
...
@@ -1259,9 +1282,17 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_modu
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
写入结束."
);
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
写入结束."
);
}
}
private
void
WriteExpend
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
bool
isNewTemp
=
true
)
private
void
WriteExpend
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
List
<
collect_data
>
collectData
,
bool
isNewTemp
=
true
)
{
{
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
if
(
collectData
!=
null
&&
collectData
.
Any
())
{
WriteCollectHeader
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
);
WriteCollectData
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
,
false
);
isNewTemp
=
false
;
}
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
(
int
)
SheetType
.
Expend
);
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
(
int
)
SheetType
.
Expend
);
if
(
module
==
null
)
return
;
if
(
module
==
null
)
return
;
...
@@ -1282,9 +1313,17 @@ private void WriteExpend(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_modu
...
@@ -1282,9 +1313,17 @@ private void WriteExpend(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_modu
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
写入结束."
);
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
写入结束."
);
}
}
private
void
WriteWorkload
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
bool
isNewTemp
=
true
)
private
void
WriteWorkload
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_module
>
modules
,
List
<
ex_item
>
items
,
List
<
NewExtractDto
>
data
,
List
<
collect_data
>
collectData
,
bool
isNewTemp
=
true
)
{
{
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
if
(
collectData
!=
null
&&
collectData
.
Any
())
{
WriteCollectWorkHeader
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
);
WriteCollectWorkData
(
sheet
,
sheetRead
,
collectData
,
isNewTemp
);
isNewTemp
=
false
;
}
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
ModuleName
.
Replace
(
" "
,
""
)
==
sheet
.
SheetName
.
Replace
(
" "
,
""
));
var
module
=
modules
.
FirstOrDefault
(
t
=>
t
.
ModuleName
.
Replace
(
" "
,
""
)
==
sheet
.
SheetName
.
Replace
(
" "
,
""
));
if
(
module
==
null
)
return
;
if
(
module
==
null
)
return
;
...
@@ -1929,6 +1968,322 @@ private string HasValue(params string[] list)
...
@@ -1929,6 +1968,322 @@ private string HasValue(params string[] list)
#
endregion
#
endregion
#
region
CollectData
private
void
WriteCollectData
(
int
allotId
,
IWorkbook
workbook
,
bool
isNewTemp
)
{
var
collectData
=
perforcollectdataRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
);
if
(
collectData
==
null
||
!
collectData
.
Any
())
return
;
for
(
int
i
=
0
;
i
<
workbook
.
NumberOfSheets
;
i
++)
{
var
sheet
=
workbook
.
GetSheetAt
(
i
);
var
data
=
collectData
.
Where
(
t
=>
t
.
SheetName
.
Trim
()
==
sheet
.
SheetName
.
Trim
())?.
ToList
();
if
(
data
==
null
||
!
data
.
Any
())
continue
;
var
sheetType
=
perSheetService
.
GetSheetType
(
sheet
.
SheetName
);
if
(
sheetType
==
SheetType
.
Unidentifiable
)
continue
;
var
sheetRead
=
PerSheetDataFactory
.
GetDataRead
(
sheetType
);
switch
(
sheetType
)
{
case
SheetType
.
OtherIncome
:
case
SheetType
.
Expend
:
WriteCollectHeader
(
sheet
,
sheetRead
,
data
,
isNewTemp
);
WriteCollectData
(
sheet
,
sheetRead
,
data
,
isNewTemp
,
false
);
break
;
case
SheetType
.
Income
:
WriteCollectHeader
(
sheet
,
sheetRead
,
data
,
isNewTemp
);
WriteCollectData
(
sheet
,
sheetRead
,
data
,
isNewTemp
,
true
);
break
;
case
SheetType
.
Workload
:
case
SheetType
.
OtherWorkload
:
WriteCollectWorkHeader
(
sheet
,
sheetRead
,
data
,
isNewTemp
);
WriteCollectWorkData
(
sheet
,
sheetRead
,
data
,
isNewTemp
);
break
;
case
SheetType
.
SpecialUnit
:
break
;
}
logManage
.
ReturnTheLog
(
Allot
.
ID
,
GroupName
,
2
,
"写入数据"
,
$"sheet“
{
sheet
.
SheetName
}
”已完成数据写入"
);
}
}
private
void
WriteCollectHeader
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
collect_data
>
data
,
bool
isNewTemp
)
{
logger
.
LogInformation
(
$"提取绩效数据 提取绩效数据 写入列头信息 --
{
sheet
.
SheetName
}
"
);
var
head
=
GetOrCreate
(
sheet
,
sheetRead
.
Point
.
HeaderFirstRowNum
.
Value
);
var
cellItems
=
data
.
Select
(
t
=>
t
.
TypeName
).
Distinct
().
ToList
();
if
(!
isNewTemp
)
{
List
<
string
>
original
=
new
List
<
string
>();
#
region
过滤历史模板中已有的列头
//写入列头信息
int
cellStartIndex
=
sheetRead
.
Point
.
HeaderFirstCellNum
.
Value
+
4
;
for
(
int
i
=
cellStartIndex
;
i
<
head
.
LastCellNum
;
i
++)
{
var
cellvalue
=
head
.
GetCell
(
i
)?.
ToString
()?.
Trim
();
if
(
string
.
IsNullOrEmpty
(
cellvalue
))
continue
;
cellItems
.
Remove
(
cellvalue
);
}
#
endregion
}
if
(
cellItems
==
null
||
!
cellItems
.
Any
())
return
;
#
region
新增模板中不存在的列头
var
lastcellIndex
=
isNewTemp
?
sheetRead
.
Point
.
HeaderFirstCellNum
.
Value
+
4
:
head
.
LastCellNum
;
foreach
(
var
item
in
cellItems
)
{
var
headcell
=
GetOrCreate
(
head
,
lastcellIndex
);
headcell
.
SetCellValue
(
item
);
headcell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
列头
);
lastcellIndex
++;
}
#
endregion
}
private
void
WriteCollectData
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
collect_data
>
data
,
bool
isNewTemp
,
bool
isIncom
)
{
logger
.
LogInformation
(
$"提取绩效数据 填充数据 --
{
sheet
.
SheetName
}
"
);
//写入数据
var
head
=
GetOrCreate
(
sheet
,
sheetRead
.
Point
.
HeaderFirstRowNum
.
Value
);
var
rowIndex
=
sheetRead
.
Point
.
HeaderFirstRowNum
.
Value
+
1
;
var
header
=
data
.
Select
(
t
=>
t
.
TypeName
).
Distinct
();
int
lastrownumber
=
rowIndex
;
if
(!
isNewTemp
&&
!
isIncom
)
{
#
region
给历史模板已有科室补充数据
for
(
int
i
=
rowIndex
;
i
<
sheet
.
LastRowNum
+
1
;
i
++)
{
var
row
=
sheet
.
GetRow
(
i
);
if
(
row
!=
null
)
{
var
technicianAccount
=
row
.
GetCell
(
3
)?.
ToString
();
// 核算单元(医技组)
var
doctorAccount
=
row
.
GetCell
(
4
)?.
ToString
();
// 核算单元(医生组)
var
nurseAccount
=
row
.
GetCell
(
5
)?.
ToString
();
// 核算单元(护理组)
var
department
=
row
.
GetCell
(
6
)?.
ToString
();
// 科室名称
if
(
string
.
IsNullOrEmpty
(
department
))
continue
;
lastrownumber
=
rowIndex
;
var
deptData
=
data
.
Where
(
t
=>
t
.
AccountingUnitTechnician
==
technicianAccount
&&
t
.
AccountingUnitDoctor
==
doctorAccount
&&
t
.
AccountingUnitNurse
==
nurseAccount
&&
t
.
Department
==
department
);
if
(
deptData
==
null
||
!
deptData
.
Any
())
continue
;
for
(
int
j
=
7
;
j
<
head
.
LastCellNum
;
j
++)
{
var
headName
=
head
.
GetCell
(
j
).
StringCellValue
;
var
newCell
=
GetOrCreate
(
row
,
j
);
if
(
newCell
==
null
)
continue
;
var
value
=
deptData
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
headName
)?.
CellValue
??
"0"
;
if
(
isIncom
)
{
var
cellvalue
=
value
==
"0"
?
null
:
ConvertHelper
.
To
<
decimal
?>(
value
);
OutToExcelCell
(
newCell
,
cellvalue
);
newCell
.
CellStyle
=
style
;
}
else
if
(
newCell
.
CellType
!=
CellType
.
Formula
)
{
var
cellvalue
=
value
==
"0"
?
null
:
ConvertHelper
.
To
<
decimal
?>(
value
);
OutToExcelCell
(
newCell
,
cellvalue
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
}
}
data
.
RemoveAll
(
t
=>
t
.
AccountingUnitTechnician
==
technicianAccount
&&
t
.
AccountingUnitDoctor
==
doctorAccount
&&
t
.
AccountingUnitNurse
==
nurseAccount
&&
t
.
Department
==
department
);
}
}
#
endregion
}
if
(
data
==
null
||
!
data
.
Any
())
return
;
#
region
补充新的科室及数据
var
lastrowIndex
=
(
isNewTemp
||
isIncom
)
?
rowIndex
:
lastrownumber
+
1
;
foreach
(
var
department
in
data
.
Select
(
t
=>
new
{
t
.
Department
,
t
.
AccountingUnitDoctor
,
t
.
AccountingUnitNurse
,
t
.
AccountingUnitTechnician
}).
Distinct
())
{
var
row
=
GetOrCreate
(
sheet
,
lastrowIndex
);
for
(
int
i
=
head
.
FirstCellNum
+
3
;
i
<
head
.
LastCellNum
;
i
++)
{
var
headName
=
head
.
GetCell
(
i
).
StringCellValue
;
var
newCell
=
row
.
CreateCell
(
i
);
if
(
headName
==
"科室名称"
)
{
newCell
.
SetCellValue
(
department
.
Department
??
""
);
newCell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
默认
);
}
else
if
(
headName
.
Replace
(
"\n"
,
""
)
==
"核算单元(医生组)"
)
{
newCell
.
SetCellValue
(
department
.
AccountingUnitDoctor
??
""
);
newCell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
默认
);
}
else
if
(
headName
.
Replace
(
"\n"
,
""
)
==
"核算单元(护理组)"
)
{
newCell
.
SetCellValue
(
department
?.
AccountingUnitNurse
??
""
);
newCell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
默认
);
}
else
if
(
headName
.
Replace
(
"\n"
,
""
)
==
"核算单元(医技组)"
)
{
newCell
.
SetCellValue
(
department
.
AccountingUnitTechnician
??
""
);
newCell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
默认
);
}
else
{
var
celldata
=
data
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
.
Department
&&
t
.
AccountingUnitDoctor
==
department
.
AccountingUnitDoctor
&&
t
.
AccountingUnitNurse
==
department
.
AccountingUnitNurse
&&
t
.
AccountingUnitTechnician
==
department
.
AccountingUnitTechnician
&&
t
.
TypeName
==
headName
);
if
(
isIncom
)
{
OutToExcelCell
(
newCell
,
celldata
?.
CellValue
);
newCell
.
CellStyle
=
style
;
}
else
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
{
OutToExcelCell
(
newCell
,
celldata
?.
CellValue
);
newCell
.
CellStyle
=
style
;
}
}
}
lastrowIndex
++;
}
#
endregion
}
private
void
WriteCollectWorkHeader
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
collect_data
>
data
,
bool
isNewTemp
)
{
var
head
=
GetOrCreate
(
sheet
,
sheetRead
.
Point
.
HeaderFirstRowNum
.
Value
+
0
);
var
cellItems
=
data
.
Select
(
t
=>
t
.
TypeName
).
Distinct
().
ToList
();
if
(!
isNewTemp
)
{
#
region
过滤历史模板中已有的列头
//写入列头信息
int
cellStartIndex
=
sheetRead
.
Point
.
HeaderFirstCellNum
.
Value
+
2
;
for
(
int
i
=
cellStartIndex
;
i
<
head
.
LastCellNum
;
i
++)
{
var
cellvalue
=
head
.
GetCell
(
i
)?.
ToString
()?.
Trim
();
if
(
string
.
IsNullOrEmpty
(
cellvalue
))
continue
;
cellItems
.
Remove
(
cellvalue
);
}
#
endregion
}
if
(
cellItems
==
null
||
!
cellItems
.
Any
())
return
;
cellItems
.
Remove
(
"核算单元"
);
#
region
新增模板中不存在的列头
var
lastcellIndex
=
isNewTemp
?
sheetRead
.
Point
.
HeaderFirstCellNum
.
Value
+
2
:
head
.
LastCellNum
;
foreach
(
var
item
in
cellItems
)
{
var
headcell
=
GetOrCreate
(
head
,
lastcellIndex
);
headcell
.
SetCellValue
(
item
);
headcell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
列头
);
lastcellIndex
++;
}
#
endregion
}
private
void
WriteCollectWorkData
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
collect_data
>
data
,
bool
isNewTemp
)
{
var
head
=
GetOrCreate
(
sheet
,
sheetRead
.
Point
.
HeaderFirstRowNum
.
Value
+
0
);
var
rowIndex
=
sheetRead
.
Point
.
HeaderFirstRowNum
.
Value
+
2
;
int
lastrownumber
=
rowIndex
;
var
header
=
data
.
Select
(
t
=>
t
.
TypeName
).
Distinct
();
if
(!
isNewTemp
)
{
#
region
给历史模板已有科室补充数据
for
(
int
i
=
rowIndex
;
i
<
sheet
.
LastRowNum
+
1
;
i
++)
{
var
row
=
sheet
.
GetRow
(
i
);
if
(
row
!=
null
)
{
var
department
=
row
.
GetCell
(
2
)?.
ToString
();
// 科室名称
if
(
string
.
IsNullOrEmpty
(
department
))
continue
;
lastrownumber
++;
var
deptData
=
data
.
Where
(
t
=>
t
.
Department
==
department
);
if
(
deptData
==
null
||
!
deptData
.
Any
())
continue
;
var
accounting
=
deptData
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
"核算单元"
)?.
CellValue
;
if
(!
string
.
IsNullOrEmpty
(
accounting
))
{
var
accountCell
=
GetOrCreate
(
row
,
1
);
accountCell
.
SetCellValue
(
accounting
);
}
for
(
int
j
=
3
;
j
<
head
.
LastCellNum
;
j
++)
{
var
headName
=
head
.
GetCell
(
j
).
StringCellValue
;
var
newCell
=
GetOrCreate
(
row
,
j
);
if
(
newCell
==
null
)
continue
;
if
(
newCell
.
CellType
!=
CellType
.
Formula
)
{
var
extract
=
deptData
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
headName
);
var
value
=
extract
?.
CellValue
==
"0"
?
null
:
extract
?.
CellValue
;
OutToExcelCell
(
newCell
,
value
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
}
}
data
.
RemoveAll
(
t
=>
t
.
Department
==
department
);
}
}
#
endregion
}
if
(
data
==
null
||
!
data
.
Any
())
return
;
//var unit = sheet.SheetName.IndexOf("医生") > -1 ? new int[] { (int)UnitType.医生组, (int)UnitType.医技组 } : new int[] { (int)UnitType.护理组 };
#
region
补充新的科室及数据
var
lastrowIndex
=
isNewTemp
?
rowIndex
:
lastrownumber
+
1
;
foreach
(
var
department
in
data
.
Select
(
t
=>
t
.
Department
).
Where
(
t
=>
!
string
.
IsNullOrEmpty
(
t
)).
Distinct
())
{
var
row
=
sheet
.
CreateRow
(
lastrowIndex
);
for
(
int
i
=
head
.
FirstCellNum
+
1
;
i
<
head
.
LastCellNum
;
i
++)
{
var
headName
=
head
.
GetCell
(
i
).
StringCellValue
;
var
newCell
=
row
.
CreateCell
(
i
);
var
celldata
=
data
.
Where
(
t
=>
t
.
Department
==
department
);
if
(
headName
==
"科室名称"
)
{
newCell
.
SetCellValue
(
department
);
newCell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
默认
);
}
else
if
(
celldata
!=
null
&&
celldata
.
Any
())
{
if
(
headName
==
"核算单元"
)
{
var
accounting
=
celldata
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
"核算单元"
)?.
CellValue
;
newCell
.
SetCellValue
(
accounting
);
newCell
.
CellStyle
=
CellStyle
.
CreateCellStyle
(
workbook
,
StyleType
.
默认
);
}
else
{
var
extract
=
celldata
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
&&
t
.
TypeName
==
headName
);
OutToExcelCell
(
newCell
,
extract
?.
CellValue
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
}
}
}
lastrowIndex
++;
}
#
endregion
}
#
endregion
#
region
Common
#
region
Common
/// <summary>
/// <summary>
...
...
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