Commit 8eeea943 by lcx

其他工作量sheet数据写入、创建其他工作量sheet时删除“工作量”关键字过滤,写入方法调整,兼容其他工作量样式

parent fbe334bf
......@@ -77,6 +77,12 @@ public int DeleteAllotData(int allotId)
"res_specialunit",
"log_check",
"per_employee",
"report_allot_crowd",
"report_allot_summary",
"report_original_income",
"report_original_persontime",
"report_original_stays",
"report_original_surgery",
};
string sql = "";
tableArray.ForEach(t => sql += $"delete from {t} where allotid=@allotId;");
......
......@@ -36,7 +36,7 @@ private static (string TempPath, string FilePath) CopyOriginalFile(int hospitalI
FileHelper.CreateDirectory(dpath);
string tempPath = Path.Combine(dpath, $"Template{DateTime.Now.ToString("yyyyMMddHHmmssfff")}{ext}");
FileHelper.Copy(originalPath, tempPath);
string filePath = Path.Combine(dpath, $"绩效提取数据{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.xls");
string filePath = Path.Combine(dpath, $"绩效提取数据{DateTime.Now.ToString("yyyyMMddHHmmssfff")}{ext}");
return (tempPath, filePath);
}
......@@ -66,19 +66,19 @@ public static void CreateNotExistSheet(List<ex_module> modulesList, IWorkbook wo
}
}
foreach (var module in modulesList.Where(t => t.SheetType == (int)SheetType.Workload)?.OrderBy(t => t.ModuleName))
foreach (var module in modulesList.Where(t => t.SheetType == (int)SheetType.OtherWorkload)?.OrderBy(t => t.ModuleName))
{
var sheet = workbook.GetSheet(module.ModuleName) ?? workbook.GetSheet(module.ModuleName.NoBlank());
if (sheet == null)
{
string key = "工作量";
if (module.ModuleName.Contains(key))
{
var item = pairs.Where(t => t.Key.StartsWith("3.")).OrderByDescending(t => t.Key).First();
var copysheet = workbook.GetSheet(item.Key);
var newSheet = copysheet.CopySheet(module.ModuleName, true);
workbook.SetSheetOrder(newSheet.SheetName, workbook.NumberOfSheets - 1);
}
//string key = "工作量";
//if (module.ModuleName.Contains(key))
//{
var item = pairs.Where(t => t.Key.StartsWith("3.")).OrderByDescending(t => t.Key).First();
var copysheet = workbook.GetSheet(item.Key);
var newSheet = copysheet.CopySheet(module.ModuleName, true);
workbook.SetSheetOrder(newSheet.SheetName, workbook.NumberOfSheets - 1);
//}
}
}
}
......@@ -109,4 +109,4 @@ public static void ClearSheetPartialData(ISheet sheet, PerSheetPoint point, Shee
}
}
}
}
\ No newline at end of file
}
......@@ -48,7 +48,7 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
}
if (columns == null || !columns.Any()) return;
var factorStyle = sheetType == SheetType.Workload
var factorStyle = new SheetType[] { SheetType.Workload, SheetType.OtherWorkload }.Contains(sheetType)
? style.SetBgkColorAndFormat(style.GetCellStyle(), StyleType.系数, CellFormat.数字)
: style.SetBgkColorAndFormat(style.GetCellStyle(), StyleType.系数, CellFormat.百分比);
var columnStyle = style.SetBgkColorAndFormat(style.GetCellStyle(), StyleType.列头);
......@@ -61,7 +61,7 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
columnCell.SetCellValue(item.ColumnName);
columnCell.CellStyle = columnStyle;
if (sheetType == SheetType.Workload)
if (new SheetType[] { SheetType.Workload, SheetType.OtherWorkload }.Contains(sheetType))
{
var workloadCell = workloadFactor.GetOrCreate(headerFirstCellNum);
workloadCell.SetCellValue<decimal>(item.WorkloadFactor);
......@@ -309,7 +309,9 @@ public static void WriteCollectData(ISheet sheet, PerSheetPoint point, SheetType
{
var departments = data.Select(s => s.Department).Where(w => !string.IsNullOrEmpty(w)).Distinct().ToList();
var filed = sheetType == SheetType.Workload ? collectWork : new SheetType[] { SheetType.OtherIncome, SheetType.Expend }.Contains(sheetType) ? collectIncome : collectDept;
var filed = new SheetType[] { SheetType.Workload, SheetType.OtherWorkload }.Contains(sheetType)
? collectWork
: new SheetType[] { SheetType.OtherIncome, SheetType.Expend }.Contains(sheetType) ? collectIncome : collectDept;
var deptStyle = style.GetCellStyle();
var cellStyle = style.SetBgkColorAndFormat(style.GetCellStyle(), StyleType.数据);
......
......@@ -17,9 +17,11 @@ public ISheetDataWrite GetWriteData(SheetType sheetType, ILogger logger)
//case SheetType.Employee:
// factory = new EmployeeDataWrite();
// break;
//case SheetType.ClinicEmployee:
// factory = new ClinicEmployeeDataWrite();
// break;
case SheetType.OtherIncome:
case SheetType.Expend:
factory = new OtherIncomeDataWrite(logger);
......@@ -30,11 +32,14 @@ public ISheetDataWrite GetWriteData(SheetType sheetType, ILogger logger)
break;
case SheetType.Workload:
case SheetType.OtherWorkload:
factory = new WorkloadDataWrite(logger);
break;
//case SheetType.AccountBasic:
// factory = new AccountBasicDataWrite();
// break;
case SheetType.SpecialUnit:
factory = new SpecialUnitDataWrite(logger);
break;
......
......@@ -46,6 +46,7 @@ public List<PerReport> GetAvgPerfor(int hospitalid)
{
return perforReportRepository.GetAvgPerfor(hospitalid);
}
/// <summary>
/// 人群绩效比
/// </summary>
......@@ -148,7 +149,6 @@ public List<PerReport> NurseAvg(int hospitalId, int isIndex)
return s.OrderBy(t => t.Y).ThenByDescending(t => t.Value).ToList();
}
/// <summary>
/// 门诊患者均次费用
/// </summary>
......@@ -240,6 +240,8 @@ internal int ImportData(per_allot allot)
{
{ "@allotid", allot.ID },
{ "@hospitalid", allot.HospitalId },
{ "@year", allot.Year },
{ "@month", allot.Month },
};
var imports = repimportconfigRepository.GetEntities(w => w.ScriptType == 2);
foreach (var item in imports)
......@@ -267,6 +269,8 @@ internal int UpdateData(per_allot allot)
{
{ "@allotid", allot.ID },
{ "@hospitalid", allot.HospitalId },
{ "@year", allot.Year },
{ "@month", allot.Month },
};
var imports = repimportconfigRepository.GetEntities(w => w.ScriptType == 3);
foreach (var item in imports)
......@@ -306,18 +310,23 @@ public List<PerReport> IndexReport(int hospitalId, string source)
case "医院收入结构占比":
report = perforReportRepository.InHosIncome(hospitalId, currentDate);
break;
case "绩效发放金额":
report = perforReportRepository.PerforPayment(hospitalId, currentDate, yoyDate, chainDate);
break;
case "绩效发放金额占全院收入占比":
report = perforReportRepository.IndexPerforRatio(hospitalId, currentDate, yoyDate, chainDate);
break;
case "药占比":
report = perforReportRepository.IndexDrugRatio(hospitalId, currentDate, yoyDate, chainDate);
break;
case "材料占比":
report = perforReportRepository.IndexMaterialRatio(hospitalId, currentDate, yoyDate, chainDate);
break;
case "结构占比":
report = perforReportRepository.IndexStructRatio(hospitalId, currentDate);
break;
......@@ -326,7 +335,6 @@ public List<PerReport> IndexReport(int hospitalId, string source)
return report;
}
/// <summary>
/// 菜单
/// </summary>
......@@ -340,27 +348,35 @@ public List<PerReport> MenuReport(ReportRequest request)
case "业务总收入":
report = perforReportRepository.GeneralIncome(request);
break;
case "门诊住院业务收入占比":
report = perforReportRepository.InHosIncome(request);
break;
case "业务收入结构占比":
report = perforReportRepository.StructRatio(request);
break;
case "药占比":
report = perforReportRepository.DrugRatio(request);
break;
case "材料占比":
report = perforReportRepository.MaterialRatio(request);
break;
case "绩效发放金额占全院收入占比":
report = perforReportRepository.PerforRatio(request);
break;
case "绩效群体收入":
report = perforReportRepository.PerforGroup(request);
break;
case "医生核算单元人均绩效":
report = perforReportRepository.DoctorAvg(request);
break;
case "护理核算单元人均绩效":
report = perforReportRepository.NurseAvg(request);
break;
......
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