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
Hide 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)
#
endregion
#
region
最终考勤结果
//// 最终考勤结果下发
//// 判断一下,是否是首次下发
//// 如果首次下发
//// 存储到表中per_attendance_issue
//// 不是首次下发
//// 自动驳回检查(涉及哪些人哪些科)
///// <summary>
///// 最终考勤结果下发(预确认显示)
///// </summary>
///// <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>
/// <param name="allotId"></param>
/// <param name="hospitalId"></param>
/// <returns></returns>
[
HttpPost
]
[
Route
(
"issue/statistics/PreConfirmationDisplay"
)]
public
ApiResponse
<
List
<
PerAttendanceIssueDto
>>
PreConfirmationDisplay
(
int
allotId
,
int
hospitalId
)
{
var
userid
=
claim
.
GetUserId
();
return
_attendanceService
.
PreConfirmationDisplay
(
allotId
,
userid
,
hospitalId
);
}
/// <summary>
/// 最终考勤结果下发
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
e4dba427
...
...
@@ -413,7 +413,7 @@
<param
name=
"allotId"
></param>
<returns></returns>
</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>
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
e4dba427
...
...
@@ -252,6 +252,66 @@
表示权限范围,如果与客户端申请的范围一致。
</summary>
</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"
>
<summary>
行号
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
e4dba427
...
...
@@ -6118,6 +6118,171 @@
修改时间
</summary>
</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"
>
<summary>
是否核减出勤 1 核减 2 不核减
...
...
performance/Performance.DtoModels/Enum.cs
View file @
e4dba427
...
...
@@ -119,13 +119,15 @@ public enum Deduction
}
public
enum
State
{
首次下发
=
1
,
确认
=
2
,
确认未修改
=
3
,
确认已修改
=
4
,
质疑
=
5
,
质疑未修改
=
6
,
质疑已修改
=
7
,
已下发未确认
=
1
,
确认
=
2
,
质疑
=
3
,
}
public
enum
OperationType
{
新增
=
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.ComponentModel.DataAnnotations
;
using
System.Linq
;
...
...
@@ -9,18 +10,90 @@ namespace Performance.DtoModels
{
public
class
PerAttendanceIssueDto
{
public
int
AllotId
{
get
;
set
;
}
//绩效Id
public
string
Code
{
get
;
set
;
}
//核算单元编码
public
string
UnitType
{
get
;
set
;
}
//人员类别
public
string
AccountingUnit
{
get
;
set
;
}
//核算单元
public
string
PersonnelNumber
{
get
;
set
;
}
//工号
public
string
PersonnelName
{
get
;
set
;
}
//姓名
public
DateTime
?
BeginDate
{
get
;
set
;
}
//在科开始时间
public
DateTime
?
EndDate
{
get
;
set
;
}
//在科结束时间
public
int
WorkFullDays
{
get
;
set
;
}
//全勤天数
public
int
AttendanceDays
{
get
;
set
;
}
//出勤天数
public
int
DeductionDays
{
get
;
set
;
}
//核减天数
public
int
NoDeductionDays
{
get
;
set
;
}
//不核减天数
public
int
OperationType
{
get
;
set
;
}
//操作类型
public
PerAttendanceIssueDto
()
{
}
public
PerAttendanceIssueDto
(
AttendanceStatistics
item
)
{
UnitType
=
item
.
UnitType
;
AccountingUnit
=
item
.
AccountingUnit
;
PersonnelNumber
=
item
.
PersonnelNumber
;
PersonnelName
=
item
.
PersonnelName
;
BeginDate
=
item
.
BeginDate
;
EndDate
=
item
.
EndDate
;
DeductionDays
=
item
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
NoDeductionDays
=
item
.
Detial
.
Sum
(
w
=>
w
.
Value
)
-
item
.
Detial
.
Where
(
w
=>
!
w
.
Remark
.
Contains
(
"不核减"
)).
Sum
(
w
=>
w
.
Value
);
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
{
[
Key
]
public
int
Id
{
get
;
set
;
}
public
int
HospitalId
{
get
;
set
;
}
//医院Id
public
int
AllotId
{
get
;
set
;
}
//绩效Id
public
string
Code
{
get
;
set
;
}
//核算单元编码
public
string
UnitType
{
get
;
set
;
}
//人员类别
public
string
AccountingUnit
{
get
;
set
;
}
//核算单元
public
string
PersonnelNumber
{
get
;
set
;
}
//工号
public
string
PersonnelName
{
get
;
set
;
}
//姓名
public
DateTime
?
BeginDate
{
get
;
set
;
}
//在科开始时间
public
DateTime
?
EndDate
{
get
;
set
;
}
//在科结束时间
public
int
WorkFullDays
{
get
;
set
;
}
//全勤天数
public
int
AttendanceDays
{
get
;
set
;
}
//出勤天数
public
int
DeductionDays
{
get
;
set
;
}
//核减天数
public
int
NoDeductionDays
{
get
;
set
;
}
//不核减天数
public
int
State
{
get
;
set
;
}
//状态
public
int
CreateUser
{
get
;
set
;
}
//首次下发人
public
int
UpdateUser
{
get
;
set
;
}
//更新人
public
DateTime
?
CreationTime
{
get
;
set
;
}
//首次下发时间
public
DateTime
?
UpdateTime
{
get
;
set
;
}
//更新时间
/// <summary>
/// 医院Id
/// </summary>
public
int
HospitalId
{
get
;
set
;
}
/// <summary>
/// 绩效Id
/// </summary>
public
int
AllotId
{
get
;
set
;
}
/// <summary>
/// 核算单元编码
/// </summary>
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
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
[
Key
]
public
int
Id
{
get
;
set
;
}
public
int
HospitalId
{
get
;
set
;
}
//医院Id
public
int
AllotId
{
get
;
set
;
}
//绩效Id
public
string
Code
{
get
;
set
;
}
//核算单元编码
public
string
UnitType
{
get
;
set
;
}
//人员类别
public
string
AccountingUnit
{
get
;
set
;
}
//核算单元
public
string
PersonnelNumber
{
get
;
set
;
}
//工号
public
string
PersonnelName
{
get
;
set
;
}
//姓名
public
DateTime
?
BeginDate
{
get
;
set
;
}
//在科开始时间
public
DateTime
?
EndDate
{
get
;
set
;
}
//在科结束时间
public
int
WorkFullDays
{
get
;
set
;
}
//全勤天数
public
int
AttendanceDays
{
get
;
set
;
}
//出勤天数
public
int
DeductionDays
{
get
;
set
;
}
//核减天数
public
int
NoDeductionDays
{
get
;
set
;
}
//不核减天数
public
int
State
{
get
;
set
;
}
//状态
public
string
OperationType
{
get
;
set
;
}
//操作类型
public
int
CreateUser
{
get
;
set
;
}
//操作人
public
DateTime
?
CreationTime
{
get
;
set
;
}
//操作时间
/// <summary>
/// 医院Id
/// </summary>
public
int
HospitalId
{
get
;
set
;
}
/// <summary>
/// 绩效Id
/// </summary>
public
int
AllotId
{
get
;
set
;
}
/// <summary>
/// 核算单元编码
/// </summary>
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
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
}
return
new
ApiResponse
<
List
<
AttendanceStatistics
>>(
ResponseType
.
OK
,
""
,
statistics
);
}
//public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allotId, int userid)
//{
// return null;
//}
#
region
考勤下发
public
ApiResponse
<
List
<
PerAttendanceIssueDto
>>
PreConfirmationDisplay
(
int
allotId
,
int
userid
,
int
hospitalId
)
{
var
statistics
=
GetAttendanceStatistics
(
allotId
,
userid
).
Data
;
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
)
{
//首次下发
var
statistics
=
GetAttendanceStatistics
(
allotId
,
userid
).
Data
;
var
issues
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
);
var
issuePersonnelNumber
=
issues
.
Select
(
s
=>
s
.
PersonnelNumber
);
var
scStatistics
=
statistics
.
Where
(
w
=>
!
issuePersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
if
(
scStatistics
.
Any
())
var
preConfirmationDisplay
=
PreConfirmationDisplay
(
allotId
,
userid
,
hospitalId
).
Data
;
var
issues
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
&&
w
.
HospitalId
==
hospitalId
);
var
cofaccounting
=
cofaccountingRepository
.
GetEntities
(
g
=>
g
.
AllotId
==
allotId
);
var
insertIssues
=
preConfirmationDisplay
.
Where
(
w
=>
w
.
OperationType
==
(
int
)
Attendance
.
OperationType
.
新增
).
ToList
();
var
updateIssues
=
preConfirmationDisplay
.
Where
(
w
=>
w
.
OperationType
==
(
int
)
Attendance
.
OperationType
.
修改
).
ToList
();
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
);
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
;
var
code
=
cofaccounting
.
FirstOrDefault
(
w
=>
w
.
UnitType
==
item
.
UnitType
&&
w
.
AccountingUnit
==
item
.
AccountingUnit
);
return
new
per_attendance_issue
()
{
AllotId
=
item
.
AllotID
,
AllotId
=
allotId
,
HospitalId
=
hospitalId
,
Code
=
code
,
Code
=
code
.
Code
,
UnitType
=
item
.
UnitType
,
AccountingUnit
=
item
.
AccountingUnit
,
PersonnelNumber
=
item
.
PersonnelNumber
,
PersonnelName
=
item
.
PersonnelName
,
BeginDate
=
item
.
BeginDate
,
EndDate
=
item
.
EndDate
,
DeductionDays
=
d
eductionDays
,
NoDeductionDays
=
n
oDeductionDays
,
DeductionDays
=
item
.
D
eductionDays
,
NoDeductionDays
=
item
.
N
oDeductionDays
,
AttendanceDays
=
item
.
AttendanceDays
,
WorkFullDays
=
item
.
AttendanceDays
+
deductionDays
,
CreateUser
=
userid
,
CreationTime
=
DateTime
.
Now
,
WorkFullDays
=
item
.
AttendanceDays
+
item
.
DeductionDays
,
UpdateUser
=
userid
,
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
)
{
record
.
OperationType
=
"新增"
;
...
...
@@ -821,129 +869,50 @@ public ApiResponse IssueStatistics(int allotId, int userid, int hospitalId)
perforPerAttendanceIssueRecordRepository
.
AddRange
(
insert
.
ToArray
());
}
Func
<
per_attendance_issue
,
AttendanceStatistics
,
bool
>
func
=
(
issue
,
statistic
)
=>
{
var
result
=
true
;
result
=
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
;
};
#
region
确认后的下发
var
issueConfirm
=
issues
.
Where
(
w
=>
w
.
State
==
(
int
)
Attendance
.
State
.
确认
||
w
.
State
==
(
int
)
Attendance
.
State
.
确认已修改
||
w
.
State
==
(
int
)
Attendance
.
State
.
确认未修改
).
ToList
();
var
issueConfirmPersonnelNumber
=
issueConfirm
.
Select
(
s
=>
s
.
PersonnelNumber
);
var
qrStatistics
=
statistics
.
Where
(
w
=>
issueConfirmPersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
if
(
qrStatistics
.
Any
())
if
(
updateIssues
.
Any
())
{
List
<
per_attendance_issue
>
qsIssuedates
=
new
List
<
per_attendance_issue
>();
foreach
(
var
personnelNumber
in
issueConfirmPersonnelNumber
)
{
var
staticPersonnel
=
qrStatistics
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
personnelNumber
);
var
issuePersonnel
=
issueConfirm
.
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
.
确认未修改
;
}
qsIssuedates
.
Add
(
issuePersonnel
);
}
perforPerAttendanceIssueRepository
.
UpdateRange
(
qsIssuedates
.
ToArray
());
//记录修改
var
Issuedates
=
qsIssuedates
.
ToList
();
foreach
(
var
item
in
qsIssuedates
)
List
<
per_attendance_issue
>
updateIssuedates
=
new
List
<
per_attendance_issue
>();
foreach
(
var
item
in
updateIssues
)
{
if
(
item
.
State
==
(
int
)
Attendance
.
State
.
确认已修改
||
item
.
State
==
(
int
)
Attendance
.
State
.
质疑已修改
)
continue
;
Issuedates
.
Remove
(
item
);
var
code
=
cofaccounting
.
FirstOrDefault
(
w
=>
w
.
UnitType
==
item
.
UnitType
&&
w
.
AccountingUnit
==
item
.
AccountingUnit
);
var
issuePersonnel
=
issues
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
item
.
PersonnelNumber
);
issuePersonnel
.
UnitType
=
item
.
UnitType
;
issuePersonnel
.
AccountingUnit
=
item
.
AccountingUnit
;
issuePersonnel
.
Code
=
code
.
Code
;
issuePersonnel
.
BeginDate
=
item
.
BeginDate
;
issuePersonnel
.
EndDate
=
item
.
EndDate
;
issuePersonnel
.
DeductionDays
=
item
.
DeductionDays
;
issuePersonnel
.
NoDeductionDays
=
item
.
NoDeductionDays
;
issuePersonnel
.
AttendanceDays
=
item
.
AttendanceDays
;
issuePersonnel
.
WorkFullDays
=
item
.
AttendanceDays
+
item
.
DeductionDays
;
issuePersonnel
.
State
=
(
int
)
Attendance
.
State
.
已下发未确认
;
issuePersonnel
.
UpdateUser
=
userid
;
issuePersonnel
.
UpdateTime
=
DateTime
.
Now
;
updateIssuedates
.
Add
(
issuePersonnel
);
}
var
qsInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
Issuedates
);
if
(
qsInsert
.
Any
())
foreach
(
var
record
in
qsInsert
)
{
record
.
Id
=
0
;
record
.
OperationType
=
"修改"
;
record
.
CreateUser
=
userid
;
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
)
perforPerAttendanceIssueRepository
.
UpdateRange
(
updateIssuedates
.
ToArray
());
//记录新增
var
insert
=
mapper
.
Map
<
IEnumerable
<
per_attendance_issue_record
>>(
updateIssuedates
);
foreach
(
var
record
in
insert
)
{
if
(
item
.
State
==
(
int
)
Attendance
.
State
.
确认已修改
||
item
.
State
==
(
int
)
Attendance
.
State
.
质疑已修改
)
continue
;
Issuedates
.
Remove
(
item
);
record
.
Id
=
0
;
record
.
OperationType
=
"修改"
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
}
var
zyInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
Issuedates
);
if
(
zyInsert
.
Any
())
foreach
(
var
record
in
zyInsert
)
{
record
.
Id
=
0
;
record
.
OperationType
=
"修改"
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
}
perforPerAttendanceIssueRecordRepository
.
AddRange
(
zyInsert
.
ToArray
());
perforPerAttendanceIssueRecordRepository
.
AddRange
(
insert
.
ToArray
());
}
#
endregion
#
region
删除多余的
var
statisticsPersonnelNumber
=
statistics
.
Select
(
s
=>
s
.
PersonnelNumber
).
ToList
();
var
shanchuStatistics
=
issues
.
Where
(
w
=>
!
statisticsPersonnelNumber
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
if
(
shanchuStatistics
.
Any
())
if
(
deleteIssues
.
Any
())
{
perforPerAttendanceIssueRepository
.
RemoveRange
(
shanchuStatistics
.
ToArray
());
////记录质疑修改
var
scInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
shanchuStatistics
.
ToList
());
var
deletePersonnel
=
issues
.
Where
(
w
=>
deleteIssues
.
Contains
(
w
.
PersonnelNumber
)).
ToList
();
perforPerAttendanceIssueRepository
.
RemoveRange
(
deletePersonnel
.
ToArray
());
////记录删除
var
scInsert
=
mapper
.
Map
<
List
<
per_attendance_issue_record
>>(
deletePersonnel
.
ToList
());
foreach
(
var
record
in
scInsert
)
{
record
.
Id
=
0
;
record
.
OperationType
=
"删除"
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
...
...
@@ -951,13 +920,10 @@ public ApiResponse IssueStatistics(int allotId, int userid, int hospitalId)
perforPerAttendanceIssueRecordRepository
.
AddRange
(
scInsert
.
ToArray
());
}
#
endregion
return
new
ApiResponse
(
ResponseType
.
OK
,
"下发成功"
);
}
//最终考勤结果质疑或确认无误((批量操作)
public
ApiResponse
ChooseStatistics
(
int
allotId
,
int
userid
,
int
[]
issueid
,
bool
choose
)
{
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
perforPerAttendanceIssueRepository
.
UpdateRange
(
issuedates
.
ToArray
());
return
new
ApiResponse
(
ResponseType
.
OK
);
}
#
endregion
// 拆分请假时间段为每个日期
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