利用飞书实现物料管理

1. 问题背景

在电子研发企业中,物料管理是一个关键且复杂的环节。由于研发过程需要频繁地调整设计、测试不同组件和材料,因此物料管理面临诸多挑战:

  1. 物料种类繁多:电子研发需要使用多种多样的元器件和材料。每种物料都有不同的型号、规格和供应商,管理起来十分复杂。
  2. 库存管理复杂:由于需求的不确定性,常常需要保持较大的库存以应对突发需求。这导致库存管理难度增加,容易出现过期、浪费或短缺的情况。
  3. 追踪与溯源困难:研发过程中需要对物料批次进行严格追踪,以便在出现问题时能够迅速溯源。传统的手工记录方法效率低下且容易出错。
  4. 成本控制挑战:物料成本占据研发成本的很大一部分,缺乏有效的管理会导致成本失控,影响企业的竞争力。
  5. 信息不对称:各部门之间的信息共享不及时,容易导致重复采购或遗漏采购,影响项目进度。

针对这些挑战,应用二维码技术进行物料管理具有重要的必要性:

  1. 高效追踪与管理:二维码可以储存丰富的信息,包括物料的名称、规格、批次、供应商等。通过扫描二维码,管理人员可以快速获取物料的详细信息,提升追踪效率。
  2. 自动化库存管理:利用二维码技术,企业可以实现库存的自动化管理。每次物料进出库时,只需扫描二维码即可自动更新库存数据,减少人为错误。
  3. 提升信息透明度:二维码可以与企业的ERP系统集成,实现各部门间的信息共享。这样可以确保采购、研发、生产等环节的信息同步,减少沟通成本。
  4. 提高溯源能力:当产品出现问题时,可以通过二维码快速溯源到具体批次的物料,便于问题的定位和解决。
  5. 降低成本:通过提高管理效率和减少错误,二维码技术可以帮助企业更好地控制物料成本,提升整体研发效率。

2. 利用飞书实现物料管理

飞书作为一款集成了办公协作、知识管理、项目管理等功能的工具,可以帮助企业实现物料管理的全流程数字化。飞书提供了很多api接口,可以方便地实现二维码的生成、扫描等功能。本文抛砖引玉,简单介绍一个利用飞书文档实现物料管理的思路。

飞书文档可以创建格式丰富的文档,包括文字、图片、表格等。我们可以利用飞书文档来记录物料的详细信息,例如物料名称、规格、批次、供应商等。然后将文档链接生成二维码,贴在物料上。这样,只要扫描二维码,就可以查看物料的详细信息。

上代码:

import requests
import json
import time
from progress.bar import Bar
from qrcode import QRCode
from docx import Document
from docx.shared import Cm

urlAccess = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/"
payload = {
    "app_id": "your_app_id",
    "app_secret": "your_app_secret",
}

headers = {"Content-Type": "application/json; charset=utf-8"}
r = requests.post(urlAccess, headers=headers, data=json.dumps(payload))
tenant_access_token = r.json().get("tenant_access_token")

headers = {
    "Authorization": "Bearer {tenant_access_token}".format(
        tenant_access_token=tenant_access_token
    ),
    "Content-Type": "application/json; charset=utf-8",
}

urlAdd = "https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records"
payloadAdd = {"fields": {"Link": {"link": ""}, "objToken": "", "SN": ""}}

urlCreate = "https://open.feishu.cn/open-apis/doc/v2/create"

path_var = {"app_token": "your_bittable_token", "table_id": "your_table_id"}
r = requests.get(urlAdd.format(**path_var), headers=headers)
sn_start = r.json().get("data").get("total")

docx = Document("template.docx")
tbl = docx.tables[0]
sn = sn_start
rows = 22
cols = 17
bar = Bar("Processing", max=rows * cols, suffix="%(index)d/%(max)d - %(eta)ds")
for i in range(rows):
    for j in range(cols):
        payloadCreate = (
            '{"FolderToken":"your_folder_token","Content":"{\\"title\\":{\\"elements\\":[{\\"type\\":\\"textRun\\",\\"textRun\\":{\\"text\\":\\"'
            + "{sn:06d}".format(sn=sn)
            + '\\",\\"style\\":{}}}]}}"}'
        )
        r = requests.post(urlCreate, headers=headers, data=payloadCreate)
        docURL = r.json().get("data").get("url")
        objToken = r.json().get("data").get("objToken")

        payloadAdd["fields"]["Link"]["link"] = docURL
        payloadAdd["fields"]["objToken"] = objToken
        payloadAdd["fields"]["SN"] = "{sn:06d}".format(sn=sn)
        r = requests.post(
            urlAdd.format(**path_var), headers=headers, data=json.dumps(payloadAdd)
        )

        qr = QRCode(border=1)
        qr.add_data(docURL)
        qr.make()
        img = qr.make_image()
        img.save("{sn:06d}-{objToken}.png".format(sn=sn, objToken=objToken))
        run = tbl.cell(i, j).paragraphs[0].add_run()
        run.add_picture(
            "{sn:06d}-{objToken}.png".format(sn=sn, objToken=objToken),
            width=Cm(0.7),
            height=Cm(0.7),
        )
        tbl.cell(i, j).add_paragraph("{sn:06d}".format(sn=sn))
        sn += 1
        bar.next()
        time.sleep(5)

docx.save("QR{start:06d}-{stop:06d}.docx".format(start=sn_start, stop=(sn - 1)))
bar.finish()

1. 初始化和认证

  • 使用飞书开放平台的API进行认证
  • 获取tenant_access_token用于后续API调用
  • 设置API请求所需的headers

2. 基础配置

  • 定义了多个API端点:
    • 认证接口 (urlAccess)
    • 多维表格记录接口 (urlAdd)
    • 文档创建接口 (urlCreate)
  • 设置了多维表格的app_token和table_id
  • 获取当前表格中的记录总数作为起始序号(sn_start)

3. 主要功能循环

在一个22行17列的表格中执行以下操作:

for i in range(rows):    # 22行
    for j in range(cols):    # 17列
        # 1. 创建飞书文档
        # 2. 生成二维码
        # 3. 更新多维表格
        # 4. 将二维码添加到Word文档

具体每次循环的步骤:

  1. 创建飞书文档
  • 使用序号(sn)创建新的飞书文档
  • 获取文档URL和objToken
  1. 更新多维表格
  • 将文档链接、objToken和序号添加到多维表格中
  1. 生成二维码
  • 使用qrcode库生成包含文档URL的二维码
  • 保存二维码图片,文件名包含序号和objToken
  1. 更新Word文档
  • 将二维码图片插入到Word表格的对应单元格
  • 在二维码下方添加序号文本

4. 其他特点

  • 使用progress.bar显示进度
  • 每次循环间隔5秒(time.sleep(5))
  • 最终生成的Word文档名称包含起始和结束序号

5. 输出结果

  • 生成包含二维码的Word文档
  • 生成二维码图片文件
  • 更新飞书多维表格数据

这个脚本主要用于批量生成文档和对应的二维码,并将它们组织在Word文档中,同时在飞书多维表格中保存相关信息。整个过程是自动化的,适合需要批量处理文档和二维码的场景。

之所以在保存在word中,是为了使用普通打印机打印,这样可以批量生成二维码,然后打印在A4贴纸上,贴在物料上,这样就可以实现物料的追踪和管理。

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。
个人博客 | blog.boringhex.top

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值