初步计算

parent c9cf2065
...@@ -49,7 +49,7 @@ public class PerData : IPerData ...@@ -49,7 +49,7 @@ public class PerData : IPerData
/// <summary> /// <summary>
/// 1 汇总 2原始数据 /// 1 汇总 2原始数据
/// </summary> /// </summary>
public Nullable<int> IsSum { get; set; } public Nullable<int> IsTotal { get; set; }
/// <summary> /// <summary>
/// 行号 /// 行号
/// </summary> /// </summary>
...@@ -62,5 +62,6 @@ public class PerData : IPerData ...@@ -62,5 +62,6 @@ public class PerData : IPerData
/// 列坐标 /// 列坐标
/// </summary> /// </summary>
public int PointCell { get; set; } public int PointCell { get; set; }
public string SignID { get; set; }
} }
} }
...@@ -17,6 +17,10 @@ public class PerHeader ...@@ -17,6 +17,10 @@ public class PerHeader
public int MergeRow { get; set; } public int MergeRow { get; set; }
public int MergeCell { get; set; } public int MergeCell { get; set; }
public string CellValue { get; set; } public string CellValue { get; set; }
/// <summary>
/// 1 汇总 2原始数据
/// </summary>
public int IsTotal { get; set; }
public int Level { get; set; } public int Level { get; set; }
public bool IsHasChildren => Children != null && Children.Any(); public bool IsHasChildren => Children != null && Children.Any();
...@@ -25,7 +29,7 @@ public class PerHeader ...@@ -25,7 +29,7 @@ public class PerHeader
public PerHeader() { } public PerHeader() { }
public PerHeader(int pointRow, int pointCell, string cellName, int level, int mergeRow, int mergeCell, List<PerHeader> children) public PerHeader(int pointRow, int pointCell, string cellName, int level, int mergeRow, int mergeCell, List<PerHeader> children, int isTotal)
{ {
PointRow = pointRow; PointRow = pointRow;
PointCell = pointCell; PointCell = pointCell;
...@@ -34,6 +38,8 @@ public PerHeader(int pointRow, int pointCell, string cellName, int level, int me ...@@ -34,6 +38,8 @@ public PerHeader(int pointRow, int pointCell, string cellName, int level, int me
MergeRow = mergeRow; MergeRow = mergeRow;
MergeCell = mergeCell; MergeCell = mergeCell;
Children = children; Children = children;
SignID = Guid.NewGuid().ToString("N");
IsTotal = isTotal;
} }
} }
} }
...@@ -60,14 +60,23 @@ public class Cell ...@@ -60,14 +60,23 @@ public class Cell
public object CellValue { get; set; } public object CellValue { get; set; }
public int MergeRow { get; set; } public int MergeRow { get; set; }
public int MergeCell { get; set; } public int MergeCell { get; set; }
public bool IsTotal { get; set; }
public bool IsNumValue { get; set; }
/// <summary>
/// 单元格注释
/// </summary>
public string Annotation { get; set; }
public Cell() { } public Cell() { }
public Cell(int pointCell, object cellValue, int mergeRow, int mergeCell) public Cell(int pointCell, object cellValue, int mergeRow, int mergeCell, bool isTotal, bool isNumValue, string annotation = "")
{ {
PointCell = pointCell; PointCell = pointCell;
CellValue = cellValue; CellValue = cellValue;
MergeRow = mergeRow; MergeRow = mergeRow;
MergeCell = mergeCell; MergeCell = mergeCell;
IsTotal = isTotal;
IsNumValue = isNumValue;
Annotation = annotation;
} }
} }
} }
...@@ -63,7 +63,7 @@ public class im_data ...@@ -63,7 +63,7 @@ public class im_data
/// <summary> /// <summary>
/// 1 汇总 2原始数据 /// 1 汇总 2原始数据
/// </summary> /// </summary>
public Nullable<int> IsSum { get; set; } public Nullable<int> IsTotal { get; set; }
/// <summary> /// <summary>
/// 是否带入系数计算 1 带入 2 不带入 /// 是否带入系数计算 1 带入 2 不带入
...@@ -84,5 +84,9 @@ public class im_data ...@@ -84,5 +84,9 @@ public class im_data
/// 单元格备注 /// 单元格备注
/// </summary> /// </summary>
public string Remark { get; set; } public string Remark { get; set; }
/// <summary>
/// SignID
/// </summary>
public string SignID { get; set; }
} }
} }
...@@ -54,10 +54,19 @@ public class im_header ...@@ -54,10 +54,19 @@ public class im_header
/// 合并列 /// 合并列
/// </summary> /// </summary>
public Nullable<int> MergeCell { get; set; } public Nullable<int> MergeCell { get; set; }
/// <summary>
/// 1 汇总 2原始数据
/// </summary>
public Nullable<int> IsTotal { get; set; }
/// <summary> /// <summary>
/// 单元格内容 /// 单元格内容
/// </summary> /// </summary>
public string CellValue { get; set; } public string CellValue { get; set; }
/// <summary>
/// SignID
/// </summary>
public string SignID { get; set; }
} }
} }
...@@ -76,17 +76,29 @@ public List<TEntity> GetEntities() ...@@ -76,17 +76,29 @@ public List<TEntity> GetEntities()
public List<TEntity> GetEntities(Expression<Func<TEntity, bool>> exp) public List<TEntity> GetEntities(Expression<Func<TEntity, bool>> exp)
{ {
return context.Set<TEntity>().Where(exp).ToList(); return CompileQuery(exp).ToList();
} }
public List<TEntity> GetEntitiesForPaging(int Page, int pageSize, Expression<Func<TEntity, bool>> exp) public List<TEntity> GetEntitiesForPaging(int Page, int pageSize, Expression<Func<TEntity, bool>> exp)
{ {
return context.Set<TEntity>().Where(exp).Skip((Page - 1) * pageSize).Take(pageSize).ToList(); return CompileQuery(exp).Skip((Page - 1) * pageSize).Take(pageSize).ToList();
} }
public TEntity GetEntity(Expression<Func<TEntity, bool>> exp) public TEntity GetEntity(Expression<Func<TEntity, bool>> exp)
{ {
return context.Set<TEntity>().FirstOrDefault(exp); return CompileQuerySingle(exp);
}
private IEnumerable<TEntity> CompileQuery(Expression<Func<TEntity, bool>> exp)
{
var func = EF.CompileQuery((DbContext context, Expression<Func<TEntity, bool>> exps) => context.Set<TEntity>().Where(exp));
return func(context, exp);
}
private TEntity CompileQuerySingle(Expression<Func<TEntity, bool>> exp)
{
var func = EF.CompileQuery((DbContext context, Expression<Func<TEntity, bool>> exps) => context.Set<TEntity>().FirstOrDefault(exp));
return func(context, exp);
} }
} }
} }
...@@ -32,8 +32,10 @@ public PerSheet Sheet(ISheet sheet) ...@@ -32,8 +32,10 @@ public PerSheet Sheet(ISheet sheet)
return null; return null;
var sheetRead = PerSheetDataFactory.GetDataRead(perSheet.SheetType); var sheetRead = PerSheetDataFactory.GetDataRead(perSheet.SheetType);
perSheet.PerHeader = _perHeader.GetPerHeader(sheet, sheetRead.Point); var perHeader = _perHeader.GetPerHeader(sheet, sheetRead.Point);
var headerReverse = _perHeader.GetPerHeaderReverse(sheet, sheetRead.Point); var headerReverse = _perHeader.GetPerHeaderReverse(perHeader);
perSheet.PerHeader = perHeader;
perSheet.PerData = sheetRead.ReadData(sheet, headerReverse); perSheet.PerData = sheetRead.ReadData(sheet, headerReverse);
return perSheet; return perSheet;
} }
......
...@@ -41,7 +41,7 @@ public PerSheet ProcessCompute(PerSheet sheet) ...@@ -41,7 +41,7 @@ public PerSheet ProcessCompute(PerSheet sheet)
if (header.IsHasChildren) if (header.IsHasChildren)
{ {
var maxcell = header.Children.Max(t => t.PointCell); var maxcell = header.Children.Max(t => t.PointCell);
var parentHead = new PerHeader(0, maxcell + 1, $" {header.CellValue}合计", 0, 1, 2, new List<PerHeader>()); var parentHead = new PerHeader(0, maxcell + 1, $" {header.CellValue}合计", 0, 1, 2, new List<PerHeader>(), 1);
perHeadList.Add(parentHead); perHeadList.Add(parentHead);
var typeClass = dataList.Where(t => header.Children.Select(s => s.CellValue).Contains(t.TypeName)); var typeClass = dataList.Where(t => header.Children.Select(s => s.CellValue).Contains(t.TypeName));
...@@ -49,21 +49,8 @@ public PerSheet ProcessCompute(PerSheet sheet) ...@@ -49,21 +49,8 @@ public PerSheet ProcessCompute(PerSheet sheet)
foreach (var group in typeClass.GroupBy(t => t.UnitType)) foreach (var group in typeClass.GroupBy(t => t.UnitType))
{ {
pointcell++; pointcell++;
parentHead.Children.Add(new PerHeader(1, maxcell + pointcell, group.Key, 1, 1, 1, null)); var childHead = new PerHeader(1, maxcell + pointcell, group.Key, 1, 1, 1, null, 1);
foreach (var t in group.Where(t => t.CellValue.HasValue && t.CellValue.Value > 0).GroupBy(t => t.AccountingUnit)) parentHead.Children.Add(childHead);
{
var sd = new PerData
{
UnitType = group.Key,
AccountingUnit = t.Key,
CellValue = t.Sum(s => s.CellValue),
TypeName = group.Key,
RowNumber = 0,
IsSum = 1,
PointCell = maxcell + pointcell,
ComputRule = t.Select(s => s.ComputRule).Distinct().First()
};
}
var ds = group.Where(t => t.CellValue.HasValue && t.CellValue.Value > 0) var ds = group.Where(t => t.CellValue.HasValue && t.CellValue.Value > 0)
.GroupBy(t => t.AccountingUnit).Select(t => new PerData .GroupBy(t => t.AccountingUnit).Select(t => new PerData
{ {
...@@ -71,10 +58,11 @@ public PerSheet ProcessCompute(PerSheet sheet) ...@@ -71,10 +58,11 @@ public PerSheet ProcessCompute(PerSheet sheet)
AccountingUnit = t.Key, AccountingUnit = t.Key,
CellValue = t.Sum(s => s.CellValue), CellValue = t.Sum(s => s.CellValue),
TypeName = group.Key, TypeName = group.Key,
RowNumber = 0, RowNumber = t.FirstOrDefault()?.RowNumber ?? 0,
IsSum = 1, IsTotal = 1,
PointCell = maxcell + pointcell, PointCell = maxcell + pointcell,
ComputRule = t.Select(s => s.ComputRule).Distinct().First() ComputRule = t.Select(s => s.ComputRule).Distinct().First(),
SignID = childHead.SignID,
}); });
perDataList.AddRange(ds); perDataList.AddRange(ds);
} }
......
...@@ -50,9 +50,14 @@ public PerSheet MergeCompute(PerExcel excel) ...@@ -50,9 +50,14 @@ public PerSheet MergeCompute(PerExcel excel)
foreach (var group in dataList.GroupBy(t => t.UnitType)) foreach (var group in dataList.GroupBy(t => t.UnitType))
{ {
var typeName = $"{GetCleanSheetName(sheet.SheetName)}({ group.Key})"; var typeName = $"{GetCleanSheetName(sheet.SheetName)}({ group.Key})";
//创建子集头部信息
PerHeader childHeader = new PerHeader(1, childPointCell, typeName, 1, 1, 1, null, 2);
headList.Add(childHeader);
var ds = group.Where(t => t.CellValue.HasValue && t.CellValue.Value > 0) var ds = group.Where(t => t.CellValue.HasValue && t.CellValue.Value > 0)
.GroupBy(t => t.AccountingUnit).Select(t => new PerData .GroupBy(t => t.AccountingUnit).Select(t => new PerData
{ {
SignID = childHeader.SignID,
UnitType = group.Key, UnitType = group.Key,
AccountingUnit = t.Key, AccountingUnit = t.Key,
CellValue = t.Sum(s => s.IsFactor ? (s.CellValue * (s.FactorValue ?? 0)) : s.CellValue), CellValue = t.Sum(s => s.IsFactor ? (s.CellValue * (s.FactorValue ?? 0)) : s.CellValue),
...@@ -62,13 +67,10 @@ public PerSheet MergeCompute(PerExcel excel) ...@@ -62,13 +67,10 @@ public PerSheet MergeCompute(PerExcel excel)
}); });
perDataList.AddRange(ds); perDataList.AddRange(ds);
//创建子集头部信息
PerHeader childHeader = new PerHeader(1, childPointCell, typeName, 1, 1, 1, null);
headList.Add(childHeader);
childPointCell++; childPointCell++;
} }
} }
PerHeader header = new PerHeader(0, pointCell, EnumHelper.GetDescription(type), 1, 1, headList.Count, headList); PerHeader header = new PerHeader(0, pointCell, EnumHelper.GetDescription(type), 1, 1, headList.Count, headList, 2);
compSheet.PerHeader.Add(header); compSheet.PerHeader.Add(header);
//父级列号为当前列号+子集个数 //父级列号为当前列号+子集个数
pointCell = pointCell + headList.Count; pointCell = pointCell + headList.Count;
......
...@@ -72,6 +72,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader) ...@@ -72,6 +72,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
PerData data = new PerData PerData data = new PerData
{ {
RowNumber = r, RowNumber = r,
SignID = athead.SignID,
AccountingUnit = accountingUnit, AccountingUnit = accountingUnit,
Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(), Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(),
TypeName = athead?.CellValue, TypeName = athead?.CellValue,
......
...@@ -67,6 +67,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader) ...@@ -67,6 +67,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
PerData data = new PerData PerData data = new PerData
{ {
RowNumber = r, RowNumber = r,
SignID = athead.SignID,
AccountingUnit = accountingUnit, AccountingUnit = accountingUnit,
Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(), Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(),
TypeName = athead?.CellValue, TypeName = athead?.CellValue,
......
...@@ -55,6 +55,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader) ...@@ -55,6 +55,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
PerData data = new PerData PerData data = new PerData
{ {
RowNumber = r, RowNumber = r,
SignID = athead.SignID,
AccountingUnit = accountingUnit, AccountingUnit = accountingUnit,
Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(), Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(),
TypeName = athead?.CellValue, TypeName = athead?.CellValue,
......
...@@ -50,14 +50,18 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader) ...@@ -50,14 +50,18 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
continue; continue;
var athead = vhead.ElementAt(c); var athead = vhead.ElementAt(c);
var cellValue = NopiSevice.GetCellValue(row.GetCell(athead.PointCell));
if (!cellValue.HasValue || cellValue.Value == 0)
continue;
PerData data = new PerData PerData data = new PerData
{ {
RowNumber = r, RowNumber = r,
SignID = athead.SignID,
AccountingUnit = accountingUnit, AccountingUnit = accountingUnit,
Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(), Department = row.GetCell(unit.DeptCellNum.Value)?.ToString(),
TypeName = athead?.CellValue, TypeName = athead?.CellValue,
CellValue = ConvertHelper.To<decimal?>(row.GetCell(athead.PointCell)?.ToString()), CellValue = cellValue,
Annotation = row.GetCell(athead.PointCell)?.CellComment?.String?.String, Annotation = row.GetCell(athead.PointCell)?.CellComment?.String?.String,
UnitType = unit.UnitType, UnitType = unit.UnitType,
FactorValue = ConvertHelper.To<decimal?>(sheet.GetRow(unit.FactorRow.Value).GetCell(athead.PointCell)?.ToString()), FactorValue = ConvertHelper.To<decimal?>(sheet.GetRow(unit.FactorRow.Value).GetCell(athead.PointCell)?.ToString()),
......
...@@ -68,41 +68,41 @@ public SheetExportResponse SheetExport(int sheetID) ...@@ -68,41 +68,41 @@ public SheetExportResponse SheetExport(int sheetID)
if (employeeList != null && employeeList.Count() > 0) if (employeeList != null && employeeList.Count() > 0)
{ {
var row = new Row(0); var row = new Row(0);
row.Data.Add(new Cell(1, "核算单元", 1, 1)); row.Data.Add(new Cell(1, "核算单元", 1, 1, false, false));
row.Data.Add(new Cell(2, "科室", 1, 1)); row.Data.Add(new Cell(2, "科室", 1, 1, false, false));
row.Data.Add(new Cell(3, "医生姓名", 1, 1)); row.Data.Add(new Cell(3, "医生姓名", 1, 1, false, false));
row.Data.Add(new Cell(4, "职称", 1, 1)); row.Data.Add(new Cell(4, "职称", 1, 1, false, false));
row.Data.Add(new Cell(5, "绩效基数核算参考对象", 1, 1)); row.Data.Add(new Cell(5, "绩效基数核算参考对象", 1, 1, false, false));
row.Data.Add(new Cell(6, "岗位系数", 1, 1)); row.Data.Add(new Cell(6, "岗位系数", 1, 1, false, false));
row.Data.Add(new Cell(7, "考核得分率", 1, 1)); row.Data.Add(new Cell(7, "考核得分率", 1, 1, false, false));
row.Data.Add(new Cell(8, "医生姓名", 1, 1)); row.Data.Add(new Cell(8, "医生姓名", 1, 1, false, false));
row.Data.Add(new Cell(9, "出勤率", 1, 1)); row.Data.Add(new Cell(9, "出勤率", 1, 1, false, false));
row.Data.Add(new Cell(10, "核算单元医生数", 1, 1)); row.Data.Add(new Cell(10, "核算单元医生数", 1, 1, false, false));
row.Data.Add(new Cell(11, "工作量绩效", 1, 1)); row.Data.Add(new Cell(11, "工作量绩效", 1, 1, false, false));
row.Data.Add(new Cell(12, "其他绩效", 1, 1)); row.Data.Add(new Cell(12, "其他绩效", 1, 1, false, false));
row.Data.Add(new Cell(13, "医院奖罚", 1, 1)); row.Data.Add(new Cell(13, "医院奖罚", 1, 1, false, false));
row.Data.Add(new Cell(14, "调节系数", 1, 1)); row.Data.Add(new Cell(14, "调节系数", 1, 1, false, false));
row.Data.Add(new Cell(15, "发放系数", 1, 1)); row.Data.Add(new Cell(15, "发放系数", 1, 1, false, false));
response.Header.Add(row); response.Header.Add(row);
for (int i = 0; i < employeeList.Count(); i++) for (int i = 0; i < employeeList.Count(); i++)
{ {
var item = employeeList.ElementAt(i); var item = employeeList.ElementAt(i);
var rowbody = new Row(i); var rowbody = new Row(i);
rowbody.Data.Add(new Cell(1, item.AccountingUnit, 1, 1)); rowbody.Data.Add(new Cell(1, item.AccountingUnit, 1, 1, false, false));
rowbody.Data.Add(new Cell(2, item.Department, 1, 1)); rowbody.Data.Add(new Cell(2, item.Department, 1, 1, false, false));
rowbody.Data.Add(new Cell(3, item.DoctorName, 1, 1)); rowbody.Data.Add(new Cell(3, item.DoctorName, 1, 1, false, false));
rowbody.Data.Add(new Cell(4, item.JobTitle, 1, 1)); rowbody.Data.Add(new Cell(4, item.JobTitle, 1, 1, false, false));
rowbody.Data.Add(new Cell(5, item.FitPeople, 1, 1)); rowbody.Data.Add(new Cell(5, item.FitPeople, 1, 1, false, true));
rowbody.Data.Add(new Cell(6, item.PostCoefficient, 1, 1)); rowbody.Data.Add(new Cell(6, item.PostCoefficient, 1, 1, false, true));
rowbody.Data.Add(new Cell(7, item.WorkTime, 1, 1)); rowbody.Data.Add(new Cell(7, item.WorkTime, 1, 1, false, false));
rowbody.Data.Add(new Cell(8, item.ScoreAverageRate, 1, 1)); rowbody.Data.Add(new Cell(8, item.ScoreAverageRate, 1, 1, false, true));
rowbody.Data.Add(new Cell(9, item.Attendance, 1, 1)); rowbody.Data.Add(new Cell(9, item.Attendance, 1, 1, false, true));
rowbody.Data.Add(new Cell(10, item.PeopleNumber, 1, 1)); rowbody.Data.Add(new Cell(10, item.PeopleNumber, 1, 1, false, true));
rowbody.Data.Add(new Cell(11, item.Workload, 1, 1)); rowbody.Data.Add(new Cell(11, item.Workload, 1, 1, false, true));
rowbody.Data.Add(new Cell(12, item.OthePerfor, 1, 1)); rowbody.Data.Add(new Cell(12, item.OthePerfor, 1, 1, false, true));
rowbody.Data.Add(new Cell(13, item.Punishment, 1, 1)); rowbody.Data.Add(new Cell(13, item.Punishment, 1, 1, false, true));
rowbody.Data.Add(new Cell(14, item.Adjust, 1, 1)); rowbody.Data.Add(new Cell(14, item.Adjust, 1, 1, false, true));
rowbody.Data.Add(new Cell(15, item.Grant, 1, 1)); rowbody.Data.Add(new Cell(15, item.Grant, 1, 1, false, true));
response.Header.Add(rowbody); response.Header.Add(rowbody);
} }
} }
...@@ -118,7 +118,7 @@ public SheetExportResponse SheetExport(int sheetID) ...@@ -118,7 +118,7 @@ public SheetExportResponse SheetExport(int sheetID)
response.Header.Add(rowhead); response.Header.Add(rowhead);
foreach (var header in headList.Where(t => !t.ParentID.HasValue || t.ParentID.Value == 0)) foreach (var header in headList.Where(t => !t.ParentID.HasValue || t.ParentID.Value == 0))
{ {
rowhead.Data.Add(new Cell(header.PointCell.Value, header.CellValue, header.MergeRow.Value, header.MergeCell.Value)); rowhead.Data.Add(new Cell(header.PointCell.Value, header.CellValue, header.MergeRow.Value, header.MergeCell.Value, false, false));
} }
if (headList.Any(t => t.ParentID.HasValue && t.ParentID.Value > 0)) if (headList.Any(t => t.ParentID.HasValue && t.ParentID.Value > 0))
{ {
...@@ -126,7 +126,7 @@ public SheetExportResponse SheetExport(int sheetID) ...@@ -126,7 +126,7 @@ public SheetExportResponse SheetExport(int sheetID)
response.Header.Add(rowhead2); response.Header.Add(rowhead2);
foreach (var header in headList.Where(t => t.ParentID.HasValue && t.ParentID.Value > 0)) foreach (var header in headList.Where(t => t.ParentID.HasValue && t.ParentID.Value > 0))
{ {
rowhead2.Data.Add(new Cell(header.PointCell.Value, header.CellValue, header.MergeRow.Value, header.MergeCell.Value)); rowhead2.Data.Add(new Cell(header.PointCell.Value, header.CellValue, header.MergeRow.Value, header.MergeCell.Value, false, false));
} }
} }
List<im_header> headers = new List<im_header>(); List<im_header> headers = new List<im_header>();
...@@ -152,35 +152,36 @@ public SheetExportResponse SheetExport(int sheetID) ...@@ -152,35 +152,36 @@ public SheetExportResponse SheetExport(int sheetID)
if (head.CellValue.Contains("医生组")) if (head.CellValue.Contains("医生组"))
{ {
var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber && t.UnitType == 1)?.AccountingUnit; var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber && t.UnitType == 1)?.AccountingUnit;
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1)); rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, false, false));
} }
else if (head.CellValue.Contains("护理组")) else if (head.CellValue.Contains("护理组"))
{ {
var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber && t.UnitType == 2)?.AccountingUnit; var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber && t.UnitType == 2)?.AccountingUnit;
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1)); rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, false, false));
} }
else else
{ {
var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber)?.AccountingUnit; var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber)?.AccountingUnit;
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1)); rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, false, false));
} }
} }
else if (head.CellValue.Contains("科室名称")) else if (head.CellValue.Contains("科室名称"))
{ {
var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber).Department; var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber).Department;
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1)); rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, false, false));
} }
else if (head.CellValue.Contains("备注")) else if (head.CellValue.Contains("备注"))
{ {
var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber).Remark; var value = dataList.FirstOrDefault(t => t.RowNumber == rowNumber).Remark;
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1)); rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, false, false));
} }
else if (!rowbody.Data.Any(t => t.PointCell == head.PointCell)) else if (!rowbody.Data.Any(t => t.PointCell == head.PointCell))
{ {
var accountingUnit = dataList.FirstOrDefault(t => t.RowNumber == rowNumber).AccountingUnit; var accountingUnit = dataList.FirstOrDefault(t => t.RowNumber == rowNumber)?.AccountingUnit;
var value = dataList.FirstOrDefault(t => t.AccountingUnit == accountingUnit && t.TypeName == head.CellValue)?.CellValue; var data = dataList.FirstOrDefault(t => t.AccountingUnit == accountingUnit && t.SignID == head.SignID);
var value = data?.CellValue;
if (value.HasValue && value.Value > 0) if (value.HasValue && value.Value > 0)
rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1)); rowbody.Data.Add(new Cell(head.PointCell.Value, value, 1, 1, data.IsTotal == 1, true, data.Annotation));
} }
} }
} }
......
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