Merge branch 'master' into feature/gsm_modem_in_project
This commit is contained in:
@@ -3,7 +3,6 @@ from enum import Enum
|
|||||||
from playwright.sync_api import sync_playwright
|
from playwright.sync_api import sync_playwright
|
||||||
|
|
||||||
import params
|
import params
|
||||||
from db.DbManager import DataManager
|
|
||||||
from logs.LogSender import TYPE_EVENT_CHECK_RESULTS, LOG_SUBJECT_EVENT
|
from logs.LogSender import TYPE_EVENT_CHECK_RESULTS, LOG_SUBJECT_EVENT
|
||||||
from pojo.ReserveResultPojo import ReserveResultPojo
|
from pojo.ReserveResultPojo import ReserveResultPojo
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
+4
-1
@@ -39,7 +39,10 @@ class DataManager:
|
|||||||
return sim_info_collection
|
return sim_info_collection
|
||||||
|
|
||||||
def get_all_successful_items(self):
|
def get_all_successful_items(self):
|
||||||
doc_ref = self._db.collection(str(datetime.date.today()))
|
return self.get_all_successful_items_for_day(str(datetime.date.today()))
|
||||||
|
|
||||||
|
def get_all_successful_items_for_day(self, day):
|
||||||
|
doc_ref = self._db.collection(day)
|
||||||
return doc_ref
|
return doc_ref
|
||||||
|
|
||||||
def save_sim_info(self, simInfoPojo: SimInfoPojo):
|
def save_sim_info(self, simInfoPojo: SimInfoPojo):
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
import xlsxwriter
|
||||||
|
|
||||||
|
import params
|
||||||
|
from pojo.ReserveResultPojo import ReserveResultPojo
|
||||||
|
from pojo.contact_pojo import ContactPojo
|
||||||
|
from utils.excel_reader import ExcelHelper
|
||||||
|
|
||||||
|
|
||||||
|
def write_the_valid_profiles_to_excel():
|
||||||
|
day_list = ['2022-03-04', '2022-03-07', '2022-03-08', '2022-03-09', '2022-03-10', '2022-03-11', '2022-03-14',
|
||||||
|
'2022-03-15', '2022-03-16']
|
||||||
|
collection = []
|
||||||
|
for day in day_list:
|
||||||
|
collection.extend(params.firebase_store_manager.get_all_successful_items_for_day(day).stream())
|
||||||
|
|
||||||
|
valid_contacts = []
|
||||||
|
exist_contacts = ExcelHelper().read_contacts()
|
||||||
|
for valid_appointment in collection:
|
||||||
|
reserve_pojo = ReserveResultPojo.from_firestore_dict(valid_appointment.to_dict())
|
||||||
|
# check whether the contact exists already
|
||||||
|
exist = [contact for contact in valid_contacts if contact.mail == reserve_pojo.email]
|
||||||
|
if len(exist) == 0:
|
||||||
|
contact = ContactPojo(reserve_pojo.phone, passport_number=reserve_pojo.passport,
|
||||||
|
last_name=reserve_pojo.lastName, first_name=reserve_pojo.firstName, ccid="",
|
||||||
|
mail=reserve_pojo.email, position=0)
|
||||||
|
if contact.passport == None or len(contact.passport) == 0:
|
||||||
|
old_contact = [item for item in exist_contacts if item.mail == contact.mail]
|
||||||
|
if len(old_contact) > 0:
|
||||||
|
contact.passport = old_contact[0].passport
|
||||||
|
|
||||||
|
print(contact)
|
||||||
|
valid_contacts.append(contact)
|
||||||
|
|
||||||
|
row = 0
|
||||||
|
col = 0
|
||||||
|
# Create a workbook and add a worksheet.
|
||||||
|
workbook = xlsxwriter.Workbook('valid_profile.xlsx')
|
||||||
|
header_data = ['name', 'phone', 'passport', 'email', 'ccid', 'position']
|
||||||
|
worksheet = workbook.add_worksheet()
|
||||||
|
header_format = workbook.add_format({'bold': True})
|
||||||
|
|
||||||
|
for col_num, data in enumerate(header_data):
|
||||||
|
worksheet.write(row, col_num, data, header_format)
|
||||||
|
row = row + 1
|
||||||
|
for info in valid_contacts:
|
||||||
|
# Iterate over the data and write it out row by row.
|
||||||
|
worksheet.write(row, col, "{} {}".format(info.last_name, info.first_name))
|
||||||
|
worksheet.write(row, col + 1, info.phone)
|
||||||
|
worksheet.write(row, col + 2, info.passport)
|
||||||
|
worksheet.write(row, col + 3, info.mail)
|
||||||
|
worksheet.write(row, col + 4, info.ccid)
|
||||||
|
row += 1
|
||||||
|
workbook.close()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
write_the_valid_profiles_to_excel()
|
||||||
@@ -8,8 +8,8 @@ from typing import Union
|
|||||||
from gsmmodem import GsmModem
|
from gsmmodem import GsmModem
|
||||||
|
|
||||||
import params
|
import params
|
||||||
from ModemPool import ModemPool
|
from modems.ModemPool import ModemPool
|
||||||
from card_pool import CardPool
|
from modems.card_pool import CardPool
|
||||||
from commandor import Commandor
|
from commandor import Commandor
|
||||||
from logs.LogSender import LOG_APPOINTMENT_TIMEOUT, LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS
|
from logs.LogSender import LOG_APPOINTMENT_TIMEOUT, LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS
|
||||||
from params import MODEM_POOL_PORTS, CARD_POOL_PORT, firebase_store_manager, oracle_log_sender
|
from params import MODEM_POOL_PORTS, CARD_POOL_PORT, firebase_store_manager, oracle_log_sender
|
||||||
@@ -72,7 +72,7 @@ def start_to_handle_sms(serial_modem: SerialModem):
|
|||||||
serial_modem.modem.smsReceivedCallback = handle_sms
|
serial_modem.modem.smsReceivedCallback = handle_sms
|
||||||
global is_finished
|
global is_finished
|
||||||
is_finished = False
|
is_finished = False
|
||||||
serial_modem.modem.smsTextMode = True
|
serial_modem.modem.smsTextMode = False
|
||||||
logger.info('Waiting for SMS message, for phone number ' + str(serial_modem.phone_number))
|
logger.info('Waiting for SMS message, for phone number ' + str(serial_modem.phone_number))
|
||||||
listen_at = time.time()
|
listen_at = time.time()
|
||||||
while not is_finished:
|
while not is_finished:
|
||||||
@@ -113,9 +113,9 @@ def handle_sms(sms):
|
|||||||
logger.info("will close used modem")
|
logger.info("will close used modem")
|
||||||
current_gsm_modem.close()
|
current_gsm_modem.close()
|
||||||
else:
|
else:
|
||||||
logger.info("the sms is not for RDV")
|
logger.info("The sms is not for RDV")
|
||||||
else:
|
else:
|
||||||
logger.info("the sms is not for today")
|
logger.info("The sms is not for today")
|
||||||
|
|
||||||
|
|
||||||
def init_modems() -> list:
|
def init_modems() -> list:
|
||||||
@@ -128,7 +128,7 @@ def init_modems() -> list:
|
|||||||
|
|
||||||
|
|
||||||
def on_message_received(ch, method, properties, body):
|
def on_message_received(ch, method, properties, body):
|
||||||
logger.info(" [x] Received {} {}".format(body, datetime.datetime.now()))
|
print(" [x] Received {} {}".format(body, datetime.datetime.now()))
|
||||||
# parse the received message
|
# parse the received message
|
||||||
result = ReserveResultPojo.from_json(body)
|
result = ReserveResultPojo.from_json(body)
|
||||||
result.sim_position = current_sim_position
|
result.sim_position = current_sim_position
|
||||||
@@ -165,8 +165,8 @@ def read_all_the_phone_number():
|
|||||||
|
|
||||||
|
|
||||||
def start_book():
|
def start_book():
|
||||||
slot_number = 14
|
slot_number = 1
|
||||||
slot_sum = 31
|
slot_sum = 12
|
||||||
for i in range(slot_number, slot_sum + 1):
|
for i in range(slot_number, slot_sum + 1):
|
||||||
card_pool.reset()
|
card_pool.reset()
|
||||||
logger.info("will switch to " + str(i))
|
logger.info("will switch to " + str(i))
|
||||||
@@ -197,6 +197,8 @@ def start_book():
|
|||||||
continue
|
continue
|
||||||
if modem.contact:
|
if modem.contact:
|
||||||
logger.info("contact found for this ccid")
|
logger.info("contact found for this ccid")
|
||||||
|
signal = modem.modem.signalStrength
|
||||||
|
logger.info("signal for this sim: "+str(signal))
|
||||||
commandor.start_page(modem.contact)
|
commandor.start_page(modem.contact)
|
||||||
start_to_handle_sms(modem)
|
start_to_handle_sms(modem)
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
@@ -210,3 +212,5 @@ if __name__ == '__main__':
|
|||||||
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
|
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
|
||||||
start_listen()
|
start_listen()
|
||||||
start_book()
|
start_book()
|
||||||
|
# card_pool.switch_to_slot(31)
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import serial
|
|||||||
import params
|
import params
|
||||||
from logs.LogSender import LOG_SUBJECT_EVENT, TYPE_EVENT_CHANGE_SLOT
|
from logs.LogSender import LOG_SUBJECT_EVENT, TYPE_EVENT_CHANGE_SLOT
|
||||||
|
|
||||||
PORT = "/dev/tty.usbmodem1432101"
|
|
||||||
|
|
||||||
BAUDRATE = 115200
|
BAUDRATE = 115200
|
||||||
|
|
||||||
|
|
||||||
@@ -45,7 +43,7 @@ class CardPool:
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
card_pool = CardPool(PORT)
|
card_pool = CardPool(params.CARD_POOL_PORT)
|
||||||
# print(card_pool.find_current_slot())
|
# print(card_pool.find_current_slot())
|
||||||
card_pool.reset()
|
card_pool.reset()
|
||||||
# card_pool.switch_to_next()
|
# card_pool.switch_to_next()
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
import params
|
import params
|
||||||
from ModemPool import ModemPool
|
from modems.ModemPool import ModemPool
|
||||||
from logs.AppLogging import init_logger
|
from logs.AppLogging import init_logger
|
||||||
from logs.LogSender import LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS
|
from logs.LogSender import LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS
|
||||||
from main import card_pool, get_devices_ports
|
from main import card_pool, get_devices_ports
|
||||||
@@ -10,7 +10,7 @@ from main import card_pool, get_devices_ports
|
|||||||
def read_all_the_phone_number():
|
def read_all_the_phone_number():
|
||||||
params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS)
|
params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS)
|
||||||
slot_number = 1
|
slot_number = 1
|
||||||
slot_sum = 31
|
slot_sum = 12
|
||||||
# card_pool.switch_to_slot(29)
|
# card_pool.switch_to_slot(29)
|
||||||
params.firebase_store_manager.clear_all_sim_info()
|
params.firebase_store_manager.clear_all_sim_info()
|
||||||
for i in range(slot_number, slot_sum + 1):
|
for i in range(slot_number, slot_sum + 1):
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user