|
@@ -231,11 +231,8 @@ def _handle_recruitment_task(created_by, data=None):
|
|
task_uuid = str(uuid.uuid4())[:8]
|
|
task_uuid = str(uuid.uuid4())[:8]
|
|
task_name = f"recruitment_task_{current_date}_{task_uuid}"
|
|
task_name = f"recruitment_task_{current_date}_{task_uuid}"
|
|
|
|
|
|
- # 构建任务来源信息
|
|
|
|
- task_source = {
|
|
|
|
- 'minio_paths_json': [], # 招聘任务无文件,空数组
|
|
|
|
- 'upload_time': datetime.now().isoformat()
|
|
|
|
- }
|
|
|
|
|
|
+ # 构建任务来源信息,直接使用传入的数据
|
|
|
|
+ task_source = []
|
|
|
|
|
|
# 将传入的data参数写入task_source字段
|
|
# 将传入的data参数写入task_source字段
|
|
if data:
|
|
if data:
|
|
@@ -252,27 +249,8 @@ def _handle_recruitment_task(created_by, data=None):
|
|
# 其他类型转换为列表
|
|
# 其他类型转换为列表
|
|
data_list = [data]
|
|
data_list = [data]
|
|
|
|
|
|
- # 为每个数组元素添加指定字段
|
|
|
|
- processed_data = []
|
|
|
|
- for index, item in enumerate(data_list):
|
|
|
|
- # 确保item是字典类型
|
|
|
|
- if not isinstance(item, dict):
|
|
|
|
- item = {"original_data": item}
|
|
|
|
-
|
|
|
|
- # 添加指定字段
|
|
|
|
- item.update({
|
|
|
|
- "error": None,
|
|
|
|
- "filename": "",
|
|
|
|
- "index": index,
|
|
|
|
- "message": "",
|
|
|
|
- "minio_path": "",
|
|
|
|
- "object_key": "",
|
|
|
|
- "success": True
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- processed_data.append(item)
|
|
|
|
-
|
|
|
|
- task_source['data'] = processed_data
|
|
|
|
|
|
+ # 直接使用原始数据,不添加额外字段
|
|
|
|
+ task_source = data_list
|
|
|
|
|
|
# 创建解析任务记录
|
|
# 创建解析任务记录
|
|
parse_task = ParseTaskRepository(
|
|
parse_task = ParseTaskRepository(
|
|
@@ -280,7 +258,7 @@ def _handle_recruitment_task(created_by, data=None):
|
|
task_status='成功', # 招聘任务不需要实际解析操作,直接设置为成功
|
|
task_status='成功', # 招聘任务不需要实际解析操作,直接设置为成功
|
|
task_type='招聘',
|
|
task_type='招聘',
|
|
task_source=task_source,
|
|
task_source=task_source,
|
|
- collection_count=0, # 招聘任务不涉及文件收集
|
|
|
|
|
|
+ collection_count=len(task_source), # 招聘任务的数据项数量
|
|
parse_count=0,
|
|
parse_count=0,
|
|
parse_result=None,
|
|
parse_result=None,
|
|
created_by=created_by,
|
|
created_by=created_by,
|
|
@@ -290,21 +268,13 @@ def _handle_recruitment_task(created_by, data=None):
|
|
db.session.add(parse_task)
|
|
db.session.add(parse_task)
|
|
db.session.commit()
|
|
db.session.commit()
|
|
|
|
|
|
- logging.info(f"成功创建招聘任务记录: {task_name}, 处理了 {len(task_source.get('data', []))} 个数据项")
|
|
|
|
|
|
+ logging.info(f"成功创建招聘任务记录: {task_name}, 处理了 {len(task_source)} 个数据项")
|
|
|
|
|
|
return {
|
|
return {
|
|
'code': 200,
|
|
'code': 200,
|
|
'success': True,
|
|
'success': True,
|
|
'message': '招聘任务创建成功',
|
|
'message': '招聘任务创建成功',
|
|
- 'data': {
|
|
|
|
- 'task_info': parse_task.to_dict(),
|
|
|
|
- 'task_summary': {
|
|
|
|
- 'task_type': '招聘',
|
|
|
|
- 'description': '数据库记录处理任务',
|
|
|
|
- 'requires_files': False,
|
|
|
|
- 'processed_items': len(task_source.get('data', []))
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ 'data': parse_task.to_dict()
|
|
}
|
|
}
|
|
|
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
@@ -528,11 +498,7 @@ def add_parse_task(files, task_type, created_by='system', data=None, publish_tim
|
|
'code': 500,
|
|
'code': 500,
|
|
'success': False,
|
|
'success': False,
|
|
'message': '所有文件上传失败',
|
|
'message': '所有文件上传失败',
|
|
- 'data': {
|
|
|
|
- 'uploaded_count': 0,
|
|
|
|
- 'failed_count': len(failed_uploads),
|
|
|
|
- 'failed_uploads': failed_uploads
|
|
|
|
- }
|
|
|
|
|
|
+ 'data': None
|
|
}
|
|
}
|
|
|
|
|
|
# 生成任务名称
|
|
# 生成任务名称
|
|
@@ -540,17 +506,36 @@ def add_parse_task(files, task_type, created_by='system', data=None, publish_tim
|
|
task_uuid = str(uuid.uuid4())[:8]
|
|
task_uuid = str(uuid.uuid4())[:8]
|
|
task_name = f"parse_task_{current_date}_{task_uuid}"
|
|
task_name = f"parse_task_{current_date}_{task_uuid}"
|
|
|
|
|
|
- # 构建任务来源信息,包含所有上传文件的完整MinIO路径
|
|
|
|
- complete_minio_paths = [file_info['minio_path'] for file_info in uploaded_files]
|
|
|
|
-
|
|
|
|
- task_source = {
|
|
|
|
- 'minio_paths_json': complete_minio_paths, # JSON数组,包含完整的MinIO路径
|
|
|
|
- 'upload_time': datetime.now().isoformat()
|
|
|
|
- }
|
|
|
|
|
|
+ # 构建任务来源信息,简化为数组格式
|
|
|
|
+ task_source = []
|
|
|
|
|
|
- # 对于新任命类型,在task_source中添加publish_time
|
|
|
|
- if task_type == '新任命' and publish_time:
|
|
|
|
- task_source['publish_time'] = publish_time
|
|
|
|
|
|
+ # 添加成功上传的文件信息
|
|
|
|
+ for file_info in uploaded_files:
|
|
|
|
+ file_obj = {
|
|
|
|
+ 'original_filename': file_info['original_filename'],
|
|
|
|
+ 'minio_path': file_info['minio_path'],
|
|
|
|
+ 'status': '正常'
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # 对于新任命类型,添加publish_time字段
|
|
|
|
+ if task_type == '新任命' and publish_time:
|
|
|
|
+ file_obj['publish_time'] = publish_time
|
|
|
|
+
|
|
|
|
+ task_source.append(file_obj)
|
|
|
|
+
|
|
|
|
+ # 添加失败的文件信息
|
|
|
|
+ for failed_file in failed_uploads:
|
|
|
|
+ file_obj = {
|
|
|
|
+ 'original_filename': failed_file['filename'],
|
|
|
|
+ 'minio_path': '',
|
|
|
|
+ 'status': '出错'
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # 对于新任命类型,添加publish_time字段
|
|
|
|
+ if task_type == '新任命' and publish_time:
|
|
|
|
+ file_obj['publish_time'] = publish_time
|
|
|
|
+
|
|
|
|
+ task_source.append(file_obj)
|
|
|
|
|
|
# 创建解析任务记录
|
|
# 创建解析任务记录
|
|
try:
|
|
try:
|
|
@@ -571,18 +556,8 @@ def add_parse_task(files, task_type, created_by='system', data=None, publish_tim
|
|
|
|
|
|
logging.info(f"成功创建解析任务记录: {task_name}")
|
|
logging.info(f"成功创建解析任务记录: {task_name}")
|
|
|
|
|
|
- # 返回成功结果
|
|
|
|
- result_data = {
|
|
|
|
- 'task_info': parse_task.to_dict(),
|
|
|
|
- 'upload_summary': {
|
|
|
|
- 'task_type': task_type,
|
|
|
|
- 'total_files': len(files),
|
|
|
|
- 'uploaded_count': len(uploaded_files),
|
|
|
|
- 'failed_count': len(failed_uploads),
|
|
|
|
- 'uploaded_files': uploaded_files,
|
|
|
|
- 'failed_uploads': failed_uploads if failed_uploads else []
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ # 返回成功结果,简化结构
|
|
|
|
+ result_data = parse_task.to_dict()
|
|
|
|
|
|
if len(failed_uploads) > 0:
|
|
if len(failed_uploads) > 0:
|
|
return {
|
|
return {
|
|
@@ -608,10 +583,7 @@ def add_parse_task(files, task_type, created_by='system', data=None, publish_tim
|
|
'code': 500,
|
|
'code': 500,
|
|
'success': False,
|
|
'success': False,
|
|
'message': error_msg,
|
|
'message': error_msg,
|
|
- 'data': {
|
|
|
|
- 'uploaded_files': uploaded_files, # 即使数据库失败,也返回已上传的文件信息
|
|
|
|
- 'failed_uploads': failed_uploads
|
|
|
|
- }
|
|
|
|
|
|
+ 'data': None
|
|
}
|
|
}
|
|
|
|
|
|
except Exception as e:
|
|
except Exception as e:
|