Commit 90175881 by lcx

抽取添加新sheet,特殊科室数据根据核算单元进行关联

parent 2a027676
...@@ -28,6 +28,8 @@ public int DeleteData(int allotId) ...@@ -28,6 +28,8 @@ public int DeleteData(int allotId)
"im_employee_logistics", "im_employee_logistics",
"im_header", "im_header",
"im_specialunit", "im_specialunit",
"log_check",
"per_employee",
"per_sheet", "per_sheet",
"res_account", "res_account",
"res_accountdoctor", "res_accountdoctor",
...@@ -35,7 +37,13 @@ public int DeleteData(int allotId) ...@@ -35,7 +37,13 @@ public int DeleteData(int allotId)
"res_baiscnorm", "res_baiscnorm",
"res_compute", "res_compute",
"res_specialunit", "res_specialunit",
"log_check", "report_allot_crowd",
"report_allot_summary",
"report_original_income",
"report_original_persontime",
"report_original_stays",
"report_original_surgery",
"report_original_workload",
}; };
string sql = ""; string sql = "";
tableArray.ForEach(t => sql += $"delete from {t} where allotid=@allotId;"); tableArray.ForEach(t => sql += $"delete from {t} where allotid=@allotId;");
...@@ -68,15 +76,22 @@ public int DeleteAllotData(int allotId) ...@@ -68,15 +76,22 @@ public int DeleteAllotData(int allotId)
"im_employee_logistics", "im_employee_logistics",
"im_header", "im_header",
"im_specialunit", "im_specialunit",
"log_check",
"per_employee",
"per_sheet", "per_sheet",
"report_allot_crowd",
"report_allot_summary",
"report_original_income",
"report_original_persontime",
"report_original_stays",
"report_original_surgery",
"report_original_workload",
"res_account", "res_account",
"res_accountdoctor", "res_accountdoctor",
"res_accountnurse", "res_accountnurse",
"res_baiscnorm", "res_baiscnorm",
"res_compute", "res_compute",
"res_specialunit", "res_specialunit",
"log_check",
"per_employee",
}; };
string sql = ""; string sql = "";
tableArray.ForEach(t => sql += $"delete from {t} where allotid=@allotId;"); tableArray.ForEach(t => sql += $"delete from {t} where allotid=@allotId;");
...@@ -89,13 +104,20 @@ public int DeleteResData(int allotId) ...@@ -89,13 +104,20 @@ public int DeleteResData(int allotId)
{ {
List<string> tableArray = new List<string> List<string> tableArray = new List<string>
{ {
"log_dbug",
"report_allot_crowd",
"report_allot_summary",
"report_original_income",
"report_original_persontime",
"report_original_stays",
"report_original_surgery",
"report_original_workload",
"res_account", "res_account",
"res_accountdoctor", "res_accountdoctor",
"res_accountnurse", "res_accountnurse",
"res_baiscnorm", "res_baiscnorm",
"res_compute", "res_compute",
"res_specialunit", "res_specialunit",
"log_dbug",
}; };
string sql = ""; string sql = "";
tableArray.ForEach(t => sql += $"delete from {t} where allotid=@allotId;"); tableArray.ForEach(t => sql += $"delete from {t} where allotid=@allotId;");
......
...@@ -21,7 +21,7 @@ public class ExtractService : IAutoInjection ...@@ -21,7 +21,7 @@ public class ExtractService : IAutoInjection
private readonly PerSheetService perSheetService; private readonly PerSheetService perSheetService;
private readonly PerforHospitalRepository hospitalRepository; private readonly PerforHospitalRepository hospitalRepository;
private readonly PerforPerallotRepository perallotRepository; private readonly PerforPerallotRepository perallotRepository;
private readonly PerforcollectdataRepository collectdataRepository; private readonly PerforCollectdataRepository collectdataRepository;
private readonly PerforPeremployeeRepository peremployeeRepository; private readonly PerforPeremployeeRepository peremployeeRepository;
public ExtractService( public ExtractService(
...@@ -32,7 +32,7 @@ public class ExtractService : IAutoInjection ...@@ -32,7 +32,7 @@ public class ExtractService : IAutoInjection
PerSheetService perSheetService, PerSheetService perSheetService,
PerforHospitalRepository hospitalRepository, PerforHospitalRepository hospitalRepository,
PerforPerallotRepository perallotRepository, PerforPerallotRepository perallotRepository,
PerforcollectdataRepository collectdataRepository, PerforCollectdataRepository collectdataRepository,
PerforPeremployeeRepository peremployeeRepository PerforPeremployeeRepository peremployeeRepository
) )
{ {
......
...@@ -36,6 +36,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp ...@@ -36,6 +36,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp
if (exSpecials == null || !exSpecials.Any()) return; if (exSpecials == null || !exSpecials.Any()) return;
var extractDto = (data as List<ExtractTransDto>) ?? new List<ExtractTransDto>(); var extractDto = (data as List<ExtractTransDto>) ?? new List<ExtractTransDto>();
logger.LogInformation("特殊科室数据1:" + JsonHelper.Serialize(extractDto));
var mergedRegions = new List<SpecialCellRange>(); var mergedRegions = new List<SpecialCellRange>();
RemoveMergedRegion(sheet, ref mergedRegions); RemoveMergedRegion(sheet, ref mergedRegions);
...@@ -44,7 +45,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp ...@@ -44,7 +45,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp
var index = columns.IndexOf(SpecialUnitColumns.Department); var index = columns.IndexOf(SpecialUnitColumns.Department);
var needMergedRegions = mergedRegions.Where(t => t.FirstColumn == index && t.LastColumn == index)?.ToList() ?? new List<SpecialCellRange>(); var needMergedRegions = mergedRegions.Where(t => t.FirstColumn == index && t.LastColumn == index)?.ToList() ?? new List<SpecialCellRange>();
var specials = exSpecials.GroupJoin(extractDto, outer => new { outer.Department, outer.Target }, inner => new { inner.Department, Target = inner.Category }, var specials = exSpecials.GroupJoin(extractDto, outer => new { outer.Department, outer.Target }, inner => new { Department = inner.InpatDoctorAccounting, Target = inner.Category },
(outer, inner) => new SpecialDto (outer, inner) => new SpecialDto
{ {
Department = outer.Department, Department = outer.Department,
......
...@@ -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