Commit bc6e92ab authored by 刘乐's avatar 刘乐

1, 删除多余文件

parent 7eeb415e
{
"CurrentProjectSetting": "无配置"
}
\ No newline at end of file
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
......@@ -20,7 +20,6 @@ CivHydrCalc::~CivHydrCalc()
bool CivHydrCalc::hydrSimulation(char* fileName, char* rptFile, char* binOutFile)
{
if (!exportInp(fileName))
return false;
......@@ -69,14 +68,13 @@ bool CivHydrCalc::hydrSimulation(char* fileName, char* rptFile, char* binOutFile
return false;
}
ENnextH(&tstep);
// 获取当前节点和管段数据
getNodeResult(iTime);
getLinkResult(iTime);
iTime++;
} while (tstep > 0);
return true;
}
......@@ -94,12 +92,15 @@ bool CivHydrCalc::exportInp(char* fileName)
if (!mDbConn->open())
return false;
bool patren = mDbConn->createTable(PATTERNTABLE, "public", CivDbConnection::PATTERN_TABLE);
bool curve = mDbConn->createTable(CURVETABLE, "public", CivDbConnection::CURVE_TABLE);
// 获取表格
Tables tables = mDbConn->getTables(mNetname);
//2,解析管网组件
// 解析管网组件顺序: 管线放最后
CivInp civInp(CivInp::HOURS);
int total = tables.size();
for (int i=0;i<total;i++)
{
......@@ -110,7 +111,20 @@ bool CivHydrCalc::exportInp(char* fileName)
assemble(table,civInp);
}
assemble(PIPELINE, civInp);
// 初始化选择
// 设置模式
Componets comps = mDbConn->getComponets(PATTERNTABLE);
CivI
size_t total = comps.size();
for (int i = 0; i < total; i++)
{
}
// 设置曲线
Componets comps = mDbConn->getComponets(CURVETABLE);
// 初始化参数
Options options;
options.units = Options::UNITS::LPS;
options.TRIALS = "40";
......@@ -132,9 +146,9 @@ bool CivHydrCalc::exportInp(char* fileName)
civInp.setDuration(24);
civInp.setTimestep("PATTERN", 1);
civInp.setTimestep("HYDRAULIC", 1);
civInp.setTimestep("QUALITY", 0);
civInp.setTimestep("QUALITY", 1);
civInp.setTimeStart("REPORT", 0);
civInp.setTimeStart("REPORT", 1);
civInp.writeToFile(fileName);
return true;
......@@ -197,6 +211,8 @@ void CivHydrCalc::assemble(const std::string& table, CivInp& inp)
JunctionsFields jontionFields;
Civitems jounItems;
Civitems nodeCoordItems;
Civitems patternItems;
int total = comps.size();
for (int i = 0; i < total; i++)
{
......
......@@ -63,26 +63,23 @@ Tables CivDbConnection::getTables(StrQuote netName,StrQuote schema)
return Tables();
std::string sql = "select \"name\" from public.__layer_info__ where net_code in(select code from public.__layer_net_info__ where \"name\" ='" + netName + "' and \"schema\" = '"+ schema +"')";
std::string sqlStr = CivCommonUtils::string_To_UTF8(sql);
const char* finalSql = sqlStr.c_str();
PGresult* result = PQexec(mConn, finalSql);
if (result == NULL)
if (!execSql(sql))
return Tables();
Tables tables;
int rows = PQntuples(result);
int columns = PQnfields(result);
int rows = PQntuples(mResult);
int columns = PQnfields(mResult);
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
char* item =PQgetvalue(result, i, j);
char* item =PQgetvalue(mResult, i, j);
std::string ss = CivCommonUtils::UTF8_To_string(item);
tables.push_back(ss);
}
}
PQclear(result);
PQclear(mResult);
return tables;
}
......@@ -97,20 +94,13 @@ bool CivDbConnection::updateNode(const NodeResultItems& nodeItems)
std::stringstream os;
os << "INSERT INTO public.__node_result__ ( ";
os << filedNames.Number;
os<< ",";
os<< filedNames.dDemand;
os<< ",";
os<< filedNames.dHead;
os<< ",";
os<< filedNames.dElevation;
os<< ",";
os<< filedNames.dPressure;
os<< ",";
os<< filedNames.dTankLevel;
os<< ",";
os<< filedNames.dTankMaxVolume;
os<< ",";
os <<filedNames.Number<<",";
os<< filedNames.dDemand << ",";
os<< filedNames.dHead<<",";
os<< filedNames.dElevation<< ",";
os<< filedNames.dPressure<< ",";
os<< filedNames.dTankLevel<< ",";
os<< filedNames.dTankMaxVolume<< ",";
os<< filedNames.dTankVolume;
/* os<< ",";
os<< filedNames.lTime;*/
......@@ -122,25 +112,18 @@ bool CivDbConnection::updateNode(const NodeResultItems& nodeItems)
{
NodeResultItem item = nodeItems[i];
os << "('" << item.szNo << "',";
os << item.dDemand;
os << ",";
os << item.dHead;
os << ",";
os << item.dElevation;
os << ",";
os << item.dPressure;
os << ",";
os << item.dTankLevel;
os << ",";
os << item.dTankMaxVolume;
os << ",";
os << item.dDemand << ",";
os << item.dHead << ",";
os << item.dElevation << ",";
os << item.dPressure << ",";
os << item.dTankLevel << ",";
os << item.dTankMaxVolume << ",";
os << item.dTankVolume;
/* os << ",";
os << item.lTime; */
if (i == (total - 1))
{
os << ")";
os << ")";
}
else
{
......@@ -199,24 +182,16 @@ bool CivDbConnection::updateLink(const LinkResultItems& lineItems)
{
LinkFiledName filedNames;
os<< "INSERT INTO public.__pipe_result__( ";
os<< filedNames.szNo;
os<< ",";
os<< filedNames.dFlow;
os<< ",";
os<< filedNames.szNo<< ",";
os<< filedNames.dFlow<< ",";
/* os<< filedNames.nFlowDirect;
os<< ",";*/
os<< filedNames.dVelocity;
os<< ",";
os<< filedNames.dHeadloss;
os<< ",";
os<< filedNames.dUnitHeadloss;
os<< ",";
os<< filedNames.dFromNodHeadloss;
os<< ",";
os<< filedNames.dToNodHeadloss;
os<< ",";
os<< filedNames.dLocalHeadloss;
os<< ",";
os<< filedNames.dVelocity<< ",";
os<< filedNames.dHeadloss<< ",";
os<< filedNames.dUnitHeadloss<< ",";
os<< filedNames.dFromNodHeadloss<< ",";
os<< filedNames.dToNodHeadloss<< ",";
os<< filedNames.dLocalHeadloss<< ",";
os<< filedNames.dFrictionHeadloss;
/*os<< ",";
os<< filedNames.szStatus;*/
......@@ -229,25 +204,17 @@ bool CivDbConnection::updateLink(const LinkResultItems& lineItems)
for (int i = 0; i < total; i++)
{
LinkResultItem item = lineItems[i];
os<<"('" <<item.szNo<<"'";
os<< ",";
os<< item.dFlow;
//os<< ",";
os<<"('" <<item.szNo<<"'"<< ",";
os<< item.dFlow<< ",";
/* int direct = item.nFlowDirect;
os<< direct;*/
os<< ",";
os<< item.dVelocity;
os<< ",";
os<< item.dHeadloss;
os<< ",";
os<< item.dUnitHeadloss;
os<< ",";
os<< item.dFromNodHeadloss;
os<< ",";
os<< item.dToNodHeadloss;
os<< ",";
os<< item.dLocalHeadloss;
os<< ",";
// os<< ",";
os<< item.dVelocity<< ",";
os<< item.dHeadloss<< ",";
os<< item.dUnitHeadloss<< ",";
os<< item.dFromNodHeadloss<< ",";
os<< item.dToNodHeadloss<< ",";
os<< item.dLocalHeadloss<< ",";
os<< item.dFrictionHeadloss;
/*os<< ",";
os<< "'"<<item.szStatus<<"'";*/
......@@ -343,6 +310,28 @@ Componets CivDbConnection::getComponets(StrQuote tableName)
return nodes;
}
Componets CivDbConnection::getComponetsByWhere(StrQuote tableName, StrQuote where)
{
if (!isValid())
return Componets();
char sql[128] = "select * from table ";
strcat_s(sql, tableName.c_str());
strcat_s(sql, where.c_str());
if (!execSql(sql))
{
return Componets();
}
Componets comps;
// 取数据到容器中
getData(mResult, comps);
return comps;
}
void CivDbConnection::getData(PGresult* result, Componets& comp)
{
if (result == NULL)
......@@ -594,37 +583,59 @@ bool CivDbConnection::createTable(StrQuote tableName, StrQuote schema,TableType
return true;
CivTableTemp tableTemp(tableName);
LinkFiledName pipeFileds;
switch (tableType)
{
case NODE_TABLE:
tableTemp.addProperty("本点号", CivTableTemp::FILED_VARCHAR);
{
NodeFieldName filedName;
tableTemp.addProperty(filedName.Number, CivTableTemp::FILED_VARCHAR);
tableTemp.addProperty(filedName.dPressure, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(filedName.dHead, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(filedName.dElevation, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(filedName.dDemand, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(filedName.dTankVolume, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(filedName.dTankMaxVolume, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(filedName.dTankLevel, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("类型", CivTableTemp::FILED_INT);
tableTemp.addProperty("压力", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("水头", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("标高", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("实际需水量", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("水池容量", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("水池最大容量", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("液位高度", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("水质", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("时间", CivTableTemp::FILED_DATETIME);
}
break;
case PIPE_TABLE:
case PIPE_TABLE:
{
LinkFiledName pipeFileds;
tableTemp.addProperty(pipeFileds.szNo, CivTableTemp::FILED_VARCHAR);
tableTemp.addProperty(pipeFileds.dFlow, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.nFlowDirect, CivTableTemp::FILED_INT);
tableTemp.addProperty(pipeFileds.dVelocity, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.dHeadloss , CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.dHeadloss, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.dUnitHeadloss, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.dFromNodHeadloss, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.dToNodHeadloss, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.dLocalHeadloss, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.dFrictionHeadloss, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(pipeFileds.szStatus, CivTableTemp::FILED_VARCHAR);
tableTemp.addProperty( "水质", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("水质", CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty("时间", CivTableTemp::FILED_DATETIME);
}
break;
case PATTERN_TABLE:
{
PatternFields fileds;
tableTemp.addProperty(fileds.Name, CivTableTemp::FILED_VARCHAR);
tableTemp.addProperty(fileds.Value, CivTableTemp::FILED_JSON);
tableTemp.addProperty(fileds.NetName, CivTableTemp::FILED_VARCHAR);
}
break;
case CURVE_TABLE:
{
CurvesFields fileds;
tableTemp.addProperty(fileds.Label, CivTableTemp::FILED_VARCHAR);
tableTemp.addProperty(fileds.Type, CivTableTemp::FILED_VARCHAR);
tableTemp.addProperty(fileds.XCoord, CivTableTemp::FILED_DOUBLE);
tableTemp.addProperty(fileds.YCoord, CivTableTemp::FILED_DOUBLE);
}
break;
default:
break;
......@@ -650,7 +661,6 @@ bool CivDbConnection::execSql(std::string sql)
return false;
}
mLastError = PQresultErrorMessage(mResult);
return true;
}
......
......@@ -20,7 +20,9 @@ public:
enum TableType
{
NODE_TABLE, // 计算结果点表
PIPE_TABLE // 计算结果线表
PIPE_TABLE, // 计算结果线表
PATTERN_TABLE, // 模式表
CURVE_TABLE
};
CivDbConnection(char* uri);
......@@ -38,6 +40,8 @@ public:
*/
Componets getComponets(StrQuote tableName);
Componets getComponetsByWhere(StrQuote tableName, StrQuote where);
/**
*@brief 水泵,阀门 (节点转换为管线)
*@tableName: 组件表
......@@ -52,7 +56,7 @@ public:
*@schema:
*@tableType:表类型,点结果,线结果
*/
bool createTable(StrQuote tableName,StrQuote schema, TableType tableType);
bool createTable(StrQuote tableName, StrQuote schema, TableType tableType);
/**
*@brief 更新点表数据
......
......@@ -9,7 +9,7 @@ CivTableTemp::CivTableTemp(std::string tableName)
mFieldTyepMap.insert(std::pair<FieldType, std::string>(CivTableTemp::FILED_DOUBLE, "double precision"));
mFieldTyepMap.insert(std::pair<FieldType, std::string>(CivTableTemp::FILED_VARCHAR, "varchar(20)"));
mFieldTyepMap.insert(std::pair<FieldType, std::string>(CivTableTemp::FILED_DATETIME, "timestamp"));
mFieldTyepMap.insert(std::pair<FieldType, std::string>(CivTableTemp::FILED_JSON, "json"));
}
CivTableTemp::~CivTableTemp()
......
......@@ -25,7 +25,8 @@ public:
FILED_INTEGER,
FILED_DOUBLE,
FILED_VARCHAR,
FILED_DATETIME
FILED_DATETIME,
FILED_JSON
};
explicit CivTableTemp(std::string tableName);
......
......@@ -12,6 +12,8 @@ typedef const std::string& StrQuote;
#define RESIVOIR Str("水库")
#define TANK Str("水池")
#define PUMP Str("水泵")
#define PATTERNTABLE Str("__pattern__")
#define CURVETABLE Str("__curve__")
#define PRV_TYPE Str("稳压阀")
#define PSV_TYPE Str("减压阀")
......@@ -142,6 +144,21 @@ struct JunctionsFields {
Str InitQual = "初始水质";
} ;
// 模式表字段
struct PatternFields {
Str Name = "模式名";
Str Value = "值";
Str NetName = "管网名";
};
// 曲线定义表
struct CurvesFields {
Str Label = "曲线名";
Str XCoord = "x";
Str YCoord = "y";
Str Type = "类型";
};
// 水池
//[TANKS] ;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
struct TanksFields {
......
No preview for this file type
No preview for this file type
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