Commit eea7bc11 by lcx

参数修改

parent 932753f9
...@@ -1208,6 +1208,11 @@ ...@@ -1208,6 +1208,11 @@
数据开始行 数据开始行
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.PerSheetPoint.DataFirstCellNum">
<summary>
数据开始列
</summary>
</member>
<member name="P:Performance.DtoModels.PerSheetPoint.TotalCellNum"> <member name="P:Performance.DtoModels.PerSheetPoint.TotalCellNum">
<summary> <summary>
汇总列 汇总列
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
using Performance.DtoModels.AppSettings; using Performance.DtoModels.AppSettings;
using Performance.Infrastructure; using Performance.Infrastructure;
using Performance.Services; using Performance.Services;
using Performance.Services.ExtractExcelService;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
...@@ -23,17 +24,20 @@ public class ExtractController : Controller ...@@ -23,17 +24,20 @@ public class ExtractController : Controller
{ {
private readonly DFExtractService extractService; private readonly DFExtractService extractService;
private readonly HospitalService hospitalService; private readonly HospitalService hospitalService;
private readonly ExtractService extractService1;
private readonly WebapiUrl url; private readonly WebapiUrl url;
private readonly ILogger<ExtractController> logger; private readonly ILogger<ExtractController> logger;
private readonly IHostingEnvironment evn; private readonly IHostingEnvironment evn;
public ExtractController(DFExtractService extractService, public ExtractController(DFExtractService extractService,
HospitalService hospitalService, HospitalService hospitalService,
ExtractService extractService1,
IOptions<WebapiUrl> url, IOptions<WebapiUrl> url,
ILogger<ExtractController> logger, ILogger<ExtractController> logger,
IHostingEnvironment evn) IHostingEnvironment evn)
{ {
this.extractService = extractService; this.extractService = extractService;
this.hospitalService = hospitalService; this.hospitalService = hospitalService;
this.extractService1 = extractService1;
this.url = url.Value; this.url = url.Value;
this.logger = logger; this.logger = logger;
this.evn = evn; this.evn = evn;
...@@ -149,7 +153,8 @@ public void ExtractData([FromForm] IFormCollection form, int allotId, int hospit ...@@ -149,7 +153,8 @@ public void ExtractData([FromForm] IFormCollection form, int allotId, int hospit
#endregion #endregion
//string filePath = newExtractService.ExtractData(allotId, request.Email, hospitalId); //string filePath = newExtractService.ExtractData(allotId, request.Email, hospitalId);
string filePath = extractService.ExtractData(allotId, email, hospitalId, "User" + userId, path); //抽取 //string filePath = extractService.ExtractData(allotId, email, hospitalId, "User" + userId, path); //抽取
string filePath = extractService1.Main(allotId, hospitalId, email, "User" + userId, path);
#region 保存文件到网站下 #region 保存文件到网站下
......
...@@ -20,7 +20,7 @@ public class ExtractService : IAutoInjection ...@@ -20,7 +20,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 perforcollectdataRepository; private readonly PerforcollectdataRepository collectdataRepository;
public ExtractService( public ExtractService(
ILogger<ExtractService> logger, ILogger<ExtractService> logger,
...@@ -30,7 +30,7 @@ public class ExtractService : IAutoInjection ...@@ -30,7 +30,7 @@ public class ExtractService : IAutoInjection
PerSheetService perSheetService, PerSheetService perSheetService,
PerforHospitalRepository hospitalRepository, PerforHospitalRepository hospitalRepository,
PerforPerallotRepository perallotRepository, PerforPerallotRepository perallotRepository,
PerforcollectdataRepository perforcollectdataRepository PerforcollectdataRepository collectdataRepository
) )
{ {
this.logger = logger; this.logger = logger;
...@@ -40,7 +40,7 @@ PerforcollectdataRepository perforcollectdataRepository ...@@ -40,7 +40,7 @@ PerforcollectdataRepository perforcollectdataRepository
this.perSheetService = perSheetService; this.perSheetService = perSheetService;
this.hospitalRepository = hospitalRepository; this.hospitalRepository = hospitalRepository;
this.perallotRepository = perallotRepository; this.perallotRepository = perallotRepository;
this.perforcollectdataRepository = perforcollectdataRepository; this.collectdataRepository = collectdataRepository;
} }
/// <summary> /// <summary>
...@@ -72,8 +72,11 @@ public string Main(int allotId, int hospitalId, string email, string groupName = ...@@ -72,8 +72,11 @@ public string Main(int allotId, int hospitalId, string email, string groupName =
var statesArray = new int[] { (int)AllotStates.GenerateSucceed, (int)AllotStates.Archive }; var statesArray = new int[] { (int)AllotStates.GenerateSucceed, (int)AllotStates.Archive };
var lastAllot = allots.Where(t => statesArray.Contains(t.States))?.OrderByDescending(t => t.Year)?.ThenByDescending(t => t.Month)?.First(); var lastAllot = allots.Where(t => statesArray.Contains(t.States))?.OrderByDescending(t => t.Year)?.ThenByDescending(t => t.Month)?.First();
//extractFilePath = lastAllot != null && !string.IsNullOrEmpty(filePath) ? "" : "";
var templateFilePath = ExtractHelper.GetExtractFile(hospitalId, ref extractFilePath, filePath); var templateFilePath = ExtractHelper.GetExtractFile(hospitalId, ref extractFilePath, filePath);
WriteDataToFile(templateFilePath, extractFilePath, dict);
return templateFilePath;
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -87,7 +90,7 @@ public string Main(int allotId, int hospitalId, string email, string groupName = ...@@ -87,7 +90,7 @@ public string Main(int allotId, int hospitalId, string email, string groupName =
return extractFilePath; return extractFilePath;
} }
private void WriteDataToFile(string templateFile, string extractFile) private void WriteDataToFile(string templateFile, string extractFile, Dictionary<ExDataDict, object> exdict)
{ {
if (!FileHelper.IsExistFile(templateFile) || !FileHelper.IsExistFile(extractFile)) if (!FileHelper.IsExistFile(templateFile) || !FileHelper.IsExistFile(extractFile))
throw new PerformanceException(""); throw new PerformanceException("");
...@@ -103,10 +106,12 @@ private void WriteDataToFile(string templateFile, string extractFile) ...@@ -103,10 +106,12 @@ private void WriteDataToFile(string templateFile, string extractFile)
var sheet = workbook.GetSheetAt(sheetIndex); var sheet = workbook.GetSheetAt(sheetIndex);
var sheetType = perSheetService.GetSheetType(sheet.SheetName); var sheetType = perSheetService.GetSheetType(sheet.SheetName);
var reader = PerSheetDataFactory.GetDataRead(sheetType)?.Point; if (sheetType == SheetType.Unidentifiable) continue;
var point = PerSheetDataFactory.GetDataRead(sheetType)?.Point;
var customer = factory.GetWriteData(sheetType); var customer = factory.GetWriteData(sheetType);
customer.GetType(); customer.WriteSheetData(sheet, point, sheetType, exdict);
} }
using (FileStream file = new FileStream(extractFile, FileMode.OpenOrCreate)) using (FileStream file = new FileStream(extractFile, FileMode.OpenOrCreate))
...@@ -115,16 +120,6 @@ private void WriteDataToFile(string templateFile, string extractFile) ...@@ -115,16 +120,6 @@ private void WriteDataToFile(string templateFile, string extractFile)
} }
} }
private void WriteToTemplate()
{
}
private void WriteToAllotFile()
{
}
/// <summary> /// <summary>
/// 标准数据格式, 匹配科室字典 /// 标准数据格式, 匹配科室字典
/// </summary> /// </summary>
......
using System; using NPOI.SS.UserModel;
using Performance.DtoModels;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
class AccountBasicDataWrite : ISheetDataWrite class AccountBasicDataWrite : ISheetDataWrite
{ {
public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict = null)
{
throw new NotImplementedException();
}
} }
} }
using System; using NPOI.SS.UserModel;
using Performance.DtoModels;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
class ClinicEmployeeDataWrite : ISheetDataWrite class ClinicEmployeeDataWrite : ISheetDataWrite
{ {
public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict = null)
{
throw new NotImplementedException();
}
} }
} }
...@@ -10,7 +10,7 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -10,7 +10,7 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
public class EmployeeDataWrite : ISheetDataWrite public class EmployeeDataWrite : ISheetDataWrite
{ {
public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data) public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict)
{ {
if (data is List<per_employee> employees && employees.Any(t => accountingUnits.Contains(t.UnitType))) if (data is List<per_employee> employees && employees.Any(t => accountingUnits.Contains(t.UnitType)))
{ {
......
using System; using NPOI.SS.UserModel;
using Performance.DtoModels;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -6,6 +8,6 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -6,6 +8,6 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
public interface ISheetDataWrite public interface ISheetDataWrite
{ {
void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict = null);
} }
} }
...@@ -10,12 +10,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -10,12 +10,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
public class IncomeDataWrite : ISheetDataWrite public class IncomeDataWrite : ISheetDataWrite
{ {
public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, List<ex_module> modules, List<ex_item> items) public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict = null)
{ {
var module = modules.FirstOrDefault(t => t.SheetType == (int)sheetType); var modules = exdict[ExDataDict.ExModule] as List<ex_module>;
var module = modules?.FirstOrDefault(t => t.SheetType == (int)sheetType);
if (module == null) return; if (module == null) return;
var modelItems = items.Where(t => t.ModuleId == module.Id); var items = exdict[ExDataDict.ExItem] as List<ex_item>;
var modelItems = items?.Where(t => t.ModuleId == module.Id);
if (modelItems == null || !modelItems.Any()) return; if (modelItems == null || !modelItems.Any()) return;
var headers = modelItems.Select(t => new ExcelHeader var headers = modelItems.Select(t => new ExcelHeader
......
...@@ -10,12 +10,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -10,12 +10,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
public class OtherIncomeDataWrite : ISheetDataWrite public class OtherIncomeDataWrite : ISheetDataWrite
{ {
public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, List<ex_module> modules, List<ex_item> items) public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict = null)
{ {
var module = modules.FirstOrDefault(t => t.SheetType == (int)sheetType); var modules = exdict[ExDataDict.ExModule] as List<ex_module>;
var module = modules?.FirstOrDefault(t => t.SheetType == (int)sheetType);
if (module == null) return; if (module == null) return;
var modelItems = items.Where(t => t.ModuleId == module.Id); var items = exdict[ExDataDict.ExItem] as List<ex_item>;
var modelItems = items?.Where(t => t.ModuleId == module.Id);
if (modelItems == null || !modelItems.Any()) return; if (modelItems == null || !modelItems.Any()) return;
var headers = modelItems.Select(t => new ExcelHeader var headers = modelItems.Select(t => new ExcelHeader
......
using System; using NPOI.SS.UserModel;
using Performance.DtoModels;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
class SpecialUnitDataWrite : ISheetDataWrite class SpecialUnitDataWrite : ISheetDataWrite
{ {
public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict = null)
{
throw new NotImplementedException();
}
} }
} }
...@@ -10,12 +10,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite ...@@ -10,12 +10,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{ {
public class WorkloadDataWrite : ISheetDataWrite public class WorkloadDataWrite : ISheetDataWrite
{ {
public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, List<ex_module> modules, List<ex_item> items) public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetType, object data, Dictionary<ExDataDict, object> exdict = null)
{ {
var module = modules.FirstOrDefault(t => t.SheetType == (int)sheetType); var modules = exdict[ExDataDict.ExModule] as List<ex_module>;
var module = modules?.FirstOrDefault(t => t.SheetType == (int)sheetType);
if (module == null) return; if (module == null) return;
var modelItems = items.Where(t => t.ModuleId == module.Id); var items = exdict[ExDataDict.ExItem] as List<ex_item>;
var modelItems = items?.Where(t => t.ModuleId == module.Id);
if (modelItems == null || !modelItems.Any()) return; if (modelItems == null || !modelItems.Any()) return;
var headers = modelItems.Select(t => new ExcelHeader var headers = modelItems.Select(t => new ExcelHeader
......
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