source_data_set.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from models.source.opc import Opc
  2. from models.source.mgj import MGJ
  3. class SourceDataSet():
  4. _opc_model = None
  5. _mgj_model = None
  6. _last_id_dict = {}
  7. def __init__(self, config):
  8. self.config = config
  9. self._opc_model = Opc(self.config['scada_db'])
  10. def fetch_increment(self,limit):
  11. result = []
  12. for i in range(0, 40):
  13. table_name = 'scada_data_{}'.format(i)
  14. last_id = 0
  15. if table_name in self._last_id_dict:
  16. last_id = self._last_id_dict[table_name]
  17. data = self._opc_model.find_increment(table_name, last_id=last_id,limit=limit)
  18. if len(data):
  19. self._last_id_dict[table_name] = data[len(data) - 1][0]
  20. result.extend(data)
  21. return result
  22. def group_by_items(self, data, filter_project=[]):
  23. result = {}
  24. for one in data:
  25. if len(filter_project) > 0 and one[1] not in filter_project:
  26. continue
  27. key = '{}.{}'.format(one[1], one[2])
  28. if key not in result:
  29. result[key] = []
  30. result[key].append((one[3], one[4]))
  31. return result