|
@@ -18,7 +18,7 @@ global tasklist
|
|
|
|
|
|
botname="open_servicerequest_accepted"
|
|
|
|
|
|
-operating_status=221
|
|
|
+operating_status='221'
|
|
|
JID=botname+"@"+config.JSERVER
|
|
|
PORT=config.PORT
|
|
|
|
|
@@ -27,10 +27,10 @@ PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
|
|
|
print(JID, PASSWORD)
|
|
|
|
|
|
#таким образом хранится список jid, от которых можно получать сообщения этому боту
|
|
|
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
|
|
|
+listen_to=["open_servicerequest_assigned@ej.sharix-app.org"]
|
|
|
|
|
|
#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
|
|
|
-proceed_to=[botname, "open_servicerequest_declined@ej.sharix-app.org", "open_servicerequest_booked@ej.sharix-app.org", "open_servicerequest_assigned@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
|
|
|
+proceed_to=[botname,"open_servicerequest_process@ej.sharix-app.org", "open_servicerequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
|
|
|
|
|
|
#максимальное значение попыток обработать заказ
|
|
|
idle_value=10
|
|
@@ -40,14 +40,9 @@ def message_handler(conn, mess):
|
|
|
text = mess.getBody()#текст сообщения боту
|
|
|
user = mess.getFrom()#отправитель сообщения
|
|
|
|
|
|
- print (str(user).split("/")[0])
|
|
|
if (str(user).split("/")[0]) in listen_to:
|
|
|
- print(text)
|
|
|
- print(mess)
|
|
|
-
|
|
|
if text is not None:
|
|
|
- orderObj = jsreq.jsonToOrderTicket(text)
|
|
|
- print (orderObj)
|
|
|
+ orderObj = jsreq.jsonToOrder(text)
|
|
|
tasklist.append(orderObj)
|
|
|
bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
|
|
|
|
|
@@ -65,56 +60,59 @@ def open_servicerequest_accepted_wait(period,localtask):
|
|
|
def open_servicerequest_accepted_process(localtask):
|
|
|
bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
|
|
|
|
|
|
- order = jsreq.jsonToOrder(localtask)
|
|
|
-
|
|
|
- if order.time_start_predicted < 100:
|
|
|
- # Заглушка. Проверка может ли заказ быть переназначен
|
|
|
- if True:
|
|
|
- # Заглушка. Сбросить пометку предзаказа
|
|
|
- # ...
|
|
|
-
|
|
|
-
|
|
|
- bot.proceed_status(proceed_to[2],localtask)
|
|
|
- bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
- else:
|
|
|
- bot.proceed_status(proceed_to[1],localtask)
|
|
|
- bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
- else:
|
|
|
- # Заглушка. Обработана заявка на устанавление взаимоотношений?
|
|
|
- if True:
|
|
|
- # Заглушка. Взаимоотношения установлены ?
|
|
|
- if True:
|
|
|
- # Заглушка. Отобразить в предварительных заказах исполнителям.
|
|
|
- send_message()
|
|
|
- # Заглушка. Исполнитель откликнулся на заказ?
|
|
|
- if True:
|
|
|
- # У пользователя стоит ручной выбор из нескольких исполнителей?
|
|
|
- if True:
|
|
|
- # Заглушка создать дочернюю локальную заявку с информацией от исполнителя
|
|
|
- create_ticket()
|
|
|
- # Заглушка отобразить в предварительных клиенту
|
|
|
- send_message()
|
|
|
-
|
|
|
- # Заглушка. Клиент выбрал конкретную заявку?
|
|
|
- if True:
|
|
|
- # Заглушка. обновление локальной копии. Замена основной
|
|
|
- pass
|
|
|
- else:
|
|
|
- bot.proceed_status(proceed_to[3],localtask)
|
|
|
- bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
- else:
|
|
|
- bot.proceed_status(proceed_to[3],localtask)
|
|
|
- bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
- else:
|
|
|
- #Заглушка. Заказ ждет очередную итерацию обработки списка
|
|
|
- open_servicerequest_accepted_process(localtask)
|
|
|
- else:
|
|
|
- bot.proceed_status(proceed_to[1],localtask)
|
|
|
- bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
- else:
|
|
|
- #Заглушка. Заказ ждет очередную итерацию обработки списка
|
|
|
- open_servicerequest_accepted_process(localtask)
|
|
|
- pass
|
|
|
+ # order = jsreq.jsonToOrder(localtask)
|
|
|
+ localtask.status='231'
|
|
|
+ jsreq.change_to_task(localtask,token)
|
|
|
+ bot.proceed_status(proceed_to[1],localtask)
|
|
|
+ bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
+ # if order.time_start_predicted < 100:
|
|
|
+ # # Заглушка. Проверка может ли заказ быть переназначен
|
|
|
+ # if True:
|
|
|
+ # # Заглушка. Сбросить пометку предзаказа
|
|
|
+ # # ...
|
|
|
+
|
|
|
+
|
|
|
+ # bot.proceed_status(proceed_to[1],localtask)
|
|
|
+ # bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
+ # else:
|
|
|
+ # bot.proceed_status(proceed_to[2],localtask)
|
|
|
+ # bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
+ # else:
|
|
|
+ # # Заглушка. Обработана заявка на устанавление взаимоотношений?
|
|
|
+ # if True:
|
|
|
+ # # Заглушка. Взаимоотношения установлены ?
|
|
|
+ # if True:
|
|
|
+ # # Заглушка. Отобразить в предварительных заказах исполнителям.
|
|
|
+ # send_message()
|
|
|
+ # # Заглушка. Исполнитель откликнулся на заказ?
|
|
|
+ # if True:
|
|
|
+ # # У пользователя стоит ручной выбор из нескольких исполнителей?
|
|
|
+ # if True:
|
|
|
+ # # Заглушка создать дочернюю локальную заявку с информацией от исполнителя
|
|
|
+ # create_ticket()
|
|
|
+ # # Заглушка отобразить в предварительных клиенту
|
|
|
+ # send_message()
|
|
|
+
|
|
|
+ # # Заглушка. Клиент выбрал конкретную заявку?
|
|
|
+ # if True:
|
|
|
+ # # Заглушка. обновление локальной копии. Замена основной
|
|
|
+ # pass
|
|
|
+ # else:
|
|
|
+ # bot.proceed_status(proceed_to[3],localtask)
|
|
|
+ # bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
+ # else:
|
|
|
+ # bot.proceed_status(proceed_to[3],localtask)
|
|
|
+ # bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
+ # else:
|
|
|
+ # #Заглушка. Заказ ждет очередную итерацию обработки списка
|
|
|
+ # open_servicerequest_accepted_process(localtask)
|
|
|
+ # else:
|
|
|
+ # bot.proceed_status(proceed_to[1],localtask)
|
|
|
+ # bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
|
|
|
+ # else:
|
|
|
+ # #Заглушка. Заказ ждет очередную итерацию обработки списка
|
|
|
+ # open_servicerequest_accepted_process(localtask)
|
|
|
+ # pass
|
|
|
|
|
|
|
|
|
def send_message():
|
|
@@ -130,10 +128,14 @@ def open_servicerequest_accepted():
|
|
|
print("EACH TASKLIST", tasklist)
|
|
|
|
|
|
if (localtask.status!=operating_status):
|
|
|
+ localtask.status=239
|
|
|
+ jsreq.change_to_task(localtask,token)
|
|
|
bot.proceed_status(proceed_to[-1],localtask)
|
|
|
bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")
|
|
|
continue
|
|
|
-
|
|
|
+ elif True:
|
|
|
+ t1=threading.Thread(target=open_servicerequest_accepted_process, args=([localtask]))
|
|
|
+ t1.start()
|
|
|
# if (localtask.title!="10"):
|
|
|
# t1=threading.Thread(target=open_servicerequest_booked_wait, args=(5,localtask))
|
|
|
# t1.start()
|
|
@@ -142,13 +144,12 @@ def open_servicerequest_accepted():
|
|
|
# t1=threading.Thread(target=open_servicerequest_booked_process, args=(10,localtask))
|
|
|
# t1.start()
|
|
|
|
|
|
- t1=threading.Thread(target=open_servicerequest_accepted_process, args=(localtask))
|
|
|
- t1.start()
|
|
|
+
|
|
|
|
|
|
- #если никакие обработчики не подошли - отправляем обратно в очередь
|
|
|
- bot.proceed_status(proceed_to[0],localtask)
|
|
|
- print("Заказ возвращен в очередь\n")
|
|
|
- print(tasklist)
|
|
|
+ # #если никакие обработчики не подошли - отправляем обратно в очередь
|
|
|
+ # bot.proceed_status(proceed_to[0],localtask)
|
|
|
+ # print("Заказ возвращен в очередь\n")
|
|
|
+ # print(tasklist)
|
|
|
|
|
|
#Авторизация и запуск бота
|
|
|
|
|
@@ -156,11 +157,9 @@ def open_servicerequest_accepted():
|
|
|
tasklist = []
|
|
|
|
|
|
#надо инициализировать tasklist при запуске из API
|
|
|
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
|
|
|
-
|
|
|
+token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"my/api/v1/auth/token/login/")
|
|
|
#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
|
|
|
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
|
|
|
-print (len(tasklist))
|
|
|
+tasklist_dbsynce=jsreq.requestGetList(token, config.API_URL+"/dbsynce/api/orders/")
|
|
|
|
|
|
bot = JabberBot(JID, PASSWORD, PORT)
|
|
|
|