提交 958142f1 authored 作者: 陈泽健's avatar 陈泽健

docs(prd): 更新ERP上传功能需求文档和配置

- 添加图片处理流程说明,包括调用openclaw/upload/richtext接口上传图片
- 更新接口调用地址为https://office.ubainsyun.com:5082/api/uerp/openclaw/upload/richtext
- 添加图片URL前缀拼接逻辑,将相对路径拼接为完整访问地址
- 更新计划执行文档版本至V1.1,标记为已完成状态
- 修改word转换为使用mammoth库实现,添加图片验证和保存功能
- 更新配置文件中的测试单ID和相关配置项
- 添加详细的接口日志输出
上级 19fc40b4
......@@ -315,7 +315,7 @@ ERP_API_KEY = "9adc1ce611544fae9bbbc5f6b1d6ce87"
ERP_BASE_URL = "https://office.ubainsyun.com:5082/api/uerp"
# 测试单ID(可配置)
ERP_DEVELOPTESTING_ID = 407
ERP_DEVELOPTESTING_ID = 397
# 报告类型ID(可配置,2=测试报告)
ERP_TYPE_ID = 2
......@@ -327,8 +327,8 @@ ERP_RETRY_INTERVAL = 5
ERP_MAX_RETRIES = 3
# ERP接口路径
ERP_UPLOAD_IMAGE_URL = "/openclaw/upload/richtext" # 上传图片接口
ERP_CREATE_REPORT_URL = "/openclaw/report" # 创建报告接口
ERP_UPLOAD_IMAGE_URL = "/openclaw/upload/richtext" # 上传图片接口路径
ERP_CREATE_REPORT_URL = "/openclaw/report" # 创建报告接口路径
# 请求超时时间(秒)
ERP_REQUEST_TIMEOUT = 30
......@@ -336,3 +336,10 @@ ERP_REQUEST_TIMEOUT = 30
# 图片处理配置
ERP_SAVE_IMAGES_TEMP = True # 是否将提取的图片保存到temp目录供检查
ERP_VALIDATE_IMAGES = True # 是否验证图片有效性
# 调试配置
ERP_SAVE_HTML_TEMP = True # 是否将转换后的HTML保存到temp目录供调试
# 图片URL前缀配置
ERP_IMAGE_URL_PREFIX = "https://office.ubainsyun.com:5015/" # 图片URL前缀,用于拼接完整的访问地址(末尾含斜杠)
......@@ -30,6 +30,8 @@ from src.config import (
ERP_REQUEST_TIMEOUT,
ERP_SAVE_IMAGES_TEMP,
ERP_VALIDATE_IMAGES,
ERP_SAVE_HTML_TEMP,
ERP_IMAGE_URL_PREFIX,
TEMP_DIR,
)
......@@ -162,8 +164,14 @@ def upload_image_to_erp(img_bytes: bytes, idx: int, logger: logging.Logger) -> O
result = resp.json()
if result.get('success') == 1:
logger.info(f"✓ 图片{idx}上传成功: {result['data']['url']}")
return result['data']['url']
original_url = result['data']['url']
# 拼接URL前缀
full_url = f"{ERP_IMAGE_URL_PREFIX}{original_url}"
logger.info(f"✓ 图片{idx}上传成功")
logger.info(f" 原始URL: {original_url}")
logger.info(f" 前缀: {ERP_IMAGE_URL_PREFIX}")
logger.info(f" 完整URL: {full_url}")
return full_url
else:
error_code = result.get('error', 0)
# 4xx错误不重试
......@@ -336,6 +344,27 @@ def word_to_html_with_images(file_path: str, logger: logging.Logger) -> Optional
logger.info(f"✓ Word转HTML完成")
logger.info(f" - 处理图片数量: {len(image_urls)}")
logger.info(f" - HTML内容长度: {len(html_content)} 字符")
# 保存HTML到temp目录供调试
if ERP_SAVE_HTML_TEMP:
try:
temp_dir = TEMP_DIR / "erp_upload_html"
temp_dir.mkdir(parents=True, exist_ok=True)
# 生成文件名:使用原文件名+时间戳
from datetime import datetime
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
html_filename = f"report_{timestamp}.html"
save_path = temp_dir / html_filename
with open(save_path, 'w', encoding='utf-8') as f:
f.write(html_content)
logger.info(f"✓ HTML已保存到: {save_path}")
logger.info(f" 可以在浏览器中打开查看图片信息")
except Exception as e:
logger.warning(f"⚠ 保存HTML失败: {str(e)}")
return html_content
except Exception as e:
......
......@@ -6,7 +6,7 @@
>
> 适用对象:第三方系统对接开发人员
---
---
## 一、概述
......
......@@ -75,6 +75,13 @@ import mammoth
return html_content
```
#### 图片处理
- 将图片文件通过调用接口`openclaw/upload/richtext` 上传图片,返回图片URL。在[Docs/PRD/自动化生成功能测试报告/ERP对接PRD/PRD_测试列表_测试报告_例子说明.md]
文档中第144行有示例
- 接口调用地址改为:https://office.ubainsyun.com:5082/api/uerp/openclaw/upload/richtext
- 再将相应信息的url字段值补充前缀拼接 `https://office.ubainsyun.com:5015/ + url`
- 最后拼接到富文本中,最终传参给ERP创建测试报告接口。
#### ERP对接方式
- API key值为:9adc1ce611544fae9bbbc5f6b1d6ce87
- 生产环境为:https://office.ubainsyun.com:5082/api/uerp
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论