Commit 92803e8d by ruyun.zhang@suvalue.com

Merge branch 'v2020calculate' into v2020morge

parents 5b0af788 7c4ce522
...@@ -302,7 +302,7 @@ public void Save(List<PerSheet> perSheets, int allotId) ...@@ -302,7 +302,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
dept.MedicineFactor = workDoctor?.MedicineFactor; dept.MedicineFactor = workDoctor?.MedicineFactor;
//dept.ScoringAverage = scoreAverage.HasValue ? scoreAverage ?? 0 : dept.ScoringAverage; //dept.ScoringAverage = scoreAverage.HasValue ? scoreAverage ?? 0 : dept.ScoringAverage;
dept.ScoringAverage = dept.ScoringAverage; dept.ScoringAverage = dept.ScoringAverage;
dept.AdjustFactor = dept.AdjustFactor == 0m ? 1 : dept.AdjustFactor; dept.AdjustFactor = dept.AdjustFactor == 0m ? 0 : dept.AdjustFactor;
dept.Income = econDoctor?.CellValue ?? 0; dept.Income = econDoctor?.CellValue ?? 0;
dept.WorkloadFee = workDoctor?.CellValue ?? 0; dept.WorkloadFee = workDoctor?.CellValue ?? 0;
dept.AssessBeforeOtherFee = dept?.AssessBeforeOtherFee ?? 0; dept.AssessBeforeOtherFee = dept?.AssessBeforeOtherFee ?? 0;
...@@ -367,7 +367,7 @@ public void ComputeOffice(per_allot allot, PerExcel excel, IEnumerable<AccountUn ...@@ -367,7 +367,7 @@ public void ComputeOffice(per_allot allot, PerExcel excel, IEnumerable<AccountUn
dept.AccountingUnit = account.AccountingUnit; dept.AccountingUnit = account.AccountingUnit;
dept.UnitType = account.AccountType; dept.UnitType = account.AccountType;
dept.ScoringAverage = resAccount?.ScoringAverage == null ? 0 : resAccount.ScoringAverage; dept.ScoringAverage = resAccount?.ScoringAverage == null ? 0 : resAccount.ScoringAverage;
dept.AdjustFactor = resAccount?.AdjustFactor == null ? 1 : resAccount.AdjustFactor; dept.AdjustFactor = resAccount?.AdjustFactor == null ? 0 : resAccount.AdjustFactor;
dept.Income = empolyees.Sum(w => w.PerforTotal ?? 0); dept.Income = empolyees.Sum(w => w.PerforTotal ?? 0);
dept.Extra = (extra ?? 0); dept.Extra = (extra ?? 0);
dept.MedicineExtra = 0;// (drugExtra ?? 0); dept.MedicineExtra = 0;// (drugExtra ?? 0);
......
...@@ -200,7 +200,7 @@ public class ResultComputeService : IAutoInjection ...@@ -200,7 +200,7 @@ public class ResultComputeService : IAutoInjection
Punishment = (extra ?? 0), Punishment = (extra ?? 0),
MedicineExtra = (drugExtra ?? 0), MedicineExtra = (drugExtra ?? 0),
MaterialsExtra = (materialsExtra ?? 0), MaterialsExtra = (materialsExtra ?? 0),
Adjust = isBudget ? adjust : (dept?.AdjustFactor ?? 1), Adjust = isBudget ? adjust : (dept?.AdjustFactor ?? 0),
AssessBeforeOtherFee = dept?.AssessBeforeOtherFee ?? 0, AssessBeforeOtherFee = dept?.AssessBeforeOtherFee ?? 0,
AssessLaterOtherFee = dept?.AssessLaterOtherFee ?? 0, AssessLaterOtherFee = dept?.AssessLaterOtherFee ?? 0,
......
...@@ -176,12 +176,12 @@ public List<ResComputeResponse> GetCompute(int allotId, int type) ...@@ -176,12 +176,12 @@ public List<ResComputeResponse> GetCompute(int allotId, int type)
//t.WorkTime = string.IsNullOrEmpty(t.WorkTime) ? null : Convert.ToDateTime(t.WorkTime).ToString("yyyy-MM-dd"); //t.WorkTime = string.IsNullOrEmpty(t.WorkTime) ? null : Convert.ToDateTime(t.WorkTime).ToString("yyyy-MM-dd");
if (isShowManage == 2) if (isShowManage == 2)
{ {
t.PerforSumFee = t.ShouldGiveFee; t.PerforSumFee = t.ShouldGiveFee + t.AssessBeforeOtherFee;
var employee = employees.FirstOrDefault(e => e.DoctorName == t.EmployeeName && e.AccountingUnit == t.AccountingUnit && pairs[type].Contains(e.UnitType)); var employee = employees.FirstOrDefault(e => e.DoctorName == t.EmployeeName && e.AccountingUnit == t.AccountingUnit && pairs[type].Contains(e.UnitType));
var scoreAverageRate = t.ScoreAverageRate ?? employee.ScoreAverageRate ?? 0; var scoreAverageRate = t.ScoreAverageRate ?? employee.ScoreAverageRate ?? 0;
var attendance = t.Attendance ?? employee.Attendance ?? 0; var attendance = t.Attendance ?? employee.Attendance ?? 0;
t.GiveFee = t.ShouldGiveFee * scoreAverageRate * attendance + (t.OtherPerfor ?? 0); t.GiveFee = t.ShouldGiveFee * scoreAverageRate * attendance + (t.OtherPerfor ?? 0) + t.Punishment + t.OtherPerfor + t.AssessLaterOtherFee;
t.RealGiveFee = t.GiveFee * (t.Adjust ?? 1m); t.RealGiveFee = t.GiveFee * (t.Adjust ?? 1m) + t.AdjustLaterOtherFee;
t.BaiscNormValue = t.RealGiveFee; t.BaiscNormValue = t.RealGiveFee;
} }
...@@ -979,6 +979,9 @@ public DeptDataDetails SpecialDeptDetail(ag_secondallot second) ...@@ -979,6 +979,9 @@ public DeptDataDetails SpecialDeptDetail(ag_secondallot second)
Extra = special.FirstOrDefault()?.Punishment ?? 0, Extra = special.FirstOrDefault()?.Punishment ?? 0,
MedicineExtra = special.FirstOrDefault()?.MedicineExtra ?? 0, MedicineExtra = special.FirstOrDefault()?.MedicineExtra ?? 0,
MaterialsExtra = special.FirstOrDefault()?.MaterialsExtra ?? 0, MaterialsExtra = special.FirstOrDefault()?.MaterialsExtra ?? 0,
AssessBeforeOtherFee = special.FirstOrDefault()?.AssessBeforeOtherFee ?? 0,
AssessLaterOtherFee = special.FirstOrDefault()?.AssessLaterOtherFee ?? 0,
AdjustLaterOtherFee = special.FirstOrDefault()?.AdjustLaterOtherFee ?? 0,
}, },
Detail = new List<DetailDtos>(), Detail = new List<DetailDtos>(),
}; };
......
...@@ -111,9 +111,9 @@ public List<SecondListResponse> GetSecondList(int userId) ...@@ -111,9 +111,9 @@ public List<SecondListResponse> GetSecondList(int userId)
var allotListId = allotList.Select(t => t.ID).ToList(); var allotListId = allotList.Select(t => t.ID).ToList();
Expression<Func<ag_secondallot, bool>> exp = t => allotListId.Contains(t.AllotId.Value) && t.Department == user.Department; Expression<Func<ag_secondallot, bool>> exp = t => allotListId.Contains(t.AllotId.Value) && t.Department == user.Department;
if (role.Type == application.DirectorRole) if (role.Type == application.DirectorRole)
exp = exp.And(t => new List<string> { UnitType.医生组.ToString(), UnitType.医技组.ToString() }.Contains(t.UnitType)); exp = exp.And(t => new List<string> { UnitType.医生组.ToString(), UnitType.其他医生组.ToString(), UnitType.其他医技组.ToString(), UnitType.医技组.ToString() }.Contains(t.UnitType));
else if (role.Type == application.NurseRole) else if (role.Type == application.NurseRole)
exp = exp.And(t => t.UnitType == UnitType.护理组.ToString()); exp = exp.And(t => t.UnitType == UnitType.护理组.ToString() || t.UnitType == UnitType.其他护理组.ToString());
else if (role.Type == application.SpecialRole) else if (role.Type == application.SpecialRole)
exp = exp.And(t => t.UnitType == UnitType.特殊核算组.ToString()); exp = exp.And(t => t.UnitType == UnitType.特殊核算组.ToString());
else if (role.Type == application.OfficeRole) else if (role.Type == application.OfficeRole)
...@@ -1468,8 +1468,7 @@ public List<ag_othersource> OtherList(int secondId, int userId) ...@@ -1468,8 +1468,7 @@ public List<ag_othersource> OtherList(int secondId, int userId)
if (second == null) throw new PerformanceException("二次绩效信息无效!"); if (second == null) throw new PerformanceException("二次绩效信息无效!");
var employees = personService.GetPersons(second.AllotId.Value, userId); var employees = personService.GetPersons(second.AllotId.Value, userId);
if (employees == null || !employees.Any(t => t.UnitType == second.UnitType)) return new List<ag_othersource>(); employees = employees?.Where(t => t.UnitType == second.UnitType).ToList();
employees = employees.Where(t => t.UnitType == second.UnitType).ToList();
List<ag_othersource> result = null; List<ag_othersource> result = null;
var otherSecondList = perforAgothersourceRepository.GetEntities(t => t.SecondId == secondId); var otherSecondList = perforAgothersourceRepository.GetEntities(t => t.SecondId == secondId);
...@@ -1479,6 +1478,8 @@ public List<ag_othersource> OtherList(int secondId, int userId) ...@@ -1479,6 +1478,8 @@ public List<ag_othersource> OtherList(int secondId, int userId)
} }
else else
{ {
if (employees == null || !employees.Any(t => t.UnitType == second.UnitType))
return new List<ag_othersource>();
result = employees.Select(t => new ag_othersource result = employees.Select(t => new ag_othersource
{ {
SecondId = secondId, SecondId = secondId,
...@@ -1551,6 +1552,8 @@ public List<ag_othersource> OtherAutoComplete(SecondEmpRequest request, int user ...@@ -1551,6 +1552,8 @@ public List<ag_othersource> OtherAutoComplete(SecondEmpRequest request, int user
/// <param name="isTitlePerformance">是否补全职称绩效</param> /// <param name="isTitlePerformance">是否补全职称绩效</param>
private void SupplementSecondDetail(ag_secondallot second, List<per_employee> employees, List<ag_othersource> result, bool isTitlePerformance = true) private void SupplementSecondDetail(ag_secondallot second, List<per_employee> employees, List<ag_othersource> result, bool isTitlePerformance = true)
{ {
if (employees == null || !employees.Any(t => t.UnitType == second.UnitType))
return;
// 补充医院其他绩效 及 预留比例 // 补充医院其他绩效 及 预留比例
var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId); var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId);
Func<per_employee, decimal?> getAprAmount = (t) => perapramounts Func<per_employee, decimal?> getAprAmount = (t) => perapramounts
......
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