123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- import datetime
- import os
- import sys
- from collections import OrderedDict
- PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..')
- sys.path.insert(0, PROJECT_ROOT)
- from script.base import init_env
- os.environ.update({"DJANGO_SETTINGS_MODULE": "configs.production"})
- init_env(interactive = False)
- from apps.web.dealer.models import DealerRechargeRecord, Dealer
- from apps.web.device.models import Device, SIMCard
- from apps.web.core.utils import generate_excel_report
- start_time = datetime.datetime.strptime(sys.argv[1], "%Y-%m-%d %H:%M:%S")
- end_time = datetime.datetime.strptime(sys.argv[2], "%Y-%m-%d %H:%M:%S")
- if len(sys.argv) >= 4:
- save_path = sys.argv[3]
- else:
- save_path = None
- rechare_map = {}
- objs = DealerRechargeRecord.objects.filter(status = 'Paid', finishedTime__gte = start_time, finishedTime__lt = end_time)
- for obj in objs:
- items = obj.items
- for item in items:
- rechare_map[item['devNo']] = obj
- records = []
- devices = [obj for obj in Device.objects(devNo__in = rechare_map.keys())]
- for device in devices:
- dataList = [
- (u'逻辑码', device.logicalCode),
- (u'设备编号', device.devNo),
- (u'经销商ID', device.ownerId),
- (u'ICCID', device.iccid),
- (u'IMSI', device.imsi)
- ]
-
- if device.ownerId == '':
- continue
- dealer = Dealer.objects(id = device.ownerId).first()
- dataList.append((u'电话', dealer.username))
- dataList.append((u'经销商', dealer.nickname))
- dataList.append((u'充值时间', rechare_map[device.devNo].finishedTime))
- sim = SIMCard.objects(iccid__in = [device.iccid, device.iccid.upper()]).first()
- if not sim:
- print 'not find sim card = {}'.format(device.iccid)
- dataList.append(('supplier', ''))
- dataList.append(('activeTime', ''))
- dataList.append(('expireTime', ''))
- else:
- dataList.append(('supplier', sim.supplier))
- dataList.append(('activeTime', sim.activeTime))
- dataList.append(('expireTime', sim.expireTime))
- records.append(OrderedDict(dataList))
- if save_path:
- generate_excel_report('{}/{}_{}_sim_charge.xlsx'.format(
- save_path, start_time.strftime('%Y%m%d%H%M%S'), end_time.strftime('%Y%m%d%H%M%S')),
- records, localSave = True)
- else:
- generate_excel_report('{}_{}_sim_charge.xlsx'.format(
- start_time.strftime('%Y%m%d%H%M%S'), end_time.strftime('%Y%m%d%H%M%S')), records, localSave = True)
|