Commit eecae4aa by lcx

no message

parent 3fdd62b3
......@@ -417,7 +417,7 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
// WriteAccountBasic(sheet, sheetRead);
// break;
case SheetType.SpecialUnit:
WriteSpecialUnit(sheet, sheetRead, specials, data);
WriteSpecialUnit(sheet, sheetRead, specials, data, sheetRead.Point.DataFirstRowNum.Value);
break;
}
logManage.ReturnTheLog(Allot.ID, GroupName, 2, "写入数据", $"sheet“{sheet.SheetName}”已完成数据写入");
......@@ -493,28 +493,28 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
//case SheetType.ClinicEmployee:
// WriteClinicEmployee(sheet, sheetRead, false);
// break;
case SheetType.OtherIncome:
ClearData(sheet, 5, 7);
WriteOtherIncome(sheet, sheetRead, modules, items, extracts, false);
break;
case SheetType.Income:
ClearData(sheet, 5, 3, true);
WriteIncome(sheet, sheetRead, modules, items, extracts, false);
break;
case SheetType.Expend:
ClearData(sheet, 5, 7);
WriteExpend(sheet, sheetRead, modules, items, extracts, false);
break;
case SheetType.Workload:
ClearData(sheet, 3, 3);
WriteWorkload(sheet, sheetRead, modules, items, extracts, false);
break;
//case SheetType.OtherIncome:
// ClearData(sheet, 5, 7);
// WriteOtherIncome(sheet, sheetRead, modules, items, extracts, false);
// break;
//case SheetType.Income:
// ClearData(sheet, 5, 3, true);
// WriteIncome(sheet, sheetRead, modules, items, extracts, false);
// break;
//case SheetType.Expend:
// ClearData(sheet, 5, 7);
// WriteExpend(sheet, sheetRead, modules, items, extracts, false);
// break;
//case SheetType.Workload:
// ClearData(sheet, 3, 3);
// WriteWorkload(sheet, sheetRead, modules, items, extracts, false);
// break;
//case SheetType.AccountBasic:
// WriteAccountBasic(sheet, sheetRead, false);
// break;
case SheetType.SpecialUnit:
ClearData(sheet, 2, 0);
WriteSpecialUnit(sheet, sheetRead, specials, extracts, lastAllot, false);
//ClearData(sheet, 2, 0);
SupplySpecialUnit(sheet, sheetRead, specials, extracts, lastAllot, false);
break;
}
logManage.ReturnTheLog(Allot.ID, GroupName, 2, "写入数据", $"sheet“{sheet.SheetName}”已完成数据写入");
......@@ -1250,7 +1250,7 @@ private void WriteWorkload(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_mo
logger.LogInformation($"{sheet.SheetName}写入结束.");
}
private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_special> specials, List<NewExtractDto> data, per_allot lastAllot = null, bool IsWriteHead = true)
private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_special> specials, List<NewExtractDto> data, int beginRowIndex, per_allot lastAllot = null, bool IsWriteHead = true)
{
logger.LogInformation($"{sheet.SheetName}开始执行写入.");
var dictionary = new Dictionary<string, Func<ex_special, List<im_specialunit>, object>>
......@@ -1270,11 +1270,11 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
if (lastAllot != null)
allotDataList = perforImspecialunitRepository.GetEntities(t => t.AllotID == lastAllot.ID);
//取消合并单元格
foreach (var merge in sheet.MergedRegions)
{
sheet.RemoveMergedRegion(sheet.MergedRegions.IndexOf(merge));
}
////取消合并单元格
//foreach (var merge in sheet.MergedRegions)
//{
// sheet.RemoveMergedRegion(sheet.MergedRegions.IndexOf(merge));
//}
var modDataGroup = speaialList.GroupBy(t => new { t.Department }).Select(group => new
{
......@@ -1282,8 +1282,8 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
Count = group.Count()
})?.OrderBy(t => t.Department);
int mergedBegin = sheetRead.Point.DataFirstRowNum.Value;
int mergedEnd = sheetRead.Point.DataFirstRowNum.Value;
int mergedBegin = beginRowIndex;
int mergedEnd = beginRowIndex;
var extractdata = data.Where(t => t.SheetName == specialname).ToList();
logger.LogInformation($"data有{extractdata?.Count ?? 0}个.");
......@@ -1294,7 +1294,7 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
var headIndex = sheetRead.Point.HeaderFirstRowNum;
var cellList = sheet.GetRow(headIndex.Value).Cells;
var rowIndex = sheetRead.Point.DataFirstRowNum.Value + i;
var rowIndex = beginRowIndex + i;
var importRow = sheet.CreateRow(rowIndex);
int cellIndex = 0;
......@@ -1339,7 +1339,23 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_special> specials, List<NewExtractDto> data, per_allot lastAllot = null, bool IsWriteHead = true)
{
try
{
logger.LogInformation($"{sheet.SheetName}开始执行写入.");
var dictionary = new Dictionary<string, Func<ex_special, List<im_specialunit>, object>>
{
{ "科室", (special,lastallot) => special.Department },
{ "人数", (special,lastallot) => lastallot.Where(t=>special.Department == t.Department).Max(t=>t.Number) },
{ "量化指标", (special,lastallot) => special.Target},
{ "量化指标绩效分值",(special,lastallot) => special.TargetFactor },
{ "调节系数", (special,lastallot) => special.AdjustFactor },
};
List<im_specialunit> allotDataList = new List<im_specialunit>();
if (lastAllot != null)
allotDataList = perforImspecialunitRepository.GetEntities(t => t.AllotID == lastAllot.ID);
var speaialList = specials?.OrderBy(t => t.Department).ToList();
logger.LogInformation($"item有{speaialList?.Count ?? 0}个.");
if (speaialList == null || !speaialList.Any()) return;
......@@ -1357,10 +1373,14 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
if (!headerDict.ContainsKey("科室") || !headerDict.ContainsKey("量化指标")) return;
var extractdata = data.Where(t => t.SheetName == specialname).ToList();
var merges = mergefunc.Invoke(sheet, sheetRead.Point.DataFirstRowNum);
if (merges == null || !merges.Any()) return;
merges = merges.OrderBy(t => t.FirstRow).ToList();
var allmerge = sheet.MergedRegions;
int startRowIndex = sheetRead.Point.DataFirstRowNum ?? 2;
foreach (var merge in merges)
{
......@@ -1382,9 +1402,13 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
if (deptSpecials != null && deptSpecials.Any())
{
foreach (var spec in deptSpecials)
{
sheet.ShiftRows(merge.LastRow + 1, sheet.LastRowNum, 1, true, false);
var shiftrow = sheet.CreateRow(merge.LastRow + 1);
WriteSpecialCellValue(dictionary, shiftrow, cellList, spec, allotDataList, extractdata);
var thanmerges = merges.Where(t => t.FirstRow > merge.LastRow)?.ToList();
if (thanmerges != null && thanmerges.Any())
{
......@@ -1396,6 +1420,7 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
}
merge.LastRow += 1;
}
}
speaialList.RemoveAll(t => t.Department == merge.Value);
}
......@@ -1411,19 +1436,28 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
}
//取消合并单元格
foreach (var merge in sheet.MergedRegions)
foreach (var merge in allmerge)
{
sheet.RemoveMergedRegion(sheet.MergedRegions.IndexOf(merge));
if (merge.LastRow > merge.FirstRow)
sheet.RemoveMergedRegion(allmerge.IndexOf(merge));
}
foreach (var merge in merges)
foreach (var merge in merges.Where(t => t.FirstColumn == 0))
{
if (merge.LastRow > merge.FirstRow || merge.LastColumn > merge.FirstColumn)
if (merge.LastRow > merge.FirstRow)
{
CellRangeAddress region = new CellRangeAddress(merge.FirstRow, merge.LastRow, merge.FirstColumn, merge.LastColumn);
CellRangeAddress region = new CellRangeAddress(merge.FirstRow, merge.LastRow, headerDict["科室"], headerDict["科室"]);
sheet.AddMergedRegion(region);
sheet.AddMergedRegion(new CellRangeAddress(merge.FirstRow, merge.LastRow, headerDict["人数"], headerDict["人数"]));
}
}
WriteSpecialUnit(sheet, sheetRead, speaialList, data, sheet.LastRowNum + 1, lastAllot, false);
}
catch (Exception ex)
{
logger.LogError("补充特殊科室数据发生异常" + ex.ToString());
}
}
private void WriteSpecialCellValue(Dictionary<string, Func<ex_special, List<im_specialunit>, object>> dictionary, IRow row, List<ICell> cellList, ex_special special, List<im_specialunit> allotDataList, List<NewExtractDto> extractdata)
......@@ -1443,7 +1477,6 @@ private void WriteSpecialCellValue(Dictionary<string, Func<ex_special, List<im_s
}
var newCell = row.CreateCell(cellList.IndexOf(cell));
//newCell.SetCellValue(Verify(value));
OutToExcelCell(newCell, value);
if (dictionary.ContainsKey(cell.StringCellValue) || (cell.StringCellValue == "数量" && !string.IsNullOrEmpty(value?.ToString())))
newCell.CellStyle = style;
......
......@@ -83,7 +83,7 @@ public void ReturnTheLog(int allotId, string groupName, int type, string tag, ob
var http = url.ImportFile + $"/template/returnlog?type={type}&tag={tag}&message={message}&level={level}&groupName={groupName}";
//logger.LogInformation("发送日志:" + http);
logdbug.Add(allotId, tag, message.ToString(), level, type);
HttpHelper.HttpPost(http);
//HttpHelper.HttpPost(http);
}
catch (Exception ex)
{
......
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