#ifndef CIVTABLEFIELD_H
#define CIVTABLEFIELD_H

#include<string>
#include<vector>
#include<map>
#include<string>

#define Str std::string 

// 水力模型系统表名
#define TABLE_NODE "节点"
#define TABLE_PIPE "管段"
#define TABLE_TANK "水池"
#define TABLE_VALVE "阀门"
#define TABLE_RESERVOIR "水库"
#define TABLE_PUMP  "水泵"


#define PROJ_TABLE_NODE  "方案节点"
#define PROJ_TABLE_PIPE  "方案管段"
#define PROJ_TABLE_TANK "方案水池"
#define PROJ_TABLE_VALVE "方案阀门"
#define PROJ_TABLE_RESERVOIR "方案水库"
#define PROJ_TABLE_PUMP "方案水泵"

#define TABLE_PROJ "方案表"
#define TABLE_PIPESIMUL "管段模拟值"
#define TABLE_NODESIMUL "节点模拟值"
#define TABLE_MOALPARAM "模型参数"
#define TABLE_MODELCURVE "曲线"
#define TABLE_MODELPATTERN "水力模式"
#define TABLE_MONITORPARESS "压力监测点"
#define TABLE_MONITORFLOW "流量监测点"
#define TABLE_MONITORQUALITY "水质监测点"
#define TABLE_PIPEMATERIAL "管材"
#define TABLE_ECONOMICVELOCITY "经济流速"
#define TABLE_TYPE_ASSEMBLY "管网组件"
#define TABLE_TYPE_ATTRIBUTR "模型属性"

/**
 节点表模板
*/
typedef struct JunctionTableFileds
{
	Str code = "code";
	Str sn = "本点号";
	Str xCoord = "横坐标";
	Str yCoord = "纵坐标";
	Str desc = "描述";
	Str label = "标签";
	Str elev = "高程";
	Str baseDemand = "基本需水量";
	Str demandPattern = "需水量模式";
	Str demandType = "需水量类型";
	Str emiterCoffe = "扩散器系数";
	Str initQuality = "初始水质";
	Str sourceQuality = "源头水质";
	Str dmaId = "DMAID";
	Str demand = "实际需水量";
	Str waterConsump = "用水量";
	Str waterShortage = "用水缺额";
	Str totalWater = "总水量";
	Str totalHead = "水头";
	Str pressure = "压力";
	Str quality = "水质";
	Str chlorine = "余氯";
}JunctionTable;

/**
    管线表模板
*/
typedef struct PipeTableFields
{
	Str code = "code";
	Str snNo = "编号";
	Str startPoint = "起始节点";
	Str endPoint = "终止节点";
	Str des = "描述";
	Str label = "标签";
	Str length = "管长";
	Str material = "管材";
	Str diameter = "管径";
	Str friction = "摩阻系数";
	Str localLoss = "局损系数";
	Str initStatus = "初始状态";
	Str mainCoffe = "主流系数";
	Str pipeCoffe = "管壁系数";
	Str leakCoffe1 = "漏水系数1";
	Str leakCoffe2 = "漏水系数2";
	Str dmaID = "DMAID";
	Str flow = "流量";
	Str velocity = "流速";
	Str unitHeadLoss = "单位水损";
	Str status = "状态";
	Str quality = "水质";
	Str leakWater = "漏水量";
	Str chlorine = "余氯";
}PipeTable;

/**
水泵
*/
typedef struct PumpTableFileds
{
	Str startPoint = "起始节点";
	Str endPoint = "终止节点";
	Str sn = "本点号";
	Str desc = "描述";
	Str label = "标签";
	Str headCurve = "扬程曲线";
	Str power = "功率";
	Str ratio = "转速比";
	Str pattern = "模式";
	Str initStatus = "初始状态";
	Str efficCurve = "效率曲线";
	Str powerPrice = "能量价格";
	Str pricePattern = "价格模式";
	Str flow = "流量";
	Str headLoss = "水损";
	Str quality = "水质";
	Str status = "状态";
} PumpTable;

