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)
dept.MedicineFactor = workDoctor?.MedicineFactor;
//dept.ScoringAverage = scoreAverage.HasValue ? scoreAverage ?? 0 : 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.WorkloadFee = workDoctor?.CellValue ?? 0;
dept.AssessBeforeOtherFee = dept?.AssessBeforeOtherFee ?? 0;
......@@ -367,7 +367,7 @@ public void ComputeOffice(per_allot allot, PerExcel excel, IEnumerable<AccountUn
dept.AccountingUnit = account.AccountingUnit;
dept.UnitType = account.AccountType;
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.Extra = (extra ?? 0);
dept.MedicineExtra = 0;// (drugExtra ?? 0);
......
......@@ -200,7 +200,7 @@ public class ResultComputeService : IAutoInjection
Punishment = (extra ?? 0),
MedicineExtra = (drugExtra ?? 0),
MaterialsExtra = (materialsExtra ?? 0),
Adjust = isBudget ? adjust : (dept?.AdjustFactor ?? 1),
Adjust = isBudget ? adjust : (dept?.AdjustFactor ?? 0),
AssessBeforeOtherFee = dept?.AssessBeforeOtherFee ?? 0,
AssessLaterOtherFee = dept?.AssessLaterOtherFee ?? 0,
......
......@@ -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");
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 scoreAverageRate = t.ScoreAverageRate ?? employee.ScoreAverageRate ?? 0;
var attendance = t.Attendance ?? employee.Attendance ?? 0;
t.GiveFee = t.ShouldGiveFee * scoreAverageRate * attendance + (t.OtherPerfor ?? 0);
t.RealGiveFee = t.GiveFee * (t.Adjust ?? 1m);
t.GiveFee = t.ShouldGiveFee * scoreAverageRate * attendance + (t.OtherPerfor ?? 0) + t.Punishment + t.OtherPerfor + t.AssessLaterOtherFee;
t.RealGiveFee = t.GiveFee * (t.Adjust ?? 1m) + t.AdjustLaterOtherFee;
t.BaiscNormValue = t.RealGiveFee;
}
......@@ -979,6 +979,9 @@ public DeptDataDetails SpecialDeptDetail(ag_secondallot second)
Extra = special.FirstOrDefault()?.Punishment ?? 0,
MedicineExtra = special.FirstOrDefault()?.MedicineExtra ?? 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>(),
};
......
......@@ -111,9 +111,9 @@ public List<SecondListResponse> GetSecondList(int userId)
var allotListId = allotList.Select(t => t.ID).ToList();
Expression<Func<ag_secondallot, bool>> exp = t => allotListId.Contains(t.AllotId.Value) && t.Department == user.Department;
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)
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)
exp = exp.And(t => t.UnitType == UnitType.特殊核算组.ToString());
else if (role.Type == application.OfficeRole)
......@@ -1468,8 +1468,7 @@ public List<ag_othersource> OtherList(int secondId, int userId)
if (second == null) throw new PerformanceException("二次绩效信息无效!");
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;
var otherSecondList = perforAgothersourceRepository.GetEntities(t => t.SecondId == secondId);
......@@ -1479,6 +1478,8 @@ public List<ag_othersource> OtherList(int secondId, int userId)
}
else
{
if (employees == null || !employees.Any(t => t.UnitType == second.UnitType))
return new List<ag_othersource>();
result = employees.Select(t => new ag_othersource
{
SecondId = secondId,
......@@ -1551,6 +1552,8 @@ public List<ag_othersource> OtherAutoComplete(SecondEmpRequest request, int user
/// <param name="isTitlePerformance">是否补全职称绩效</param>
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);
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