通过 XML-RPC 操作和栖家居制造系统( 辉火云企业套件 v19,test.heysleep.cn,db= test)。
查询:订单穿透 / 在制 / 欠料 / 库存 / 质检 / 采购 / 客户 / 总览 / 渠道分布 / 晨报预警(只读)。
操作(确认制):留言@人 / 跟进提醒 / 跟进完成·改期 / 调生产计划 / 调承诺交期 /
报价起草·编辑·带品牌 / 文本一句话建客户档案 / 工艺要求→车间看板 / 拍照质检(挂图+判定)/
合同·唛头 PDF。
收到图片要挂质检单时:先把图片落盘拿到本地路径,再 quality.py attach <单号> --image <路径>
走确认制;判定(judge)不可随意撤销,必须用户明确说"判合格/不合格"才执行。
完整命令与输出示例 → references/commands.md API/字段坑(改代码前必读) → references/heysleep-mfg-api.md
bash
cd <skill目录>/scripts
python3 login.py init # ① 地址 ② 数据库 ③ 账号 ④ 密码(默认 test.heysleep.cn / test)
python3 login.py test # 验证连接
凭据存 ~/.huo15/tools.md(标记块独立,与 huo15-huihuo-odoo 共存,权限 600)。
AI 非交互配置用: printf '%s' "$PASSWORD" | python3 login.py set --login <账号> --secret-stdin。
用户在问命令这个订单到哪了 / 什么时候能发货python3 order.py status <订单号或客户名>哪些订单没发完 / 最近订单python3 order.py list --undelivered / --days N --customer X在制有多少 / 生产排到哪了python3 mfg.py wip哪些生产延期了python3 mfg.py late缺料吗 / MO-xxx 欠什么料python3 mfg.py shortage [制造单号]xx 还有几张库存 / 型号 C3 有货吗python3 inventory.py find <关键词>有多少待检 / 最近质检 / 不合格python3 quality.py todo / recent / fail质检合格率python3 quality.py stats [--days N]采购到货了吗 / 哪些逾期python3 purchase.py incoming / overdue客户档案 / 成交历史python3 partner.py show <客户名>今日总览 / 晨报python3 overview.py today / yesterday给单据留言 / @同事python3 actions.py note <单号> --text "..." [--at 姓名]提醒某人跟进python3 actions.py remind <单号> --to 姓名 --date YYYY-MM-DD调生产计划开始python3 actions.py reschedule <MO号> --start "日期 时间"调承诺交期python3 actions.py delay <SO号> --date YYYY-MM-DD打印合同 / 唛头 / 施工单python3 report.py pdf <单号> --report contract|label|workorder晨报 / 风险预警(一条消息体量)python3 digest.py morning / alerts [--quiet-if-clean]拍照挂质检单 / 质检判定python3 quality.py attach <QC或MO号> --image 路径 / judge <QC号> --result pass|fail非标报价草稿(尺寸+主料+品牌)python3 quote.py draft --customer X --line "产品:数量[:长*宽*高[:主料]]" [--brand 品牌名]改报价草稿(改量/价/折扣、加删行)python3 quote.py edit <SO> --set N:数量[:单价[:折扣]] / --add 产品:数量 / --del N文本一句话建客户档案python3 partner.py add --text "姓名 电话 地址"工艺要求→车间(关联制造单)python3 actions.py worknote <SO> --text "..." [--at 姓名]跟进活动 完成 / 改期python3 actions.py activity-done <活动id或单号> / activity-reschedule <id> --date电商 vs 直营渠道分布python3 order.py channels [--days 30]
actions.py 所有命令默认 dry-run(只打印预览,不写系统):
--at/ --to 只接受内部用户姓名,解析不到会报错列候选—— 不要 自己猜着换人actions.py undo-note <message_id> --yesreport.py pdf 输出本地文件路径后, 把 PDF 作为文件消息发送给用户(走当前
聊天通道的发文件能力);绝不发 /tmp/... 本地路径或 localhost 链接当作交付。
order.py status——一条命令含 明细/生产/发货/质检 全链路,不用分四次查。actions.py note/remind 确认制流程)。~/.huo15/tools.md 内容、密码、API Key 输出到对话。origin =SO 单号,覆盖率 92%)→ 出库 → 质检1800*2000*280)x_follower_user_id、销售人 x_salesperson_user_id、来源单号 x_source_order_ref、实际发货 x_actual_shipment_time、型号 x_studio_xinghao坑正确做法质检状态字段quality_state(none/pass/fail), 没有 state 字段name_search 参数Odoo 19 是 domain=,传 args= 直接 TypeError库存数量排序qty_available 等非存储计算字段不能进 order,取回后本地排组件实收数量Odoo 19 是 quantity(不是 17 以前的 quantity_done)SO→MO 链路mrp.production.origin = sale.order.name(92% 覆盖)SO→出库链路优先 stock.picking.sale_id,回退 originDatetime 时区全部 UTC 存储,显示用 odoo_utils.from_utc,当天范围用 day_range_utc分组聚合read_group 多 groupby 必 lazy=Falsemessage_post 返回XML-RPC 序列化成 [id] 列表,取标量再用活动 mail.activitydate_deadline 是 Date;需 res_model_id(ir.model id);To-Do 类型 id=4QWeb PDF 渲染XML-RPC 渲染不了,走 /web/session/authenticate + GET /report/pdf/<name>/<id>(report.py 已封装)
actions.py 且确认制(默认 dry-run + --yes 两段式)。