第二稿

parent 2a040098
...@@ -30,21 +30,15 @@ public class ImportDataService : IAutoInjection ...@@ -30,21 +30,15 @@ public class ImportDataService : IAutoInjection
{ {
private readonly IOptions<AppConnection> _options; private readonly IOptions<AppConnection> _options;
private readonly PerSheetService _perSheetService; private readonly PerSheetService _perSheetService;
private readonly PerforPerallotRepository _perforPerallotRepository;
private readonly PerforPersheetRepository _perforPersheetRepository;
private readonly LogManageService _logManageService; private readonly LogManageService _logManageService;
public ImportDataService( public ImportDataService(
IOptions<AppConnection> options, IOptions<AppConnection> options,
PerSheetService perSheetService, PerSheetService perSheetService,
PerforPerallotRepository perforPerallotRepository,
PerforPersheetRepository perforPersheetRepository,
LogManageService logManageService) LogManageService logManageService)
{ {
_options = options; _options = options;
_perSheetService = perSheetService; _perSheetService = perSheetService;
_perforPerallotRepository = perforPerallotRepository;
_perforPersheetRepository = perforPersheetRepository;
_logManageService = logManageService; _logManageService = logManageService;
} }
...@@ -89,7 +83,11 @@ private PerExcel Import(per_allot allot) ...@@ -89,7 +83,11 @@ 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);
_logManageService.WriteMsg("准备读取文件", $"正在准备读取“{sheet.SheetName}”", 1, allot.ID, "ReceiveMessage", true); if (SheetType.Unidentifiable != sheetType)
_logManageService.WriteMsg("准备读取文件", $"正在准备读取“{sheet.SheetName}”", 1, allot.ID, "ReceiveMessage", true);
else
_logManageService.WriteMsg("准备读取文件", $"忽略文件“{sheet.SheetName}”", 1, allot.ID, "ReceiveMessage", true);
try try
{ {
tasks.Add(Task.Factory.StartNew(() => tasks.Add(Task.Factory.StartNew(() =>
...@@ -132,48 +130,51 @@ private PerExcel Import(per_allot allot) ...@@ -132,48 +130,51 @@ private PerExcel Import(per_allot allot)
private bool Save(PerExcel excel, int allotId) private bool Save(PerExcel excel, int allotId)
{ {
var tasks = new List<Task>(); var tasks = new List<Task>();
foreach (var sheet in excel.PerSheet) using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{ {
_logManageService.WriteMsg("准备保存数据", $"正在准备保存数据“{sheet.SheetName}”", 1, allotId, "ReceiveMessage", true); foreach (var sheet in excel.PerSheet)
{
_logManageService.WriteMsg("准备保存数据", $"正在准备保存数据“{sheet.SheetName}”", 1, allotId, "ReceiveMessage", true);
var allot = _perforPerallotRepository.GetEntity(t => t.ID == allotId); var allot = connection.Get<per_allot>(allotId);
var allotList = _perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId); var allotList = connection.Query<per_allot>("select * from per_allot where HospitalId = @HospitalId", new { allot.HospitalId }).ToList();
var sheets = _perforPersheetRepository.GetEntities(w => w.AllotID == allotId && w.SheetType.HasValue); var sheets = connection.Query<per_sheet>("select * from per_sheet where AllotID = @allotId", new { allotId }).ToList();
var task = Task.Factory.StartNew(() => var task = Task.Factory.StartNew(() =>
{
if (sheet.SheetType == SheetType.Employee)
{
var imsheetid = SaveEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.LogisticsEmployee)
{
var imsheetid = SaveLogisticsEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.ClinicEmployee)
{
var imsheetid = SaveClinicEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.AccountBasic)
{
var imsheetid = SaveAccountBasic(sheet, allot, sheets);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.SpecialUnit)
{
var imsheetid = SaveSpecialUnit(sheet, allot);
SaveHeader(sheet, allot, imsheetid);
}
else
{ {
var imsheetid = SaveCommon(sheet, allot, sheets); if (sheet.SheetType == SheetType.Employee)
SaveHeader(sheet, allot, imsheetid); {
} var imsheetid = SaveEmployee(sheet, allot, allotList);
}); SaveHeader(sheet, allot, imsheetid);
tasks.Add(task); }
else if (sheet.SheetType == SheetType.LogisticsEmployee)
{
var imsheetid = SaveLogisticsEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.ClinicEmployee)
{
var imsheetid = SaveClinicEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.AccountBasic)
{
var imsheetid = SaveAccountBasic(sheet, allot, sheets);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.SpecialUnit)
{
var imsheetid = SaveSpecialUnit(sheet, allot);
SaveHeader(sheet, allot, imsheetid);
}
else
{
var imsheetid = SaveCommon(sheet, allot, sheets);
SaveHeader(sheet, allot, imsheetid);
}
});
tasks.Add(task);
}
} }
_logManageService.WriteMsg("保存基础数据", $"基础数据保存中...当前操作需要一点时间,请耐心等待", 1, allotId, "ReceiveMessage", true); _logManageService.WriteMsg("保存基础数据", $"基础数据保存中...当前操作需要一点时间,请耐心等待", 1, allotId, "ReceiveMessage", true);
......
...@@ -309,7 +309,6 @@ public per_allot UpdateAllotShowFormula(int allotId) ...@@ -309,7 +309,6 @@ public per_allot UpdateAllotShowFormula(int allotId)
/// <param name="user"></param> /// <param name="user"></param>
public void Generate(per_allot allot) public void Generate(per_allot allot)
{ {
DateTime time = DateTime.Now;
try try
{ {
logManageService.WriteMsg("绩效开始执行", $"正在生成{allot.Year}-{allot.Month.ToString().PadLeft(2, '0')}月份绩效!", 1, allot.ID, "ReceiveMessage", true); logManageService.WriteMsg("绩效开始执行", $"正在生成{allot.Year}-{allot.Month.ToString().PadLeft(2, '0')}月份绩效!", 1, allot.ID, "ReceiveMessage", true);
......
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