20251017
This commit is contained in:
@@ -4,6 +4,7 @@ from DrissionPage._configs.chromium_options import ChromiumOptions
|
|||||||
from DrissionPage._pages.mix_tab import MixTab
|
from DrissionPage._pages.mix_tab import MixTab
|
||||||
from applog import logger
|
from applog import logger
|
||||||
import time
|
import time
|
||||||
|
import datetime
|
||||||
|
|
||||||
class Sinopec_ewcc(object):
|
class Sinopec_ewcc(object):
|
||||||
tab:MixTab
|
tab:MixTab
|
||||||
@@ -14,11 +15,12 @@ class Sinopec_ewcc(object):
|
|||||||
self.url_info= 'ewcc.sinopec'
|
self.url_info= 'ewcc.sinopec'
|
||||||
self.browser_path= r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
|
self.browser_path= r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
|
||||||
self.co = ChromiumOptions().set_browser_path(self.browser_path)
|
self.co = ChromiumOptions().set_browser_path(self.browser_path)
|
||||||
#self.co.headless(True)
|
self.co.headless(True)
|
||||||
self.co.ignore_certificate_errors(True)
|
self.co.ignore_certificate_errors(True)
|
||||||
self.browser=Chromium(self.co)
|
self.browser=Chromium(self.co)
|
||||||
self.tab=self.browser.latest_tab
|
self.tab=self.browser.latest_tab
|
||||||
#判断对应的任务是否完成
|
#判断对应的任务是否完成
|
||||||
|
self.export_date=datetime.date.today()
|
||||||
self.is_query_member=False
|
self.is_query_member=False
|
||||||
self.is_query_oil_fw_tj=False
|
self.is_query_oil_fw_tj=False
|
||||||
self.is_query_oil_current_month_lj=False
|
self.is_query_oil_current_month_lj=False
|
||||||
@@ -209,6 +211,15 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
def send_message(self):
|
def send_message(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def today_is_export_date(self):
|
||||||
|
cur_date=datetime.date.today()
|
||||||
|
if self.export_date!=cur_date:
|
||||||
|
self.export_date=cur_date
|
||||||
|
self.is_query_client_emp_tj=False
|
||||||
|
self.is_query_oil_fw_tj=False
|
||||||
|
self.is_query_member=False
|
||||||
|
self.is_query_oil_current_month_lj=False
|
||||||
|
|
||||||
def query_car_info(self, plate_number=None, phone_number=None, result_list=None):
|
def query_car_info(self, plate_number=None, phone_number=None, result_list=None):
|
||||||
"""查询车辆信息
|
"""查询车辆信息
|
||||||
@@ -322,15 +333,15 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
#取得开始日期,并获得焦点
|
#取得开始日期,并获得焦点
|
||||||
ele=search_type_ele[1]
|
ele=search_type_ele[1]
|
||||||
logger.info(f"元素信息:{ele}")
|
# logger.info(f"元素信息:{ele}")
|
||||||
ele.focus()
|
ele.focus()
|
||||||
|
|
||||||
#查找 弹出的日期窗体
|
#查找 弹出的日期窗体
|
||||||
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
|
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
|
||||||
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
|
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
|
||||||
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
|
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
|
||||||
logger.info(f"日期元素信息:{ele_date_head}")
|
# logger.info(f"日期元素信息:{ele_date_head}")
|
||||||
logger.info(f"日期元素信息:{ele_date_content}")
|
# logger.info(f"日期元素信息:{ele_date_content}")
|
||||||
|
|
||||||
ele_date_day=ele_date_content.eles("@@tag()=td")
|
ele_date_day=ele_date_content.eles("@@tag()=td")
|
||||||
for a in ele_date_day:
|
for a in ele_date_day:
|
||||||
@@ -340,7 +351,7 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
|
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
|
||||||
ele[1].click(by_js=True)
|
ele[1].click(by_js=True)
|
||||||
logger.info(f"myframe元素信息 :{ele[1]}")
|
# logger.info(f"myframe元素信息 :{ele[1]}")
|
||||||
#logger.info(f"日期选择器元素信息:{ele[0]}")
|
#logger.info(f"日期选择器元素信息:{ele[0]}")
|
||||||
|
|
||||||
time.sleep(5) # 可以考虑替换为条件等待
|
time.sleep(5) # 可以考虑替换为条件等待
|
||||||
@@ -353,10 +364,10 @@ class Sinopec_ewcc(object):
|
|||||||
if export_packet.response.body.get('success'):
|
if export_packet.response.body.get('success'):
|
||||||
logger.info("成功导出 员工拉新权益会员明细 ")
|
logger.info("成功导出 员工拉新权益会员明细 ")
|
||||||
#logger.info(export_packet.request.postData)
|
#logger.info(export_packet.request.postData)
|
||||||
|
self.tab.listen.stop()
|
||||||
self.tab.listen.stop()
|
logger.info("导出客户评价与员工关联统计查询完成")
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
logger.info("客户评价与员工关联统计查询完成")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(f"员工拉新权益会员明细查询异常: {str(e)}")
|
logger.exception(f"员工拉新权益会员明细查询异常: {str(e)}")
|
||||||
return False
|
return False
|
||||||
@@ -382,8 +393,8 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
# 根据输入参数选择查询类型
|
# 根据输入参数选择查询类型
|
||||||
search_type_ele = myframe.eles("@@tag()=input@@type=text")
|
search_type_ele = myframe.eles("@@tag()=input@@type=text")
|
||||||
for a in search_type_ele:
|
# for a in search_type_ele:
|
||||||
logger.info(f"元素信息:{a.html}")
|
# logger.info(f"元素信息:{a.html}")
|
||||||
#a.focus()
|
#a.focus()
|
||||||
#time.sleep(2) # 可以考虑替换为条件等待
|
#time.sleep(2) # 可以考虑替换为条件等待
|
||||||
|
|
||||||
@@ -400,15 +411,15 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
#取得开始日期,并获得焦点
|
#取得开始日期,并获得焦点
|
||||||
ele=search_type_ele[3]
|
ele=search_type_ele[3]
|
||||||
logger.info(f"元素信息:{ele}")
|
# logger.info(f"元素信息:{ele}")
|
||||||
ele.focus()
|
ele.focus()
|
||||||
|
|
||||||
#查找 弹出的日期窗体
|
#查找 弹出的日期窗体
|
||||||
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
|
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
|
||||||
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
|
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
|
||||||
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
|
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
|
||||||
logger.info(f"日期元素信息:{ele_date_head}")
|
# logger.info(f"日期元素信息:{ele_date_head}")
|
||||||
logger.info(f"日期元素信息:{ele_date_content}")
|
# logger.info(f"日期元素信息:{ele_date_content}")
|
||||||
|
|
||||||
ele_date_day=ele_date_content.eles("@@tag()=td")
|
ele_date_day=ele_date_content.eles("@@tag()=td")
|
||||||
for a in ele_date_day:
|
for a in ele_date_day:
|
||||||
@@ -418,7 +429,7 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
|
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
|
||||||
ele[1].click(by_js=True)
|
ele[1].click(by_js=True)
|
||||||
logger.info(f"myframe元素信息 :{ele[1]}")
|
# logger.info(f"myframe元素信息 :{ele[1]}")
|
||||||
#logger.info(f"日期选择器元素信息:{ele[0]}")
|
#logger.info(f"日期选择器元素信息:{ele[0]}")
|
||||||
|
|
||||||
time.sleep(5) # 可以考虑替换为条件等待
|
time.sleep(5) # 可以考虑替换为条件等待
|
||||||
@@ -464,8 +475,8 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
# 根据输入参数选择查询类型
|
# 根据输入参数选择查询类型
|
||||||
search_type_ele = myframe.eles("@@tag()=input@@type=text")
|
search_type_ele = myframe.eles("@@tag()=input@@type=text")
|
||||||
for a in search_type_ele:
|
# for a in search_type_ele:
|
||||||
logger.info(f"元素信息:{a}")
|
# logger.info(f"元素信息:{a}")
|
||||||
|
|
||||||
# #取得开始日期,并获得焦点
|
# #取得开始日期,并获得焦点
|
||||||
# ele=search_type_ele[1]
|
# ele=search_type_ele[1]
|
||||||
@@ -530,8 +541,8 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
# 根据输入参数选择查询类型
|
# 根据输入参数选择查询类型
|
||||||
search_type_ele = myframe.eles("@@tag()=input@@type=text")
|
search_type_ele = myframe.eles("@@tag()=input@@type=text")
|
||||||
for a in search_type_ele:
|
# for a in search_type_ele:
|
||||||
logger.info(f"元素信息:{a}")
|
# logger.info(f"元素信息:{a}")
|
||||||
|
|
||||||
#按油站汇总
|
#按油站汇总
|
||||||
ele=search_type_ele[1]
|
ele=search_type_ele[1]
|
||||||
@@ -546,15 +557,15 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
#取得开始日期,并获得焦点
|
#取得开始日期,并获得焦点
|
||||||
ele=search_type_ele[2]
|
ele=search_type_ele[2]
|
||||||
logger.info(f"元素信息:{ele}")
|
# logger.info(f"元素信息:{ele}")
|
||||||
ele.focus()
|
ele.focus()
|
||||||
|
|
||||||
#查找 弹出的日期窗体
|
#查找 弹出的日期窗体
|
||||||
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
|
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
|
||||||
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
|
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
|
||||||
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
|
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
|
||||||
logger.info(f"日期元素信息:{ele_date_head}")
|
# logger.info(f"日期元素信息:{ele_date_head}")
|
||||||
logger.info(f"日期元素信息:{ele_date_content}")
|
# logger.info(f"日期元素信息:{ele_date_content}")
|
||||||
|
|
||||||
ele_date_day=ele_date_content.eles("@@tag()=td")
|
ele_date_day=ele_date_content.eles("@@tag()=td")
|
||||||
for a in ele_date_day:
|
for a in ele_date_day:
|
||||||
|
|||||||
@@ -0,0 +1,182 @@
|
|||||||
|
from DrissionPage._base.chromium import Chromium
|
||||||
|
from DrissionPage._configs.chromium_options import ChromiumOptions
|
||||||
|
from DrissionPage._pages.mix_tab import MixTab
|
||||||
|
from applog import logger
|
||||||
|
import time
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
|
||||||
|
class Lmk_BI(object):
|
||||||
|
tab: MixTab
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.url = 'https://lmkbi.95155.com/bi-system/#/login'
|
||||||
|
self.url_info = 'lmkbi.95155.com'
|
||||||
|
self.browser_path = r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
|
||||||
|
self.cookies_file = 'lmk_cookies.json' # 保存cookies的文件
|
||||||
|
self.co = ChromiumOptions().set_browser_path(self.browser_path).set_local_port(9555)
|
||||||
|
# self.co.headless(False) # 设为False以便查看操作过程
|
||||||
|
# self.co.ignore_certificate_errors(True)
|
||||||
|
|
||||||
|
self.browser = Chromium(self.co)
|
||||||
|
self.tab = self.browser.latest_tab
|
||||||
|
self.tab.set.window.max()
|
||||||
|
self.tab.set.cookies.clear
|
||||||
|
|
||||||
|
def quit(self):
|
||||||
|
self.browser.quit()
|
||||||
|
logger.info("浏览器已退出")
|
||||||
|
|
||||||
|
def load_cookies_from_file(self):
|
||||||
|
"""从文件加载cookies"""
|
||||||
|
try:
|
||||||
|
if os.path.exists(self.cookies_file):
|
||||||
|
with open(self.cookies_file, 'r', encoding='utf-8') as f:
|
||||||
|
cookies = json.load(f)
|
||||||
|
logger.info(f"从文件 {self.cookies_file} 加载cookies成功")
|
||||||
|
return cookies
|
||||||
|
else:
|
||||||
|
logger.warning(f"cookies文件 {self.cookies_file} 不存在")
|
||||||
|
return None
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"加载cookies文件失败: {str(e)}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def save_cookies_to_file(self, cookies):
|
||||||
|
"""保存cookies到文件"""
|
||||||
|
try:
|
||||||
|
with open(self.cookies_file, 'w', encoding='utf-8') as f:
|
||||||
|
json.dump(cookies, f, ensure_ascii=False, indent=2)
|
||||||
|
logger.info(f"cookies已保存到文件 {self.cookies_file}")
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"保存cookies到文件失败: {str(e)}")
|
||||||
|
|
||||||
|
def init_cookies(self, cookies):
|
||||||
|
"""设置传入的cookies到浏览器"""
|
||||||
|
logger.info('使用传入的cookies登录')
|
||||||
|
|
||||||
|
# 处理字符串类型的cookies
|
||||||
|
if isinstance(cookies, str):
|
||||||
|
try:
|
||||||
|
parsed_cookies = json.loads(cookies)
|
||||||
|
logger.info(f"成功将字符串cookies解析为JSON对象,共 {len(parsed_cookies)} 条")
|
||||||
|
return self.init_cookies(parsed_cookies)
|
||||||
|
except json.JSONDecodeError as e:
|
||||||
|
logger.error(f'字符串cookies解析失败: {str(e)}')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# 处理字典类型的cookies
|
||||||
|
elif isinstance(cookies, dict):
|
||||||
|
try:
|
||||||
|
self.browser.set.cookies(cookies)
|
||||||
|
logger.info('成功设置字典类型的cookies')
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f'设置字典类型的cookies失败: {str(e)}')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# 处理列表类型的cookies
|
||||||
|
elif isinstance(cookies, list):
|
||||||
|
try:
|
||||||
|
for cookie in cookies:
|
||||||
|
self.browser.set.cookies(cookie)
|
||||||
|
logger.info('成功设置列表类型的cookies')
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f'设置列表类型的cookies失败: {str(e)}')
|
||||||
|
return False
|
||||||
|
|
||||||
|
# 处理未知类型
|
||||||
|
else:
|
||||||
|
logger.error(f'传入的cookies格式不正确,类型为: {type(cookies)},应为列表、字典或JSON字符串')
|
||||||
|
return False
|
||||||
|
|
||||||
|
def save_cookies(self):
|
||||||
|
"""获取并返回当前浏览器tab的cookies"""
|
||||||
|
try:
|
||||||
|
self.tab.refresh()
|
||||||
|
cookies = self.tab.cookies()
|
||||||
|
self.save_cookies_to_file(cookies)
|
||||||
|
return cookies
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"获取cookies失败: {str(e)}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def is_login(self):
|
||||||
|
"""判断是否已登录"""
|
||||||
|
logger.info("判断是否登录")
|
||||||
|
try:
|
||||||
|
# 刷新页面以确保获取最新状态
|
||||||
|
self.tab.refresh()
|
||||||
|
time.sleep(3)
|
||||||
|
verify_code_button = self.tab.eles('@@tag()=button@@text()=获取验证码')
|
||||||
|
if verify_code_button:
|
||||||
|
logger.info("发现'获取验证码'按钮,视为未登录")
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
logger.info("未发现'获取验证码'按钮,视为已登录")
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"判断登录状态时出错: {str(e)}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def open_web_with_cookies(self):
|
||||||
|
"""使用保存的cookies打开网站"""
|
||||||
|
try:
|
||||||
|
# 加载cookies
|
||||||
|
cookies = self.load_cookies_from_file()
|
||||||
|
self.init_cookies(cookies)
|
||||||
|
# 打开网站
|
||||||
|
logger.info(f"加载 cookies 成功")
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"加载 cookies 失败: {str(e)}")
|
||||||
|
self.tab.get(self.url)
|
||||||
|
time.sleep(5) # 等待页面加载
|
||||||
|
return self.is_login()
|
||||||
|
|
||||||
|
def first_time_login(self):
|
||||||
|
"""首次登录,需要手动操作保存cookies"""
|
||||||
|
try:
|
||||||
|
logger.info("请手动登录网站...")
|
||||||
|
self.tab.get(self.url)
|
||||||
|
|
||||||
|
# 等待用户手动登录
|
||||||
|
logger.info("请在浏览器中完成登录操作,然后按Enter键继续...")
|
||||||
|
input("登录完成后按Enter键继续...")
|
||||||
|
|
||||||
|
# 检查是否登录成功
|
||||||
|
if self.is_login():
|
||||||
|
# 保存cookies
|
||||||
|
self.save_cookies()
|
||||||
|
logger.info("首次登录成功,cookies已保存")
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
logger.warning("登录失败,请重试")
|
||||||
|
return False
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"首次登录时出错: {str(e)}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
"""运行主程序"""
|
||||||
|
try:
|
||||||
|
# 尝试使用cookies登录
|
||||||
|
if not self.open_web_with_cookies():
|
||||||
|
# 如果cookies登录失败,提示用户手动登录
|
||||||
|
logger.info("cookies登录失败,准备手动登录")
|
||||||
|
self.first_time_login()
|
||||||
|
|
||||||
|
# 保持浏览器打开一段时间
|
||||||
|
logger.info("操作完成,浏览器将保持打开状态")
|
||||||
|
time.sleep(30)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"运行时出错: {str(e)}")
|
||||||
|
finally:
|
||||||
|
# 关闭浏览器
|
||||||
|
self.save_cookies()
|
||||||
|
self.quit()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# 创建实例并运行
|
||||||
|
lmk_bi = Lmk_BI()
|
||||||
|
lmk_bi.run()
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "LMKBIUSS",
|
||||||
|
"value": "eyJhY2NvdW50SWQiOjIzMzk0OTQ3NTAwMjA0OSwicGhvbmUiOiIxMzU0ODU2OTY2NiIsInRpbWVzdGFtcCI6MTc2MDY4Mzg5MzIwOCwidG9rZW4iOiJlMmJhMTE1Yi05YmZiLTQ5MDYtYTA0OS1iMzlmMjkwYTFmODUifQ==",
|
||||||
|
"domain": "lmkbi.95155.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "edentoken",
|
||||||
|
"value": "13548569666",
|
||||||
|
"domain": "lmkbi.95155.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user",
|
||||||
|
"value": "13548569666",
|
||||||
|
"domain": "lmkbi.95155.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "userType",
|
||||||
|
"value": "2",
|
||||||
|
"domain": "lmkbi.95155.com"
|
||||||
|
}
|
||||||
|
]
|
||||||
File diff suppressed because it is too large
Load Diff
+7
-9
@@ -190,31 +190,29 @@ def main():
|
|||||||
# 保留浏览器cookies
|
# 保留浏览器cookies
|
||||||
save_param4( ewcc.tab.cookies())
|
save_param4( ewcc.tab.cookies())
|
||||||
|
|
||||||
|
# 检查最后导出日期是否今天,如果不是,则今天导出
|
||||||
|
ewcc.today_is_export_date()
|
||||||
|
|
||||||
# 查询员工拉新权益会员明细
|
# 查询员工拉新权益会员明细
|
||||||
#if not ewcc.is_query_member and datetime.datetime.now().hour >= 3:
|
if not ewcc.is_query_member and datetime.datetime.now().hour >= 3:
|
||||||
#logger.info("开始查询员工拉新权益会员明细")
|
logger.info("开始查询员工拉新权益会员明细")
|
||||||
#ewcc.is_query_member=ewcc.query_memeber()
|
ewcc.is_query_member=ewcc.query_memeber()
|
||||||
|
|
||||||
# 查询员工拉新权益会员明细
|
# 查询员工拉新权益会员明细
|
||||||
if not ewcc.is_query_oil_fw_tj and datetime.datetime.now().hour >= 3:
|
if not ewcc.is_query_oil_fw_tj and datetime.datetime.now().hour >= 3:
|
||||||
logger.info("开始查询油站服务号应用统计")
|
logger.info("开始查询油站服务号应用统计")
|
||||||
ewcc.query_oil_fw_tj()
|
|
||||||
ewcc.is_query_oil_fw_tj=ewcc.query_oil_fw_tj()
|
ewcc.is_query_oil_fw_tj=ewcc.query_oil_fw_tj()
|
||||||
continue
|
|
||||||
|
|
||||||
# 查询油站汇总本月累计
|
# 查询油站汇总本月累计
|
||||||
if not ewcc.is_query_oil_current_month_lj and datetime.datetime.now().hour >= 3:
|
if not ewcc.is_query_oil_current_month_lj and datetime.datetime.now().hour >= 3:
|
||||||
logger.info("开始查询 按油站汇总本月累计")
|
logger.info("开始查询 按油站汇总本月累计")
|
||||||
ewcc.query_oil_current_month_lj()
|
|
||||||
ewcc.is_query_oil_current_month_lj=ewcc.query_oil_current_month_lj()
|
ewcc.is_query_oil_current_month_lj=ewcc.query_oil_current_month_lj()
|
||||||
continue
|
|
||||||
|
|
||||||
# 查询客户评价与员工关联统计
|
# 查询客户评价与员工关联统计
|
||||||
if not ewcc.is_query_client_emp_tj and datetime.datetime.now().hour >= 3:
|
if not ewcc.is_query_client_emp_tj and datetime.datetime.now().hour >= 3:
|
||||||
logger.info("开始查询客户评价与员工关联统计")
|
logger.info("开始查询客户评价与员工关联统计")
|
||||||
ewcc.query_client_emp_tj()
|
|
||||||
ewcc.is_query_client_emp_tj=ewcc.query_client_emp_tj()
|
ewcc.is_query_client_emp_tj=ewcc.query_client_emp_tj()
|
||||||
continue
|
|
||||||
|
|
||||||
# 获取待处理查询
|
# 获取待处理查询
|
||||||
pending_queries = get_pending_queries()
|
pending_queries = get_pending_queries()
|
||||||
|
|||||||
Reference in New Issue
Block a user