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
e4dba427
Commit
e4dba427
authored
Mar 29, 2023
by
wyc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
‘考勤下发’下发数据(增删改查)\预下发显示
parent
81c9ddee
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
578 additions
and
223 deletions
+578
-223
performance/Performance.Api/Controllers/AttendanceController.cs
+13
-23
performance/Performance.Api/wwwroot/Performance.Api.xml
+1
-1
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+60
-0
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+165
-0
performance/Performance.DtoModels/Enum.cs
+9
-7
performance/Performance.DtoModels/PerAttendanceIssueDto.cs
+87
-14
performance/Performance.EntityModels/Entity/per_attendance_issue.cs
+64
-18
performance/Performance.EntityModels/Entity/per_attendance_issue_record.cs
+68
-17
performance/Performance.Services/AttendanceService.cs
+111
-143
No files found.
performance/Performance.Api/Controllers/AttendanceController.cs
View file @
e4dba427
...
@@ -366,29 +366,19 @@ public IActionResult DownloadStatistics(int allotId)
...
@@ -366,29 +366,19 @@ public IActionResult DownloadStatistics(int allotId)
#
endregion
#
endregion
#
region
最终考勤结果
#
region
最终考勤结果
//// 最终考勤结果下发
/// <summary>
/// 最终考勤结果下发(预确认显示)
//// 判断一下,是否是首次下发
/// </summary>
//// 如果首次下发
/// <param name="allotId"></param>
//// 存储到表中per_attendance_issue
/// <param name="hospitalId"></param>
/// <returns></returns>
//// 不是首次下发
[
HttpPost
]
//// 自动驳回检查(涉及哪些人哪些科)
[
Route
(
"issue/statistics/PreConfirmationDisplay"
)]
public
ApiResponse
<
List
<
PerAttendanceIssueDto
>>
PreConfirmationDisplay
(
int
allotId
,
int
hospitalId
)
///// <summary>
{
///// 最终考勤结果下发(预确认显示)
var
userid
=
claim
.
GetUserId
();
///// </summary>
return
_attendanceService
.
PreConfirmationDisplay
(
allotId
,
userid
,
hospitalId
);
///// <param name="allotId"></param>
}
///// <param name="userid"></param>
///// <returns></returns>
//[HttpPost]
//[Route("issue/statistics/PreConfirmationDisplay")]
//public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allotId)
//{
// var userid = claim.GetUserId();
// return _attendanceService.PreConfirmationDisplay(allotId,userid);
//}
/// <summary>
/// <summary>
/// 最终考勤结果下发
/// 最终考勤结果下发
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
e4dba427
...
@@ -413,7 +413,7 @@
...
@@ -413,7 +413,7 @@
<param
name=
"allotId"
></param>
<param
name=
"allotId"
></param>
<returns></returns>
<returns></returns>
</member>
</member>
<member
name=
"M:Performance.Api.Controllers.AttendanceController.PreConfirmationDisplay(System.Int32)"
>
<member
name=
"M:Performance.Api.Controllers.AttendanceController.PreConfirmationDisplay(System.Int32
,System.Int32
)"
>
<summary>
<summary>
最终考勤结果下发(预确认显示)
最终考勤结果下发(预确认显示)
</summary>
</summary>
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
e4dba427
...
@@ -252,6 +252,66 @@
...
@@ -252,6 +252,66 @@
表示权限范围,如果与客户端申请的范围一致。
表示权限范围,如果与客户端申请的范围一致。
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.UnitType"
>
<summary>
人员类别
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.AccountingUnit"
>
<summary>
核算单元
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.PersonnelNumber"
>
<summary>
工号
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.PersonnelName"
>
<summary>
姓名
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.BeginDate"
>
<summary>
在科开始时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.EndDate"
>
<summary>
在科结束时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.WorkFullDays"
>
<summary>
全勤天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.AttendanceDays"
>
<summary>
出勤天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.DeductionDays"
>
<summary>
核减天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.NoDeductionDays"
>
<summary>
不核减天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.OperationType"
>
<summary>
操作类型
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAttendanceIssueDto.Remarks"
>
<summary>
备注
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAgainData.RowNumber"
>
<member
name=
"P:Performance.DtoModels.PerAgainData.RowNumber"
>
<summary>
<summary>
行号
行号
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
e4dba427
...
@@ -6118,6 +6118,171 @@
...
@@ -6118,6 +6118,171 @@
修改时间
修改时间
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.HospitalId"
>
<summary>
医院Id
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.AllotId"
>
<summary>
绩效Id
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.Code"
>
<summary>
核算单元编码
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.UnitType"
>
<summary>
人员类别
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.AccountingUnit"
>
<summary>
核算单元
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.PersonnelNumber"
>
<summary>
工号
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.PersonnelName"
>
<summary>
姓名
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.BeginDate"
>
<summary>
在科开始时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.EndDate"
>
<summary>
在科结束时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.WorkFullDays"
>
<summary>
全勤天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.AttendanceDays"
>
<summary>
出勤天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.DeductionDays"
>
<summary>
核减天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.NoDeductionDays"
>
<summary>
不核减天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.State"
>
<summary>
状态
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.UpdateUser"
>
<summary>
更新人
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.UpdateTime"
>
<summary>
更新时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.HospitalId"
>
<summary>
医院Id
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.AllotId"
>
<summary>
绩效Id
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.Code"
>
<summary>
核算单元编码
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.UnitType"
>
<summary>
人员类别
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.AccountingUnit"
>
<summary>
核算单元
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.PersonnelNumber"
>
<summary>
工号
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.PersonnelName"
>
<summary>
姓名
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.BeginDate"
>
<summary>
在科开始时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.EndDate"
>
<summary>
在科结束时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.WorkFullDays"
>
<summary>
全勤天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.AttendanceDays"
>
<summary>
出勤天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.DeductionDays"
>
<summary>
核减天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.NoDeductionDays"
>
<summary>
不核减天数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.State"
>
<summary>
状态
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.OperationType"
>
<summary>
操作类型
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.CreateUser"
>
<summary>
操作人
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue_record.CreationTime"
>
<summary>
操作时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_type.IsDeduction"
>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_type.IsDeduction"
>
<summary>
<summary>
是否核减出勤 1 核减 2 不核减
是否核减出勤 1 核减 2 不核减
...
...
performance/Performance.DtoModels/Enum.cs
View file @
e4dba427
...
@@ -119,13 +119,15 @@ public enum Deduction
...
@@ -119,13 +119,15 @@ public enum Deduction
}
}
public
enum
State
public
enum
State
{
{
首次下发
=
1
,
已下发未确认
=
1
,
确认
=
2
,
确认
=
2
,
确认未修改
=
3
,
质疑
=
3
,
确认已修改
=
4
,
}
质疑
=
5
,
public
enum
OperationType
质疑未修改
=
6
,
{
质疑已修改
=
7
,
新增
=
1
,
修改
=
2
,
删除
=
3
,
}
}
}
}
...
...
performance/Performance.DtoModels/PerAttendanceIssueDto.cs
View file @
e4dba427
using
System
;
using
Performance.EntityModels.Entity
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.ComponentModel.DataAnnotations
;
using
System.ComponentModel.DataAnnotations
;
using
System.Linq
;
using
System.Linq
;
...
@@ -9,18 +10,90 @@ namespace Performance.DtoModels
...
@@ -9,18 +10,90 @@ namespace Performance.DtoModels
{
{
public
class
PerAttendanceIssueDto
public
class
PerAttendanceIssueDto
{
{
public
int
AllotId
{
get
;
set
;
}
//绩效Id
public
PerAttendanceIssueDto
()
public
string
Code
{
get
;
set
;
}
//核算单元编码
{
}
public
string
UnitType
{
get
;
set
;
}
//人员类别
public
PerAttendanceIssueDto
(
AttendanceStatistics
item
)
public
string
AccountingUnit
{
get
;
set
;
}
//核算单元
{
public
string
PersonnelNumber
{
get
;
set
;
}
//工号
UnitType
=
item
.
UnitType
;
public
string
PersonnelName
{
get
;
set
;
}
//姓名
AccountingUnit
=
item
.
AccountingUnit
;
public
DateTime
?
BeginDate
{
get
;
set
;
}
//在科开始时间
PersonnelNumber
=
item
.
PersonnelNumber
;
public
DateTime
?
EndDate
{
get
;
set
;
}
//在科结束时间
PersonnelName
=
item
.
PersonnelName
;
public
int
WorkFullDays
{
get
;
set
;
}
//全勤天数
BeginDate
=
item
.
BeginDate
;
public
int
AttendanceDays
{
get
;
set
;
}
//出勤天数
EndDate
=
item
.
EndDate
;
public
int
DeductionDays
{
get
;
set
;
}
//核减天数
DeductionDays
=
item
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
public
int
NoDeductionDays
{
get
;
set
;
}
//不核减天数
NoDeductionDays
=
item
.
Detial
.
Sum
(
w
=>
w
.
Value
)
-
item
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
public
int
OperationType
{
get
;
set
;
}
//操作类型
AttendanceDays
=
item
.
AttendanceDays
;
WorkFullDays
=
item
.
AttendanceDays
+
item
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
OperationType
=
(
int
)
Attendance
.
OperationType
.
新增
;
Remarks
=
""
;
}
public
PerAttendanceIssueDto
(
per_attendance_issue
item
)
{
UnitType
=
item
.
UnitType
;
AccountingUnit
=
item
.
AccountingUnit
;
PersonnelNumber
=
item
.
PersonnelNumber
;
PersonnelName
=
item
.
PersonnelName
;
BeginDate
=
item
.
BeginDate
;
EndDate
=
item
.
EndDate
;
DeductionDays
=
item
.
DeductionDays
;
NoDeductionDays
=
item
.
NoDeductionDays
;
AttendanceDays
=
item
.
AttendanceDays
;
WorkFullDays
=
item
.
AttendanceDays
+
item
.
DeductionDays
;
OperationType
=
(
int
)
Attendance
.
OperationType
.
删除
;
Remarks
=
"删除数据"
;
}
//public int HospitalId { get; set; } //医院Id
//public int AllotId { get; set; } //绩效Id
//public string Code { get; set; } //核算单元编码
/// <summary>
/// 人员类别
/// </summary>
public
string
UnitType
{
get
;
set
;
}
/// <summary>
/// 核算单元
/// </summary>
public
string
AccountingUnit
{
get
;
set
;
}
/// <summary>
/// 工号
/// </summary>
public
string
PersonnelNumber
{
get
;
set
;
}
/// <summary>
/// 姓名
/// </summary>
public
string
PersonnelName
{
get
;
set
;
}
/// <summary>
/// 在科开始时间
/// </summary>
public
DateTime
?
BeginDate
{
get
;
set
;
}
/// <summary>
/// 在科结束时间
/// </summary>
public
DateTime
?
EndDate
{
get
;
set
;
}
/// <summary>
/// 全勤天数
/// </summary>
public
int
WorkFullDays
{
get
;
set
;
}
/// <summary>
/// 出勤天数
/// </summary>
public
int
AttendanceDays
{
get
;
set
;
}
/// <summary>
/// 核减天数
/// </summary>
public
int
DeductionDays
{
get
;
set
;
}
/// <summary>
/// 不核减天数
/// </summary>
public
int
NoDeductionDays
{
get
;
set
;
}
/// <summary>
/// 操作类型
/// </summary>
public
int
OperationType
{
get
;
set
;
}
/// <summary>
/// 备注
/// </summary>
public
string
Remarks
{
get
;
set
;
}
}
}
}
}
performance/Performance.EntityModels/Entity/per_attendance_issue.cs
View file @
e4dba427
...
@@ -13,23 +13,69 @@ public class per_attendance_issue
...
@@ -13,23 +13,69 @@ public class per_attendance_issue
{
{
[
Key
]
[
Key
]
public
int
Id
{
get
;
set
;
}
public
int
Id
{
get
;
set
;
}
public
int
HospitalId
{
get
;
set
;
}
//医院Id
/// <summary>
public
int
AllotId
{
get
;
set
;
}
//绩效Id
/// 医院Id
public
string
Code
{
get
;
set
;
}
//核算单元编码
/// </summary>
public
string
UnitType
{
get
;
set
;
}
//人员类别
public
int
HospitalId
{
get
;
set
;
}
public
string
AccountingUnit
{
get
;
set
;
}
//核算单元
/// <summary>
public
string
PersonnelNumber
{
get
;
set
;
}
//工号
/// 绩效Id
public
string
PersonnelName
{
get
;
set
;
}
//姓名
/// </summary>
public
DateTime
?
BeginDate
{
get
;
set
;
}
//在科开始时间
public
int
AllotId
{
get
;
set
;
}
public
DateTime
?
EndDate
{
get
;
set
;
}
//在科结束时间
/// <summary>
public
int
WorkFullDays
{
get
;
set
;
}
//全勤天数
/// 核算单元编码
public
int
AttendanceDays
{
get
;
set
;
}
//出勤天数
/// </summary>
public
int
DeductionDays
{
get
;
set
;
}
//核减天数
public
string
Code
{
get
;
set
;
}
public
int
NoDeductionDays
{
get
;
set
;
}
//不核减天数
/// <summary>
public
int
State
{
get
;
set
;
}
//状态
/// 人员类别
public
int
CreateUser
{
get
;
set
;
}
//首次下发人
/// </summary>
public
int
UpdateUser
{
get
;
set
;
}
//更新人
public
string
UnitType
{
get
;
set
;
}
public
DateTime
?
CreationTime
{
get
;
set
;
}
//首次下发时间
/// <summary>
public
DateTime
?
UpdateTime
{
get
;
set
;
}
//更新时间
/// 核算单元
/// </summary>
public
string
AccountingUnit
{
get
;
set
;
}
/// <summary>
/// 工号
/// </summary>
public
string
PersonnelNumber
{
get
;
set
;
}
/// <summary>
/// 姓名
/// </summary>
public
string
PersonnelName
{
get
;
set
;
}
/// <summary>
/// 在科开始时间
/// </summary>
public
DateTime
?
BeginDate
{
get
;
set
;
}
/// <summary>
/// 在科结束时间
/// </summary>
public
DateTime
?
EndDate
{
get
;
set
;
}
/// <summary>
/// 全勤天数
/// </summary>
public
int
WorkFullDays
{
get
;
set
;
}
/// <summary>
/// 出勤天数
/// </summary>
public
int
AttendanceDays
{
get
;
set
;
}
/// <summary>
/// 核减天数
/// </summary>
public
int
DeductionDays
{
get
;
set
;
}
/// <summary>
/// 不核减天数
/// </summary>
public
int
NoDeductionDays
{
get
;
set
;
}
/// <summary>
/// 状态
/// </summary>
public
int
State
{
get
;
set
;
}
/// <summary>
/// 更新人
/// </summary>
public
int
UpdateUser
{
get
;
set
;
}
/// <summary>
/// 更新时间
/// </summary>
public
DateTime
?
UpdateTime
{
get
;
set
;
}
}
}
}
}
performance/Performance.EntityModels/Entity/per_attendance_issue_record.cs
View file @
e4dba427
...
@@ -14,23 +14,74 @@ public class per_attendance_issue_record
...
@@ -14,23 +14,74 @@ public class per_attendance_issue_record
[
Key
]
[
Key
]
public
int
Id
{
get
;
set
;
}
public
int
Id
{
get
;
set
;
}
public
int
HospitalId
{
get
;
set
;
}
//医院Id
/// <summary>
public
int
AllotId
{
get
;
set
;
}
//绩效Id
/// 医院Id
public
string
Code
{
get
;
set
;
}
//核算单元编码
/// </summary>
public
string
UnitType
{
get
;
set
;
}
//人员类别
public
int
HospitalId
{
get
;
set
;
}
public
string
AccountingUnit
{
get
;
set
;
}
//核算单元
/// <summary>
public
string
PersonnelNumber
{
get
;
set
;
}
//工号
/// 绩效Id
public
string
PersonnelName
{
get
;
set
;
}
//姓名
/// </summary>
public
DateTime
?
BeginDate
{
get
;
set
;
}
//在科开始时间
public
int
AllotId
{
get
;
set
;
}
public
DateTime
?
EndDate
{
get
;
set
;
}
//在科结束时间
/// <summary>
public
int
WorkFullDays
{
get
;
set
;
}
//全勤天数
/// 核算单元编码
public
int
AttendanceDays
{
get
;
set
;
}
//出勤天数
/// </summary>
public
int
DeductionDays
{
get
;
set
;
}
//核减天数
public
string
Code
{
get
;
set
;
}
public
int
NoDeductionDays
{
get
;
set
;
}
//不核减天数
/// <summary>
public
int
State
{
get
;
set
;
}
//状态
/// 人员类别
public
string
OperationType
{
get
;
set
;
}
//操作类型
/// </summary>
public
int
CreateUser
{
get
;
set
;
}
//操作人
public
string
UnitType
{
get
;
set
;
}
public
DateTime
?
CreationTime
{
get
;
set
;
}
//操作时间
/// <summary>
/// 核算单元
/// </summary>
public
string
AccountingUnit
{
get
;
set
;
}
/// <summary>
/// 工号
/// </summary>
public
string
PersonnelNumber
{
get
;
set
;
}
/// <summary>
/// 姓名
/// </summary>
public
string
PersonnelName
{
get
;
set
;
}
/// <summary>
/// 在科开始时间
/// </summary>
public
DateTime
?
BeginDate
{
get
;
set
;
}
/// <summary>
/// 在科结束时间
/// </summary>
public
DateTime
?
EndDate
{
get
;
set
;
}
/// <summary>
/// 全勤天数
/// </summary>
public
int
WorkFullDays
{
get
;
set
;
}
/// <summary>
/// 出勤天数
/// </summary>
public
int
AttendanceDays
{
get
;
set
;
}
/// <summary>
/// 核减天数
/// </summary>
public
int
DeductionDays
{
get
;
set
;
}
/// <summary>
/// 不核减天数
/// </summary>
public
int
NoDeductionDays
{
get
;
set
;
}
/// <summary>
/// 状态
/// </summary>
public
int
State
{
get
;
set
;
}
/// <summary>
/// 操作类型
/// </summary>
public
string
OperationType
{
get
;
set
;
}
/// <summary>
/// 操作人
/// </summary>
public
int
CreateUser
{
get
;
set
;
}
/// <summary>
/// 操作时间
/// </summary>
public
DateTime
?
CreationTime
{
get
;
set
;
}
}
}
...
...
performance/Performance.Services/AttendanceService.cs
View file @
e4dba427
...
@@ -763,55 +763,103 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
...
@@ -763,55 +763,103 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
}
}
return
new
ApiResponse
<
List
<
AttendanceStatistics
>>(
ResponseType
.
OK
,
""
,
statistics
);
return
new
ApiResponse
<
List
<
AttendanceStatistics
>>(
ResponseType
.
OK
,
""
,
statistics
);
}
}
#
region
考勤下发
//public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allotId, int userid)
public
ApiResponse
<
List
<
PerAttendanceIssueDto
>>
PreConfirmationDisplay
(
int
allotId
,
int
userid
,
int
hospitalId
)
//{
{
var
statistics
=
GetAttendanceStatistics
(
allotId
,
userid
).
Data
;
// return null;
var
issues
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
&&
w
.
HospitalId
==
hospitalId
);
//}
var
issuePersonnelNumber
=
issues
.
Select
(
s
=>
s
.
PersonnelNumber
);
var
statisticPersonnelNumber
=
statistics
.
Select
(
s
=>
s
.
PersonnelNumber
);
//新增(查询页面有实表没有的数据)
var
xzStatistics
=
statistics
.
Where
(
w
=>
!
issuePersonnelNumber
.
Contains
(
w
.
PersonnelNumber
));
//修改(查询数据)
var
xgStatistics
=
statistics
.
Where
(
w
=>
issuePersonnelNumber
.
Contains
(
w
.
PersonnelNumber
));
//删除(删除页面没有的数据)
var
scStatistics
=
issues
.
Where
(
w
=>
!
statisticPersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
var
issuedates
=
new
List
<
PerAttendanceIssueDto
>();
if
(
xzStatistics
.
Any
())
{
var
issuedate
=
xzStatistics
.
Select
(
item
=>
{
return
new
PerAttendanceIssueDto
(
item
);
});
issuedates
.
AddRange
(
issuedate
.
ToArray
());
}
if
(
xgStatistics
.
Any
())
{
Func
<
per_attendance_issue
,
AttendanceStatistics
,
bool
>
func
=
(
issue
,
statistic
)
=>
{
var
result
=
true
;
result
=
issue
.
UnitType
==
statistic
.
UnitType
&&
issue
.
AccountingUnit
==
statistic
.
AccountingUnit
&&
issue
.
BeginDate
==
statistic
.
BeginDate
&&
issue
.
EndDate
==
statistic
.
EndDate
&&
issue
.
AttendanceDays
==
statistic
.
AttendanceDays
&&
issue
.
DeductionDays
==
statistic
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
)
&&
issue
.
NoDeductionDays
==
statistic
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Equals
(
"核减"
)).
Sum
(
w
=>
w
.
Value
);
return
result
;
};
foreach
(
var
personnelNumber
in
xgStatistics
.
Select
(
w
=>
w
.
PersonnelNumber
))
{
var
staticPersonnel
=
statistics
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
personnelNumber
);
var
issuePersonnel
=
issues
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
personnelNumber
);
if
(
func
(
issuePersonnel
,
staticPersonnel
))
continue
;
issuedates
.
Add
(
new
PerAttendanceIssueDto
(
staticPersonnel
)
{
PersonnelName
=
issuePersonnel
.
PersonnelName
,
PersonnelNumber
=
issuePersonnel
.
PersonnelNumber
,
OperationType
=
(
int
)
Attendance
.
OperationType
.
修改
,
Remarks
=
"修改数据"
,
});
}
}
if
(
scStatistics
.
Any
())
{
foreach
(
var
report
in
scStatistics
)
issuedates
.
Add
(
new
PerAttendanceIssueDto
(
report
));
}
return
new
ApiResponse
<
List
<
PerAttendanceIssueDto
>>(
ResponseType
.
OK
,
issuedates
);
}
//下发
//下发
public
ApiResponse
IssueStatistics
(
int
allotId
,
int
userid
,
int
hospitalId
)
public
ApiResponse
IssueStatistics
(
int
allotId
,
int
userid
,
int
hospitalId
)
{
{
//首次下发
var
preConfirmationDisplay
=
PreConfirmationDisplay
(
allotId
,
userid
,
hospitalId
).
Data
;
var
statistics
=
GetAttendanceStatistics
(
allotId
,
userid
).
Data
;
var
issues
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
&&
w
.
HospitalId
==
hospitalId
);
var
issues
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
);
var
cofaccounting
=
cofaccountingRepository
.
GetEntities
(
g
=>
g
.
AllotId
==
allotId
);
var
issuePersonnelNumber
=
issues
.
Select
(
s
=>
s
.
PersonnelNumber
);
var
insertIssues
=
preConfirmationDisplay
.
Where
(
w
=>
w
.
OperationType
==
(
int
)
Attendance
.
OperationType
.
新增
).
ToList
();
var
scStatistics
=
statistics
.
Where
(
w
=>
!
issuePersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
var
updateIssues
=
preConfirmationDisplay
.
Where
(
w
=>
w
.
OperationType
==
(
int
)
Attendance
.
OperationType
.
修改
).
ToList
();
if
(
scStatistics
.
Any
())
var
deleteIssues
=
preConfirmationDisplay
.
Where
(
w
=>
w
.
OperationType
==
(
int
)
Attendance
.
OperationType
.
删除
).
Select
(
s
=>
s
.
PersonnelNumber
).
ToList
();
if
(
insertIssues
.
Any
())
{
{
var
i
ssuedates
=
scStatistic
s
.
Select
(
item
=>
var
i
nserts
=
insertIssue
s
.
Select
(
item
=>
{
{
int
deductionDays
=
item
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
var
code
=
cofaccounting
.
FirstOrDefault
(
w
=>
w
.
UnitType
==
item
.
UnitType
&&
w
.
AccountingUnit
==
item
.
AccountingUnit
);
int
noDeductionDays
=
item
.
Detial
.
Sum
(
w
=>
w
.
Value
)
-
deductionDays
;
var
cofaccounting
=
cofaccountingRepository
.
GetEntity
(
w
=>
w
.
UnitType
==
item
.
UnitType
&&
w
.
AccountingUnit
==
item
.
AccountingUnit
);
var
code
=
cofaccounting
?.
Code
;
return
new
per_attendance_issue
()
return
new
per_attendance_issue
()
{
{
AllotId
=
item
.
AllotID
,
AllotId
=
allotId
,
HospitalId
=
hospitalId
,
HospitalId
=
hospitalId
,
Code
=
code
,
Code
=
code
.
Code
,
UnitType
=
item
.
UnitType
,
UnitType
=
item
.
UnitType
,
AccountingUnit
=
item
.
AccountingUnit
,
AccountingUnit
=
item
.
AccountingUnit
,
PersonnelNumber
=
item
.
PersonnelNumber
,
PersonnelNumber
=
item
.
PersonnelNumber
,
PersonnelName
=
item
.
PersonnelName
,
PersonnelName
=
item
.
PersonnelName
,
BeginDate
=
item
.
BeginDate
,
BeginDate
=
item
.
BeginDate
,
EndDate
=
item
.
EndDate
,
EndDate
=
item
.
EndDate
,
DeductionDays
=
d
eductionDays
,
DeductionDays
=
item
.
D
eductionDays
,
NoDeductionDays
=
n
oDeductionDays
,
NoDeductionDays
=
item
.
N
oDeductionDays
,
AttendanceDays
=
item
.
AttendanceDays
,
AttendanceDays
=
item
.
AttendanceDays
,
WorkFullDays
=
item
.
AttendanceDays
+
deductionDays
,
WorkFullDays
=
item
.
AttendanceDays
+
item
.
DeductionDays
,
CreateUser
=
userid
,
CreationTime
=
DateTime
.
Now
,
UpdateUser
=
userid
,
UpdateUser
=
userid
,
UpdateTime
=
DateTime
.
Now
,
UpdateTime
=
DateTime
.
Now
,
State
=
(
int
)
Attendance
.
State
.
首次下发
,
State
=
(
int
)
Attendance
.
State
.
已下发未确认
,
};
};
});
});
perforPerAttendanceIssueRepository
.
AddRange
(
i
ssuedate
s
.
ToArray
());
perforPerAttendanceIssueRepository
.
AddRange
(
i
nsert
s
.
ToArray
());
//记录新增
//记录新增
var
insert
=
mapper
.
Map
<
IEnumerable
<
per_attendance_issue_record
>>(
i
ssuedate
s
);
var
insert
=
mapper
.
Map
<
IEnumerable
<
per_attendance_issue_record
>>(
i
nsert
s
);
foreach
(
var
record
in
insert
)
foreach
(
var
record
in
insert
)
{
{
record
.
OperationType
=
"新增"
;
record
.
OperationType
=
"新增"
;
...
@@ -821,129 +869,50 @@ public ApiResponse IssueStatistics(int allotId, int userid, int hospitalId)
...
@@ -821,129 +869,50 @@ public ApiResponse IssueStatistics(int allotId, int userid, int hospitalId)
perforPerAttendanceIssueRecordRepository
.
AddRange
(
insert
.
ToArray
());
perforPerAttendanceIssueRecordRepository
.
AddRange
(
insert
.
ToArray
());
}
}
if
(
updateIssues
.
Any
())
{
Func
<
per_attendance_issue
,
AttendanceStatistics
,
bool
>
func
=
(
issue
,
statistic
)
=>
List
<
per_attendance_issue
>
updateIssuedates
=
new
List
<
per_attendance_issue
>();
{
foreach
(
var
item
in
updateIssues
)
var
result
=
true
;
{
result
=
issue
.
BeginDate
==
statistic
.
BeginDate
&&
var
code
=
cofaccounting
.
FirstOrDefault
(
w
=>
w
.
UnitType
==
item
.
UnitType
&&
w
.
AccountingUnit
==
item
.
AccountingUnit
);
issue
.
EndDate
==
statistic
.
EndDate
&&
var
issuePersonnel
=
issues
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
item
.
PersonnelNumber
);
issue
.
AttendanceDays
==
statistic
.
AttendanceDays
&&
issuePersonnel
.
UnitType
=
item
.
UnitType
;
issue
.
DeductionDays
==
statistic
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
)
&&
issuePersonnel
.
AccountingUnit
=
item
.
AccountingUnit
;
issue
.
NoDeductionDays
==
statistic
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Equals
(
"核减"
)).
Sum
(
w
=>
w
.
Value
);
issuePersonnel
.
Code
=
code
.
Code
;
return
result
;
issuePersonnel
.
BeginDate
=
item
.
BeginDate
;
};
issuePersonnel
.
EndDate
=
item
.
EndDate
;
#
region
确认后的下发
issuePersonnel
.
DeductionDays
=
item
.
DeductionDays
;
var
issueConfirm
=
issues
.
Where
(
w
=>
w
.
State
==
(
int
)
Attendance
.
State
.
确认
||
w
.
State
==
(
int
)
Attendance
.
State
.
确认已修改
||
w
.
State
==
(
int
)
Attendance
.
State
.
确认未修改
).
ToList
();
issuePersonnel
.
NoDeductionDays
=
item
.
NoDeductionDays
;
var
issueConfirmPersonnelNumber
=
issueConfirm
.
Select
(
s
=>
s
.
PersonnelNumber
);
issuePersonnel
.
AttendanceDays
=
item
.
AttendanceDays
;
var
qrStatistics
=
statistics
.
Where
(
w
=>
issueConfirmPersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
issuePersonnel
.
WorkFullDays
=
item
.
AttendanceDays
+
item
.
DeductionDays
;
if
(
qrStatistics
.
Any
())
issuePersonnel
.
State
=
(
int
)
Attendance
.
State
.
已下发未确认
;
{
issuePersonnel
.
UpdateUser
=
userid
;
issuePersonnel
.
UpdateTime
=
DateTime
.
Now
;
List
<
per_attendance_issue
>
qsIssuedates
=
new
List
<
per_attendance_issue
>();
updateIssuedates
.
Add
(
issuePersonnel
);
foreach
(
var
personnelNumber
in
issueConfirmPersonnelNumber
)
}
{
var
staticPersonnel
=
qrStatistics
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
personnelNumber
);
perforPerAttendanceIssueRepository
.
UpdateRange
(
updateIssuedates
.
ToArray
());
var
issuePersonnel
=
issueConfirm
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
personnelNumber
);
//记录新增
if
(!
func
(
issuePersonnel
,
staticPersonnel
))
var
insert
=
mapper
.
Map
<
IEnumerable
<
per_attendance_issue_record
>>(
updateIssuedates
);
{
foreach
(
var
record
in
insert
)
issuePersonnel
.
BeginDate
=
staticPersonnel
.
BeginDate
;
issuePersonnel
.
EndDate
=
staticPersonnel
.
EndDate
;
issuePersonnel
.
AttendanceDays
=
staticPersonnel
.
AttendanceDays
;
issuePersonnel
.
WorkFullDays
=
staticPersonnel
.
AttendanceDays
+
staticPersonnel
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
issuePersonnel
.
DeductionDays
=
staticPersonnel
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
issuePersonnel
.
NoDeductionDays
=
staticPersonnel
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Equals
(
"核减"
)).
Sum
(
w
=>
w
.
Value
);
issuePersonnel
.
State
=
(
int
)
Attendance
.
State
.
确认已修改
;
}
else
{
issuePersonnel
.
State
=
(
int
)
Attendance
.
State
.
确认未修改
;
}
qsIssuedates
.
Add
(
issuePersonnel
);
}
perforPerAttendanceIssueRepository
.
UpdateRange
(
qsIssuedates
.
ToArray
());
//记录修改
var
Issuedates
=
qsIssuedates
.
ToList
();
foreach
(
var
item
in
qsIssuedates
)
{
if
(
item
.
State
==
(
int
)
Attendance
.
State
.
确认已修改
||
item
.
State
==
(
int
)
Attendance
.
State
.
质疑已修改
)
continue
;
Issuedates
.
Remove
(
item
);
}
var
qsInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
Issuedates
);
if
(
qsInsert
.
Any
())
foreach
(
var
record
in
qsInsert
)
{
{
record
.
Id
=
0
;
record
.
Id
=
0
;
record
.
OperationType
=
"修改"
;
record
.
OperationType
=
"修改"
;
record
.
CreateUser
=
userid
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
record
.
CreationTime
=
DateTime
.
Now
;
}
}
perforPerAttendanceIssueRecordRepository
.
AddRange
(
qsInsert
.
ToArray
());
}
#
endregion
#
region
质疑后的下发
var
issueQuestion
=
issues
.
Where
(
w
=>
w
.
State
==
(
int
)
Attendance
.
State
.
质疑
||
w
.
State
==
(
int
)
Attendance
.
State
.
质疑已修改
||
w
.
State
==
(
int
)
Attendance
.
State
.
质疑未修改
).
ToList
();
var
issueQuestionPersonnelNumber
=
issueQuestion
.
Select
(
s
=>
s
.
PersonnelNumber
).
ToList
();
var
zyStatistics
=
statistics
.
Where
(
w
=>
issueQuestionPersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
if
(
zyStatistics
.
Any
())
{
List
<
per_attendance_issue
>
zyIssuedates
=
new
List
<
per_attendance_issue
>();
foreach
(
var
personnelNumber
in
issueQuestionPersonnelNumber
)
{
var
staticPersonnel
=
zyStatistics
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
personnelNumber
);
var
issuePersonnel
=
issueQuestion
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
personnelNumber
);
if
(!
func
(
issuePersonnel
,
staticPersonnel
))
{
issuePersonnel
.
BeginDate
=
staticPersonnel
.
BeginDate
;
issuePersonnel
.
EndDate
=
staticPersonnel
.
EndDate
;
issuePersonnel
.
AttendanceDays
=
staticPersonnel
.
AttendanceDays
;
issuePersonnel
.
WorkFullDays
=
staticPersonnel
.
AttendanceDays
+
staticPersonnel
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
issuePersonnel
.
DeductionDays
=
staticPersonnel
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
issuePersonnel
.
NoDeductionDays
=
staticPersonnel
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Equals
(
"核减"
)).
Sum
(
w
=>
w
.
Value
);
issuePersonnel
.
State
=
(
int
)
Attendance
.
State
.
质疑已修改
;
}
else
{
issuePersonnel
.
State
=
(
int
)
Attendance
.
State
.
质疑未修改
;
}
zyIssuedates
.
Add
(
issuePersonnel
);
}
perforPerAttendanceIssueRepository
.
UpdateRange
(
zyIssuedates
.
ToArray
());
//记录修改
var
Issuedates
=
zyIssuedates
.
ToList
();
foreach
(
var
item
in
zyIssuedates
)
{
if
(
item
.
State
==
(
int
)
Attendance
.
State
.
确认已修改
||
item
.
State
==
(
int
)
Attendance
.
State
.
质疑已修改
)
continue
;
Issuedates
.
Remove
(
item
);
}
var
zyInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
Issuedates
);
perforPerAttendanceIssueRecordRepository
.
AddRange
(
insert
.
ToArray
());
if
(
zyInsert
.
Any
())
foreach
(
var
record
in
zyInsert
)
{
record
.
Id
=
0
;
record
.
OperationType
=
"修改"
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
}
perforPerAttendanceIssueRecordRepository
.
AddRange
(
zyInsert
.
ToArray
());
}
}
#
endregion
if
(
deleteIssues
.
Any
())
#
region
删除多余的
var
statisticsPersonnelNumber
=
statistics
.
Select
(
s
=>
s
.
PersonnelNumber
).
ToList
();
var
shanchuStatistics
=
issues
.
Where
(
w
=>
!
statisticsPersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
if
(
shanchuStatistics
.
Any
())
{
{
perforPerAttendanceIssueRepository
.
RemoveRange
(
shanchuStatistics
.
ToArray
());
var
deletePersonnel
=
issues
.
Where
(
w
=>
deleteIssues
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
////记录质疑修改
perforPerAttendanceIssueRepository
.
RemoveRange
(
deletePersonnel
.
ToArray
());
var
scInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
shanchuStatistics
.
ToList
());
////记录删除
var
scInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
deletePersonnel
.
ToList
());
foreach
(
var
record
in
scInsert
)
foreach
(
var
record
in
scInsert
)
{
{
record
.
Id
=
0
;
record
.
OperationType
=
"删除"
;
record
.
OperationType
=
"删除"
;
record
.
CreateUser
=
userid
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
record
.
CreationTime
=
DateTime
.
Now
;
...
@@ -951,13 +920,10 @@ public ApiResponse IssueStatistics(int allotId, int userid, int hospitalId)
...
@@ -951,13 +920,10 @@ public ApiResponse IssueStatistics(int allotId, int userid, int hospitalId)
perforPerAttendanceIssueRecordRepository
.
AddRange
(
scInsert
.
ToArray
());
perforPerAttendanceIssueRecordRepository
.
AddRange
(
scInsert
.
ToArray
());
}
}
#
endregion
return
new
ApiResponse
(
ResponseType
.
OK
,
"下发成功"
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"下发成功"
);
}
}
//最终考勤结果质疑或确认无误((批量操作)
public
ApiResponse
ChooseStatistics
(
int
allotId
,
int
userid
,
int
[]
issueid
,
bool
choose
)
public
ApiResponse
ChooseStatistics
(
int
allotId
,
int
userid
,
int
[]
issueid
,
bool
choose
)
{
{
var
issuedates
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
&&
issueid
.
Contains
(
w
.
Id
)).
ToList
();
var
issuedates
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
&&
issueid
.
Contains
(
w
.
Id
)).
ToList
();
...
@@ -970,6 +936,8 @@ public ApiResponse ChooseStatistics(int allotId, int userid, int[] issueid, bool
...
@@ -970,6 +936,8 @@ public ApiResponse ChooseStatistics(int allotId, int userid, int[] issueid, bool
perforPerAttendanceIssueRepository
.
UpdateRange
(
issuedates
.
ToArray
());
perforPerAttendanceIssueRepository
.
UpdateRange
(
issuedates
.
ToArray
());
return
new
ApiResponse
(
ResponseType
.
OK
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
}
#
endregion
// 拆分请假时间段为每个日期
// 拆分请假时间段为每个日期
private
List
<
DateTime
>
SplitEveryDay
(
DateTime
begin
,
DateTime
end
)
private
List
<
DateTime
>
SplitEveryDay
(
DateTime
begin
,
DateTime
end
)
...
...
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