Commit de7221ce by lcx

二次绩效考核前奖励计算

parent 94ba042c
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
}, },
"AppConnection": { "AppConnection": {
//"PerformanceConnectionString": "server=112.124.13.17;database=db_performance;uid=suvalue;pwd=suvalue2016;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;", //"PerformanceConnectionString": "server=112.124.13.17;database=db_performance;uid=suvalue;pwd=suvalue2016;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;",
"PerformanceConnectionString": "server=192.168.18.166;database=db_performance_screen;uid=root;pwd=1234qwer;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;", "PerformanceConnectionString": "server=192.168.18.166;database=db_test_zhangye;uid=root;pwd=1234qwer;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;",
"HangfireConnectionString": "server=192.168.18.166;database=db_hangfire;uid=root;pwd=1234qwer;port=3306;allow user variables=true;", "HangfireConnectionString": "server=192.168.18.166;database=db_hangfire;uid=root;pwd=1234qwer;port=3306;allow user variables=true;",
"RedisConnectionString": "116.62.245.55:6379,defaultDatabase=2" "RedisConnectionString": "116.62.245.55:6379,defaultDatabase=2"
}, },
......
...@@ -163,6 +163,11 @@ ...@@ -163,6 +163,11 @@
<member name="F:Performance.DtoModels.AllotStates.GenerateAccomplish"> <member name="F:Performance.DtoModels.AllotStates.GenerateAccomplish">
<summary> 绩效结果解析成功 </summary> <summary> 绩效结果解析成功 </summary>
</member> </member>
<member name="F:Performance.DtoModels.AgWorkloadType.PreAccountingReward">
<summary>
核算前奖励
</summary>
</member>
<member name="F:Performance.DtoModels.AgWorkloadType.SingleAwards"> <member name="F:Performance.DtoModels.AgWorkloadType.SingleAwards">
<summary> <summary>
单项奖励 单项奖励
...@@ -2562,7 +2567,7 @@ ...@@ -2562,7 +2567,7 @@
自定义工作量类型Id(不包括默认工作量绩效类型、单项奖励) 自定义工作量类型Id(不包括默认工作量绩效类型、单项奖励)
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.WorkloadRequest.IsSingleAwards"> <member name="P:Performance.DtoModels.WorkloadRequest.AgWorkloadType">
<summary> <summary>
是否是单项奖励 是否是单项奖励
</summary> </summary>
......
...@@ -500,6 +500,11 @@ ...@@ -500,6 +500,11 @@
科室单项奖励 科室单项奖励
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.ag_bodysource.PreDeptReward">
<summary>
科室考核前奖励
</summary>
</member>
<member name="P:Performance.EntityModels.ag_bodysource.BasisPerformance"> <member name="P:Performance.EntityModels.ag_bodysource.BasisPerformance">
<summary> <summary>
主任基础绩效 主任基础绩效
...@@ -2655,6 +2660,11 @@ ...@@ -2655,6 +2660,11 @@
来源 来源
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.ex_result.TypeId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.DatabaseType"> <member name="P:Performance.EntityModels.ex_result.DatabaseType">
<summary> <summary>
数据库类型1、Sql Server 2、Orcale 数据库类型1、Sql Server 2、Orcale
...@@ -2690,11 +2700,6 @@ ...@@ -2690,11 +2700,6 @@
执行sql 执行sql
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.ex_script.DatabaseType">
<summary>
数据库类型1、Sql Server 2、Orcale
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.TypeId"> <member name="P:Performance.EntityModels.ex_script.TypeId">
<summary> <summary>
ExTypeId ExTypeId
......
...@@ -112,6 +112,11 @@ public class ag_bodysource ...@@ -112,6 +112,11 @@ public class ag_bodysource
public Nullable<decimal> DeptReward { get; set; } public Nullable<decimal> DeptReward { get; set; }
/// <summary> /// <summary>
/// 科室考核前奖励
/// </summary>
public Nullable<decimal> PreDeptReward { get; set; }
/// <summary>
/// 主任基础绩效 /// 主任基础绩效
/// </summary> /// </summary>
public Nullable<decimal> BasisPerformance { get; set; } public Nullable<decimal> BasisPerformance { get; set; }
......
...@@ -57,6 +57,11 @@ public class ex_result ...@@ -57,6 +57,11 @@ public class ex_result
public string Source { get; set; } public string Source { get; set; }
/// <summary> /// <summary>
///
/// </summary>
public Nullable<int> TypeId { get; set; }
/// <summary>
/// 数据库类型1、Sql Server 2、Orcale /// 数据库类型1、Sql Server 2、Orcale
/// </summary> /// </summary>
public int DatabaseType { get; set; } public int DatabaseType { get; set; }
......
...@@ -26,11 +26,6 @@ public class ex_script ...@@ -26,11 +26,6 @@ public class ex_script
public string ExecScript { get; set; } public string ExecScript { get; set; }
/// <summary> /// <summary>
/// 数据库类型1、Sql Server 2、Orcale
/// </summary>
public int DatabaseType { get; set; }
/// <summary>
/// ExTypeId /// ExTypeId
/// </summary> /// </summary>
public int TypeId { get; set; } public int TypeId { get; set; }
......
...@@ -198,13 +198,13 @@ private List<ex_result> ExtractModuleData(per_allot allot, string groupName, boo ...@@ -198,13 +198,13 @@ private List<ex_result> ExtractModuleData(per_allot allot, string groupName, boo
foreach (var script in scripts.Where(t => t.TypeId == typeId)) foreach (var script in scripts.Where(t => t.TypeId == typeId))
{ {
var config = configs.FirstOrDefault(t => t.Id == script.ConfigId) ?? configs.FirstOrDefault(t => t.DataBaseType == script.DatabaseType); var config = configs.FirstOrDefault(t => t.Id == script.ConfigId);
if (config == null) continue; if (config == null) continue;
try try
{ {
if(!pools.ContainsKey(config.Id)) if (!pools.ContainsKey(config.Id))
pools.Add(config.Id, ConnectionBuilder.Create((DatabaseType)config.DataBaseType, config.DbSource, config.DbName, config.DbUser, config.DbPassword)); pools.Add(config.Id, ConnectionBuilder.Create((DatabaseType)config.DataBaseType, config.DbSource, config.DbName, config.DbUser, config.DbPassword));
IDbConnection connection = pools[config.Id]; IDbConnection connection = pools[config.Id];
......
...@@ -643,6 +643,12 @@ private List<string> LoadEmployees_OfficeExcel(ag_secondallot second) ...@@ -643,6 +643,12 @@ private List<string> LoadEmployees_OfficeExcel(ag_secondallot second)
colHeaderCustoms.Add(awards.Value); colHeaderCustoms.Add(awards.Value);
columnCustoms.Add(new HandsonColumn(awards.Title.ToLower(), format: DataFormat.小数)); columnCustoms.Add(new HandsonColumn(awards.Title.ToLower(), format: DataFormat.小数));
} }
// 考核前奖励
foreach (var reward in loads.Where(w => w.Title.StartsWithIgnoreCase("PreAccountingReward_")))
{
colHeaderCustoms.Add(reward.Value);
columnCustoms.Add(new HandsonColumn(reward.Title.ToLower(), format: DataFormat.小数));
}
return (colHeaderCustoms, columnCustoms); return (colHeaderCustoms, columnCustoms);
} }
...@@ -842,6 +848,8 @@ public void ResultCompute(ComputeMode computeMode, Dictionary<string, object> he ...@@ -842,6 +848,8 @@ public void ResultCompute(ComputeMode computeMode, Dictionary<string, object> he
clearPerformanceWorkload(rows, workloadGroups); clearPerformanceWorkload(rows, workloadGroups);
// 行内计算单项奖励 // 行内计算单项奖励
deptRewardCalculate(rows); deptRewardCalculate(rows);
// 行内计算考核前奖励
preDeptRewardCalculate(rows);
// 行内可分配绩效 // 行内可分配绩效
distPerformanceCalculate(rows); distPerformanceCalculate(rows);
// 行内实发绩效 // 行内实发绩效
...@@ -851,6 +859,8 @@ public void ResultCompute(ComputeMode computeMode, Dictionary<string, object> he ...@@ -851,6 +859,8 @@ public void ResultCompute(ComputeMode computeMode, Dictionary<string, object> he
{ {
// 行内计算单项奖励 // 行内计算单项奖励
deptRewardCalculate(rows); deptRewardCalculate(rows);
// 行内计算考核前奖励
preDeptRewardCalculate(rows);
// 计算顶部相关总和 // 计算顶部相关总和
overviewCalculate(head, rows); overviewCalculate(head, rows);
// 行内主任基础绩效 // 行内主任基础绩效
...@@ -922,6 +932,19 @@ private void deptRewardCalculate(List<Dictionary<string, object>> rows) ...@@ -922,6 +932,19 @@ private void deptRewardCalculate(List<Dictionary<string, object>> rows)
row.AddOrUpdate(nameof(ag_bodysource.DeptReward), GetDecimal2(total_deptReward)); row.AddOrUpdate(nameof(ag_bodysource.DeptReward), GetDecimal2(total_deptReward));
} }
} }
/// <summary>
/// 行内计算核算前奖励
/// </summary>
/// <param name="rows"></param>
private void preDeptRewardCalculate(List<Dictionary<string, object>> rows)
{
foreach (var row in rows)
{
decimal total_deptReward = row.Where(w => w.Key.StartsWithIgnoreCase("PreAccountingReward_")).Sum(r => GetDecimal(row, r.Key));
row.AddOrUpdate(nameof(ag_bodysource.PreDeptReward), GetDecimal2(total_deptReward));
}
}
/// <summary> /// <summary>
/// 计算顶部工作量 /// 计算顶部工作量
/// </summary> /// </summary>
...@@ -1176,9 +1199,10 @@ private void distPerformanceCalculate(List<Dictionary<string, object>> rows) ...@@ -1176,9 +1199,10 @@ private void distPerformanceCalculate(List<Dictionary<string, object>> rows)
var workPerformance = GetDecimal2(row, nameof(ag_bodysource.WorkPerformance)); var workPerformance = GetDecimal2(row, nameof(ag_bodysource.WorkPerformance));
var titlePerformance = GetDecimal2(row, nameof(ag_bodysource.TitlePerformance)); var titlePerformance = GetDecimal2(row, nameof(ag_bodysource.TitlePerformance));
var deptReward = GetDecimal2(row, nameof(ag_bodysource.DeptReward)); var deptReward = GetDecimal2(row, nameof(ag_bodysource.DeptReward));
var preDeptReward = GetDecimal2(row, nameof(ag_bodysource.PreDeptReward));
var basisPerformance = GetDecimal2(row, nameof(ag_bodysource.BasisPerformance)); var basisPerformance = GetDecimal2(row, nameof(ag_bodysource.BasisPerformance));
// 可分配绩效 =   当前行职称绩效 + 工作量绩效工资 + 当前行单项奖励 + 当前行主任基础绩效 (科主任护士长) // 可分配绩效 =   当前行职称绩效 + 工作量绩效工资 + 当前行单项奖励 + 当前行主任基础绩效 (科主任护士长)- 考核前奖励
var distPerformance = titlePerformance + workPerformance + deptReward + basisPerformance; var distPerformance = titlePerformance + workPerformance + deptReward + basisPerformance - preDeptReward;
row.AddOrUpdate(nameof(ag_bodysource.DistPerformance), distPerformance); row.AddOrUpdate(nameof(ag_bodysource.DistPerformance), distPerformance);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment