This commit is contained in:
xyy
2026-03-31 20:17:17 +08:00
parent 8bd9226955
commit e14d6de146
18 changed files with 865 additions and 206 deletions

View File

@@ -3,6 +3,11 @@ using System.IO;
public static class ExportHelper
{
static ExportHelper()
{
// 设置许可上下文为非商业用途(开源项目/个人学习)
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
}
public static void ExportBubblePoint(BubblePointEntity entity, string filePath)
{
using var package = new ExcelPackage();

View File

@@ -1,57 +1,141 @@
public interface ITestRecord
{
/// <summary>主键ID自增</summary>
int Id { get; set; }
/// <summary>工位编号1~3</summary>
int StationId { get; set; }
/// <summary>测试日期时间</summary>
DateTime TestDate { get; set; }
/// <summary>测试人员姓名</summary>
string Tester { get; set; }
// 公共字段
}
/// <summary>
/// 泡点法测试记录实体,用于数据库存储。
/// 对应 GB/T 32361-2015 标准中的最大孔径测试记录。
/// </summary>
public class BubblePointEntity : ITestRecord
{
/// <summary>主键ID自增</summary>
public int Id { get; set; }
/// <summary>工位编号1~3</summary>
public int StationId { get; set; }
/// <summary>测试日期时间</summary>
public DateTime TestDate { get; set; }
public string Tester { get; set; }
public string SampleType { get; set; }
public string SampleSpec { get; set; }
public double RoomTemperature { get; set; }
public double SoakingTime { get; set; }
public string LiquidName { get; set; }
public double LiquidSurfaceTension { get; set; }
public string LiquidManufacturer { get; set; }
public double BubblePointPressure { get; set; }
public string PressureUnit { get; set; }
public double MaxPoreSize { get; set; }
/// <summary>测试人员姓名</summary>
public string? Tester { get; set; }
/// <summary>膜类型(平板膜/中空纤维膜)</summary>
public string? SampleType { get; set; }
/// <summary>样品规格(如直径、厚度等)</summary>
public string? SampleSpec { get; set; }
/// <summary>测试时室温°C</summary>
public double? RoomTemperature { get; set; }
/// <summary>膜在测试液体中的浸润时间(小时)</summary>
public double? SoakingTime { get; set; }
/// <summary>测试液体名称(如“水”、“乙醇”等)</summary>
public string? LiquidName { get; set; }
/// <summary>测试液体的表面张力mN/m25°C</summary>
public double? LiquidSurfaceTension { get; set; }
/// <summary>测试液体生产厂家(可选)</summary>
public string? LiquidManufacturer { get; set; }
/// <summary>泡点压力数值</summary>
public double? BubblePointPressure { get; set; }
/// <summary>泡点压力单位Pa / cmHg / psi</summary>
public string? PressureUnit { get; set; }
/// <summary>计算得出的最大孔径μm</summary>
public double? MaxPoreSize { get; set; }
}
/// <summary>
/// 孔分布测试记录实体,用于数据库存储。
/// 对应 GB/T 32361-2015 标准中的平均流量法测试记录。
/// </summary>
public class PoreDistributionEntity : ITestRecord
{
/// <summary>主键ID自增</summary>
public int Id { get; set; }
/// <summary>工位编号1~3</summary>
public int StationId { get; set; }
/// <summary>测试日期时间</summary>
public DateTime TestDate { get; set; }
/// <summary>测试人员姓名</summary>
public string Tester { get; set; }
/// <summary>膜类型(平板膜/中空纤维膜)</summary>
public string SampleType { get; set; }
/// <summary>样品规格(如直径、厚度等)</summary>
public string SampleSpec { get; set; }
/// <summary>测试时室温°C</summary>
public double RoomTemperature { get; set; }
/// <summary>膜在测试液体中的浸润时间(小时)</summary>
public double SoakingTime { get; set; }
/// <summary>测试液体名称(如“水”、“乙醇”等)</summary>
public string LiquidName { get; set; }
/// <summary>测试液体的表面张力mN/m25°C</summary>
public double LiquidSurfaceTension { get; set; }
/// <summary>测试液体生产厂家(可选)</summary>
public string LiquidManufacturer { get; set; }
/// <summary>压力单位Pa / cmHg / psi</summary>
public string PressureUnit { get; set; }
/// <summary>泡点压力(可选,用于记录)</summary>
public double BubblePointPressure { get; set; }
/// <summary>计算得出的平均孔径μm</summary>
public double AveragePoreSize { get; set; }
// 导航属性:数据点
/// <summary>导航属性:该测试记录对应的所有压力-流量数据点</summary>
public List<DataPointEntity> DataPoints { get; set; }
}
/// <summary>
/// 孔分布测试的数据点实体,存储每个压力点对应的湿膜和干膜流量。
/// 与 PoreDistributionEntity 构成一对多的关系。
/// </summary>
public class DataPointEntity
{
/// <summary>主键ID自增</summary>
public int Id { get; set; }
/// <summary>关联的孔分布测试记录ID</summary>
public int PoreDistributionId { get; set; }
/// <summary>测试压力值,单位由所属记录的 PressureUnit 决定</summary>
public double Pressure { get; set; }
/// <summary>湿膜流量L/min</summary>
public double WetFlow { get; set; }
/// <summary>干膜流量L/min</summary>
public double DryFlow { get; set; }
/// <summary>导航属性:所属的孔分布测试记录</summary>
public PoreDistributionEntity PoreDistribution { get; set; }
}