Commit 8eeea943 by lcx

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

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