1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
import math import random import const import execute_sql import entity import re
def extract_numbers_from_text(text): if not text or not isinstance(text, str): return None
text = text.replace(',', '')
patterns = [ r'(\d+(?:\.\d+)?)', r'(\d+)', ]
for pattern in patterns: match = re.search(pattern, text) if match: number_str = match.group(1) try: if '.' in number_str: return float(number_str) else: return int(number_str) except ValueError: continue
return None
def import_data_by_db(): names = [] for belong_to in const.component_labels: names.extend(execute_sql.query_store_names(belong_to)) for name in names: categories = execute_sql.query_categories(name) for category in categories: goods_list = execute_sql.query_category_goods(name, category) for goods in goods_list: sales_amount = goods.get_sales_amount() if sales_amount: extracted_number = extract_numbers_from_text(sales_amount) if extracted_number: if extracted_number: extracted_number *= random.uniform(1, 1.25) else: p = random.random() extracted_number += random.uniform(1, 10) * p if p <= 0.5 else 0 sales_amount = str(math.ceil(extracted_number))
monthly_sales_amount = goods.get_monthly_sales_amount() if monthly_sales_amount: extracted_number = extract_numbers_from_text(monthly_sales_amount) if extracted_number: if extracted_number: extracted_number *= random.uniform(0.8, 1.2) else: p = random.random() extracted_number += random.uniform(1, 5) * p if p <= 0.5 else 0 monthly_sales_amount = str(extracted_number)
execute_sql.update_goods(name, entity.Goods(name=goods.get_name(), sales_amount=sales_amount, monthly_sales_amount=monthly_sales_amount, stock=goods.get_stock(), price=goods.get_price(), discount_price=goods.get_discount_price(), discount_description=goods.get_discount_description(), category=goods.get_category() ))
|