Files
jupyter/体测单位/东营羊庙.ipynb
T
2023-04-01 08:36:15 +00:00

1225 lines
39 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "f501bde1-90cb-40c4-9dd4-533c27f81be5",
"metadata": {
"tags": [],
"toc-hr-collapsed": true
},
"source": [
"# 调查报告线下数据管理"
]
},
{
"cell_type": "markdown",
"id": "ced4bf30-e7ea-4c4c-ae46-8720ffc07a76",
"metadata": {},
"source": [
"## 羊庙人员信息导入"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9b2b755e-049e-48c5-87d3-dd37dceb59fe",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import json\n",
"\n",
"filename = 'data/羊庙测试人员信息.json'\n",
"\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
"dict2 = {}\n",
"for k,v in dict1.items():\n",
" for item in v:\n",
" bh = item['avatar_id']\n",
" del item['avatar_id']\n",
" dict2[bh] = item\n",
"filename = 'data/羊庙人员名单.json'\n",
"with open(filename, 'w') as fl:\n",
" json.dump(dict2, fl, ensure_ascii=False,default=str)\n",
"print('ok')"
]
},
{
"cell_type": "markdown",
"id": "00e9f538-c0f5-46a0-b768-51480ad3fbaf",
"metadata": {},
"source": [
"## 获取参加体测人员编号"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d89e0e5e-0782-40a3-bba3-862cc9865d4e",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import json\n",
"import time\n",
"import csv\n",
"\n",
"filename = '../item.json'\n",
"item = {}\n",
"unit = {}\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
"for k,v in dict1.items():\n",
" item[k] = v\n",
"re_ta = {}\n",
"dict1 = {}\n",
"list1 = []\n",
"#print(\"\\n运动项目信息:\")\n",
"filename = 'data/140.csv'\n",
"with open(filename,'r',newline='') as csv_file:\n",
" fl = csv.reader(csv_file,delimiter=',')\n",
" header = next(fl) \n",
" for line in fl:\n",
" #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n",
" list1.append(line)\n",
"list2 = []\n",
"for result in list1:\n",
" user = int(result[2])\n",
" if user not in list2:\n",
" list2.append(user)\n",
"list2.sort()\n",
"print(len(list2))\n",
"print(list2)"
]
},
{
"cell_type": "markdown",
"id": "2c48f588-135a-4d1a-b01e-96222b70b987",
"metadata": {},
"source": [
"## 根据风险筛选统计卡获取信息"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e76837e8-cdf4-41e0-9d51-6ae5223de813",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openpyxl\n",
"import json\n",
"import time\n",
"\n",
"wb = openpyxl.load_workbook('data/杨庙运动风险筛查统计表.xlsx')\n",
"sheet = wb.active\n",
"person = {}\n",
"for n in range(2, sheet.max_row+1):\n",
" code = int(sheet.cell(n, 1).value)\n",
" person.setdefault(code, {})\n",
" dict1 = {}\n",
" if sheet.cell(n, 8).value is not None:\n",
" name = sheet.cell(n, 8).value\n",
" else:\n",
" name ='不详'\n",
" dict1['name'] = name\n",
" if sheet.cell(n, 9).value is not None:\n",
" dict1['birth'] = str(sheet.cell(n, 9).value).split(' ')[0]\n",
" if sheet.cell(n, 10).value is not None:\n",
" dict1['phone'] = str(sheet.cell(n, 10).value)\n",
" if sheet.cell(n,11).value is not None:\n",
" dict1['id_num'] = sheet.cell(n,11).value\n",
" person[code] = dict1\n",
"print(len(person))\n",
"filename = 'data/杨庙运动风险筛查统计表信息.json'\n",
"with open(filename, 'w') as fl:\n",
" json.dump(person, fl, ensure_ascii=False,default=str)\n",
"print('ok')"
]
},
{
"cell_type": "markdown",
"id": "6cc6b614-85e2-43fd-bc97-301fc776fe29",
"metadata": {},
"source": [
"## 根据恢复版获取信息"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1293cdaa-1fdf-43a5-99ce-a031a76f6688",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openpyxl\n",
"import json\n",
"import time\n",
"\n",
"wb = openpyxl.load_workbook('data/羊庙恢复版.xlsx')\n",
"sheet = wb.active\n",
"person = {}\n",
"for n in range(2, sheet.max_row+1):\n",
" if sheet.cell(n, 4).value is not None: \n",
" code = int(sheet.cell(n, 4).value)\n",
" person.setdefault(code, {})\n",
" dict1 = {}\n",
" name = sheet.cell(n, 5).value\n",
" dict1['name'] = name\n",
" dict1['bh'] = n - 1\n",
" dict1['sex'] = sheet.cell(n, 6).value\n",
" if sheet.cell(n, 9).value is not None:\n",
" dict1['phone'] = str(sheet.cell(n, 9).value)\n",
" if sheet.cell(n,8).value is not None:\n",
" dict1['id_num'] = sheet.cell(n,8).value\n",
" if sheet.cell(n,3).value is not None:\n",
" dict1['unit'] = sheet.cell(n,3).value\n",
" person[code] = dict1\n",
"print(len(person))\n",
"filename = 'data/杨庙恢复版信息.json'\n",
"with open(filename, 'w') as fl:\n",
" json.dump(person, fl, ensure_ascii=False,default=str)\n",
"print('ok')"
]
},
{
"cell_type": "markdown",
"id": "de1ce95b-4590-4eee-bd51-d37beabd6f87",
"metadata": {},
"source": [
"## 风险筛选统计卡可用人员信息"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f21fff31-0da6-4c1a-bf7c-8c4a1d4a3ecf",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"re_ta = {}\n",
"dict1 = {}\n",
"list1 = []\n",
"#print(\"\\n运动项目信息:\")\n",
"filename = 'data/140.csv'\n",
"with open(filename,'r',newline='') as csv_file:\n",
" fl = csv.reader(csv_file,delimiter=',')\n",
" header = next(fl) \n",
" for line in fl:\n",
" #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n",
" list1.append(line)\n",
"list2 = []\n",
"for result in list1:\n",
" user = int(result[2])\n",
" if user not in list2:\n",
" list2.append(user)\n",
"list2.sort()\n",
"set1 = set()\n",
"filename = 'data/杨庙恢复版信息.json'\n",
"with open(filename,'r') as fl:\n",
" dict_base = json.load(fl)\n",
"for k, v in dict_base.items():\n",
" set1.add(int(k))\n",
"filename = 'data/杨庙运动风险筛查统计表信息.json'\n",
"\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"list_fx = []\n",
"\n",
"for k,v in dict1.items():\n",
" \n",
" if int(k) in list2 and k not in dict_base.keys() and v['name'] != '不详': \n",
" set1.add(int(k))\n",
"#print(len(list_fx))\n",
"#print(len(set1)) \n",
"for item in list2:\n",
" if item not in set1:\n",
" print(item)"
]
},
{
"cell_type": "markdown",
"id": "b08187a6-41d9-40ec-bc62-d99969148fe7",
"metadata": {},
"source": [
"## 补充恢复版信息"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "50a5e0f9-3850-48ac-9f3a-f5a7be51a7fd",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"filename = 'data/杨庙恢复版信息.json'\n",
"with open(filename,'r') as fl:\n",
" dict_base = json.load(fl)\n",
"for k, v in dict_base.items():\n",
" set1.add(int(k))\n",
"filename = 'data/杨庙运动风险筛查统计表信息.json'\n",
"\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"for k,v in dict_base.items():\n",
" if k in dict1.keys() and 'phone' not in v.keys() and 'phone' in dict1[k].keys():\n",
" #print(k,v['name'])\n",
" dict_base[k]['phone'] = dict1[k]['phone']\n",
"\n",
"for k, v in dict1.items():\n",
" if int(k) in list2 and k not in dict_base.keys():\n",
" dict_base[k] = v\n",
" \n",
"print(len(dict_base))\n",
"#print(dict_base)\n",
"filename = 'data/羊庙人员名单.json'\n",
"with open(filename,'r') as fl:\n",
" dict2 = json.load(fl)\n",
"i = 1\n",
"for k, v in dict_base.items():\n",
" if 'bh' not in v.keys():\n",
" name = v['name']\n",
" n = 0\n",
" for k1,v1 in dict2.items():\n",
" if name == v1['name']:\n",
" bh = k1\n",
" n = n+1\n",
" if n ==1:\n",
" dict_base[k]['bh'] = bh\n",
" else:\n",
" print(i,k,v['name'])\n",
" i+=1\n",
"filename = 'data/杨庙补充汇总信息.json'\n",
"with open(filename, 'w') as fl:\n",
" json.dump(dict_base, fl, ensure_ascii=False,default=str)\n",
"print('ok')"
]
},
{
"cell_type": "markdown",
"id": "41c81dfc-ee3a-4934-8f02-077e3f07e5fc",
"metadata": {},
"source": [
"## 导出汇总信息"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1106fa5d-f0dd-4af4-bc39-7b106786b438",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"filename = 'data/杨庙补充汇总信息.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"list_item = ['name','bh','sex','phone','unit','id_num']\n",
"list_data = []\n",
"\n",
"for k, v in dict1.items():\n",
" list_mx = []\n",
" list_mx.append(k)\n",
" for item in list_item:\n",
" if item in v.keys():\n",
" list_mx.append(v[item])\n",
" else:\n",
" list_mx.append('')\n",
" list_data.append(list_mx)\n",
"#print(list_data) \n",
"filename = 'data/羊庙汇总情况表.xlsx'\n",
"wb = openpyxl.Workbook()\n",
"sheet = wb.active\n",
"#sheet.append(title)\n",
"for row in list_data:\n",
" sheet.append(row)\n",
" \n",
"wb.save(filename) \n",
"print('ok!')"
]
},
{
"cell_type": "markdown",
"id": "d31fa9b7-26d8-4101-94d1-f41723428aa9",
"metadata": {},
"source": [
"## 成年问卷导入"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dc20aabb-3942-49b9-8841-8e8a0823033a",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openpyxl\n",
"import json\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict2 = json.load(fl)\n",
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(成年组).xlsx')\n",
"sheet = wb.active\n",
"# sheets = wb.sheetnames\n",
"\n",
"dict1 = {}\n",
"no_xinli = [108,389,268,270]\n",
"sheet = wb.active\n",
"data1 =list(sheet.values)\n",
"list_bh = data1[0][1:]\n",
"del data1[0]\n",
"print(len(list_bh))\n",
"for i in range(1,len(list_bh)+1):\n",
" list2 = []\n",
" \n",
" for item in data1:\n",
" list2.append(item[i])\n",
" dict1[list_bh[i-1]] = list2\n",
"for k, v in dict1.items():\n",
" #if 0 in v:\n",
" # print(k)\n",
" if str(k) not in dict2.keys():\n",
" print(k,'不在清理名单中')\n",
"\n",
"#print(dict1)"
]
},
{
"cell_type": "markdown",
"id": "9a38f22b-6a8c-422f-a706-07382ccaceda",
"metadata": {},
"source": [
"## 成年问卷导出"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2c84736a-b6cc-43d6-9407-ead6300748a5",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openpyxl\n",
"import json\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict3 = json.load(fl)\n",
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(成年组).xlsx')\n",
"sheet = wb.active\n",
"# sheets = wb.sheetnames\n",
"dict1 = {}\n",
"list_bh = []\n",
"no_xinli = [108,389,268,270]\n",
"zy = [2,7,9,11,12,21,24]\n",
"sheet = wb.active\n",
"data1 =list(sheet.values)\n",
"list_bh = data1[0][1:]\n",
"del data1[0]\n",
"\n",
"\n",
"for i in range(1,len(list_bh)+1):\n",
" list2 = []\n",
" \n",
" for item in data1:\n",
" list2.append(item[i])\n",
" dict1[list_bh[i-1]] = list2\n",
"#print(dict1)\n",
"s = ''\n",
"for k,v in dict1.items():\n",
" if str(k) in dict3.keys(): \n",
" if dict3[str(k)]['sex'] ==1:\n",
" sex = \"m\"\n",
" else:\n",
" sex = \"f\"\n",
" dict2 = {}\n",
" list_mx = []\n",
" list_mx.append(f'\"Gender\":\"{sex}\"')\n",
" list_mx.append(f'\"Age\":\"M\"')\n",
" dict2['surveyId'] = \"merge1\"\n",
" dict2['name'] = dict3[str(k)]['name'] \n",
" name = dict3[str(k)]['name'] \n",
" dict2['code'] = str(k)\n",
" ss = ''\n",
" \n",
" if k not in no_xinli:\n",
" for i in range(0,47):\n",
" list_mx.append(f'\"q{i+1}M\":{v[i]}') \n",
" \n",
" for i in range(1,61):\n",
" if i not in zy:\n",
" list_mx.append(f'\"q{i}\":{v[46+i]}')\n",
" for i in range(1,27):\n",
" list_mx.append(f'\"qv{i}\":{v[106+i]}')\n",
" ss = ','.join(list_mx)\n",
" ss ='{'+ss+'}'\n",
" dict2['data'] = ss\n",
" sj = '2023-03-28 20:02:00'\n",
" s= s+f'(\"merge1\",\"{name}\",\"{str(k)}\",\\'{ss}\\',\"{sj}\"),'\n",
" #print(dict2)\n",
"print(s)"
]
},
{
"cell_type": "markdown",
"id": "75dda87e-804e-42ba-b1a4-08c8a8b65050",
"metadata": {},
"source": [
"## 老年问卷导入"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "09a354e6-a07a-40b8-9b8c-3499fb0b7c28",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openpyxl\n",
"import json\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict2 = json.load(fl)\n",
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(老年组).xlsx')\n",
"sheet = wb.active\n",
"# sheets = wb.sheetnames\n",
"dict1 = {}\n",
"dict3 = {}\n",
"no_xinli = [286]\n",
"sheet = wb.active\n",
"data1 =list(sheet.values)\n",
"list_bh = data1[0][1:]\n",
"print(list_bh)\n",
"del data1[0]\n",
"print(len(list_bh))\n",
"for i in range(1,len(list_bh)+1):\n",
" list2 = []\n",
" \n",
" for item in data1:\n",
" list2.append(item[i])\n",
" dict1[list_bh[i-1]] = list2\n",
"for k, v in dict1.items():\n",
" #if 0 in v or ' ' in v:\n",
" # print(k)\n",
" if str(k) not in dict2.keys():\n",
" print(k,'不在清理名单中')\n",
"#print(dict1)"
]
},
{
"cell_type": "markdown",
"id": "e2e311b1-7436-49e3-bf52-93c38f088be1",
"metadata": {},
"source": [
"## 老年问卷导出"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f41e130b-06e5-45ee-bf3d-cc25dfcc653d",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openpyxl\n",
"import json\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict3 = json.load(fl)\n",
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(老年组).xlsx')\n",
"sheet = wb.active\n",
"# sheets = wb.sheetnames\n",
"dict1 = {}\n",
"\n",
"no_xinli = [286]\n",
"sheet = wb.active\n",
"data1 =list(sheet.values)\n",
"list_bh = data1[0][1:]\n",
"#print(list_bh)\n",
"del data1[0]\n",
"\n",
"for i in range(1,len(list_bh)+1):\n",
" list2 = []\n",
" \n",
" for item in data1:\n",
" list2.append(item[i])\n",
" dict1[list_bh[i-1]] = list2\n",
"#print(dict1)\n",
"s = ''\n",
"for k,v in dict1.items():\n",
" if str(k) in dict3.keys(): \n",
" if dict3[str(k)]['sex'] ==1:\n",
" sex = \"m\"\n",
" else:\n",
" sex = \"f\"\n",
" dict2 = {}\n",
" list_mx = []\n",
" list_mx.append(f'\"Gender\":\"{sex}\"')\n",
" list_mx.append(f'\"Age\":\"O\"')\n",
" dict2['surveyId'] = \"merge1\"\n",
" dict2['name'] = dict3[str(k)]['name'] \n",
" dict2['code'] = str(k) \n",
" name = dict3[str(k)]['name'] \n",
" if k not in no_xinli:\n",
" for i in range(0,30):\n",
" list_mx.append(f'\"q{i+1}O\":{v[i]}') \n",
" \n",
" for i in range(1,61):\n",
" if i not in zy:\n",
" list_mx.append(f'\"q{i}\":{v[29+i]}')\n",
" for i in range(1,27):\n",
" list_mx.append(f'\"qv{i}\":{v[89+i]}')\n",
" ss = ','.join(list_mx)\n",
" ss ='{'+ss+'}'\n",
" dict2['data'] = ss\n",
" sj = '2023-03-28 20:02:00'\n",
" s= s+f'(\"merge1\",\"{name}\",\"{str(k)}\",\\'{ss}\\',\"{sj}\"),'\n",
" #print(dict2)\n",
"print(s)"
]
},
{
"cell_type": "markdown",
"id": "3262d713-92a4-4790-81a3-976ff308ee3d",
"metadata": {},
"source": [
"## 统计网络问卷信息"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "08980670-fda9-4660-a619-2f5f5ed8d334",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"filename = 'data/merge1.json'\n",
"\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"#print(dict1)\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict2 = json.load(fl)\n",
"dict3 = {}\n",
"for k, v in dict1.items():\n",
" print(len(v))\n",
" for item in v:\n",
" phone = item['phone']\n",
" dict3.setdefault(phone,{})\n",
" #dict3[phone]['data'] = v['data']\n",
" for k1,v1 in dict2.items():\n",
" if 'phone' in v1.keys() and phone == v1['phone']:\n",
" dict3[phone]['bh'] = k1\n",
"print(dict3)\n",
"for k, v in dict2.items():\n",
" for k1, v1 in dict2.items():\n",
" \n",
" if 'bh' not in v.keys():\n",
" print(k)"
]
},
{
"cell_type": "markdown",
"id": "e06b0149-c1ff-4fd0-b692-1be391433f40",
"metadata": {},
"source": [
"# 按照测试编号管理"
]
},
{
"cell_type": "markdown",
"id": "54c8e75c-6d3a-4b0d-91a1-c5e9e79a119f",
"metadata": {},
"source": [
"## 导入测试人员信息表(符合条件)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b51b73fa-97fa-473c-ab8a-d1fd958eb52a",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openpyxl\n",
"import json\n",
"import time\n",
"\n",
"wb = openpyxl.load_workbook('data/杨庙体测明确人员信息表(20230328).xlsx')\n",
"sheet = wb.active\n",
"person = {}\n",
"for n in range(2, sheet.max_row+1):\n",
" code = int(sheet.cell(n, 1).value)\n",
" person.setdefault(code, {})\n",
" dict1 = {}\n",
" name = sheet.cell(n, 2).value \n",
" dict1['name'] = name\n",
" dict1['sex'] = sheet.cell(n, 3).value\n",
" dict1['birth'] = str(sheet.cell(n, 4).value).split(' ')[0]\n",
" if sheet.cell(n, 5).value is not None:\n",
" dict1['phone'] = str(sheet.cell(n, 5).value)\n",
" if sheet.cell(n,6).value is not None:\n",
" dict1['unit'] = sheet.cell(n,6).value \n",
" person[code] = dict1\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename, 'w') as fl:\n",
" json.dump(person, fl, ensure_ascii=False,default=str)\n",
"print('ok')"
]
},
{
"cell_type": "markdown",
"id": "cc0c1a86-e15f-43e9-99e9-140aed8475bf",
"metadata": {},
"source": [
"## 体测报告更名按部门分组"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ac3bb674-77e2-4edb-aae7-7b589c8d9b5a",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import os,sys,shutil\n",
"import json\n",
"import math\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"old = []\n",
"depart = []\n",
"for k, v in dict1.items():\n",
" m_depart = v['unit']\n",
" if m_depart not in depart:\n",
" depart.append(m_depart)\n",
" \n",
"fi_path = '/data/pdf/ydyb/140/2023-03-29'\n",
"\n",
"\n",
"# 创建部门办公室 \n",
"m_path = 'file/140'\n",
"for pn in depart:\n",
" if not os.path.exists(m_path + '/' + pn):\n",
" os.mkdir(m_path + '/' + pn)\n",
"fl=os.listdir(fi_path)\n",
"for fn in fl:\n",
" if os.path.isfile(fi_path + '/' + fn):\n",
" ofn = int(fn.split('.')[0])\n",
" old.append(ofn) \n",
"old.sort()\n",
"for n in old: \n",
" o_name = f'{fi_path}/{n}.pdf'\n",
" unit = dict1[str(n)]['unit']\n",
" name = dict1[str(n)]['name']\n",
" n_name = f'{m_path}/{unit}/{str(n).rjust(5,\"0\")}-{name}.pdf'\n",
" #print(o_name,n_name)\n",
" if not os.path.exists(n_name):\n",
" shutil.copyfile(o_name,n_name)\n",
" print(n_name)"
]
},
{
"cell_type": "markdown",
"id": "a1e61c81-d63b-4089-8d79-f05b4a7a35e2",
"metadata": {},
"source": [
"## 生成体检报告情况表"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b1ff81f5-a8fa-4cea-9158-f80bccbf1494",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import os,sys,shutil\n",
"import openpyxl\n",
"import json\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"old = []\n",
"depart = []\n",
"for k, v in dict1.items():\n",
" m_depart = v['unit']\n",
" if m_depart not in depart:\n",
" depart.append(m_depart)\n",
" \n",
"fi_path = '/data/pdf/ydyb/140/2023-03-29'\n",
"fl=os.listdir(fi_path)\n",
"for fn in fl:\n",
" if os.path.isfile(fi_path + '/' + fn):\n",
" ofn = int(fn.split('.')[0])\n",
" old.append(ofn) \n",
"old.sort()\n",
"list1 = []\n",
"for n in old:\n",
" list2 =[]\n",
" unit = dict1[str(n)]['unit']\n",
" name = dict1[str(n)]['name']\n",
" list2 = [str(n).rjust(5,\"0\"),name,unit]\n",
" list1.append(list2)\n",
"\n",
"filename = 'data/杨庙体测报告明细表.xlsx'\n",
"wb = openpyxl.Workbook()\n",
"sheet = wb.active\n",
"title = ['体测编号','姓名','单位']\n",
"sheet.append(title)\n",
"for row in list1:\n",
" sheet.append(row)\n",
" \n",
"wb.save(filename) \n",
"print('ok!')"
]
},
{
"cell_type": "markdown",
"id": "791d2bce-3183-4405-b41a-4da8df6f5567",
"metadata": {},
"source": [
"## 生成脊柱问卷信息表"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "78109eb9-9c40-4289-b358-a68e64bb3361",
"metadata": {
"execution": {
"iopub.execute_input": "2023-03-31T02:43:16.189320Z",
"iopub.status.busy": "2023-03-31T02:43:16.188583Z",
"iopub.status.idle": "2023-03-31T02:43:16.366939Z",
"shell.execute_reply": "2023-03-31T02:43:16.366217Z",
"shell.execute_reply.started": "2023-03-31T02:43:16.189279Z"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ok!\n"
]
}
],
"source": [
"import json\n",
"import pymysql\n",
"import openpyxl\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"#print(dict1)\n",
"xm = ['qv1','qv2','qv3','qv4','qv5','qv6','qv7','qv8','qv9','qv10','qv11','qv12','qv13','qv14','qv15','qv16','qv17','qv18','qv19','qv20','qv21','qv22','qv23','qv24','qv25','qv26']\n",
"title = ['编号','姓名','性别']\n",
"for item in xm:\n",
" title.append(item)\n",
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
"cursor = db.cursor()\n",
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
"cursor.execute(sql)\n",
"results = cursor.fetchall()\n",
"list2 =[]\n",
"for result in results: \n",
" c=json.loads(result[3])\n",
" if result[2] is None:\n",
" phone = result[0]\n",
" for k,v in dict1.items():\n",
" if 'phone' in v.keys() and phone ==v['phone']:\n",
" list1 = []\n",
" code = k\n",
" name = v['name']\n",
" list1.append(code)\n",
" list1.append(name)\n",
" list1.append(v['sex'])\n",
" for item in xm:\n",
" if item in c.keys():\n",
" list1.append(c[item])\n",
" else:\n",
" list1.append('')\n",
" list2.append(list1)\n",
" else:\n",
" list1 = []\n",
" code = result[2]\n",
" name = result[1]\n",
" list1.append(code)\n",
" list1.append(name)\n",
" list1.append(v['sex'])\n",
" for item in xm:\n",
" if item in c.keys():\n",
" list1.append(c[item])\n",
" else:\n",
" list1.append('') \n",
" list2.append(list1)\n",
"filename = 'data/杨庙脊柱问卷明细表.xlsx'\n",
"wb = openpyxl.Workbook()\n",
"sheet = wb.active\n",
"sheet.append(title)\n",
"for row in list2:\n",
" sheet.append(row)\n",
" \n",
"wb.save(filename) \n",
"print('ok!') "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8a641c17-f628-4f5f-94bb-de95e0c40286",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import json\n",
"import pymysql\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"#print(dict1)\n",
"xm = ['qv1','qv2','qv3','qv4','qv5','qv6','qv7','qv8','qv9','qv10','qv11','qv12','qv13','qv14','qv15','qv16','qv17','qv18','qv19','qv20','qv21','qv22','qv23','qv24','qv25','qv26']\n",
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
"cursor = db.cursor()\n",
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
"cursor.execute(sql)\n",
"results = cursor.fetchall()\n",
"for result in results:\n",
" c=json.loads(result[3])\n",
" print(c, type(c))"
]
},
{
"cell_type": "markdown",
"id": "beb22a32-ae9b-4602-bf1a-30b8e243ea1f",
"metadata": {},
"source": [
"## 查询中年组心理测评人员"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "ce028da4-2cb1-4ee2-b7f3-6f3cfcda1851",
"metadata": {
"execution": {
"iopub.execute_input": "2023-04-01T06:57:41.564443Z",
"iopub.status.busy": "2023-04-01T06:57:41.563561Z",
"iopub.status.idle": "2023-04-01T06:57:41.638569Z",
"shell.execute_reply": "2023-04-01T06:57:41.637601Z",
"shell.execute_reply.started": "2023-04-01T06:57:41.564398Z"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ok!\n"
]
}
],
"source": [
"import json\n",
"import pymysql\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"#print(dict1)\n",
"xm = ['qv1','qv2','qv3','qv4','qv5','qv6','qv7','qv8','qv9','qv10','qv11','qv12','qv13','qv14','qv15','qv16','qv17','qv18','qv19','qv20','qv21','qv22','qv23','qv24','qv25','qv26']\n",
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
"cursor = db.cursor()\n",
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
"cursor.execute(sql)\n",
"results = cursor.fetchall()\n",
"list2 =[]\n",
"for result in results:\n",
" c=json.loads(result[3])\n",
" if 'q1M' in c.keys():\n",
" if result[2] is None:\n",
" phone = result[0]\n",
" for k,v in dict1.items():\n",
" if 'phone' in v.keys() and phone ==v['phone']:\n",
" list1 = []\n",
" code = k\n",
" name = v['name']\n",
" list1.append(code)\n",
" list1.append(name)\n",
" list1.append(v['sex'])\n",
" list1.append(v['birth'])\n",
" list1.append(v['unit'])\n",
" list2.append(list1)\n",
" else:\n",
" list1 = []\n",
" code = result[2]\n",
" name = result[1]\n",
" list1.append(code)\n",
" list1.append(name)\n",
" list1.append(dict1[code]['sex'])\n",
" list1.append(dict1[code]['birth'])\n",
" list1.append(dict1[code]['unit'])\n",
" \n",
" list2.append(list1)\n",
"filename = 'data/杨庙心理问卷成年组人员明细表.xlsx'\n",
"wb = openpyxl.Workbook()\n",
"sheet = wb.active\n",
"#sheet.append(title)\n",
"for row in list2:\n",
" sheet.append(row)\n",
" \n",
"wb.save(filename) \n",
"print('ok!') "
]
},
{
"cell_type": "markdown",
"id": "be6e17d8-7687-422c-994d-35afd014aee6",
"metadata": {},
"source": [
"## 成年人心理问卷体测报告更名按部门分组"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "e24a046e-77cd-4df2-af89-733d718ce543",
"metadata": {
"execution": {
"iopub.execute_input": "2023-04-01T08:19:19.843498Z",
"iopub.status.busy": "2023-04-01T08:19:19.842647Z",
"iopub.status.idle": "2023-04-01T08:19:20.066358Z",
"shell.execute_reply": "2023-04-01T08:19:20.065345Z",
"shell.execute_reply.started": "2023-04-01T08:19:19.843458Z"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"file/140wenjuan/罗盖村/00010-盖会存.pdf\n",
"file/140wenjuan/北范村/00022-李同艳.pdf\n",
"file/140wenjuan/南范村/00027-张霞.pdf\n",
"file/140wenjuan/小街村/00028-盖玉娥.pdf\n",
"file/140wenjuan/小街村/00032-李梅.pdf\n",
"file/140wenjuan/罗盖村/00044-盖明月.pdf\n",
"file/140wenjuan/西韩村/00045-韩健康.pdf\n",
"file/140wenjuan/杨庙村/00046-蒋梅.pdf\n",
"file/140wenjuan/小街村/00051-王荣华.pdf\n",
"file/140wenjuan/东范村/00054-孙汉章.pdf\n",
"file/140wenjuan/南范村/00058-程大英.pdf\n",
"file/140wenjuan/未明确/00060-盖景华.pdf\n",
"file/140wenjuan/小街村/00061-薄遵兰.pdf\n",
"file/140wenjuan/未明确/00062-吕吉刚.pdf\n",
"file/140wenjuan/南范村/00063-王长征.pdf\n",
"file/140wenjuan/未明确/00064-刘小凤.pdf\n",
"file/140wenjuan/未明确/00065-许秀风.pdf\n",
"file/140wenjuan/杨庙村/00066-刘小玉.pdf\n",
"file/140wenjuan/杨庙村/00068-杨恩.pdf\n",
"file/140wenjuan/罗盖村/00069-臧小麦.pdf\n",
"file/140wenjuan/罗盖村/00070-陈秀玙.pdf\n",
"file/140wenjuan/南范村/00071-李爱花.pdf\n",
"file/140wenjuan/东范村/00072-张芳.pdf\n",
"file/140wenjuan/北范村/00078-赵收良.pdf\n",
"file/140wenjuan/东范村/00084-刘忠华.pdf\n",
"file/140wenjuan/西韩村/00091-刘学云.pdf\n",
"file/140wenjuan/杨庙村/00092-王六好.pdf\n",
"file/140wenjuan/北范村/00097-黄爱勇.pdf\n",
"file/140wenjuan/未明确/00099-周洪新.pdf\n",
"file/140wenjuan/西韩村/00104-刘云翠.pdf\n",
"file/140wenjuan/杨庙村/00107-程国利.pdf\n",
"file/140wenjuan/罗盖村/00113-程汝枝.pdf\n",
"file/140wenjuan/东范村/00127-孙小芹.pdf\n",
"file/140wenjuan/北范村/00132-崔新军.pdf\n",
"file/140wenjuan/未明确/00134-张荣俊.pdf\n",
"file/140wenjuan/未明确/00145-裴建美.pdf\n",
"file/140wenjuan/东范村/00146-张淑平.pdf\n",
"file/140wenjuan/未明确/00147-王海方.pdf\n",
"file/140wenjuan/未明确/00148-冯静静.pdf\n",
"file/140wenjuan/未明确/00149-盖梦娜.pdf\n",
"file/140wenjuan/新李村/00155-程好.pdf\n",
"file/140wenjuan/杨庙村/00156-李志娟.pdf\n",
"file/140wenjuan/前许村/00173-程兰兰.pdf\n",
"file/140wenjuan/宋王村/00174-程芳斌.pdf\n",
"file/140wenjuan/东范村/00177-胡环环.pdf\n",
"file/140wenjuan/南范村/00178-马翠苹.pdf\n",
"file/140wenjuan/新李村/00180-程秀芹.pdf\n",
"file/140wenjuan/杨庙村/00181-程云.pdf\n",
"file/140wenjuan/宋王村/00185-李新美.pdf\n",
"file/140wenjuan/后许村/00191-李建栋.pdf\n",
"file/140wenjuan/小街村/00193-樊风贤.pdf\n",
"file/140wenjuan/未明确/00200-李勇军.pdf\n",
"file/140wenjuan/罗盖村/00201-崔云花.pdf\n",
"file/140wenjuan/未明确/00208-王小冬.pdf\n",
"file/140wenjuan/未明确/00213-张金宗.pdf\n",
"file/140wenjuan/罗盖村/00217-刘学荣.pdf\n",
"file/140wenjuan/北范村/00240-赵小华.pdf\n",
"file/140wenjuan/小街村/00245-刘维康.pdf\n",
"file/140wenjuan/宋王村/00248-王联军.pdf\n",
"file/140wenjuan/小街村/00250-裴双双.pdf\n",
"file/140wenjuan/罗盖村/00251-高继梅.pdf\n",
"file/140wenjuan/罗盖村/00253-盖秀香.pdf\n",
"file/140wenjuan/罗盖村/00263-罗增海.pdf\n",
"file/140wenjuan/宋王村/00266-程友海.pdf\n",
"file/140wenjuan/罗盖村/00278-盖玉海.pdf\n",
"file/140wenjuan/小街村/00279-周立美.pdf\n",
"file/140wenjuan/杨庙村/00287-程新利.pdf\n",
"file/140wenjuan/罗盖村/00292-盖树强.pdf\n",
"file/140wenjuan/罗盖村/00295-程建美.pdf\n",
"file/140wenjuan/南范村/00303-王玉枝.pdf\n",
"file/140wenjuan/未明确/00313-王祝娥.pdf\n",
"file/140wenjuan/新李村/00315-盖学忠.pdf\n",
"file/140wenjuan/罗盖村/00319-张学敏.pdf\n",
"file/140wenjuan/罗盖村/00320-盖引.pdf\n",
"file/140wenjuan/前许村/00342-许建峰.pdf\n",
"file/140wenjuan/未明确/00347-刘慧丽.pdf\n",
"file/140wenjuan/南范村/00358-史景霞.pdf\n",
"file/140wenjuan/小街村/00360-刘德收.pdf\n",
"file/140wenjuan/宋王村/00361-张玉环.pdf\n",
"file/140wenjuan/宋王村/00370-张英.pdf\n",
"file/140wenjuan/前许村/00374-李其珍.pdf\n",
"file/140wenjuan/新李村/00381-张玉香.pdf\n",
"file/140wenjuan/未明确/00383-张向明.pdf\n",
"file/140wenjuan/东范村/00402-张立业.pdf\n",
"file/140wenjuan/北范村/00404-何大英.pdf\n",
"file/140wenjuan/前许村/00411-许广新.pdf\n",
"file/140wenjuan/宋王村/00412-程海峰.pdf\n",
"file/140wenjuan/罗盖村/00414-李梅.pdf\n",
"file/140wenjuan/南范村/00417-张玉娟.pdf\n",
"file/140wenjuan/东范村/00420-马燕辉.pdf\n",
"file/140wenjuan/小街村/00421-刘云霄.pdf\n",
"file/140wenjuan/东范村/00423-崔云卿.pdf\n",
"file/140wenjuan/南范村/00427-高俊臣.pdf\n",
"file/140wenjuan/宋王村/00429-董丽娜.pdf\n",
"file/140wenjuan/宋王村/00433-程军花.pdf\n",
"file/140wenjuan/北范村/00434-王保芹.pdf\n",
"file/140wenjuan/小街村/00435-崔娟.pdf\n",
"file/140wenjuan/小街村/00437-刘华训.pdf\n",
"file/140wenjuan/未明确/06000-车呈淼.pdf\n",
"file/140wenjuan/未明确/06001-苏莎莎.pdf\n",
"file/140wenjuan/未明确/98765-张红霞.pdf\n"
]
}
],
"source": [
"import os,sys,shutil\n",
"import json\n",
"import math\n",
"\n",
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"old = []\n",
"depart = []\n",
"wb = openpyxl.load_workbook('data/杨庙心理问卷成年组人员明细表.xlsx')\n",
"sheet = wb.active\n",
"# sheets = wb.sheetnames\n",
"\n",
"list_bh = []\n",
"\n",
"for n in range(1,sheet.max_row+1):\n",
" list_bh.append(int(sheet.cell(n, 1).value)) \n",
" m_depart = sheet.cell(n, 5).value\n",
" if m_depart not in depart:\n",
" depart.append(m_depart)\n",
" \n",
"fi_path = '/data/pdf/ydyb/140/2023-04-01'\n",
"\n",
"\n",
"# 创建部门办公室 \n",
"m_path = 'file/140wenjuan'\n",
"for pn in depart:\n",
" if not os.path.exists(m_path + '/' + pn):\n",
" os.mkdir(m_path + '/' + pn)\n",
"fl=os.listdir(fi_path)\n",
"for fn in fl:\n",
" if os.path.isfile(fi_path + '/' + fn):\n",
" ofn = int(fn.split('.')[0])\n",
" if ofn in list_bh:\n",
" old.append(ofn) \n",
"old.sort()\n",
"for n in old: \n",
" o_name = f'{fi_path}/{n}.pdf'\n",
" unit = dict1[str(n)]['unit']\n",
" name = dict1[str(n)]['name']\n",
" n_name = f'{m_path}/{unit}/{str(n).rjust(5,\"0\")}-{name}.pdf'\n",
" #print(o_name,n_name)\n",
" if not os.path.exists(n_name):\n",
" shutil.copyfile(o_name,n_name)\n",
" print(n_name)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5c6d5e6c-a8a6-457d-979c-3e990bdecc54",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}