123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- import os, sys,time,datetime
- import urllib, urllib2, sys
- import requests
- from mongoengine import register_connection, PointField, DynamicDocument, StringField
- import simplejson as json
- import ssl
- import xlrd
- from xlrd import xldate_as_tuple
- 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)
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "configs.testing")
- from script.base import init_env
- init_env(interactive = False)
- from apps.web.core.db import Searchable
- from apps.web.core.utils import generate_excel_report
- register_connection(alias = 'spider',
- name = 'spider',
- host = '211.159.224.10',
- port = 27119,
- username = 'service',
- password = 'oOzjoQcO5DyyiN97AY0NpzJ6vztjNpx5',
- authentication_source = 'admin')
- class shankailaidianDevice(Searchable):
- meta = {
- 'collection': 'shankailaidian_device',
- 'db_alias': 'spider',
- 'unique_together': {'vStationNo'}
- }
- records = []
- owerDict = {}
- ii = 0
- for rcd in shankailaidianDevice.get_collection().find({}):
- ii += 1
- if ii % 100 == 0:
- print ii
-
- addYear = rcd['tAddTime'].split('-')[0]
-
- if rcd['vHelpMobile'] in owerDict:
- owerDict[rcd['vHelpMobile']]['count'] += 1
- owerDict[rcd['vHelpMobile']]['income'] += float(rcd['dTotalIncome'])
- if owerDict[rcd['vHelpMobile']].has_key(addYear):
- owerDict[rcd['vHelpMobile']][addYear] += 1
- else:
- owerDict[rcd['vHelpMobile']][addYear] = 1
-
- else:
- owerDict[rcd['vHelpMobile']] = {'count':1,'income':float(rcd['dTotalIncome']),addYear:1}
- for mobile,info in owerDict.items():
- ii += 1
- if ii % 100 == 0:
- print ii
- dataList = [
- (u'电话', mobile),
- (u'数目', info['count']),
- (u'总收入', info['income']),
- (u'分配', info['income']*0.2),
- (u'单台设备均分', info['income']*0.2/info['count']),
- (u'2022', info.get('2022',0)),
- (u'2021', info.get('2021',0)),
- (u'2020', info.get('2020',0)),
- (u'2019', info.get('2019',0)),
- (u'2018', info.get('2018',0)),
- ]
-
- records.append(OrderedDict(dataList))
- generate_excel_report('F:/shankailaidian_tongji3.xlsx', records,True)
- print('OK')
|