개정판 a2cbb1b1
issue #1464: hmb data on list test
Change-Id: I0c1171e88077c13967e6eb96186a8fd63f1e0554
DTI_PID/DTI_PID/ItemDataExportDialog.py | ||
---|---|---|
350 | 350 |
self.valveColumnListAll.append('Drawing Name') |
351 | 351 |
self.instColumnListAll = ['UID', 'ITEM_NO'] |
352 | 352 |
self.instColumnListAll.extend([prop.Attribute for prop in app_doc_data.get_instrument_attributes()]) |
353 |
self.instColumnListAll = self.add_hmb_header(self.instColumnListAll) |
|
353 | 354 |
self.instColumnListAll.append('Drawing Name') |
354 | 355 |
self.noteColumnListAll = ['UID', 'ITEM_NO'] |
355 | 356 |
self.noteColumnListAll.extend([prop.Attribute for prop in app_doc_data.get_note_attributes()]) |
... | ... | |
424 | 425 |
@brief sort columns |
425 | 426 |
@author humkyung |
426 | 427 |
''' |
427 | ||
428 | 428 |
def sortListOrder(self): |
429 | 429 |
try: |
430 | 430 |
docData = AppDocData.instance() |
... | ... | |
479 | 479 |
sys.exc_info()[-1].tb_lineno) |
480 | 480 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
481 | 481 | |
482 |
def add_hmb_header(self, header_list): |
|
483 |
''' add hmb data header ''' |
|
484 |
app_doc_data = AppDocData.instance() |
|
485 |
hmb_datas = app_doc_data.get_hmb_data(None) |
|
486 |
names = ['PHASE'] |
|
487 |
if hmb_datas: |
|
488 |
for data in hmb_datas[0].data: |
|
489 |
if data.name not in names: |
|
490 |
names.append(data.name) |
|
491 |
header_list.extend(names) |
|
492 | ||
493 |
return header_list |
|
494 | ||
495 |
def add_hmb_data(self, hmb_datas, dataList): |
|
496 |
''' add hmb data dependon stream no ''' |
|
497 |
dataList_backup = dataList.copy() |
|
498 |
try: |
|
499 |
names = [] |
|
500 |
if hmb_datas: |
|
501 |
for data in hmb_datas[0].data: |
|
502 |
if data.name not in names: |
|
503 |
names.append(data.name) |
|
504 |
else: |
|
505 |
return dataList |
|
506 | ||
507 |
for data in dataList: |
|
508 |
matches = [key for key in data.keys() if key == 'Stream No'] |
|
509 |
if matches and data[matches[0]] != '' and data[matches[0]] != 'None': |
|
510 |
stream_no = data[matches[0]] |
|
511 | ||
512 |
matches = [hmb_data for hmb_data in hmb_datas if hmb_data.stream_no == stream_no] |
|
513 |
if matches: |
|
514 |
hmb_data = matches[0] |
|
515 |
phase = hmb_data.phase |
|
516 | ||
517 |
if phase and phase == 'Two': |
|
518 |
phase = 'LIQUID' |
|
519 |
elif not phase: |
|
520 |
continue |
|
521 | ||
522 |
data['PHASE'] = phase |
|
523 | ||
524 |
datas = hmb_data.data |
|
525 | ||
526 |
for name in names: |
|
527 |
matches = [data for data in datas if data.name == name and data.phase == phase] |
|
528 |
if matches: |
|
529 |
value = matches[0].value |
|
530 |
data[name] = value |
|
531 |
else: |
|
532 |
matches = [data for data in datas if data.name == name] |
|
533 |
if matches: |
|
534 |
value = matches[0].value |
|
535 |
data[name] = value |
|
536 | ||
537 |
return dataList |
|
538 | ||
539 |
except Exception as ex: |
|
540 |
from App import App |
|
541 |
from AppDocData import MessageType |
|
542 | ||
543 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, |
|
544 |
sys.exc_info()[-1].tb_lineno) |
|
545 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
|
546 | ||
547 |
return dataList_backup |
|
548 | ||
549 | ||
482 | 550 |
''' |
483 | 551 |
@brief setting line data |
484 | 552 |
@author kyouho |
485 | 553 |
@date 2018.08.13 |
486 | 554 |
''' |
487 | ||
488 | 555 |
def set_line_data(self): |
489 | 556 |
lineTable = self.ui.tableWidgetLineDataList |
490 | 557 |
docData = AppDocData.instance() |
... | ... | |
574 | 641 |
@date 2018.08.14 |
575 | 642 |
''' |
576 | 643 | |
577 |
def set_instrument_data(self): |
|
644 |
def set_instrument_data(self, hmb_datas=None):
|
|
578 | 645 |
inst_table = self.ui.tableWidgetInstrumentDataList |
579 | 646 |
app_doc_data = AppDocData.instance() |
580 | 647 | |
581 | 648 |
# 기존 저장된 데이터 불러옴 |
582 | 649 |
drawings = self.checked_drawings |
583 | 650 |
dataList = app_doc_data.get_instrument_data_list(drawings if drawings else None) |
651 |
dataList = self.add_hmb_data(hmb_datas, dataList) |
|
584 | 652 |
inst_table.setRowCount(len(dataList)) |
585 | 653 |
row = 0 |
586 | 654 |
for data in dataList: |
... | ... | |
673 | 741 | |
674 | 742 |
QApplication.setOverrideCursor(Qt.WaitCursor) |
675 | 743 |
try: |
744 |
hmb_datas = AppDocData.instance().get_hmb_data(None) |
|
745 | ||
676 | 746 |
self.set_line_data() |
677 | 747 |
self.set_equipment_data() |
678 | 748 |
self.set_valve_data() |
679 |
self.set_instrument_data() |
|
749 |
self.set_instrument_data(hmb_datas)
|
|
680 | 750 |
self.set_note_data() |
681 | 751 |
self.fill_special_items() |
682 | 752 |
except Exception as ex: |
내보내기 Unified diff