Commit 90175881 by lcx

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

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