# -*- coding: utf-8 -*- from __future__ import division import xlrd from django.conf import settings from pysnippets.strsnippets import strip from mch.models import BrandInfo, DistributorInfo, ModelInfo from statistic.models import (ConsumeDistributorSaleStatisticInfo, ConsumeModelSaleStatisticInfo, ConsumeProvinceSaleStatisticInfo, DistributorSaleStatisticInfo, ModelSaleStatisticInfo, ProvinceSaleStatisticInfo) PROVINCE_LIST = { "110000": "北京市", "120000": "天津市", "130000": "河北省", "140000": "山西省", "150000": "内蒙古自治区", "210000": "辽宁省", "220000": "吉林省", "230000": "黑龙江省", "310000": "上海市", "320000": "江苏省", "330000": "浙江省", "340000": "安徽省", "350000": "福建省", "360000": "江西省", "370000": "山东省", "410000": "河南省", "420000": "湖北省", "430000": "湖南省", "440000": "广东省", "450000": "广西壮族自治区", "460000": "海南省", "500000": "重庆市", "510000": "四川省", "520000": "贵州省", "530000": "云南省", "540000": "西藏自治区", "610000": "陕西省", "620000": "甘肃省", "630000": "青海省", "640000": "宁夏回族自治区", "650000": "新疆维吾尔自治区", "710000": "台湾省", "810000": "香港特别行政区", "820000": "澳门特别行政区" } def pre_provinces(): brands = BrandInfo.objects.filter(status=True) for brand in brands: for pcode, pname in PROVINCE_LIST.items(): pssi, created = ProvinceSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, province_code=pcode, ymd=0) pssi.province_name = pname pssi.save() cpssi, created = ConsumeProvinceSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, province_code=pcode, ymd=0) cpssi.province_name = pname cpssi.save() def pre_models(): brands = BrandInfo.objects.filter(status=True) for brand in brands: models = ModelInfo.objects.filter(brand_id=brand.brand_id, status=True) for mdl in models: mssi, created = ModelSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, model_id=mdl.model_id, ymd=0) mssi.model_name = mdl.model_name mssi.save() cmssi, created = ConsumeModelSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, model_id=mdl.model_id, ymd=0) cmssi.model_name = mdl.model_name cmssi.save() def pre_distributors(): brands = BrandInfo.objects.filter(status=True) for brand in brands: distributors = DistributorInfo.objects.filter(brand_id=brand.brand_id, status=True) for dtbt in distributors: dssi, created = DistributorSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, distributor_id=dtbt.distributor_id, ymd=0) dssi.distributor_name = dtbt.distributor_name dssi.save() cdssi, created = ConsumeDistributorSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, distributor_id=dtbt.distributor_id, ymd=0) cdssi.distributor_name = dtbt.distributor_name cdssi.save() def pre_all(): pre_provinces() pre_models() pre_distributors() # In [55]: cv # Out[55]: 991000295147.0 # # In [56]: str(cv) # Out[56]: '9.91000295147e+11' # # In [57]: repr(cv) # Out[57]: '991000295147.0' def convert_to_str(cv): if isinstance(cv, (int, float)): cv = repr(cv)[:-2] if repr(cv).endswith('.0') else repr(cv) if isinstance(cv, str): cv = cv.strip() return cv def pre_new_models(fpath='./pre/static/models_20180816.xls'): workbook = xlrd.open_workbook(fpath) # sheet = workbook.sheet_by_name('SMR') sheets = workbook.sheets() sheet = sheets[0] nrows = sheet.nrows for idx in range(1, nrows): rvals = sheet.row_values(idx) print rvals jancode = strip(rvals[0]) if not jancode: continue mdl, _ = ModelInfo.objects.get_or_create(jancode=jancode) mdl.brand_id = settings.KODO_DEFAULT_BRAND_ID mdl.brand_name = settings.KODO_DEFAULT_BRAND_NAME mdl.model_name = strip(rvals[1]) mdl.model_uni_name = strip(rvals[2]) mdl.category = strip(rvals[3]) mdl.model_full_name = strip(rvals[4]) mdl.warehouse = strip(rvals[5]) mdl.save()