개정판 9c0bab30
issue #1465: line list save test
Change-Id: Ibc4536606cef242a5def4f8ed064f73b9eb6f2e7
DTI_PID/DTI_PID/AppDocData.py | ||
---|---|---|
85 | 85 |
self._activeDrawing = None |
86 | 86 |
self._hmbTable = None |
87 | 87 |
self._hmbColors = {} |
88 |
self._streamLineListModel = None |
|
88 |
self._streamLineListModelDatas = None
|
|
89 | 89 |
self._titleBlockProperties = None |
90 | 90 |
self.needReOpening = None |
91 | 91 |
|
... | ... | |
170 | 170 |
self._activeDrawing = None |
171 | 171 |
self._hmbTable = None |
172 | 172 |
self._hmbColors = {} |
173 |
self._streamLineListModel = None |
|
173 |
self._streamLineListModelDatas = None
|
|
174 | 174 |
self._titleBlockProperties = None |
175 | 175 |
|
176 | 176 |
self._configs = None |
... | ... | |
3964 | 3964 |
|
3965 | 3965 |
def saveToDatabase(self, items, rect: QRectF, show_progress=None): |
3966 | 3966 |
""" save given items to database """ |
3967 |
import uuid |
|
3968 |
|
|
3967 | 3969 |
# delete all datas of current drawing |
3968 | 3970 |
drawing_name = self.activeDrawing.name |
3969 | 3971 |
drawing_uid = self.activeDrawing.UID |
... | ... | |
4022 | 4024 |
sql = "delete from Components where Drawings_UID='{}'".format(drawing_uid) |
4023 | 4025 |
cursor.execute(sql) |
4024 | 4026 |
|
4027 |
# delete Stream Line List |
|
4028 |
sql = "delete from Stream_Line_List where Drawing_UID='{}'".format(drawing_uid) |
|
4029 |
cursor.execute(sql) |
|
4030 |
|
|
4025 | 4031 |
progress = 0 |
4026 | 4032 |
length = len(queries['first']) + len(queries['second']) |
4027 | 4033 |
for sql in queries['first']: |
... | ... | |
4050 | 4056 |
show_progress.emit(int((progress / length)*100)) |
4051 | 4057 |
progress += 1 |
4052 | 4058 |
|
4059 |
# save Stream No Line List |
|
4060 |
for model_data in self._streamLineListModelDatas: |
|
4061 |
sql = f"insert into Stream_Line_List (UID, Drawing_UID, PnIDNumber, Tag_Seq_No, PipingMaterialsClass, InsulationPurpose, FluidCode, " \ |
|
4062 |
f"UnitNumber, NominalDiameter, [From], [To], Stream_No) values(?,?,?,?,?,?,?,?,?,?,?,?)" |
|
4063 |
params = (str(uuid.uuid4()), drawing_uid, model_data['PnIDNumber'], model_data['Tag Seq No'], model_data['PipingMaterialsClass'], model_data['InsulationPurpose'], \ |
|
4064 |
model_data['FluidCode'], model_data['UnitNumber'], model_data['NominalDiameter'], model_data['FROM'], model_data['TO'], model_data['Stream No']) |
|
4065 |
cursor.execute(sql, params) |
|
4066 |
|
|
4053 | 4067 |
if show_progress: |
4054 | 4068 |
show_progress.emit(99) |
4055 | 4069 |
|
DTI_PID/DTI_PID/LineListDialog.py | ||
---|---|---|
56 | 56 |
self.initListOrder() |
57 | 57 |
|
58 | 58 |
datas = self.make_line_list_data() |
59 |
self._model = self.fill_data(datas) |
|
59 |
self._model_datas = self.fill_data(datas)
|
|
60 | 60 |
|
61 | 61 |
self.ui.buttonBox.button(QDialogButtonBox.Save).clicked.connect(self.export_line_list) |
62 | 62 |
self.ui.buttonBox.button(QDialogButtonBox.Close).clicked.connect(self.reject) |
... | ... | |
122 | 122 |
if dlg.exec_(): |
123 | 123 |
datas = self.make_line_list_data() |
124 | 124 |
self.initListOrder() |
125 |
self._model = self.fill_data(datas) |
|
125 |
self._model_datas = self.fill_data(datas)
|
|
126 | 126 |
|
127 | 127 |
def listCellClicked(self, index): |
128 | 128 |
from HighlightCommand import HighlightCommand |
... | ... | |
317 | 317 |
app_doc_data = AppDocData.instance() |
318 | 318 |
hmb_datas = app_doc_data.get_hmb_data(None) |
319 | 319 |
|
320 |
if (self.parent() and app_doc_data._streamLineListModel is None) or not self.parent(): |
|
320 |
if (self.parent() and app_doc_data._streamLineListModelDatas is None) or not self.parent():
|
|
321 | 321 |
row_datas = self.make_valid_data(datas) |
322 | 322 |
|
323 | 323 |
model_datas = [] |
... | ... | |
382 | 382 |
if matches: |
383 | 383 |
value = matches[0].value |
384 | 384 |
items.append(QStandardItem(value)) if type(value) is str else items.append(value) |
385 |
model_data[name] = value if type(value) is str value.text() |
|
385 |
model_data[name] = value if type(value) is str else value.text()
|
|
386 | 386 |
else: |
387 | 387 |
matches = [data for data in datas if data.name == name] |
388 | 388 |
if matches: |
389 | 389 |
value = matches[0].value |
390 | 390 |
items.append(QStandardItem(value)) if type(value) is str else items.append(value) |
391 |
model_data[name] = value if type(value) is str value.text() |
|
391 |
model_data[name] = value if type(value) is str else value.text()
|
|
392 | 392 |
else: |
393 | 393 |
items.append(QStandardItem('')) if type(value) is str else items.append(value) |
394 |
model_data[name] = value if type(value) is str value.text() |
|
394 |
model_data[name] = value if type(value) is str else value.text()
|
|
395 | 395 |
|
396 | 396 |
model.appendRow(items) |
397 | 397 |
model_datas.append(model_data) |
398 | 398 |
else: |
399 |
pass |
|
400 |
#model = app_doc_data._streamLineListModel |
|
399 |
model_datas = app_doc_data._streamLineListModelDatas |
|
401 | 400 |
|
402 | 401 |
model.setHorizontalHeaderLabels([header[1] for header in headers]) |
403 | 402 |
|
DTI_PID/DTI_PID/LineNoTracer.py | ||
---|---|---|
724 | 724 |
cmd.execute(worker.scene) |
725 | 725 |
|
726 | 726 |
dialog = LineListDialog(None, scene=worker.scene) |
727 |
AppDocData.instance()._streamLineListModel = dialog._model |
|
727 |
AppDocData.instance()._streamLineListModelDatas = dialog._model_datas |
|
728 |
print('a') |
|
728 | 729 |
|
729 | 730 |
def make_end_break(worker, end_breaks, lineNos): |
730 | 731 |
''' make end break ''' |
DTI_PID/DTI_PID/Scripts/MSSQL/ID2.sql | ||
---|---|---|
3271 | 3271 |
PRIMARY KEY([UID]), |
3272 | 3272 |
FOREIGN KEY([Stream_No_UID]) REFERENCES [Stream_No]([UID]) ON DELETE CASCADE, |
3273 | 3273 |
FOREIGN KEY([HMB_LIST_UID]) REFERENCES [HMB_LIST]([UID]) ON DELETE CASCADE |
3274 |
); |
|
3275 |
|
|
3276 |
CREATE TABLE Stream_Line_List ( |
|
3277 |
[UID] VARCHAR ( 37 ) NOT NULL, |
|
3278 |
[Drawing_UID] VARCHAR ( 37 ), |
|
3279 |
[PnIDNumber] VARCHAR ( 100 ), |
|
3280 |
[Tag_Seq_No] VARCHAR ( 100 ), |
|
3281 |
[PipingMaterialsClass] VARCHAR ( 100 ), |
|
3282 |
[InsulationPurpose] VARCHAR ( 100 ), |
|
3283 |
[FluidCode] VARCHAR ( 100 ), |
|
3284 |
[UnitNumber] VARCHAR ( 100 ), |
|
3285 |
[NominalDiameter] VARCHAR ( 100 ), |
|
3286 |
[From] VARCHAR ( 100 ), |
|
3287 |
[To] VARCHAR ( 100 ), |
|
3288 |
[Stream_No] VARCHAR ( 100 ), |
|
3289 |
FOREIGN KEY([Drawing_UID]) REFERENCES [Drawings]([UID]) ON DELETE CASCADE, |
|
3290 |
PRIMARY KEY([UID]) |
|
3274 | 3291 |
); |
DTI_PID/DTI_PID/Scripts/SQLite_Project.tables.sql | ||
---|---|---|
114 | 114 |
PRIMARY KEY(`UID`), |
115 | 115 |
FOREIGN KEY(`Stream_No_UID`) REFERENCES `Stream_No`(`UID`) ON DELETE CASCADE, |
116 | 116 |
FOREIGN KEY(`HMB_LIST_UID`) REFERENCES `HMB_LIST`(`UID`) ON DELETE CASCADE |
117 |
); |
|
118 |
|
|
119 |
CREATE TABLE IF NOT EXISTS `Stream_Line_List` ( |
|
120 |
`UID` VARCHAR ( 37 ) NOT NULL, |
|
121 |
`Drawing_UID` VARCHAR ( 37 ), |
|
122 |
`PnIDNumber` VARCHAR ( 100 ), |
|
123 |
`Tag_Seq_No` VARCHAR ( 100 ), |
|
124 |
`PipingMaterialsClass` VARCHAR ( 100 ), |
|
125 |
`InsulationPurpose` VARCHAR ( 100 ), |
|
126 |
`FluidCode` VARCHAR ( 100 ), |
|
127 |
`UnitNumber` VARCHAR ( 100 ), |
|
128 |
`NominalDiameter` VARCHAR ( 100 ), |
|
129 |
`From` VARCHAR ( 100 ), |
|
130 |
`To` VARCHAR ( 100 ), |
|
131 |
`Stream_No` VARCHAR ( 100 ), |
|
132 |
FOREIGN KEY(`Drawing_UID`) REFERENCES `Drawings`(`UID`) ON DELETE CASCADE, |
|
133 |
PRIMARY KEY(`UID`) |
|
117 | 134 |
); |
내보내기 Unified diff