Commit eea7bc11 by lcx

参数修改

parent 932753f9
......@@ -1208,6 +1208,11 @@
数据开始行
</summary>
</member>
<member name="P:Performance.DtoModels.PerSheetPoint.DataFirstCellNum">
<summary>
数据开始列
</summary>
</member>
<member name="P:Performance.DtoModels.PerSheetPoint.TotalCellNum">
<summary>
汇总列
......
......@@ -10,6 +10,7 @@
using Performance.DtoModels.AppSettings;
using Performance.Infrastructure;
using Performance.Services;
using Performance.Services.ExtractExcelService;
using System;
using System.Collections.Generic;
using System.IO;
......@@ -23,17 +24,20 @@ public class ExtractController : Controller
{
private readonly DFExtractService extractService;
private readonly HospitalService hospitalService;
private readonly ExtractService extractService1;
private readonly WebapiUrl url;
private readonly ILogger<ExtractController> logger;
private readonly IHostingEnvironment evn;
public ExtractController(DFExtractService extractService,
HospitalService hospitalService,
ExtractService extractService1,
IOptions<WebapiUrl> url,
ILogger<ExtractController> logger,
IHostingEnvironment evn)
{
this.extractService = extractService;
this.hospitalService = hospitalService;
this.extractService1 = extractService1;
this.url = url.Value;
this.logger = logger;
this.evn = evn;
......@@ -149,7 +153,8 @@ public void ExtractData([FromForm] IFormCollection form, int allotId, int hospit
#endregion
//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 保存文件到网站下
......
......@@ -20,7 +20,7 @@ public class ExtractService : IAutoInjection
private readonly PerSheetService perSheetService;
private readonly PerforHospitalRepository hospitalRepository;
private readonly PerforPerallotRepository perallotRepository;
private readonly PerforcollectdataRepository perforcollectdataRepository;
private readonly PerforcollectdataRepository collectdataRepository;
public ExtractService(
ILogger<ExtractService> logger,
......@@ -30,7 +30,7 @@ public class ExtractService : IAutoInjection
PerSheetService perSheetService,
PerforHospitalRepository hospitalRepository,
PerforPerallotRepository perallotRepository,
PerforcollectdataRepository perforcollectdataRepository
PerforcollectdataRepository collectdataRepository
)
{
this.logger = logger;
......@@ -40,7 +40,7 @@ PerforcollectdataRepository perforcollectdataRepository
this.perSheetService = perSheetService;
this.hospitalRepository = hospitalRepository;
this.perallotRepository = perallotRepository;
this.perforcollectdataRepository = perforcollectdataRepository;
this.collectdataRepository = collectdataRepository;
}
/// <summary>
......@@ -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 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);
WriteDataToFile(templateFilePath, extractFilePath, dict);
return templateFilePath;
}
catch (Exception ex)
{
......@@ -87,7 +90,7 @@ public string Main(int allotId, int hospitalId, string email, string groupName =
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))
throw new PerformanceException("");
......@@ -103,10 +106,12 @@ private void WriteDataToFile(string templateFile, string extractFile)
var sheet = workbook.GetSheetAt(sheetIndex);
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);
customer.GetType();
customer.WriteSheetData(sheet, point, sheetType, exdict);
}
using (FileStream file = new FileStream(extractFile, FileMode.OpenOrCreate))
......@@ -115,16 +120,6 @@ private void WriteDataToFile(string templateFile, string extractFile)
}
}
private void WriteToTemplate()
{
}
private void WriteToAllotFile()
{
}
/// <summary>
/// 标准数据格式, 匹配科室字典
/// </summary>
......
using System;
using NPOI.SS.UserModel;
using Performance.DtoModels;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
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.Text;
......@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
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
{
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)))
{
......
using System;
using NPOI.SS.UserModel;
using Performance.DtoModels;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -6,6 +8,6 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
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
{
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;
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;
var headers = modelItems.Select(t => new ExcelHeader
......
......@@ -10,12 +10,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
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;
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;
var headers = modelItems.Select(t => new ExcelHeader
......
using System;
using NPOI.SS.UserModel;
using Performance.DtoModels;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -6,5 +8,9 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
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
{
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;
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;
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