diff --git a/体质检测管理.ipynb b/体质检测管理.ipynb index 7907d6b..5522c9c 100644 --- a/体质检测管理.ipynb +++ b/体质检测管理.ipynb @@ -28,27 +28,12 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "c5a0568c-3833-4335-a4b9-600310e1a541", "metadata": { - "execution": { - "iopub.execute_input": "2021-12-20T15:03:53.393723Z", - "iopub.status.busy": "2021-12-20T15:03:53.392359Z", - "iopub.status.idle": "2021-12-20T15:03:59.153479Z", - "shell.execute_reply": "2021-12-20T15:03:59.150287Z", - "shell.execute_reply.started": "2021-12-20T15:03:53.393462Z" - }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "该单位已存在!\n" - ] - } - ], + "outputs": [], "source": [ "import openpyxl\n", "import json\n", @@ -83,6 +68,54 @@ " print('该单位已存在!')" ] }, + { + "cell_type": "markdown", + "id": "944372ff-9dc1-47e0-bfc0-a7d783fa9f43", + "metadata": {}, + "source": [ + "### 石家庄炼化信息导入" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da3ded8a-d958-4aa7-be79-6c28a009b7cf", + "metadata": {}, + "outputs": [], + "source": [ + "import openpyxl\n", + "import json\n", + "import pymongo\n", + "\n", + "myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n", + "mydb = myclient[\"tice\"]\n", + "mycol = mydb[\"unit\"]\n", + "\n", + "name = '中国石油化工股份有限公司石家庄炼化分公司'\n", + "short_name = '石家庄炼化'\n", + "myquery = {\"name\": name}\n", + "if mycol.find_one(myquery) is None:\n", + " wb = openpyxl.load_workbook('data/中国石油化工股份有限公司安庆炼化分公司员工在职人员名单.xlsx')\n", + " sheet = wb.active\n", + " # sheets = wb.sheetnames\n", + " depart = []\n", + " dict1 = {}\n", + " new_code = []\n", + " for n in range(2, sheet.max_row+1):\n", + " m_depart = sheet.cell(n,5).value\n", + " if m_depart not in depart:\n", + " depart.append(sheet.cell(n,5).value)\n", + " # print(sheet.cell(n,5).value)\n", + "\n", + " dict1['name'] = '中国石油化工股份有限公司安庆炼化分公司'\n", + " dict1['short_name'] = '安庆炼化'\n", + " dict1['depart'] = depart\n", + " mycol.insert_one(dict1)\n", + " print('ok!')\n", + "else:\n", + " print('该单位已存在!')" + ] + }, { "cell_type": "markdown", "id": "bf42e8af-a506-4e60-a661-b4281e3fef54", @@ -120,9 +153,9 @@ "if mycol.find_one(myquery) is None:\n", " print('体测单位不存在!')\n", "else:\n", - " myquery1 = {\"code\": dict1['code']}\n", - " if mycol1.find_one(myquery1) is None:\n", - " mycol1.insert_one(dict1)\n", + " myquery1 = {\"name\": name,\"event.code\": dict1['code']}\n", + " if mycol.find_one(myquery1) is None:\n", + " mycol.update_one(myquery,{'$push':{'event':dict1}})\n", " print('ok!')\n", " else:\n", " print('该体测信息已经存在!')" @@ -189,7 +222,7 @@ { "cell_type": "code", "execution_count": null, - "id": "82e1b982-3c88-4f01-ad94-49177c4a46f6", + "id": "8ca8289e-b6b0-4b73-a788-1dd20592981f", "metadata": { "tags": [] }, @@ -198,6 +231,7 @@ "import json\n", "import pymongo\n", "from bson.objectid import ObjectId\n", + "import pymysql\n", "\n", "myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n", "mydb = myclient[\"tice\"]\n", @@ -239,11 +273,12 @@ " s = v['id_num']\n", " dict2['id_num'] = s\n", " dict2['birth'] = f'{s[6:10]}-{s[10:12]}-{s[12:14]}'\n", - " dict2.setdefault('exam',[])\n", - " dict3['code'] = 120\n", + " dict2.setdefault('exam',{})\n", + " \n", + " #dict3['code'] = 120\n", " dict3['sn'] = k\n", " dict3['result'] = res[k]\n", - " dict2['exam'].append(dict3)\n", + " dict2['exam'][str(place_id)] = dict3\n", " list1.append(dict2)\n", "x = mycol.insert_many(list1)\n", "mycol1 = mydb[\"event\"]\n", @@ -651,19 +686,20 @@ "\n", "myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n", "mydb = myclient[\"tice\"]\n", - "mycol = mydb[\"event\"]\n", - "\n", + "mycol = mydb[\"person\"]\n", + "#体质监测编号\n", + "code = '120'\n", "UploadCache = \"uploadcache\"\n", "dbURL = \"mongodb://localhost:27017\"\n", "\n", "#上传文件\n", "def upLoadFile(file_coll,file_name,data_link):\n", " \n", - " filter_condition = {\"filename\": os.path.basename(file_name), \"url\": data_link}\n", + " filter_condition = {\"filename\": code + '-' + os.path.basename(file_name), \"url\": data_link}\n", " gridfs_col = GridFS(mydb, collection=file_coll)\n", " file_ = \"0\"\n", " query = {\"filename\":\"\"}\n", - " query[\"filename\"] = file_name\n", + " query[\"filename\"] = filter_condition[\"filename\"]#file_name\n", "\n", " if gridfs_col.exists(query):\n", " print('已经存在该文件')\n", @@ -686,13 +722,15 @@ "fl=glob.glob(f'{fl_path}/*.pdf')\n", "fl.sort()\n", "for fi in fl:\n", + " dict1 = {}\n", " s = os.path.basename(fi).split('.')[0]\n", - " #print(s) \n", - " dict1[s] = upLoadFile(\"report\",fi,\"\")\n", + " print(s) \n", + " ss = upLoadFile(\"report\",fi,\"\")\n", " \n", " print(s)\n", - "myquery = {'code':120}\n", - "mycol.update_one(myquery,{'$set':{'report':dict1}})\n", + " myquery = {f'exam.{code}.sn':s}\n", + " mycol.update_one(myquery,{'$set':{f'exam.{code}.report':ss}},True)\n", + " #print(myquery)\n", " \n" ] }, @@ -932,61 +970,12 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "id": "908302d5-252d-403e-80e5-fdc0694061b8", "metadata": { - "execution": { - "iopub.execute_input": "2021-11-11T16:12:18.851377Z", - "iopub.status.busy": "2021-11-11T16:12:18.850161Z", - "iopub.status.idle": "2021-11-11T16:12:19.606841Z", - "shell.execute_reply": "2021-11-11T16:12:19.604194Z", - "shell.execute_reply.started": "2021-11-11T16:12:18.851271Z" - }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'0000': '0个症状', '1000': '仅有颈椎问题', '0100': '仅有胸椎问题', '0010': '仅有腰椎问题', '0001': '仅有骶尾椎问题', '1100': '颈椎问题+胸椎问题', '1010': '颈椎问题+腰椎问题', '1001': '颈椎问题+骶尾椎问题', '0110': '胸椎问题+腰椎问题', '0101': '胸椎问题+骶尾椎问题', '0011': '腰椎问题+骶尾椎问题', '1110': '颈椎问题+胸椎问题+腰椎问题', '1101': '颈椎问题+胸椎问题+骶尾椎问题', '0111': '胸椎问题+腰椎问题+骶尾椎问题', '1011': '颈椎问题+腰椎问题+骶尾椎问题', '1111': '颈椎问题+胸椎问题+腰椎问题+骶尾椎问题'}\n", - "管理部门\n", - "0个症状 男 16 女 3\n", - "仅有颈椎问题 男 15 女 1\n", - "仅有胸椎问题 男 1 女 1\n", - "仅有腰椎问题 男 5 女 2\n", - "仅有骶尾椎问题 男 0 女 2\n", - "颈椎问题+胸椎问题 男 6 女 2\n", - "颈椎问题+腰椎问题 男 6 女 7\n", - "颈椎问题+骶尾椎问题 男 1 女 1\n", - "胸椎问题+腰椎问题 男 1 女 1\n", - "胸椎问题+骶尾椎问题 男 0 女 0\n", - "腰椎问题+骶尾椎问题 男 1 女 0\n", - "颈椎问题+胸椎问题+腰椎问题 男 10 女 4\n", - "颈椎问题+胸椎问题+骶尾椎问题 男 1 女 0\n", - "胸椎问题+腰椎问题+骶尾椎问题 男 1 女 1\n", - "颈椎问题+腰椎问题+骶尾椎问题 男 2 女 3\n", - "颈椎问题+胸椎问题+腰椎问题+骶尾椎问题 男 5 女 6\n", - "一线部门\n", - "0个症状 男 71 女 13\n", - "仅有颈椎问题 男 68 女 8\n", - "仅有胸椎问题 男 7 女 6\n", - "仅有腰椎问题 男 11 女 6\n", - "仅有骶尾椎问题 男 3 女 1\n", - "颈椎问题+胸椎问题 男 30 女 4\n", - "颈椎问题+腰椎问题 男 34 女 13\n", - "颈椎问题+骶尾椎问题 男 3 女 4\n", - "胸椎问题+腰椎问题 男 11 女 4\n", - "胸椎问题+骶尾椎问题 男 2 女 1\n", - "腰椎问题+骶尾椎问题 男 2 女 3\n", - "颈椎问题+胸椎问题+腰椎问题 男 65 女 14\n", - "颈椎问题+胸椎问题+骶尾椎问题 男 5 女 2\n", - "胸椎问题+腰椎问题+骶尾椎问题 男 0 女 0\n", - "颈椎问题+腰椎问题+骶尾椎问题 男 4 女 3\n", - "颈椎问题+胸椎问题+腰椎问题+骶尾椎问题 男 28 女 12\n" - ] - } - ], + "outputs": [], "source": [ "import json\n", "import openpyxl\n", @@ -1101,60 +1090,12 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "664507fd-6f9c-44fd-8939-6d743e47cb81", "metadata": { - "execution": { - "iopub.execute_input": "2021-11-11T14:56:40.750048Z", - "iopub.status.busy": "2021-11-11T14:56:40.748746Z", - "iopub.status.idle": "2021-11-11T14:56:41.415136Z", - "shell.execute_reply": "2021-11-11T14:56:41.413161Z", - "shell.execute_reply.started": "2021-11-11T14:56:40.749937Z" - }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'0000': '0个症状', '1000': '仅有颈椎问题', '0100': '仅有胸椎问题', '0010': '仅有腰椎问题', '0001': '仅有骶尾椎问题', '1100': '颈椎问题+胸椎问题', '1010': '颈椎问题+腰椎问题', '1001': '颈椎问题+骶尾椎问题', '0110': '胸椎问题+腰椎问题', '0101': '胸椎问题+骶尾椎问题', '0011': '腰椎问题+骶尾椎问题', '1110': '颈椎问题+胸椎问题+腰椎问题', '1101': '颈椎问题+胸椎问题+骶尾椎问题', '0111': '胸椎问题+腰椎问题+骶尾椎问题', '1011': '颈椎问题+腰椎问题+骶尾椎问题', '1111': '颈椎问题+胸椎问题+腰椎问题+骶尾椎问题'}\n", - "{'一线部门': {'1111': 40, '0110': 15, '1110': 79, '1010': 47, '1100': 34, '0000': 84, '0010': 17, '1011': 7, '1000': 76, '0001': 4, '1101': 7, '0100': 13, '1001': 7, '0011': 5, '0101': 3}, '管理部门': {'1000': 16, '1110': 14, '1011': 5, '0001': 2, '1111': 11, '1100': 8, '0110': 2, '0000': 19, '0010': 7, '1010': 13, '0011': 1, '1001': 2, '1101': 1, '0111': 2, '0100': 2}}\n", - "一线部门\n", - "0个症状 84\n", - "仅有颈椎问题 76\n", - "仅有胸椎问题 13\n", - "仅有腰椎问题 17\n", - "仅有骶尾椎问题 4\n", - "颈椎问题+胸椎问题 34\n", - "颈椎问题+腰椎问题 47\n", - "颈椎问题+骶尾椎问题 7\n", - "胸椎问题+腰椎问题 15\n", - "胸椎问题+骶尾椎问题 3\n", - "腰椎问题+骶尾椎问题 5\n", - "颈椎问题+胸椎问题+腰椎问题 79\n", - "颈椎问题+胸椎问题+骶尾椎问题 7\n", - "颈椎问题+腰椎问题+骶尾椎问题 7\n", - "颈椎问题+胸椎问题+腰椎问题+骶尾椎问题 40\n", - "管理部门\n", - "0个症状 19\n", - "仅有颈椎问题 16\n", - "仅有胸椎问题 2\n", - "仅有腰椎问题 7\n", - "仅有骶尾椎问题 2\n", - "颈椎问题+胸椎问题 8\n", - "颈椎问题+腰椎问题 13\n", - "颈椎问题+骶尾椎问题 2\n", - "胸椎问题+腰椎问题 2\n", - "腰椎问题+骶尾椎问题 1\n", - "颈椎问题+胸椎问题+腰椎问题 14\n", - "颈椎问题+胸椎问题+骶尾椎问题 1\n", - "胸椎问题+腰椎问题+骶尾椎问题 2\n", - "颈椎问题+腰椎问题+骶尾椎问题 5\n", - "颈椎问题+胸椎问题+腰椎问题+骶尾椎问题 11\n" - ] - } - ], + "outputs": [], "source": [ "import json\n", "import openpyxl\n",