1364 lines
66 KiB
Plaintext
1364 lines
66 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"49\n",
|
|
"单条删除 FINST-UG8660A1FYUAATRG7OJJV40X6VM72QEFZRTHL1H 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHL99 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLLA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHL4B 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLTA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHLI9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHL4A 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHLFB 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLIA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHL89 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHL5B 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLQA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHLV9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLYA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHLH9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHL3A 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHLGB 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLBA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHLT9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHL79 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLJA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHL6B 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLRA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHLU9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHLG9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHLHB 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLGA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHLO9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHL69 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHL6A 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHL7B 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHL59 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLOA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHLX9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHLN9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLWA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHLF9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHLE9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHLIB 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHLAB 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLHA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHL5A 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHL49 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLPA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1G2CKCSHLW9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHL8B 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1F2CKCSHLM9 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1H2CKCSHLXA 数据!\n",
|
|
"单条删除 FINST-DR766X81A0VABPH46KHCJ7E79BRZ1I2CKCSHL0B 数据!\n",
|
|
"1\n",
|
|
"0\n",
|
|
"10\n",
|
|
"0\n",
|
|
"0\n",
|
|
"10\n",
|
|
"0\n",
|
|
"0\n",
|
|
"10\n",
|
|
"10\n",
|
|
"8\n",
|
|
"0\n",
|
|
"0\n",
|
|
"8\n",
|
|
"8\n",
|
|
"0\n",
|
|
"0\n",
|
|
"8\n",
|
|
"0\n",
|
|
"新建第 99 条数据!\n",
|
|
"新建第 199 条数据!\n",
|
|
"新建第 299 条数据!\n",
|
|
"新建第 399 条数据!\n",
|
|
"新建第 499 条数据!\n",
|
|
"新建第 599 条数据!\n",
|
|
"新建第 699 条数据!\n",
|
|
"新建第 799 条数据!\n",
|
|
"新建第 899 条数据!\n",
|
|
"新建第 999 条数据!\n",
|
|
"新建第 1099 条数据!\n",
|
|
"新建第 1199 条数据!\n",
|
|
"新建第 1299 条数据!\n",
|
|
"新建第 1399 条数据!\n",
|
|
"新建第 1499 条数据!\n",
|
|
"新建第 1599 条数据!\n",
|
|
"新建第 1699 条数据!\n",
|
|
"新建第 1799 条数据!\n",
|
|
"新建第 1899 条数据!\n",
|
|
"新建第 1999 条数据!\n",
|
|
"新建第 2099 条数据!\n",
|
|
"新建第 2199 条数据!\n",
|
|
"新建第 2299 条数据!\n",
|
|
"新建第 2399 条数据!\n",
|
|
"新建第 2499 条数据!\n",
|
|
"新建第 2599 条数据!\n",
|
|
"新建第 2699 条数据!\n",
|
|
"新建第 2799 条数据!\n",
|
|
"新建第 2899 条数据!\n",
|
|
"新建第 2999 条数据!\n",
|
|
"新建第 3099 条数据!\n",
|
|
"新建第 3199 条数据!\n",
|
|
"新建第 3299 条数据!\n",
|
|
"新建第 3399 条数据!\n",
|
|
"新建第 3499 条数据!\n",
|
|
"新建第 3599 条数据!\n",
|
|
"新建第 3699 条数据!\n",
|
|
"新建第 3799 条数据!\n",
|
|
"新建第 3899 条数据!\n",
|
|
"新建第 3999 条数据!\n",
|
|
"新建第 4099 条数据!\n",
|
|
"新建第 4199 条数据!\n",
|
|
"新建第 4299 条数据!\n",
|
|
"新建第 4399 条数据!\n",
|
|
"新建第 4499 条数据!\n",
|
|
"新建第 4599 条数据!\n",
|
|
"新建第 4699 条数据!\n",
|
|
"新建第 4799 条数据!\n",
|
|
"新建第 4899 条数据!\n",
|
|
"新建第 4999 条数据!\n",
|
|
"新建第 5099 条数据!\n",
|
|
"新建第 5199 条数据!\n",
|
|
"新建第 5299 条数据!\n",
|
|
"新建第 5399 条数据!\n",
|
|
"新建第 5499 条数据!\n",
|
|
"新建第 5599 条数据!\n",
|
|
"新建第 5699 条数据!\n",
|
|
"新建第 5799 条数据!\n",
|
|
"新建第 5899 条数据!\n",
|
|
"新建第 5999 条数据!\n",
|
|
"新建第 6099 条数据!\n",
|
|
"新建第 6199 条数据!\n",
|
|
"新建第 6299 条数据!\n",
|
|
"新建第 6399 条数据!\n",
|
|
"新建第 6499 条数据!\n",
|
|
"新建第 6599 条数据!\n",
|
|
"新建第 6699 条数据!\n",
|
|
"新建第 6799 条数据!\n",
|
|
"新建第 6899 条数据!\n",
|
|
"新建第 6999 条数据!\n",
|
|
"新建第 7099 条数据!\n",
|
|
"新建第 7199 条数据!\n",
|
|
"新建第 7299 条数据!\n",
|
|
"新建第 7399 条数据!\n",
|
|
"新建第 7499 条数据!\n",
|
|
"新建第 7599 条数据!\n",
|
|
"新建第 7699 条数据!\n",
|
|
"新建第 7799 条数据!\n",
|
|
"新建第 7899 条数据!\n",
|
|
"新建第 7999 条数据!\n",
|
|
"新建第 8099 条数据!\n",
|
|
"新建第 8199 条数据!\n",
|
|
"新建第 8299 条数据!\n",
|
|
"新建第 8399 条数据!\n",
|
|
"新建第 8499 条数据!\n",
|
|
"新建第 8599 条数据!\n",
|
|
"新建第 8699 条数据!\n",
|
|
"新建第 8799 条数据!\n",
|
|
"新建第 8899 条数据!\n",
|
|
"新建第 8999 条数据!\n",
|
|
"新建第 9099 条数据!\n",
|
|
"新建第 9199 条数据!\n",
|
|
"新建第 9299 条数据!\n",
|
|
"新建第 9399 条数据!\n",
|
|
"新建第 9499 条数据!\n",
|
|
"新建第 9599 条数据!\n",
|
|
"新建第 9699 条数据!\n",
|
|
"新建第 9799 条数据!\n",
|
|
"新建第 9899 条数据!\n",
|
|
"新建第 9999 条数据!\n",
|
|
"新建第 10099 条数据!\n",
|
|
"新建第 10199 条数据!\n",
|
|
"新建第 10299 条数据!\n",
|
|
"新建第 10399 条数据!\n",
|
|
"新建第 10499 条数据!\n",
|
|
"新建第 10599 条数据!\n",
|
|
"新建第 10699 条数据!\n",
|
|
"新建第 10799 条数据!\n",
|
|
"新建第 10899 条数据!\n",
|
|
"新建第 10999 条数据!\n",
|
|
"新建第 11099 条数据!\n",
|
|
"新建第 11199 条数据!\n",
|
|
"新建第 11299 条数据!\n",
|
|
"新建第 11399 条数据!\n",
|
|
"新建第 11499 条数据!\n",
|
|
"新建第 11599 条数据!\n",
|
|
"新建第 11699 条数据!\n",
|
|
"新建第 11799 条数据!\n",
|
|
"新建第 11899 条数据!\n",
|
|
"新建第 11999 条数据!\n",
|
|
"新建第 12099 条数据!\n",
|
|
"新建第 12199 条数据!\n",
|
|
"新建第 12299 条数据!\n",
|
|
"新建第 12399 条数据!\n",
|
|
"新建第 12499 条数据!\n",
|
|
"新建第 12599 条数据!\n",
|
|
"新建第 12699 条数据!\n",
|
|
"新建第 12799 条数据!\n",
|
|
"新建第 12899 条数据!\n",
|
|
"新建第 12999 条数据!\n",
|
|
"新建第 13099 条数据!\n",
|
|
"新建第 13199 条数据!\n",
|
|
"新建第 13299 条数据!\n",
|
|
"新建第 13399 条数据!\n",
|
|
"新建第 13499 条数据!\n",
|
|
"新建第 13599 条数据!\n",
|
|
"新建第 13699 条数据!\n",
|
|
"新建第 13799 条数据!\n",
|
|
"新建第 13899 条数据!\n",
|
|
"新建第 13999 条数据!\n",
|
|
"新建第 14099 条数据!\n",
|
|
"新建第 14199 条数据!\n",
|
|
"新建第 14299 条数据!\n",
|
|
"新建第 14399 条数据!\n",
|
|
"新建第 14499 条数据!\n",
|
|
"新建第 14599 条数据!\n",
|
|
"新建第 14699 条数据!\n",
|
|
"新建第 14799 条数据!\n",
|
|
"新建第 14899 条数据!\n",
|
|
"新建第 14999 条数据!\n",
|
|
"新建第 15099 条数据!\n",
|
|
"新建第 15199 条数据!\n",
|
|
"新建第 15299 条数据!\n",
|
|
"新建第 15399 条数据!\n",
|
|
"新建第 15499 条数据!\n",
|
|
"新建第 15599 条数据!\n",
|
|
"新建第 15699 条数据!\n",
|
|
"新建第 15799 条数据!\n",
|
|
"新建第 15899 条数据!\n",
|
|
"新建第 15999 条数据!\n",
|
|
"新建第 16099 条数据!\n",
|
|
"新建第 16199 条数据!\n",
|
|
"新建第 16299 条数据!\n",
|
|
"新建第 16399 条数据!\n",
|
|
"新建第 16499 条数据!\n",
|
|
"新建第 16599 条数据!\n",
|
|
"新建第 16699 条数据!\n",
|
|
"新建第 16799 条数据!\n",
|
|
"新建第 16899 条数据!\n",
|
|
"新建第 16999 条数据!\n",
|
|
"新建第 17099 条数据!\n",
|
|
"新建第 17199 条数据!\n",
|
|
"新建第 17299 条数据!\n",
|
|
"新建第 17399 条数据!\n",
|
|
"新建第 17499 条数据!\n",
|
|
"新建第 17599 条数据!\n",
|
|
"新建第 17699 条数据!\n",
|
|
"新建第 17799 条数据!\n",
|
|
"新建第 17899 条数据!\n",
|
|
"新建第 17999 条数据!\n",
|
|
"新建第 18099 条数据!\n",
|
|
"新建第 18199 条数据!\n",
|
|
"新建第 18299 条数据!\n",
|
|
"新建第 18399 条数据!\n",
|
|
"新建第 18499 条数据!\n",
|
|
"新建第 18599 条数据!\n",
|
|
"新建第 18699 条数据!\n",
|
|
"新建第 18799 条数据!\n",
|
|
"新建第 18899 条数据!\n",
|
|
"新建第 18999 条数据!\n",
|
|
"新建第 19099 条数据!\n",
|
|
"新建第 19199 条数据!\n",
|
|
"新建第 19299 条数据!\n",
|
|
"新建第 19399 条数据!\n",
|
|
"新建第 19499 条数据!\n",
|
|
"新建第 19599 条数据!\n",
|
|
"新建第 19699 条数据!\n",
|
|
"新建第 19799 条数据!\n",
|
|
"新建第 19899 条数据!\n",
|
|
"新建第 19999 条数据!\n",
|
|
"新建第 20099 条数据!\n",
|
|
"新建第 20199 条数据!\n",
|
|
"新建第 20299 条数据!\n",
|
|
"新建第 20399 条数据!\n",
|
|
"新建第 20499 条数据!\n",
|
|
"新建第 20599 条数据!\n",
|
|
"新建第 20699 条数据!\n",
|
|
"新建第 20799 条数据!\n",
|
|
"新建第 20899 条数据!\n",
|
|
"新建第 20999 条数据!\n",
|
|
"新建第 21099 条数据!\n",
|
|
"新建第 21199 条数据!\n",
|
|
"新建第 21299 条数据!\n",
|
|
"新建第 21399 条数据!\n",
|
|
"新建第 21499 条数据!\n",
|
|
"新建第 21599 条数据!\n",
|
|
"新建第 21699 条数据!\n",
|
|
"新建第 21799 条数据!\n",
|
|
"新建第 21899 条数据!\n",
|
|
"新建第 21999 条数据!\n",
|
|
"新建第 22099 条数据!\n",
|
|
"新建第 22199 条数据!\n",
|
|
"新建第 22299 条数据!\n",
|
|
"新建第 22399 条数据!\n",
|
|
"新建第 22499 条数据!\n",
|
|
"新建第 22599 条数据!\n",
|
|
"新建第 22699 条数据!\n",
|
|
"新建第 22799 条数据!\n",
|
|
"新建第 22899 条数据!\n",
|
|
"新建第 22999 条数据!\n",
|
|
"新建第 23099 条数据!\n",
|
|
"新建第 23199 条数据!\n",
|
|
"新建第 23299 条数据!\n",
|
|
"新建第 23399 条数据!\n",
|
|
"新建第 23499 条数据!\n",
|
|
"新建第 23599 条数据!\n",
|
|
"新建第 23699 条数据!\n",
|
|
"新建第 23799 条数据!\n",
|
|
"新建第 23899 条数据!\n",
|
|
"新建第 23999 条数据!\n",
|
|
"新建第 24099 条数据!\n",
|
|
"新建第 24199 条数据!\n",
|
|
"新建第 24299 条数据!\n",
|
|
"新建第 24399 条数据!\n",
|
|
"新建第 24499 条数据!\n",
|
|
"新建第 24599 条数据!\n",
|
|
"新建第 24699 条数据!\n",
|
|
"新建第 24799 条数据!\n",
|
|
"新建第 24899 条数据!\n",
|
|
"新建第 24999 条数据!\n",
|
|
"新建第 25099 条数据!\n",
|
|
"新建第 25199 条数据!\n",
|
|
"新建第 25299 条数据!\n",
|
|
"新建第 25399 条数据!\n",
|
|
"新建第 25499 条数据!\n",
|
|
"新建第 25599 条数据!\n",
|
|
"新建第 25699 条数据!\n",
|
|
"新建第 25799 条数据!\n",
|
|
"新建第 25899 条数据!\n",
|
|
"新建第 25999 条数据!\n",
|
|
"新建第 26099 条数据!\n",
|
|
"新建第 26199 条数据!\n",
|
|
"新建第 26299 条数据!\n",
|
|
"新建第 26399 条数据!\n",
|
|
"新建第 26499 条数据!\n",
|
|
"新建第 26599 条数据!\n",
|
|
"新建第 26699 条数据!\n",
|
|
"新建第 26799 条数据!\n",
|
|
"新建第 26899 条数据!\n",
|
|
"新建第 26999 条数据!\n",
|
|
"新建第 27099 条数据!\n",
|
|
"新建第 27199 条数据!\n",
|
|
"新建第 27299 条数据!\n",
|
|
"新建第 27399 条数据!\n",
|
|
"新建第 27499 条数据!\n",
|
|
"新建第 27599 条数据!\n",
|
|
"新建第 27699 条数据!\n",
|
|
"新建第 27799 条数据!\n",
|
|
"新建第 27899 条数据!\n",
|
|
"新建第 27999 条数据!\n",
|
|
"新建第 28099 条数据!\n",
|
|
"新建第 28199 条数据!\n",
|
|
"新建第 28299 条数据!\n",
|
|
"新建第 28399 条数据!\n",
|
|
"新建第 28499 条数据!\n",
|
|
"新建第 28599 条数据!\n",
|
|
"新建第 28699 条数据!\n",
|
|
"新建第 28799 条数据!\n",
|
|
"新建第 28899 条数据!\n",
|
|
"新建第 28999 条数据!\n",
|
|
"新建第 29099 条数据!\n",
|
|
"新建第 29199 条数据!\n",
|
|
"新建第 29299 条数据!\n",
|
|
"新建第 29399 条数据!\n",
|
|
"新建第 29499 条数据!\n",
|
|
"新建第 29599 条数据!\n",
|
|
"新建第 29699 条数据!\n",
|
|
"新建第 29799 条数据!\n",
|
|
"新建第 29899 条数据!\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# -*- coding: utf-8 -*-\n",
|
|
"import psycopg2\n",
|
|
"import pandas as pd\n",
|
|
"# 获得连接\n",
|
|
"conn = psycopg2.connect(database=\"f6_bi\", user=\"BASIC$ro_caowei\", password=\"!ro_caowei123\", host=\"hgprecn-cn-nif1vnv0y002-cn-shanghai.hologres.aliyuncs.com\", port=\"80\")\n",
|
|
"# 获得游标对象,一个游标对象可以对数据库进行执行操作\n",
|
|
"cursor = conn.cursor()\n",
|
|
"\n",
|
|
"import datetime\n",
|
|
"now_time = datetime.datetime.now()\n",
|
|
"yes_time = now_time + datetime.timedelta(days=-1)\n",
|
|
"yes_time_nyr = int(yes_time.strftime('%Y%m%d'))# 获取前一天日期\n",
|
|
"# sql语句 建表\n",
|
|
"sql =f\"\"\"SELECT * FROM \"public\".\"holo_ads_report_saas_profile_ngv_detail_d\" WHERE \"date_id\" = '{yes_time_nyr}';\"\"\"\n",
|
|
"# 执行语句\n",
|
|
"cursor.execute(sql)\n",
|
|
"# 获取结果集的每一行\n",
|
|
"rows = cursor.fetchall()\n",
|
|
"# 获取所有字段名\n",
|
|
"all_fields = cursor.description\n",
|
|
"#执行结果转化为dataframe\n",
|
|
"col = []\n",
|
|
"for i in all_fields:\n",
|
|
" col.append(i[0])\n",
|
|
"data_NGV = pd.DataFrame(list(rows),columns=col)\n",
|
|
"# data_NGV.to_excel(r'C:\\Users\\admin\\Desktop\\NGV明细.xlsx')\n",
|
|
"# 关闭数据库连接\n",
|
|
"cursor.close()\n",
|
|
"conn.close()\n",
|
|
"\n",
|
|
"# 基础函数配置\n",
|
|
"import pandas as pd\n",
|
|
"import pandas as pd\n",
|
|
"import requests\n",
|
|
"from pathlib import Path\n",
|
|
"from urllib.parse import quote\n",
|
|
"import json\n",
|
|
"import numpy as np\n",
|
|
"import time\n",
|
|
"\n",
|
|
"ROOT = Path('.').absolute() # 当前工作目录\n",
|
|
"\n",
|
|
"def generateToken() -> str:\n",
|
|
" \"\"\" 生成 token \"\"\"\n",
|
|
"\n",
|
|
" token_api = 'https://api.dingtalk.com/v1.0/oauth2/accessToken'\n",
|
|
"\n",
|
|
" # 该信息在钉钉开放应用中\n",
|
|
" data = {\n",
|
|
" \"appKey\": \"ding5kqocon5s9oph5uq\",\n",
|
|
" \"appSecret\": 'HL1jgsIIfLAC0eTH0A1m4mwxUDqbgsiPeCCGGE3ocM6qJBTIW7Ivt9drxF_Z4Kb_'\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(token_api, json=data)\n",
|
|
" token = res.json()['accessToken']\n",
|
|
"\n",
|
|
" return token\n",
|
|
"\n",
|
|
"def read_instances(token, formUuid, page, n):\n",
|
|
" \"\"\" 函数功能:读取普通表单的所有数据 \"\"\"\n",
|
|
"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/search'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": token\n",
|
|
" }\n",
|
|
"\n",
|
|
" formData = {\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"language\" : \"zh_CN\",\n",
|
|
" \"formUuid\" : formUuid,\n",
|
|
" \"currentPage\" : page,\n",
|
|
" \"pageSize\" : n\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=formData)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def read_delete(token, formInstanceId):\n",
|
|
" \"\"\" 函数功能:调用本接口删除表单数据。 \"\"\"\n",
|
|
"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": token\n",
|
|
" }\n",
|
|
"\n",
|
|
" formData = {\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"language\" : \"zh_CN\",\n",
|
|
" \"formInstanceId\" : formInstanceId\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.delete(api, headers=headers, json=formData)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def read_new(FORMID,formData):\n",
|
|
" \"\"\" 通过实例id 获取表单内容 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com/v1.0/yida/forms/instances'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
" payload = {\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"language\" : \"zh_CN\",\n",
|
|
" \"userId\" : \"yida_pub_account\"\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=payload)\n",
|
|
" print(res.json())\n",
|
|
"\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"\n",
|
|
"def component(FORMID,TOKEN):\n",
|
|
" \"\"\" 获取组件信息 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/formFields'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
" payload = {\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" # \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" # \"language\" : \"zh_CN\",\n",
|
|
" \"userId\" : \"yida_pub_account\"\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.get(api, headers=headers, json=payload)\n",
|
|
"\n",
|
|
" return res.json()\n",
|
|
"def Batch_creation(FORMID,TOKEN,ALL_formData):\n",
|
|
" \"\"\" 获取组件信息 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/batchSave'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
" payload = {\n",
|
|
" # \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
|
" \"noExecuteExpression\" : \"true\",\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"asynchronousExecution\" : \"true\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"keepRunningAfterException\" : \"true\",\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"formDataJsonList\" : json.dumps(ALL_formData, cls=NpEncoder),\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=payload)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def delete_in_batches(FORMID,TOKEN,ALL_DATA_instance):\n",
|
|
" \"\"\" 批量删除表单实例 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/batchRemove'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
"\n",
|
|
" payload = {\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"asynchronousExecution\" : \"true\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"formInstanceIdList\" : json.dumps(ALL_DATA_instance, cls=NpEncoder),\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"executeExpression\" : \"false\" # 不触发\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=payload)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def delete_in(TOKEN,formInstanceIdList):\n",
|
|
" \"\"\" 逐条删除表单实例 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances?appType=APP_UYZ0KG6L0CCNV80GZ66O&systemToken=XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2&userId=yida_pub_account&language=zh_CN&formInstanceId={formInstanceIdList}'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
" res = requests.delete(api, headers=headers)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"class NpEncoder(json.JSONEncoder):\n",
|
|
" def default(self, obj):\n",
|
|
" if isinstance(obj, np.integer):\n",
|
|
" return int(obj)\n",
|
|
" elif isinstance(obj, np.floating):\n",
|
|
" return float(obj)\n",
|
|
" elif isinstance(obj, np.ndarray):\n",
|
|
" return obj.tolist()\n",
|
|
" else:\n",
|
|
" return super(NpEncoder, self).default(obj)\n",
|
|
"TOKEN = generateToken() \n",
|
|
"'''读取员工对应关系:宜搭员工-ID对应表 '''\n",
|
|
"# FORMID = \"FORM-EA866E715PF9YA7ECCAGSABX91Q72PVA3WRFL6\" # 宜搭员工-ID对应表 FORM-EA866E715PF9YA7ECCAGSABX91Q72PVA3WRFL6\n",
|
|
"# # 读取流程表单数据\n",
|
|
"# form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
"# PAGES = form_data.get('totalCount')//10 + 1\n",
|
|
"# ALL_DATA_staff = []\n",
|
|
"# \"\"\" 获取全量数据 \"\"\"\n",
|
|
"# for i in range(1, PAGES+1):\n",
|
|
"# # form_data = read_processes_instances(token=TOKEN, formUuid=FORMID, createFromTimeGMT=CREATE_FROM, createToTimeGMT=CREATE_TO, page=i, n=100, searchField={'textField_l7if5ff9': '否'})\n",
|
|
"# form_data = read_instances(token=TOKEN, formUuid=FORMID, page=i, n=100)\n",
|
|
"# for data in form_data.get('data'):\n",
|
|
"# ALL_DATA_staff.append(data)\n",
|
|
"# print(f'读取到流程表单中 {len(ALL_DATA_staff)} 条数据!')\n",
|
|
"\n",
|
|
"'''获取表内控件信息 '''\n",
|
|
"# FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\"\n",
|
|
"# component_list = component(FORMID,TOKEN)\n",
|
|
"# for i in range(len(component_list['result'])):\n",
|
|
"# componentName = component_list['result'][i]['componentName']\n",
|
|
"# name_value = component_list['result'][i]['label']['value']\n",
|
|
"# fieldId = component_list['result'][i]['fieldId']\n",
|
|
"# print(\"'\",fieldId,\"':\",\"data_NGV[\",name_value,\"][i],\")\n",
|
|
"\n",
|
|
"\n",
|
|
"'''批量删除NGV数据'''\n",
|
|
"for i in range(0,10):\n",
|
|
" default = True\n",
|
|
" while default:\n",
|
|
" FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\" \n",
|
|
" form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
" PAGES = form_data.get('totalCount')//100 +1 \n",
|
|
" print(form_data.get('totalCount'))\n",
|
|
" if form_data.get('totalCount')<=0:\n",
|
|
" default = False\n",
|
|
" for i in range(PAGES, 1,-1):\n",
|
|
" ALL_DATA_instance = []\n",
|
|
" form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
" for data in form_data.get('data'):\n",
|
|
" ALL_DATA_instance.append(data['formInstanceId'])\n",
|
|
" print(f'读取到表单中 {len(ALL_DATA_instance)} 条数据!')\n",
|
|
" red_delete = delete_in_batches(FORMID,TOKEN,ALL_DATA_instance)\n",
|
|
" form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
" for data in form_data.get('data'):\n",
|
|
" formInstanceId = data['formInstanceId']\n",
|
|
" delete_in(TOKEN,formInstanceId)\n",
|
|
" print(f'单条删除 {formInstanceId} 数据!')\n",
|
|
"\n",
|
|
"'''遍历数据进行新建'''\n",
|
|
"data_NGV = data_NGV.astype('string')\n",
|
|
"data_NGV = data_NGV.fillna('',inplace=False)\n",
|
|
"for a in range(0,len(data_NGV[\"date_fmt\"]),100):\n",
|
|
" ALL_formData = []\n",
|
|
" for i in range(a,a+100): # for i in range(len(data_NGV[\"date_fmt\"])):\n",
|
|
" try:\n",
|
|
" formData = {\n",
|
|
" 'textField_nnyw1ge': data_NGV[\"date_id\"][i],\n",
|
|
" 'dateField_e9jt02o': int(time.mktime(time.strptime(data_NGV[\"date_fmt\"][i], \"%Y-%m-%d\"))*1000) if data_NGV[\"date_fmt\"][i] !='' else '',\n",
|
|
" 'textField_ek9jnne': data_NGV[\"id_own_group\"][i],\n",
|
|
" 'textField_35i6110': data_NGV[\"group_name\"][i],\n",
|
|
" 'textField_l8nc9f2': data_NGV[\"id_own_org\"][i],\n",
|
|
" 'textField_tdn6hsy': data_NGV[\"org_name\"][i],\n",
|
|
" 'textField_zc1iowp': data_NGV[\"org_code\"][i],\n",
|
|
" 'textField_2rulk5e': data_NGV[\"group_grade\"][i],\n",
|
|
" 'textField_c54tztg': data_NGV[\"org_type\"][i],\n",
|
|
" 'textField_qrtnel7': data_NGV[\"org_status\"][i],\n",
|
|
" 'textField_7xgxe9g': data_NGV[\"saas_version\"][i],\n",
|
|
" 'textField_pnig1i1': data_NGV[\"is_wechat\"][i],\n",
|
|
" 'textField_qiovtdj': data_NGV[\"is_mini_app\"][i],\n",
|
|
" 'textField_i0h0iqa': data_NGV[\"is_wx_shop\"][i],\n",
|
|
" 'textField_qczj9vq': data_NGV[\"is_camera_service\"][i],\n",
|
|
" 'textField_jouovty': data_NGV[\"is_maintenance_service\"][i],\n",
|
|
" 'dateField_o1v1emn': int(time.mktime(time.strptime(data_NGV[\"saas_create_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"saas_create_time\"][i] !='' else '',\n",
|
|
" 'dateField_6zdcfnf': int(time.mktime(time.strptime(data_NGV[\"expiry_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"expiry_time\"][i] !='' else '',\n",
|
|
" 'textField_8uae70x': data_NGV[\"saas_use_days\"][i],\n",
|
|
" 'textField_cjkvqpn': data_NGV[\"saas_use_year\"][i],\n",
|
|
" 'textField_yhtmsxx': data_NGV[\"is_main_org\"][i],\n",
|
|
" 'textField_gfigtpn': data_NGV[\"license_code\"][i],\n",
|
|
" 'textField_662foev': data_NGV[\"license_name\"][i],\n",
|
|
" 'textField_lco27te': data_NGV[\"org_crm_id\"][i],\n",
|
|
" 'textField_1tygbmq': data_NGV[\"province_id\"][i],\n",
|
|
" 'textField_1q6dt9a': data_NGV[\"province_name\"][i],\n",
|
|
" 'textField_z2rntja': data_NGV[\"city_id\"][i],\n",
|
|
" 'textField_ohybc2g': data_NGV[\"city_name\"][i],\n",
|
|
" 'textField_9oupoal': data_NGV[\"area_id\"][i],\n",
|
|
" 'textField_m0rzgwb': data_NGV[\"area_name\"][i],\n",
|
|
" 'textField_69po7o9': data_NGV[\"region_name\"][i],\n",
|
|
" 'textField_vqxr0d9': data_NGV[\"region_short_name\"][i],\n",
|
|
" 'textField_5wr3tj9': data_NGV[\"branch_name\"][i],\n",
|
|
" 'textField_6hz7i81': data_NGV[\"carzone_store_id\"][i],\n",
|
|
" 'textField_86wu9qm': data_NGV[\"carzone_store_name\"][i],\n",
|
|
" 'textField_129quhy': data_NGV[\"customer_carzone_id\"][i],\n",
|
|
" 'textField_j7i4mhn': data_NGV[\"salesmen\"][i],\n",
|
|
" 'textField_qms107e': data_NGV[\"area_manager\"][i],\n",
|
|
" 'textField_qc3blb5': data_NGV[\"service_salesmen\"][i],\n",
|
|
" 'textField_vk0hf2u': data_NGV[\"impl_principal\"][i],\n",
|
|
" 'textField_3lfom9a': data_NGV[\"service_impl_principal\"][i],\n",
|
|
" 'textField_1ud1o2l': data_NGV[\"active_user_count\"][i],\n",
|
|
" 'textField_kpdh7qc': data_NGV[\"active_user_type\"][i],\n",
|
|
" 'textField_n2y4bmf': data_NGV[\"limit_user_count\"][i],\n",
|
|
" 'textField_k5o5u2d': data_NGV[\"limit_user_type\"][i],\n",
|
|
" 'textField_729y7jp': data_NGV[\"is_n\"][i],\n",
|
|
" 'textField_six7heq': data_NGV[\"is_g\"][i],\n",
|
|
" 'textField_tipmhx4': data_NGV[\"is_v\"][i],\n",
|
|
" 'textField_qclt1dm': data_NGV[\"is_visited\"][i],\n",
|
|
" 'textField_0sk94f9': data_NGV[\"is_active\"][i],\n",
|
|
" 'textField_bzszf71': data_NGV[\"active_status_fmt\"][i],\n",
|
|
" 'textField_c061ojt': data_NGV[\"bill_count_last_30_day\"][i],\n",
|
|
" 'textField_07zkoii': data_NGV[\"bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_3vnzvsx': data_NGV[\"bill_day_count_this_month\"][i],\n",
|
|
" 'textField_3mxwdc4': data_NGV[\"bill_count_last_7_day\"][i],\n",
|
|
" 'textField_4q3bh5w': data_NGV[\"bill_day_count_last_7_day\"][i],\n",
|
|
" 'textField_u0rgodd': data_NGV[\"pv_count\"][i],\n",
|
|
" 'textField_eau5xx6': data_NGV[\"uv_count\"][i],\n",
|
|
" 'textField_tayz1vv': data_NGV[\"bill_count_1d\"][i],\n",
|
|
" 'textField_k4b1a7x': data_NGV[\"bill_count_2d\"][i],\n",
|
|
" 'textField_7lfqnm3': data_NGV[\"bill_count_3d\"][i],\n",
|
|
" 'textField_g24x9fv': data_NGV[\"bill_count_4d\"][i],\n",
|
|
" 'textField_0v3pm0r': data_NGV[\"bill_count_5d\"][i],\n",
|
|
" 'textField_1nxvats': data_NGV[\"bill_count_6d\"][i],\n",
|
|
" 'textField_vylq7uh': data_NGV[\"bill_count_7d\"][i],\n",
|
|
" 'textField_0n1zd7o': data_NGV[\"bill_count_8d\"][i],\n",
|
|
" 'textField_uuatjx7': data_NGV[\"bill_count_9d\"][i],\n",
|
|
" 'textField_e16m62c': data_NGV[\"bill_count_10d\"][i],\n",
|
|
" 'textField_anv4rco': data_NGV[\"bill_count_11d\"][i],\n",
|
|
" 'textField_pz5cg65': data_NGV[\"bill_count_12d\"][i],\n",
|
|
" 'textField_hamkvor': data_NGV[\"bill_count_13d\"][i],\n",
|
|
" 'textField_kw9nvef': data_NGV[\"bill_count_14d\"][i],\n",
|
|
" 'textField_ujbyern': data_NGV[\"bill_count_15d\"][i],\n",
|
|
" 'textField_uqp3072': data_NGV[\"bill_count_16d\"][i],\n",
|
|
" 'textField_2qsei19': data_NGV[\"bill_count_17d\"][i],\n",
|
|
" 'textField_p5x4u8t': data_NGV[\"bill_count_18d\"][i],\n",
|
|
" 'textField_2lv8ksl': data_NGV[\"bill_count_19d\"][i],\n",
|
|
" 'textField_unl61g8': data_NGV[\"bill_count_20d\"][i],\n",
|
|
" 'textField_cvtamin': data_NGV[\"bill_count_21d\"][i],\n",
|
|
" 'textField_z0hs1c4': data_NGV[\"bill_count_22d\"][i],\n",
|
|
" 'textField_9jln7lp': data_NGV[\"bill_count_23d\"][i],\n",
|
|
" 'textField_jlst4j8': data_NGV[\"bill_count_24d\"][i],\n",
|
|
" 'textField_ct6z2pu': data_NGV[\"bill_count_25d\"][i],\n",
|
|
" 'textField_6s2qy9p': data_NGV[\"bill_count_26d\"][i],\n",
|
|
" 'textField_l9lyxnr': data_NGV[\"bill_count_27d\"][i],\n",
|
|
" 'textField_sz5xht3': data_NGV[\"bill_count_28d\"][i],\n",
|
|
" 'textField_ccodrkd': data_NGV[\"bill_count_29d\"][i],\n",
|
|
" 'textField_dy7c14l': data_NGV[\"bill_count_30d\"][i],\n",
|
|
" 'textField_delij7o': data_NGV[\"bill_count_31d\"][i],\n",
|
|
" 'dateField_4vp44kc': int(time.mktime(time.strptime(data_NGV[\"etl_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"etl_time\"][i] !='' else '',\n",
|
|
" 'textField_0d97bpy': data_NGV[\"maintain_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_3nbi33y': data_NGV[\"washing_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_17yhr79': data_NGV[\"maintain_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_e1mrwvb': data_NGV[\"washing_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_8s47o64': data_NGV[\"retail_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_jr9otam': data_NGV[\"retail_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_mtg1zn1': data_NGV[\"purchase_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_96ggfjo': data_NGV[\"purchase_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_hk7pe9z': data_NGV[\"card_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_yj3vbwq': data_NGV[\"card_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_n2hdr45': data_NGV[\"gd_sales_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_p7xgdah': data_NGV[\"gd_sales_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_7xr2ar8': data_NGV[\"g_change_flag\"][i],\n",
|
|
" 'textField_gpzxxmk': data_NGV[\"saas_package\"][i],\n",
|
|
" 'textField_tq9g8in': data_NGV[\"manage_model\"][i],\n",
|
|
" 'textField_zzchgop': data_NGV[\"contacts\"][i],\n",
|
|
" 'textField_a2znmfb': data_NGV[\"contact_number\"][i],\n",
|
|
" 'textField_0sadows': data_NGV[\"contact_mobile\"][i],\n",
|
|
" 'textField_hz3ujlo': data_NGV[\"g_month_count\"][i],\n",
|
|
" 'textField_m1gdeaa': data_NGV[\"g_month_percentage\"][i],\n",
|
|
" 'textField_y7ds4oo': data_NGV[\"is_install_service\"][i],\n",
|
|
" 'dateField_hiuaj0y': int(time.mktime(time.strptime(data_NGV[\"install_create_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"install_create_time\"][i] !='' else '',\n",
|
|
" 'dateField_yubgpmy': int(time.mktime(time.strptime(data_NGV[\"last_end_date\"][i], \"%Y-%m-%d\"))*1000) if data_NGV[\"last_end_date\"][i] !='' else '',\n",
|
|
" 'dateField_8st5q1a': int(time.mktime(time.strptime(data_NGV[\"renew_date\"][i], \"%Y-%m-%d\"))*1000) if data_NGV[\"renew_date\"][i] !=''else '',\n",
|
|
" 'textField_u8h91r2': data_NGV[\"is_chain_owner\"][i],\n",
|
|
" 'textField_qzzz8ux': data_NGV[\"group_org_count\"][i],\n",
|
|
" 'textField_qzjf8mc': data_NGV[\"recent_bill_warning_days\"][i],\n",
|
|
" 'textField_lvyu7z2': data_NGV[\"g_change_flag_d\"][i],\n",
|
|
" 'textField_d72wy3d': data_NGV[\"g_lost_warning_days\"][i],\n",
|
|
" 'textField_11ebiwp': data_NGV[\"saas_edition_fmt\"][i],\n",
|
|
" 'textField_4yu5vlq': data_NGV[\"g_flag_1m\"][i],\n",
|
|
" 'textField_8ydk27g': data_NGV[\"g_flag_2m\"][i],\n",
|
|
" 'textField_ysoij3v': data_NGV[\"g_flag_3m\"][i],\n",
|
|
" 'textField_a4t6iwp': data_NGV[\"g_flag_4m\"][i],\n",
|
|
" 'textField_z1xfteb': data_NGV[\"g_flag_5m\"][i],\n",
|
|
" 'textField_56x8u44': data_NGV[\"g_flag_6m\"][i],\n",
|
|
" 'textField_zscafbj': data_NGV[\"g_flag_day_count\"][i],\n",
|
|
" 'textField_4c0rpdd': data_NGV[\"add_org_flag\"][i],\n",
|
|
" 'textField_14we48g': data_NGV[\"pt\"][i],\n",
|
|
" 'textField_gukslqe': data_NGV[\"org_size\"][i],\n",
|
|
" 'textField_y0tw39j': data_NGV[\"qualification_type_fmt\"][i],\n",
|
|
" 'textField_3euralk': data_NGV[\"business_scope_fmt\"][i],\n",
|
|
" 'textField_4jji26g': data_NGV[\"store_type_fmt\"][i],\n",
|
|
" 'textField_z2mrvyk': data_NGV[\"area\"][i],\n",
|
|
" 'textField_e7qmeix': data_NGV[\"station_number\"][i],\n",
|
|
" 'textField_x9q5k8p': data_NGV[\"header_type_fmt\"][i],\n",
|
|
" 'textField_h423ob8': data_NGV[\"org_stage\"][i],\n",
|
|
" 'textField_w6dk6au': data_NGV[\"g_count_this_month\"][i],\n",
|
|
" 'textField_67sllhy': data_NGV[\"saas_customer_type\"][i]\n",
|
|
" }\n",
|
|
" ALL_formData.append(json.dumps(formData, cls=NpEncoder)) \n",
|
|
" except:\n",
|
|
" pass\n",
|
|
" FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\" \n",
|
|
" res_new = Batch_creation(FORMID,TOKEN,ALL_formData)\n",
|
|
" print(\"新建第\",i,\"条数据!\")\n",
|
|
"\n",
|
|
"'''校验是否新建正常'''\n",
|
|
"time.sleep(120)\n",
|
|
"FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\" \n",
|
|
"form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
"if int(form_data.get('totalCount')) ==len(data_NGV):\n",
|
|
" print(\"数据新建成功!\")\n",
|
|
"else:\n",
|
|
" \n",
|
|
" def start_instance_process(token: str, name):\n",
|
|
"\n",
|
|
" \"\"\"发送宜搭表单 -- 发起流程表单\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" token \n",
|
|
" data:需要发送的数据字典\n",
|
|
" \"\"\"\n",
|
|
"\n",
|
|
" yida_api = \"https://api.dingtalk.com/v1.0/yida/processes/instances/start\"\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": token\n",
|
|
" }\n",
|
|
"\n",
|
|
" send_data = {\n",
|
|
" \"textField_l9fe0uiw\": name,\n",
|
|
" \"textField_l9fe0uiv\": name\n",
|
|
" }\n",
|
|
"\n",
|
|
" payload = {\n",
|
|
" \"appType\": \"APP_TNVBVZ3K8G56HG03Z45Q\",\n",
|
|
" \"systemToken\": \"CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1\",\n",
|
|
" \"userId\": \"yida_pub_account\",# 超级管理员账号\n",
|
|
" \"language\": \"zh_CN\",\n",
|
|
" \"formUuid\": \"FORM-UX866Q61GNLAZBCIEDF77BGVIIR83K82WYPHLH2\",\n",
|
|
" \"formDataJson\": json.dumps(send_data),\n",
|
|
" \"processCode\":\"TPROC--UX866Q61GNLAZBCIEDF77BGVIIR83M92WYPHLI2\"\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(yida_api, headers=headers, json=payload)\n",
|
|
" return res\n",
|
|
" try:\n",
|
|
" name = \"NGV明细数据新建条数不正确!\"\n",
|
|
" res_yujing = start_instance_process(TOKEN,name)\n",
|
|
" except:\n",
|
|
" pass"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"数据新建成功!\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"'''校验是否新建正常'''\n",
|
|
"FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\" \n",
|
|
"form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
"if int(form_data.get('totalCount')) ==len(data_NGV):\n",
|
|
" print(\"数据新建成功!\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"form_data.get('totalCount') 39\n",
|
|
"PAGES 1\n",
|
|
"i 1\n",
|
|
"读取到表单中 39 条数据!\n",
|
|
"form_data.get('totalCount') 39\n",
|
|
"PAGES 1\n",
|
|
"i 1\n",
|
|
"读取到表单中 0 条数据!\n",
|
|
"form_data.get('totalCount') 0\n",
|
|
"PAGES 1\n",
|
|
"i 1\n",
|
|
"读取到表单中 0 条数据!\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# -*- coding: utf-8 -*-\n",
|
|
"import psycopg2\n",
|
|
"import pandas as pd\n",
|
|
"# 获得连接\n",
|
|
"conn = psycopg2.connect(database=\"f6_bi\", user=\"BASIC$ro_caowei\", password=\"!ro_caowei123\", host=\"hgprecn-cn-nif1vnv0y002-cn-shanghai.hologres.aliyuncs.com\", port=\"80\")\n",
|
|
"# 获得游标对象,一个游标对象可以对数据库进行执行操作\n",
|
|
"cursor = conn.cursor()\n",
|
|
"\n",
|
|
"import datetime\n",
|
|
"now_time = datetime.datetime.now()\n",
|
|
"yes_time = now_time + datetime.timedelta(days=-1)\n",
|
|
"yes_time_nyr = int(yes_time.strftime('%Y%m%d'))# 获取前一天日期\n",
|
|
"# sql语句 建表\n",
|
|
"sql =f\"\"\"SELECT * FROM \"public\".\"holo_ads_report_saas_profile_ngv_detail_d\" WHERE \"date_id\" = '{yes_time_nyr}';\"\"\"\n",
|
|
"# 执行语句\n",
|
|
"cursor.execute(sql)\n",
|
|
"# 获取结果集的每一行\n",
|
|
"rows = cursor.fetchall()\n",
|
|
"# 获取所有字段名\n",
|
|
"all_fields = cursor.description\n",
|
|
"#执行结果转化为dataframe\n",
|
|
"col = []\n",
|
|
"for i in all_fields:\n",
|
|
" col.append(i[0])\n",
|
|
"data_NGV = pd.DataFrame(list(rows),columns=col)\n",
|
|
"# data_NGV.to_excel(r'C:\\Users\\admin\\Desktop\\NGV明细.xlsx')\n",
|
|
"# 关闭数据库连接\n",
|
|
"cursor.close()\n",
|
|
"conn.close()\n",
|
|
"\n",
|
|
"# 基础函数配置\n",
|
|
"import pandas as pd\n",
|
|
"import pandas as pd\n",
|
|
"import requests\n",
|
|
"from pathlib import Path\n",
|
|
"from urllib.parse import quote\n",
|
|
"import json\n",
|
|
"import numpy as np\n",
|
|
"import time\n",
|
|
"\n",
|
|
"ROOT = Path('.').absolute() # 当前工作目录\n",
|
|
"\n",
|
|
"def generateToken() -> str:\n",
|
|
" \"\"\" 生成 token \"\"\"\n",
|
|
"\n",
|
|
" token_api = 'https://api.dingtalk.com/v1.0/oauth2/accessToken'\n",
|
|
"\n",
|
|
" # 该信息在钉钉开放应用中\n",
|
|
" data = {\n",
|
|
" \"appKey\": \"ding5kqocon5s9oph5uq\",\n",
|
|
" \"appSecret\": 'HL1jgsIIfLAC0eTH0A1m4mwxUDqbgsiPeCCGGE3ocM6qJBTIW7Ivt9drxF_Z4Kb_'\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(token_api, json=data)\n",
|
|
" token = res.json()['accessToken']\n",
|
|
"\n",
|
|
" return token\n",
|
|
"\n",
|
|
"def read_instances(token, formUuid, page, n):\n",
|
|
" \"\"\" 函数功能:读取普通表单的所有数据 \"\"\"\n",
|
|
"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/search'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": token\n",
|
|
" }\n",
|
|
"\n",
|
|
" formData = {\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"language\" : \"zh_CN\",\n",
|
|
" \"formUuid\" : formUuid,\n",
|
|
" \"currentPage\" : page,\n",
|
|
" \"pageSize\" : n\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=formData)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def read_delete(token, formInstanceId):\n",
|
|
" \"\"\" 函数功能:调用本接口删除表单数据。 \"\"\"\n",
|
|
"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": token\n",
|
|
" }\n",
|
|
"\n",
|
|
" formData = {\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"language\" : \"zh_CN\",\n",
|
|
" \"formInstanceId\" : formInstanceId\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.delete(api, headers=headers, json=formData)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def read_new(FORMID,formData):\n",
|
|
" \"\"\" 通过实例id 获取表单内容 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com/v1.0/yida/forms/instances'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
" payload = {\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"language\" : \"zh_CN\",\n",
|
|
" \"userId\" : \"yida_pub_account\"\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=payload)\n",
|
|
" print(res.json())\n",
|
|
"\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"\n",
|
|
"def component(FORMID,TOKEN):\n",
|
|
" \"\"\" 获取组件信息 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/formFields'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
" payload = {\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" # \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" # \"language\" : \"zh_CN\",\n",
|
|
" \"userId\" : \"yida_pub_account\"\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.get(api, headers=headers, json=payload)\n",
|
|
"\n",
|
|
" return res.json()\n",
|
|
"def Batch_creation(FORMID,TOKEN,ALL_formData):\n",
|
|
" \"\"\" 获取组件信息 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/batchSave'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
" payload = {\n",
|
|
" # \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
|
" \"noExecuteExpression\" : \"true\",\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"asynchronousExecution\" : \"true\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"keepRunningAfterException\" : \"true\",\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"formDataJsonList\" : json.dumps(ALL_formData, cls=NpEncoder),\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=payload)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def delete_in_batches(FORMID,TOKEN,ALL_DATA_instance):\n",
|
|
" \"\"\" 批量删除表单实例 \"\"\"\n",
|
|
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/batchRemove'\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
|
" }\n",
|
|
"\n",
|
|
" payload = {\n",
|
|
" \"formUuid\" : FORMID,\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"asynchronousExecution\" : \"true\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"formInstanceIdList\" : json.dumps(ALL_DATA_instance, cls=NpEncoder),\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"executeExpression\" : \"false\" # 不触发\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=payload)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"class NpEncoder(json.JSONEncoder):\n",
|
|
" def default(self, obj):\n",
|
|
" if isinstance(obj, np.integer):\n",
|
|
" return int(obj)\n",
|
|
" elif isinstance(obj, np.floating):\n",
|
|
" return float(obj)\n",
|
|
" elif isinstance(obj, np.ndarray):\n",
|
|
" return obj.tolist()\n",
|
|
" else:\n",
|
|
" return super(NpEncoder, self).default(obj)\n",
|
|
"TOKEN = generateToken() \n",
|
|
"'''读取员工对应关系:宜搭员工-ID对应表 '''\n",
|
|
"# FORMID = \"FORM-EA866E715PF9YA7ECCAGSABX91Q72PVA3WRFL6\" # 宜搭员工-ID对应表 FORM-EA866E715PF9YA7ECCAGSABX91Q72PVA3WRFL6\n",
|
|
"# # 读取流程表单数据\n",
|
|
"# form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
"# PAGES = form_data.get('totalCount')//10 + 1\n",
|
|
"# ALL_DATA_staff = []\n",
|
|
"# \"\"\" 获取全量数据 \"\"\"\n",
|
|
"# for i in range(1, PAGES+1):\n",
|
|
"# # form_data = read_processes_instances(token=TOKEN, formUuid=FORMID, createFromTimeGMT=CREATE_FROM, createToTimeGMT=CREATE_TO, page=i, n=100, searchField={'textField_l7if5ff9': '否'})\n",
|
|
"# form_data = read_instances(token=TOKEN, formUuid=FORMID, page=i, n=100)\n",
|
|
"# for data in form_data.get('data'):\n",
|
|
"# ALL_DATA_staff.append(data)\n",
|
|
"# print(f'读取到流程表单中 {len(ALL_DATA_staff)} 条数据!')\n",
|
|
"\n",
|
|
"'''获取表内控件信息 '''\n",
|
|
"# FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\"\n",
|
|
"# component_list = component(FORMID,TOKEN)\n",
|
|
"# for i in range(len(component_list['result'])):\n",
|
|
"# componentName = component_list['result'][i]['componentName']\n",
|
|
"# name_value = component_list['result'][i]['label']['value']\n",
|
|
"# fieldId = component_list['result'][i]['fieldId']\n",
|
|
"# print(\"'\",fieldId,\"':\",\"data_NGV[\",name_value,\"][i],\")\n",
|
|
"\n",
|
|
"\n",
|
|
"'''批量删除NGV数据'''\n",
|
|
"for i in range(0,2):\n",
|
|
" default = True\n",
|
|
" while default:\n",
|
|
" FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\" \n",
|
|
" form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
" PAGES = form_data.get('totalCount')//100 +1 \n",
|
|
" print(\"form_data.get('totalCount')\",form_data.get('totalCount'))\n",
|
|
" print(\"PAGES\",PAGES)\n",
|
|
" if form_data.get('totalCount')<=0:\n",
|
|
" default = False\n",
|
|
" for i in range(1,PAGES+1):\n",
|
|
" print(\"i\",i)\n",
|
|
" ALL_DATA_instance = []\n",
|
|
" # form_data = read_processes_instances(token=TOKEN, formUuid=FORMID, createFromTimeGMT=CREATE_FROM, createToTimeGMT=CREATE_TO, page=i, n=100, searchField={'textField_l7if5ff9': '否'})\n",
|
|
" form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
" for data in form_data.get('data'):\n",
|
|
" ALL_DATA_instance.append(data['formInstanceId'])\n",
|
|
" print(f'读取到表单中 {len(ALL_DATA_instance)} 条数据!')\n",
|
|
" red_delete = delete_in_batches(FORMID,TOKEN,ALL_DATA_instance)\n",
|
|
"\n",
|
|
"'''遍历数据进行新建'''\n",
|
|
"data_NGV = data_NGV.astype('string')\n",
|
|
"data_NGV = data_NGV.fillna('',inplace=False)\n",
|
|
"for a in range(0,len(data_NGV[\"date_fmt\"]),100):\n",
|
|
" ALL_formData = []\n",
|
|
" for i in range(a,a+100): # for i in range(len(data_NGV[\"date_fmt\"])):\n",
|
|
" try:\n",
|
|
" formData = {\n",
|
|
" 'textField_nnyw1ge': data_NGV[\"date_id\"][i],\n",
|
|
" 'dateField_e9jt02o': int(time.mktime(time.strptime(data_NGV[\"date_fmt\"][i], \"%Y-%m-%d\"))*1000) if data_NGV[\"date_fmt\"][i] !='' else '',\n",
|
|
" 'textField_ek9jnne': data_NGV[\"id_own_group\"][i],\n",
|
|
" 'textField_35i6110': data_NGV[\"group_name\"][i],\n",
|
|
" 'textField_l8nc9f2': data_NGV[\"id_own_org\"][i],\n",
|
|
" 'textField_tdn6hsy': data_NGV[\"org_name\"][i],\n",
|
|
" 'textField_zc1iowp': data_NGV[\"org_code\"][i],\n",
|
|
" 'textField_2rulk5e': data_NGV[\"group_grade\"][i],\n",
|
|
" 'textField_c54tztg': data_NGV[\"org_type\"][i],\n",
|
|
" 'textField_qrtnel7': data_NGV[\"org_status\"][i],\n",
|
|
" 'textField_7xgxe9g': data_NGV[\"saas_version\"][i],\n",
|
|
" 'textField_pnig1i1': data_NGV[\"is_wechat\"][i],\n",
|
|
" 'textField_qiovtdj': data_NGV[\"is_mini_app\"][i],\n",
|
|
" 'textField_i0h0iqa': data_NGV[\"is_wx_shop\"][i],\n",
|
|
" 'textField_qczj9vq': data_NGV[\"is_camera_service\"][i],\n",
|
|
" 'textField_jouovty': data_NGV[\"is_maintenance_service\"][i],\n",
|
|
" 'dateField_o1v1emn': int(time.mktime(time.strptime(data_NGV[\"saas_create_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"saas_create_time\"][i] !='' else '',\n",
|
|
" 'dateField_6zdcfnf': int(time.mktime(time.strptime(data_NGV[\"expiry_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"expiry_time\"][i] !='' else '',\n",
|
|
" 'textField_8uae70x': data_NGV[\"saas_use_days\"][i],\n",
|
|
" 'textField_cjkvqpn': data_NGV[\"saas_use_year\"][i],\n",
|
|
" 'textField_yhtmsxx': data_NGV[\"is_main_org\"][i],\n",
|
|
" 'textField_gfigtpn': data_NGV[\"license_code\"][i],\n",
|
|
" 'textField_662foev': data_NGV[\"license_name\"][i],\n",
|
|
" 'textField_lco27te': data_NGV[\"org_crm_id\"][i],\n",
|
|
" 'textField_1tygbmq': data_NGV[\"province_id\"][i],\n",
|
|
" 'textField_1q6dt9a': data_NGV[\"province_name\"][i],\n",
|
|
" 'textField_z2rntja': data_NGV[\"city_id\"][i],\n",
|
|
" 'textField_ohybc2g': data_NGV[\"city_name\"][i],\n",
|
|
" 'textField_9oupoal': data_NGV[\"area_id\"][i],\n",
|
|
" 'textField_m0rzgwb': data_NGV[\"area_name\"][i],\n",
|
|
" 'textField_69po7o9': data_NGV[\"region_name\"][i],\n",
|
|
" 'textField_vqxr0d9': data_NGV[\"region_short_name\"][i],\n",
|
|
" 'textField_5wr3tj9': data_NGV[\"branch_name\"][i],\n",
|
|
" 'textField_6hz7i81': data_NGV[\"carzone_store_id\"][i],\n",
|
|
" 'textField_86wu9qm': data_NGV[\"carzone_store_name\"][i],\n",
|
|
" 'textField_129quhy': data_NGV[\"customer_carzone_id\"][i],\n",
|
|
" 'textField_j7i4mhn': data_NGV[\"salesmen\"][i],\n",
|
|
" 'textField_qms107e': data_NGV[\"area_manager\"][i],\n",
|
|
" 'textField_qc3blb5': data_NGV[\"service_salesmen\"][i],\n",
|
|
" 'textField_vk0hf2u': data_NGV[\"impl_principal\"][i],\n",
|
|
" 'textField_3lfom9a': data_NGV[\"service_impl_principal\"][i],\n",
|
|
" 'textField_1ud1o2l': data_NGV[\"active_user_count\"][i],\n",
|
|
" 'textField_kpdh7qc': data_NGV[\"active_user_type\"][i],\n",
|
|
" 'textField_n2y4bmf': data_NGV[\"limit_user_count\"][i],\n",
|
|
" 'textField_k5o5u2d': data_NGV[\"limit_user_type\"][i],\n",
|
|
" 'textField_729y7jp': data_NGV[\"is_n\"][i],\n",
|
|
" 'textField_six7heq': data_NGV[\"is_g\"][i],\n",
|
|
" 'textField_tipmhx4': data_NGV[\"is_v\"][i],\n",
|
|
" 'textField_qclt1dm': data_NGV[\"is_visited\"][i],\n",
|
|
" 'textField_0sk94f9': data_NGV[\"is_active\"][i],\n",
|
|
" 'textField_bzszf71': data_NGV[\"active_status_fmt\"][i],\n",
|
|
" 'textField_c061ojt': data_NGV[\"bill_count_last_30_day\"][i],\n",
|
|
" 'textField_07zkoii': data_NGV[\"bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_3vnzvsx': data_NGV[\"bill_day_count_this_month\"][i],\n",
|
|
" 'textField_3mxwdc4': data_NGV[\"bill_count_last_7_day\"][i],\n",
|
|
" 'textField_4q3bh5w': data_NGV[\"bill_day_count_last_7_day\"][i],\n",
|
|
" 'textField_u0rgodd': data_NGV[\"pv_count\"][i],\n",
|
|
" 'textField_eau5xx6': data_NGV[\"uv_count\"][i],\n",
|
|
" 'textField_tayz1vv': data_NGV[\"bill_count_1d\"][i],\n",
|
|
" 'textField_k4b1a7x': data_NGV[\"bill_count_2d\"][i],\n",
|
|
" 'textField_7lfqnm3': data_NGV[\"bill_count_3d\"][i],\n",
|
|
" 'textField_g24x9fv': data_NGV[\"bill_count_4d\"][i],\n",
|
|
" 'textField_0v3pm0r': data_NGV[\"bill_count_5d\"][i],\n",
|
|
" 'textField_1nxvats': data_NGV[\"bill_count_6d\"][i],\n",
|
|
" 'textField_vylq7uh': data_NGV[\"bill_count_7d\"][i],\n",
|
|
" 'textField_0n1zd7o': data_NGV[\"bill_count_8d\"][i],\n",
|
|
" 'textField_uuatjx7': data_NGV[\"bill_count_9d\"][i],\n",
|
|
" 'textField_e16m62c': data_NGV[\"bill_count_10d\"][i],\n",
|
|
" 'textField_anv4rco': data_NGV[\"bill_count_11d\"][i],\n",
|
|
" 'textField_pz5cg65': data_NGV[\"bill_count_12d\"][i],\n",
|
|
" 'textField_hamkvor': data_NGV[\"bill_count_13d\"][i],\n",
|
|
" 'textField_kw9nvef': data_NGV[\"bill_count_14d\"][i],\n",
|
|
" 'textField_ujbyern': data_NGV[\"bill_count_15d\"][i],\n",
|
|
" 'textField_uqp3072': data_NGV[\"bill_count_16d\"][i],\n",
|
|
" 'textField_2qsei19': data_NGV[\"bill_count_17d\"][i],\n",
|
|
" 'textField_p5x4u8t': data_NGV[\"bill_count_18d\"][i],\n",
|
|
" 'textField_2lv8ksl': data_NGV[\"bill_count_19d\"][i],\n",
|
|
" 'textField_unl61g8': data_NGV[\"bill_count_20d\"][i],\n",
|
|
" 'textField_cvtamin': data_NGV[\"bill_count_21d\"][i],\n",
|
|
" 'textField_z0hs1c4': data_NGV[\"bill_count_22d\"][i],\n",
|
|
" 'textField_9jln7lp': data_NGV[\"bill_count_23d\"][i],\n",
|
|
" 'textField_jlst4j8': data_NGV[\"bill_count_24d\"][i],\n",
|
|
" 'textField_ct6z2pu': data_NGV[\"bill_count_25d\"][i],\n",
|
|
" 'textField_6s2qy9p': data_NGV[\"bill_count_26d\"][i],\n",
|
|
" 'textField_l9lyxnr': data_NGV[\"bill_count_27d\"][i],\n",
|
|
" 'textField_sz5xht3': data_NGV[\"bill_count_28d\"][i],\n",
|
|
" 'textField_ccodrkd': data_NGV[\"bill_count_29d\"][i],\n",
|
|
" 'textField_dy7c14l': data_NGV[\"bill_count_30d\"][i],\n",
|
|
" 'textField_delij7o': data_NGV[\"bill_count_31d\"][i],\n",
|
|
" 'dateField_4vp44kc': int(time.mktime(time.strptime(data_NGV[\"etl_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"etl_time\"][i] !='' else '',\n",
|
|
" 'textField_0d97bpy': data_NGV[\"maintain_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_3nbi33y': data_NGV[\"washing_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_17yhr79': data_NGV[\"maintain_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_e1mrwvb': data_NGV[\"washing_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_8s47o64': data_NGV[\"retail_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_jr9otam': data_NGV[\"retail_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_mtg1zn1': data_NGV[\"purchase_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_96ggfjo': data_NGV[\"purchase_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_hk7pe9z': data_NGV[\"card_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_yj3vbwq': data_NGV[\"card_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_n2hdr45': data_NGV[\"gd_sales_bill_count_last_30_day\"][i],\n",
|
|
" 'textField_p7xgdah': data_NGV[\"gd_sales_bill_day_count_last_30_day\"][i],\n",
|
|
" 'textField_7xr2ar8': data_NGV[\"g_change_flag\"][i],\n",
|
|
" 'textField_gpzxxmk': data_NGV[\"saas_package\"][i],\n",
|
|
" 'textField_tq9g8in': data_NGV[\"manage_model\"][i],\n",
|
|
" 'textField_zzchgop': data_NGV[\"contacts\"][i],\n",
|
|
" 'textField_a2znmfb': data_NGV[\"contact_number\"][i],\n",
|
|
" 'textField_0sadows': data_NGV[\"contact_mobile\"][i],\n",
|
|
" 'textField_hz3ujlo': data_NGV[\"g_month_count\"][i],\n",
|
|
" 'textField_m1gdeaa': data_NGV[\"g_month_percentage\"][i],\n",
|
|
" 'textField_y7ds4oo': data_NGV[\"is_install_service\"][i],\n",
|
|
" 'dateField_hiuaj0y': int(time.mktime(time.strptime(data_NGV[\"install_create_time\"][i], \"%Y-%m-%d %H:%M:%S\"))*1000) if data_NGV[\"install_create_time\"][i] !='' else '',\n",
|
|
" 'dateField_yubgpmy': int(time.mktime(time.strptime(data_NGV[\"last_end_date\"][i], \"%Y-%m-%d\"))*1000) if data_NGV[\"last_end_date\"][i] !='' else '',\n",
|
|
" 'dateField_8st5q1a': int(time.mktime(time.strptime(data_NGV[\"renew_date\"][i], \"%Y-%m-%d\"))*1000) if data_NGV[\"renew_date\"][i] !=''else '',\n",
|
|
" 'textField_u8h91r2': data_NGV[\"is_chain_owner\"][i],\n",
|
|
" 'textField_qzzz8ux': data_NGV[\"group_org_count\"][i],\n",
|
|
" 'textField_qzjf8mc': data_NGV[\"recent_bill_warning_days\"][i],\n",
|
|
" 'textField_lvyu7z2': data_NGV[\"g_change_flag_d\"][i],\n",
|
|
" 'textField_d72wy3d': data_NGV[\"g_lost_warning_days\"][i],\n",
|
|
" 'textField_11ebiwp': data_NGV[\"saas_edition_fmt\"][i],\n",
|
|
" 'textField_4yu5vlq': data_NGV[\"g_flag_1m\"][i],\n",
|
|
" 'textField_8ydk27g': data_NGV[\"g_flag_2m\"][i],\n",
|
|
" 'textField_ysoij3v': data_NGV[\"g_flag_3m\"][i],\n",
|
|
" 'textField_a4t6iwp': data_NGV[\"g_flag_4m\"][i],\n",
|
|
" 'textField_z1xfteb': data_NGV[\"g_flag_5m\"][i],\n",
|
|
" 'textField_56x8u44': data_NGV[\"g_flag_6m\"][i],\n",
|
|
" 'textField_zscafbj': data_NGV[\"g_flag_day_count\"][i],\n",
|
|
" 'textField_4c0rpdd': data_NGV[\"add_org_flag\"][i],\n",
|
|
" 'textField_14we48g': data_NGV[\"pt\"][i],\n",
|
|
" 'textField_gukslqe': data_NGV[\"org_size\"][i],\n",
|
|
" 'textField_y0tw39j': data_NGV[\"qualification_type_fmt\"][i],\n",
|
|
" 'textField_3euralk': data_NGV[\"business_scope_fmt\"][i],\n",
|
|
" 'textField_4jji26g': data_NGV[\"store_type_fmt\"][i],\n",
|
|
" 'textField_z2mrvyk': data_NGV[\"area\"][i],\n",
|
|
" 'textField_e7qmeix': data_NGV[\"station_number\"][i],\n",
|
|
" 'textField_x9q5k8p': data_NGV[\"header_type_fmt\"][i],\n",
|
|
" 'textField_h423ob8': data_NGV[\"org_stage\"][i],\n",
|
|
" 'textField_w6dk6au': data_NGV[\"g_count_this_month\"][i],\n",
|
|
" 'textField_67sllhy': data_NGV[\"saas_customer_type\"][i]\n",
|
|
" }\n",
|
|
" ALL_formData.append(json.dumps(formData, cls=NpEncoder)) \n",
|
|
" except:\n",
|
|
" pass\n",
|
|
" FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\" \n",
|
|
" res_new = Batch_creation(FORMID,TOKEN,ALL_formData)\n",
|
|
" print(\"新建第\",i,\"条数据!\")\n",
|
|
" \n",
|
|
"'''校验是否新建正常'''\n",
|
|
"FORMID = \"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\" \n",
|
|
"form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
"if int(form_data.get('totalCount')) ==len(data_NGV):\n",
|
|
" print(\"数据新建成功!\")\n",
|
|
"else:\n",
|
|
" \n",
|
|
" def start_instance_process(token: str, name):\n",
|
|
"\n",
|
|
" \"\"\"发送宜搭表单 -- 发起流程表单\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" token \n",
|
|
" data:需要发送的数据字典\n",
|
|
" \"\"\"\n",
|
|
"\n",
|
|
" yida_api = \"https://api.dingtalk.com/v1.0/yida/processes/instances/start\"\n",
|
|
"\n",
|
|
" headers = {\n",
|
|
" \"Content-Type\": \"application/json\",\n",
|
|
" \"x-acs-dingtalk-access-token\": token\n",
|
|
" }\n",
|
|
"\n",
|
|
" send_data = {\n",
|
|
" \"textField_l9fe0uiw\": name,\n",
|
|
" \"textField_l9fe0uiv\": name\n",
|
|
" }\n",
|
|
"\n",
|
|
" payload = {\n",
|
|
" \"appType\": \"APP_TNVBVZ3K8G56HG03Z45Q\",\n",
|
|
" \"systemToken\": \"CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1\",\n",
|
|
" \"userId\": \"yida_pub_account\",# 超级管理员账号\n",
|
|
" \"language\": \"zh_CN\",\n",
|
|
" \"formUuid\": \"FORM-UX866Q61GNLAZBCIEDF77BGVIIR83K82WYPHLH2\",\n",
|
|
" \"formDataJson\": json.dumps(send_data),\n",
|
|
" \"processCode\":\"TPROC--UX866Q61GNLAZBCIEDF77BGVIIR83M92WYPHLI2\"\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(yida_api, headers=headers, json=payload)\n",
|
|
" return res\n",
|
|
" try:\n",
|
|
" name = \"NGV明细数据新建条数不正确!\"\n",
|
|
" res_yujing = start_instance_process(TOKEN,name)\n",
|
|
" except:\n",
|
|
" pass"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "F6processing",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.9.4"
|
|
},
|
|
"orig_nbformat": 4
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|