Commit de7221ce by lcx

二次绩效考核前奖励计算

parent 94ba042c
......@@ -8,7 +8,7 @@
},
"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=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;",
"RedisConnectionString": "116.62.245.55:6379,defaultDatabase=2"
},
......
......@@ -163,6 +163,11 @@
<member name="F:Performance.DtoModels.AllotStates.GenerateAccomplish">
<summary> 绩效结果解析成功 </summary>
</member>
<member name="F:Performance.DtoModels.AgWorkloadType.PreAccountingReward">
<summary>
核算前奖励
</summary>
</member>
<member name="F:Performance.DtoModels.AgWorkloadType.SingleAwards">
<summary>
单项奖励
......@@ -2562,7 +2567,7 @@
自定义工作量类型Id(不包括默认工作量绩效类型、单项奖励)
</summary>
</member>
<member name="P:Performance.DtoModels.WorkloadRequest.IsSingleAwards">
<member name="P:Performance.DtoModels.WorkloadRequest.AgWorkloadType">
<summary>
是否是单项奖励
</summary>
......
......@@ -500,6 +500,11 @@
科室单项奖励
</summary>
</member>
<member name="P:Performance.EntityModels.ag_bodysource.PreDeptReward">
<summary>
科室考核前奖励
</summary>
</member>
<member name="P:Performance.EntityModels.ag_bodysource.BasisPerformance">
<summary>
主任基础绩效
......@@ -2655,6 +2660,11 @@
来源
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.TypeId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.DatabaseType">
<summary>
数据库类型1、Sql Server 2、Orcale
......@@ -2690,11 +2700,6 @@
执行sql
</summary>
</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">
<summary>
ExTypeId
......
......@@ -112,6 +112,11 @@ public class ag_bodysource
public Nullable<decimal> DeptReward { get; set; }
/// <summary>
/// 科室考核前奖励
/// </summary>
public Nullable<decimal> PreDeptReward { get; set; }
/// <summary>
/// 主任基础绩效
/// </summary>
public Nullable<decimal> BasisPerformance { get; set; }
......
......@@ -57,6 +57,11 @@ public class ex_result
public string Source { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> TypeId { get; set; }
/// <summary>
/// 数据库类型1、Sql Server 2、Orcale
/// </summary>
public int DatabaseType { get; set; }
......
......@@ -26,11 +26,6 @@ public class ex_script
public string ExecScript { get; set; }
/// <summary>
/// 数据库类型1、Sql Server 2、Orcale
/// </summary>
public int DatabaseType { get; set; }
/// <summary>
/// ExTypeId
/// </summary>
public int TypeId { get; set; }
......
......@@ -198,12 +198,12 @@ private List<ex_result> ExtractModuleData(per_allot allot, string groupName, boo
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;
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));
IDbConnection connection = pools[config.Id];
......
......@@ -643,6 +643,12 @@ private List<string> LoadEmployees_OfficeExcel(ag_secondallot second)
colHeaderCustoms.Add(awards.Value);
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);
}
......@@ -842,6 +848,8 @@ public void ResultCompute(ComputeMode computeMode, Dictionary<string, object> he
clearPerformanceWorkload(rows, workloadGroups);
// 行内计算单项奖励
deptRewardCalculate(rows);
// 行内计算考核前奖励
preDeptRewardCalculate(rows);
// 行内可分配绩效
distPerformanceCalculate(rows);
// 行内实发绩效
......@@ -851,6 +859,8 @@ public void ResultCompute(ComputeMode computeMode, Dictionary<string, object> he
{
// 行内计算单项奖励
deptRewardCalculate(rows);
// 行内计算考核前奖励
preDeptRewardCalculate(rows);
// 计算顶部相关总和
overviewCalculate(head, rows);
// 行内主任基础绩效
......@@ -922,6 +932,19 @@ private void deptRewardCalculate(List<Dictionary<string, object>> rows)
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>
......@@ -1176,9 +1199,10 @@ private void distPerformanceCalculate(List<Dictionary<string, object>> rows)
var workPerformance = GetDecimal2(row, nameof(ag_bodysource.WorkPerformance));
var titlePerformance = GetDecimal2(row, nameof(ag_bodysource.TitlePerformance));
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 distPerformance = titlePerformance + workPerformance + deptReward + basisPerformance;
// 可分配绩效 =   当前行职称绩效 + 工作量绩效工资 + 当前行单项奖励 + 当前行主任基础绩效 (科主任护士长)- 考核前奖励
var distPerformance = titlePerformance + workPerformance + deptReward + basisPerformance - preDeptReward;
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