/**
   水池
*/
typedef struct TankTableFileds
{
	Str sn = "本点号";
	Str xCoord = "横坐标";
	Str yCoord = "纵坐标";
	Str desc = "描述";
	Str label = "标签";
	Str elev = "高程";
	Str initLevel = "初始水位";
	Str minLevel = "最低水位";
	Str maxLevel = "最高水位";
	Str diametor = "直径";
	Str minVolume = "最小容积";
	Str volumeCurve = "容积曲线";
	Str mixedCore = "混合分数";
	Str mixedPattern = "混合模式";
	Str reaCoffe = "反应系数";
	Str initQuality = "初始水质";
	Str sourceQuality = "源头水质";
	Str flow = "流量";
	Str totalHead = "总水头";
	Str currLevel = "当前水位";
	Str quality = "水质";

}TankTable;


/**
  水库
*/
typedef struct ResourcesTableFileds
{
	Str sn = "本点号";
	Str xCoord = "横坐标";
	Str yCoord = "纵坐标";
	Str headPattern = "水头模式";
	Str initQuality = "初始水质";
	Str sourceQuality = "源头水质";
	Str elev = "高程";
	Str label = "标签";
	Str desc = "描述";
	Str flow = "流量";
	Str totalHead = "总水头";
	Str quality = "水质";
	Str chlorine = "余氯";
}ResourcesTable;
	
/**
阀门
*/
typedef struct ValveTableFileds
{
	Str sn = "本点号";
	Str startPoint = "起始节点";
	Str endPoint = "终止节点";
	Str length = "直径";
	Str type = "类型";
	Str setting = "设置";
	Str lossCoeff = "水损系数";
	Str fixedState = "固定状态";
	Str flow = "流量";
	Str velocity = "流速";
	Str headLoss = "水头损失";
	Str quality = "水质";
	Str state = "状态";
}ValveTable;


/**
   节点模拟结果存储表
*/

typedef struct NodeResultTableField
{
	Str Number = "本点号";
	Str dHead = "水头";
	Str dPressure = "压力";
	Str dDemand = "实际需水量";
	Str dQuality = "水质";
	Str dDate = "日期";
	Str dInterval = "时间点";
	Str dModifyTime = "修改时间";
	Str chlorine = "余氯";
} NodeResultTable;

/**
	模拟结果线表
*/

typedef struct PipeResultTableField
{
	Str szNo = "编号";
	Str dFlow = "流量";
	Str dVelocity = "流速";
	Str dUnitHeadloss = "单位水损";
	Str szStatus = "状态";
	Str dQuality = "水质";
	Str dDate = "日期";
	Str dInterval = "时间点";
	Str dModifyTime = "修改时间";
	Str chlorine = "余氯";
}PipeResultTable;


/**
	 模式表
*/

typedef struct PatternTableField
{
	Str modelName = "模式名";
	Str modelType = "类型";
	Str modelData = "模式值";
} PatternTable;

/**
	参数表
*/
typedef struct ParametorTableField
{
	Str name = "参数名";
	Str val = "参数值";
	Str type = "类型";
}ParametorTable;

/**
   曲线表
*/
typedef struct CurveTableField
{
	Str CurveName = "曲线名";
	Str CurveType = "类型";
	Str CurveData = "曲线值";
}CurveTable;


/**
   方案点表
*/
typedef struct ProjNodeTableField
{
	Str ProjCode  = "方案编号";
	Str ProjType  = "修改类型";
	Str ProjSn  = "本点号";
	Str ProjXcoord  = "横坐标";
	Str ProjYcoord  = "纵坐标 ";
	Str ProjDesc  = "描述";
	Str ProjLabel  = "标签";
	Str ProElev = "高程";
	Str ProjBaseDemand  = "基本需水量";
	Str ProjPattern  = "需水量模式";
	Str ProjDemandType = "需水量类型";
	Str ProjDiffuserCoeff = "扩散器系数";
	Str ProjInitQuality = "初始水质	";
	Str ProjSourceQuality = "源头水质	";
	Str ProjDmaID = "DMAID";
	Str ProjDemand = "实际需水量";
	Str ProjConsumption = "用水量";
	Str ProjLackWater = "用水缺额";
	Str ProjTotalWater = "总水量";
	Str ProjTotalHead = "水头";
	Str ProjPressure = "压力";
	Str ProjQuality = "水质";

}ProjNodeTable;

/**
方案线表
*/

