Merge branch 'master' of https://e.coding.net/tjwater/tjwatercloud/TJWaterServer
This commit is contained in:
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# python cache
|
||||||
|
__pycache__/
|
||||||
|
|
||||||
|
# epanet
|
||||||
|
*.rpt
|
||||||
|
*.opt
|
||||||
Binary file not shown.
@@ -1,5 +0,0 @@
|
|||||||
1、问题描述:
|
|
||||||
在卸载office等应用或电脑崩溃后会出现缺VCRUNTIME140_1.dll的情况
|
|
||||||
2、解决方法:
|
|
||||||
64位的电脑把“VCRUNTIME140_1.dll”文件放到“C:\Windows\System32”文件夹里即可
|
|
||||||
32位的电脑把“VCRUNTIME140_1.dll”文件放到“C:\Windows\SysWOW64”文件夹里即可
|
|
||||||
Binary file not shown.
Binary file not shown.
5
script/admin.py
Normal file
5
script/admin.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
from tjnetwork_admin import *
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
delete_template()
|
||||||
|
create_template()
|
||||||
25
script/sql/base_create.sql
Normal file
25
script/sql/base_create.sql
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
CREATE TYPE _NODE_TYPE AS ENUM ('JUNCTION', 'RESERVOIR', 'TANK');
|
||||||
|
|
||||||
|
CREATE TYPE _LINK_TYPE AS ENUM ('PIPE', 'PUMP', 'VALVE');
|
||||||
|
|
||||||
|
CREATE TABLE _NODE
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY
|
||||||
|
, Type _NODE_TYPE NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE _LINK
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY
|
||||||
|
, Type _LINK_TYPE NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE _CURVE
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE _PATTERN
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY
|
||||||
|
);
|
||||||
11
script/sql/base_drop.sql
Normal file
11
script/sql/base_drop.sql
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
DROP TABLE IF EXISTS _PATTERN;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS _CURVE;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS _LINK;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS _NODE;
|
||||||
|
|
||||||
|
DROP TYPE IF EXISTS _LINK_TYPE;
|
||||||
|
|
||||||
|
DROP TYPE IF EXISTS _NODE_TYPE;
|
||||||
6
script/sql/section_create/1.title.sql
Normal file
6
script/sql/section_create/1.title.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
-- [TITLE]
|
||||||
|
|
||||||
|
CREATE TABLE TITLE
|
||||||
|
(
|
||||||
|
Value TEXT
|
||||||
|
);
|
||||||
29
script/sql/section_create/10.status.sql
Normal file
29
script/sql/section_create/10.status.sql
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
-- [STATUS]
|
||||||
|
|
||||||
|
CREATE TYPE STATUS_PIPE_PUMP_STATUS AS ENUM ('OPEN', 'CLOSED');
|
||||||
|
|
||||||
|
CREATE TABLE STATUS_PIPE
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES PIPES(ID)
|
||||||
|
, Status STATUS_PIPE_PUMP_STATUS NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE STATUS_PUMP
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES PUMPS(ID)
|
||||||
|
, Status STATUS_PIPE_PUMP_STATUS NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TYPE STATUS_VALVE_STATUS AS ENUM ('OPEN', 'CLOSED', 'ACTIVE');
|
||||||
|
|
||||||
|
CREATE TABLE STATUS_VALVE
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES VALVES(ID)
|
||||||
|
, Status STATUS_VALVE_STATUS NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE STATUS_LINK
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Setting NUMERIC NOT NULL
|
||||||
|
);
|
||||||
7
script/sql/section_create/11.patterns.sql
Normal file
7
script/sql/section_create/11.patterns.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
-- [PATTERNS]
|
||||||
|
|
||||||
|
CREATE TABLE PATTERNS
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) REFERENCES _PATTERN(ID) NOT NULL
|
||||||
|
, Multipliers NUMERIC NOT NULL
|
||||||
|
);
|
||||||
8
script/sql/section_create/12.curves.sql
Normal file
8
script/sql/section_create/12.curves.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
-- [CURVES]
|
||||||
|
|
||||||
|
CREATE TABLE CURVES
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) REFERENCES _CURVE(ID) NOT NULL
|
||||||
|
, X NUMERIC NOT NULL
|
||||||
|
, Y NUMERIC NOT NULL
|
||||||
|
);
|
||||||
30
script/sql/section_create/13.controls.sql
Normal file
30
script/sql/section_create/13.controls.sql
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
-- [CONTROLS]
|
||||||
|
|
||||||
|
CREATE TYPE CONTROLS_1_PREP AS ENUM ('ABOVE', 'BELOW');
|
||||||
|
|
||||||
|
-- LINK linkID status IF NODE nodeID ABOVE / BELOW value
|
||||||
|
CREATE TABLE CONTROLS_1
|
||||||
|
(
|
||||||
|
LinkID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Status TEXT NOT NULL -- OPEN / CLOSED, a pump speed setting, or a control valve setting
|
||||||
|
, NodeID VARCHAR(32) REFERENCES _NODE(ID) NOT NULL
|
||||||
|
, Prep CONTROLS_1_PREP NOT NULL
|
||||||
|
, Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- LINK linkID status AT TIME time
|
||||||
|
CREATE TABLE CONTROLS_2
|
||||||
|
(
|
||||||
|
LinkID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Status TEXT NOT NULL -- OPEN / CLOSED, a pump speed setting, or a control valve setting
|
||||||
|
, Time INTERVAL HOUR
|
||||||
|
);
|
||||||
|
|
||||||
|
-- LINK linkID status AT CLOCKTIME clocktime AM / PM
|
||||||
|
CREATE TABLE CONTROLS_3
|
||||||
|
(
|
||||||
|
LinkID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Status TEXT NOT NULL -- OPEN / CLOSED, a pump speed setting, or a control valve setting
|
||||||
|
, ClockTimeHour INTERVAL HOUR -- get AM/PM from it
|
||||||
|
, ClockTimeMin INTERVAL MINUTE
|
||||||
|
);
|
||||||
6
script/sql/section_create/14.rules.sql
Normal file
6
script/sql/section_create/14.rules.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
-- [RULES]
|
||||||
|
|
||||||
|
CREATE TABLE RULES
|
||||||
|
(
|
||||||
|
Content TEXT PRIMARY KEY
|
||||||
|
);
|
||||||
24
script/sql/section_create/15.energy.sql
Normal file
24
script/sql/section_create/15.energy.sql
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
-- [ENERGY]
|
||||||
|
|
||||||
|
CREATE TYPE ENERGY_PARAM AS ENUM ('PRICE', 'PATTERN', 'EFFIC');
|
||||||
|
|
||||||
|
-- GLOBAL PRICE / PATTERN / EFFIC value
|
||||||
|
CREATE TABLE ENERGY_GLOBAL
|
||||||
|
(
|
||||||
|
Param ENERGY_PARAM NOT NULL
|
||||||
|
, Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- PUMP pumpID PRICE / PATTERN / EFFIC value
|
||||||
|
CREATE TABLE ENERGY_PUMP
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) REFERENCES PUMPS(ID) NOT NULL
|
||||||
|
, Param ENERGY_PARAM NOT NULL
|
||||||
|
, Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- DEMAND CHARGE value
|
||||||
|
CREATE TABLE ENERGY_DEMAND_CHARGE
|
||||||
|
(
|
||||||
|
Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
7
script/sql/section_create/16.emitters.sql
Normal file
7
script/sql/section_create/16.emitters.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
-- [EMITTERS]
|
||||||
|
|
||||||
|
CREATE TABLE EMITTERS
|
||||||
|
(
|
||||||
|
Junction VARCHAR(32) PRIMARY KEY REFERENCES JUNCTIONS(ID)
|
||||||
|
, Coefficient NUMERIC NOT NULL
|
||||||
|
);
|
||||||
7
script/sql/section_create/17.quality.sql
Normal file
7
script/sql/section_create/17.quality.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
-- [QUALITY]
|
||||||
|
|
||||||
|
CREATE TABLE QUALITY
|
||||||
|
(
|
||||||
|
Node VARCHAR(32) PRIMARY KEY REFERENCES _NODE(ID)
|
||||||
|
, InitialQual NUMERIC NOT NULL
|
||||||
|
);
|
||||||
11
script/sql/section_create/18.sources.sql
Normal file
11
script/sql/section_create/18.sources.sql
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
-- [SOURCES]
|
||||||
|
|
||||||
|
CREATE TYPE SOURCES_TYPE AS ENUM ('CONCEN', 'MASS', 'FLOWPACED', 'SETPOINT');
|
||||||
|
|
||||||
|
CREATE TABLE SOURCES
|
||||||
|
(
|
||||||
|
Node VARCHAR(32) PRIMARY KEY REFERENCES _NODE(ID)
|
||||||
|
, Type SOURCES_TYPE NOT NULL
|
||||||
|
, Strength NUMERIC NOT NULL
|
||||||
|
, TimePattern VARCHAR(32) REFERENCES _PATTERN(ID)
|
||||||
|
);
|
||||||
42
script/sql/section_create/19.reactions.sql
Normal file
42
script/sql/section_create/19.reactions.sql
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
-- [REACTIONS]
|
||||||
|
|
||||||
|
CREATE TYPE REACTIONS_ORDER_PARAM AS ENUM ('BULK', 'WALL', 'TANK');
|
||||||
|
|
||||||
|
CREATE TABLE REACTIONS_ORDER
|
||||||
|
(
|
||||||
|
Key REACTIONS_ORDER_PARAM NOT NULL
|
||||||
|
, Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TYPE REACTIONS_GLOBAL_PARAM AS ENUM ('BULK', 'WALL');
|
||||||
|
|
||||||
|
CREATE TABLE REACTIONS_GLOBAL
|
||||||
|
(
|
||||||
|
Key REACTIONS_GLOBAL_PARAM NOT NULL
|
||||||
|
, Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TYPE REACTIONS_PIPE_PARAM AS ENUM ('BULK', 'WALL');
|
||||||
|
|
||||||
|
CREATE TABLE REACTIONS_PIPE
|
||||||
|
(
|
||||||
|
Key REACTIONS_PIPE_PARAM NOT NULL
|
||||||
|
, Pipe VARCHAR(32) REFERENCES PIPES(ID) NOT NULL
|
||||||
|
, Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE REACTIONS_TANK
|
||||||
|
(
|
||||||
|
Tank VARCHAR(32) REFERENCES TANKS(ID) NOT NULL
|
||||||
|
, Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE REACTIONS_LIMITING_POTENTIAL
|
||||||
|
(
|
||||||
|
Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE REACTIONS_ROUGHNESS_CORRELATION
|
||||||
|
(
|
||||||
|
Value NUMERIC NOT NULL
|
||||||
|
);
|
||||||
9
script/sql/section_create/2.junctions.sql
Normal file
9
script/sql/section_create/2.junctions.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [JUNCTIONS]
|
||||||
|
|
||||||
|
CREATE TABLE JUNCTIONS
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _NODE(ID)
|
||||||
|
, Elevation NUMERIC NOT NULL
|
||||||
|
, Demand NUMERIC
|
||||||
|
, Pattern VARCHAR(32) REFERENCES _PATTERN(ID)
|
||||||
|
);
|
||||||
10
script/sql/section_create/20.mixing.sql
Normal file
10
script/sql/section_create/20.mixing.sql
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
-- [MIXING]
|
||||||
|
|
||||||
|
CREATE TYPE MIXING_Model AS ENUM ('MIXED', '2COMP', 'FIFO', 'LIFO');
|
||||||
|
|
||||||
|
CREATE TABLE MIXING
|
||||||
|
(
|
||||||
|
Tank VARCHAR(32) PRIMARY KEY REFERENCES TANKS(ID)
|
||||||
|
, Model MIXING_Model NOT NULL
|
||||||
|
, Value NUMERIC
|
||||||
|
);
|
||||||
9
script/sql/section_create/21.times.sql
Normal file
9
script/sql/section_create/21.times.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [TIMES]
|
||||||
|
|
||||||
|
-- TODO: constraint
|
||||||
|
|
||||||
|
CREATE TABLE TIMES
|
||||||
|
(
|
||||||
|
Key TEXT NOT NULL
|
||||||
|
, Value TEXT NOT NULL
|
||||||
|
);
|
||||||
9
script/sql/section_create/22.report.sql
Normal file
9
script/sql/section_create/22.report.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [REPORT]
|
||||||
|
|
||||||
|
-- TODO: constraint
|
||||||
|
|
||||||
|
CREATE TABLE REPORT
|
||||||
|
(
|
||||||
|
Key TEXT NOT NULL
|
||||||
|
, Value TEXT NOT NULL
|
||||||
|
);
|
||||||
9
script/sql/section_create/23.options.sql
Normal file
9
script/sql/section_create/23.options.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [OPTIONS]
|
||||||
|
|
||||||
|
-- TODO: constraint
|
||||||
|
|
||||||
|
CREATE TABLE OPTIONS
|
||||||
|
(
|
||||||
|
Key TEXT NOT NULL
|
||||||
|
, Value TEXT NOT NULL
|
||||||
|
);
|
||||||
10
script/sql/section_create/24.coordinates.sql
Normal file
10
script/sql/section_create/24.coordinates.sql
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
-- [COORDINATES]
|
||||||
|
|
||||||
|
CREATE TABLE COORDINATES
|
||||||
|
(
|
||||||
|
Node VARCHAR(32) PRIMARY KEY REFERENCES _NODE(ID)
|
||||||
|
, Coord POINT NOT NULL DEFAULT(POINT(0.0, 0.0))
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX COORDINATES_SPGIST ON COORDINATES USING SPGIST(Coord);
|
||||||
|
CREATE INDEX COORDINATES_GIST ON COORDINATES USING GIST(Coord);
|
||||||
8
script/sql/section_create/25.vertices.sql
Normal file
8
script/sql/section_create/25.vertices.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
-- [VERTICES]
|
||||||
|
|
||||||
|
CREATE TABLE VERTICES
|
||||||
|
(
|
||||||
|
Link VARCHAR(32) REFERENCES _LINK(ID) NOT NULL
|
||||||
|
, X NUMERIC NOT NULL
|
||||||
|
, Y NUMERIC NOT NULL
|
||||||
|
);
|
||||||
9
script/sql/section_create/26.labels.sql
Normal file
9
script/sql/section_create/26.labels.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [LABELS]
|
||||||
|
|
||||||
|
CREATE TABLE LABELS
|
||||||
|
(
|
||||||
|
X NUMERIC NOT NULL
|
||||||
|
, Y NUMERIC NOT NULL
|
||||||
|
, Label TEXT NOT NULL
|
||||||
|
, AnchorNode VARCHAR(32) REFERENCES _NODE(ID)
|
||||||
|
);
|
||||||
6
script/sql/section_create/27.backdrop.sql
Normal file
6
script/sql/section_create/27.backdrop.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
-- [BACKDROP]
|
||||||
|
|
||||||
|
CREATE TABLE BACKDROP
|
||||||
|
(
|
||||||
|
Content TEXT PRIMARY KEY
|
||||||
|
);
|
||||||
1
script/sql/section_create/28.end.sql
Normal file
1
script/sql/section_create/28.end.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- [END]
|
||||||
8
script/sql/section_create/3.reservoirs.sql
Normal file
8
script/sql/section_create/3.reservoirs.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
-- [RESERVOIRS]
|
||||||
|
|
||||||
|
CREATE TABLE RESERVOIRS
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _NODE(ID)
|
||||||
|
, Head NUMERIC NOT NULL
|
||||||
|
, Pattern VARCHAR(32) REFERENCES _PATTERN(ID)
|
||||||
|
);
|
||||||
16
script/sql/section_create/4.tanks.sql
Normal file
16
script/sql/section_create/4.tanks.sql
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
-- [TANKS]
|
||||||
|
|
||||||
|
CREATE TYPE TANKS_OVERFLOW AS ENUM ('YES', 'NO');
|
||||||
|
|
||||||
|
CREATE TABLE TANKS
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _NODE(ID)
|
||||||
|
, Elevation NUMERIC NOT NULL
|
||||||
|
, InitLevel NUMERIC NOT NULL
|
||||||
|
, MinLevel NUMERIC NOT NULL
|
||||||
|
, MaxLevel NUMERIC NOT NULL
|
||||||
|
, Diameter NUMERIC NOT NULL
|
||||||
|
, MinVol NUMERIC NOT NULL
|
||||||
|
, VolCurve VARCHAR(32) REFERENCES _CURVE(ID)
|
||||||
|
, Overflow TANKS_OVERFLOW
|
||||||
|
);
|
||||||
15
script/sql/section_create/5.pipes.sql
Normal file
15
script/sql/section_create/5.pipes.sql
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
-- [PIPES]
|
||||||
|
|
||||||
|
CREATE TYPE PIPES_STATUS AS ENUM ('OPEN', 'CLOSED', 'CV');
|
||||||
|
|
||||||
|
CREATE TABLE PIPES
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Node1 VARCHAR(32) REFERENCES _NODE(ID) NOT NULL
|
||||||
|
, Node2 VARCHAR(32) REFERENCES _NODE(ID) NOT NULL
|
||||||
|
, Length NUMERIC NOT NULL
|
||||||
|
, Diameter NUMERIC NOT NULL
|
||||||
|
, Roughness NUMERIC NOT NULL
|
||||||
|
, MinorLoss NUMERIC NOT NULL
|
||||||
|
, Status PIPES_STATUS NOT NULL
|
||||||
|
);
|
||||||
32
script/sql/section_create/6.pumps.sql
Normal file
32
script/sql/section_create/6.pumps.sql
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
-- [PUMPS]
|
||||||
|
|
||||||
|
CREATE TABLE PUMPS
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Node1 VARCHAR(32) REFERENCES _NODE(ID) NOT NULL
|
||||||
|
, Node2 VARCHAR(32) REFERENCES _NODE(ID) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE PUMPS_PROPERTY_POWER
|
||||||
|
(
|
||||||
|
ID VARCHAR PRIMARY KEY REFERENCES PUMPS(ID)
|
||||||
|
, Value VARCHAR(32) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE PUMPS_PROPERTY_SPEED
|
||||||
|
(
|
||||||
|
ID VARCHAR PRIMARY KEY REFERENCES PUMPS(ID)
|
||||||
|
, Value VARCHAR(32) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE PUMPS_PROPERTY_HEAD
|
||||||
|
(
|
||||||
|
ID VARCHAR PRIMARY KEY REFERENCES PUMPS(ID)
|
||||||
|
, Head VARCHAR(32) REFERENCES _CURVE(ID) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE PUMPS_PROPERTY_PATTERN
|
||||||
|
(
|
||||||
|
ID VARCHAR PRIMARY KEY REFERENCES PUMPS(ID)
|
||||||
|
, Pattern VARCHAR(32) REFERENCES _PATTERN(ID) NOT NULL
|
||||||
|
);
|
||||||
14
script/sql/section_create/7.valves.sql
Normal file
14
script/sql/section_create/7.valves.sql
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
-- [VALVES]
|
||||||
|
|
||||||
|
CREATE TYPE VALVES_TYPE AS ENUM ('PRV', 'PSV', 'PBV', 'FCV', 'TCV', 'GPV');
|
||||||
|
|
||||||
|
CREATE TABLE VALVES
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Node1 VARCHAR(32) REFERENCES _NODE(ID) NOT NULL
|
||||||
|
, Node2 VARCHAR(32) REFERENCES _NODE(ID) NOT NULL
|
||||||
|
, Diameter NUMERIC NOT NULL
|
||||||
|
, Type VALVES_TYPE NOT NULL
|
||||||
|
, Setting NUMERIC NOT NULL
|
||||||
|
, MinorLoss NUMERIC NOT NULL
|
||||||
|
);
|
||||||
13
script/sql/section_create/8.tags.sql
Normal file
13
script/sql/section_create/8.tags.sql
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
-- [TAGS]
|
||||||
|
|
||||||
|
CREATE TABLE TAGS_NODE
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _NODE(ID)
|
||||||
|
, Tag TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE TAGS_LINK
|
||||||
|
(
|
||||||
|
ID VARCHAR(32) PRIMARY KEY REFERENCES _LINK(ID)
|
||||||
|
, Tag TEXT NOT NULL
|
||||||
|
);
|
||||||
9
script/sql/section_create/9.demands.sql
Normal file
9
script/sql/section_create/9.demands.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [DEMANDS]
|
||||||
|
|
||||||
|
CREATE TABLE DEMANDS
|
||||||
|
(
|
||||||
|
Junction VARCHAR(32) REFERENCES JUNCTIONS(ID) NOT NULL
|
||||||
|
, Demand NUMERIC NOT NULL
|
||||||
|
, Pattern VARCHAR(32) REFERENCES _PATTERN(ID)
|
||||||
|
, Category TEXT NOT NULL
|
||||||
|
);
|
||||||
3
script/sql/section_drop/1.title.sql
Normal file
3
script/sql/section_drop/1.title.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [TITLE]
|
||||||
|
|
||||||
|
DROP TABLE TITLE;
|
||||||
13
script/sql/section_drop/10.status.sql
Normal file
13
script/sql/section_drop/10.status.sql
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
-- [STATUS]
|
||||||
|
|
||||||
|
DROP TABLE STATUS_LINK;
|
||||||
|
|
||||||
|
DROP TABLE STATUS_VALVE;
|
||||||
|
|
||||||
|
DROP TYPE STATUS_VALVE_STATUS;
|
||||||
|
|
||||||
|
DROP TABLE STATUS_PUMP;
|
||||||
|
|
||||||
|
DROP TABLE STATUS_PIPE;
|
||||||
|
|
||||||
|
DROP TYPE STATUS_PIPE_PUMP_STATUS;
|
||||||
3
script/sql/section_drop/11.patterns.sql
Normal file
3
script/sql/section_drop/11.patterns.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [PATTERNS]
|
||||||
|
|
||||||
|
DROP TABLE PATTERNS;
|
||||||
3
script/sql/section_drop/12.curves.sql
Normal file
3
script/sql/section_drop/12.curves.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [CURVES]
|
||||||
|
|
||||||
|
DROP TABLE CURVES;
|
||||||
9
script/sql/section_drop/13.controls.sql
Normal file
9
script/sql/section_drop/13.controls.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [CONTROLS]
|
||||||
|
|
||||||
|
DROP TABLE CONTROLS_3;
|
||||||
|
|
||||||
|
DROP TABLE CONTROLS_2;
|
||||||
|
|
||||||
|
DROP TABLE CONTROLS_1;
|
||||||
|
|
||||||
|
DROP TYPE CONTROLS_1_PREP;
|
||||||
3
script/sql/section_drop/14.rules.sql
Normal file
3
script/sql/section_drop/14.rules.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [RULES]
|
||||||
|
|
||||||
|
DROP TABLE RULES;
|
||||||
9
script/sql/section_drop/15.energy.sql
Normal file
9
script/sql/section_drop/15.energy.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- [ENERGY]
|
||||||
|
|
||||||
|
DROP TABLE ENERGY_DEMAND_CHARGE;
|
||||||
|
|
||||||
|
DROP TABLE ENERGY_PUMP;
|
||||||
|
|
||||||
|
DROP TABLE ENERGY_GLOBAL;
|
||||||
|
|
||||||
|
DROP TYPE ENERGY_PARAM;
|
||||||
3
script/sql/section_drop/16.emitters.sql
Normal file
3
script/sql/section_drop/16.emitters.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [EMITTERS]
|
||||||
|
|
||||||
|
DROP TABLE EMITTERS;
|
||||||
3
script/sql/section_drop/17.quality.sql
Normal file
3
script/sql/section_drop/17.quality.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [QUALITY]
|
||||||
|
|
||||||
|
DROP TABLE QUALITY;
|
||||||
5
script/sql/section_drop/18.sources.sql
Normal file
5
script/sql/section_drop/18.sources.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
-- [SOURCES]
|
||||||
|
|
||||||
|
DROP TABLE SOURCES;
|
||||||
|
|
||||||
|
DROP TYPE SOURCES_TYPE;
|
||||||
19
script/sql/section_drop/19.reactions.sql
Normal file
19
script/sql/section_drop/19.reactions.sql
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
-- [REACTIONS]
|
||||||
|
|
||||||
|
DROP TABLE REACTIONS_ROUGHNESS_CORRELATION;
|
||||||
|
|
||||||
|
DROP TABLE REACTIONS_LIMITING_POTENTIAL;
|
||||||
|
|
||||||
|
DROP TABLE REACTIONS_TANK;
|
||||||
|
|
||||||
|
DROP TABLE REACTIONS_PIPE;
|
||||||
|
|
||||||
|
DROP TYPE REACTIONS_PIPE_PARAM;
|
||||||
|
|
||||||
|
DROP TABLE REACTIONS_GLOBAL;
|
||||||
|
|
||||||
|
DROP TYPE REACTIONS_GLOBAL_PARAM;
|
||||||
|
|
||||||
|
DROP TABLE REACTIONS_ORDER;
|
||||||
|
|
||||||
|
DROP TYPE REACTIONS_ORDER_PARAM;
|
||||||
3
script/sql/section_drop/2.junctions.sql
Normal file
3
script/sql/section_drop/2.junctions.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [JUNCTIONS]
|
||||||
|
|
||||||
|
DROP TABLE JUNCTIONS;
|
||||||
5
script/sql/section_drop/20.mixing.sql
Normal file
5
script/sql/section_drop/20.mixing.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
-- [MIXING]
|
||||||
|
|
||||||
|
DROP TABLE MIXING;
|
||||||
|
|
||||||
|
DROP TYPE MIXING_Model;
|
||||||
3
script/sql/section_drop/21.times.sql
Normal file
3
script/sql/section_drop/21.times.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [TIMES]
|
||||||
|
|
||||||
|
DROP TABLE TIMES;
|
||||||
3
script/sql/section_drop/22.report.sql
Normal file
3
script/sql/section_drop/22.report.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [REPORT]
|
||||||
|
|
||||||
|
DROP TABLE REPORT;
|
||||||
3
script/sql/section_drop/23.options.sql
Normal file
3
script/sql/section_drop/23.options.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [OPTIONS]
|
||||||
|
|
||||||
|
DROP TABLE OPTIONS;
|
||||||
7
script/sql/section_drop/24.coordinates.sql
Normal file
7
script/sql/section_drop/24.coordinates.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
-- [COORDINATES]
|
||||||
|
|
||||||
|
DROP INDEX COORDINATES_GIST;
|
||||||
|
|
||||||
|
DROP INDEX COORDINATES_SPGIST;
|
||||||
|
|
||||||
|
DROP TABLE COORDINATES;
|
||||||
3
script/sql/section_drop/25.vertices.sql
Normal file
3
script/sql/section_drop/25.vertices.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [VERTICES]
|
||||||
|
|
||||||
|
DROP TABLE VERTICES;
|
||||||
3
script/sql/section_drop/26.labels.sql
Normal file
3
script/sql/section_drop/26.labels.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [LABELS]
|
||||||
|
|
||||||
|
DROP TABLE LABELS;
|
||||||
3
script/sql/section_drop/27.backdrop.sql
Normal file
3
script/sql/section_drop/27.backdrop.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [BACKDROP]
|
||||||
|
|
||||||
|
DROP TABLE BACKDROP;
|
||||||
1
script/sql/section_drop/28.end.sql
Normal file
1
script/sql/section_drop/28.end.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- [END]
|
||||||
3
script/sql/section_drop/3.reservoirs.sql
Normal file
3
script/sql/section_drop/3.reservoirs.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [RESERVOIRS]
|
||||||
|
|
||||||
|
DROP TABLE RESERVOIRS;
|
||||||
5
script/sql/section_drop/4.tanks.sql
Normal file
5
script/sql/section_drop/4.tanks.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
-- [TANKS]
|
||||||
|
|
||||||
|
DROP TABLE TANKS;
|
||||||
|
|
||||||
|
DROP TYPE TANKS_OVERFLOW;
|
||||||
5
script/sql/section_drop/5.pipes.sql
Normal file
5
script/sql/section_drop/5.pipes.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
-- [PIPES]
|
||||||
|
|
||||||
|
DROP TABLE PIPES;
|
||||||
|
|
||||||
|
DROP TYPE PIPES_STATUS;
|
||||||
11
script/sql/section_drop/6.pumps.sql
Normal file
11
script/sql/section_drop/6.pumps.sql
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
-- [PUMPS]
|
||||||
|
|
||||||
|
DROP TABLE PUMPS_PROPERTY_PATTERN;
|
||||||
|
|
||||||
|
DROP TABLE PUMPS_PROPERTY_HEAD;
|
||||||
|
|
||||||
|
DROP TABLE PUMPS_PROPERTY_SPEED;
|
||||||
|
|
||||||
|
DROP TABLE PUMPS_PROPERTY_POWER;
|
||||||
|
|
||||||
|
DROP TABLE PUMPS;
|
||||||
5
script/sql/section_drop/7.valves.sql
Normal file
5
script/sql/section_drop/7.valves.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
-- [VALVES]
|
||||||
|
|
||||||
|
DROP TABLE VALVES;
|
||||||
|
|
||||||
|
DROP TYPE VALVES_TYPE;
|
||||||
5
script/sql/section_drop/8.tags.sql
Normal file
5
script/sql/section_drop/8.tags.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
-- [TAGS]
|
||||||
|
|
||||||
|
DROP TABLE TAGS_LINK;
|
||||||
|
|
||||||
|
DROP TABLE TAGS_NODE;
|
||||||
3
script/sql/section_drop/9.demands.sql
Normal file
3
script/sql/section_drop/9.demands.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- [DEMANDS]
|
||||||
|
|
||||||
|
DROP TABLE DEMANDS;
|
||||||
89
script/tjnetwork_admin.py
Normal file
89
script/tjnetwork_admin.py
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
import psycopg as pg
|
||||||
|
|
||||||
|
sql_create = [
|
||||||
|
"sql/base_create.sql",
|
||||||
|
"sql/section_create/1.title.sql",
|
||||||
|
"sql/section_create/2.junctions.sql",
|
||||||
|
"sql/section_create/3.reservoirs.sql",
|
||||||
|
"sql/section_create/4.tanks.sql",
|
||||||
|
"sql/section_create/5.pipes.sql",
|
||||||
|
"sql/section_create/6.pumps.sql",
|
||||||
|
"sql/section_create/7.valves.sql",
|
||||||
|
"sql/section_create/8.tags.sql",
|
||||||
|
"sql/section_create/9.demands.sql",
|
||||||
|
"sql/section_create/10.status.sql",
|
||||||
|
"sql/section_create/11.patterns.sql",
|
||||||
|
"sql/section_create/12.curves.sql",
|
||||||
|
"sql/section_create/13.controls.sql",
|
||||||
|
"sql/section_create/14.rules.sql",
|
||||||
|
"sql/section_create/15.energy.sql",
|
||||||
|
"sql/section_create/16.emitters.sql",
|
||||||
|
"sql/section_create/17.quality.sql",
|
||||||
|
"sql/section_create/18.sources.sql",
|
||||||
|
"sql/section_create/19.reactions.sql",
|
||||||
|
"sql/section_create/20.mixing.sql",
|
||||||
|
"sql/section_create/21.times.sql",
|
||||||
|
"sql/section_create/22.report.sql",
|
||||||
|
"sql/section_create/23.options.sql",
|
||||||
|
"sql/section_create/24.coordinates.sql",
|
||||||
|
"sql/section_create/25.vertices.sql",
|
||||||
|
"sql/section_create/26.labels.sql",
|
||||||
|
"sql/section_create/27.backdrop.sql",
|
||||||
|
"sql/section_create/28.end.sql"
|
||||||
|
]
|
||||||
|
|
||||||
|
sql_drop = [
|
||||||
|
"sql/section_drop/28.end.sql",
|
||||||
|
"sql/section_drop/27.backdrop.sql",
|
||||||
|
"sql/section_drop/26.labels.sql",
|
||||||
|
"sql/section_drop/25.vertices.sql",
|
||||||
|
"sql/section_drop/24.coordinates.sql",
|
||||||
|
"sql/section_drop/23.options.sql",
|
||||||
|
"sql/section_drop/22.report.sql",
|
||||||
|
"sql/section_drop/21.times.sql",
|
||||||
|
"sql/section_drop/20.mixing.sql",
|
||||||
|
"sql/section_drop/19.reactions.sql",
|
||||||
|
"sql/section_drop/18.sources.sql",
|
||||||
|
"sql/section_drop/17.quality.sql",
|
||||||
|
"sql/section_drop/16.emitters.sql",
|
||||||
|
"sql/section_drop/15.energy.sql",
|
||||||
|
"sql/section_drop/14.rules.sql",
|
||||||
|
"sql/section_drop/13.controls.sql",
|
||||||
|
"sql/section_drop/12.curves.sql",
|
||||||
|
"sql/section_drop/11.patterns.sql",
|
||||||
|
"sql/section_drop/10.status.sql",
|
||||||
|
"sql/section_drop/9.demands.sql",
|
||||||
|
"sql/section_drop/8.tags.sql",
|
||||||
|
"sql/section_drop/7.valves.sql",
|
||||||
|
"sql/section_drop/6.pumps.sql",
|
||||||
|
"sql/section_drop/5.pipes.sql",
|
||||||
|
"sql/section_drop/4.tanks.sql",
|
||||||
|
"sql/section_drop/3.reservoirs.sql",
|
||||||
|
"sql/section_drop/2.junctions.sql",
|
||||||
|
"sql/section_drop/1.title.sql",
|
||||||
|
"sql/base_drop.sql"
|
||||||
|
]
|
||||||
|
|
||||||
|
def create_template():
|
||||||
|
with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn:
|
||||||
|
with conn.cursor() as cur:
|
||||||
|
cur.execute(f"create database project")
|
||||||
|
with pg.connect(conninfo=f"dbname=project") as conn:
|
||||||
|
with conn.cursor() as cur:
|
||||||
|
for sql in sql_create:
|
||||||
|
with open(sql, "r") as f:
|
||||||
|
cur.execute(f.read())
|
||||||
|
print(f'executed {sql}')
|
||||||
|
conn.commit()
|
||||||
|
|
||||||
|
def delete_template():
|
||||||
|
with pg.connect(conninfo=f"dbname=project") as conn:
|
||||||
|
with conn.cursor() as cur:
|
||||||
|
for sql in sql_drop:
|
||||||
|
with open(sql, "r") as f:
|
||||||
|
cur.execute(f.read())
|
||||||
|
print(f'executed {sql}')
|
||||||
|
conn.commit()
|
||||||
|
with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn:
|
||||||
|
with conn.cursor() as cur:
|
||||||
|
cur.execute(f"drop database project")
|
||||||
2
script/tool/install.bat
Normal file
2
script/tool/install.bat
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
pip install --upgrade pip
|
||||||
|
pip install "psycopg[binary]"
|
||||||
36
table.sql
36
table.sql
@@ -1,36 +0,0 @@
|
|||||||
drop table if exists Link;
|
|
||||||
drop table if exists Node;
|
|
||||||
|
|
||||||
drop type if exists EN_NodeType;
|
|
||||||
create type EN_NodeType as enum (
|
|
||||||
'EN_JUNCTION',
|
|
||||||
'EN_RESERVOIR',
|
|
||||||
'EN_TANK'
|
|
||||||
);
|
|
||||||
|
|
||||||
drop type if exists EN_LinkType;
|
|
||||||
create type EN_LinkType as enum (
|
|
||||||
'EN_CVPIPE',
|
|
||||||
'EN_PIPE',
|
|
||||||
'EN_PUMP',
|
|
||||||
'EN_PRV',
|
|
||||||
'EN_PSV',
|
|
||||||
'EN_PBV',
|
|
||||||
'EN_FCV',
|
|
||||||
'EN_TCV',
|
|
||||||
'EN_GPV'
|
|
||||||
);
|
|
||||||
|
|
||||||
create table Node (
|
|
||||||
Id varchar(32) primary key,
|
|
||||||
Type EN_NodeType not null,
|
|
||||||
Coord point not null default(point(0.0, 0.0)),
|
|
||||||
Elevation numeric not null default(0.0)
|
|
||||||
);
|
|
||||||
|
|
||||||
create table Link (
|
|
||||||
Id varchar(32) primary key,
|
|
||||||
Type EN_LinkType not null,
|
|
||||||
FromNode varchar(32) not null references Node(Id),
|
|
||||||
ToNode varchar(32) not null references Node(Id)
|
|
||||||
);
|
|
||||||
Reference in New Issue
Block a user