Commit 519f3277 by 799284587@qq.com

优化

parent 263c85cf
......@@ -52,10 +52,11 @@ public PerSheet MergeCompute(PerExcel excel, List<EntityModels.cof_income> incom
//判断是否创建头部
if (!isHasData && dataList != null && dataList.Count() > 0)
isHasData = true;
foreach (var group in dataList.GroupBy(t => t.UnitType))
foreach (var item in EnumHelper.GetItems<UnitType>())
{
var typeName = $"{GetCleanSheetName(sheet.SheetName)}({ group.Key})";
var group = dataList.Where(t => t.UnitType == item.Name);
var typeName = $"{GetCleanSheetName(sheet.SheetName)}({item.Name})";
//创建子集头部信息
PerHeader childHeader = new PerHeader(1, childPointCell, typeName, 1, 1, 1, null, 2);
headList.Add(childHeader);
......@@ -64,11 +65,11 @@ public PerSheet MergeCompute(PerExcel excel, List<EntityModels.cof_income> incom
.GroupBy(t => t.AccountingUnit).Select(t => new PerData
{
SignID = childHeader.SignID,
UnitType = group.Key,
UnitType = item.Name,
AccountingUnit = t.Key,
CellValue = ComputeValue(t, sheet.SheetName, group.Key, incomeconfs),
CellValue = ComputeValue(t, sheet.SheetName, item.Name, incomeconfs),
TypeName = typeName,
RowNumber = dataList.FirstOrDefault(s => s.AccountingUnit == t.Key && s.UnitType == group.Key)?.RowNumber ?? 0,
RowNumber = dataList.FirstOrDefault(s => s.AccountingUnit == t.Key && s.UnitType == item.Name)?.RowNumber ?? 0,
ComputRule = type == SheetType.Expend ? 2 : 1
});
......@@ -143,7 +144,7 @@ public PerSheet OnceCompute(PerSheet sheet)
{
header.PointCell = header.PointCell + phead;
header.Children.ForEach(item => item.PointCell = item.PointCell + phead);
phead = phead + 2;
phead = phead + 3;
}
}
......@@ -160,18 +161,20 @@ public PerSheet OnceCompute(PerSheet sheet)
var typeClass = dataList.Where(t => header.Children.Select(s => s.CellValue).Contains(t.TypeName));
int pointcell = 0;
foreach (var group in typeClass.GroupBy(t => t.UnitType))
foreach (var item in EnumHelper.GetItems<UnitType>())
{
pointcell++;
var childHead = new PerHeader(1, maxcell + pointcell, group.Key, 1, 1, 1, null, 1);
var group = typeClass.Where(t => t.UnitType == item.Name);
var childHead = new PerHeader(1, maxcell + pointcell, item.Name, 1, 1, 1, null, 1);
parentHead.Children.Add(childHead);
var ds = group.Where(t => t.CellValue.HasValue)
.GroupBy(t => t.AccountingUnit).Select(t => new PerData
{
UnitType = group.Key,
UnitType = item.Name,
AccountingUnit = t.Key,
CellValue = t.Sum(s => s.CellValue),
TypeName = group.Key,
TypeName = item.Name,
RowNumber = t.FirstOrDefault()?.RowNumber ?? 0,
IsTotal = 1,
PointCell = maxcell + pointcell,
......@@ -199,7 +202,7 @@ public PerSheet OnceCompute(PerSheet sheet)
//获取最大列坐标位置
var maxhead = sheet.PerHeader.OrderByDescending(t => t.PointCell).FirstOrDefault();
int thiscell = maxhead.Children != null && maxhead.Children.Count > 0
? maxhead.Children.Max(t => t.PointCell) + 3
? maxhead.Children.Max(t => t.PointCell) + 1
: maxhead.PointCell;
PerHeader perHead = new PerHeader(0, thiscell, "科室可核算业绩收入", 0, 1, 3, new List<PerHeader>(), 1);
......
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