certflow.services.certificate_service 源代码
"""证书服务模块
提供合格证的查询、创建、更新和删除等业务服务。
"""
from typing import Any
[文档]
class CertificateService:
"""证书服务类
提供合格证数据的CRUD操作服务,供控制器层调用。
封装业务逻辑,协调数据访问层完成各类证书操作。
Attributes:
_session: 数据库会话对象(当前为占位,实际实现时需注入)
Examples:
>>> service = CertificateService()
>>> # 创建证书
>>> cert = service.create_certificate({
... "certificate_no": "CERT-20231201-0001",
... "product_model": "阀门A",
... "customer": "某某公司"
... })
>>> print(cert.get("success"))
True
>>>
>>> # 查询证书
>>> cert_info = service.get_certificate(1)
>>> if cert_info:
... print(f"证书编号: {cert_info['certificate_no']}")
"""
[文档]
def __init__(self) -> None:
"""初始化证书服务
当前为骨架实现,实际使用时应注入数据库会话对象。
"""
pass
[文档]
def get_certificate(self, cert_id: int) -> dict[str, Any] | None:
"""获取证书信息
根据证书ID查询并返回证书详细信息。
Args:
cert_id: 证书的唯一标识ID
Returns:
Optional[Dict[str, Any]]: 证书信息字典,包含以下字段:
- id: 证书ID
- certificate_no: 合格证编号
- product_model: 产品型号
- order_no: 订单号
- customer: 客户名称
- status: 合格证状态
- print_time: 打印时间
- is_engraved: 是否已刻印
未找到时返回None
Examples:
>>> service = CertificateService()
>>> cert = service.get_certificate(100)
>>> if cert:
... print(f"编号: {cert['certificate_no']}, 状态: {cert['status']}")
"""
pass
[文档]
def create_certificate(self, data: dict[str, Any]) -> dict[str, Any]:
"""创建证书
根据提供的数据创建新的证书记录。
Args:
data: 证书数据字典,应包含以下字段:
- certificate_no: 合格证编号(必填)
- sale_plan_id: 关联销售计划ID(必填)
- unique_key: 唯一键(必填)
- product_model: 产品型号
- order_no: 订单号
- customer: 客户名称
- status: 合格证状态,默认为"待打印"
Returns:
Dict[str, Any]: 创建结果字典,包含以下字段:
- success: 是否成功(布尔值)
- message: 结果消息
- certificate_id: 成功时返回新创建的证书ID
- error: 失败时返回错误信息
Examples:
>>> service = CertificateService()
>>> result = service.create_certificate({
... "certificate_no": "CERT-20231201-0001",
... "sale_plan_id": 100,
... "unique_key": "abc123",
... "product_model": "阀门A",
... "customer": "某某公司"
... })
>>> if result["success"]:
... print(f"证书创建成功,ID: {result['certificate_id']}")
... else:
... print(f"创建失败: {result['error']}")
"""
pass
[文档]
def update_certificate(self, cert_id: int, data: dict[str, Any]) -> dict[str, Any]:
"""更新证书
根据证书ID更新证书的指定字段。
Args:
cert_id: 证书的唯一标识ID
data: 需要更新的字段字典,可包含以下字段:
- certificate_no: 合格证编号
- product_model: 产品型号
- order_no: 订单号
- customer: 客户名称
- status: 合格证状态
- print_time: 打印时间
- is_engraved: 是否已刻印
- engraved_time: 刻印时间
- electronic_image_path: 电子版图片路径
Returns:
Dict[str, Any]: 更新结果字典,包含以下字段:
- success: 是否成功(布尔值)
- message: 结果消息
- error: 失败时返回错误信息
Examples:
>>> service = CertificateService()
>>> result = service.update_certificate(100, {
... "status": "已打印",
... "print_time": "2024-01-15 10:30:00"
... })
>>> if result["success"]:
... print("证书更新成功")
"""
pass
[文档]
def delete_certificate(self, cert_id: int) -> dict[str, Any]:
"""删除证书
根据证书ID删除对应的证书记录。
Args:
cert_id: 证书的唯一标识ID
Returns:
Dict[str, Any]: 删除结果字典,包含以下字段:
- success: 是否成功(布尔值)
- message: 结果消息
- error: 失败时返回错误信息
Examples:
>>> service = CertificateService()
>>> result = service.delete_certificate(100)
>>> if result["success"]:
... print("证书删除成功")
... else:
... print(f"删除失败: {result['error']}")
"""
pass