diff --git a/client/dist.zip b/client/dist.zip
deleted file mode 100644
index 12049a1..0000000
Binary files a/client/dist.zip and /dev/null differ
diff --git a/client/dist/index.html b/client/dist/index.html
index ea7c4d7..fc6e042 100644
--- a/client/dist/index.html
+++ b/client/dist/index.html
@@ -1 +1 @@
-
vue Admin Template
\ No newline at end of file
+vue Admin Template
\ No newline at end of file
diff --git a/client/src/views/informatiomCollect/yearReport.vue b/client/src/views/informatiomCollect/yearReport.vue
index 3f8efb5..4af5d7e 100644
--- a/client/src/views/informatiomCollect/yearReport.vue
+++ b/client/src/views/informatiomCollect/yearReport.vue
@@ -13,7 +13,7 @@
-
+
下载
diff --git a/client/src/views/supervisionNew/mytask.vue b/client/src/views/supervisionNew/mytask.vue
index 9e68252..694e4a3 100644
--- a/client/src/views/supervisionNew/mytask.vue
+++ b/client/src/views/supervisionNew/mytask.vue
@@ -1368,7 +1368,7 @@
this.saveLoading = true;
this.impForm.task2do =this.task2do;
if(this.impType=='rc'){
- imtpRc(this.impForm).then(res=>{
+ impRc(this.impForm).then(res=>{
if(res.code>=200){
this.saveLoading = false;
this.impDialogVisible = false;
diff --git a/client/src/views/supervisionNew/pt_form.vue b/client/src/views/supervisionNew/pt_form.vue
index 361aa7d..ea7d35a 100644
--- a/client/src/views/supervisionNew/pt_form.vue
+++ b/client/src/views/supervisionNew/pt_form.vue
@@ -122,7 +122,7 @@ import { options } from "runjs";
edit: "能力验证结果编辑",
},
options:[
- {key:'/',value:0},
+ {key:'未出',value:0},
{key:'满意',value:10},
{key:'有问题',value:20},
{key:'不满意',value:30}
diff --git a/server/apps/information/migrations/0038_parsepdf_status.py b/server/apps/information/migrations/0038_parsepdf_status.py
new file mode 100644
index 0000000..f05bf44
--- /dev/null
+++ b/server/apps/information/migrations/0038_parsepdf_status.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.12 on 2024-05-08 09:25
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('information', '0037_alter_parsepdf_annual'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='parsepdf',
+ name='status',
+ field=models.CharField(choices=[('执行中', '执行中'), ('完成', '完成'), ('未完成', '未完成')], default='完成', max_length=100, verbose_name='状态'),
+ ),
+ ]
diff --git a/server/apps/information/models.py b/server/apps/information/models.py
index 769484c..11f1de1 100644
--- a/server/apps/information/models.py
+++ b/server/apps/information/models.py
@@ -123,12 +123,17 @@ class ExternalAuditors(CommonBDModel):
db_table = 'externalauditors'
class Parsepdf(CommonBDModel):
+ choice_status= (
+ ('执行中', '执行中'),
+ ('完成', '完成'),
+ ('未完成', '未完成'))
pdf_path = models.CharField(max_length=100, verbose_name='pdf路径')
excel_path = models.CharField(max_length=100, verbose_name='excel路径')
parse_excel = models.CharField(max_length=100, verbose_name='解析后excel路径')
annual = models.IntegerField(verbose_name='年份', blank=True, null=True)
excel_name = models.CharField(max_length=100, verbose_name='excel名称', null=True, blank=True)
pdf_name = models.CharField(max_length=100, verbose_name='pdf名称', null=True, blank=True)
+ status = models.CharField(max_length=100, choices=choice_status, verbose_name='状态', default='完成')
class Meta:
verbose_name = '解析pdf'
diff --git a/server/apps/information/views.py b/server/apps/information/views.py
index 18604bf..e08e14e 100644
--- a/server/apps/information/views.py
+++ b/server/apps/information/views.py
@@ -23,8 +23,6 @@ import traceback
import shutil
EXCEL_PATH = os.path.join(settings.BASE_DIR, "media/default/检验检测服务业统计数据上报任务.xlsx")
-# print("EXCEL_PATH", EXCEL_PATH)
-# EXCEL_PATH = "C:/code/pdf_exc/检验检测服务业统计数据上报任务-空表.xlsx"
class ImpMixin:
@@ -354,21 +352,29 @@ class ContactViewSet(ImpMixin, CreateUpdateCustomMixin, ModelViewSet):
导入数据
"""
return self.gen_imp_view(request, 2, ContactSerializer)
+
+
+def dont_wait(func):
+ def wrapper(*args, **kwargs):
+ func(*args, **kwargs)
+ return Response({"message": "操作已在后台开始,结果将不会立即返回。"})
+ return wrapper
+
+import threading
class ParsePdfViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet):
queryset = Parsepdf.objects.all()
serializer_class = ParsepdfSerializer
filterset_fields = ['belong_dept', 'annual']
-
#解析pdf到excel
+
@action(detail=False, methods=['post'])
@transaction.atomic
def parse_pdf(self, request, *args, **kwargs):
"""
解析pdf到excel
"""
-
pdf_file = request.data['pdf_file']
annual = request.data['annual']
# 读数据路径copy 在media 下新建excel,解析完成后存入数据库。
@@ -379,8 +385,7 @@ class ParsePdfViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet):
save_path = os.path.join(media_excel, os.path.basename(EXCEL_PATH))
server_pdf_path = settings.BASE_DIR + pdf_file
download_excel_path = save_path.split("server")[-1]
- run(server_pdf_path, save_path)
- Parsepdf.objects.create(
+ ps = Parsepdf.objects.create(
pdf_path=pdf_file,
excel_path= EXCEL_PATH,
parse_excel = download_excel_path,
@@ -389,9 +394,16 @@ class ParsePdfViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet):
create_time = datetime.now(),
annual = annual,
excel_name = os.path.basename(EXCEL_PATH),
- pdf_name = os.path.basename(pdf_file)
+ pdf_name = os.path.basename(pdf_file),
+ status = "执行中"
)
- return Response({"message":"解析成功", "url":save_path}, status = status.HTTP_200_OK)
+ t = threading.Thread(target=run, args=(server_pdf_path, save_path, Parsepdf, ps.id))
+ t.start()
+ return Response({"message":"解析中", "url":save_path}, status = status.HTTP_200_OK)
+ # msg = run(server_pdf_path, save_path)
+ # if msg == "success":
+ # Parsepdf.objects.update(id=ps.id, status="成功")
+ # return Response({"message":"解析成功", "url":save_path}, status = status.HTTP_200_OK)
class ExternalAuditorsViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet):
diff --git a/server/server/settings_dev.py b/server/server/settings_dev.py
index f06bcfd..d61f8e3 100644
--- a/server/server/settings_dev.py
+++ b/server/server/settings_dev.py
@@ -18,24 +18,24 @@ DATABASES = {
# # 'HOST': '1.203.161.102',
# 'PORT': '5432',
# }
- # 'default': {
- # 'ENGINE': 'django.db.backends.postgresql',
- # 'NAME': 'cma',
- # 'USER': 'postgres',
- # 'PASSWORD': 'zcDsj2021',
- # 'HOST': '49.232.14.174',
- # # 'HOST': '1.203.161.102',
- # 'PORT': '5432',
- # },
- 'default': {
+ 'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cma',
- 'USER': 'cma',
- 'PASSWORD': 'cma123',
- # 'HOST': '127.0.0.1',
- 'HOST': '1.203.161.102',
+ 'USER': 'postgres',
+ 'PASSWORD': 'zcDsj2021',
+ 'HOST': '49.232.14.174',
+ # 'HOST': '1.203.161.102',
'PORT': '5432',
}
+ # 'default': {
+ # 'ENGINE': 'django.db.backends.postgresql',
+ # 'NAME': 'cma',
+ # 'USER': 'cma',
+ # 'PASSWORD': 'cma123',
+ # 'HOST': '127.0.0.1',
+ # # 'HOST': '1.203.161.102',
+ # 'PORT': '5432',
+ # }
}
diff --git a/server/utils/pdf2txt.py b/server/utils/pdf2txt.py
index 03108de..1209269 100644
--- a/server/utils/pdf2txt.py
+++ b/server/utils/pdf2txt.py
@@ -343,7 +343,7 @@ def get_index(text, pattern, span):
remain_text = text[start_index:start_index+span]
return remain_text
-def run(pdf_path, excel_path):
+def run(pdf_path, excel_path, Parsepdf, id):
# 提取PDF文本
text = extract_text_from_pdf(pdf_path)
with open("pdf2txt.txt", "w", encoding="utf-8") as f:
@@ -379,7 +379,8 @@ def run(pdf_path, excel_path):
fill_excel(res_many[u], excel_path, l[u])
else:
return
- return ''
+ Parsepdf.objects.update(id=id, status="完成")
+ return 'success'
if __name__ == "__main__":