{ "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 = 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[['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)\n", " print(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 }