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
e02f61cb
Commit
e02f61cb
authored
Oct 11, 2019
by
李承祥
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
应用最新的模板、获取二次绩效详情
parent
701d1f21
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
120 additions
and
57 deletions
+120
-57
performance/Performance.Api/Controllers/SecondAllotController.cs
+16
-3
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+9
-0
performance/Performance.DtoModels/Request/UseTempRequest.cs
+13
-0
performance/Performance.DtoModels/Response/SecondResponse.cs
+1
-1
performance/Performance.Services/SecondAllotService.cs
+81
-53
No files found.
performance/Performance.Api/Controllers/SecondAllotController.cs
View file @
e02f61cb
...
@@ -103,10 +103,10 @@ public ApiResponse SaveCompute([FromBody]List<ag_compute> request)
...
@@ -103,10 +103,10 @@ public ApiResponse SaveCompute([FromBody]List<ag_compute> request)
/// <returns></returns>
/// <returns></returns>
[
Route
(
"api/temp/usetemp"
)]
[
Route
(
"api/temp/usetemp"
)]
[
HttpPost
]
[
HttpPost
]
public
ApiResponse
UseTemp
(
UseTempRequest
request
)
public
ApiResponse
UseTemp
(
[
CustomizeValidator
(
RuleSet
=
"Use"
),
FromBody
]
UseTempRequest
request
)
{
{
var
result
=
secondAllotService
.
UseTemp
(
request
);
var
result
=
secondAllotService
.
UseTemp
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
);
return
result
?
new
ApiResponse
(
ResponseType
.
OK
,
"添加成功"
)
:
new
ApiResponse
(
ResponseType
.
Fail
,
"添加失败"
);
}
}
/// <summary>
/// <summary>
...
@@ -115,8 +115,9 @@ public ApiResponse UseTemp(UseTempRequest request)
...
@@ -115,8 +115,9 @@ public ApiResponse UseTemp(UseTempRequest request)
/// <returns></returns>
/// <returns></returns>
[
Route
(
"api/second/refreshtemp"
)]
[
Route
(
"api/second/refreshtemp"
)]
[
HttpPost
]
[
HttpPost
]
public
ApiResponse
RefreshTemp
()
public
ApiResponse
RefreshTemp
(
[
CustomizeValidator
(
RuleSet
=
"Refresh"
),
FromBody
]
UseTempRequest
request
)
{
{
secondAllotService
.
RefreshTemp
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
}
...
@@ -181,5 +182,16 @@ public ApiResponse Temp()
...
@@ -181,5 +182,16 @@ public ApiResponse Temp()
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
}
/// <summary>
/// 二次绩效详情
/// </summary>
/// <returns></returns>
[
Route
(
"api/second/detail"
)]
[
HttpPost
]
public
ApiResponse
SecondDetail
([
CustomizeValidator
(
RuleSet
=
"Refresh"
),
FromBody
]
UseTempRequest
request
)
{
var
result
=
secondAllotService
.
GetSecondDetail
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
}
}
}
}
\ No newline at end of file
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
e02f61cb
...
@@ -182,6 +182,15 @@ public AutoMapperConfigs()
...
@@ -182,6 +182,15 @@ public AutoMapperConfigs()
CreateMap
<
UseTempRequest
,
ag_usetemp
>()
CreateMap
<
UseTempRequest
,
ag_usetemp
>()
.
ForMember
(
dest
=>
dest
.
UseTempId
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
TempId
))
.
ForMember
(
dest
=>
dest
.
UseTempId
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
TempId
))
.
ReverseMap
();
.
ReverseMap
();
CreateMap
<
ag_tempitem
,
HeadItem
>();
CreateMap
<
ag_workload
,
HeadItem
>()
.
ForMember
(
dest
=>
dest
.
FiledId
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemId
))
.
ForMember
(
dest
=>
dest
.
FiledName
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemName
))
.
ForMember
(
dest
=>
dest
.
Type
,
opt
=>
opt
.
NullSubstitute
(
3
));
CreateMap
<
ag_fixatitem
,
BodyItem
>()
.
ForMember
(
dest
=>
dest
.
FiledName
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemName
))
.
ForMember
(
dest
=>
dest
.
Value
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemValue
));
}
}
}
}
}
}
performance/Performance.DtoModels/Request/UseTempRequest.cs
View file @
e02f61cb
...
@@ -14,12 +14,25 @@ public class UseTempRequest
...
@@ -14,12 +14,25 @@ public class UseTempRequest
public
string
Department
{
get
;
set
;
}
public
string
Department
{
get
;
set
;
}
public
string
UnitType
{
get
;
set
;
}
public
string
UnitType
{
get
;
set
;
}
public
int
SecondId
{
get
;
set
;
}
}
}
public
class
UseTempRequestValidator
:
AbstractValidator
<
UseTempRequest
>
public
class
UseTempRequestValidator
:
AbstractValidator
<
UseTempRequest
>
{
{
public
UseTempRequestValidator
()
public
UseTempRequestValidator
()
{
{
RuleSet
(
"Use"
,
()
=>
{
RuleFor
(
x
=>
x
.
TempId
).
NotNull
().
GreaterThan
(
0
);
RuleFor
(
x
=>
x
.
TempId
).
NotNull
().
GreaterThan
(
0
);
});
RuleSet
(
"Refresh"
,
()
=>
{
RuleFor
(
x
=>
x
.
HospitalId
).
NotNull
().
GreaterThan
(
0
);
RuleFor
(
x
=>
x
.
Department
).
NotNull
().
NotEmpty
();
RuleFor
(
x
=>
x
.
UnitType
).
NotNull
().
NotEmpty
();
RuleFor
(
x
=>
x
.
SecondId
).
NotNull
().
GreaterThan
(
0
);
});
}
}
}
}
}
}
performance/Performance.DtoModels/Response/SecondResponse.cs
View file @
e02f61cb
...
@@ -16,7 +16,7 @@ public class HeadItem
...
@@ -16,7 +16,7 @@ public class HeadItem
public
string
FiledName
{
get
;
set
;
}
public
string
FiledName
{
get
;
set
;
}
public
decimal
Sort
{
get
;
set
;
}
public
decimal
Sort
{
get
;
set
;
}
public
int
Type
{
get
;
set
;
}
public
int
Type
{
get
;
set
;
}
public
int
FactorValue
{
get
;
set
;
}
public
decimal
FactorValue
{
get
;
set
;
}
public
int
SourceType
{
get
;
set
;
}
public
int
SourceType
{
get
;
set
;
}
}
}
...
...
performance/Performance.Services/SecondAllotService.cs
View file @
e02f61cb
...
@@ -150,13 +150,51 @@ public bool UseTemp(UseTempRequest request)
...
@@ -150,13 +150,51 @@ public bool UseTemp(UseTempRequest request)
/// 应用模板
/// 应用模板
/// </summary>
/// </summary>
/// <returns></returns>
/// <returns></returns>
public
void
RefreshTemp
(
int
secondId
)
public
void
RefreshTemp
(
UseTempRequest
request
)
{
{
var
fixatList
=
perforAgfixatitemRepository
.
GetEntities
(
t
=>
t
.
SecondId
==
secondId
);
var
usetemp
=
perforAgusetempRepository
.
GetEntity
(
t
=>
t
.
HospitalId
==
request
.
HospitalId
&&
t
.
Department
==
request
.
Department
&&
t
.
UnitType
==
request
.
UnitType
);
if
(
usetemp
==
null
)
throw
new
PerformanceException
(
"参数usetempId 无效"
);
//获取工作量列头
var
workItem
=
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
usetemp
.
HospitalId
&&
t
.
Department
==
usetemp
.
Department
&&
t
.
UnitType
==
usetemp
.
UnitType
);
//获取固定模板列头
var
tempItem
=
perforAgtempitemRepository
.
GetEntities
(
t
=>
t
.
TempId
==
usetemp
.
UseTempId
);
var
tempHeader
=
workItem
==
null
?
tempItem
.
Select
(
t
=>
t
.
FiledName
)
:
tempItem
.
Select
(
t
=>
t
.
FiledName
).
Union
(
workItem
?.
Select
(
t
=>
t
.
ItemName
));
//获取数据
var
fixatList
=
perforAgfixatitemRepository
.
GetEntities
(
t
=>
t
.
SecondId
==
request
.
SecondId
);
if
(
fixatList
==
null
||
fixatList
.
Count
==
0
)
if
(
fixatList
==
null
||
fixatList
.
Count
==
0
)
throw
new
PerformanceException
(
"
参数secondId 无效
"
);
throw
new
PerformanceException
(
"
未录入数据
"
);
throw
new
NotImplementedException
();
//更新系数、排序
fixatList
.
ForEach
(
t
=>
{
t
.
Sort
=
workItem
?.
FirstOrDefault
(
w
=>
w
.
ItemName
==
t
.
ItemName
)?.
Sort
;
t
.
FactorValue
=
workItem
?.
FirstOrDefault
(
w
=>
w
.
ItemName
==
t
.
ItemName
)?.
FactorValue
;
});
perforAgfixatitemRepository
.
UpdateRange
(
fixatList
.
ToArray
());
//删除 列 不存在的数据
var
header
=
fixatList
.
Select
(
t
=>
t
.
ItemName
).
Distinct
();
var
delItems
=
header
.
Except
(
tempHeader
);
if
(
delItems
!=
null
&&
delItems
.
Count
()
>
0
)
perforAgfixatitemRepository
.
RemoveRange
(
fixatList
.
Where
(
t
=>
delItems
.
Contains
(
t
.
ItemName
)).
ToArray
());
//添加 新增列 的数据
var
addItems
=
new
List
<
ag_fixatitem
>();
fixatList
.
Select
(
t
=>
t
.
RowNumber
).
Distinct
().
ToList
().
ForEach
(
t
=>
{
addItems
.
AddRange
(
tempHeader
.
Except
(
header
)?.
Select
(
s
=>
new
ag_fixatitem
{
ItemName
=
s
,
RowNumber
=
t
,
AllotId
=
fixatList
.
First
().
AllotId
,
SecondId
=
fixatList
.
First
().
SecondId
,
UnitType
=
fixatList
.
First
().
UnitType
,
Sort
=
tempItem
?.
FirstOrDefault
(
w
=>
w
.
FiledName
==
s
)?.
Sort
??
workItem
?.
FirstOrDefault
(
w
=>
w
.
ItemName
==
s
)?.
Sort
,
FactorValue
=
workItem
?.
FirstOrDefault
(
w
=>
w
.
ItemName
==
s
)?.
FactorValue
,
}));
});
if
(
addItems
!=
null
&&
addItems
.
Count
()
>
0
)
perforAgfixatitemRepository
.
AddRange
(
addItems
.
ToArray
());
}
}
/// <summary>
/// <summary>
...
@@ -295,62 +333,52 @@ public bool WorkloadDelete(int id)
...
@@ -295,62 +333,52 @@ public bool WorkloadDelete(int id)
return
perforAgworkloadRepository
.
Remove
(
workload
);
return
perforAgworkloadRepository
.
Remove
(
workload
);
}
}
public
void
GetHeader
()
/// <summary>
{
/// 二次绩效详情
/// </summary>
}
/// <returns></returns>
public
SecondResponse
GetSecondDetail
(
UseTempRequest
request
)
public
void
SaveValue
(
FixatItemRequest
request
)
{
if
(
request
.
FixatItems
==
null
||
request
.
FixatItems
.
Count
==
0
)
throw
new
PerformanceException
(
"保存的内容为空"
);
#
region
添加新的值
var
addItem
=
request
.
FixatItems
.
Where
(
t
=>
t
.
FixatId
==
0
).
ToList
();
if
(
addItem
!=
null
&&
addItem
.
Count
()
>
0
)
{
{
var
newFixat
=
addItem
.
Select
(
t
=>
new
ag_fixatitem
var
usetemp
=
perforAgusetempRepository
.
GetEntity
(
t
=>
t
.
HospitalId
==
request
.
HospitalId
&&
t
.
Department
==
request
.
Department
&&
t
.
UnitType
==
request
.
UnitType
);
if
(
usetemp
==
null
)
throw
new
PerformanceException
(
"参数usetempId 无效"
);
//获取固定模板列头
var
tempItem
=
perforAgtempitemRepository
.
GetEntities
(
t
=>
t
.
TempId
==
usetemp
.
UseTempId
);
var
headItems
=
Mapper
.
Map
<
List
<
HeadItem
>>(
tempItem
);
//获取工作量列头
var
workItem
=
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
usetemp
.
HospitalId
&&
t
.
Department
==
usetemp
.
Department
&&
t
.
UnitType
==
usetemp
.
UnitType
);
if
(
workItem
!=
null
&&
workItem
.
Count
>
0
)
headItems
.
AddRange
(
Mapper
.
Map
<
List
<
HeadItem
>>(
workItem
));
var
result
=
new
SecondResponse
{
HeadItems
=
headItems
};
//获取数据
var
fixatList
=
perforAgfixatitemRepository
.
GetEntities
(
t
=>
t
.
SecondId
==
request
.
SecondId
);
if
(
fixatList
!=
null
||
fixatList
.
Count
>
0
)
{
{
AllotId
=
request
.
AllotId
,
//补充数据
SecondId
=
request
.
SecondId
,
var
groupList
=
fixatList
.
GroupBy
(
t
=>
t
.
RowNumber
);
UnitType
=
request
.
UnitType
,
foreach
(
var
item
in
groupList
)
RowNumber
=
request
.
RowNumber
,
ItemName
=
t
.
ItemName
,
ItemValue
=
t
.
ItemValue
,
FactorValue
=
t
.
FactorValue
,
Sort
=
t
.
Sort
,
Type
=
t
.
Type
,
SourceType
=
t
.
SourceType
});
if
(
newFixat
!=
null
&&
newFixat
.
Count
()
>
0
)
perforAgfixatitemRepository
.
AddRange
(
newFixat
.
ToArray
());
}
#
endregion
#
region
更新原始值
var
updateItme
=
request
.
FixatItems
.
Where
(
t
=>
t
.
FixatId
>=
0
).
ToList
();
if
(
updateItme
!=
null
&&
updateItme
.
Count
()
>
0
)
{
{
var
fixatIds
=
updateItme
.
Select
(
t
=>
t
.
FixatId
);
var
newItem
=
headItems
.
Select
(
t
=>
t
.
FiledName
).
Except
(
item
?.
Select
(
i
=>
i
.
ItemName
));
var
oldFixat
=
perforAgfixatitemRepository
.
GetEntities
(
t
=>
fixatIds
.
Contains
(
t
.
Id
));
if
(
newItem
!=
null
&&
newItem
.
Count
()
>
0
)
if
(
oldFixat
!=
null
&&
oldFixat
.
Count
>
0
)
{
{
oldFixat
.
ForEach
(
t
=>
fixatList
.
AddRange
(
newItem
.
Select
(
t
=>
new
ag_fixatitem
{
{
var
fixat
=
updateItme
.
Where
(
s
=>
s
.
FixatId
==
t
.
Id
).
FirstOrDefault
();
ItemName
=
t
,
t
.
ItemName
=
fixat
.
ItemName
;
ItemValue
=
0
,
t
.
ItemValue
=
fixat
.
ItemValue
;
RowNumber
=
item
.
Key
,
t
.
FactorValue
=
fixat
.
FactorValue
;
AllotId
=
fixatList
.
First
().
AllotId
,
t
.
Sort
=
fixat
.
Sort
;
SecondId
=
fixatList
.
First
().
SecondId
,
t
.
Type
=
fixat
.
Type
;
UnitType
=
fixatList
.
First
().
UnitType
,
t
.
SourceType
=
fixat
.
SourceType
;
Sort
=
headItems
?.
FirstOrDefault
(
s
=>
s
.
FiledName
==
t
)?.
Sort
,
});
FactorValue
=
headItems
?.
FirstOrDefault
(
s
=>
s
.
FiledName
==
t
)?.
FactorValue
,
perforAgfixatitemRepository
.
AddRange
(
oldFixat
.
ToArray
(
));
}
));
}
}
}
}
#
endregion
result
.
BodyItems
=
Mapper
.
Map
<
List
<
BodyItem
>>(
fixatList
);
}
return
result
;
}
}
}
}
}
}
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