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
4f22abef
Commit
4f22abef
authored
Jul 01, 2020
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
原始数据修改,4.1核算数据增加修改数据源,新增绩效新增数据异常
parent
1c3bd83d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
113 additions
and
12 deletions
+113
-12
performance/Performance.Services/ConfigService.cs
+24
-4
performance/Performance.Services/OriginalService.cs
+89
-8
No files found.
performance/Performance.Services/ConfigService.cs
View file @
4f22abef
using
AutoMapper
;
using
Microsoft.Extensions.Logging
;
using
Newtonsoft.Json.Linq
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
...
...
@@ -26,6 +27,7 @@ public class ConfigService : IAutoInjection
private
PerforCofdepttypeRepository
perforCofdepttypeRepository
;
private
PerforPerapramountRepository
perapramountRepository
;
private
readonly
LogManageService
logManageService
;
private
ILogger
<
ConfigService
>
logger
;
public
ConfigService
(
PerforCofdirectorRepository
cofdirectorRepository
,
PerforCofdrugpropRepository
cofdrugpropRepository
,
...
...
@@ -38,7 +40,8 @@ public class ConfigService : IAutoInjection
PerforImheaderRepository
perforImheaderRepository
,
PerforCofdepttypeRepository
perforCofdepttypeRepository
,
PerforPerapramountRepository
perapramountRepository
,
LogManageService
logManageService
)
LogManageService
logManageService
,
ILogger
<
ConfigService
>
logger
)
{
this
.
_directorRepository
=
cofdirectorRepository
;
this
.
_drugpropRepository
=
cofdrugpropRepository
;
...
...
@@ -52,6 +55,7 @@ public class ConfigService : IAutoInjection
this
.
perforCofdepttypeRepository
=
perforCofdepttypeRepository
;
this
.
perapramountRepository
=
perapramountRepository
;
this
.
logManageService
=
logManageService
;
this
.
logger
=
logger
;
}
#
endregion
...
...
@@ -555,6 +559,7 @@ public void Copy(per_allot allot)
}
var
hospital
=
perforHospitalRepository
.
GetEntity
(
t
=>
t
.
ID
==
allot
.
HospitalId
);
logger
.
LogInformation
(
$"apramount
{
allotId
}
{
allot
.
ID
}
"
);
CopyAprData
(
allotId
,
allot
.
ID
);
#
region
弃用
...
...
@@ -591,6 +596,8 @@ public void Copy(per_allot allot)
#
endregion
logger
.
LogInformation
(
$"orgDurgprop"
);
var
orgDurgprop
=
_drugpropRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
if
(
orgDurgprop
==
null
||
orgDurgprop
.
Count
==
0
)
{
...
...
@@ -601,6 +608,7 @@ public void Copy(per_allot allot)
_drugpropRepository
.
AddRange
(
newDurgprops
.
ToArray
());
}
logger
.
LogInformation
(
$"workItem"
);
var
workItem
=
_workitemRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
if
(
hospital
!=
null
&&
hospital
?.
IsOpenDrugprop
==
1
&&
(
workItem
==
null
||
workItem
.
Count
==
0
))
{
...
...
@@ -612,6 +620,7 @@ public void Copy(per_allot allot)
}
}
logger
.
LogInformation
(
$"cofDrugtype"
);
var
cofDrugtype
=
_drugtypeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
if
(
cofDrugtype
==
null
||
cofDrugtype
.
Count
==
0
)
{
...
...
@@ -620,6 +629,7 @@ public void Copy(per_allot allot)
_drugtypeRepository
.
AddRange
(
newAgains
.
ToArray
());
}
logger
.
LogInformation
(
$"cofDepttype"
);
var
cofDepttype
=
perforCofdepttypeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
if
(
cofDepttype
==
null
||
cofDepttype
.
Count
==
0
)
{
...
...
@@ -630,6 +640,7 @@ public void Copy(per_allot allot)
perforCofdepttypeRepository
.
AddRange
(
newAgains
.
ToArray
());
}
logger
.
LogInformation
(
$"again"
);
var
data
=
_againRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
if
(
data
==
null
||
data
.
Count
==
0
)
{
...
...
@@ -705,12 +716,21 @@ private void CopyAprData(int prevAllotId, int allotId)
{
var
prevData
=
list
.
Where
(
t
=>
t
.
AllotId
==
prevAllotId
);
var
existData
=
list
.
Where
(
t
=>
t
.
AllotId
==
allotId
);
list
=
prevData
.
Where
(
t
=>
!
existData
.
Select
(
w
=>
w
.
PersonnelNumber
).
Contains
(
t
.
PersonnelNumber
)).
ToList
();
if
(
existData
!=
null
&&
existData
.
Any
())
list
=
prevData
.
Where
(
t
=>
!
existData
.
Select
(
w
=>
w
.
PersonnelNumber
).
Contains
(
t
.
PersonnelNumber
)).
ToList
();
}
if
(
list
.
Any
())
{
list
.
ForEach
(
t
=>
t
.
AllotId
=
allotId
);
perapramountRepository
.
AddRange
(
list
.
ToArray
());
var
data
=
list
.
Select
(
t
=>
new
per_apr_amount
{
AllotId
=
allotId
,
PersonnelNumber
=
t
.
PersonnelNumber
,
DoctorName
=
t
.
DoctorName
,
PerforType
=
t
.
PerforType
,
Amount
=
t
.
Amount
,
CreateDate
=
DateTime
.
Now
});
perapramountRepository
.
AddRange
(
data
.
ToArray
());
}
}
}
...
...
performance/Performance.Services/OriginalService.cs
View file @
4f22abef
...
...
@@ -23,6 +23,7 @@ public class OriginalService : IAutoInjection
private
readonly
PerforImemployeeclinicRepository
imemployeeclinicRepository
;
private
readonly
PerforImdataRepository
imdataRepository
;
private
readonly
PerforImspecialunitRepository
imspecialunitRepository
;
private
readonly
PerforImaccountbasicRepository
imaccountbasicRepository
;
public
OriginalService
(
PerforPersheetRepository
persheetRepository
,
PerforPerallotRepository
perallotRepository
,
...
...
@@ -30,7 +31,8 @@ public class OriginalService : IAutoInjection
PerforImemployeeRepository
imemployeeRepository
,
PerforImemployeeclinicRepository
imemployeeclinicRepository
,
PerforImdataRepository
imdataRepository
,
PerforImspecialunitRepository
imspecialunitRepository
)
PerforImspecialunitRepository
imspecialunitRepository
,
PerforImaccountbasicRepository
imaccountbasicRepository
)
{
this
.
persheetRepository
=
persheetRepository
;
this
.
perallotRepository
=
perallotRepository
;
...
...
@@ -39,6 +41,7 @@ public class OriginalService : IAutoInjection
this
.
imemployeeclinicRepository
=
imemployeeclinicRepository
;
this
.
imdataRepository
=
imdataRepository
;
this
.
imspecialunitRepository
=
imspecialunitRepository
;
this
.
imaccountbasicRepository
=
imaccountbasicRepository
;
}
public
bool
EditFactorData
(
int
userId
,
OriginalRequest
request
)
...
...
@@ -105,7 +108,7 @@ public bool EditSheetData(int userId, OriginalRequest request)
case
(
int
)
SheetType
.
Expend
:
case
(
int
)
SheetType
.
Workload
:
case
(
int
)
SheetType
.
AccountBasic
:
result
=
EditFeeData
(
userId
,
request
);
result
=
EditFeeData
(
userId
,
request
,
sheet
.
SheetType
==
(
int
)
SheetType
.
AccountBasic
);
break
;
}
}
...
...
@@ -168,6 +171,55 @@ private bool EditSpecialUnit(int userId, OriginalRequest request)
return
imspecialunitRepository
.
Update
(
specialUnit
);
}
private
bool
EditAccountBasic
(
int
userId
,
OriginalRequest
request
)
{
Dictionary
<
string
,
string
>
accdict
=
new
Dictionary
<
string
,
string
>
{
{
"核算单元类型"
,
nameof
(
im_accountbasic
.
UnitType
)
},
{
"核算单元"
,
nameof
(
im_accountbasic
.
DoctorAccountingUnit
)
},
{
"科室名称"
,
nameof
(
im_accountbasic
.
Department
)
},
{
"效率绩效人数"
,
nameof
(
im_accountbasic
.
PermanentStaff
)
},
{
"科主任/护士长人数"
,
nameof
(
im_accountbasic
.
DoctorDirectorNumber
)
},
{
"核算单元人员数量"
,
nameof
(
im_accountbasic
.
DoctorNumber
)
},
{
"预算比例"
,
nameof
(
im_accountbasic
.
DoctorBasicFactor
)
},
{
"倾斜系数"
,
nameof
(
im_accountbasic
.
DoctorSlopeFactor
)
},
{
"工作量倾斜系数"
,
nameof
(
im_accountbasic
.
WorkSlopeFactor
)
},
{
"保底绩效参考标准"
,
nameof
(
im_accountbasic
.
MinimumReference
)
},
{
"保底绩效系数"
,
nameof
(
im_accountbasic
.
MinimumFactor
)
},
{
"其他绩效1"
,
nameof
(
im_accountbasic
.
DoctorOtherPerfor1
)
},
{
"其他绩效2"
,
nameof
(
im_accountbasic
.
DoctorOtherPerfor2
)
},
{
"药占比奖罚"
,
nameof
(
im_accountbasic
.
MedicineExtra
)
},
{
"材料占比奖罚"
,
nameof
(
im_accountbasic
.
MaterialsExtra
)
},
{
"考核得分率"
,
nameof
(
im_accountbasic
.
DoctorScoringAverage
)
},
{
"调节系数"
,
nameof
(
im_accountbasic
.
DoctorAdjustFactor
)
},
};
var
imdata
=
imdataRepository
.
GetEntity
(
t
=>
t
.
SheetID
==
request
.
SheetId
&&
t
.
RowNumber
==
request
.
RowNumber
);
if
(
imdata
==
null
||
request
.
Cell
==
null
||
!
accdict
.
ContainsKey
(
request
.
Cell
.
FieldName
))
return
false
;
var
basic
=
imaccountbasicRepository
.
GetEntity
(
t
=>
t
.
SheetID
==
request
.
SheetId
&&
t
.
Department
==
imdata
.
Department
&&
t
.
DoctorAccountingUnit
==
imdata
.
AccountingUnit
&&
t
.
UnitType
==
imdata
.
UnitType
);
if
(
basic
==
null
)
return
false
;
if
(
request
.
Cell
.
FieldName
==
"核算单元类型"
)
{
var
cellvalue
=
EnumHelper
.
GetItems
<
UnitType
>().
FirstOrDefault
(
t
=>
t
.
Name
==
request
.
Cell
.
CellValue
.
ToString
());
if
(
cellvalue
==
null
)
return
false
;
if
(
cellvalue
.
Value
==
basic
.
UnitType
)
return
true
;
request
.
Cell
.
CellValue
=
cellvalue
.
Value
;
}
string
fieldname
=
request
.
Cell
.
FieldName
;
request
.
Cell
.
FieldName
=
accdict
[
request
.
Cell
.
FieldName
];
SetValue
(
basic
,
request
.
Cell
);
basic
.
UpdateDate
=
DateTime
.
Now
;
basic
.
UpdateUser
=
userId
;
request
.
Cell
.
FieldName
=
fieldname
;
return
imaccountbasicRepository
.
Update
(
basic
);
}
private
void
SetValue
<
TEntity
>(
TEntity
entity
,
CellRequest
cell
)
{
var
value
=
cell
.
CellValue
;
...
...
@@ -202,8 +254,6 @@ private void SetValue<TEntity>(TEntity entity, CellRequest cell)
value
=
Convert
.
ToDecimal
(
value
);
else
if
(
type
.
IndexOf
(
"datetime"
)
>
-
1
)
value
=
Convert
.
ToDateTime
(
value
);
else
if
(
type
.
IndexOf
(
"datetime"
)
>
-
1
)
value
=
Convert
.
ToDateTime
(
value
);
else
if
(
type
.
IndexOf
(
"string"
)
>
-
1
)
value
=
cell
.
CellValue
.
ToString
();
}
...
...
@@ -222,7 +272,7 @@ private void SetValue<TEntity>(TEntity entity, CellRequest cell)
#
region
imdata
private
bool
EditFeeData
(
int
userId
,
OriginalRequest
request
)
private
bool
EditFeeData
(
int
userId
,
OriginalRequest
request
,
bool
basic
)
{
var
result
=
false
;
var
header
=
imheaderRepository
.
GetEntity
(
t
=>
t
.
SheetID
==
request
.
SheetId
&&
t
.
PointCell
==
request
.
Cell
.
PointCell
);
...
...
@@ -233,7 +283,12 @@ private bool EditFeeData(int userId, OriginalRequest request)
else
request
.
Cell
.
FieldName
=
header
.
CellValue
;
}
var
publicTypes
=
new
string
[]
{
"核算单元(医技组)"
,
"核算单元(医生组)"
,
"核算单元(护理组)"
,
"科室名称"
};
if
(
basic
)
result
=
EditAccountBasic
(
userId
,
request
);
//用于计算不显示
// 用于显示不计算
var
publicTypes
=
new
string
[]
{
"核算单元(医技组)"
,
"核算单元(医生组)"
,
"核算单元(护理组)"
,
"科室名称"
,
"核算单元类型"
,
"核算单元"
};
if
(
publicTypes
.
Contains
(
request
.
Cell
.
FieldName
))
result
=
ImDataPublic
(
request
);
else
...
...
@@ -242,8 +297,11 @@ private bool EditFeeData(int userId, OriginalRequest request)
{
try
{
var
value
=
request
.
Cell
.
CellValue
;
if
(
value
.
ToString
().
IndexOf
(
"%"
)
>
-
1
)
value
=
ConvertHelper
.
To
<
decimal
>(
value
.
ToString
().
Replace
(
"%"
,
""
))
/
100
;
var
entity
=
imdataRepository
.
GetEntity
(
w
=>
w
.
ID
==
request
.
Cell
.
Id
);
entity
.
CellValue
=
Convert
.
ToDecimal
(
request
.
Cell
.
CellV
alue
);
entity
.
CellValue
=
Convert
.
ToDecimal
(
v
alue
);
entity
.
UpdateDate
=
DateTime
.
Now
;
entity
.
UpdateUser
=
userId
;
result
=
imdataRepository
.
Update
(
entity
);
...
...
@@ -256,6 +314,7 @@ private bool EditFeeData(int userId, OriginalRequest request)
else
result
=
ImDataInsert
(
userId
,
request
,
header
);
}
return
result
;
}
...
...
@@ -265,7 +324,18 @@ private bool ImDataPublic(OriginalRequest request)
if
(
request
.
Cell
==
null
||
allData
==
null
||
!
allData
.
Any
())
throw
new
PerformanceException
(
"提交数据无效"
);
if
(
request
.
Cell
.
FieldName
==
"科室名称"
)
if
(
request
.
Cell
.
FieldName
==
"核算单元类型"
)
{
var
unittype
=
allData
.
FirstOrDefault
().
UnitType
;
if
(
unittype
!=
(
int
)
request
.
Cell
.
CellValue
)
{
allData
.
ForEach
(
t
=>
{
t
.
UnitType
=
(
int
)
request
.
Cell
.
CellValue
;
});
}
}
else
if
(
request
.
Cell
.
FieldName
==
"科室名称"
)
{
var
department
=
allData
.
FirstOrDefault
().
Department
;
if
(
request
.
Cell
.
CellValue
.
ToString
()
!=
department
)
...
...
@@ -276,6 +346,17 @@ private bool ImDataPublic(OriginalRequest request)
});
}
}
else
if
(
request
.
Cell
.
FieldName
==
"核算单元"
)
{
var
accounting
=
allData
.
FirstOrDefault
().
AccountingUnit
;
if
(
request
.
Cell
.
CellValue
.
ToString
()
!=
accounting
)
{
allData
.
ForEach
(
t
=>
{
t
.
AccountingUnit
=
request
.
Cell
.
CellValue
.
ToString
();
});
}
}
else
{
Dictionary
<
string
,
int
>
publicTypes
=
new
Dictionary
<
string
,
int
>
...
...
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