207 lines
9.2 KiB
Python
207 lines
9.2 KiB
Python
# globalData.py
|
|
import json
|
|
import time
|
|
import redis
|
|
from config import redis_url
|
|
|
|
|
|
class GlobalData:
|
|
|
|
# 数据字段
|
|
standard_company_program = {}
|
|
standard_company_name_list = []
|
|
simply_to_standard_company_name_map = {}
|
|
pinyin_simply_to_standard_company_name_map = {}
|
|
|
|
standard_project_name_list = []
|
|
simply_to_standard_project_name_map = {}
|
|
pinyin_simply_to_standard_project_name_map = {}
|
|
|
|
standard_construct_name_list = []
|
|
simply_to_standard_construct_name_map = {}
|
|
pinyin_simply_to_standard_construct_name_map = {}
|
|
|
|
standard_constractor_name_list = []
|
|
simply_to_standard_constractor_name_map = {}
|
|
pinyin_simply_to_standard_constractor_name_map = {}
|
|
|
|
@classmethod
|
|
def update_from_local(cls):
|
|
from utils import (
|
|
load_standard_data,
|
|
load_standard_name,
|
|
clean_useless_company_name,
|
|
clean_useless_project_name,
|
|
text_to_pinyin
|
|
)
|
|
|
|
# 公司数据
|
|
temp_standard_company_program = load_standard_data("./standard_data/standard_company_program.json")
|
|
if temp_standard_company_program != cls.standard_company_program:
|
|
cls.standard_company_program.clear()
|
|
cls.standard_company_program.update(temp_standard_company_program)
|
|
|
|
cls.standard_company_name_list.clear()
|
|
cls.standard_company_name_list.extend(list(cls.standard_company_program.keys()))
|
|
|
|
cls.simply_to_standard_company_name_map.clear()
|
|
cls.simply_to_standard_company_name_map.update({
|
|
clean_useless_company_name(kw): kw for kw in cls.standard_company_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_company_name_map.clear()
|
|
cls.pinyin_simply_to_standard_company_name_map.update({
|
|
text_to_pinyin(clean_useless_company_name(kw)): kw for kw in cls.standard_company_name_list
|
|
})
|
|
|
|
# 工程名数据
|
|
temp_standard_project_name_list = load_standard_name('./standard_data/standard_project.txt')
|
|
if temp_standard_project_name_list != cls.standard_project_name_list:
|
|
cls.standard_project_name_list.clear()
|
|
cls.standard_project_name_list.extend(temp_standard_project_name_list)
|
|
|
|
cls.simply_to_standard_project_name_map.clear()
|
|
cls.simply_to_standard_project_name_map.update({
|
|
clean_useless_project_name(kw): kw for kw in cls.standard_project_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_project_name_map.clear()
|
|
cls.pinyin_simply_to_standard_project_name_map.update({
|
|
text_to_pinyin(clean_useless_project_name(kw)): kw for kw in cls.standard_project_name_list
|
|
})
|
|
|
|
# 建管单位数据
|
|
temp_standard_construct_name_list = load_standard_name('./standard_data/construct_unit.txt')
|
|
if temp_standard_construct_name_list != cls.standard_construct_name_list:
|
|
cls.standard_construct_name_list.clear()
|
|
cls.standard_construct_name_list.extend(temp_standard_construct_name_list)
|
|
|
|
cls.simply_to_standard_construct_name_map.clear()
|
|
cls.simply_to_standard_construct_name_map.update({
|
|
clean_useless_company_name(kw): kw for kw in cls.standard_construct_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_construct_name_map.clear()
|
|
cls.pinyin_simply_to_standard_construct_name_map.update({
|
|
text_to_pinyin(clean_useless_company_name(kw)): kw for kw in cls.standard_construct_name_list
|
|
})
|
|
|
|
# 分包单位数据
|
|
temp_standard_constractor_name_list = load_standard_name('./standard_data/sub_contract.txt')
|
|
if temp_standard_constractor_name_list != cls.standard_constractor_name_list:
|
|
cls.standard_constractor_name_list.clear()
|
|
cls.standard_constractor_name_list.extend(temp_standard_constractor_name_list)
|
|
|
|
cls.simply_to_standard_constractor_name_map.clear()
|
|
cls.simply_to_standard_constractor_name_map.update({
|
|
clean_useless_company_name(kw): kw for kw in cls.standard_constractor_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_constractor_name_map.clear()
|
|
cls.pinyin_simply_to_standard_constractor_name_map.update({
|
|
text_to_pinyin(clean_useless_company_name(kw)): kw for kw in cls.standard_constractor_name_list
|
|
})
|
|
|
|
print(f"✅ Data updated from local at {time.strftime('%Y-%m-%d %H:%M:%S')}")
|
|
|
|
|
|
@classmethod
|
|
def update_from_redis(cls):
|
|
from utils import (
|
|
load_standard_data,
|
|
load_standard_name,
|
|
clean_useless_company_name,
|
|
clean_useless_project_name,
|
|
text_to_pinyin
|
|
)
|
|
|
|
# 公司数据
|
|
# r = redis.Redis(host='192.168.0.37', port=16379, password = 'Bonus@Redis123!', decode_responses=True)
|
|
r = redis.from_url(redis_url, decode_responses=True)
|
|
|
|
json_str = r.get('SBD_QUERY_DATA:STANDARD_COMPANY_PROGRAM')
|
|
if json_str:
|
|
temp_standard_company_program = json.loads(json_str)
|
|
print(f"update_from_redis:temp_standard_project_name_list from redis")
|
|
else:
|
|
temp_standard_company_program = load_standard_data("./standard_data/standard_company_program.json")
|
|
|
|
if temp_standard_company_program != cls.standard_company_program:
|
|
cls.standard_company_program.clear()
|
|
cls.standard_company_program.update(temp_standard_company_program)
|
|
|
|
cls.standard_company_name_list.clear()
|
|
cls.standard_company_name_list.extend(list(cls.standard_company_program.keys()))
|
|
|
|
cls.simply_to_standard_company_name_map.clear()
|
|
cls.simply_to_standard_company_name_map.update({
|
|
clean_useless_company_name(kw): kw for kw in cls.standard_company_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_company_name_map.clear()
|
|
cls.pinyin_simply_to_standard_company_name_map.update({
|
|
text_to_pinyin(clean_useless_company_name(kw)): kw for kw in cls.standard_company_name_list
|
|
})
|
|
|
|
# 工程名数据
|
|
json_str = r.get('SBD_QUERY_DATA:PROJECT_NAME')
|
|
if json_str:
|
|
temp_standard_project_name_list = json.loads(json_str)
|
|
print(f"update_from_redis:temp_standard_project_name_list from redis")
|
|
else:
|
|
temp_standard_project_name_list = load_standard_name('./standard_data/standard_project.txt')
|
|
|
|
if temp_standard_project_name_list != cls.standard_project_name_list:
|
|
cls.standard_project_name_list.clear()
|
|
cls.standard_project_name_list.extend(temp_standard_project_name_list)
|
|
|
|
cls.simply_to_standard_project_name_map.clear()
|
|
cls.simply_to_standard_project_name_map.update({
|
|
clean_useless_project_name(kw): kw for kw in cls.standard_project_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_project_name_map.clear()
|
|
cls.pinyin_simply_to_standard_project_name_map.update({
|
|
text_to_pinyin(clean_useless_project_name(kw)): kw for kw in cls.standard_project_name_list
|
|
})
|
|
|
|
# 建管单位数据
|
|
temp_standard_construct_name_list = load_standard_name('./standard_data/construct_unit.txt')
|
|
if temp_standard_construct_name_list != cls.standard_construct_name_list:
|
|
cls.standard_construct_name_list.clear()
|
|
cls.standard_construct_name_list.extend(temp_standard_construct_name_list)
|
|
|
|
cls.simply_to_standard_construct_name_map.clear()
|
|
cls.simply_to_standard_construct_name_map.update({
|
|
clean_useless_company_name(kw): kw for kw in cls.standard_construct_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_construct_name_map.clear()
|
|
cls.pinyin_simply_to_standard_construct_name_map.update({
|
|
text_to_pinyin(clean_useless_company_name(kw)): kw for kw in cls.standard_construct_name_list
|
|
})
|
|
|
|
# 分包单位数据
|
|
json_str = r.get('SBD_QUERY_DATA:SUBCONTRACTOR')
|
|
if json_str:
|
|
temp_standard_constractor_name_list = json.loads(json_str)
|
|
print(f"update_from_redis:temp_standard_constractor_name_list from redis")
|
|
else:
|
|
temp_standard_constractor_name_list = load_standard_name('./standard_data/sub_contract.txt')
|
|
|
|
if temp_standard_constractor_name_list != cls.standard_constractor_name_list:
|
|
cls.standard_constractor_name_list.clear()
|
|
cls.standard_constractor_name_list.extend(temp_standard_constractor_name_list)
|
|
|
|
cls.simply_to_standard_constractor_name_map.clear()
|
|
cls.simply_to_standard_constractor_name_map.update({
|
|
clean_useless_company_name(kw): kw for kw in cls.standard_constractor_name_list
|
|
})
|
|
|
|
cls.pinyin_simply_to_standard_constractor_name_map.clear()
|
|
cls.pinyin_simply_to_standard_constractor_name_map.update({
|
|
text_to_pinyin(clean_useless_company_name(kw)): kw for kw in cls.standard_constractor_name_list
|
|
})
|
|
|
|
print(f"✅ Data updated from local at {time.strftime('%Y-%m-%d %H:%M:%S')}")
|