Commit 2a6c8a8f by lcx

Merge branch 'v2020' into rsk

parents ea9615ad b76517c4
......@@ -138,7 +138,8 @@ public ApiResponse SecondDetail([CustomizeValidator(RuleSet = "Refresh"), FromBo
[Route("api/temp/list")]
public ApiResponse<List<SecondTempResponse>> Temp([FromBody]AllotDeptRequest request)
{
var result = secondAllotService.GetTemp(request.HospitalId, request.Department);
var userId = claimService.GetUserId();
var result = secondAllotService.GetTemp(request.HospitalId, request.Department, userId);
return new ApiResponse<List<SecondTempResponse>>(ResponseType.OK, result);
}
......@@ -234,7 +235,7 @@ public ApiResponse SubmitAudit(SubmitAuditRequest request)
return new ApiResponse(ResponseType.Fail, "该绩效已\"审核通过\",无需再次提交");
var userid = claimService.GetUserId();
var result = secondAllotService.AuditSubmit(second, request.Type);
var result = secondAllotService.AuditSubmit(second, userid);
return result ? new ApiResponse(ResponseType.OK, "提交成功") : new ApiResponse(ResponseType.Fail, "提交失败");
}
......
......@@ -787,6 +787,16 @@
其他绩效2
</summary>
</member>
<member name="P:Performance.DtoModels.PerDataAccountBaisc.MedicineExtra">
<summary>
药占比奖罚
</summary>
</member>
<member name="P:Performance.DtoModels.PerDataAccountBaisc.MaterialsExtra">
<summary>
材料占比奖罚
</summary>
</member>
<member name="P:Performance.DtoModels.PerDataAccountBaisc.Extra">
<summary>
医院奖罚
......
......@@ -1477,6 +1477,16 @@
其他绩效2
</summary>
</member>
<member name="P:Performance.EntityModels.im_accountbasic.MedicineExtra">
<summary>
药占比奖罚
</summary>
</member>
<member name="P:Performance.EntityModels.im_accountbasic.MaterialsExtra">
<summary>
材料占比奖罚
</summary>
</member>
<member name="P:Performance.EntityModels.im_accountbasic.DoctorExtra">
<summary>
医院奖罚
......@@ -3277,6 +3287,16 @@
其他绩效2
</summary>
</member>
<member name="P:Performance.EntityModels.res_account.MedicineExtra">
<summary>
药占比奖罚
</summary>
</member>
<member name="P:Performance.EntityModels.res_account.MaterialsExtra">
<summary>
材料占比奖罚
</summary>
</member>
<member name="P:Performance.EntityModels.res_account.Extra">
<summary>
医院奖罚
......
......@@ -23,10 +23,16 @@ public enum UnitType
医技组 = 3,
[Description("专家组")]
专家组 = 4,
[Description("其他")]
其他 = 5,
//[Description("其他")]
//其他 = 5,
[Description("特殊核算组")]
特殊核算组 = 6,
[Description("其他医生组")]
其他医生组 = 7,
[Description("其他护理组")]
其他护理组 = 8,
[Description("其他医技组")]
其他医技组 = 9,
}
public enum SheetType
......
......@@ -69,6 +69,16 @@ public class PerDataAccountBaisc : IPerData
public decimal OtherPerfor2 { get; set; }
/// <summary>
/// 药占比奖罚
/// </summary>
public decimal MedicineExtra { get; set; }
/// <summary>
/// 材料占比奖罚
/// </summary>
public decimal MaterialsExtra { get; set; }
/// <summary>
/// 医院奖罚
/// </summary>
public decimal Extra { get; set; }
......
......@@ -105,7 +105,17 @@ public class im_accountbasic
/// 其他绩效2
/// </summary>
public Nullable<decimal> DoctorOtherPerfor2 { get; set; }
/// <summary>
/// 药占比奖罚
/// </summary>
public Nullable<decimal> MedicineExtra { get; set; }
/// <summary>
/// 材料占比奖罚
/// </summary>
public Nullable<decimal> MaterialsExtra { get; set; }
/// <summary>
/// 医院奖罚
/// </summary>
......
......@@ -100,7 +100,17 @@ public class res_account
/// 其他绩效2
/// </summary>
public Nullable<decimal> OtherPerfor2 { get; set; }
/// <summary>
/// 药占比奖罚
/// </summary>
public Nullable<decimal> MedicineExtra { get; set; }
/// <summary>
/// 材料占比奖罚
/// </summary>
public Nullable<decimal> MaterialsExtra { get; set; }
/// <summary>
/// 医院奖罚
/// </summary>
......
......@@ -252,7 +252,7 @@ public List<PerSheet> Compute(PerExcel excel, List<PerSheet> perSheet, List<res_
var pairs = new[]
{
new { Name = "医生组临床科室单元核算表", Data = doctorWorkloadData, SheetType = SheetType.ComputeDoctorAccount, UnitTypes = new List<UnitType> { UnitType.医生组, UnitType.医技组, UnitType.专家组, UnitType.其他 } },
new { Name = "医生组临床科室单元核算表", Data = doctorWorkloadData, SheetType = SheetType.ComputeDoctorAccount, UnitTypes = new List<UnitType> { UnitType.医生组, UnitType.医技组, UnitType.专家组, UnitType.其他医技组,UnitType.其他医生组,UnitType.其他护理组 } },
new { Name = "护理组临床科室单元核算表", Data = nurseWorkloadData, SheetType = SheetType.ComputeNurseAccount, UnitTypes = new List<UnitType> { UnitType.护理组 } },
};
List<PerSheet> result = new List<PerSheet>();
......@@ -270,7 +270,7 @@ public List<PerSheet> Compute(PerExcel excel, List<PerSheet> perSheet, List<res_
continue;
var econDoctor = economicData.FirstOrDefault(t => t.UnitType == unitType.ToString() && t.AccountingUnit == dept.Department);
var workDoctor = info.Data.FirstOrDefault(t => t.UnitType == unitType.ToString() && t.AccountingUnit == dept.Department);
if (UnitType.专家组 == unitType || UnitType.其他 == unitType)
if (UnitType.专家组 == unitType || UnitType.其他医技组 == unitType || UnitType.其他医生组 == unitType || UnitType.其他护理组 == unitType)
{
econDoctor = economicData.FirstOrDefault(t => t.AccountingUnit == dept.Department);
workDoctor = info.Data.FirstOrDefault(t => t.AccountingUnit == dept.Department);
......@@ -298,7 +298,7 @@ public List<PerSheet> Compute(PerExcel excel, List<PerSheet> perSheet, List<res_
dept.WorkloadFee = dept.WorkSlopeFactor * (workDoctor?.CellValue ?? 0);
dept.PerforFee = dept.Income * (dept.BasicFactor + dept.SlopeFactor);
dept.PerforTotal = dept.PerforFee + dept.WorkloadFee + dept.OtherPerfor1 + (dept.MinimumFee ?? 0);
dept.RealGiveFee = (dept.PerforTotal * dept.ScoringAverage + dept.Extra + dept.OtherPerfor2) * dept.AdjustFactor;
dept.RealGiveFee = (dept.PerforTotal * dept.ScoringAverage + dept.MedicineExtra + dept.MaterialsExtra + dept.Extra + dept.OtherPerfor2) * dept.AdjustFactor;
dept.Avg = dept.ManagerNumber + dept.Number == 0 ? 0 : dept.PerforTotal / (dept.ManagerNumber + dept.Number);
}
......@@ -464,7 +464,7 @@ public void ComputeCustomMinimum(PerExcel excel, List<PerSheet> perSheet, List<r
dept.WorkloadFee = workload?.CellValue ?? 0;
dept.PerforFee = dept.Income * (dept.BasicFactor + dept.SlopeFactor);
dept.PerforTotal = dept.PerforFee + dept.WorkloadFee + dept.OtherPerfor1 + (dept.MinimumFee ?? 0);
dept.RealGiveFee = (dept.PerforTotal * dept.ScoringAverage + dept.Extra + dept.OtherPerfor2) * dept.AdjustFactor;
dept.RealGiveFee = (dept.PerforTotal * dept.ScoringAverage + dept.MedicineExtra + dept.MaterialsExtra + dept.Extra + dept.OtherPerfor2) * dept.AdjustFactor;
dept.Avg = dept.ManagerNumber + dept.Number == 0 ? 0 : dept.PerforTotal / (dept.ManagerNumber + dept.Number);
totalValue += (dept.PerforTotal ?? 0);
......
......@@ -191,8 +191,11 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
resDataList.Add(res);
}
if (computeEmployees == null || !computeEmployees.Any()) continue;
var empolyees = computeEmployees.Where(t => t.AccountingUnit == group.AccountingUnit);
if (empolyees == null || !empolyees.Any()) continue;
foreach (var empolyee in empolyees)
{
//if (empolyee == null)
......
......@@ -18,6 +18,7 @@ public class ComputeService : IAutoInjection
//private readonly PerforResaccountnurseRepository _perforResAccountnurseRepository;
private readonly PerforPersheetRepository _perforPerSheetRepository;
private readonly PerforImdataRepository _perforImDataRepository;
private readonly PerforImheaderRepository _perforImheaderRepository;
private readonly PerforRescomputeRepository _perforRescomputeRepository;
private readonly PerforResspecialunitRepository _perforResspecialunitRepository;
private readonly PerforPeragainallotRepository _perforPeragainallotRepository;
......@@ -33,6 +34,7 @@ public class ComputeService : IAutoInjection
//PerforResaccountnurseRepository perforResAccountnurseRepository,
PerforPersheetRepository perforPerSheetRepository,
PerforImdataRepository perforImDataRepository,
PerforImheaderRepository perforImheaderRepository,
PerforRescomputeRepository perforRescomputeRepository,
PerforResspecialunitRepository perforResspecialunitRepository,
PerforPeragainallotRepository perforPeragainallotRepository,
......@@ -48,6 +50,7 @@ public class ComputeService : IAutoInjection
//this._perforResAccountnurseRepository = perforResAccountnurseRepository;
this._perforPerSheetRepository = perforPerSheetRepository;
this._perforImDataRepository = perforImDataRepository;
this._perforImheaderRepository = perforImheaderRepository;
this._perforRescomputeRepository = perforRescomputeRepository;
this._perforResspecialunitRepository = perforResspecialunitRepository;
this._perforPeragainallotRepository = perforPeragainallotRepository;
......@@ -78,7 +81,14 @@ public List<ResComputeResponse> GetCompute(int allotId, int type)
{
{ (int)AccountUnitType.科主任, new List<string>{ UnitType.医生组.ToString(), UnitType.医技组.ToString() } },
{ (int)AccountUnitType.护士长, new List<string>{ UnitType.护理组.ToString() } },
{ (int)AccountUnitType.Null, new List<string>{ UnitType.特殊核算组.ToString(), UnitType.其他.ToString() } },
{ (int)AccountUnitType.Null, new List<string>
{
UnitType.特殊核算组.ToString(),
UnitType.其他医生组.ToString(),
UnitType.其他护理组.ToString(),
UnitType.其他医技组.ToString()
}
},
};
if (pairs.Keys.Any(t => t == type))
......@@ -189,7 +199,7 @@ public List<DeptResponse> GetNursePerformance(int allotId)
/// <returns></returns>
public List<DeptResponse> GetOtherPerformance(int allotId)
{
var unitType = new List<int> { (int)UnitType.其他, (int)UnitType.专家组 };
var unitType = new List<int> { (int)UnitType.其他医技组, (int)UnitType.其他医生组, (int)UnitType.其他护理组, (int)UnitType.专家组 };
var list = perforResaccountRepository.GetEntities(t => unitType.Contains(t.UnitType.Value) && t.AllotID == allotId)?.OrderBy(t => t.UnitType).ThenByDescending(t => t.AccountingUnit);
List<DeptResponse> other = Mapper.Map<List<DeptResponse>>(list);
other?.ForEach(t => t.UnitName = ((UnitType)t.UnitType).ToString());
......@@ -385,7 +395,7 @@ public DeptDataDetails DeptDetail(int accountId)
Detail = new List<DetailDtos>()
};
int type = doctor.UnitType.Value;
if (type == (int)UnitType.专家组 || type == (int)UnitType.其他)
if (type == (int)UnitType.专家组 || type == (int)UnitType.其他医技组 || type == (int)UnitType.其他医生组 || type == (int)UnitType.其他护理组)
type = 1;
var basicData = _perforImDataRepository.GetEntities(t => t.AllotID == doctor.AllotID && t.UnitType == type && t.AccountingUnit == doctor.AccountingUnit);
var persheet = _perforPerSheetRepository.GetEntities(t => t.AllotID == doctor.AllotID);
......@@ -395,6 +405,7 @@ public DeptDataDetails DeptDetail(int accountId)
var dataEconomicList = basicData.Where(t => t.SheetID == sheetEconomic?.ID && t.UnitType == type && t.IsTotal != 1 && t.AccountingUnit == doctor.AccountingUnit).ToList();
var economic = dataEconomicList?.Select(t => new DeptDetail { ItemName = t.TypeName.Replace($"({typeValue})", ""), ItemValue = t.CellValue ?? 0 });
var headers = _perforImheaderRepository.GetEntities(t => t.AllotID == doctor.AllotID);
Regex reg = new Regex("[0-9]*");
foreach (var stype in sheetType)
{
......@@ -404,19 +415,42 @@ public DeptDataDetails DeptDetail(int accountId)
var sheetData = basicData.Where(t => t.SheetID == sheet.ID).ToList();
if (sheetData == null || !sheetData.Any()) continue;
var headerData = headers?.Where(t => t.SheetID == sheet.ID);
var item = new DetailDtos
{
ItemName = sheetName,
IncomeType = sheet.SheetType == (int)SheetType.Expend ? 2 : sheet.SheetType == (int)SheetType.Workload ? 3 : 1,
Amount = (sheetName.Contains("工作量") ? doctor.WorkloadFee : economic.FirstOrDefault(t => t.ItemName.Contains(sheetName))?.ItemValue) ?? 0m,
Items = sheetData?.Select(t => new DetailModule
{
ItemName = t.TypeName,
CellValue = t.CellValue,
Factor = t.FactorValue,
ItemValue = t.IsFactor == 1 ? (t.CellValue * (t.FactorValue ?? 0)) : t.CellValue
}).ToList()
Amount = (sheet.SheetType == (int)SheetType.Workload ? doctor.WorkloadFee : economic.FirstOrDefault(t => t.ItemName.Contains(sheetName))?.ItemValue) ?? 0m,
};
var items = sheetData?.Select(t => new DetailModule
{
ItemName = t.TypeName,
CellValue = t.CellValue,
Factor = sheet.SheetType == (int)SheetType.Workload ? t.FactorValue : t.FactorValue * 100,
ItemValue = t.IsFactor == 1 ? (t.CellValue * (t.FactorValue ?? 0)) : t.CellValue
}).ToList();
if (items != null && items.Any())
{
items = items.GroupBy(t => t.ItemName).Select(t => new DetailModule
{
ItemName = t.Key,
CellValue = t.Sum(group => group.CellValue),
Factor = t.FirstOrDefault().Factor,
ItemValue = t.Sum(group => group.ItemValue),
}).ToList();
}
if (headerData != null && headerData.Any())
{
items = items
?.OrderBy(t => (headerData.FirstOrDefault(h => h.CellValue == t.ItemName)?.PointCell) ?? 100)
?.ThenBy(t => t.ItemName).ToList();
}
item.Items = items;
deptDetails.Detail.Add(item);
}
}
......
......@@ -409,8 +409,6 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<Account
logger.LogInformation($"item有{itemList?.Count ?? 0}个.");
if (itemList == null || !itemList.Any()) return;
WriteHeaderAndFactor(sheet, sheetRead, itemList, isNewTemp);
//查询数据
var extractList = extracts.Where(t => module.ExtractId == t.Id).ToList();
if (extractList == null || extractList.Count == 0) return;
......@@ -428,7 +426,11 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<Account
allExtract.AddRange(result);
}
WriteSheetData(sheet, sheetRead, unitList, allExtract, itemList.Select(t => t.ItemName), isNewTemp, true);
logger.LogInformation($"{sheet.SheetName}合计值为: " + allExtract.Sum(t => t.Value));
var category = allExtract.Select(t => t.Category).Distinct().ToList();
WriteIncomeHeaderAndFactor(sheet, sheetRead, category, isNewTemp);
WriteSheetData(sheet, sheetRead, unitList, allExtract, category, isNewTemp, true);
logger.LogInformation($"{sheet.SheetName}提取结束.");
}
......@@ -503,6 +505,7 @@ private void WriteWorkload(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou
var result = QueryDatabase(config, item, Allot, moditem.ItemName);
if (result != null)
allExtract.AddRange(result);
logger.LogInformation($"{module.ModuleName}提取{moditem.ItemName}的合计值为: " + allExtract.Sum(t => t.Value));
}
}
......@@ -707,9 +710,11 @@ private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, Lis
logManageService.WriteMsg("提取绩效数据", $"写入列头信息 -- {sheet.SheetName}", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 提取绩效数据 写入列头信息 -- {sheet.SheetName}");
var cellItems = items;
var cellItems = new List<mod_item>();
cellItems.AddRange(items);
if (!isNewTemp)
{
List<string> original = new List<string>();
#region 过滤历史模板中已有的列头
//写入列头信息
int cellStartIndex = sheetRead.Point.HeaderFirstCellNum.Value + 4;
......@@ -748,6 +753,69 @@ private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, Lis
#endregion
}
/// <summary>
/// 写入列头
/// </summary>
/// <param name="sheet"></param>
/// <param name="sheetRead"></param>
/// <param name="items">列头数据(列名、系数)</param>
/// <param name="isNewTemp">是否为空白模板</param>
private void WriteIncomeHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, List<string> items, bool isNewTemp)
{
var nurseFactor = sheet.GetRow(sheetRead.Point.AccountingUnit.First(t => t.UnitType == "护理组").FactorRow.Value);
var doctorFactor = sheet.GetRow(sheetRead.Point.AccountingUnit.First(t => t.UnitType == "医生组").FactorRow.Value);
var technicianFactor = sheet.GetRow(sheetRead.Point.AccountingUnit.First(t => t.UnitType == "医技组").FactorRow.Value);
var head = GetOrCreate(sheet, sheetRead.Point.HeaderFirstRowNum.Value);
logManageService.WriteMsg("提取绩效数据", $"写入列头信息 -- {sheet.SheetName}", 1, Allot.ID, "ReceiveMessage");
logger.LogInformation($"提取绩效数据 提取绩效数据 写入列头信息 -- {sheet.SheetName}");
logger.LogInformation($"{sheet.SheetName}查询出的列头有:" + string.Join(", ", items));
if (!isNewTemp)
{
List<string> original = new List<string>();
#region 过滤历史模板中已有的列头
//写入列头信息
int cellStartIndex = sheetRead.Point.HeaderFirstCellNum.Value + 4;
for (int i = cellStartIndex; i < head.LastCellNum; i++)
{
var cellvalue = head.GetCell(i)?.ToString();
if (string.IsNullOrEmpty(cellvalue)) continue;
items.Remove(cellvalue);
}
#endregion
}
if (items == null || !items.Any()) return;
logger.LogInformation($"{sheet.SheetName}需要新增的列头有:" + string.Join(", ", items));
#region 新增模板中不存在的列头
var lastcellIndex = isNewTemp ? sheetRead.Point.HeaderFirstCellNum.Value + 4 : head.LastCellNum;
foreach (var item in items)
{
var headcell = GetOrCreate(head, lastcellIndex);
headcell.SetCellValue(item);
headcell.CellStyle = CellStyle.CreateCellStyle(workbook, StyleType.列头);
var doctorcell = GetOrCreate(doctorFactor, lastcellIndex);
doctorcell.SetCellValue(0);
doctorcell.CellStyle = CellStyle.CreateCellStyle(workbook, StyleType.系数, CellFormat.百分比);
var nursecell = GetOrCreate(nurseFactor, lastcellIndex);
nursecell.SetCellValue(0);
nursecell.CellStyle = CellStyle.CreateCellStyle(workbook, StyleType.系数, CellFormat.百分比);
var techniciancell = GetOrCreate(technicianFactor, lastcellIndex);
techniciancell.SetCellValue(0);
techniciancell.CellStyle = CellStyle.CreateCellStyle(workbook, StyleType.系数, CellFormat.百分比);
lastcellIndex++;
}
#endregion
}
/// <summary>
/// 写入数据
/// </summary>
......@@ -875,7 +943,8 @@ private void WriteWorkHeader(ISheet sheet, IPerSheetDataRead sheetRead, List<mod
var head = GetOrCreate(sheet, sheetRead.Point.HeaderFirstRowNum.Value + 0);
var factor = GetOrCreate(sheet, sheetRead.Point.HeaderFirstRowNum.Value + 1);
var cellItems = items;
var cellItems = new List<mod_item>();
cellItems.AddRange(items);
if (!isNewTemp)
{
#region 过滤历史模板中已有的列头
......@@ -1024,7 +1093,7 @@ private List<ExtractDto> QueryDatabase(sys_hospitalconfig config, mod_extract ex
item.Category = category;
}
}
return result.ToList();
return result.Where(t => !string.IsNullOrEmpty(t.Category)).ToList();
}
}
return null;
......
......@@ -282,10 +282,13 @@ public class ComputeDirector : IAutoInjection
public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_accountbasic> accountbasicList, List<PerSheet> accountSheet, per_allot allot, bool isMinimum)
{
var basicRuleList = new[]
{
{
new { AccountUnitType = AccountUnitType.科主任, UnitType = UnitType.医生组 },
new { AccountUnitType = AccountUnitType.护士长, UnitType = UnitType.护理组 },
new { AccountUnitType = AccountUnitType.科主任, UnitType = UnitType.医技组 },
new { AccountUnitType = AccountUnitType.科主任, UnitType = UnitType.其他医生组 },
new { AccountUnitType = AccountUnitType.护士长, UnitType = UnitType.其他护理组 },
new { AccountUnitType = AccountUnitType.科主任, UnitType = UnitType.其他医技组 },
};
//取出科室
List<res_account> dataList = new List<res_account>();
......@@ -297,6 +300,13 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
var isBudget = budgetService.GetAdjustAndGrant(allot, out decimal adjust, out decimal grant);
var unit = new[]
{
new { UnitType = UnitType.其他医生组, NewUnitType = UnitType.医生组.ToString() },
new { UnitType = UnitType.其他护理组, NewUnitType = UnitType.护理组.ToString() },
new { UnitType = UnitType.其他医技组, NewUnitType = UnitType.医技组.ToString() },
};
var empDis = empolyeeList.Select(w => new { w.DoctorName, w.JobNumber }).Distinct();
foreach (var emp in empDis)
{
......@@ -305,7 +315,13 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
{
var empolyee = empolyees.ElementAt(i);
var resAccount = dataList.FirstOrDefault(t => ((UnitType)t.UnitType).ToString() == empolyee.UnitType && t.AccountingUnit == empolyee.AccountingUnit);
string unitType = empolyee.UnitType;
if (unit.Select(t => t.UnitType.ToString()).Contains(empolyee.UnitType))
{
unitType = unit.FirstOrDefault(t => t.UnitType.ToString() == empolyee.UnitType)?.NewUnitType;
}
var resAccount = dataList.FirstOrDefault(t => ((UnitType)t.UnitType).ToString() == unitType && t.AccountingUnit == empolyee.AccountingUnit);
if (resAccount == null && empolyees.Count() > 1)
{
// 如果没有找到科室,则找相同用户的其他核算单元类型
......@@ -345,7 +361,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
var scale = resAccount.PerforTotal * (empolyee.Scale ?? 1);
var compute = new ComputeResult
{
UnitType = basicRule.UnitType.ToString(),
UnitType = empolyee.UnitType,
AccountingUnit = empolyee.AccountingUnit,
AccountType = basicRule.AccountUnitType.ToString(),
......
......@@ -71,6 +71,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
unifyUnit.MinimumFactor = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "保底绩效系数").PointCell)?.NumericCellValue);
unifyUnit.OtherPerfor1 = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "其他绩效1").PointCell)?.NumericCellValue);
unifyUnit.OtherPerfor2 = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "其他绩效2").PointCell)?.NumericCellValue);
unifyUnit.MedicineExtra = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "药占比奖罚").PointCell)?.NumericCellValue);
unifyUnit.MaterialsExtra = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "材料占比奖罚").PointCell)?.NumericCellValue);
unifyUnit.Extra = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "医院奖罚").PointCell)?.NumericCellValue);
unifyUnit.ScoringAverage = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "考核得分率").PointCell)?.NumericCellValue);
unifyUnit.AdjustFactor = ConvertHelper.To<decimal>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "调节系数").PointCell)?.NumericCellValue);
......
......@@ -266,7 +266,7 @@ public SecondResponse GetSecondDetail(UseTempRequest request)
var second = perforAgsecondallotRepository.GetEntity(t => t.Id == request.SecondId);
//获取固定模板列 + 工作量列
var headItems = GetHeadItems(usetemp.UseTempId.Value, usetemp.HospitalId.Value, usetemp.Department, usetemp.UnitType);
var headItems = GetHeadItems(request.TempId, usetemp.HospitalId.Value, usetemp.Department, usetemp.UnitType);
var result = new SecondResponse();
......@@ -515,12 +515,20 @@ public bool SaveCompute(List<ag_compute> request)
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public List<SecondTempResponse> GetTemp(int hospitalid, string department)
public List<SecondTempResponse> GetTemp(int hospitalid, string department, int userId)
{
var temps = perforAgtempRepository.GetEntities();
if (temps != null && temps.Any())
{
var useTemp = perforAgusetempRepository.GetEntity(t => t.HospitalId == hospitalid && t.Department == department);
var userrole = userroleRepository.GetEntity(t => t.UserID == userId);
var role = roleRepository.GetEntity(t => t.ID == userrole.RoleID);
Expression<Func<ag_usetemp, bool>> exp = t => t.HospitalId == hospitalid && t.Department == department;
if (role.Type == application.DirectorRole)
exp = exp.And(t => new List<string> { UnitType.医生组.ToString(), UnitType.医技组.ToString() }.Contains(t.UnitType));
else if (role.Type == application.NurseRole)
exp = exp.And(t => t.UnitType == UnitType.护理组.ToString());
var useTemp = perforAgusetempRepository.GetEntity(exp);
var secondTemps = Mapper.Map<List<SecondTempResponse>>(temps);
if (useTemp != null)
secondTemps.ForEach(t => t.IsSelected = t.Id == useTemp.UseTempId);
......@@ -780,13 +788,22 @@ public List<ag_secondallot> AuditList(int userId, int allotId)
/// <param name="userId">用户ID</param>
/// <param name="secondId">二次绩效ID</param>
/// <returns></returns>
public bool AuditSubmit(ag_secondallot second, int submittype)
public bool AuditSubmit(ag_secondallot second, int userId)
{
var allot = perforPerallotRepository.GetEntity(t => t.ID == second.AllotId);
if (allot == null)
throw new PerformanceException("二次绩效无效!");
var temp = perforAgusetempRepository.GetEntity(t => t.HospitalId == allot.HospitalId);
var userrole = userroleRepository.GetEntity(t => t.UserID == userId);
var role = roleRepository.GetEntity(t => t.ID == userrole.RoleID);
Expression<Func<ag_usetemp, bool>> exp = t => t.HospitalId == allot.HospitalId && t.Department == second.Department;
if (role.Type == application.DirectorRole)
exp = exp.And(t => new List<string> { UnitType.医生组.ToString(), UnitType.医技组.ToString() }.Contains(t.UnitType));
else if (role.Type == application.NurseRole)
exp = exp.And(t => t.UnitType == UnitType.护理组.ToString());
var temp = perforAgusetempRepository.GetEntity(exp);
if (temp == null)
throw new PerformanceException("选择模板不可用,请确定模板及数据是否存在!");
if (temp.UseTempId == 6)
......@@ -855,7 +872,7 @@ public bool ConfirmAudit(int userId, SecondAuditRequest request)
var items = perforAgfixatitemRepository.GetEntities(t => t.SecondId == request.SecondId);
if (items != null && items.Any())
{
var rowNumbers = items.Select(t => t.RowNumber).Where(t => t > 0)?.Distinct();
var rowNumbers = items.Select(t => t.RowNumber).Where(t => t >= 0)?.Distinct();
if (rowNumbers != null && rowNumbers.Any())
{
foreach (var item in rowNumbers)
......@@ -865,6 +882,7 @@ public bool ConfirmAudit(int userId, SecondAuditRequest request)
AllotId = second.AllotId,
SecondId = second.Id,
Department = second.Department,
JobNumber = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "人员工号")?.ItemValue,
WorkPost = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "岗位")?.ItemValue,
PersonName = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "姓名")?.ItemValue,
RealGiveFee = ConvertHelper.TryDecimal(items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "实发绩效工资金额")?.ItemValue, 0),
......
......@@ -25,6 +25,7 @@ public class SheetSevice : IAutoInjection
//private PerforResaccountnurseRepository _perforImaccountnurseRepository;
private PerforImspecialunitRepository _perforImspecialunitRepository;
private PerforImemployeeclinicRepository _perforImemployeeclinicRepository;
private readonly string[] percentparam = new string[] { "预算比例", "考核得分率", "调节系数" };
public SheetSevice(PerforPerallotRepository perforAllotRepository,
PerforPersheetRepository perforImSheetRepository,
......@@ -139,10 +140,10 @@ private void SpecialUnitExport(int sheetID, SheetExportResponse response)
rowbody.Data.Add(new Cell(4, item.QuantitativeIndicators, 1, 1, false, true));
rowbody.Data.Add(new Cell(5, item.Quantity, 1, 1, false, true));
rowbody.Data.Add(new Cell(6, item.QuantitativeIndicatorsValue, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, item.ScoringAverage, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, Math.Round(item.ScoringAverage.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(8, item.OtherPerfor, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.Punishment, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.Adjust, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, Math.Round(item.Adjust.Value * 100, 2) + "%", 1, 1, false, true));
response.Row.Add(rowbody);
}
}
......@@ -285,7 +286,12 @@ private void CommonExport(int sheetID, SheetExportResponse response)
var data = dataList.FirstOrDefault(t => t.RowNumber == rowNumber && t.SignID == head.SignID);
var value = data?.CellValue;
if (value.HasValue)
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, data.IsTotal == 1, true, data.Annotation));
{
if (!percentparam.Contains(head.CellValue))
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, data.IsTotal == 1, true, data.Annotation));
else
rowbody.Data.Add(new Cell(head.PointCell.Value, Math.Round(value.Value * 100, 2) + "%", 1, 1, data.IsTotal == 1, true, data.Annotation));
}
}
}
}
......@@ -306,15 +312,17 @@ private void AccountNurseExport(int sheetID, SheetExportResponse response)
row.Data.Add(new Cell(5, "倾斜系数", 1, 1, false, true));
row.Data.Add(new Cell(6, "其他绩效1", 1, 1, false, true));
row.Data.Add(new Cell(7, "其他绩效2", 1, 1, false, true));
row.Data.Add(new Cell(8, "医院奖罚", 1, 1, false, true));
row.Data.Add(new Cell(9, "考核对分率", 1, 1, false, true));
row.Data.Add(new Cell(10, "调节系数", 1, 1, false, true));
row.Data.Add(new Cell(11, "科室业绩", 1, 1, false, true));
row.Data.Add(new Cell(12, "业绩绩效", 1, 1, false, true));
row.Data.Add(new Cell(13, "工作量绩效", 1, 1, false, true));
row.Data.Add(new Cell(14, "绩效合计", 1, 1, false, true));
row.Data.Add(new Cell(15, "人均绩效", 1, 1, false, true));
row.Data.Add(new Cell(16, "实发绩效", 1, 1, false, true));
row.Data.Add(new Cell(8, "药占比奖罚", 1, 1, false, true));
row.Data.Add(new Cell(9, "材料占比奖罚", 1, 1, false, true));
row.Data.Add(new Cell(10, "医院奖罚", 1, 1, false, true));
row.Data.Add(new Cell(11, "考核对分率", 1, 1, false, true));
row.Data.Add(new Cell(12, "调节系数", 1, 1, false, true));
row.Data.Add(new Cell(13, "科室业绩", 1, 1, false, true));
row.Data.Add(new Cell(14, "业绩绩效", 1, 1, false, true));
row.Data.Add(new Cell(15, "工作量绩效", 1, 1, false, true));
row.Data.Add(new Cell(16, "绩效合计", 1, 1, false, true));
row.Data.Add(new Cell(17, "人均绩效", 1, 1, false, true));
row.Data.Add(new Cell(18, "实发绩效", 1, 1, false, true));
response.Header.Add(row);
for (int i = 0; i < list.Count(); i++)
......@@ -328,15 +336,17 @@ private void AccountNurseExport(int sheetID, SheetExportResponse response)
rowbody.Data.Add(new Cell(5, item.SlopeFactor, 1, 1, false, true));
rowbody.Data.Add(new Cell(6, item.OtherPerfor1, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, item.OtherPerfor2, 1, 1, false, true));
rowbody.Data.Add(new Cell(8, item.Extra, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.ScoringAverage, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.AdjustFactor, 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.Income, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.PerforFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.WorkloadFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.PerforTotal, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.Avg, 1, 1, false, true));
rowbody.Data.Add(new Cell(16, item.RealGiveFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(8, item.MedicineExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.MaterialsExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.Extra, 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.ScoringAverage, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.AdjustFactor, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.Income, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.PerforFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.WorkloadFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(16, item.PerforTotal, 1, 1, false, true));
rowbody.Data.Add(new Cell(17, item.Avg, 1, 1, false, true));
rowbody.Data.Add(new Cell(18, item.RealGiveFee, 1, 1, false, true));
response.Row.Add(rowbody);
}
}
......@@ -356,15 +366,17 @@ private void AccountDoctorExport(int sheetID, SheetExportResponse response)
row.Data.Add(new Cell(5, "倾斜系数", 1, 1, false, true));
row.Data.Add(new Cell(6, "其他绩效1", 1, 1, false, true));
row.Data.Add(new Cell(7, "其他绩效2", 1, 1, false, true));
row.Data.Add(new Cell(8, "医院奖罚", 1, 1, false, true));
row.Data.Add(new Cell(9, "考核对分率", 1, 1, false, true));
row.Data.Add(new Cell(10, "调节系数", 1, 1, false, true));
row.Data.Add(new Cell(11, "科室业绩", 1, 1, false, true));
row.Data.Add(new Cell(12, "业绩绩效", 1, 1, false, true));
row.Data.Add(new Cell(13, "工作量绩效", 1, 1, false, true));
row.Data.Add(new Cell(14, "绩效合计", 1, 1, false, true));
row.Data.Add(new Cell(15, "人均绩效", 1, 1, false, true));
row.Data.Add(new Cell(16, "实发绩效", 1, 1, false, true));
row.Data.Add(new Cell(8, "药占比奖罚", 1, 1, false, true));
row.Data.Add(new Cell(9, "材料占比奖罚", 1, 1, false, true));
row.Data.Add(new Cell(10, "医院奖罚", 1, 1, false, true));
row.Data.Add(new Cell(11, "考核对分率", 1, 1, false, true));
row.Data.Add(new Cell(12, "调节系数", 1, 1, false, true));
row.Data.Add(new Cell(13, "科室业绩", 1, 1, false, true));
row.Data.Add(new Cell(14, "业绩绩效", 1, 1, false, true));
row.Data.Add(new Cell(15, "工作量绩效", 1, 1, false, true));
row.Data.Add(new Cell(16, "绩效合计", 1, 1, false, true));
row.Data.Add(new Cell(17, "人均绩效", 1, 1, false, true));
row.Data.Add(new Cell(18, "实发绩效", 1, 1, false, true));
response.Header.Add(row);
for (int i = 0; i < list.Count(); i++)
......@@ -379,15 +391,17 @@ private void AccountDoctorExport(int sheetID, SheetExportResponse response)
rowbody.Data.Add(new Cell(5, item.SlopeFactor, 1, 1, false, true));
rowbody.Data.Add(new Cell(6, item.OtherPerfor1, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, item.OtherPerfor2, 1, 1, false, true));
rowbody.Data.Add(new Cell(8, item.Extra, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.ScoringAverage, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.AdjustFactor, 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.Income, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.PerforFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.WorkloadFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.PerforTotal, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.Avg, 1, 1, false, true));
rowbody.Data.Add(new Cell(16, item.RealGiveFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(8, item.MedicineExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.MaterialsExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.Extra, 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.ScoringAverage, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.AdjustFactor, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.Income, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.PerforFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.WorkloadFee, 1, 1, false, true));
rowbody.Data.Add(new Cell(16, item.PerforTotal, 1, 1, false, true));
rowbody.Data.Add(new Cell(17, item.Avg, 1, 1, false, true));
rowbody.Data.Add(new Cell(18, item.RealGiveFee, 1, 1, false, true));
response.Row.Add(rowbody);
}
......@@ -413,9 +427,11 @@ private void AccountBaiscExport(int sheetID, SheetExportResponse response)
row.Data.Add(new Cell(10, "管理绩效发放系数", 1, 1, false, false));
row.Data.Add(new Cell(11, "其他绩效1", 1, 1, false, false));
row.Data.Add(new Cell(12, "考核得分率", 1, 1, false, false));
row.Data.Add(new Cell(13, "医院奖罚", 1, 1, false, false));
row.Data.Add(new Cell(14, "其他绩效2", 1, 1, false, false));
row.Data.Add(new Cell(15, "调节系数", 1, 1, false, false));
row.Data.Add(new Cell(13, "药占比奖罚", 1, 1, false, false));
row.Data.Add(new Cell(14, "材料占比奖罚", 1, 1, false, false));
row.Data.Add(new Cell(15, "医院奖罚", 1, 1, false, false));
row.Data.Add(new Cell(16, "其他绩效2", 1, 1, false, false));
row.Data.Add(new Cell(17, "调节系数", 1, 1, false, false));
response.Header.Add(row);
for (int i = 0; i < list.Count(); i++)
......@@ -434,9 +450,11 @@ private void AccountBaiscExport(int sheetID, SheetExportResponse response)
rowbody.Data.Add(new Cell(10, item.DoctorGrant, 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.DoctorOtherPerfor1, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.DoctorScoringAverage, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.DoctorExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.DoctorOtherPerfor2, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.DoctorAdjustFactor, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.MedicineExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.MaterialsExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.DoctorExtra, 1, 1, false, true));
rowbody.Data.Add(new Cell(16, item.DoctorOtherPerfor2, 1, 1, false, true));
rowbody.Data.Add(new Cell(17, item.DoctorAdjustFactor, 1, 1, false, true));
response.Row.Add(rowbody);
}
}
......@@ -453,7 +471,7 @@ private void EmployeeExport(int sheetID, SheetExportResponse response)
var row = new Row(0);
row.Data.Add(new Cell(1, "核算单元类型", 1, 1, false, false));
row.Data.Add(new Cell(2, "核算单元", 1, 1, false, false));
row.Data.Add(new Cell(3, "科室", 1, 1, false, false));
row.Data.Add(new Cell(3, "人员工号", 1, 1, false, false));
row.Data.Add(new Cell(4, "医生姓名", 1, 1, false, true));
row.Data.Add(new Cell(5, "职称", 1, 1, false, true));
row.Data.Add(new Cell(6, "绩效基数核算参考对象", 1, 1, false, true));
......@@ -475,19 +493,19 @@ private void EmployeeExport(int sheetID, SheetExportResponse response)
var rowbody = new Row(i);
rowbody.Data.Add(new Cell(1, item.AccountType, 1, 1, false, false));
rowbody.Data.Add(new Cell(2, item.AccountingUnit, 1, 1, false, false));
rowbody.Data.Add(new Cell(3, item.Department, 1, 1, false, false));
rowbody.Data.Add(new Cell(3, item.PersonnelNumber, 1, 1, false, false));
rowbody.Data.Add(new Cell(4, item.DoctorName, 1, 1, false, true));
rowbody.Data.Add(new Cell(5, item.JobTitle, 1, 1, false, true));
rowbody.Data.Add(new Cell(6, item.FitPeople, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, item.PostCoefficient, 1, 1, false, true));
rowbody.Data.Add(new Cell(8, workTime, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.ScoreAverageRate, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.Attendance, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, Math.Round(item.ScoreAverageRate.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(10, Math.Round(item.Attendance.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.PeopleNumber, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.Workload, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.OtherPerfor, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.Punishment, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.Adjust, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, Math.Round(item.Adjust.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(16, item.Grant, 1, 1, false, true));
response.Row.Add(rowbody);
}
......@@ -505,22 +523,22 @@ private void ClinicEmployeeExport(int sheetID, SheetExportResponse response)
var row = new Row(0);
row.Data.Add(new Cell(1, "核算单元分类", 1, 1, false, false));
row.Data.Add(new Cell(2, "核算单元", 1, 1, false, false));
row.Data.Add(new Cell(3, "科室", 1, 1, false, false));
row.Data.Add(new Cell(3, "人员工号", 1, 1, false, false));
row.Data.Add(new Cell(4, "医生姓名", 1, 1, false, true));
row.Data.Add(new Cell(5, "职称", 1, 1, false, true));
//row.Data.Add(new Cell(6, "绩效基数核算参考对象", 1, 1, false, true));
row.Data.Add(new Cell(7, "岗位系数", 1, 1, false, true));
row.Data.Add(new Cell(8, "效率绩效系数", 1, 1, false, true));
row.Data.Add(new Cell(9, "规模绩效系数", 1, 1, false, true));
row.Data.Add(new Cell(10, "管理绩效发放系数", 1, 1, false, true));
row.Data.Add(new Cell(6, "岗位系数", 1, 1, false, true));
row.Data.Add(new Cell(7, "效率绩效系数", 1, 1, false, true));
row.Data.Add(new Cell(8, "规模绩效系数", 1, 1, false, true));
row.Data.Add(new Cell(9, "管理绩效发放系数", 1, 1, false, true));
//row.Data.Add(new Cell(8, "效率绩效系数", 1, 1, false, true));
row.Data.Add(new Cell(11, "考核得分率", 1, 1, false, true));
row.Data.Add(new Cell(12, "出勤率", 1, 1, false, true));
row.Data.Add(new Cell(10, "考核得分率", 1, 1, false, true));
row.Data.Add(new Cell(11, "出勤率", 1, 1, false, true));
//row.Data.Add(new Cell(11, "核算单元医生数", 1, 1, false, true));
//row.Data.Add(new Cell(12, "工作量绩效", 1, 1, false, true));
row.Data.Add(new Cell(13, "其他绩效", 1, 1, false, true));
row.Data.Add(new Cell(14, "医院奖罚", 1, 1, false, true));
row.Data.Add(new Cell(15, "调节系数", 1, 1, false, true));
row.Data.Add(new Cell(12, "其他绩效", 1, 1, false, true));
row.Data.Add(new Cell(13, "医院奖罚", 1, 1, false, true));
row.Data.Add(new Cell(14, "调节系数", 1, 1, false, true));
//row.Data.Add(new Cell(16, "发放系数", 1, 1, false, true));
response.Header.Add(row);
for (int i = 0; i < clinicemployeeList.Count(); i++)
......@@ -530,19 +548,19 @@ private void ClinicEmployeeExport(int sheetID, SheetExportResponse response)
var rowbody = new Row(i);
rowbody.Data.Add(new Cell(1, item.UnitType, 1, 1, false, false));
rowbody.Data.Add(new Cell(2, item.AccountingUnit, 1, 1, false, false));
rowbody.Data.Add(new Cell(3, item.Department, 1, 1, false, false));
rowbody.Data.Add(new Cell(3, item.PersonnelNumber, 1, 1, false, false));
rowbody.Data.Add(new Cell(4, item.DoctorName, 1, 1, false, true));
rowbody.Data.Add(new Cell(5, item.JobTitle, 1, 1, false, true));
//rowbody.Data.Add(new Cell(6, item.FitPeople, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, item.PostCoefficient, 1, 1, false, true));
rowbody.Data.Add(new Cell(8, item.Efficiency, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.Scale, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.Management, 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.ScoreAverageRate, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.Attendance, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.OtherPerfor, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.Punishment, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.Adjust, 1, 1, false, true));
rowbody.Data.Add(new Cell(6, item.PostCoefficient, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, Math.Round(item.Efficiency.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(8, Math.Round(item.Scale.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(9, Math.Round(item.Management.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(10, Math.Round(item.ScoreAverageRate.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(11, Math.Round(item.Attendance.Value * 100, 2) + "%", 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.OtherPerfor, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.Punishment, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, Math.Round(item.Adjust.Value * 100, 2) + "%", 1, 1, false, true));
//rowbody.Data.Add(new Cell(16, item.Grant, 1, 1, false, true));
response.Row.Add(rowbody);
}
......
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