Commit 55456a86 by lcx

绩效核算科室来源,抽取bug调整

parent 4f22abef
......@@ -120,11 +120,11 @@ public void ExtractData([FromForm] IFormCollection form, int allotId, int hospit
var path = string.Empty;
#region 保存历史绩效文件
var file = ((FormFileCollection)form.Files).FirstOrDefault();
if (file == null)
if (form.Files == null || !form.Files.Any() || ((FormFileCollection)form.Files).FirstOrDefault() == null)
logger.LogInformation($"文件为空!");
else
{
var file = ((FormFileCollection)form.Files)?.FirstOrDefault();
var dpath = Path.Combine(evn.ContentRootPath, "Files", "HospitalAllot", $"{hospitalId}");
FileHelper.CreateDirectory(dpath);
......
......@@ -18,13 +18,15 @@ public class AssessService : IAutoInjection
private PerforAstempcolumnsRepository perforAstempcolumnsRepository;
private PerforPerallotRepository perforPerallotRepository;
private PerforImemployeeRepository perforImemployeeRepository;
private PerforImaccountbasicRepository perforImaccountbasicRepository;
public AssessService(PerforAsassessRepository perforAsassessRepository,
PerforAsdataRepository perforAsdataRepository,
PerforAscolumnsRepository perforAscolumnsRepository,
PerforAstempassessRepository perforAstempassessRepository,
PerforAstempcolumnsRepository perforAstempcolumnsRepository,
PerforPerallotRepository perforPerallotRepository,
PerforImemployeeRepository perforImemployeeRepository)
PerforImemployeeRepository perforImemployeeRepository,
PerforImaccountbasicRepository perforImaccountbasicRepository)
{
this.perforAsassessRepository = perforAsassessRepository;
this.perforAsdataRepository = perforAsdataRepository;
......@@ -33,6 +35,7 @@ public class AssessService : IAutoInjection
this.perforAstempcolumnsRepository = perforAstempcolumnsRepository;
this.perforPerallotRepository = perforPerallotRepository;
this.perforImemployeeRepository = perforImemployeeRepository;
this.perforImaccountbasicRepository = perforImaccountbasicRepository;
}
#region 考核类别
......@@ -344,7 +347,7 @@ public List<TitleValue> Department(AssessRequest request)
var result = new List<TitleValue>();
//取到该家医院下所有科室
var idList = perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId).Select(s => s.ID).ToList();
var department = perforImemployeeRepository.GetEntities(t => t.Department != "" && idList.Contains(t.AllotID.Value))?.Select(t => t.Department).Distinct().ToList();
var department = perforImaccountbasicRepository.GetEntities(t => t.Department != "" && idList.Contains(t.AllotID.Value))?.Select(t => t.Department).Distinct().ToList();
if (department != null && department.Count > 0)
{
......
......@@ -98,7 +98,7 @@ public string ExtractData(int allotId, string email, int hospitalId, string file
{
typeIds.AddRange(modules.Select(t => t.TypeId ?? 0));
items = perforExitemRepository.GetEntities(t => t.ModuleId.HasValue
&& modules.Where(m => m.SheetType != (int)SheetType.Income).Select(m => m.Id).Contains(t.ModuleId.Value));
&& modules.Select(m => m.Id).Contains(t.ModuleId.Value));
typeIds.AddRange(items?.Select(t => t.TypeId ?? 0) ?? new List<int>());
}
......@@ -110,10 +110,11 @@ public string ExtractData(int allotId, string email, int hospitalId, string file
var data = new List<ex_result>();
var scripts = perforExscriptRepository.GetEntities(t => typeIds.Contains(t.TypeId));
ClearHistData(allot);
var otherItems = items.Where(t => modules.Where(m => m.SheetType != (int)SheetType.Income).Select(m => m.Id).Contains(t.ModuleId.Value)).ToList();
if (scripts != null && scripts.Any())
{
data.AddRange(ExtractIncome(modules, scripts, configs, allot));
data.AddRange(ExtractItems(items, scripts, configs, allot, modules));
data.AddRange(ExtractItems(otherItems, scripts, configs, allot, modules));
data.AddRange(ExtractSpcial(specials, scripts, configs, allot));
}
......@@ -419,7 +420,7 @@ private List<ex_result> QueryData(sys_hospitalconfig config, per_allot allot, st
data = result.Select(t => new ex_result
{
Department = t.Department,
Category = t.Category,
Category = t.Category?.Trim(),
Fee = t.Value,
Source = source,
DatabaseType = config.DataBaseType,
......@@ -636,7 +637,9 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<Account
var itemList = items.Where(t => t.ModuleId == module.Id).ToList();
logger.LogInformation($"item有{itemList?.Count ?? 0}个.");
//if (itemList == null || !itemList.Any()) return;
if (itemList == null || !itemList.Any()) return;
WriteHeaderAndFactor(sheet, sheetRead, itemList, isNewTemp);
var extractdata = data.Where(t => t.AllotId == Allot.ID && t.Source == module.ModuleName);
if (extractdata == null || !extractdata.Any())
......@@ -653,7 +656,7 @@ private void WriteIncome(ISheet sheet, IPerSheetDataRead sheetRead, List<Account
//logger.LogInformation($"{sheet.SheetName}合计值为: " + allExtract.Sum(t => t.Value));
var category = allExtract.Select(t => t.Category).Distinct().ToList();
WriteIncomeHeaderAndFactor(sheet, sheetRead, category, isNewTemp);
//WriteIncomeHeaderAndFactor(sheet, sheetRead, category, isNewTemp);
WriteSheetData(sheet, sheetRead, unitList, allExtract, category, isNewTemp, true);
logger.LogInformation($"{sheet.SheetName}提取结束.");
}
......@@ -903,7 +906,7 @@ private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, Lis
if (cellItems == null || !cellItems.Any()) return;
#region 新增模板中不存在的列头
var lastcellIndex = isNewTemp ? sheetRead.Point.HeaderFirstCellNum.Value + 4 + 3 : head.LastCellNum;
var lastcellIndex = isNewTemp ? sheetRead.Point.HeaderFirstCellNum.Value + 4 : head.LastCellNum;
foreach (var item in cellItems)
{
var headcell = GetOrCreate(head, lastcellIndex);
......
......@@ -385,15 +385,15 @@ private bool QueryAndAddItem(List<sys_hospitalconfig> hospitalconfigs, string sq
if (items == null && (itemNames == null || !itemNames.Any()))
return true;
if (itemNames != null && itemNames.Any())
if (itemNames != null && itemNames.Any(t => !string.IsNullOrEmpty(t)))
{
if (items != null)
itemNames = itemNames.Except(items.Select(t => t.ItemName)).ToList();
logger.LogInformation($"添加默认收费项 去重后数据有{itemNames.Distinct().Count()}");
var itemList = itemNames.Distinct().Select(t => new ex_item
var itemList = itemNames.Where(t => !string.IsNullOrEmpty(t)).Distinct().Select(t => new ex_item
{
ItemName = t,
ItemName = t.Trim(),
FactorValue1 = 0m,
FactorValue2 = 0m,
FactorValue3 = 0m,
......
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