浏览代码

no message

libushang 5 月之前
父节点
当前提交
a235c49a68
共有 1 个文件被更改,包括 74 次插入8 次删除
  1. 74 8
      routers/api/emergencyPlans/doc.py

+ 74 - 8
routers/api/emergencyPlans/doc.py

@@ -54,6 +54,22 @@ def get_item_data(db: Session, id: int, level: int):
         if data['value'] is None:
             data['value'] = ''
 
+        if level == 2:
+            rows = db.query(EmergencyDoc).filter(EmergencyDoc.pid == pid).all()
+            if len(rows) > 0:
+                value_level3 = "<p>"
+                for row in rows:
+                    title3 = row.title
+                    value3 = row.value
+
+                    if title3 != "":
+                        value_level3 = value_level3 + "<strong>" + title3 + "</strong></p><p>"
+                    
+                    if value3 != "":
+                        value_level3 = value_level3 + format_value(value3) + "</p><p>"
+
+                data['value'] = data['value'] + value_level3 + "</p>"
+
         data['items'] = []
         rows = db.query(EmergencyDoc).filter(EmergencyDoc.pid == pid).all()
         for row in rows:
@@ -66,9 +82,12 @@ def get_item_data(db: Session, id: int, level: int):
         data['id'] = data['plan_id']+str(data['id'])
         data['href'] = "#" + data['id']
         data['containerRef'] = "containerRef" + data['id']
-        data['value'] = data['value'].replace("\r\n", "<br/>")
+        data['value'] = format_value(data['value'])
     return data
 
+def format_value(value: str) -> str:
+    return value.replace("\r\n", "</p><p>").replace("\n", "</p><p>")
+
 
 @router.post('/import')
 async def import_doc(
@@ -107,16 +126,20 @@ async def import_doc(
             # 二级目录
             title2 = sheet.cell(i, 2).value
 
+            # 三级目录
+            title3 = sheet.cell(i, 3).value
+
             # 正文
-            content = sheet.cell(i, 3).value
+            content = sheet.cell(i, 4).value
 
-            if len(plan_name) < 1 and len(title1) < 1 and len(title2) < 1 and len(content) < 1 :
+            if len(plan_name) < 1 and len(title1) < 1 and len(title2) < 1 and len(title3) < 1 and len(content) < 1 :
                 break
 
             data.append({
                 'plan_name': plan_name,
                 'title1': title1,
                 'title2': title2,
+                'title3': title3,
                 'content': content,
             })
 
@@ -130,7 +153,7 @@ async def import_doc(
         for n in data:
             if n['title1'] != '':
                 if len(docs) > 0:
-                    add_doc(db, title1, content, docs, plan_id)
+                    add_doc_1(db, title1, content, docs, plan_id)
 
                 docs = []
                 title1 = n['title1']
@@ -142,7 +165,7 @@ async def import_doc(
             docs.append(n)
 
         if len(docs) > 0:
-            add_doc(db, title1, content, docs, plan_id)
+            add_doc_1(db, title1, content, docs, plan_id)
 
         return {
             'code': 200,
@@ -155,14 +178,57 @@ async def import_doc(
             'msg': '导入发生异常'
         }
     
-def add_doc(db: Session, title: str, content: str, docs: list, plan_id: str):
+def add_doc_1(db: Session, title: str, content: str, docs: list, plan_id: str):
+    print(title)
+    print(docs)
+    # 一级记录
     main_entity = EmergencyDoc(title = title, value= content, pid = 0, plan_id = plan_id)
     db.add(main_entity)
     db.commit()
     db.refresh(main_entity)
     main_id = main_entity.id
+    print('main_id: ', main_id, 1)
+
+    title2 = ''
+    content = ''
+    docs_2 = []
+    for n in docs:
+        if n['title2'] != '':
+            if len(docs_2) > 0:
+                add_doc_2(db, title2, content, docs_2, plan_id, main_id)
+
+            docs_2 = []
+            title2 = n['title2']
+            content = n['content']
+            docs_2.append(n)
+            continue
+
+        docs_2.append(n)
+
+    if len(docs_2) > 0:
+        add_doc_2(db, title2, content, docs_2, plan_id, main_id)
+
+def add_doc_2(db: Session, title: str, content: str, docs: list, plan_id: str, pid: int):
+    # 二级记录
+    main_entity = EmergencyDoc(title = title, value= content, pid = pid, plan_id = plan_id)
+    db.add(main_entity)
+    db.commit()
+    db.refresh(main_entity)
+    main_id = main_entity.id
+
+    print('main_id: ', main_id, 2)
 
+    i = 0
     for n in docs:
-        sub_entity = EmergencyDoc(title = n['title2'], value= n['content'], pid = main_id, plan_id = plan_id)
+        i = i + 1
+
+        # 第一行是二级记录
+        if i == 1:
+            continue
+
+        sub_entity = EmergencyDoc(title = n['title3'], value= n['content'], pid = main_id, plan_id = plan_id)
         db.add(sub_entity)
-        db.commit()
+        db.commit()
+        db.refresh(sub_entity)
+        sub_id = sub_entity.id
+        print('sub_id: ', sub_id, 3)