Skip to content

Commit

Permalink
Merge pull request #631 from gisce/b3_3-condensadors
Browse files Browse the repository at this point in the history
Añadimos condensadores en el fichero B3.3
  • Loading branch information
ecarreras authored Mar 19, 2024
2 parents 6726ed0 + 44f9e70 commit b406fc7
Showing 1 changed file with 112 additions and 49 deletions.
161 changes: 112 additions & 49 deletions libcnmc/cir_8_2021/FB3_3.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,44 @@ def __init__(self, **kwargs):
self.base_object = 'TRAFOS'

def get_sequence(self):

data_pm = '{}-01-01'.format(self.year + 1)
data_baixa = '{}-12-31'.format(self.year)

criteris_dates = [('criteri_regulatori', '!=', 'excloure'),
'|', ('data_pm', '=', False),
('data_pm', '<', data_pm),
'|', ('data_baixa', '>', data_baixa),
('data_baixa', '=', False)
]
# Revisem que si està de baixa ha de tenir la data informada.
criteris_dates += ['|',
'&', ('active', '=', False),
('data_baixa', '!=', False),
('active', '=', True)]

search_params = [
('reductor', '=', True),
('id_estat.cnmc_inventari', '=', True)
] + criteris_dates

trafo_ids = [
'T.{}'.format(x)
for x in self.connection.GiscedataTransformadorTrafo.search(
search_params
)
]
return self.connection.GiscedataTransformadorTrafo.search(
search_params
)
# Condensadors
search_params = [
('ct_id.id_installacio.name', '=', 'SE'),
('tipus', '=', '2'),
] + criteris_dates

condensadors_ids = [
'C.{}'.format(x) for x in
self.connection.GiscedataCondensadors.search(search_params)
]
return trafo_ids + condensadors_ids

def get_estat(self, estat_id):
o = self.connection
Expand Down Expand Up @@ -116,12 +147,80 @@ def get_operacio(self, id_estat):
)['operacio']
return operacio

def consumer(self):
o = self.connection
def process_trafo(self, trafo_id):
fields_to_read = [
'ct', 'name', 'cini', 'propietari', 'id_estat',
'conexions', 'id_operacio', 'data_pm', 'id_regulatori'
]
trafo = self.connection.GiscedataTransformadorTrafo.read(
trafo_id, fields_to_read
)
o_subestacio = trafo['ct'][1]
o_maquina = trafo['id_regulatori'] if trafo.get('id_regulatori',
False) else trafo[
'name']
o_cini = trafo['cini']

# IDENTIFICADOR_PARQUE_ALTA / IDENTIFICADOR_PARQUE_BAJA
if trafo.get('conexions', False):
o_costat_alta = self.get_parcs(trafo)['o_costat_alta']
o_costat_baixa = self.get_parcs(trafo)['o_costat_baixa']
else:
o_costat_alta = o_costat_baixa = ''

o_propietat = int(trafo['propietari'])
o_estat = self.get_estat(trafo['id_estat'][0])

# AÑO_PS
o_any_ps = ''
if trafo.get('data_pm', False):
o_any_data = str(trafo['data_pm'])
o_any_ps = o_any_data.split('-')[0]

id_estat = trafo['id_estat']
if id_estat:
operacio = self.get_operacio(id_estat)
if operacio:
o_operacio = operacio
else:
o_operacio = 0
else:
o_operacio = 0

if o_cini:
if o_cini[1] == '2' and o_cini[2] == '7' and o_cini[5] == '1' and \
o_cini[7] == '1':
o_operacio = 0

return [
o_subestacio, # SUBESTACION
o_maquina, # MAQUINA
o_cini, # CINI
o_costat_alta, # PARQUE ALTA
o_costat_baixa, # PARQUE BAJA
o_any_ps, # AÑO INFORMACION
o_operacio # OPERACION
]

def process_condensador(self, condensador_id):
fields_to_read = [
'ct_id', 'name', 'cini', 'parc_alta', 'parc_baixa', 'data_pm'
]
condensador = self.connection.GiscedataCondensadors.read(
condensador_id, fields_to_read
)
return [
condensador['ct_id'] and condensador['ct_id'][1] or '',
condensador['name'],
condensador['cini'],
condensador['parc_alta'] and condensador['parc_alta'][1] or '',
condensador['parc_baixa'] and condensador['parc_baixa'][1] or '',
condensador['data_pm'] and condensador['data_pm'].split('-')[0] or '',
1
]

def consumer(self):

while True:
try:
# generar linies
Expand All @@ -130,51 +229,15 @@ def consumer(self):
self.input_q.task_done()
break
self.progress_q.put(item)
trafo = o.GiscedataTransformadorTrafo.read(
item, fields_to_read
)
o_subestacio = trafo['ct'][1]
o_maquina = trafo['id_regulatori'] if trafo.get('id_regulatori', False) else trafo['name']
o_cini = trafo['cini']

# IDENTIFICADOR_PARQUE_ALTA / IDENTIFICADOR_PARQUE_BAJA
if trafo.get('conexions', False):
o_costat_alta = self.get_parcs(trafo)['o_costat_alta']
o_costat_baixa = self.get_parcs(trafo)['o_costat_baixa']

o_propietat = int(trafo['propietari'])
o_estat = self.get_estat(trafo['id_estat'][0])

# AÑO_PS
o_any_ps = ''
if trafo.get('data_pm', False):
o_any_data = str(trafo['data_pm'])
o_any_ps = o_any_data.split('-')[0]


id_estat = trafo['id_estat']
if id_estat:
operacio = self.get_operacio(id_estat)
if operacio:
o_operacio = operacio
else:
o_operacio = 0
element_type, element_id = item.split('.')
if element_type == 'T':
result = self.process_trafo(int(element_id))
elif element_type == 'C':
result = self.process_condensador(int(element_id))
else:
o_operacio = 0

if o_cini:
if o_cini[1] == '2' and o_cini[2] == '7' and o_cini[5] == '1' and o_cini[7] == '1':
o_operacio = 0

self.output_q.put([
o_subestacio, # SUBESTACION
o_maquina, # MAQUINA
o_cini, # CINI
o_costat_alta, # PARQUE ALTA
o_costat_baixa, # PARQUE BAJA
o_any_ps, # AÑO INFORMACION
o_operacio # OPERACION
])
result = []
if result:
self.output_q.put(result)
self.input_q.task_done()
except Exception:
self.input_q.task_done()
Expand Down

0 comments on commit b406fc7

Please sign in to comment.