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
c25e07b1
Commit
c25e07b1
authored
Mar 30, 2023
by
wyc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
‘考勤下发’ 添加已下发结果展示列表,补充科室确认
parent
8d148275
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
298 additions
and
192 deletions
+298
-192
performance/Performance.Api/Controllers/AttendanceController.cs
+9
-8
performance/Performance.Api/wwwroot/Performance.Api.xml
+9
-0
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+95
-0
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+8
-83
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+1
-4
performance/Performance.DtoModels/Response/AttendanceAuditDetail.cs
+21
-20
performance/Performance.DtoModels/Response/AttendanceAuditList.cs
+1
-1
performance/Performance.DtoModels/Response/AttendanceStatistics.cs
+3
-0
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
+0
-1
performance/Performance.EntityModels/Entity/per_attendance_issue.cs
+10
-2
performance/Performance.Repository/PerforPerAllotRepository.cs
+23
-0
performance/Performance.Repository/Repository/PerforPerAttendanceIssueRecordRepository.cs
+0
-20
performance/Performance.Services/AttendanceService.cs
+118
-53
No files found.
performance/Performance.Api/Controllers/AttendanceController.cs
View file @
c25e07b1
...
...
@@ -377,6 +377,7 @@ public IActionResult DownloadStatistics(int allotId)
[
Route
(
"issue/audit/list"
)]
public
ApiResponse
<
List
<
AttendanceAuditList
>>
AuditList
(
int
allotId
)
{
return
_attendanceService
.
AuditList
(
allotId
);
}
...
...
@@ -389,7 +390,7 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
/// <returns></returns>
[
HttpPost
]
[
Route
(
"issue/audit/detail"
)]
public
ApiResponse
<
List
<
per_attendance_issue
>>
AuditDetail
(
int
allotId
,
string
unitType
,
string
accountingUnit
)
public
ApiResponse
<
List
<
AttendanceAuditDetail
>>
AuditDetail
(
int
allotId
,
string
unitType
,
string
accountingUnit
)
{
return
_attendanceService
.
AuditDetail
(
allotId
,
unitType
,
accountingUnit
);
}
...
...
@@ -400,9 +401,10 @@ public ApiResponse<List<per_attendance_issue>> AuditDetail(int allotId, string u
/// <param name="allotId"></param>
/// <returns></returns>
[
HttpGet
(
"issue/result/list"
)]
public
ApiResponse
<
List
<
Attendance
Statistics
>>
IssAttendanceResult
(
int
allotId
)
public
ApiResponse
<
List
<
Attendance
AuditDetail
>>
IssAttendanceResult
(
int
allotId
)
{
throw
new
NotImplementedException
();
var
userid
=
claim
.
GetUserId
();
return
_attendanceService
.
IssAttendanceResult
(
allotId
,
userid
);
}
/// <summary>
...
...
@@ -428,7 +430,8 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot
public
ApiResponse
IssueStatistics
(
int
allotId
)
{
var
userid
=
claim
.
GetUserId
();
return
_attendanceService
.
IssueStatistics
(
allotId
,
userid
);
var
realName
=
claim
.
GetUserClaim
(
JwtClaimTypes
.
RealName
);
return
_attendanceService
.
IssueStatistics
(
allotId
,
userid
,
realName
);
}
/// <summary>
...
...
@@ -442,11 +445,9 @@ public ApiResponse IssueStatistics(int allotId)
[
Route
(
"issue/choose"
)]
public
ApiResponse
ChooseStatistics
(
int
allotId
,
int
[]
issueid
,
Attendance
.
State
state
)
{
var
userid
=
claim
.
GetUserId
(
);
return
_attendanceService
.
ChooseStatistics
(
allotId
,
userid
,
issueid
,
stat
e
);
var
realName
=
claim
.
GetUserClaim
(
JwtClaimTypes
.
RealName
);
return
_attendanceService
.
ChooseStatistics
(
allotId
,
issueid
,
state
,
realNam
e
);
}
#
endregion
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
c25e07b1
...
...
@@ -425,6 +425,15 @@
科室确认详情
</summary>
<param
name=
"allotId"
></param>
<param
name=
"unitType"
></param>
<param
name=
"accountingUnit"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AttendanceController.IssAttendanceResult(System.Int32)"
>
<summary>
已下发结果展示列表
</summary>
<param
name=
"allotId"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AttendanceController.PreConfirmationDisplay(System.Int32)"
>
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
c25e07b1
...
...
@@ -2898,6 +2898,96 @@
科室
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.AllotId"
>
<summary>
绩效Id
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.Code"
>
<summary>
核算单元编码
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.UnitType"
>
<summary>
人员类别
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.AccountingUnit"
>
<summary>
核算单元
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.PersonnelNumber"
>
<summary>
工号
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.PersonnelName"
>
<summary>
姓名
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.BeginDate"
>
<summary>
在科开始时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.EndDate"
>
<summary>
在科结束时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.WorkFullDays"
>
<summary>
全勤天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.AttendanceDays"
>
<summary>
出勤天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.DeductionDays"
>
<summary>
核减天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.NoDeductionDays"
>
<summary>
不核减天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.State"
>
<summary>
状态
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.UpdateUser"
>
<summary>
更新人
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetail.UpdateTime"
>
<summary>
更新时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetails.Value"
>
<summary>
请假天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetails.Title"
>
<summary>
考勤类型
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditDetails.Remark"
>
<summary>
备注
</summary>
</member>
<member
name=
"P:Performance.DtoModels.Response.AttendanceAuditList.Code"
>
<summary>
编码
...
...
@@ -3003,6 +3093,11 @@
在科结束时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AttendanceStatistics.AttendanceDays"
>
<summary>
出勤天数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AttendanceStatisticsDetial.Value"
>
<summary>
请假天数
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
c25e07b1
...
...
@@ -6188,99 +6188,24 @@
状态
</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"
>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue.CreateUser"
>
<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.OperationTyp
e"
>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue
.CreateTim
e"
>
<summary>
操作类型
创建时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue
_record.Cre
ateUser"
>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue
.Upd
ateUser"
>
<summary>
操作
人
更新
人
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue
_record.Creation
Time"
>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_issue
.Update
Time"
>
<summary>
操作
时间
更新
时间
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Entity.per_attendance_type.IsDeduction"
>
...
...
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
c25e07b1
...
...
@@ -276,10 +276,7 @@ public AutoMapperConfigs()
CreateMap
<
cof_workitem
,
WorkItemRequest
>()
.
ReverseMap
();
CreateMap
<
cof_again
,
CofAgainRequest
>().
ReverseMap
();
CreateMap
<
per_attendance_issue_record
,
per_attendance_issue
>().
ReverseMap
();
CreateMap
<
PerAttendanceIssueDto
,
per_attendance_issue
>().
ReverseMap
();
CreateMap
<
PerAttendanceIssueDto
,
AttendanceStatistics
>().
ReverseMap
();
CreateMap
<
cof_again
,
CofAgainRequest
>().
ReverseMap
();
}
}
}
performance/Performance.
EntityModels/Entity/per_attendance_issue_record
.cs
→
performance/Performance.
DtoModels/Response/AttendanceAuditDetail
.cs
View file @
c25e07b1
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel.DataAnnotations
;
using
System.ComponentModel.DataAnnotations.Schema
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
Performance.
EntityModels.Entity
namespace
Performance.
DtoModels.Response
{
[
Table
(
"per_attendance_issue_record"
)]
public
class
per_attendance_issue_record
public
class
AttendanceAuditDetail
{
[
Key
]
public
int
Id
{
get
;
set
;
}
/// <summary>
/// 医院Id
/// </summary>
public
int
HospitalId
{
get
;
set
;
}
/// <summary>
/// 绩效Id
/// </summary>
...
...
@@ -71,18 +61,29 @@ public class per_attendance_issue_record
/// </summary>
public
int
State
{
get
;
set
;
}
/// <summary>
/// 操作类型
/// 更新人
/// </summary>
public
string
UpdateUser
{
get
;
set
;
}
/// <summary>
/// 更新时间
/// </summary>
public
DateTime
?
UpdateTime
{
get
;
set
;
}
public
List
<
AttendanceAuditDetails
>
Detial
{
get
;
set
;
}
}
public
class
AttendanceAuditDetails
{
/// <summary>
/// 请假天数
/// </summary>
public
string
OperationTyp
e
{
get
;
set
;
}
public
int
Valu
e
{
get
;
set
;
}
/// <summary>
///
操作人
///
考勤类型
/// </summary>
public
int
CreateUser
{
get
;
set
;
}
public
string
Title
{
get
;
set
;
}
/// <summary>
///
操作时间
///
备注
/// </summary>
public
DateTime
?
CreationTime
{
get
;
set
;
}
public
string
Remark
{
get
;
set
;
}
}
}
performance/Performance.DtoModels/Response/AttendanceAuditList.cs
View file @
c25e07b1
...
...
@@ -31,7 +31,7 @@ public class AttendanceAuditList
/// <summary>
/// 操作时间
/// </summary>
public
DateTime
OperationTime
{
get
;
set
;
}
public
DateTime
?
OperationTime
{
get
;
set
;
}
/// <summary>
/// 操作人
/// </summary>
...
...
performance/Performance.DtoModels/Response/AttendanceStatistics.cs
View file @
c25e07b1
...
...
@@ -36,6 +36,9 @@ public class AttendanceStatistics
public
DateTime
EndDate
{
get
;
set
;
}
public
List
<
AttendanceStatisticsDetial
>
Detial
{
get
;
set
;
}
/// <summary>
/// 出勤天数
/// </summary>
public
int
AttendanceDays
{
get
;
set
;
}
}
...
...
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
View file @
c25e07b1
...
...
@@ -255,7 +255,6 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public
virtual
DbSet
<
sys_version
>
sys_version
{
get
;
set
;
}
public
virtual
DbSet
<
per_attendance
>
per_attendance
{
get
;
set
;
}
public
virtual
DbSet
<
per_attendance_issue
>
per_attendance_issue
{
get
;
set
;
}
public
virtual
DbSet
<
per_attendance_issue_record
>
per_attendance_issue_record
{
get
;
set
;
}
public
virtual
DbSet
<
per_attendance_type
>
per_attendance_type
{
get
;
set
;
}
public
virtual
DbSet
<
per_attendance_vacation
>
per_attendance_vacation
{
get
;
set
;
}
public
virtual
DbSet
<
per_allot_action
>
per_allot_action
{
get
;
set
;
}
...
...
performance/Performance.EntityModels/Entity/per_attendance_issue.cs
View file @
c25e07b1
...
...
@@ -68,11 +68,19 @@ public class per_attendance_issue
/// <summary>
/// 状态
/// </summary>
public
int
State
{
get
;
set
;
}
public
int
State
{
get
;
set
;
}
/// <summary>
/// 创建人
/// </summary>
public
string
CreateUser
{
get
;
set
;
}
/// <summary>
/// 创建时间
/// </summary>
public
DateTime
?
CreateTime
{
get
;
set
;
}
/// <summary>
/// 更新人
/// </summary>
public
int
UpdateUser
{
get
;
set
;
}
public
string
UpdateUser
{
get
;
set
;
}
/// <summary>
/// 更新时间
/// </summary>
...
...
performance/Performance.Repository/PerforPerAllotRepository.cs
View file @
c25e07b1
...
...
@@ -406,5 +406,27 @@ public void Batch(int[] ids, string batch, string batchDate, string bankName)
throw
;
}
}
/// <summary>
/// 考勤-考勤结果备份
/// </summary>
/// <param name="allot"></param>
public
void
PerAttendanceIssueBackup
(
int
allotId
)
{
using
(
var
connection
=
context
.
Database
.
GetDbConnection
())
{
if
(
connection
.
State
!=
ConnectionState
.
Open
)
connection
.
Open
();
try
{
connection
.
Execute
(
"call proc_attendance_backup(@allotId);"
,
new
{
allotId
},
commandTimeout
:
60
*
60
);
}
catch
(
Exception
)
{
throw
;
}
}
}
}
}
\ No newline at end of file
performance/Performance.Repository/Repository/PerforPerAttendanceIssueRecordRepository.cs
deleted
100644 → 0
View file @
8d148275
using
Performance.EntityModels
;
using
Performance.EntityModels.Entity
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
Performance.Repository.Repository
{
public
partial
class
PerforPerAttendanceIssueRecordRepository
:
PerforRepository
<
per_attendance_issue_record
>
{
/// <summary>
/// per_attendance_issue_record Repository
/// </summary>
public
PerforPerAttendanceIssueRecordRepository
(
PerformanceDbContext
context
)
:
base
(
context
)
{
}
}
}
performance/Performance.Services/AttendanceService.cs
View file @
c25e07b1
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.Linq
;
using
AutoMapper
;
using
AutoMapper
;
using
Microsoft.Extensions.Logging
;
using
Newtonsoft.Json
;
using
OfficeOpenXml
;
...
...
@@ -14,6 +10,10 @@
using
Performance.Infrastructure
;
using
Performance.Repository
;
using
Performance.Repository.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.Linq
;
namespace
Performance.Services
{
...
...
@@ -32,7 +32,6 @@ public class AttendanceService : IAutoInjection
private
readonly
PerforCofaccountingRepository
cofaccountingRepository
;
private
readonly
RoleService
roleService
;
private
readonly
UserService
userService
;
private
readonly
PerforPerAttendanceIssueRecordRepository
perforPerAttendanceIssueRecordRepository
;
public
AttendanceService
(
IMapper
mapper
,
ILogger
<
AttendanceService
>
logger
,
...
...
@@ -46,8 +45,7 @@ public class AttendanceService : IAutoInjection
PerforPeremployeeRepository
perforPeremployeeRepository
,
PerforCofaccountingRepository
cofaccountingRepository
,
RoleService
roleService
,
UserService
userService
,
PerforPerAttendanceIssueRecordRepository
perforPerAttendanceIssueRecordRepository
UserService
userService
)
{
this
.
mapper
=
mapper
;
...
...
@@ -63,7 +61,6 @@ PerforPerAttendanceIssueRecordRepository perforPerAttendanceIssueRecordRepositor
this
.
cofaccountingRepository
=
cofaccountingRepository
;
this
.
roleService
=
roleService
;
this
.
userService
=
userService
;
this
.
perforPerAttendanceIssueRecordRepository
=
perforPerAttendanceIssueRecordRepository
;
}
#
region
初始考勤页面
...
...
@@ -105,7 +102,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendance(int allotId, int us
PersonnelName
=
attendances
.
ElementAt
(
i
).
PersonnelName
,
BeginDate
=
begDate
,
EndDate
=
endDate
.
AddDays
(
days
),
Detial
=
new
List
<
AttendanceStatisticsDetial
>()
//
Detial = new List<AttendanceStatisticsDetial>()
};
statistics
.
Add
(
stat
);
}
...
...
@@ -718,7 +715,7 @@ public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allot
PersonnelName
=
attendances
.
ElementAt
(
i
).
PersonnelName
,
BeginDate
=
begDate
,
EndDate
=
endDate
.
AddDays
(
days
),
Detial
=
new
List
<
AttendanceStatisticsDetial
>()
//
Detial = new List<AttendanceStatisticsDetial>()
};
statistics
.
Add
(
stat
);
}
...
...
@@ -778,12 +775,14 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
AccountingUnit
=
w
.
Key
.
AccountingUnit
,
Count
=
w
.
Count
(),
ConfirmCount
=
w
.
Count
(
p
=>
p
.
State
==
(
int
)
Attendance
.
State
.
确认
),
RejectCount
=
w
.
Count
(
p
=>
p
.
State
==
(
int
)
Attendance
.
State
.
驳回
),
RejectCount
=
w
.
Count
(
p
=>
p
.
State
==
(
int
)
Attendance
.
State
.
驳回
),
}).
ToList
();
foreach
(
var
item
in
items
)
{
item
.
OperationUser
=
issues
.
OrderByDescending
(
o
=>
o
.
UpdateTime
).
Select
(
s
=>
s
.
UpdateUser
).
FirstOrDefault
();
item
.
OperationTime
=
issues
.
OrderByDescending
(
o
=>
o
.
UpdateTime
).
Select
(
s
=>
s
.
UpdateTime
).
FirstOrDefault
();
item
.
StateRemark
=
"未全部确认"
;
if
(
item
.
RejectCount
>
0
)
item
.
StateRemark
=
"驳回"
;
...
...
@@ -794,12 +793,108 @@ public ApiResponse<List<AttendanceAuditList>> AuditList(int allotId)
return
new
ApiResponse
<
List
<
AttendanceAuditList
>>(
ResponseType
.
OK
,
items
);
}
public
ApiResponse
<
List
<
per_attendance_issue
>>
AuditDetail
(
int
allotId
,
string
unitType
,
string
accountingUnit
)
public
ApiResponse
<
List
<
AttendanceAuditDetail
>>
AuditDetail
(
int
allotId
,
string
unitType
,
string
accountingUnit
)
{
var
types
=
perfoPperAttendanceTypeRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
)
??
new
List
<
per_attendance_type
>();
var
vacationeData
=
perfoPperAttendanceVacationeRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
)
??
new
List
<
per_attendance_vacation
>();
var
issues
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
&&
w
.
UnitType
==
unitType
);
issues
=
issues
.
Where
(
w
=>
w
.
AccountingUnit
==
accountingUnit
).
ToList
();
var
items
=
issues
.
Select
(
w
=>
new
AttendanceAuditDetail
{
UnitType
=
w
.
UnitType
,
AccountingUnit
=
w
.
AccountingUnit
,
PersonnelName
=
w
.
PersonnelName
,
PersonnelNumber
=
w
.
PersonnelNumber
,
BeginDate
=
w
.
BeginDate
,
EndDate
=
w
.
EndDate
,
WorkFullDays
=
w
.
WorkFullDays
,
AttendanceDays
=
w
.
AttendanceDays
,
DeductionDays
=
w
.
DeductionDays
,
NoDeductionDays
=
w
.
NoDeductionDays
,
State
=
w
.
State
,
UpdateUser
=
w
.
UpdateUser
,
UpdateTime
=
w
.
UpdateTime
,
}).
ToList
();
var
vacationes
=
vacationeData
.
Where
(
w
=>
w
.
BegDate
>
DateTime
.
MinValue
&&
w
.
EndDate
>
DateTime
.
MinValue
)
.
Select
(
w
=>
new
{
w
.
PersonnelNumber
,
Type
=
types
.
FirstOrDefault
(
p
=>
p
.
Id
==
w
.
TypeId
)?.
AttendanceName
??
"考勤类型缺失"
,
Dates
=
SplitEveryDay
(
w
.
BegDate
.
Value
.
Date
,
w
.
EndDate
.
Value
.
Date
),
Remark
=
types
.
FirstOrDefault
(
p
=>
p
.
Id
==
w
.
TypeId
)?.
IsDeduction
==
(
int
)
Attendance
.
Deduction
.
核减
?
"核减"
:
"不核减"
,
});
foreach
(
var
stat
in
items
)
{
stat
.
Detial
=
vacationes
.
Where
(
w
=>
w
.
PersonnelNumber
==
stat
.
PersonnelNumber
)
.
Select
(
w
=>
new
AttendanceAuditDetails
{
Title
=
w
.
Type
,
Value
=
w
.
Dates
.
Where
(
date
=>
date
>=
stat
.
BeginDate
&&
date
<=
stat
.
EndDate
).
Count
(),
Remark
=
w
.
Remark
,
})
.
ToList
();
}
return
new
ApiResponse
<
List
<
AttendanceAuditDetail
>>(
ResponseType
.
OK
,
items
);
}
public
ApiResponse
<
List
<
AttendanceAuditDetail
>>
IssAttendanceResult
(
int
allotId
,
int
userid
)
{
var
types
=
perfoPperAttendanceTypeRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
)
??
new
List
<
per_attendance_type
>();
var
vacationeData
=
perfoPperAttendanceVacationeRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
)
??
new
List
<
per_attendance_vacation
>();
var
issues
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
).
ToList
();
var
items
=
issues
.
Select
(
w
=>
new
AttendanceAuditDetail
{
AllotId
=
w
.
AllotId
,
Code
=
w
.
Code
,
UnitType
=
w
.
UnitType
,
AccountingUnit
=
w
.
AccountingUnit
,
PersonnelName
=
w
.
PersonnelName
,
PersonnelNumber
=
w
.
PersonnelNumber
,
BeginDate
=
w
.
BeginDate
,
EndDate
=
w
.
EndDate
,
WorkFullDays
=
w
.
WorkFullDays
,
AttendanceDays
=
w
.
AttendanceDays
,
DeductionDays
=
w
.
DeductionDays
,
NoDeductionDays
=
w
.
NoDeductionDays
,
State
=
w
.
State
,
UpdateUser
=
w
.
UpdateUser
,
UpdateTime
=
w
.
UpdateTime
,
}).
ToList
();
//当角色对应时过滤
var
userInfo
=
_userRepository
.
GetUser
(
userid
);
if
(
userInfo
?.
User
==
null
)
throw
new
NotImplementedException
(
"当前用户不存在"
);
if
(
userInfo
?.
URole
==
null
)
throw
new
NotImplementedException
(
"当前用户暂未分配角色"
);
var
unitTypes
=
UnitTypeUtil
.
GetMaps
(
userInfo
?.
URole
.
Type
??
0
);
if
(
unitTypes
?.
Any
()
==
true
)
items
=
items
.
Where
(
w
=>
w
.
AccountingUnit
==
userInfo
.
User
.
Department
&&
UnitTypeUtil
.
Is
(
w
.
UnitType
,
unitTypes
)).
ToList
();
return
new
ApiResponse
<
List
<
per_attendance_issue
>>(
ResponseType
.
OK
,
issues
);
var
vacationes
=
vacationeData
.
Where
(
w
=>
w
.
BegDate
>
DateTime
.
MinValue
&&
w
.
EndDate
>
DateTime
.
MinValue
)
.
Select
(
w
=>
new
{
w
.
PersonnelNumber
,
Type
=
types
.
FirstOrDefault
(
p
=>
p
.
Id
==
w
.
TypeId
)?.
AttendanceName
??
"考勤类型缺失"
,
Dates
=
SplitEveryDay
(
w
.
BegDate
.
Value
.
Date
,
w
.
EndDate
.
Value
.
Date
),
Remark
=
types
.
FirstOrDefault
(
p
=>
p
.
Id
==
w
.
TypeId
)?.
IsDeduction
==
(
int
)
Attendance
.
Deduction
.
核减
?
"核减"
:
"不核减"
,
});
foreach
(
var
stat
in
items
)
{
stat
.
Detial
=
vacationes
.
Where
(
w
=>
w
.
PersonnelNumber
==
stat
.
PersonnelNumber
)
.
Select
(
w
=>
new
AttendanceAuditDetails
{
Title
=
w
.
Type
,
Value
=
w
.
Dates
.
Where
(
date
=>
date
>=
stat
.
BeginDate
&&
date
<=
stat
.
EndDate
).
Count
(),
Remark
=
w
.
Remark
,
})
.
ToList
();
}
return
new
ApiResponse
<
List
<
AttendanceAuditDetail
>>(
ResponseType
.
OK
,
items
);
}
public
ApiResponse
<
List
<
PerAttendanceIssueDto
>>
PreConfirmationDisplay
(
int
allotId
,
int
userid
)
...
...
@@ -862,7 +957,7 @@ public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allot
//下发
public
ApiResponse
IssueStatistics
(
int
allotId
,
int
userid
)
public
ApiResponse
IssueStatistics
(
int
allotId
,
int
userid
,
string
realName
)
{
var
allot
=
perforPerallotRepository
.
GetEntity
(
w
=>
w
.
ID
==
allotId
);
if
(
allot
==
null
)
...
...
@@ -894,22 +989,14 @@ public ApiResponse IssueStatistics(int allotId, int userid)
NoDeductionDays
=
item
.
NoDeductionDays
,
AttendanceDays
=
item
.
AttendanceDays
,
WorkFullDays
=
item
.
AttendanceDays
+
item
.
DeductionDays
,
UpdateUser
=
userid
,
CreateUser
=
realName
,
CreateTime
=
DateTime
.
Now
,
UpdateUser
=
realName
,
UpdateTime
=
DateTime
.
Now
,
State
=
(
int
)
Attendance
.
State
.
已下发未确认
,
};
});
perforPerAttendanceIssueRepository
.
AddRange
(
inserts
.
ToArray
());
//记录新增
var
insert
=
mapper
.
Map
<
IEnumerable
<
per_attendance_issue_record
>>(
inserts
);
foreach
(
var
record
in
insert
)
{
record
.
OperationType
=
"新增"
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
}
perforPerAttendanceIssueRecordRepository
.
AddRange
(
insert
.
ToArray
());
}
if
(
updateIssues
.
Any
())
{
...
...
@@ -928,51 +1015,29 @@ public ApiResponse IssueStatistics(int allotId, int userid)
issuePersonnel
.
AttendanceDays
=
item
.
AttendanceDays
;
issuePersonnel
.
WorkFullDays
=
item
.
AttendanceDays
+
item
.
DeductionDays
;
issuePersonnel
.
State
=
(
int
)
Attendance
.
State
.
已下发未确认
;
issuePersonnel
.
UpdateUser
=
userid
;
issuePersonnel
.
UpdateUser
=
realName
;
issuePersonnel
.
UpdateTime
=
DateTime
.
Now
;
updateIssuedates
.
Add
(
issuePersonnel
);
}
perforPerAttendanceIssueRepository
.
UpdateRange
(
updateIssuedates
.
ToArray
());
//记录新增
var
insert
=
mapper
.
Map
<
IEnumerable
<
per_attendance_issue_record
>>(
updateIssuedates
);
foreach
(
var
record
in
insert
)
{
record
.
Id
=
0
;
record
.
OperationType
=
"修改"
;
record
.
CreateUser
=
userid
;
record
.
CreationTime
=
DateTime
.
Now
;
}
perforPerAttendanceIssueRecordRepository
.
AddRange
(
insert
.
ToArray
());
}
if
(
deleteIssues
.
Any
())
{
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
;
}
perforPerAttendanceIssueRecordRepository
.
AddRange
(
scInsert
.
ToArray
());
}
perforPerallotRepository
.
PerAttendanceIssueBackup
(
allotId
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"下发成功"
);
}
public
ApiResponse
ChooseStatistics
(
int
allotId
,
int
userid
,
int
[]
issueid
,
Attendance
.
State
state
)
public
ApiResponse
ChooseStatistics
(
int
allotId
,
int
[]
issueid
,
Attendance
.
State
state
,
string
realName
)
{
var
issuedates
=
perforPerAttendanceIssueRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotId
&&
issueid
.
Contains
(
w
.
Id
)).
ToList
();
foreach
(
var
item
in
issuedates
)
{
item
.
State
=
(
int
)
state
;
item
.
UpdateUser
=
userid
;
item
.
UpdateUser
=
realName
;
item
.
UpdateTime
=
DateTime
.
Now
;
}
perforPerAttendanceIssueRepository
.
UpdateRange
(
issuedates
.
ToArray
());
...
...
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