typedef struct ProjPipeTableField
{
	Str ProjCode = "方案名";
	Str ProjType = "修改类型";
	Str ProjSn = "编号";
	Str ProjStartID = "起始节点";
	Str ProjEndID = "终止节点";
	Str ProjDesc = "描述";
	Str ProjLabel= "标签";
	Str ProjLength = "管长";
	Str ProjDiameter = "管径";
	Str ProjMaterial = "管材";
	Str ProjFractionCoeff = "摩阻系数";
	Str ProjLoclLossCoeff = "局损系数";
	Str ProjInitStatus = "初始状态";
	Str ProjMainstreamCoeff = "主流系数";
	Str ProjWallCoeff = "管壁系数";
	Str ProjLeakageCoeff1 = "漏水系数1";
	Str ProLeakageCoeff2 = "漏水系数2";
	Str ProjDmaID = "DMAID";
	Str ProjFlow = "流量";
	Str ProjVelocity = "流速";
	Str ProjUnitLoss = "单位水损";
	Str ProjStatus = "状态";
	Str ProjQuality = "水质";
	Str ProjWaterLeakage = "漏水量";
}ProjPipeTable;


/**
方案表
*/

typedef struct ProjTableField
{
	Str ProjName = "方案名";
	Str ProjCode = "方案编号";
	Str ProjType = "方案类型";
	Str ProjCreator = "创建人";
	Str ProjAddTime = "创建时间";
	Str ProjUpdateTime = "更新时间";
	Str ProjTime = "方案时间";
	Str ProjScore = "评分";
	Str ProDescribe = "评价";
	Str ProjEvaluate = "评估";
	Str ProjDemand = "水量调整";
	Str ProjWorkCode = "作业编号";
	Str ProjDetection = "关注检测点";
}ProjTable;


/**
    检测压力表
*/
typedef struct MonitorPressureTableField
{
	Str MonitorScard = "SCADAID";
	Str MonitorXCoord = "横坐标";
	Str MonitorYCoord = "纵坐标	";
	Str MonitorDesc = "描述";
	Str MonitorLabel = "标签";
	Str MonitorNode = "节点ID	";
	Str MonitorMonitor = "检测值	";
	Str MonitorCalc = "计算值	";
	Str MonitorError = "误差";
	Str MonitorMonitorAverage = "检测平均值";
	Str MonitorCalcAverage = "计算平均值";
	Str MonitorErrorAverage = "平均误差	";
	Str MonitorAbsErrirAverage = "平均绝对误差";
	Str MonitorSquareError = "均方根误差";
	Str MonitorErrorFlu = "误差波动";
	Str MonitorNashCoeff = "纳什系数";
	Str MonitorScore = "分数";
	Str MonitorReliability = "可靠度";

}MonitorPressureTable;


/**
	检测流量表
*/
typedef struct MonitorFlowTableField
{
	Str MonitorScard = "SCADAID";
	Str MonitorXCoord = "横坐标";
	Str MonitorYCoord = "纵坐标	";
	Str MonitorDesc = "描述";
	Str MonitorLabel = "标签";
	Str MonitorPipe= "管段ID	";
	Str MonitorMonitor = "检测值	";
	Str MonitorCalc = "计算值	";
	Str MonitorError = "误差";
	Str MonitorMonitorAverage = "检测平均值";
	Str MonitorCalcAverage = "计算平均值";
	Str MonitorErrorAverage = "平均误差	";
	Str MonitorAbsErrirAverage = "平均绝对误差";
	Str MonitorSquareError = "均方根误差";
	Str MonitorErrorFlu = "误差波动";
	Str MonitorNashCoeff = "纳什系数";
	Str MonitorScore = "分数";
	Str MonitorReliability = "可靠度";
}MonitorFlowTable;

typedef struct MonitorQualityTableField
{
	Str MonitorScard = "SCADAID";
	Str MonitorXCoord = "横坐标";
	Str MonitorYCoord = "纵坐标	";
	Str MonitorDesc = "描述";
	Str MonitorLabel = "标签";
	Str MonitorNode = "节点ID	";
	Str MonitorMonitor = "检测值	";
	Str MonitorCalc = "计算值	";
	Str MonitorError = "误差";
	Str MonitorMonitorAverage = "检测平均值";
	Str MonitorCalcAverage = "计算平均值";
	Str MonitorErrorAverage = "平均误差	";
	Str MonitorAbsErrirAverage = "平均绝对误差";
	Str MonitorSquareError = "均方根误差";
	Str MonitorErrorFlu = "误差波动";
	Str MonitorNashCoeff = "纳什系数";
	Str MonitorScore = "分数";
	Str MonitorReliability = "可靠度";
}MonitorQualityTable;


#endif // !CIVTABLEFIELD_H



