444 lines
38 KiB
Plaintext
444 lines
38 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2023-11-25 不是节假日\n",
|
|
"[datetime.date(2023, 1, 1), datetime.date(2023, 1, 8), datetime.date(2023, 1, 15), datetime.date(2023, 1, 22), datetime.date(2023, 1, 29), datetime.date(2023, 2, 5), datetime.date(2023, 2, 12), datetime.date(2023, 2, 19), datetime.date(2023, 2, 26), datetime.date(2023, 3, 5), datetime.date(2023, 3, 12), datetime.date(2023, 3, 19), datetime.date(2023, 3, 26), datetime.date(2023, 4, 2), datetime.date(2023, 4, 9), datetime.date(2023, 4, 16), datetime.date(2023, 4, 23), datetime.date(2023, 4, 30), datetime.date(2023, 5, 7), datetime.date(2023, 5, 14), datetime.date(2023, 5, 21), datetime.date(2023, 5, 28), datetime.date(2023, 6, 4), datetime.date(2023, 6, 11), datetime.date(2023, 6, 18), datetime.date(2023, 6, 25), datetime.date(2023, 7, 2), datetime.date(2023, 7, 9), datetime.date(2023, 7, 16), datetime.date(2023, 7, 23), datetime.date(2023, 7, 30), datetime.date(2023, 8, 6), datetime.date(2023, 8, 13), datetime.date(2023, 8, 20), datetime.date(2023, 8, 27), datetime.date(2023, 9, 3), datetime.date(2023, 9, 10), datetime.date(2023, 9, 17), datetime.date(2023, 9, 24), datetime.date(2023, 10, 1), datetime.date(2023, 10, 8), datetime.date(2023, 10, 15), datetime.date(2023, 10, 22), datetime.date(2023, 10, 29), datetime.date(2023, 11, 5), datetime.date(2023, 11, 12), datetime.date(2023, 11, 19), datetime.date(2023, 11, 26), datetime.date(2023, 12, 3), datetime.date(2023, 12, 10), datetime.date(2023, 12, 17), datetime.date(2023, 12, 24), datetime.date(2023, 12, 31)]\n",
|
|
"当前日期: 2023-11-28 15:00:56.144785\n",
|
|
"遍历日期: 2023-11-27\n",
|
|
"遍历次数: 1\n",
|
|
"2023-06-08 2023-06-09\n",
|
|
"读取到省市小六技术专家区域客服区域客成表单中 66 条数据!\n",
|
|
"2023-06-08 11\n",
|
|
"2023-08-17 2023-11-25 1279\n",
|
|
"2023-05-09 2023-08-17 1265\n",
|
|
"2023-01-29 2023-05-09 1528\n",
|
|
"2022-10-21 2023-01-29 763\n",
|
|
"2022-07-13 2022-10-21 1165\n",
|
|
"2022-04-04 2022-07-13 1540\n",
|
|
"2021-12-25 2022-04-04 1356\n",
|
|
"2021-09-16 2021-12-25 2004\n",
|
|
"2021-06-08 2021-09-16 111\n",
|
|
"2021-02-28 2021-06-08 0\n",
|
|
"[['116743693536486170'], ['063512664121403125'], ['253635282420072174'], ['011062062226778435'], ['1457294844855952'], ['245308451136546029'], ['163135142119897263'], ['106216373838354980'], ['416944291218848']]\n",
|
|
"116743693536486170\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '116743693536486170', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '佰事吉名车维修', 'textField_lnsi0v6s': '旗舰版', 'employeeField_lnsi0v6u': '054169455736370109', 'employeeField_lnsi0v6v': '1525590028775887', 'employeeField_lnsi0v6w': '116743693536486170', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '佰事吉名车维修', 'textField_lnsi0v6z': 'CHS202306080233595', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '1525590028775887', 'employeeField_lmeqk424': '054169455736370109', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-5F766771MPRF4GZPF71LABD941Z82U9C61POLFA&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"2626065538702722\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '063512664121403125', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '上海燊企汽车配件有限公司', 'textField_lnsi0v6s': '标准版', 'employeeField_lnsi0v6u': '2626065538702722', 'employeeField_lnsi0v6v': '1525590028775887', 'employeeField_lnsi0v6w': '063512664121403125', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '上海燊企汽车配件有限公司', 'textField_lnsi0v6z': 'CHS202306080233653', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '1525590028775887', 'employeeField_lmeqk424': '2626065538702722', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-5F766771MPRF4GZPF71LABD941Z82R9C61POLB9&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"195159084238961158\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '253635282420072174', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '星航奔驰专修', 'textField_lnsi0v6s': '基础版', 'employeeField_lnsi0v6u': '054169455736370109', 'employeeField_lnsi0v6v': '025366033037741985', 'employeeField_lnsi0v6w': '253635282420072174', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '星航奔驰专修', 'textField_lnsi0v6z': 'CHS202110190143061', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '025366033037741985', 'employeeField_lmeqk424': '054169455736370109', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-JO8668C1VORFUO22785RNCK8Q4KW300J31POL49&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"253635282420072174\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '253635282420072174', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '温州市龙湾区浩迪汽车服务有限公司', 'textField_lnsi0v6s': '标准版', 'employeeField_lnsi0v6u': '054169455736370109', 'employeeField_lnsi0v6v': '025366033037741985', 'employeeField_lnsi0v6w': '253635282420072174', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '温州市龙湾区浩迪汽车服务有限公司', 'textField_lnsi0v6z': 'CHS202306080233583', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '025366033037741985', 'employeeField_lmeqk424': '054169455736370109', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-5F766771MPRF4GZPF71LABD941Z82R9C61POLA9&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"031367616021462180\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '011062062226778435', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '德通汽配', 'textField_lnsi0v6s': '基础版', 'employeeField_lnsi0v6u': '052909055823302010', 'employeeField_lnsi0v6v': '025366033037741985', 'employeeField_lnsi0v6w': '011062062226778435', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '德通汽配', 'textField_lnsi0v6z': 'CHS202202190167198', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '025366033037741985', 'employeeField_lmeqk424': '052909055823302010', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-LO966L914URFEX2HEOJEZ9U56O3H2I8941POLH6&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"031367616021462180\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '011062062226778435', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '韩泰轮胎专卖店(双拥路店)', 'textField_lnsi0v6s': '基础版', 'employeeField_lnsi0v6u': '052909055823302010', 'employeeField_lnsi0v6v': '025366033037741985', 'employeeField_lnsi0v6w': '011062062226778435', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '韩泰轮胎专卖店(双拥路店)', 'textField_lnsi0v6z': 'CHS201902280007269', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '025366033037741985', 'employeeField_lmeqk424': '052909055823302010', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-UG8660A19TRFKTRFBPM3V7CCU6LG3OJD21POL08&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"163135142119897263\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '1457294844855952', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '2店', 'textField_lnsi0v6s': '基础版', 'employeeField_lnsi0v6u': '180720602439816818', 'employeeField_lnsi0v6v': '1525590028775887', 'employeeField_lnsi0v6w': '1457294844855952', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '2店', 'textField_lnsi0v6z': 'CHS202306080233670', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '1525590028775887', 'employeeField_lmeqk424': '180720602439816818', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-TD666Z91PORFVINX7NLW4B6DQ6WG2Y7P61POLNB&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"0103433535667605\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '245308451136546029', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '圣易朗汽车服务', 'textField_lnsi0v6s': '基础版', 'employeeField_lnsi0v6u': '0103433535667605', 'employeeField_lnsi0v6v': '232229053125844557', 'employeeField_lnsi0v6w': '245308451136546029', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '圣易朗汽车服务', 'textField_lnsi0v6z': 'CHS202006190091582', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '232229053125844557', 'employeeField_lmeqk424': '0103433535667605', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-J8C66JD1JURFZ6YZ53WKUCYTSJ3V33GQ61POLU4&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"0615271028177307\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '163135142119897263', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '好车有道车友俱乐部', 'textField_lnsi0v6s': '基础版', 'employeeField_lnsi0v6u': '180720602439816818', 'employeeField_lnsi0v6v': '1525590028775887', 'employeeField_lnsi0v6w': '163135142119897263', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '好车有道车友俱乐部', 'textField_lnsi0v6z': 'CHS202302240206812', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '1525590028775887', 'employeeField_lmeqk424': '180720602439816818', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-1U8662C1OORF4PI9632YUDD9GJRH2IGP51POLZ2&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n",
|
|
"416944291218848\n",
|
|
"{'dateField_lmelabb1': '1700895943702', 'employeeField_lmeqk429': '416944291218848', 'tableField_lnsi0v71': [{'textField_lnsi0v72': '卡叮汽车服务', 'textField_lnsi0v6s': '标准版', 'employeeField_lnsi0v6u': '055512041727184572', 'employeeField_lnsi0v6v': '1218085201677303', 'employeeField_lnsi0v6w': '416944291218848', 'dateField_lnsi0v6x': '1700895943702', 'textField_lnsi0v6y': '卡叮汽车服务', 'textField_lnsi0v6z': 'CHS202306080233598', 'selectField_lnsi0v6q': '强化培训', 'textareaField_lnsi0v6r': '\\n 新签180天后:\\n 1.客户日常使用问题解答;\\n 2.跟客户查看主营分析,推荐进销存功能深度使用;\\n 3.跟客户查看车辆分析,推荐短信及其他营销功能;\\n 4.说明转介绍政策,索要转介绍;'}], 'employeeField_lmeqk423': '1218085201677303', 'employeeField_lmeqk424': '055512041727184572', 'textField_lmu0523h': '自动派发回访计划', 'editorField_lodoplg0': ['root', {}, ['p', {}, ['span', {'data-type': 'text'}, ['span', {'data-type': 'leaf'}, '']], ['a', {'href': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=FINST-5F766771MPRF4GZPF71LABD941Z82S9C61POLQ9&isAdmin=true'}, ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '点击查看门店NGV']]], ['span', {'data-type': 'text'}, ['span', {'unlink': {}, 'data-type': 'leaf'}, '']]]]}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import holidays\n",
|
|
"from datetime import date\n",
|
|
"\n",
|
|
"# 创建一个中国节假日对象\n",
|
|
"cn_holidays = holidays.China()\n",
|
|
"# 获取当前日期\n",
|
|
"input_date = date.today()\n",
|
|
"switch = \"\"\n",
|
|
"# 判断日期是否为节假日\n",
|
|
"if input_date in cn_holidays:\n",
|
|
" switch = \"节假日\"\n",
|
|
" print(f\"{input_date} 是节假日\")\n",
|
|
"else:\n",
|
|
" switch = \"非节假日\"\n",
|
|
" print(f\"{input_date} 不是节假日\")\n",
|
|
"date_list = []\n",
|
|
"for data in cn_holidays:\n",
|
|
" date_list.append(str(data))\n",
|
|
"\n",
|
|
"from datetime import date, timedelta\n",
|
|
"\n",
|
|
"def get_saturdays(year):\n",
|
|
" start_date = date(year, 1, 1)\n",
|
|
" end_date = date(year, 12, 31)\n",
|
|
" saturdays = []\n",
|
|
"\n",
|
|
" while start_date <= end_date:\n",
|
|
" if start_date.weekday() == 6: # 周日的weekday值为6\n",
|
|
" saturdays.append(start_date)\n",
|
|
" start_date += timedelta(days=1)\n",
|
|
"\n",
|
|
" return saturdays\n",
|
|
"\n",
|
|
"current_year = date.today().year\n",
|
|
"saturdays = get_saturdays(current_year)\n",
|
|
"print(saturdays)\n",
|
|
"for data in saturdays:\n",
|
|
" date_list.append(str(data))\n",
|
|
"date_list = list(set(date_list))\n",
|
|
"date_list = sorted(date_list, reverse=False)\n",
|
|
"\n",
|
|
"# -*- 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_j = 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",
|
|
"import pandas as pd\n",
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"import requests\n",
|
|
"import json\n",
|
|
"import time\n",
|
|
"import re\n",
|
|
"from datetime import datetime\n",
|
|
"from dateutil.relativedelta import relativedelta\n",
|
|
"from pathlib import Path\n",
|
|
"from urllib.parse import quote\n",
|
|
"from io import BytesIO\n",
|
|
"\n",
|
|
"ROOT = Path('.').absolute() # 当前工作目录\n",
|
|
"\n",
|
|
"\n",
|
|
"# 生成 token,参数不需要修改\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,formatted_today,formatted_today_two):\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",
|
|
" \"createFromTimeGMT\" : formatted_today,\n",
|
|
" \"createToTimeGMT\" : formatted_today_two,\n",
|
|
" \"currentPage\" : page,\n",
|
|
" \"pageSize\" : n\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=formData)\n",
|
|
" return res.json()\n",
|
|
"\n",
|
|
"def initiate_process(TOKEN,formUuid,processCode,formData):\n",
|
|
" \"\"\" 发起宜搭审批流程 \"\"\"\n",
|
|
" api = f'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",
|
|
" payload = {\n",
|
|
" \"appType\" : \"APP_UYZ0KG6L0CCNV80GZ66O\",\n",
|
|
" \"systemToken\" : \"XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2\",\n",
|
|
" \"userId\" : \"yida_pub_account\",\n",
|
|
" \"language\" : \"zh_CN\",\n",
|
|
" \"formUuid\" : formUuid,\n",
|
|
" \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
|
" \"processCode\" : processCode,\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=payload)\n",
|
|
" return res.json()\n",
|
|
"def read_instances_new(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",
|
|
"def read_instances_ngv(token, formUuid, page, n,searchField):\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",
|
|
" \"searchFieldJson\": json.dumps(searchField),\n",
|
|
" \"currentPage\" : page,\n",
|
|
" \"pageSize\" : n\n",
|
|
" }\n",
|
|
"\n",
|
|
" res = requests.post(api, headers=headers, json=formData)\n",
|
|
" return res.json()\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",
|
|
" \n",
|
|
"TOKEN = generateToken()\n",
|
|
"import datetime\n",
|
|
"kaishiriqi = 173\n",
|
|
"kaishiriqi_1 = 172\n",
|
|
"date_one = 1\n",
|
|
"now_time = datetime.datetime.now()\n",
|
|
"# now_time = now_time + datetime.timedelta(days=+3)\n",
|
|
"if now_time.strftime(\"%Y-%m-%d\") in date_list:\n",
|
|
" date_one = 0\n",
|
|
" print(\"开始次数:\",date_one)\n",
|
|
"print(\"当前日期:\",now_time)\n",
|
|
"\n",
|
|
"for i in range(1,10):\n",
|
|
" new_date = now_time + datetime.timedelta(days=-i)\n",
|
|
" new_date = new_date.strftime(\"%Y-%m-%d\")\n",
|
|
" print(\"遍历日期:\",new_date)\n",
|
|
" if new_date in date_list:\n",
|
|
" date_one = date_one + 1 \n",
|
|
" print(\"节假日期:\",new_date)\n",
|
|
" else:\n",
|
|
" break\n",
|
|
"print(\"遍历次数:\",date_one)\n",
|
|
"# now_time = datetime.datetime.now()\n",
|
|
"for i in range(0,date_one):\n",
|
|
" now_time = now_time + datetime.timedelta(days=-i)\n",
|
|
" today = now_time + datetime.timedelta(days=-kaishiriqi) # 根据周日和法定节假日 输出每日需要筛选的日期范围\n",
|
|
" formatted_today = today.strftime(\"%Y-%m-%d\")\n",
|
|
" today_two = now_time + datetime.timedelta(days=-kaishiriqi_1)\n",
|
|
" formatted_today_two = today_two.strftime(\"%Y-%m-%d\")\n",
|
|
" print(formatted_today,formatted_today_two)\n",
|
|
" timestamp_ms = int(time.time() * 1000) # 当然日期时间戳 毫秒级\n",
|
|
" '''读取省市小六技术专家区域客服区域客成 '''\n",
|
|
" FORMID = \"FORM-TP866D918DFCA4FW79YZU5X43FO32QZJQDZJL7\" #省市小六技术专家区域客服区域客成\n",
|
|
" # 读取流程表单数据\n",
|
|
" form_data = read_instances_new(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
|
" PAGES = form_data.get('totalCount')//100 + 1\n",
|
|
" textField_gif29wy = {}\n",
|
|
" textField_3athky8 = {}\n",
|
|
" textField_3hgho1m = {}\n",
|
|
" textField_nc7gskc = {}\n",
|
|
" textField_qk1e5di = {}\n",
|
|
" textField_m3hchxc = {} # 市\n",
|
|
" \"\"\" 获取全量数据 \"\"\"\n",
|
|
" for i in range(1, PAGES+1):\n",
|
|
" form_data = read_instances_new(token=TOKEN, formUuid=FORMID, page=i, n=100)\n",
|
|
" for data in form_data.get('data'):\n",
|
|
" textField_gif29wy[data['formData']['textField_3hgho1m']]=data['formData']['textField_gif29wy'] #区域客成id\n",
|
|
" textField_3athky8[data['formData']['textField_3hgho1m']]=data['formData']['textField_3athky8'] #区域客服id\n",
|
|
" textField_3hgho1m[data['formData']['textField_3hgho1m']]=data['formData']['textField_3hgho1m'] #小六id\n",
|
|
" textField_nc7gskc[data['formData']['textField_3hgho1m']]=data['formData']['textField_nc7gskc'] #技术专家id\n",
|
|
" textField_qk1e5di[data['formData']['textField_3hgho1m']]=data['formData']['textField_lntniove'] #区域经理id\n",
|
|
" textField_m3hchxc[data['formData']['textField_m3hchxc']]=data['formData']['textField_3hgho1m'] #小六id-市\n",
|
|
" print(f'读取到省市小六技术专家区域客服区域客成表单中 {len(textField_gif29wy)} 条数据!')\n",
|
|
" # [流程]新签服务流程 读取待处理数据\n",
|
|
" json_data = []\n",
|
|
" read_data = read_instances(TOKEN, \"FORM-9X766NA1SOATBRSH2K42D8BJCX7L326HI64TKG5\", 1, 100,formatted_today,formatted_today_two)\n",
|
|
" PAGES = read_data.get('totalCount')//100 + 1\n",
|
|
" print(formatted_today,read_data.get('totalCount'))\n",
|
|
" for a in range(1,PAGES + 1):\n",
|
|
" read_data = read_instances(TOKEN, \"FORM-9X766NA1SOATBRSH2K42D8BJCX7L326HI64TKG5\", a, 100,formatted_today,formatted_today_two) \n",
|
|
" for i in range(0,len(read_data[\"data\"])):\n",
|
|
" json_data.append(read_data[\"data\"][i]['formData'])\n",
|
|
" # [流程]新签服务流程 读取待处理数据\n",
|
|
" json_data_all = []\n",
|
|
" for i in range(0,1000,100):\n",
|
|
" now_time = datetime.datetime.now()\n",
|
|
" today = now_time + datetime.timedelta(days=-(i+100))\n",
|
|
" formatted_today = today.strftime(\"%Y-%m-%d\")\n",
|
|
" today_two = now_time + datetime.timedelta(days=-i)\n",
|
|
" formatted_today_two = today_two.strftime(\"%Y-%m-%d\")\n",
|
|
" timestamp_ms = int(time.time() * 1000) # 当然日期时间戳 毫秒级\n",
|
|
" read_data = read_instances(TOKEN, \"FORM-9X766NA1SOATBRSH2K42D8BJCX7L326HI64TKG5\", 1, 100,formatted_today,formatted_today_two)\n",
|
|
" PAGES = read_data.get('totalCount')//100 + 1\n",
|
|
" print(formatted_today,formatted_today_two,read_data.get('totalCount'))\n",
|
|
" for a in range(1,PAGES + 1):\n",
|
|
" read_data = read_instances(TOKEN, \"FORM-9X766NA1SOATBRSH2K42D8BJCX7L326HI64TKG5\", a, 100,formatted_today,formatted_today_two) \n",
|
|
" for i in range(0,len(read_data[\"data\"])):\n",
|
|
" json_data_all.append(read_data[\"data\"][i]['formData'])\n",
|
|
" df = pd.DataFrame(json_data_all)\n",
|
|
" # 将所有字段设置为字符串类型\n",
|
|
" df = df.astype(str)\n",
|
|
" data_NGV = data_NGV_j[['org_code', 'id_own_group']]\n",
|
|
" data_NGV = data_NGV.rename(columns={'org_code': 'orgCode'})\n",
|
|
" result = pd.merge(df, data_NGV, on='orgCode', how='left')\n",
|
|
" data_details_not_null = result.sort_values(by='openTime', ascending=True).drop_duplicates(subset='id_own_group')\n",
|
|
" # 重置索引\n",
|
|
" data_details_not_null = data_details_not_null.reset_index(drop=True)\n",
|
|
" data_details_all = data_details_not_null.copy() # 替换名称 v2 \n",
|
|
" # 获取待回访人员信息+去重\n",
|
|
" name_list = []\n",
|
|
" for data in json_data:\n",
|
|
" name_list.append(data['employeeField_kyi1dqth_id'])\n",
|
|
" unique_arr = []\n",
|
|
" [unique_arr.append(x) for x in name_list if x not in unique_arr]\n",
|
|
" print(unique_arr)\n",
|
|
"\n",
|
|
" # 每日工作计划\n",
|
|
" formUuid = \"FORM-4V966N81OMEEH85QDP8XW4AH1AIZ2GKRLZTML21\"\n",
|
|
" processCode = \"TPROC--4V966N81OMEEH85QDP8XW4AH1AIZ21ORLZTML31\"\n",
|
|
" # 遍历数据并进行创建\n",
|
|
" for name in unique_arr:\n",
|
|
" tableField_lnsi0v71 = {}\n",
|
|
" tableField_lnsi0v71['dateField_lmelabb1'] = \"\"\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk429'] = \"\"\n",
|
|
" for data in json_data:\n",
|
|
" if data['employeeField_kyi1dqth_id'] == name and data['orgCode'] in data_details_all['orgCode'].values:\n",
|
|
" print(textField_m3hchxc[data['city']])\n",
|
|
" data_one = {} # 子表单\n",
|
|
" data_two = {} # 主表单\n",
|
|
" # 子表单\n",
|
|
" data_one['textField_lnsi0v72'] = data['orgName']\n",
|
|
" data_one['textField_lnsi0v6s'] = data[\"saasEdition\"] # 销售版本\n",
|
|
" try:\n",
|
|
" data_one['employeeField_lnsi0v6u'] = textField_nc7gskc[name[0]] # 技术专家\n",
|
|
" data_one['employeeField_lnsi0v6v'] = textField_qk1e5di[name[0]] # 区域经理\n",
|
|
" if textField_3hgho1m[name[0]] ==\"\":\n",
|
|
" data_one['employeeField_lnsi0v6w'] = textField_m3hchxc[data['city']] # 运营顾问\n",
|
|
" else:\n",
|
|
" data_one['employeeField_lnsi0v6w'] = textField_3hgho1m[name[0]] # 运营顾问\n",
|
|
" except:\n",
|
|
" data_one['employeeField_lnsi0v6u'] = data['technician_id'][0] # 技术专家\n",
|
|
" data_one['employeeField_lnsi0v6v'] = data['manager_id'][0] # 区域经理\n",
|
|
" data_one['employeeField_lnsi0v6w'] = textField_m3hchxc[data['city']] # 运营顾问\n",
|
|
" data_one['dateField_lnsi0v6x'] = str(timestamp_ms) # 计划日期\n",
|
|
" data_one['textField_lnsi0v6y'] = data[\"orgName\"] # 门店名称-拷贝\n",
|
|
" data_one['textField_lnsi0v6z'] = data[\"orgCode\"] # 门店编码\n",
|
|
" data_one['selectField_lnsi0v6q'] = \"强化培训\" # 拜访目的\n",
|
|
" # data_one['textField_lnsi0v70'] = data_result.loc[i,\"id_own_group\"] # 公司id\n",
|
|
" data_one['textareaField_lnsi0v6r'] = '''\n",
|
|
" 新签180天后:\n",
|
|
" 1.客户日常使用问题解答;\n",
|
|
" 2.跟客户查看主营分析,推荐进销存功能深度使用;\n",
|
|
" 3.跟客户查看车辆分析,推荐短信及其他营销功能;\n",
|
|
" 4.说明转介绍政策,索要转介绍;''' # 拜访目的说明\n",
|
|
" # 加入数据\n",
|
|
" tableField_lnsi0v71['tableField_lnsi0v71'] = [data_one]\n",
|
|
" # 主表单\n",
|
|
" # data_two['dateField_lmelabb1'] = str(timestamp_ms)\n",
|
|
" # data_two['employeeField_lmeqk429'] = name\n",
|
|
" tableField_lnsi0v71['dateField_lmelabb1'] = str(timestamp_ms)\n",
|
|
" try:\n",
|
|
" if name[0] ==\"\":\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk429'] = textField_m3hchxc[data['city']] # 运营顾问\n",
|
|
" else:\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk429'] = name[0]\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk423'] = textField_qk1e5di[name[0]] # 区域经理\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk424'] = textField_nc7gskc[name[0]] # 技术专家\n",
|
|
" except:\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk429'] = textField_m3hchxc[data['city']] # 运营顾问\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk423'] = data['manager_id'][0] # 区域经理\n",
|
|
" tableField_lnsi0v71['employeeField_lmeqk424'] = data['technician_id'][0] # 技术专家\n",
|
|
" tableField_lnsi0v71['textField_lmu0523h'] = \"自动派发回访计划\" # 状态备用\n",
|
|
" # 富文本 超链接 NGV\n",
|
|
" try:\n",
|
|
" form_data_ngv = read_instances_ngv(token=TOKEN, formUuid=\"FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91\", page=1, n=100, searchField={'textField_zc1iowp': data[\"orgCode\"]})\n",
|
|
" tableField_lnsi0v71['editorField_lodoplg0'] = [\"root\",{},[\"p\",{},[\"span\",{\"data-type\":\"text\"},[\"span\",{\"data-type\":\"leaf\"},\"\"]],[\"a\",{\"href\":\"https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/formDetail/FORM-ZK866D91O9LA4NIHCARG2DPIPCXF3Z087PPHL91?formInstId=\"+form_data_ngv['data'][0]['formInstanceId']+\"&isAdmin=true\"},[\"span\",{\"data-type\":\"text\"},[\"span\",{\"unlink\":{},\"data-type\":\"leaf\"},\"点击查看门店NGV\"]]],[\"span\",{\"data-type\":\"text\"},[\"span\",{\"unlink\":{},\"data-type\":\"leaf\"},\"\"]]]] # 富文本 超链接 NGV\n",
|
|
" except:\n",
|
|
" pass\n",
|
|
" # res=initiate_process(TOKEN,formUuid,processCode,tableField_lnsi0v71)\n",
|
|
" # print(res,tableField_lnsi0v71)"
|
|
]
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|