| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- #!/usr/bin/env /usr/bin/python3
- # -*- coding:utf-8 -*-
- import hashlib
- # 企业库唯一性调整,离线数据udf
- from dw_base.spark.udf.customs.common_clean import clean_company_name
- escape_mapping = {
- """: '"',
- "<": "<",
- ">": ">",
- "&": "&",
- "'": "'"
- }
- rus_head = [
- 'ООО',
- 'АО',
- 'ПАО',
- 'ЗАО',
- 'ИП',
- 'Общество с ограниченной ответственностью',
- 'Акционерное общество',
- 'Публичное акционерное общество',
- 'Закрытое акционерное общество',
- 'Индивидуальный предприниматель'
- ]
- def replace_escape_char(input_str):
- if not input_str:
- return None
- for key, value in escape_mapping.items():
- input_str = input_str.replace(key, value)
- return input_str
- def generate_md5_hash(input_str: str):
- input_data = input_str.encode('utf-8')
- md5_hash = hashlib.md5()
- md5_hash.update(input_data)
- return md5_hash.hexdigest()
- def generate_tid_rus(company_name: str,
- business_number: str,
- region: str) -> str or None:
- if not company_name:
- return None
- if business_number:
- input_str = business_number + 'AAA'
- else:
- if region:
- input_str = f"{company_name}-{region}BBB"
- else:
- input_str = company_name + 'CCC'
- return 'RUS' + generate_md5_hash(input_str)
- def clean_company_name_extra(s: str) -> str or None:
- if s:
- # 去除前缀
- for prefix in rus_head:
- if s.startswith(prefix.upper()):
- s = s[len(prefix):]
- break
- # 去除字符串前后的空格
- s = s.strip()
- return s
- return None
- def clean_company_name_rus(company_name: str) -> str or None:
- if company_name:
- replace_name = replace_escape_char(company_name)
- name = clean_company_name(replace_name)
- if name:
- name = clean_company_name_extra(name)
- return name
- return None
- region_mapping = {
- 'Нижегородская область': 'Нижегородская область',
- 'Тамбовская область': 'Тамбовская область',
- 'Саратовская область': 'Саратовская область',
- 'Пермский край': 'Пермский край',
- 'Кировская область': 'Кировская область',
- 'Еврейская автономная область': 'Еврейская автономная область',
- 'Херсонская область': None,
- 'Красноярский край': 'Красноярский край',
- 'Тюменская область': 'Тюменская область',
- 'Липецкая область': 'Липецкая область',
- 'Коми (Республика)': 'Республика Коми',
- 'Владимирская область': 'Владимирская область',
- 'Башкортостан (Республика)': 'Республика Башкортостан',
- 'Санкт-Петербург': 'Город Санкт-Петербург',
- 'Калининградская область': 'Калининградская область',
- 'Бурятия (Республика)': 'Республика Бурятия',
- 'Амурская область': 'Амурская область',
- 'Камчатский край': 'Камчатский край',
- 'Оренбургская область': 'Оренбургская область',
- 'Севастополь': 'Севастополь',
- 'Марий Эл (Республика)': 'Республика Марий Эл',
- 'Астраханская область': 'Астраханская область',
- 'Алтай (Республика)': 'Республика Алтай',
- 'Ивановская область': 'Ивановская область',
- 'Тульская область': 'Тульская область',
- 'Мурманская область': 'Мурманская область',
- 'Саха (Республика) (Якутия)': 'Республика Саха (Якутия)',
- 'Чеченская Республика': 'Чеченская Республика',
- 'Ленинградская область': 'Ленинградская область',
- 'Луганская Народная Республика': None,
- 'Челябинская область': 'Челябинская область',
- 'Томская область': 'Томская область',
- 'Мордовия (Республика)': 'Республика Мордовия',
- 'Кабардино-Балкарская Республика': 'Кабардино-Балкарская Республика',
- 'Республика Татарстан': 'Республика Татарстан',
- 'Северная Осетия-Алания (Республика)': 'Республика Северная Осетия-Алания',
- 'Тверская область': 'Тверская область',
- 'Ярославская область': 'Ярославская область',
- 'Иркутская область': 'Иркутская область',
- 'Орловская область': 'Орловская область',
- 'Рязанская область': 'Рязанская область',
- 'Сахалинская область': 'Сахалинская область',
- 'Волгоградская область': 'Волгоградская область',
- 'Ставропольский край': 'Ставропольский край',
- 'Псковская область': 'Псковская область',
- 'Московская область': 'Московская область',
- 'Магаданская область': 'Магаданская область',
- 'Приморский край': 'Приморский край',
- 'Хакасия (Республика)': 'Республика Хакасия',
- 'Самарская область': 'Самарская область',
- 'Карачаево-Черкесская Республика': 'Карачаево-Черкесская Республика',
- 'Чувашская Республика-Чувашия': 'Чувашская Республика',
- 'Смоленская область': 'Смоленская область',
- 'Свердловская область': 'Свердловская область',
- 'Ингушетия (Республика)': 'Республика Ингушетия',
- 'Новгородская область': 'Новгородская область',
- 'Ростовская область': 'Ростовская область',
- 'Пензенская область': 'Пензенская область',
- 'Вологодская область': 'Вологодская область',
- 'Кемеровская область': 'Кемеровская область - Кузбасс',
- 'Москва': 'Город Москва',
- 'Курганская область': 'Курганская область',
- 'Белгородская область': 'Белгородская область',
- 'Курская область': 'Курская область',
- 'Архангельская область': 'Архангельская область',
- 'Ульяновская область': 'Ульяновская область',
- 'Воронежская область': 'Воронежская область',
- 'Брянская область': 'Брянская область',
- 'Донецкая Народная Республика': None,
- 'Республика Крым': 'Республика Крым',
- 'Костромская область': 'Костромская область',
- 'Дагестан (Республика)': 'Республика Дагестан',
- 'Калужская область': 'Калужская область',
- 'Запорожская область': None,
- 'Забайкальский край': 'Забайкальский край',
- 'Адыгея (Республика) (Адыгея)': 'Республика Адыгея',
- 'Хабаровский край': 'Хабаровский край',
- 'Чукотский автономный округ': 'Чукотский автономный округ',
- 'Краснодарский край': 'Краснодарский край',
- 'Алтайский край': 'Алтайский край',
- 'Калмыкия (Республика)': 'Республика Калмыкия',
- 'Омская область': 'Омская область',
- 'Новосибирская область': 'Новосибирская область',
- 'Байконур': 'Байконур',
- 'Удмуртская Республика': 'Удмуртская Республика',
- 'Тыва (Республика)': 'Республика Тыва',
- 'Карелия (Республика)': 'Республика Карелия'
- }
- def get_standard_region(region: str) -> str or None:
- if not region:
- return None
- return region_mapping.get(region)
- if __name__ == '__main__':
- name = 'Хакасия (Республика)'
- print(get_standard_region(name))
- pass
|