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
2c06d7c8
Commit
2c06d7c8
authored
May 12, 2023
by
wyc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
考核管理 填写模板修改/科室填报添加字段/方案添加备注/增加接口考核结果查看页面和下载/添加考核统计汇总页面
parent
0e4d060b
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
439 additions
and
34 deletions
+439
-34
performance/Performance.Api/Controllers/AssessNewController.cs
+59
-7
performance/Performance.Api/wwwroot/Performance.Api.xml
+14
-0
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+35
-0
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+66
-0
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+1
-1
performance/Performance.DtoModels/Request/AssessSchemeEnterRequest.cs
+22
-0
performance/Performance.DtoModels/Request/AssessSchemeRequest.cs
+1
-0
performance/Performance.DtoModels/Response/AssessSchemeDataResponse.cs
+40
-0
performance/Performance.EntityModels/Entity/per_assess_scheme.cs
+4
-0
performance/Performance.EntityModels/Other/view_assess_result.cs
+62
-0
performance/Performance.Repository/PerforPerAllotRepository.cs
+20
-1
performance/Performance.Services/AssessNewService.cs
+114
-24
performance/Performance.Services/AttendanceService.cs
+1
-1
No files found.
performance/Performance.Api/Controllers/AssessNewController.cs
View file @
2c06d7c8
...
...
@@ -178,6 +178,7 @@ public IActionResult SchemeDownload([FromBody] AddAssessSchemeRequest query)
new
ExcelDownloadHeads
{
Alias
=
"考核方案ID"
,
Name
=
nameof
(
RecordAssessScheme
.
SchemeCode
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核方案名称"
,
Name
=
nameof
(
RecordAssessScheme
.
SchemeName
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核方案类型"
,
Name
=
nameof
(
RecordAssessScheme
.
AssessName
)
},
new
ExcelDownloadHeads
{
Alias
=
"备注"
,
Name
=
nameof
(
RecordAssessScheme
.
SchemeRemarks
)
},
new
ExcelDownloadHeads
{
Alias
=
"创建时间"
,
Name
=
nameof
(
RecordAssessScheme
.
CreateTime
)
},
new
ExcelDownloadHeads
{
Alias
=
"最后修改时间"
,
Name
=
nameof
(
RecordAssessScheme
.
UpdateTime
)
},
};
...
...
@@ -231,7 +232,7 @@ public IActionResult SchemeDownload([FromBody] AddAssessSchemeRequest query)
/// <returns></returns>
[
HttpPost
]
[
Route
(
"scheme/items/list"
)]
[
ProducesResponseType
(
typeof
(
PagedList
<
AssessSchemeDataResponse
>),
StatusCodes
.
Status200OK
)]
[
ProducesResponseType
(
typeof
(
PagedList
<
per_assess_scheme_items
>),
StatusCodes
.
Status200OK
)]
public
ApiResponse
SchemeItemsList
([
FromBody
]
QuerySchemeItemsList
query
)
{
return
new
ApiResponse
(
ResponseType
.
OK
,
""
,
_service
.
SchemeItemsList
(
query
));
...
...
@@ -286,13 +287,13 @@ public IActionResult SchemeItemsDownload([FromBody] QuerySchemeItemsList query)
{
List
<
ExcelDownloadHeads
>
excelDownloadHeads
=
new
List
<
ExcelDownloadHeads
>()
{
new
ExcelDownloadHeads
{
Alias
=
"指标编码"
,
Name
=
nameof
(
per_assess_scheme_items
.
ItemCode
)
},
new
ExcelDownloadHeads
{
Alias
=
"
考核
指标编码"
,
Name
=
nameof
(
per_assess_scheme_items
.
ItemCode
)
},
new
ExcelDownloadHeads
{
Alias
=
"一级指标名称"
,
Name
=
nameof
(
per_assess_scheme_items
.
ItemName1
)
},
new
ExcelDownloadHeads
{
Alias
=
"二级指标名称"
,
Name
=
nameof
(
per_assess_scheme_items
.
ItemName2
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核分值"
,
Name
=
nameof
(
per_assess_scheme_items
.
AssessScore
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核标准"
,
Name
=
nameof
(
per_assess_scheme_items
.
AssessNorm
)
},
new
ExcelDownloadHeads
{
Alias
=
"
核算
组别"
,
Name
=
nameof
(
per_assess_scheme_items
.
UnitType
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核
负责部门
"
,
Name
=
nameof
(
per_assess_scheme_items
.
AccountingUnit
)
},
new
ExcelDownloadHeads
{
Alias
=
"
考核单元
组别"
,
Name
=
nameof
(
per_assess_scheme_items
.
UnitType
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核
单元名称
"
,
Name
=
nameof
(
per_assess_scheme_items
.
AccountingUnit
)
},
new
ExcelDownloadHeads
{
Alias
=
"创建时间"
,
Name
=
nameof
(
per_assess_scheme_items
.
CreateTime
)
},
new
ExcelDownloadHeads
{
Alias
=
"最后修改时间"
,
Name
=
nameof
(
per_assess_scheme_items
.
UpdateTime
)
},
};
...
...
@@ -385,6 +386,58 @@ public ApiResponse SchemeItemsTargetDelete([FromBody] TargetSchemeItemsTargetDel
#
region
核算单元上报考核结果
/// <summary>
/// 考核结果列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[
HttpPost
]
[
Route
(
"scheme/result/list"
)]
[
ProducesResponseType
(
typeof
(
PagedList
<
AssessSchemeResultListResponse
>),
StatusCodes
.
Status200OK
)]
public
ApiResponse
SchemeResultList
([
FromBody
]
QuerySchemeResultList
query
)
{
return
new
ApiResponse
(
ResponseType
.
OK
,
""
,
_service
.
SchemeResultList
(
query
));
}
/// <summary>
/// 考核结果下载
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[
HttpPost
]
[
Route
(
"scheme/result/download"
)]
public
IActionResult
SchemeEnterDownload
([
FromBody
]
QuerySchemeResultList
query
)
{
List
<
ExcelDownloadHeads
>
excelDownloadHeads
=
new
List
<
ExcelDownloadHeads
>()
{
new
ExcelDownloadHeads
{
Alias
=
"核算组别"
,
Name
=
nameof
(
AssessSchemeResultListResponse
.
TargetUnitType
)
},
new
ExcelDownloadHeads
{
Alias
=
"核算单元名称"
,
Name
=
nameof
(
AssessSchemeResultListResponse
.
TargetAccountingUnit
)
},
};
query
.
Page
=
1
;
query
.
PageSize
=
int
.
MaxValue
;
var
result
=
_service
.
SchemeResultList
(
query
).
Data
;
foreach
(
var
item
in
result
.
SelectMany
(
w
=>
w
.
DictionaryResults
).
Select
(
w
=>
w
.
Title
).
Distinct
())
{
excelDownloadHeads
.
Add
(
new
ExcelDownloadHeads
()
{
Alias
=
item
,
Name
=
item
});
}
excelDownloadHeads
.
Add
(
new
ExcelDownloadHeads
()
{
Alias
=
"合计"
,
Name
=
"TotalAssessScore"
});
var
ser
=
JsonConvert
.
SerializeObject
(
result
);
var
rows
=
JsonConvert
.
DeserializeObject
<
List
<
Dictionary
<
string
,
object
>>>(
ser
);
var
filepath
=
_service
.
ExcelDownload
(
rows
,
"考核结果"
,
excelDownloadHeads
);
var
memoryStream
=
new
MemoryStream
();
using
(
var
stream
=
new
FileStream
(
filepath
,
FileMode
.
Open
))
{
stream
.
CopyToAsync
(
memoryStream
).
Wait
();
}
memoryStream
.
Seek
(
0
,
SeekOrigin
.
Begin
);
var
provider
=
new
FileExtensionContentTypeProvider
();
FileInfo
fileInfo
=
new
FileInfo
(
filepath
);
var
memi
=
provider
.
Mappings
[
".xlsx"
];
return
File
(
memoryStream
,
memi
,
Path
.
GetFileName
(
fileInfo
.
Name
));
}
/// <summary>
/// 核算单元上报考核列表
/// </summary>
/// <param name="allotId"></param>
...
...
@@ -502,15 +555,14 @@ public IActionResult SchemeEnterDownload([FromBody] QuerySchemeEnterDetailList q
{
List
<
ExcelDownloadHeads
>
excelDownloadHeads
=
new
List
<
ExcelDownloadHeads
>()
{
new
ExcelDownloadHeads
{
Alias
=
"核算单元"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
TargetAccountingUnit
)
},
new
ExcelDownloadHeads
{
Alias
=
"核算组别"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
TargetUnitType
)
},
new
ExcelDownloadHeads
{
Alias
=
"核算单元名称"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
TargetAccountingUnit
)
},
new
ExcelDownloadHeads
{
Alias
=
"一级指标名称"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
ItemName1
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核项目"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
ItemName2
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核标准"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
AssessNorm
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核分值"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
AssessScore
)
},
new
ExcelDownloadHeads
{
Alias
=
"考核扣分"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
Score
)
},
new
ExcelDownloadHeads
{
Alias
=
"扣分原因"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
ScoreRemark
)
},
new
ExcelDownloadHeads
{
Alias
=
"创建时间"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
CreateTime
)
},
new
ExcelDownloadHeads
{
Alias
=
"最后修改时间"
,
Name
=
nameof
(
AssessSchemeEnterDetaiListResponse
.
UpdateTime
)
},
};
query
.
Page
=
1
;
query
.
PageSize
=
int
.
MaxValue
;
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
2c06d7c8
...
...
@@ -468,6 +468,20 @@
<param
name=
"delete"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AssessNewController.SchemeResultList(Performance.DtoModels.Request.QuerySchemeResultList)"
>
<summary>
考核结果列表
</summary>
<param
name=
"query"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AssessNewController.SchemeEnterDownload(Performance.DtoModels.Request.QuerySchemeResultList)"
>
<summary>
考核结果下载
</summary>
<param
name=
"query"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AssessNewController.SchemeEnterList(System.Int32)"
>
<summary>
核算单元上报考核列表
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
2c06d7c8
...
...
@@ -3109,6 +3109,11 @@
考核方案名称
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeDataResponse.SchemeRemarks"
>
<summary>
考核方案备注
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeDataResponse.CreateBy"
>
<summary>
创建人
...
...
@@ -3179,6 +3184,26 @@
修改时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeResultListResponse.TargetUnitType"
>
<summary>
考核目标核算组别
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeResultListResponse.TargetAccountingUnit"
>
<summary>
考核目标核算单元
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeResultListResponse.ItemName2"
>
<summary>
二级指标名称
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeResultListResponse.TotalAssessScore"
>
<summary>
合计
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeEnterListResponse.UnitType"
>
<summary>
核算组别
...
...
@@ -3264,6 +3289,11 @@
审核或驳回原因
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeEnterListResponse.AssessNorm"
>
<summary>
考核标准
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.TargetUnitType"
>
<summary>
考核目标核算组别
...
...
@@ -3364,6 +3394,11 @@
审核或驳回原因
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.AssessNorm"
>
<summary>
考核标准
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AssessSchemeItemsUploadResponse.ItemName1"
>
<summary>
一级指标名称
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
2c06d7c8
...
...
@@ -6835,6 +6835,11 @@
考核方案名称
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_assess_scheme.SchemeRemarks"
>
<summary>
考核方案备注
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_assess_scheme.CreateBy"
>
<summary>
创建人
...
...
@@ -10210,6 +10215,67 @@
考核目标核算单元
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.AllotId"
>
<summary>
绩效ID
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.AssessId"
>
<summary>
考核类型ID
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.SchemeId"
>
<summary>
考核方案ID
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.ItemId"
>
<summary>
指标Id
</summary>
</member>
<!-- Badly formed XML comment ignored for member "P:Performance.EntityModels.Other.view_assess_result.ItemName2" -->
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.State"
>
<summary>
状态
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.Score"
>
<summary>
分值
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.UnitCode"
>
<summary>
责任部门核算单元编码
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.UnitType"
>
<summary>
责任部门核算组别
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.AccountingUnit"
>
<summary>
责任部门核算单元
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.TargetUnitCode"
>
<summary>
考核目标核算单元编码
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.TargetUnitType"
>
<summary>
考核目标核算组别
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_assess_result.TargetAccountingUnit"
>
<summary>
考核目标核算单元
</summary>
</member>
<member
name=
"P:Performance.EntityModels.Other.view_attendance.UnitType"
>
<summary>
人员类别
...
...
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
2c06d7c8
...
...
@@ -3,6 +3,7 @@
using
Performance.DtoModels.Response
;
using
Performance.EntityModels
;
using
Performance.EntityModels.Entity
;
using
Performance.EntityModels.Other
;
using
Performance.Infrastructure
;
using
System.Linq
;
...
...
@@ -294,7 +295,6 @@ public AutoMapperConfigs()
CreateMap
<
AttendanceData
,
per_attendance
>().
ReverseMap
();
CreateMap
<
AttendanceVacationData
,
per_attendance_vacation
>().
ReverseMap
();
}
}
}
performance/Performance.DtoModels/Request/AssessSchemeEnterRequest.cs
View file @
2c06d7c8
namespace
Performance.DtoModels.Request
{
public
class
QuerySchemeResultList
{
///// <summary>
///// 核算组别(页面带进来)
///// </summary>
//public string UnitType { get; set; }
///// <summary>
///// 核算单元(页面带进来)
///// </summary>
//public string AccountingUnit { get; set; }
public
int
SchemeId
{
get
;
set
;
}
public
int
AllotId
{
get
;
set
;
}
public
string
?
TargetUnitType
{
get
;
set
;
}
public
string
?
TargetAccountingUnit
{
get
;
set
;
}
public
string
?
ItemName2
{
get
;
set
;
}
public
int
Page
{
get
;
set
;
}
=
1
;
public
int
PageSize
{
get
;
set
;
}
=
20
;
}
public
class
QuerySchemeEnterDetailList
{
public
int
AllotId
{
get
;
set
;
}
...
...
@@ -13,6 +31,10 @@ public class QuerySchemeEnterDetailList
/// </summary>
public
string
?
TargetAccountingUnit
{
get
;
set
;
}
/// <summary>
/// 操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
/// </summary>
public
Assess
.
AssessState
State
{
get
;
set
;
}
/// <summary>
/// 二级指标名称
/// </summary>
public
string
?
ItemName2
{
get
;
set
;
}
...
...
performance/Performance.DtoModels/Request/AssessSchemeRequest.cs
View file @
2c06d7c8
...
...
@@ -5,6 +5,7 @@ public class AddAssessSchemeRequest
public
int
AllotId
{
get
;
set
;
}
public
int
CategoryId
{
get
;
set
;
}
public
string
SchemeName
{
get
;
set
;
}
public
string
SchemeRemarks
{
get
;
set
;
}
}
public
class
UpdateAssessSchemeRequest
:
AddAssessSchemeRequest
{
...
...
performance/Performance.DtoModels/Response/AssessSchemeDataResponse.cs
View file @
2c06d7c8
using
System
;
using
System.Collections.Generic
;
namespace
Performance.DtoModels
{
...
...
@@ -33,6 +34,10 @@ public class AssessSchemeDataResponse
/// </summary>
public
string
SchemeName
{
get
;
set
;
}
/// <summary>
/// 考核方案备注
/// </summary>
public
string
SchemeRemarks
{
get
;
set
;
}
/// <summary>
/// 创建人
/// </summary>
public
int
CreateBy
{
get
;
set
;
}
...
...
@@ -94,7 +99,34 @@ public class AssessSchemeTargetResponse
/// </summary>
public
DateTime
?
UpdateTime
{
get
;
set
;
}
}
public
class
AssessSchemeResultListResponse
{
/// <summary>
/// 考核目标核算组别
/// </summary>
public
string
?
TargetUnitType
{
get
;
set
;
}
/// <summary>
/// 考核目标核算单元
/// </summary>
public
string
?
TargetAccountingUnit
{
get
;
set
;
}
/// <summary>
/// 二级指标名称
/// </summary>
public
string
?
ItemName2
{
get
;
set
;
}
public
List
<
AssessSchemeDictionaryResults
>
DictionaryResults
{
get
;
set
;
}
public
int
?
Score
{
get
;
set
;
}
/// <summary>
/// 合计
/// </summary>
public
int
?
TotalAssessScore
{
get
;
set
;
}
}
public
class
AssessSchemeDictionaryResults
{
public
int
?
Value
{
get
;
set
;
}
public
string
Title
{
get
;
set
;
}
}
public
class
AssessSchemeEnterListResponse
{
/// <summary>
...
...
@@ -166,6 +198,10 @@ public class AssessSchemeEnterListResponse
/// 审核或驳回原因
/// </summary>
public
string
?
AuditRemark
{
get
;
set
;
}
/// <summary>
/// 考核标准
/// </summary>
public
string
AssessNorm
{
get
;
set
;
}
}
public
class
AssessSchemeEnterDetaiListResponse
{
...
...
@@ -250,6 +286,10 @@ public class AssessSchemeEnterDetaiListResponse
/// 审核或驳回原因
/// </summary>
public
string
?
AuditRemark
{
get
;
set
;
}
/// <summary>
/// 考核标准
/// </summary>
public
string
AssessNorm
{
get
;
set
;
}
}
//上传
public
class
AssessSchemeItemsUploadResponse
...
...
performance/Performance.EntityModels/Entity/per_assess_scheme.cs
View file @
2c06d7c8
...
...
@@ -38,6 +38,10 @@ public class per_assess_scheme
/// </summary>
public
string
SchemeName
{
get
;
set
;
}
/// <summary>
/// 考核方案备注
/// </summary>
public
string
SchemeRemarks
{
get
;
set
;
}
/// <summary>
/// 创建人
/// </summary>
public
int
CreateBy
{
get
;
set
;
}
...
...
performance/Performance.EntityModels/Other/view_assess_result.cs
0 → 100644
View file @
2c06d7c8
using
Performance.EntityModels.Entity
;
using
System
;
namespace
Performance.EntityModels.Other
{
public
class
view_assess_result
{
/// <summary>
/// 绩效ID
/// </summary>
public
Nullable
<
int
>
AllotId
{
get
;
set
;
}
/// <summary>
/// 考核类型ID
/// </summary>
public
int
AssessId
{
get
;
set
;
}
/// <summary>
/// 考核方案ID
/// </summary>
public
int
SchemeId
{
get
;
set
;
}
/// <summary>
/// 指标Id
/// </summary>
public
int
ItemId
{
get
;
set
;
}
/// 二级指标名称
/// </summary>
public
string
ItemName2
{
get
;
set
;
}
/// <summary>
/// 状态
/// </summary>
public
int
State
{
get
;
set
;
}
/// <summary>
/// 分值
/// </summary>
public
int
Score
{
get
;
set
;
}
/// <summary>
/// 责任部门核算单元编码
/// </summary>
public
string
UnitCode
{
get
;
set
;
}
/// <summary>
/// 责任部门核算组别
/// </summary>
public
string
UnitType
{
get
;
set
;
}
/// <summary>
/// 责任部门核算单元
/// </summary>
public
string
AccountingUnit
{
get
;
set
;
}
/// <summary>
/// 考核目标核算单元编码
/// </summary>
public
string
TargetUnitCode
{
get
;
set
;
}
/// <summary>
/// 考核目标核算组别
/// </summary>
public
string
TargetUnitType
{
get
;
set
;
}
/// <summary>
/// 考核目标核算单元
/// </summary>
public
string
TargetAccountingUnit
{
get
;
set
;
}
}
}
performance/Performance.Repository/PerforPerAllotRepository.cs
View file @
2c06d7c8
...
...
@@ -340,7 +340,6 @@ public IEnumerable<view_attendance> GetAttendance(int allotId)
/// <summary>
/// 考核视图
/// </summary>
/// <param name="categoryId"></param>
/// <param name="allotId"></param>
/// <returns></returns>
public
IEnumerable
<
view_assess_issue
>
GetAssessIssue
(
int
allotId
)
...
...
@@ -359,6 +358,26 @@ public IEnumerable<view_assess_issue> GetAssessIssue(int allotId)
}
}
/// <summary>
/// 考核结果视图
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
public
IEnumerable
<
view_assess_result
>
GetAssessResult
(
int
allotId
)
{
var
connection
=
context
.
Database
.
GetDbConnection
();
if
(
connection
.
State
!=
ConnectionState
.
Open
)
connection
.
Open
();
try
{
string
query
=
$@"SELECT * FROM view_assess_result where AllotId = @allotId"
;
return
connection
.
Query
<
view_assess_result
>(
query
,
new
{
allotId
},
commandTimeout
:
60
*
60
);
}
catch
(
Exception
)
{
throw
;
}
}
/// <summary>
/// 查询人员字典
/// </summary>
/// <param name="allotId"></param>
...
...
performance/Performance.Services/AssessNewService.cs
View file @
2c06d7c8
...
...
@@ -4,6 +4,7 @@
using
Microsoft.AspNetCore.Hosting
;
using
Microsoft.AspNetCore.Http
;
using
Microsoft.Extensions.Logging
;
using
Newtonsoft.Json
;
using
OfficeOpenXml
;
using
OfficeOpenXml.Style
;
using
Performance.DtoModels
;
...
...
@@ -17,7 +18,7 @@
using
System.Data
;
using
System.IO
;
using
System.Linq
;
using
System.Reflection
;
namespace
Performance.Services
{
...
...
@@ -346,6 +347,7 @@ public ApiResponse SchemeAdd(AddAssessSchemeRequest request, int userid)
AssessId
=
request
.
CategoryId
,
SchemeCode
=
schemeCode
,
SchemeName
=
request
.
SchemeName
,
SchemeRemarks
=
request
.
SchemeRemarks
,
CreateBy
=
userid
,
CreateTime
=
dateTime
,
UpdateBy
=
userid
,
...
...
@@ -363,6 +365,7 @@ public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeReq
var
any
=
perforPerAssessSchemeRepository
.
GetEntity
(
w
=>
w
.
Id
==
request
.
SchemeId
);
any
.
AssessId
=
request
.
CategoryId
;
any
.
SchemeName
=
request
.
SchemeName
;
any
.
SchemeRemarks
=
request
.
SchemeRemarks
;
any
.
UpdateBy
=
userid
;
any
.
UpdateTime
=
DateTime
.
Now
;
if
(
perforPerAssessSchemeRepository
.
Update
(
any
))
return
new
ApiResponse
<
UpdateAssessSchemeRequest
>(
ResponseType
.
OK
,
"修改成功"
);
...
...
@@ -389,7 +392,22 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
{
var
lower
=
item
.
Key
.
ToLower
();
if
(
lower
.
Contains
(
"etime"
))
{
nobj
[
lower
]
=
Convert
.
ToDateTime
(
item
.
Value
).
ToString
(
"d"
);
}
nobj
[
lower
]
=
Convert
.
ToDateTime
(
item
.
Value
).
ToString
(
"d"
);
else
if
(
lower
.
Contains
(
"results"
))
{
var
detRows
=
JsonConvert
.
DeserializeObject
<
List
<
Dictionary
<
string
,
object
>>>(
item
.
Value
.
ToString
());
foreach
(
var
detlist
in
detRows
)
{
object
value
=
null
;
foreach
(
var
detitem
in
detlist
)
{
if
(
detitem
.
Key
.
Equals
(
"Value"
,
StringComparison
.
OrdinalIgnoreCase
))
value
=
detitem
.
Value
;
if
(
detitem
.
Key
.
Equals
(
"Title"
,
StringComparison
.
OrdinalIgnoreCase
))
nobj
[
detitem
.
Value
.
ToString
()]
=
value
;
}
}
}
else
nobj
[
lower
]
=
item
.
Value
;
}
data
.
Add
(
nobj
);
...
...
@@ -414,7 +432,7 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
{
var
temp
=
data
.
ElementAt
(
row
);
var
low
=
temp
.
Keys
.
ToString
().
ToLower
();
var
value
=
temp
[
headList
[
col
].
Name
.
ToLower
()]
;
var
value
=
temp
.
GetValue
(
headList
[
col
].
Name
,
""
)
;
worksheet
.
Cells
[
row
+
2
,
col
+
1
].
Value
=
value
;
}
...
...
@@ -656,28 +674,28 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection
var
datas
=
ToListDictionary
(
dt
);
if
(
datas
.
Count
==
0
||
!
datas
.
Any
())
throw
new
PerformanceException
(
"未在文件中找到数据"
);
Tables
error
=
new
Tables
(
"行"
,
"
指标编码"
,
"一级指标名称"
,
"二级指标名称"
,
"考核分值"
,
"考核标准"
,
"核算组别"
,
"考核负责部门
"
,
"原因"
);
Tables
error
=
new
Tables
(
"行"
,
"
考核指标编码"
,
"一级指标名称"
,
"二级指标名称"
,
"考核分值"
,
"考核标准"
,
"考核单元组别"
,
"考核单元名称
"
,
"原因"
);
var
upload
=
new
List
<
AssessSchemeItemsUploadResponse
>();
foreach
(
var
item
in
datas
.
Select
((
value
,
i
)
=>
new
{
value
,
index
=
$"第
{
i
+
1
}
行"
}))
{
if
(
string
.
IsNullOrEmpty
(
string
.
Join
(
""
,
item
.
value
.
Values
)))
continue
;
var
eItemCode
=
item
.
value
.
GetOrAdd
(
"指标编码"
,
""
)?.
ToString
()
??
""
;
var
eItemCode
=
item
.
value
.
GetOrAdd
(
"
考核
指标编码"
,
""
)?.
ToString
()
??
""
;
var
eItemName1
=
item
.
value
.
GetOrAdd
(
"一级指标名称"
,
""
)?.
ToString
()
??
""
;
var
eItemName2
=
item
.
value
.
GetOrAdd
(
"二级指标名称"
,
""
)?.
ToString
()
??
""
;
var
eAssessScore
=
item
.
value
.
GetOrAdd
(
"考核分值"
,
""
)?.
ToString
()
??
""
;
var
eAssessNorm
=
item
.
value
.
GetOrAdd
(
"考核标准"
,
""
)?.
ToString
()
??
""
;
var
eUnitType
=
item
.
value
.
GetOrAdd
(
"
核算
组别"
,
""
)?.
ToString
()
??
""
;
var
eAccountingUnit
=
item
.
value
.
GetOrAdd
(
"考核
负责部门
"
,
""
)?.
ToString
()
??
""
;
var
eUnitType
=
item
.
value
.
GetOrAdd
(
"
考核单元
组别"
,
""
)?.
ToString
()
??
""
;
var
eAccountingUnit
=
item
.
value
.
GetOrAdd
(
"考核
单元名称
"
,
""
)?.
ToString
()
??
""
;
eAssessScore
=
String
.
IsNullOrEmpty
(
eAssessScore
)
?
"0"
:
eAssessScore
;
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eItemName1
),
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"一级指标名称空值无效,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eItemName2
),
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"二级指标名称空值无效,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eAssessNorm
),
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核标准空值
无效,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eUnitType
),
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"核算组别空值无效
,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eA
ccountingUnit
),
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核负责部门
空值无效,请检查后重试!"
);
error
.
AddIf
(
!
int
.
TryParse
(
eAssessScore
,
out
int
eAScore
),
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核分值填写
无效,请检查后重试!"
);
error
.
AddIf
(
eAScore
==
0
,
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核分值不能为0
,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eItemName1
),
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"一级指标名称空值无效,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eItemName2
),
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"二级指标名称空值无效,请检查后重试!"
);
error
.
AddIf
(
!
int
.
TryParse
(
eAssessScore
,
out
int
eAScore
),
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核分值填写
无效,请检查后重试!"
);
error
.
AddIf
(
eAScore
==
0
,
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核分值不能为0
,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eA
ssessNorm
),
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核标准
空值无效,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eUnitType
),
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核单元组别空值
无效,请检查后重试!"
);
error
.
AddIf
(
string
.
IsNullOrEmpty
(
eAccountingUnit
),
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"考核单元名称空值无效
,请检查后重试!"
);
var
cofaccountingdata
=
cofaccountingdatas
.
FirstOrDefault
(
w
=>
w
.
AccountingUnit
==
eAccountingUnit
&&
w
.
UnitType
==
eUnitType
);
error
.
AddIf
(
cofaccountingdata
==
null
,
item
.
index
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"未找到考核负责部门
,请检查后重试!"
);
error
.
AddIf
(
cofaccountingdata
==
null
,
item
.
index
,
""
,
eItemName1
,
eItemName2
,
eAssessScore
,
eAssessNorm
,
eAccountingUnit
,
"未找到相关考核单元组别或者考核单元名称
,请检查后重试!"
);
if
(
cofaccountingdata
==
null
)
continue
;
var
itemsData
=
itemsDatas
.
FirstOrDefault
(
w
=>
w
.
ItemCode
==
eItemCode
);
var
data
=
new
AssessSchemeItemsUploadResponse
();
...
...
@@ -810,12 +828,13 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo
if
(
unitTypes
?.
Any
()
==
true
)
issueSchemes
=
issueSchemes
.
Where
(
w
=>
w
.
AccountingUnit
==
userInfo
.
User
.
Department
&&
UnitTypeUtil
.
Is
(
w
.
UnitType
,
unitTypes
)).
ToList
();
var
stateOrders
=
new
int
[]
{
(
int
)
Assess
.
AssessState
.
待审核
,
(
int
)
Assess
.
AssessState
.
驳回
,
(
int
)
Assess
.
AssessState
.
审核通过
,
(
int
)
Assess
.
AssessState
.
未提交
};
var
items
=
issueSchemes
.
GroupBy
(
w
=>
new
{
w
.
AssessId
,
w
.
AssessCode
,
w
.
AssessName
,
w
.
ItemId
,
w
.
ItemCode
,
w
.
ItemName2
,
w
.
UnitType
,
w
.
AccountingUnit
})
var
items
=
issueSchemes
.
GroupBy
(
w
=>
new
{
w
.
AssessId
,
w
.
AssessCode
,
w
.
AssessName
,
w
.
AssessNorm
,
w
.
ItemId
,
w
.
ItemCode
,
w
.
ItemName2
,
w
.
UnitType
,
w
.
AccountingUnit
})
.
Select
(
w
=>
new
AssessSchemeEnterListResponse
{
AssessId
=
w
.
Key
.
AssessId
,
AssessCode
=
w
.
Key
.
AssessCode
,
AssessName
=
w
.
Key
.
AssessName
,
AssessNorm
=
w
.
Key
.
AssessNorm
,
UnitType
=
w
.
Key
.
UnitType
,
AccountingUnit
=
w
.
Key
.
AccountingUnit
,
ItemId
=
w
.
Key
.
ItemId
,
...
...
@@ -844,19 +863,90 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo
items
=
items
.
OrderBy
(
w
=>
stateOrders
.
Contains
(
w
.
State
)
?
Array
.
IndexOf
(
stateOrders
,
w
.
State
)
:
int
.
MaxValue
).
ToList
();
return
new
ApiResponse
<
List
<
AssessSchemeEnterListResponse
>>(
ResponseType
.
OK
,
items
);
}
public
PagedList
<
AssessSchemeResultListResponse
>
SchemeResultList
(
QuerySchemeResultList
query
)
{
var
allot
=
perforPerallotRepository
.
GetEntity
(
w
=>
w
.
ID
==
query
.
AllotId
);
if
(
allot
==
null
)
throw
new
PerformanceException
(
"当前绩效记录不存在"
);
var
viewAResult
=
perforPerallotRepository
.
GetAssessResult
(
query
.
AllotId
);
var
viewAResultQuery
=
viewAResult
.
AsQueryable
();
if
(
query
.
SchemeId
>
0
)
viewAResultQuery
=
viewAResultQuery
.
Where
(
w
=>
w
.
SchemeId
==
query
.
SchemeId
);
if
(!
string
.
IsNullOrEmpty
(
query
.
TargetUnitType
))
viewAResultQuery
=
viewAResultQuery
.
Where
(
w
=>
w
.
TargetUnitType
==
query
.
TargetUnitType
);
if
(!
string
.
IsNullOrEmpty
(
query
.
TargetAccountingUnit
))
viewAResultQuery
=
viewAResultQuery
.
Where
(
w
=>
w
.
TargetAccountingUnit
==
query
.
TargetAccountingUnit
);
if
(!
string
.
IsNullOrEmpty
(
query
.
ItemName2
))
viewAResultQuery
=
viewAResultQuery
.
Where
(
w
=>
w
.
ItemName2
==
query
.
ItemName2
);
var
result
=
viewAResultQuery
.
ToList
();
var
data
=
result
.
Select
(
item
=>
{
return
new
AssessSchemeResultListResponse
()
{
TargetUnitType
=
item
.
TargetUnitType
,
TargetAccountingUnit
=
item
.
TargetAccountingUnit
,
ItemName2
=
item
.
ItemName2
,
Score
=
item
.
Score
,
};
}).
ToList
();
var
columns
=
data
.
Select
(
item
=>
item
.
ItemName2
).
Distinct
().
ToList
();
var
results
=
data
.
GroupBy
(
item
=>
new
{
item
.
TargetUnitType
,
item
.
TargetAccountingUnit
})
.
Select
(
t
=>
{
var
dict
=
new
Dictionary
<
string
,
object
>
{
{
"TargetUnitType"
,
t
.
Key
.
TargetUnitType
},
{
"TargetAccountingUnit"
,
t
.
Key
.
TargetAccountingUnit
},
};
var
asb
=
new
List
<
AssessSchemeDictionaryResults
>();
foreach
(
var
column
in
columns
)
{
var
score
=
t
.
Where
(
w
=>
w
.
ItemName2
==
column
).
Sum
(
w
=>
w
.
Score
);
dict
.
Add
(
column
,
score
);
var
a
=
new
AssessSchemeDictionaryResults
()
{
Title
=
column
,
Value
=
score
};
asb
.
Add
(
a
);
}
var
totalAssessScore
=
dict
.
Where
(
w
=>
columns
.
Contains
(
w
.
Key
)).
Sum
(
w
=>
(
int
)
w
.
Value
);
dict
.
AddOrUpdate
(
"TotalAssessScore"
,
totalAssessScore
);
return
new
AssessSchemeResultListResponse
()
{
TargetUnitType
=
t
.
Key
.
TargetUnitType
,
TargetAccountingUnit
=
t
.
Key
.
TargetAccountingUnit
,
DictionaryResults
=
asb
,
TotalAssessScore
=
totalAssessScore
};
}).
ToList
();
var
totalItems
=
results
.
Count
();
var
pagedIssueSchemes
=
results
.
Skip
((
query
.
Page
-
1
)
*
query
.
PageSize
).
Take
(
query
.
PageSize
).
ToList
();
return
new
PagedList
<
AssessSchemeResultListResponse
>(
pagedIssueSchemes
,
query
.
Page
,
query
.
PageSize
,
totalItems
);
}
public
PagedList
<
AssessSchemeEnterDetaiListResponse
>
SchemeEnterDetailList
(
QuerySchemeEnterDetailList
query
)
{
var
issueSchemes
=
perforPerAssessIssueSchemeRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
query
.
AllotId
&&
w
.
ItemId
==
query
.
ItemId
);
issueSchemes
=
issueSchemes
.
Where
(
w
=>
(
string
.
IsNullOrEmpty
(
query
.
TargetUnitType
)
||
w
.
TargetUnitType
.
Contains
(
query
.
TargetUnitType
))
&&
(
string
.
IsNullOrEmpty
(
query
.
TargetAccountingUnit
)
||
w
.
AccountingUnit
.
Contains
(
query
.
TargetAccountingUnit
))
&&
(
string
.
IsNullOrEmpty
(
query
.
ItemName2
)
||
w
.
ItemName2
.
Contains
(
query
.
ItemName2
))
).
ToList
();
var
issueSchemes
=
perforPerAssessIssueSchemeRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
query
.
AllotId
);
if
(!
issueSchemes
.
Any
())
throw
new
PerformanceException
(
"暂无数据"
);
var
issueSchemesQuery
=
issueSchemes
.
AsQueryable
();
if
(
query
.
ItemId
>
0
)
issueSchemesQuery
=
issueSchemesQuery
.
Where
(
w
=>
w
.
ItemId
==
query
.
ItemId
);
if
(!
string
.
IsNullOrEmpty
(
query
.
TargetUnitType
))
issueSchemesQuery
=
issueSchemesQuery
.
Where
(
w
=>
w
.
TargetUnitType
==
query
.
TargetUnitType
);
if
(!
string
.
IsNullOrEmpty
(
query
.
TargetAccountingUnit
))
issueSchemesQuery
=
issueSchemesQuery
.
Where
(
w
=>
w
.
TargetAccountingUnit
==
query
.
TargetAccountingUnit
);
if
(!
string
.
IsNullOrEmpty
(
query
.
ItemName2
))
issueSchemesQuery
=
issueSchemesQuery
.
Where
(
w
=>
w
.
ItemName2
==
query
.
ItemName2
);
if
((
int
)
query
.
State
==
(
int
)
Assess
.
AssessState
.
审核通过
)
issueSchemesQuery
=
issueSchemesQuery
.
Where
(
w
=>
w
.
State
==
(
int
)
query
.
State
);
var
result
=
issueSchemesQuery
.
ToList
();
var
stateOrders
=
new
int
[]
{
(
int
)
Assess
.
AssessState
.
待审核
,
(
int
)
Assess
.
AssessState
.
驳回
,
(
int
)
Assess
.
AssessState
.
审核通过
,
(
int
)
Assess
.
AssessState
.
未提交
};
var
datas
=
mapper
.
Map
<
List
<
AssessSchemeEnterDetaiListResponse
>>(
issueSchemes
);
var
datas
=
mapper
.
Map
<
List
<
AssessSchemeEnterDetaiListResponse
>>(
result
);
datas
=
datas
.
OrderBy
(
w
=>
stateOrders
.
Contains
(
w
.
State
)
?
Array
.
IndexOf
(
stateOrders
,
w
.
State
)
:
int
.
MaxValue
).
ToList
();
var
totalItems
=
issueScheme
s
.
Count
();
var
totalItems
=
data
s
.
Count
();
var
pagedIssueSchemes
=
datas
.
Skip
((
query
.
Page
-
1
)
*
query
.
PageSize
).
Take
(
query
.
PageSize
).
ToList
();
return
new
PagedList
<
AssessSchemeEnterDetaiListResponse
>(
pagedIssueSchemes
,
query
.
Page
,
query
.
PageSize
,
totalItems
);
}
...
...
performance/Performance.Services/AttendanceService.cs
View file @
2c06d7c8
...
...
@@ -2594,7 +2594,7 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
{
var
temp
=
data
.
ElementAt
(
row
);
var
low
=
temp
.
Keys
.
ToString
().
ToLower
();
var
value
=
temp
[
headList
[
col
].
Name
.
ToLower
()]
;
var
value
=
temp
.
GetValue
(
headList
[
col
].
Name
,
""
)
;
worksheet
.
Cells
[
row
+
3
,
col
+
1
].
Value
=
value
;
}
...
...
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