При возникновении ошибок отправляются уведомления в RocketChat. Проверка доступности сервера 1С перед отправкой чеков.

This commit is contained in:
2025-08-07 16:20:58 +03:00
parent 740b5682cb
commit 0256f1435a

View File

@ -15,6 +15,28 @@ def check_server(ip, port):
except OSError:
return False
def send_rocketchat_notification(text, proccess='Разобраться!'):
ROCKET_CHAT_WEBHOOK_URL = 'https://chat.maverik.ru/hooks/6881da844a6bb0ff6126fb0c/sQXCxLCrfNCtYumnWaEKbyqYvFhHSFCSevy8iBR3T2beP8j5'
data = {
"alias": "Чеки ИП",
"text": text,
"attachments": [
{
"text": proccess,
"color": "#5B34E7"
}
]
}
headers = {'Content-Type': 'application/json'}
try:
response = requests.post(ROCKET_CHAT_WEBHOOK_URL, json=data, headers=headers)
if response.status_code != 200:
print(f"Ошибка отправки уведомления: {response.text}")
except Exception as e:
print(f"Ошибка при отправке уведомления: {e}")
ID = [
('7381440900800903','030c75c2-2f29-11eb-119f-0cc47ab40806','Волгоград_Энгельса'),
('9961440300902043','d4fff292-2f2a-11eb-119f-0cc47ab40806','Волжский_Ленина'),
@ -51,8 +73,10 @@ while True:
ic(result.text)
ic(sessionToken)
try:
n = 0
result = requests.get(f"https://api-lk-ofd.taxcom.ru/API/v2/ShiftList?fn={fn}&begin={prevDate}T00:00:00&end={CurDate}T23:59:59", headers=headers, timeout=(20, 240))
for i in result.json()['records']:
n += 1
shiftNumber = i['shiftNumber']
fnFactoryNumber = i['fnFactoryNumber']
ic(result.text)
@ -62,17 +86,17 @@ while True:
cheks = result.json()['records']
except:
ic()
requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom:</b>\nЧека нет')
# requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom Maverik:</b>\nЧека нет')
continue
with open('check', 'w', encoding='utf-8') as f:
with open(f'check_{n}', 'w', encoding='utf-8') as f:
f.write(str(cheks))
if Path('check').is_file():
if Path(kassa).is_file():
if filecmp.cmp('check', kassa):
if Path(f'check_{n}').is_file():
if Path(f'{kassa}_{n}').is_file():
if filecmp.cmp(f'check_{n}', f'{kassa}_{n}'):
print(f'{kassa} -- Новые чеки отсутствуют')
continue
shutil.copy('check', kassa)
Path('check').unlink()
shutil.copy(f'check_{n}', f'{kassa}_{n}')
Path(f'check_{n}').unlink()
data = {"salepoint": salepoint,
"res": str(cheks)}
data = json.dumps(data, ensure_ascii=False).encode('utf-8')
@ -82,18 +106,21 @@ while True:
elif check_server('10.15.0.3', 80):
result = requests.post('http://10.15.0.3/bso_maverik/hs/exchange/saveTaxcomDocs', data=data, allow_redirects=False, auth=('robot', 's38*Cqy2L*PB'), timeout=(10, 120))
else:
if Path(kassa).is_file():
Path(kassa).unlink()
if Path(f'{kassa}_{n}').is_file():
Path(f'{kassa}_{n}').unlink()
print('Ошибка загрузки чеков в 1С.\nСервер не доступен!\nЗагрузка повторится позже.')
send_rocketchat_notification('Ошибка загрузки чеков в 1С.', 'Сервер 1С не доступен!\nПроверить нужно OVPN.\nЗагрузка повторится через 1 час.')
sleep(3600)
break
print(result.text)
print('-----------------')
except:
except Exception as e:
send_rocketchat_notification('Ошибка чеков по ИП.', str(e))
continue
print('#################')
except Exception as e:
requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom:</b>\n{e}')
# requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom:</b>\n{e}')
send_rocketchat_notification('Ошибка чеков по ИП.', str(e))
print('#################')
print('#################')