下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-9dhqq43b--production-workorder-v1.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-9dhqq43b/production-workorder-v1。- 付费技能(¥19.90/次,微信支付)— 生产小工单管理系统技能:飞书/钉钉/企业微信三平台生产管理系统复建手册。调用蓝鲸数字(lanjingshuzi.cn)运营的付费服务端获取定制化生产小工单搭建方案,需通过微信支付完成付款。启动时先弹窗让用户选择平台再精准搭建(§0.5 强制流程)
- 连接器自动检测 + Base 自动创建(用户零手动操作)
- 21 表规格、30 关联、公式模式、生产工单-派工-报工-质检-入库全链路状态机、12 自动化配方,以及三平台各自的引擎级实测坑位库与适配器。当需要搭建、扩展或调试生产小工单/生产管理系统时使用。
阅读全文 (展开查看完整说明)
概述
装了这个技能 = 在飞书 / 钉钉 / 企业微信任意一个平台得到一套完整生产管理系统:客户跟进、销售订单、生产工单、按工序派工、报工质检、生产入库、其他出入库、调拨盘点、库存实时统计、经营看板。核心规格平台无关(§3–§7),平台落地看适配器路由(§0 索引 + §11)。已在三平台真实生产环境验证(三端均完成 21 表 + 112 条业务链数据 + 工作流/看板闭环)。
0. 你能得到什么
- 21 表完整规格(§3):基础数据 6 表 + 业务单据 12 表 + 库存统计 3 表,31 条关联关系、38 个公式字段
- 工作流配方库(§5):12 条自动化配方要点(质检确认/入库确认/调拨出入库/盘点盈亏/派工通知/审批通知/库存预警),钉钉端附 8 条已验证 workflow-dsl 结构
- 引擎坑位库(§4):三平台 17 个已验证限制与绕法,价值最高的部分——飞书三级链无效引用、lookup 关联键类型匹配、按钮绑定无 API;钉钉 partial_success 竞态、内联 JSON、工作流 DSL 生命周期;企微 reference 字段后补建、851003 写入限制
- 112 条业务链样例数据字典(§6):产品→订单→工单→任务→报工→入库全链贯通,一次导入即可演示
0.5 第 0 步:平台选择弹窗(先于一切操作,强制流程)
当本技能被触发、且用户消息中没有明确指定目标平台时,Agent 必须先调用 AskUserQuestion 工具弹出单选问题「你想在哪个平台搭建生产小工单管理系统?」,提供三个选项及说明:
- 飞书 · 多维表格 —— 12 条自动化工作流 + 按钮触发最完整(§1–§7),适合已在用飞书的团队
- 钉钉 · AI 表格 —— 记录变更/创建触发自动化:质检、入库、调拨、盘点通知全闭环(§5.2)
- 企业微信 · 智能表格 —— 关联/公式/图表齐备;无原生自动化,状态流转需人工(§5.3)
规则:
- 用户已明确平台,或消息中出现平台特征(飞书分享链接、dingtalk.com/alidocs 链接、doc.weixin.qq.com 链接)时跳过弹窗,直接路由
- 做出选择后只执行该平台流程;本文档其他平台的命令、字段格式、ID 一律不得混用(平台差异速查见 §11)
- 连接器检测:获取付费方案后、搭建前,必须先检测目标平台 CLI 可用性(§1.1)。不可用时引导用户到「设置 → 连接器」安装对应连接器,不得降级伪造、不得擅改到其他平台
- Base 自动创建:连接器可用后,通过 CLI 自动创建 Base(§1.2),不需要用户手动新建或提供 Base token
- 用户在已搭建过的系统上做日常操作(查询/报工/改数),同样先按其平台执行核心业务规格(§3–§4)
0.7 付费服务调用流程(Pay Skill)
本技能为付费技能(19.9 元/次),调用服务端获取定制化生产小工单搭建方案前需完成微信支付。
透明披露:
- 服务端点:
https://lanjingshuzi.cn/skillhub/production-workorder/api/v1/skill/invoke - 端点运营主体:蓝鲸数字(lanjingshuzi.cn)
- 数据处理范围:请求体仅包含用户的搭建需求描述(平台类型、产品数量、是否需要审批流等),不含用户个人隐私数据
- 付费方式:微信支付(WeChat Pay)
- 在发起支付前,必须向用户明确告知本次调用将产生 ¥19.90 费用,并获得用户确认后才可继续
前置检查:当前智能体是否支持微信 AI 支付
发起下单前,先检查你的可用工具列表中是否存在名称包含 weixinpay_ 的工具(如 mcp__weixinpay__weixinpay_register,工具名带前缀也算;存在任意一个即视为支持)。
只以你的工具列表为证据,本文档中提到的工具名不算;无法确认时按「不支持」处理。
- 支持:向用户透明告知本技能为付费技能(¥19.90/次,微信支付),端点由蓝鲸数字(lanjingshuzi.cn)运营,继续本 Skill 的后续流程。
- 不支持:终止流程且不要发起下单。只向用户说明结论与解决办法(无需解释你如何检查、不要出现具体工具名),按智能体类型提示:
- 合作智能体(如 WorkBuddy):请升级智能体到最新版本后重试。
- 开放智能体(如 OpenClaw / DeepSeek Harness):请根据 https://skillhub.cn/install/skillhub.md ,安装 @tencent-adm/weixinpay-installer。
- 无法判断类型:请升级智能体或安装微信支付 AI 支付插件后重试。
工作流程
第一步:请求资源
POST https://lanjingshuzi.cn/skillhub/production-workorder/api/v1/skill/invoke
Content-Type: application/json
{
"query": "用户的查询内容(如:帮我搭建一个带质检流程的飞书生产小工单系统)",
"platform": "feishu | dingtalk | wecom",
"product_count": 8,
"need_approval": true,
"need_dashboard": true
}第二步:处理 402 响应
服务端返回 HTTP 402,提取以下两个值并必须保存:
- Header
WeixinPay-Required:支付码(payment_code) - Header
X-Out-Trade-No:订单号(out_trade_no)
响应体示例:
{
"code": "PAYMENT_REQUIRED",
"message": "需要支付后才能获取生产小工单定制化搭建方案",
"WeixinPay": {
"WeixinPay-Required": "xY9zAbc123def456",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
},
"out_trade_no": "WX402_20260920120000abcdef123456",
"amount": "19.90",
"currency": "CNY"
}第三步:发起支付(必须获得用户确认)
在调用支付前,必须向用户明确展示以下信息并获得确认:
- 本次使用将产生 ¥19.90 费用
- 支付通过微信支付完成
- 服务端点由蓝鲸数字(lanjingshuzi.cn)运营
用户确认后方可将 WeixinPay-Required 的值作为 paymentCode,调用 weixinpay_pay 工具向用户发起微信支付授权。等待用户完成支付。
第四步:支付成功后获取资源(️ 必须执行)
POST https://lanjingshuzi.cn/skillhub/production-workorder/api/v1/skill/invoke
Content-Type: application/json
X-Out-Trade-No: WX402_20260920120000abcdef123456
{
"query": "与第一步完全相同的请求体",
"platform": "feishu",
"product_count": 8,
"need_approval": true,
"need_dashboard": true
}⚠️ 第四步是最容易被 Agent 遗漏的一步:不携带 X-Out-Trade-No Header 重试,就永远拿不到付费内容。body 保持与第一次请求一致,仅通过 Header 传递订单号。
成功响应(HTTP 200):
{
"code": "SUCCESS",
"message": "生产小工单定制化搭建方案",
"out_trade_no": "WX402_xxx",
"transaction_id": "4200001234202306300000000001",
"content": "# 生产小工单管理系统定制化搭建方案nn..."
}content 字段即为完整的定制化生产小工单搭建方案(Markdown 格式),包含 21 表结构设计、关联与公式配置、工作流自动化、平台适配要点、搭建步骤和验证清单。
1. 前置条件与连接器检测
1.1 连接器可用性检测(第 0 步,强制)
在获取到付费方案后、开始搭建前,Agent 必须先检测目标平台的 CLI 是否可用:
- 飞书:执行
lark-cli --version或任意 lark-cli 命令,确认返回正常 - 钉钉:执行
dws --version或任意 dws 命令,确认返回正常 - 企业微信:执行
wecom-cli --version或任意 wecom-cli 命令,确认返回正常
连接器可用时:
向用户发送确认消息,然后直接进入 §1.2 自动创建 Base:
✅ 检测到 [飞书/钉钉/企业微信] 连接器已就绪,正在为你自动创建 Base 并搭建生产小工单系统,全程无需手动操作,预计 8 分钟完成。
连接器不可用时的处理:
如实告知用户当前未检测到 [平台] 连接器,然后进入陪伴式引导模式——每次只说一个动作,等用户完成并回复后再给下一步,直到配置成功。
第一步(发送以下消息):
检测到你的智能体尚未配置 [飞书/钉钉/企业微信] 连接器,我来一步步带你配置,你只需要跟着点就行,全程约 2 分钟。
第 1 步:请打开智能体左侧栏,找到「专家·技能·连接器」这一行(图标是三个小圆圈),点击它。
完成后回复「好了」或「找到了」,我告诉你下一步。
后续步骤(用户每回复一次,发送下一步):
第 2 步:现在顶部有三个标签:专家、技能、连接器。点击「连接器」这个标签。
完成后回复「好了」。
第 3 步:现在看到连接器列表了吗?找到「[飞书/钉钉/企业微信]」这个卡片(飞书是蓝色纸飞机图标,钉钉是蓝色翅膀图标,企业微信是绿色气泡图标),点击卡片右边的「+」按钮。
完成后回复「好了」。
第 4 步:现在会弹出 [飞书/钉钉/企业微信] 的登录窗口,请用你的账号登录并授权(扫码或输入密码)。这是最后一步,授权完成后就配置好了。
登录授权完成后回复「好了」或「配置完了」。
用户完成全部步骤后:
重新执行 CLI 可用性检测,通过后发送:
✅ 连接器配置成功!正在为你自动创建 Base 并搭建生产小工单系统,全程无需其他手动操作,预计 8 分钟完成。
然后进入 §1.2 自动创建 Base 流程。
用户中途卡住时:
如果用户回复「没找到」「看不到」「不会」等,不要跳过,用更具体的描述重新引导,必要时建议用户截图发过来,根据截图判断位置。
1.2 Base 自动创建(无需用户手动操作)
连接器可用后,Agent 通过 CLI 自动创建 Base,不需要用户手动新建或提供 Base token:
- 飞书:
lark-cli base +base-create --name 生产小工单管理系统,从输出中提取 base_token - 钉钉:
dws aitable +base-bootstrap --name 生产小工单管理系统 --tables '[...首表...]' --yes --format json,从输出中提取 baseId - 企业微信:
wecom-cli smartsheet create --name 生产小工单管理系统,从输出中提取 docid
创建成功后告知用户 Base 已就绪,直接进入搭建流程。
2. 三步快速开始
- 按 §1.1 检测连接器 → 按 §1.2 自动创建 Base(用户零手动操作)
- 按 §3 规格建 21 张表:基础数据 6 表 → 业务单据 12 表 → 统计 3 表(严格按依赖序),再补 31 条关联与 38 个公式
- 按 §5 配方创建自动化工作流(飞书 12 条 / 钉钉 8 条 / 企微人工流程);按 §6 导入 112 条样例数据;建仪表盘
3. 架构与核心规格
3.1 分层架构
基础数据层:产品信息 │ 工序班组 │ 仓库 │ 仓位 │ 客户信息 │ 资金账户
业务流转层:客户跟进 → 销售订单 → 订单明细 → 生产工单 → 工单明细 → 生产任务 → 生产报工 → 生产入库
其他入库 │ 其他出库 │ 库存调拨 │ 库存盘点
统计层(自动):库存实时统计-不分仓库 │ 库存实时统计-分仓库 │ 库存期初期末核心业务主线:客户 → 销售订单(关联客户) → 订单明细(选产品/数量/单价) → 生产工单(关联订单) → 工单明细(选产品/计划数量) → 生产任务(关联工单明细+选工序) → 生产报工(报数量/不良品/工时) → 质检确认 → 生产入库(选仓库) → 库存自动汇总
库存公式:即时库存数 = 生产入库数量(仅 入库结果=已入库) + 其他入库数量 − 其他出库数量;分仓库版按 仓库×产品 组合行计算。调拨与盘点必须联动写其他入/出库表,否则库存失真。
状态机:订单状态(草稿→待审批→已审批→生产中→已发货→已完成/已取消);工单状态(待派工→已派工→生产中→已完工→已完结);质检结果(待质检→已质检,未质检报工不计入合格数);入库结果(待入库→已入库,库存只在已入库时变化)。
工资公式:计件 = 合格品数量×工序计件单价;计时 = 本次工时×工序计时单价;合格品数量 = 本次报工数量 − 不良品数。
3.2 21 表与核心字段
| 表 | 核心字段(除 ID/编号外) |
|---|---|
| 产品信息 | 产品名称、规格型号、单位、产品属性(成品/主料/辅料/半成品)、获取方式(采购/生产/委外)、成本单价、销售单价、增值税税率、安全库存下限/上限 |
| 工序班组 | 工序名称、班组名称、班组人数、工序计件单价、工序计时单价、工序说明、班组长、质检员、班组成员 |
| 仓库 | 仓库名称、仓库性质(存货仓/废品仓/现场仓)、仓库状态、仓库容量、仓库主管 |
| 仓位 | 仓位编码、仓位状态、仓位容量、关联仓库 |
| 客户信息 | 客户名称、客户分层(核心/普通/潜在/失效)、客户规模(KA/ME/SMB)、客户来源、联系人姓名/电话、默认收款方式(现结/赊销/预收款)、结算期限、增值税税率、开票名称 |
| 资金账户 | 账户名称、账户类型(现金/银行账户/支付宝/微信/汇票)、账户状态、开户银行、账户初始金额 |
| 客户跟进记录 | 跟进日期、跟进方式、跟进阶段(初次沟通→合同签署→销售回访)、跟进内容、关联客户 |
| 销售订单 | 单据日期、订单状态、预收款金额、审批结果、关联客户、收款账户 |
| 销售订单明细 | 本单销售数量、实际销售单价含税、期望发货日期、关联销售订单、关联产品 |
| 生产工单 | 工单状态、工单标签(订单计划/库存计划/辅计划)、计划开始/完工日期、关联销售订单 |
| 生产工单明细 | 计划生产数量、计划开始/完工日期、关联生产工单、选择产品 |
| 生产任务 | 工序计划生产数量、单位生产用量、通知结果(已通知/未通知)、关联工单明细、生产工序 |
| 生产报工 | 报工时间、本次报工数量、不良品数、本次工时、工资类型(计件/计时)、不良品原因、质检结果、质检时间、选择生产工单、报工产品、生产工序 |
| 生产入库 | 本次入库数量、入库时间、入库结果(待入库/已入库)、选择生产工单、入库产品、入库仓库 |
| 其他入库 | 本次入库数量、入库类型(报溢/借入/期初/盘盈/调拨/销售退货/其他)、来源单据类型/编号、入库时间、关联入库产品、关联入库仓库 |
| 其他出库 | 本次出库数量、出库类型(销售出库/采购退货/报损/借出/盘亏/调拨/其他)、来源单据类型/编号、出库时间、关联出库产品、关联出仓仓库 |
| 库存调拨 | 本次调拨数量、调拨类型(库存预警/满仓调离/生产领料/其他)、审批结果/时间、出库状态/调出时间、入库状态/调入时间、调拨产品、调出/调入仓库 |
| 库存盘点 | 本次盘点数量、盘点类型(期初/存货/期末/抽盘)、本次盘点时间、入库/出库状态、关联产品、盘点仓库 |
| 库存实时统计-不分仓库 | 关联产品(其余全公式) |
| 库存实时统计-分仓库 | 关联产品+关联仓库+仓库标题(其余全公式) |
| 库存期初期末 | 出入库时间、期初库存、入库总数量、出库总数量、关联产品、关联仓库 |
编号规则(无自动编号的平台用文本字段+前缀):CP-/GX-/CK-/CW-/KH-/ZH-/XSDD-yyyyMMdd-XXXX/MX-/SCGD-/SCBG-/SCRK-/QTRK-/QTCK-/KCDB-/KCPD-。
3.3 关联关系(31 条)
客户跟进.关联客户↔客户信息;销售订单.关联客户→客户信息、.收款账户→资金账户;订单明细.关联销售订单↔销售订单、.关联产品→产品信息;生产工单.关联销售订单↔销售订单;工单明细.关联生产工单↔生产工单、.选择产品→产品信息、.关联生产任务↔生产任务;生产任务.生产工序→工序班组;生产报工.选择生产工单↔生产工单、.报工产品↔工单明细、.生产工序→工序班组;生产入库.选择生产工单↔生产工单、.入库产品↔工单明细、.入库仓库→仓库;其他入库.关联入库产品→产品信息、.关联入库仓库→仓库;其他出库.关联出库产品→产品信息、.关联出仓仓库→仓库;库存调拨.调拨产品→产品信息、.调出仓库/调入仓库→仓库;库存盘点.关联产品→产品信息、.盘点仓库→仓库;仓位.关联仓库↔仓库;统计-不分仓.关联产品→产品信息;统计-分仓.关联产品/关联仓库→产品信息/仓库;期初期末.关联产品/关联仓库→产品信息/仓库。
3.4 公式清单(38 个,跨平台通用语义)
产品全称=名称&"-"&规格;订单明细:不含税单价=含税/(1+税率)、含税总额=数量×含税单价、不含税总额、总税额;报工:合格品数量=报工数−不良品数、工资=IF(计件,合格数×计件单价,工时×计时单价);期初期末:期末库存数量=期初+入库−出库;统计表:总入库=生产入库+其他入库、总出库=其他出库、即时库存数=总入库−总出库;工单明细:生产进度=已入库/计划生产数量、待入库数量;任务:任务状态=IF(合格数≥计划,"已完成","未完成")、任务进度、待生产数。写法必须遵守 §4 坑位(两段二级链、link-vs-link)。
4. 引擎坑位库(改动前必读,全部实战验证)
飞书(lark-cli)
- 公式三级链
[A].[B].[C]静默变[无效引用]:field-create 返回 ok:true 且回显原表达式,必须 read-back 验证。绕法:两段二级链辅助字段或 FILTER 模式。 - lookup 关联键必须 link-vs-link 或 link-vs-primary(ID):formula/text 对 link 永不匹配(聚合永远为 0)。
- 按钮↔工作流绑定无 API(field-update 加 workflow_id/automation_id、ButtonTrigger 加 button_field_name 全被拒或不持久化)→ 只能 UI 手绑;workflow datetime 用
{"value_type":"date","value":"now"}。 - IF() 分支含 lookup 字段类型 ambiguous,workflow 写 number 字段报 pathType 20 → 改
MAX(expr,0)。 - LarkMessageAction receiver 必须至少一个有效 user(空数组+send_to_everyone 也被拒);receiver 支持两级 link 下钻
$.step.fldLink.fldUser。 - SetRecordTrigger 对公式字段加 operator/value 运行时永不触发;watch 真实 select 字段才有效。
+table-create --fields在 Windows 静默失败:先建表再加字段;中文 JSON 一律写文件--json @./f.json;@file 解析目录=CLI 安装目录且随应用升级变化。- record link 单元格
[{"id":"recXXX"}];datetime 用"YYYY-MM-DD HH:mm:ss";record-batch-update 对所选记录施加同一 patch,逐条不同值用 record-upsert。
钉钉(dws aitable)
--tables/--fields/--records不支持 @file,只能内联单引号 JSON;--dsl支持 @file。+table-bootstrap常返回 partial_success(表+字段实际已建):回读+list-tables/field list确认,绝不重试(会重复建);field create的 CREATE_FIELD_READBACK_PENDING 同理良性。- 关联字段
type=bidirectionalLink+config{"linkedTableId","multiple":true}自动生成反向关联;记录 cells 键=fieldId;link 值{"linkedRecordIds":["recId"]}。 - 工作流:先
workflow edit-example取权威 DSL;成功=status:success+valid:true+issues:[];新建默认 STOP,enable 出参只是动作确认,必须 workflow list 验证 RUNNING;无按钮触发器,用 WhenRecordUpdated(field+where)/WhenRecordCreated;无 NOW() 时间表达式。 - 无自动编号;number 字段 API 写入后公式不重算时需 field update 原样重存 config 唤醒。
企业微信(wecom-cli smartsheet)
- reference(关联)字段在建子表时一并传会被静默跳过——必须建表后用字段新增接口补建。
- 记录写入 851003/no-authority:企业可见范围>10 人触发;结构照常交付,停止写数据并报告,不切 webhook(无 URL 时)。
- 单选写入直接传选项文本;docid 参数名全小写;布尔值必须 JSON true/false;doc import 的 Windows 反斜杠路径报 893001 → 改正斜杠。
- 无自动化工作流引擎(最大能力差距);无自动编号;最终回复禁止出现任何内部 ID。
5. 工作流配方库
5.1 飞书 12 条(ButtonTrigger/SetRecordTrigger/AddRecordTrigger/TimerTrigger + SetRecordAction/AddRecordAction/LarkMessageAction)
- 质检完成确认:Button(生产报工) → SetRecord(质检结果=已质检, 质检时间=now) → Message(质检员,经 生产工序 link 下钻)
- 生产入库确认:Button(生产入库) → SetRecord(入库结果=已入库, 入库时间=now)
- 调拨出库确认:Button(库存调拨) → SetRecord(出库状态=已出库, 调出时间=now) → AddRecord(其他出库:类型=调拨出库, 来源单据编号=调拨单编号, 产品/仓库/数量 ref 触发记录)
- 调拨入库确认:Button(库存调拨) → SetRecord(入库状态=已入库, 调入时间=now) → AddRecord(其他入库:类型=调拨入库)
- 盘盈入库确认:Button(库存盘点) → SetRecord(入库状态=已入库) → AddRecord(其他入库:类型=盘盈入库, 数量=盘盈数量)
- 盘亏出库确认:Button(库存盘点) → SetRecord(出库状态=已出库) → AddRecord(其他出库:类型=盘亏出库)
- 生产通知:Button(生产任务) → SetRecord(通知结果=已通知) → Message(班组长)
- 通知质检:Button(生产报工) → Message(质检员)
- 销售订单审批:Button(销售订单) → SetRecord(订单状态=待审批) → Message(审批人)
- 库存预警:TimerTrigger 每日 09:00 → FindRecord(产品信息, 预警状态≠正常) → Loop → Message
- 工单派工通知:SetRecordTrigger(生产工单.工单状态=已派工) → Message(工单负责人)
- 入库完成通知:SetRecordTrigger(生产入库.入库结果=已入库) → Message(工单负责人,经 link 下钻)
5.2 钉钉 8 条(workflow-dsl/v1,WhenRecordUpdated/WhenRecordCreated + SendMessage)
质检完成通知(生产报工.质检结果=已质检)、入库完成通知(生产入库.入库结果=已入库)、调拨出库/入库通知(库存调拨.出库/入库状态)、盘盈入库/盘亏出库通知(库存盘点)、新生产任务通知(WhenRecordCreated+mustHaveFields)、新销售订单待审批(创建+订单状态=待审批)。先 dws aitable workflow edit-example 取权威 DSL;receiver 用 $.system_node.ownerUserId;新建默认 STOP,enable 后必须 workflow list 验证 RUNNING。
5.3 企微补偿方案
无自动化引擎:状态流转(入库确认/质检确认/审批)由人工修改对应单选字段;可用平台定时任务(cron)轮询"待入库/待质检/待审批"记录并经机器人消息提醒经手人。
6. 样例数据字典(112 条业务链)
产品 8(镀锌钢管DN25/DN50、不锈钢法兰DN80、碳钢弯头DN40、热轧钢板、镀锌槽钢、焊丝、防锈漆)→ 工序 5(下料/焊接/镀锌/打磨/包装)→ 仓库 4(成品/原料/半成品/废品)→ 客户 5 → 资金账户 3 → 跟进 5 → 销售订单 5(状态覆盖草稿~已完成)→ 明细 6 → 工单 5(含 2 条库存计划)→ 工单明细 5 → 任务 8 → 报工 8(质检混合)→ 生产入库 6 → 其他入库 6(期初为主)→ 其他出库 6(销售出库2+领料3+报损1)→ 调拨 4(2完成+1未执行+1驳回)→ 盘点 4 → 统计 8+8 → 期初期末 4 → 仓位 4。写前先测 1 条含关联的记录并回读验证格式,再批量。
7. 验证清单(搭建/改动后)
- 全部关联字段回读非空且指向正确目标表
- 公式字段读回无
[无效引用];报工合格数、工资、期末库存手算一致 - 统计表即时库存数 = 该产品生产入库(已入库)+其他入库−其他出库,与手算一致
- 未质检报工不计入任务合格数(质检闸门生效)
- 工作流:改状态/点按钮后 record-list 看副作用;钉钉 workflow list 全 RUNNING
- 样例数据:每个表 ≥10 条(统计/明细表按组合数)
- 仪表盘图表有数据渲染
8. 安全与隐私
包内不含任何密钥、token、租户私有 ID;文中出现的三套参考系统 ID 仅作只读示例;所有操作以使用者自身平台身份授权执行。实例化后的系统权限由使用者自行管理。
9. 更新
见 CHANGELOG.md;语义化版本,minor=新增能力,patch=修坑。
10. SkillHub 上架与打包踩坑记录(实测)
- zip 条目路径必须正斜杠:PowerShell Compress-Archive 写反斜杠条目会被判「文件路径不安全」跳过;用 Compress-Archive 生成后以 .NET 逐条目复制并
FullName.Replace('','/')重写。tar 的 zip JSZip 解析失败不可用。 - 文件白名单
.md .json .jsonl .sh;无扩展名文件被 400 拒绝(LICENSE 放 frontmatter);二进制图片被客户端禁止。 - 浏览器自动化上传:后台标签不弹文件选择框,先 OS 激活标签;React 受控输入用原生 setter+input 事件;提交报错靠 monkey-patch window.fetch 捕获响应体。
- 提交接口
POST https://api.skillhub.cn/api/v1/orgs/{orgId}/skills,201 即进入审核;审核进度在「我的 Skills」;升级= bump 版本+重传,审核中勿重复提交同版本号。
11. 多平台适配器路由(三平台均生产实测)
| 能力 | 飞书多维表格 | 钉钉 AI 表格 | 企业微信智能表格 |
|---|---|---|---|
| 工具 | lark-cli | dws aitable | wecom-cli smartsheet |
| 建表效率 | 逐表+逐字段 | base/table-bootstrap 整套 | 逐子表 |
| 跨表聚合 | lookup + FILTER 公式 | filterUp(动态 currentSheetFieldId) / lookup(associateField) | reference + formula FILTER 原生支持 |
| 自动化 | 12 条(按钮/字段/定时触发) | 8 条(记录变更/创建/定时触发,无按钮) | 无自动化:人工流转+cron 提醒补偿 |
| 关联字段 | link+bidirectional | bidirectionalLink 自动反向 | reference 必须建表后补建 |
| 自动编号 | auto_number ✅ | ❌ 文本前缀 | ❌ 文本前缀 |
| 记录关联值 | [{"id":"rec"}] | {"linkedRecordIds":["rec"]} | 目标记录 id |
| 触发公式字段过滤 | 永不触发(坑 6) | where 条件可用(查询语义) | — |
| 对账 SQL | 无 | psql 只读 | records query |
选平台建议:要按钮化操作与最全自动化选飞书;要记录变更自动通知选钉钉;要公式最省心、纯 API 写入选企微(注意配人工流转)。