Commit db51957b by 李承祥

界面日志信息输出

parent 1c089166
...@@ -15,16 +15,19 @@ public class CheckDataService : IAutoInjection ...@@ -15,16 +15,19 @@ public class CheckDataService : IAutoInjection
private PerforCofcheckRepository perforCofcheckRepository; private PerforCofcheckRepository perforCofcheckRepository;
private PerforLogcheckRepository perforLogcheckRepository; private PerforLogcheckRepository perforLogcheckRepository;
private PerforCofdrugtypeRepository perforCofdrugtypeRepository; private PerforCofdrugtypeRepository perforCofdrugtypeRepository;
private LogManageService logManageService;
public CheckDataService(PerSheetService perSheetService, public CheckDataService(PerSheetService perSheetService,
PerforCofcheckRepository perforCofcheckRepository, PerforCofcheckRepository perforCofcheckRepository,
PerforLogcheckRepository perforLogcheckRepository, PerforLogcheckRepository perforLogcheckRepository,
PerforCofdrugtypeRepository perforCofdrugtypeRepository PerforCofdrugtypeRepository perforCofdrugtypeRepository,
LogManageService logManageService
) )
{ {
this.perSheetService = perSheetService; this.perSheetService = perSheetService;
this.perforCofcheckRepository = perforCofcheckRepository; this.perforCofcheckRepository = perforCofcheckRepository;
this.perforLogcheckRepository = perforLogcheckRepository; this.perforLogcheckRepository = perforLogcheckRepository;
this.perforCofdrugtypeRepository = perforCofdrugtypeRepository; this.perforCofdrugtypeRepository = perforCofdrugtypeRepository;
this.logManageService = logManageService;
} }
internal bool Check(PerExcel excel, per_allot allot) internal bool Check(PerExcel excel, per_allot allot)
{ {
...@@ -232,6 +235,7 @@ public void InsertLog(int allotId, int type, int level, string title, string mes ...@@ -232,6 +235,7 @@ public void InsertLog(int allotId, int type, int level, string title, string mes
Message = message Message = message
}; };
perforLogcheckRepository.Add(model); perforLogcheckRepository.Add(model);
logManageService.WriteMsg("绩效数据校验", $"{title} - {message}", allotId, "ReceiveMessage");
} }
#endregion #endregion
} }
......
...@@ -27,7 +27,8 @@ public class ImportDataService : IAutoInjection ...@@ -27,7 +27,8 @@ public class ImportDataService : IAutoInjection
private PerforImemployeeRepository perforImEmployeeRepository; private PerforImemployeeRepository perforImEmployeeRepository;
private PerforImaccountbasicRepository perforImaccountbasicRepository; private PerforImaccountbasicRepository perforImaccountbasicRepository;
private PerforImspecialunitRepository perforImspecialunitRepository; private PerforImspecialunitRepository perforImspecialunitRepository;
private PerforLogdbugRepository logdbug; //private PerforLogdbugRepository logdbug;
private readonly LogManageService logManageService;
public ImportDataService(PerSheetService perSheetService, public ImportDataService(PerSheetService perSheetService,
PerforPersheetRepository perforPerSheetRepository, PerforPersheetRepository perforPerSheetRepository,
PerforPerallotRepository perforPerallotRepository, PerforPerallotRepository perforPerallotRepository,
...@@ -36,7 +37,8 @@ public class ImportDataService : IAutoInjection ...@@ -36,7 +37,8 @@ public class ImportDataService : IAutoInjection
PerforImemployeeRepository perforImEmployeeRepository, PerforImemployeeRepository perforImEmployeeRepository,
PerforImaccountbasicRepository perforImaccountbasicRepository, PerforImaccountbasicRepository perforImaccountbasicRepository,
PerforImspecialunitRepository perforImspecialunitRepository, PerforImspecialunitRepository perforImspecialunitRepository,
PerforLogdbugRepository logdbug) //PerforLogdbugRepository logdbug
LogManageService logManageService)
{ {
this.perSheetService = perSheetService; this.perSheetService = perSheetService;
this.perforPerSheetRepository = perforPerSheetRepository; this.perforPerSheetRepository = perforPerSheetRepository;
...@@ -46,7 +48,8 @@ public class ImportDataService : IAutoInjection ...@@ -46,7 +48,8 @@ public class ImportDataService : IAutoInjection
this.perforImEmployeeRepository = perforImEmployeeRepository; this.perforImEmployeeRepository = perforImEmployeeRepository;
this.perforImaccountbasicRepository = perforImaccountbasicRepository; this.perforImaccountbasicRepository = perforImaccountbasicRepository;
this.perforImspecialunitRepository = perforImspecialunitRepository; this.perforImspecialunitRepository = perforImspecialunitRepository;
this.logdbug = logdbug; //this.logdbug = logdbug;
this.logManageService = logManageService;
} }
/// <summary> /// <summary>
...@@ -86,7 +89,8 @@ private PerExcel Import(per_allot allot) ...@@ -86,7 +89,8 @@ private PerExcel Import(per_allot allot)
var sheet = workbook.GetSheetAt(i); var sheet = workbook.GetSheetAt(i);
var sheetType = perSheetService.GetSheetType(sheet.SheetName); var sheetType = perSheetService.GetSheetType(sheet.SheetName);
logdbug.Add(allot.ID, "开始读取excel文件", JsonHelper.Serialize(new { sheetType, Description = EnumHelper.GetDescription(sheetType), name = sheet.SheetName })); //logdbug.Add(allot.ID, "开始读取excel文件", JsonHelper.Serialize(new { sheetType, Description = EnumHelper.GetDescription(sheetType), name = sheet.SheetName }));
logManageService.WriteMsg("开始读取excel文件", JsonHelper.Serialize(new { sheetType, Description = EnumHelper.GetDescription(sheetType), name = sheet.SheetName }), allot.ID, "ReceiveMessage", true);
if (SheetType.Unidentifiable != sheetType) if (SheetType.Unidentifiable != sheetType)
{ {
var st = perSheetService.Sheet(sheet); var st = perSheetService.Sheet(sheet);
...@@ -233,22 +237,26 @@ private bool Save(PerExcel excel, int allotId) ...@@ -233,22 +237,26 @@ private bool Save(PerExcel excel, int allotId)
{ {
if (sheet.SheetType == SheetType.Employee) if (sheet.SheetType == SheetType.Employee)
{ {
logdbug.Add(allotId, "开始保存人员数据数据", sheet.SheetName); //logdbug.Add(allotId, "开始保存人员数据数据", sheet.SheetName);
logManageService.WriteMsg("保存基础数据", "开始保存人员数据数据", allotId, "ReceiveMessage", true);
SaveEmployee(sheet, allotId); SaveEmployee(sheet, allotId);
} }
else if (sheet.SheetType == SheetType.AccountBasic) else if (sheet.SheetType == SheetType.AccountBasic)
{ {
logdbug.Add(allotId, "开始保存临床科室医护绩效测算基础数据", sheet.SheetName); //logdbug.Add(allotId, "开始保存临床科室医护绩效测算基础数据", sheet.SheetName);
logManageService.WriteMsg("保存基础数据", "开始保存临床科室医护绩效测算基础数据", allotId, "ReceiveMessage", true);
SaveAccountBasic(sheet, allotId); SaveAccountBasic(sheet, allotId);
} }
else if (sheet.SheetType == SheetType.SpecialUnit) else if (sheet.SheetType == SheetType.SpecialUnit)
{ {
logdbug.Add(allotId, "开始保存特殊核算单元数据", sheet.SheetName); //logdbug.Add(allotId, "开始保存特殊核算单元数据", sheet.SheetName);
logManageService.WriteMsg("保存基础数据", "开始保存特殊核算单元数据", allotId, "ReceiveMessage", true);
SaveSpecialUnit(sheet, allotId); SaveSpecialUnit(sheet, allotId);
} }
else else
{ {
logdbug.Add(allotId, "开始保存统一格式数据", sheet.SheetName); //logdbug.Add(allotId, "开始保存统一格式数据", sheet.SheetName);
logManageService.WriteMsg("保存基础数据", $"开始保存{sheet.SheetName}数据", allotId, "ReceiveMessage", true);
SaveCommon(sheet, allotId); SaveCommon(sheet, allotId);
} }
} }
......
...@@ -25,6 +25,7 @@ public class ProcessComputService : IAutoInjection ...@@ -25,6 +25,7 @@ public class ProcessComputService : IAutoInjection
private PerforResaccountRepository perforResaccountRepository; private PerforResaccountRepository perforResaccountRepository;
private PerforResbaiscnormRepository perforResbaiscnormRepository; private PerforResbaiscnormRepository perforResbaiscnormRepository;
private PerforCofdrugtypeRepository perforCofdrugtypeRepository; private PerforCofdrugtypeRepository perforCofdrugtypeRepository;
private readonly LogManageService logManageService;
public ProcessComputService(PerforCofincomeRepository perforCofincomeRepository, public ProcessComputService(PerforCofincomeRepository perforCofincomeRepository,
PerforCofdrugpropRepository perforCofdrugpropRepository, PerforCofdrugpropRepository perforCofdrugpropRepository,
PerforPersheetRepository perforPerSheetRepository, PerforPersheetRepository perforPerSheetRepository,
...@@ -33,7 +34,8 @@ public class ProcessComputService : IAutoInjection ...@@ -33,7 +34,8 @@ public class ProcessComputService : IAutoInjection
PerforImemployeeRepository perforImEmployeeRepository, PerforImemployeeRepository perforImEmployeeRepository,
PerforResaccountRepository perforResaccountRepository, PerforResaccountRepository perforResaccountRepository,
PerforResbaiscnormRepository perforResbaiscnormRepository, PerforResbaiscnormRepository perforResbaiscnormRepository,
PerforCofdrugtypeRepository perforCofdrugtypeRepository) PerforCofdrugtypeRepository perforCofdrugtypeRepository,
LogManageService logManageService)
{ {
this.perforCofincomeRepository = perforCofincomeRepository; this.perforCofincomeRepository = perforCofincomeRepository;
this.perforCofdrugpropRepository = perforCofdrugpropRepository; this.perforCofdrugpropRepository = perforCofdrugpropRepository;
...@@ -44,6 +46,7 @@ public class ProcessComputService : IAutoInjection ...@@ -44,6 +46,7 @@ public class ProcessComputService : IAutoInjection
this.perforResaccountRepository = perforResaccountRepository; this.perforResaccountRepository = perforResaccountRepository;
this.perforResbaiscnormRepository = perforResbaiscnormRepository; this.perforResbaiscnormRepository = perforResbaiscnormRepository;
this.perforCofdrugtypeRepository = perforCofdrugtypeRepository; this.perforCofdrugtypeRepository = perforCofdrugtypeRepository;
this.logManageService = logManageService;
} }
/// <summary> /// <summary>
...@@ -160,6 +163,7 @@ private void Save(List<PerSheet> perSheets, int allotId) ...@@ -160,6 +163,7 @@ private void Save(List<PerSheet> perSheets, int allotId)
{ {
foreach (var sheet in perSheets) foreach (var sheet in perSheets)
{ {
logManageService.WriteMsg("正在生成绩效", $"保存核算数据 - {sheet.SheetName}", allotId, "ReceiveMessage");
if (sheet.SheetType == SheetType.ComputeDoctorAccount) if (sheet.SheetType == SheetType.ComputeDoctorAccount)
{ {
SaveComputeDoctorAccount(sheet, allotId); SaveComputeDoctorAccount(sheet, allotId);
...@@ -187,25 +191,31 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid) ...@@ -187,25 +191,31 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
//合并科室收入、支出 //合并科室收入、支出
var incomeconfs = perforCofincomeRepository.GetEntities(); var incomeconfs = perforCofincomeRepository.GetEntities();
var economicCompute = new PerSheetDataComputeEconomic(); var economicCompute = new PerSheetDataComputeEconomic();
logManageService.WriteMsg("正在生成绩效", "计算科室经济核算汇总表", allotid, "ReceiveMessage");
var mergeResult = economicCompute.MergeCompute(excel, incomeconfs); var mergeResult = economicCompute.MergeCompute(excel, incomeconfs);
//一次计算 //一次计算
logManageService.WriteMsg("正在生成绩效", "计算科室经济核算汇总表 -- 第一次计算", allotid, "ReceiveMessage");
var onceEconomic = economicCompute.OnceCompute(mergeResult); var onceEconomic = economicCompute.OnceCompute(mergeResult);
//二次计算 //二次计算
logManageService.WriteMsg("正在生成绩效", "计算科室经济核算汇总表 -- 第二次计算", allotid, "ReceiveMessage");
var twiceEconomicResult = economicCompute.TwiceCompute(onceEconomic); var twiceEconomicResult = economicCompute.TwiceCompute(onceEconomic);
twiceEconomicResult.Sheet.SheetType = SheetType.ComputeEconomic; twiceEconomicResult.Sheet.SheetType = SheetType.ComputeEconomic;
perSheet.Add(twiceEconomicResult.Sheet); perSheet.Add(twiceEconomicResult.Sheet);
logManageService.WriteMsg("正在生成绩效", "计算科室经济核算汇总表 -- 计算完成", allotid, "ReceiveMessage");
//工作量 //工作量
var workloadCompute = new PerSheetDataComputeWorkload(); var workloadCompute = new PerSheetDataComputeWorkload();
var workload1 = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.Workload && t.SheetName.Contains("医生组")); var workload1 = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.Workload && t.SheetName.Contains("医生组"));
workload1.SheetName = "医生组工作量绩效测算表"; workload1.SheetName = "医生组工作量绩效测算表";
logManageService.WriteMsg("正在生成绩效", "获取药品费用分割比例", allotid, "ReceiveMessage");
var confs = GetDrugConfig(excel, allotid); var confs = GetDrugConfig(excel, allotid);
//医生组 一次计算 //医生组 一次计算
//var onceWorkload1 = workloadCompute.OnceCompute(workload1, confs); //var onceWorkload1 = workloadCompute.OnceCompute(workload1, confs);
//医生组 二次计算 //医生组 二次计算
logManageService.WriteMsg("正在生成绩效", "医生组工作量计算", allotid, "ReceiveMessage");
var twiceWorkloadResult1 = workloadCompute.TwiceCompute(workload1); var twiceWorkloadResult1 = workloadCompute.TwiceCompute(workload1);
twiceWorkloadResult1.Sheet.SheetType = SheetType.ComputeDoctorWorkload; twiceWorkloadResult1.Sheet.SheetType = SheetType.ComputeDoctorWorkload;
...@@ -216,6 +226,7 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid) ...@@ -216,6 +226,7 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
//护理组 一次计算 //护理组 一次计算
//var onceWorkload2 = workloadCompute.OnceCompute(workload2); //var onceWorkload2 = workloadCompute.OnceCompute(workload2);
//护理组 二次计算 //护理组 二次计算
logManageService.WriteMsg("正在生成绩效", "护理组工作量计算", allotid, "ReceiveMessage");
var twiceWorkloadResult2 = workloadCompute.TwiceCompute(workload2); var twiceWorkloadResult2 = workloadCompute.TwiceCompute(workload2);
twiceWorkloadResult2.Sheet.SheetType = SheetType.ComputeNurseWorkload; twiceWorkloadResult2.Sheet.SheetType = SheetType.ComputeNurseWorkload;
...@@ -224,8 +235,10 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid) ...@@ -224,8 +235,10 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
var deptAccounting = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.AccountBasic); var deptAccounting = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.AccountBasic);
var dataList = deptAccounting.PerData.Select(t => (PerDataAccountBaisc)t); var dataList = deptAccounting.PerData.Select(t => (PerDataAccountBaisc)t);
logManageService.WriteMsg("正在生成绩效", "计算保底绩效参考标准", allotid, "ReceiveMessage");
var baiscnormList = ComputeMinimum(dataList, twiceEconomicResult.PerData, twiceWorkloadResult1.PerData, twiceWorkloadResult2.PerData, allotid); var baiscnormList = ComputeMinimum(dataList, twiceEconomicResult.PerData, twiceWorkloadResult1.PerData, twiceWorkloadResult2.PerData, allotid);
logManageService.WriteMsg("正在生成绩效", "计算科室绩效", allotid, "ReceiveMessage");
var sheet = Compute(dataList, twiceEconomicResult.PerData, twiceWorkloadResult1.PerData, twiceWorkloadResult2.PerData, baiscnormList); var sheet = Compute(dataList, twiceEconomicResult.PerData, twiceWorkloadResult1.PerData, twiceWorkloadResult2.PerData, baiscnormList);
perSheet.AddRange(sheet); perSheet.AddRange(sheet);
......
...@@ -22,6 +22,7 @@ public class ResultComputeService : IAutoInjection ...@@ -22,6 +22,7 @@ public class ResultComputeService : IAutoInjection
private readonly PerforResbaiscnormRepository perforResbaiscnormRepository; private readonly PerforResbaiscnormRepository perforResbaiscnormRepository;
private readonly PerforResspecialunitRepository perforResspecialunitRepository; private readonly PerforResspecialunitRepository perforResspecialunitRepository;
private readonly PerforImaccountbasicRepository perforImaccountbasicRepository; private readonly PerforImaccountbasicRepository perforImaccountbasicRepository;
private readonly LogManageService logManageService;
public ResultComputeService( public ResultComputeService(
PerforImemployeeRepository perforImEmployeeRepository, PerforImemployeeRepository perforImEmployeeRepository,
...@@ -29,7 +30,8 @@ public class ResultComputeService : IAutoInjection ...@@ -29,7 +30,8 @@ public class ResultComputeService : IAutoInjection
PerforResbaiscnormRepository perforResbaiscnormRepository, PerforResbaiscnormRepository perforResbaiscnormRepository,
PerforResspecialunitRepository perforResspecialunitRepository, PerforResspecialunitRepository perforResspecialunitRepository,
PerforImaccountbasicRepository perforImaccountbasicRepository, PerforImaccountbasicRepository perforImaccountbasicRepository,
BaiscNormService baiscNormService, ComputeDirector computeDirector) BaiscNormService baiscNormService, ComputeDirector computeDirector,
LogManageService logManageService)
{ {
this.baiscNormService = baiscNormService; this.baiscNormService = baiscNormService;
this.computeDirector = computeDirector; this.computeDirector = computeDirector;
...@@ -38,6 +40,7 @@ public class ResultComputeService : IAutoInjection ...@@ -38,6 +40,7 @@ public class ResultComputeService : IAutoInjection
this.perforResbaiscnormRepository = perforResbaiscnormRepository; this.perforResbaiscnormRepository = perforResbaiscnormRepository;
this.perforResspecialunitRepository = perforResspecialunitRepository; this.perforResspecialunitRepository = perforResspecialunitRepository;
this.perforImaccountbasicRepository = perforImaccountbasicRepository; this.perforImaccountbasicRepository = perforImaccountbasicRepository;
this.logManageService = logManageService;
} }
/// <summary> /// <summary>
...@@ -52,12 +55,14 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee ...@@ -52,12 +55,14 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
List<ComputeEmployee> computeEmployees = Mapper.Map<List<ComputeEmployee>>(empolyeeList); List<ComputeEmployee> computeEmployees = Mapper.Map<List<ComputeEmployee>>(empolyeeList);
logManageService.WriteMsg("正在生成绩效", "临床科室主任、临床科室副主任、临床科室护士长 最终绩效数据计算", allot.ID, "ReceiveMessage");
var computResult = computeDirector.Compute(computeEmployees, accountbasicList, allot); var computResult = computeDirector.Compute(computeEmployees, accountbasicList, allot);
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值) //计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
List<res_baiscnorm> baiscnormList = new List<res_baiscnorm>(); List<res_baiscnorm> baiscnormList = new List<res_baiscnorm>();
baiscNormService.ComputeAvg(baiscnormList, accountbasicList, computResult); baiscNormService.ComputeAvg(baiscnormList, accountbasicList, computResult);
baiscNormService.DocterNurseBaiscnorm(baiscnormList, accountbasicList, perSheets); baiscNormService.DocterNurseBaiscnorm(baiscnormList, accountbasicList, perSheets);
logManageService.WriteMsg("正在生成绩效", "院领导、业务中层、工勤人员 最终绩效数据计算", allot.ID, "ReceiveMessage");
var computResult2 = computeDirector.Compute(computeEmployees, allot, baiscnormList); var computResult2 = computeDirector.Compute(computeEmployees, allot, baiscnormList);
//计算 行政人员 平均值 //计算 行政人员 平均值
baiscNormService.ComputeOtherAvg(baiscnormList, computResult2, empolyeeList); baiscNormService.ComputeOtherAvg(baiscnormList, computResult2, empolyeeList);
...@@ -68,6 +73,7 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee ...@@ -68,6 +73,7 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
perforRescomputeRepository.AddRange(computes.ToArray()); perforRescomputeRepository.AddRange(computes.ToArray());
baiscnormList.ForEach(t => t.AllotID = allot.ID); baiscnormList.ForEach(t => t.AllotID = allot.ID);
logManageService.WriteMsg("正在生成绩效", "保存最终绩效数据", allot.ID, "ReceiveMessage");
perforResbaiscnormRepository.AddRange(baiscnormList.ToArray()); perforResbaiscnormRepository.AddRange(baiscnormList.ToArray());
return baiscnormList; return baiscnormList;
......
...@@ -24,7 +24,7 @@ public class AllotService : IAutoInjection ...@@ -24,7 +24,7 @@ public class AllotService : IAutoInjection
private ImportDataService importDataService; private ImportDataService importDataService;
private ProcessComputService processComputService; private ProcessComputService processComputService;
private ResultComputeService resultComputeService; private ResultComputeService resultComputeService;
private PerforLogdbugRepository logdbug; //private PerforLogdbugRepository logdbug;
private ConfigService configService; private ConfigService configService;
private IHostingEnvironment _evn; private IHostingEnvironment _evn;
...@@ -35,7 +35,8 @@ public class AllotService : IAutoInjection ...@@ -35,7 +35,8 @@ public class AllotService : IAutoInjection
private PerforPeragainallotRepository _againallotRepository; private PerforPeragainallotRepository _againallotRepository;
private PerforLogcheckRepository perforLogcheckRepository; private PerforLogcheckRepository perforLogcheckRepository;
private readonly PerforHospitalRepository perforHospitalRepository; private readonly PerforHospitalRepository perforHospitalRepository;
private readonly IHubContext<AllotLogHub> hubContext; //private readonly IHubContext<AllotLogHub> hubContext;
private readonly LogManageService logManageService;
public AllotService(PerforPerallotRepository allotRepository, public AllotService(PerforPerallotRepository allotRepository,
BaiscNormService baiscNormService, BaiscNormService baiscNormService,
...@@ -44,14 +45,15 @@ public class AllotService : IAutoInjection ...@@ -44,14 +45,15 @@ public class AllotService : IAutoInjection
ProcessComputService processComputService, ProcessComputService processComputService,
ResultComputeService resultComputeService, ResultComputeService resultComputeService,
ConfigService configService, ConfigService configService,
PerforLogdbugRepository logdbug, //PerforLogdbugRepository logdbug,
IHostingEnvironment evn, ILogger<AllotService> logger, IHostingEnvironment evn, ILogger<AllotService> logger,
IEmailService emailService, IEmailService emailService,
IOptions<Application> options, IOptions<Application> options,
PerforPeragainallotRepository againallotRepository, PerforPeragainallotRepository againallotRepository,
PerforLogcheckRepository perforLogcheckRepository, PerforLogcheckRepository perforLogcheckRepository,
PerforHospitalRepository perforHospitalRepository, PerforHospitalRepository perforHospitalRepository,
IHubContext<AllotLogHub> hubContext) //IHubContext<AllotLogHub> hubContext
LogManageService logManageService)
{ {
_allotRepository = allotRepository; _allotRepository = allotRepository;
_againallotRepository = againallotRepository; _againallotRepository = againallotRepository;
...@@ -65,10 +67,11 @@ public class AllotService : IAutoInjection ...@@ -65,10 +67,11 @@ public class AllotService : IAutoInjection
this.emailService = emailService; this.emailService = emailService;
this.options = options; this.options = options;
this.configService = configService; this.configService = configService;
this.logdbug = logdbug; //this.logdbug = logdbug;
this.perforLogcheckRepository = perforLogcheckRepository; this.perforLogcheckRepository = perforLogcheckRepository;
this.perforHospitalRepository = perforHospitalRepository; this.perforHospitalRepository = perforHospitalRepository;
this.hubContext = hubContext; //this.hubContext = hubContext;
this.logManageService = logManageService;
} }
#region 基础功能 #region 基础功能
...@@ -212,41 +215,52 @@ public void Generate(per_allot allot, string mail) ...@@ -212,41 +215,52 @@ public void Generate(per_allot allot, string mail)
DateTime time = DateTime.Now; DateTime time = DateTime.Now;
try try
{ {
hubContext.Clients.Group("aaaa").SendAsync("ReceiveMessage", "绩效开始执行", "绩效开始执行"); //hubContext.Clients.Group("aaaa").SendAsync("ReceiveMessage", "绩效开始执行", "绩效开始执行");
logdbug.Add(allot.ID, "绩效开始执行", JsonHelper.Serialize(allot)); //logdbug.Add(allot.ID, "绩效开始执行", JsonHelper.Serialize(allot));
logManageService.WriteMsg("绩效开始执行", JsonHelper.Serialize(allot), allot.ID, "ReceiveMessage", true);
configService.Clear(allot.ID); configService.Clear(allot.ID);
UpdateAllotStates(allot.ID, (int)AllotStates.InCheckData, EnumHelper.GetDescription(AllotStates.InCheckData));
// 导出数据 // 导出数据
var excel = importDataService.ReadDataAndSave(allot); var excel = importDataService.ReadDataAndSave(allot);
UpdateAllotStates(allot.ID, (int)AllotStates.InCheckData, EnumHelper.GetDescription(AllotStates.InCheckData));
if (!checkDataService.Check(excel, allot)) if (!checkDataService.Check(excel, allot))
{ {
UpdateAllotStates(allot.ID, (int)AllotStates.CheckFail, EnumHelper.GetDescription(AllotStates.CheckFail)); UpdateAllotStates(allot.ID, (int)AllotStates.CheckFail, EnumHelper.GetDescription(AllotStates.CheckFail));
SendEmail(allot, mail, 3, time); SendEmail(allot, mail, 3, time);
logdbug.Add(allot.ID, "绩效数据校验失败", JsonHelper.Serialize(allot)); //logdbug.Add(allot.ID, "绩效数据校验失败", JsonHelper.Serialize(allot));
logManageService.WriteMsg("绩效数据校验失败", JsonHelper.Serialize(allot), allot.ID, "ReceiveMessage", true);
return; return;
} }
UpdateAllotStates(allot.ID, (int)AllotStates.InGenerate, EnumHelper.GetDescription(AllotStates.InGenerate)); UpdateAllotStates(allot.ID, (int)AllotStates.InGenerate, EnumHelper.GetDescription(AllotStates.InGenerate));
// 计算合并数据 // 计算合并数据
logdbug.Add(allot.ID, "计算合并数据", JsonHelper.Serialize(allot)); //logdbug.Add(allot.ID, "计算合并数据", JsonHelper.Serialize(allot));
logManageService.WriteMsg("正在生成绩效", "计算合并数据", allot.ID, "ReceiveMessage", true);
List<PerSheet> list = processComputService.MergeAndSave(excel, allot); List<PerSheet> list = processComputService.MergeAndSave(excel, allot);
//var baiscnorm = baiscNormService.NurseBaiscnorm(list); //var baiscnorm = baiscNormService.NurseBaiscnorm(list);
//logdbug.Add(allot.ID, "护士平均绩效", JsonHelper.Serialize(baiscnorm)); //logdbug.Add(allot.ID, "护士平均绩效", JsonHelper.Serialize(baiscnorm));
// 计算最总数据 // 计算最总数据
logdbug.Add(allot.ID, "绩效结果计算数据开始", ""); //logdbug.Add(allot.ID, "绩效结果计算数据开始", "");
logManageService.WriteMsg("正在生成绩效", "计算最终绩效数据", allot.ID, "ReceiveMessage", true);
var baiscnormList = resultComputeService.Compute(allot, excel, list); var baiscnormList = resultComputeService.Compute(allot, excel, list);
logManageService.WriteMsg("正在生成绩效", "计算最终特殊科室绩效数据", allot.ID, "ReceiveMessage", true);
resultComputeService.SpecialUnitCompute(excel, allot, baiscnormList); resultComputeService.SpecialUnitCompute(excel, allot, baiscnormList);
logManageService.WriteMsg("正在生成绩效", "保存最终特殊科室绩效数据", allot.ID, "ReceiveMessage", true);
UpdateAllotStates(allot.ID, (int)AllotStates.GenerateSucceed, EnumHelper.GetDescription(AllotStates.GenerateSucceed)); UpdateAllotStates(allot.ID, (int)AllotStates.GenerateSucceed, EnumHelper.GetDescription(AllotStates.GenerateSucceed));
//发送邮件 //发送邮件
SendEmail(allot, mail, 1, time); SendEmail(allot, mail, 1, time);
logdbug.Add(allot.ID, "绩效开始执行", "绩效生成成功"); //logdbug.Add(allot.ID, "绩效开始执行", "绩效生成成功");
logManageService.WriteMsg("绩效生成结束", "绩效生成成功", allot.ID, "ReceiveMessage", true);
} }
catch (Exception ex) catch (Exception ex)
{ {
UpdateAllotStates(allot.ID, (int)AllotStates.GenerateFail, EnumHelper.GetDescription(AllotStates.GenerateFail)); UpdateAllotStates(allot.ID, (int)AllotStates.GenerateFail, EnumHelper.GetDescription(AllotStates.GenerateFail));
SendEmail(allot, mail, 2, time); SendEmail(allot, mail, 2, time);
logdbug.Add(allot.ID, "绩效开始执行", ex.ToString()); //logdbug.Add(allot.ID, "绩效开始执行", ex.ToString());
logManageService.WriteMsg("绩效生成失败", ex.ToString(), allot.ID, "ReceiveMessage", true);
//throw ex; //throw ex;
} }
} }
......
...@@ -13,6 +13,7 @@ namespace Performance.Services ...@@ -13,6 +13,7 @@ namespace Performance.Services
{ {
public class ConfigService : IAutoInjection public class ConfigService : IAutoInjection
{ {
#region
private PerforCofdirectorRepository _directorRepository; private PerforCofdirectorRepository _directorRepository;
private PerforCofdrugpropRepository _drugpropRepository; private PerforCofdrugpropRepository _drugpropRepository;
private PerforCofincomeRepository _incomeRepository; private PerforCofincomeRepository _incomeRepository;
...@@ -22,7 +23,8 @@ public class ConfigService : IAutoInjection ...@@ -22,7 +23,8 @@ public class ConfigService : IAutoInjection
private PerforPerallotRepository perforPerAllotRepository; private PerforPerallotRepository perforPerAllotRepository;
private PerforPeragainallotRepository perforPeragainallotRepository; private PerforPeragainallotRepository perforPeragainallotRepository;
private PerforHospitalRepository perforHospitalRepository; private PerforHospitalRepository perforHospitalRepository;
private PerforLogdbugRepository logdbug; //private PerforLogdbugRepository logdbug;
private readonly LogManageService logManageService;
public ConfigService(PerforCofdirectorRepository cofdirectorRepository, public ConfigService(PerforCofdirectorRepository cofdirectorRepository,
PerforCofdrugpropRepository cofdrugpropRepository, PerforCofdrugpropRepository cofdrugpropRepository,
PerforCofincomeRepository cofincomeRepository, PerforCofincomeRepository cofincomeRepository,
...@@ -32,7 +34,8 @@ public class ConfigService : IAutoInjection ...@@ -32,7 +34,8 @@ public class ConfigService : IAutoInjection
PerforPerallotRepository perforPerAllotRepository, PerforPerallotRepository perforPerAllotRepository,
PerforPeragainallotRepository perforPeragainallotRepository, PerforPeragainallotRepository perforPeragainallotRepository,
PerforHospitalRepository perforHospitalRepository, PerforHospitalRepository perforHospitalRepository,
PerforLogdbugRepository logdbug) //PerforLogdbugRepository logdbug
LogManageService logManageService)
{ {
this._directorRepository = cofdirectorRepository; this._directorRepository = cofdirectorRepository;
this._drugpropRepository = cofdrugpropRepository; this._drugpropRepository = cofdrugpropRepository;
...@@ -43,8 +46,10 @@ public class ConfigService : IAutoInjection ...@@ -43,8 +46,10 @@ public class ConfigService : IAutoInjection
this.perforPerAllotRepository = perforPerAllotRepository; this.perforPerAllotRepository = perforPerAllotRepository;
this.perforPeragainallotRepository = perforPeragainallotRepository; this.perforPeragainallotRepository = perforPeragainallotRepository;
this.perforHospitalRepository = perforHospitalRepository; this.perforHospitalRepository = perforHospitalRepository;
this.logdbug = logdbug; //this.logdbug = logdbug;
this.logManageService = logManageService;
} }
#endregion
#region cof_director 规模/效率绩效配置 #region cof_director 规模/效率绩效配置
/// <summary> /// <summary>
...@@ -343,16 +348,6 @@ public bool WorkDelete(WorkyearRequest request) ...@@ -343,16 +348,6 @@ public bool WorkDelete(WorkyearRequest request)
} }
#endregion #endregion
/// <summary>
/// 清楚无效数据
/// </summary>
/// <param name="allotId"></param>
public void Clear(int allotId)
{
var count = _directorRepository.DeleteData(allotId);
logdbug.Add(allotId, "清理无效数据", $"受影响行数:{count}");
}
#region Copy #region Copy
/// <summary> /// <summary>
/// 复制报表基础配置 /// 复制报表基础配置
...@@ -486,6 +481,17 @@ public bool AgainDelete(CofAgainRequest request) ...@@ -486,6 +481,17 @@ public bool AgainDelete(CofAgainRequest request)
} }
#endregion #endregion
#region 清楚无效数据 Clear
/// <summary>
/// 清楚无效数据
/// </summary>
/// <param name="allotId"></param>
public void Clear(int allotId)
{
var count = _directorRepository.DeleteData(allotId);
//logdbug.Add(allotId, "清理无效数据", $"受影响行数:{count}");
logManageService.WriteMsg("清理无效数据", $"清理无效数据,受影响行数:{count}", 0, "", true);
}
/// <summary> /// <summary>
/// 清除二次绩效中无效数据 /// 清除二次绩效中无效数据
...@@ -494,7 +500,9 @@ public bool AgainDelete(CofAgainRequest request) ...@@ -494,7 +500,9 @@ public bool AgainDelete(CofAgainRequest request)
public void ClearAgain(int againId) public void ClearAgain(int againId)
{ {
var count = _directorRepository.DelAgain(againId); var count = _directorRepository.DelAgain(againId);
logdbug.Add(againId, "清除二次绩效中无效数据", $"受影响行数:{count}"); //logdbug.Add(againId, "清除二次绩效中无效数据", $"受影响行数:{count}");
logManageService.WriteMsg("清理无效数据", $"清除二次绩效中无效数据,受影响行数:{count}", 0, "", true);
} }
#endregion
} }
} }
...@@ -19,6 +19,11 @@ public override Task OnDisconnectedAsync(Exception exception) ...@@ -19,6 +19,11 @@ public override Task OnDisconnectedAsync(Exception exception)
var groupName = "aaaa"; var groupName = "aaaa";
//2 删除数据库中用户分组数据 //2 删除数据库中用户分组数据
if (RedisHelper.HExists("MyGroup", groupName))
{
var connectionId = Context.ConnectionId;
RedisHelper.HDel("MyGroup", groupName);
}
//3 分组中删除用户 //3 分组中删除用户
Groups.RemoveFromGroupAsync(Context.ConnectionId, groupName); Groups.RemoveFromGroupAsync(Context.ConnectionId, groupName);
...@@ -27,10 +32,16 @@ public override Task OnDisconnectedAsync(Exception exception) ...@@ -27,10 +32,16 @@ public override Task OnDisconnectedAsync(Exception exception)
public async Task AddGroup(string token, string groupName) public async Task AddGroup(string token, string groupName)
{ {
if (!RedisHelper.HExists("MyGroup", groupName))
{
//1 向数据库中插入用户及分组信息 //1 向数据库中插入用户及分组信息
var connectionId = Context.ConnectionId;
RedisHelper.HSet("MyGroup", groupName, connectionId);
//2 将用户插入分组 //2 将用户插入分组
await Groups.AddToGroupAsync(Context.ConnectionId, groupName); await Groups.AddToGroupAsync(Context.ConnectionId, groupName);
} }
} }
}
} }
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.SignalR;
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.Services
{
public class LogManageService : IAutoInjection
{
private readonly IHubContext<AllotLogHub> hubContext;
private PerforLogdbugRepository logdbug;
public LogManageService(IHubContext<AllotLogHub> hubContext,
PerforLogdbugRepository logdbug)
{
this.hubContext = hubContext;
this.logdbug = logdbug;
}
/// <summary>
///
/// </summary>
/// <param name="tag">标签</param>
/// <param name="message">内容</param>
/// <param name="allotId">绩效Id</param>
/// <param name="method">方法名称</param>
public void WriteMsg(string tag, string message, int allotId, string method, bool isDebug = false)
{
hubContext.Clients.Group(allotId.ToString()).SendAsync(method, tag, message);
if (isDebug)
{
logdbug.Add(allotId, tag, message);
}
}
}
}
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