slug: enterprise-integration-assistant
name: enterprise-integration-assistant
displayName: 企业效率提升神技
summary: 对话式企业集成助手:一句话对接金蝶/用友/SAP/泛微/钉钉/企微/飞书,查库存、查经营、应收催收分级、供应商月度对账、自动开票草稿、供应商比价、单据写操作+IM 审批联动(审批通过自动提交审核入账),把 ERP 数据搬进 IM 随叫随到。
description: 企业效率提升神技(ERP 集成助手),通过自然语言对接金蝶星空云、用友(YonSuite/U8+)、SAP 等 ERP 与泛微 OA 进行业务数据查询/流程创建,支持钉钉、企业微信、飞书消息通知。一句话查库存、凭证、往来单位、订单,生成每日经营播报,做应收 AI 催收分级与策略建议,做供应商月度对账结算单,生成销项开票草稿,做供应商比价,创建采购订单草稿并推送 IM 审批卡片,审批通过后自动金蝶提交+审核入账(全程审批登记幂等可追溯),创建 OA 流程,推送结果到 IM 群。
version: 2.0.0
author: shenzhiwen
trigger:
- 查库存
- 查凭证
- 查订单
- 查往来单位
- 查客户
- 查供应商
- 查物料
- 查询金蝶
- 查询用友
- 查询SAP
- ERP查询
- 发送钉钉
- 发送企微
- 发送飞书
- 创建OA流程
- 泛微流程
- 企业集成
- 经营早报
- 经营播报
- 每日播报
- 早报推送
- 库存预警
- 逾期应收
- 销售日报
- 催收
- 应收催收
- 催收管家
- 催收工作台
- 应收账款分级
- 逾期客户提醒
- 对账
- 月度对账
- 供应商对账
- 对账结算单
- 供应商月度对账
- 入库对账
- 采购对账
- 暂估应付
- 自动开票
- 开票草稿
- 开票任务
- 待开票
- 已发货未开票
- 拆票
- 销项发票
- 开票提醒
- 供应商比价
- 采购比价
- 比价报告
- 价格对比
- 采购价格分析
- 涨价预警
- 潜在节约
- 降本
- 单据写操作
- 审批联动
- 审批卡片
- 创建采购订单
- 下采购单
- 单据审批
- 审批通过入账
- 自动入账
- 提交审核
category: 企业服务
license: MIT
dependency:
- python 3.10+
- requests
- pycryptodome(仅泛微 RSA 换 token 需要)
permission:
- 网络访问(调用 ERP WebAPI 与 IM 开放平台)
- 环境变量读取(凭证不硬编码,走 env 注入)
企业效率提升神技(Enterprise Integration Assistant)
把企业 ERP 数据查询能力封装为可被 AI Agent 调用的技能。用户用自然语言提问,技能解析意图后路由到对应系统适配器执行,返回结构化结果,并可选推送到钉钉/企微。
能力范围
v2.0(当前版本)
- 金蝶星空云(K3Cloud):业务对象查询(库存、凭证、往来单位、物料、订单),第三方系统登录授权;应收单查询(逾期/到期,含客户编码)、低库存预警、按日期销售汇总、采购入库单查询、采购发票查询、销售出库单查询(含税率)、销项发票查询、采购订单明细查询(含税单价);单据写操作:保存草稿(Save)/ 提交(Submit)/ 审核(Audit)
- 用友(YonSuite/YonBIP + U8+):签名换 access_token,通用官方 API 调用(call_api)
- SAP(S/4HANA/ECC Gateway OData v2):通用 OData 查询(物料/订单/库存等标准 API 服务)
- 泛微 e-cology(OA):token 鉴权 + 创建流程(submitRequest)+ 通用开放接口
- 钉钉 / 企业微信 / 飞书:群消息/工作通知发送;钉钉/企微支持 markdown,飞书支持 interactive 卡片
- 每日经营播报:聚合昨日销售(销售额/订单/环比)、低库存预警 Top10、逾期与 7 天内到期应收,生成早报卡片推送到 IM 群(
src/report.py) - 应收 AI 催收管家:拉取逾期应收 → 按逾期天数分级(M1 轻度 / M2 中度 / M3 重度 / M4 危险,单笔 ≥10 万上提一级)→ 输出催收策略(短信提醒/电话对账函/正式催款函/法务介入)→ 按客户聚合生成催收工作台并推送(
src/collection.py)。只读数据 + 策略建议,不自动发送催收消息 - 供应商月度对账结算单:拉取某月采购入库单 + 采购发票(应付单)→ 按供应商聚合对比入库 vs 开票金额 → 识别差异(未开票入库=暂估应付 / 开票超出入库=异常 / 尾差内=正常)→ 生成月度对账结算单并推送(
src/reconciliation.py)。只读数据 + 出对账结果,不自动发送对账单 - 销项自动开票草稿:拉取某月销售出库单(已发货)+ 销项发票 → 按客户聚合「已发货未开票」差额 → 生成开票草稿(按税率分组金额、单张限额自动拆票、涉及单据号溯源)→ 输出开票任务清单推送财务群(
src/invoicing.py)。识别开票超出库异常(红字/预开票)。只读数据 + 出开票建议,不直接调用开票接口,财务确认后执行 - 供应商比价:拉取当月 + 上月采购订单明细 → 按「物料 × 供应商」聚合数量加权均价 → 多源价差预警(供应商数 ≥2 且价差率超阈值,附潜在节约金额=Σ(均价-最低价)×数量)+ 涨价预警(同一供应商环比上月涨幅超阈值)→ 生成比价报告推采购群(
src/price_compare.py)。只读数据 + 出比价建议,不自动切换供应商或下单 - 单据写操作 + IM 审批联动(v2.0 新增):IM 里一句话创建采购订单草稿(金蝶 Save,不提交不审核)→ 推送审批卡片(含明细/总金额/审批单号)→ 审批通过自动金蝶 Submit + Audit 入账,驳回则登记作废(
src/bill_flow.py)。审批登记持久化(data/approvals.json),approve/reject 幂等防重复,写操作不可绕过审批。当前支持采购订单,后续扩销售订单/付款申请单 - 统一输出:所有查询结果输出为 Markdown 表格,敏感字段自动脱敏
v2 后续
- 更多单据类型(销售订单 / 付款申请单)+ 审批人身份校验
- 定时轮询 + 库存预警阈值配置 + 多系统(用友/SAP)播报
使用方式
用户说:"帮我查一下 A 物料在华东仓的库存"
→ 技能解析:动作=查询库存,参数=物料 A,仓库=华东仓
→ 路由到 kingdee 适配器执行 ExecuteBillQuery
→ 输出 Markdown 表格
用户说:"把库存报表发送到钉钉群"
→ 技能解析:动作=发送通知,渠道=钉钉
→ 调用 dingtalk 适配器发送消息
执行流程
- 意图解析:从用户指令中提取 [系统] [动作] [业务对象] [筛选条件]
- 系统:金蝶/用友/SAP/泛微/钉钉/企微/飞书(默认金蝶)
- 动作:查询/发送
- 业务对象:库存/凭证/往来单位/物料/订单
- 筛选条件:物料编码、仓库、日期范围、数量阈值等 - 路由分发:根据系统选择适配器,构造该系统的请求参数
- 鉴权:每个适配器独立鉴权(金蝶第三方登录授权 X-KDApi-* 请求头 / 钉钉 access_token / 企微 access_token)
- 执行调用:调用目标系统 API
- 结果格式化:统一转为 Markdown 表格,脱敏后返回
- 可选通知:若用户要求发送,调用 IM 适配器推送
运行方式
# 方式一:直接 CLI 调用
python src/main.py --system kingdee --action query_stock --params '{"MaterialNumber":"A001","StockOrg":"华东仓"}'
# 方式二:JSON 管道(供 Agent 调用)
echo '{"system":"kingdee","action":"query_stock","params":{...}}' | python src/main.py --json
# 方式三:每日经营播报(聚合销售/库存/应收 → 早报卡片)
python src/report.py --date 2026-08-23 # 本地生成 markdown
python src/report.py --date 2026-08-23 --push feishu # 推送到飞书群(卡片)
echo '{"system":"report","action":"daily","params":{"date":"2026-08-23","push":"dingtalk"}}' \
| python src/main.py --json
# 方式四:应收 AI 催收管家(逾期分级 → 催收工作台)
python src/collection.py # 生成本日催收工作台
python src/collection.py --min-level M3 # 只输出 M3/M4 高优先级客户
python src/collection.py --date 2026-08-24 --push feishu # 推送到飞书群(卡片)
echo '{"system":"collection","action":"workbench","params":{"date":"2026-08-24","min_level":"M3","push":"feishu"}}' \
| python src/main.py --json
# 方式五:供应商月度对账结算单(采购入库 vs 采购发票 → 差异识别)
python src/reconciliation.py --month 2026-08 # 生成当月对账结算单
python src/reconciliation.py --month 2026-08 --tolerance 5000 # 忽略 5 千内尾差
python src/reconciliation.py --month 2026-08 --push feishu # 推送到飞书群(卡片)
echo '{"system":"reconciliation","action":"monthly","params":{"month":"2026-08","push":"feishu"}}' \
| python src/main.py --json
# 方式六:销项自动开票草稿(销售出库 vs 销项发票 → 待开票识别 + 拆票)
python src/invoicing.py --month 2026-08 # 生成当月开票任务清单
python src/invoicing.py --month 2026-08 --max-amount 100000 # 单张 10 万自动拆票
python src/invoicing.py --month 2026-08 --push feishu # 推送到飞书群(卡片)
echo '{"system":"invoicing","action":"draft","params":{"month":"2026-08","max_amount":100000,"push":"feishu"}}' \
| python src/main.py --json
# 方式七:供应商比价(多源价差预警 + 涨价预警 + 潜在节约)
python src/price_compare.py --month 2026-08 # 生成当月比价报告
python src/price_compare.py --month 2026-08 --spread-pct 15 # 预警阈值 15%
python src/price_compare.py --month 2026-08 --push feishu # 推送到飞书群(卡片)
echo '{"system":"pricecompare","action":"monthly","params":{"month":"2026-08","spread_pct":10,"push":"feishu"}}' \
| python src/main.py --json
# 方式八:单据写操作 + IM 审批联动(采购订单草稿 → 审批 → 自动入账)
python src/bill_flow.py --create --supplier S001 \
--entries '[{"material_number":"M.STEEL","qty":100,"price":3200}]' --push feishu
python src/bill_flow.py --list # 查看待审批
python src/bill_flow.py --approve AP20260825001 --push feishu # 审批通过 → Submit+Audit
python src/bill_flow.py --reject AP20260825001 --reason 价格偏高
echo '{"system":"billflow","action":"create","params":{"bill_type":"purchase_order","supplier_number":"S001","entries":[{"material_number":"M.STEEL","qty":100,"price":3200}],"push":"feishu"}}' \
| python src/main.py --json
echo '{"system":"billflow","action":"approve","params":{"approval_id":"AP20260825001"}}' \
| python src/main.py --json
凭证配置(安全要求)
所有凭证通过环境变量注入,禁止硬编码在代码或配置文件中。
金蝶采用第三方系统登录授权(官方推荐,禁止明文密码登录):企业管理员在金蝶后台「第三方系统登录授权」生成应用 ID 与密钥,本技能仅调用官方 OpenAPI,凭证由企业客户自持。
# 金蝶星空云(第三方系统登录授权)
export KINGDEE_SERVER_URL="https://erp.example.com"
export KINGDEE_ACCT_ID="xxxx" # 数据中心ID
export KINGDEE_USERNAME="api_user" # 授权集成用户
export KINGDEE_APP_ID="xxxx" # 应用ID
export KINGDEE_APP_SECRET="******" # 应用密钥
export KINGDEE_LCID="2052" # 语系,默认2052
# 钉钉
export DINGTALK_APP_KEY="xxxx"
export DINGTALK_APP_SECRET="******"
# 企业微信
export WECOM_CORP_ID="xxxx"
export WECOM_CORP_SECRET="******"
export WECOM_AGENT_ID="1000002"
# 飞书(群机器人 webhook 最简)
export FEISHU_WEBHOOK="https://open.feishu.cn/open-apis/bot/v2/hook/xxxx"
# 用友(YonSuite 云产品,默认;U8+ 见 config.example.yaml)
export YONYOU_PRODUCT="yonsuite"
export YONYOU_APP_KEY="xxxx"
export YONYOU_APP_SECRET="******"
# 泛微 e-cology
export FANWEI_SERVER_URL="http://oa.example.com"
export FANWEI_APPID="xxxx" # 许可证 appid
export FANWEI_SECRET="******" # regist 返回的 secret
export FANWEI_SPK="RSA公钥" # regist 返回的 spk
# SAP(OData)
export SAP_BASE_URL="https://sap.example.com"
export SAP_USERNAME="INTEGRATION_USER"
export SAP_PASSWORD="******"
export SAP_CLIENT="100" # 可选
参考 config.example.yaml 了解完整字段说明。用户安装后需自行在环境变量中配置本企业凭证。
合规与免责声明
- 仅调用官方开放接口:本技能只使用金蝶云星空 OpenAPI、钉钉/企微开放平台的官方接口,不进行逆向工程、抓包或直连数据库。
- 凭证自持:账号/密钥全部由企业客户在自己的环境变量中配置,本技能不采集、不存储、不转发任何企业凭证与数据。
- 无隶属关系:本技能与金蝶软件、用友网络、钉钉、企业微信等公司无任何隶属、合作或授权关系,非上述公司的官方产品。
- 数据最小化:查询结果仅作展示,不做本地持久化缓存;敏感字段(手机号/银行账号)自动脱敏。唯一例外:单据审批登记(data/approvals.json)仅存审批单号/单据摘要/状态,用于写操作幂等与追溯,不含凭证。
- 使用责任:企业使用本技能须确保已获得所对接系统的合法授权。
已实现适配器
| 适配器 | 文件 | 状态 | 说明 |
|---|---|---|---|
| 金蝶星空云 | src/adapters/kingdee.py |
✅ v1.4 | K3Cloud WebAPI,第三方登录授权(X-KDApi-*);应收/低库存/销售汇总 |
| 用友 | src/adapters/yonyou.py |
✅ v1.2 | YonSuite HmacSHA256 签名 / U8+ token,call_api 通用调用 |
| 钉钉 | src/adapters/dingtalk.py |
✅ v1.4 | 群机器人 text / markdown |
| 企业微信 | src/adapters/wecom.py |
✅ v1.4 | 应用 text / markdown |
| 飞书 | src/adapters/feishu.py |
✅ v1.4 | 群机器人 webhook 文本 / interactive 卡片 |
| 泛微 e-cology | src/adapters/fanwei.py |
✅ v1.2 | appid+secret RSA 换 token,创建流程/通用接口 |
| SAP | src/adapters/sap.py |
✅ v1.2 | OData v2 通用查询(Basic Auth + sap-client) |
| 经营播报 | src/report.py |
✅ v1.4 | 聚合销售/库存/应收 → 早报卡片,--push 直达 IM |
| 应收催收管家 | src/collection.py |
✅ v1.5 | 逾期分级 M1~M4 + 大额上提 + 催收策略 + 客户聚合工作台,--push 直达 IM |
| 供应商对账 | src/reconciliation.py |
✅ v1.6 | 入库 vs 开票核对 + 差异识别 + 月度结算单,--push 直达 IM |
| 金蝶星空云 | src/adapters/kingdee.py |
✅ v1.7 | 新增销售出库单(SAL_OUTSTOCK)与销项发票(ARinvoice)查询 |
| 销项开票草稿 | src/invoicing.py |
✅ v1.7 | 出库 vs 开票差额 + 税率分组 + 限额拆票,--push 直达 IM |
| 金蝶星空云 | src/adapters/kingdee.py |
✅ v1.8 | 新增采购订单明细查询(PUR_PurchaseOrder,含税单价) |
| 供应商比价 | src/price_compare.py |
✅ v1.8 | 多源价差预警 + 涨价预警 + 潜在节约测算,--push 直达 IM |
| 金蝶星空云 | src/adapters/kingdee.py |
✅ v2.0 | 新增 Save/Submit/Audit 单据写操作 |
| 单据审批联动 | src/bill_flow.py |
✅ v2.0 | 采购订单草稿 → IM 审批卡片 → 通过自动 Submit+Audit 入账,幂等登记 |
输出规范
- 查询结果一律 Markdown 表格(表头中文,列名清晰)
- 数字金额保留 2 位小数,千分位分隔
- 敏感字段(手机号/银行账号/身份证)自动打码:
138****1234 - 查询失败返回友好错误信息,不暴露堆栈
异常处理
- 凭证缺失:提示"未配置金蝶第三方登录授权凭证,请在环境变量设置 KINGDEE_APP_ID/KINGDEE_APP_SECRET"
- 鉴权失败:提示检查应用ID/密钥/授权用户,确认企业后台已开通第三方登录授权
- 查询无结果:返回"未查询到符合条件的数据"
- 超时:默认 30s,超时提示稍后重试
开发计划
- [x] v1.0.0 架构与骨架
- [x] v1.1.0 鉴权升级:金蝶改用第三方系统登录授权(X-KDApi-*),移除密码登录,加合规声明
- [x] v1.2.0 七系统适配器:用友(YonSuite/U8)、飞书、泛微、SAP 全部接入,统一适配器接口
- [x] v1.4.0 每日经营播报(销售/低库存/应收聚合 + 飞书卡片/钉钉企微 markdown)+ 金蝶应收/低库存/销售汇总查询 + IM 适配器卡片化
- [x] v1.5.0 应收 AI 催收管家(逾期分级 M1~M4 + 大额上提 + 催收策略 + 客户聚合工作台)
- [x] v1.6.0 供应商月度对账结算单(采购入库 vs 采购发票核对 + 差异识别 + 结算单推送)
- [x] v1.7.0 销项自动开票草稿(销售出库 vs 销项发票核对 + 税率分组 + 限额拆票 + 开票任务清单)
- [x] v1.8.0 供应商比价(多源价差预警 + 环比涨价预警 + 潜在节约测算 + 比价报告推送)
- [x] v2.0.0 单据写操作 + IM 审批联动(采购订单草稿 → 审批卡片 → 审批通过自动 Submit+Audit 入账,幂等审批登记)
- [ ] v2.0.x 更多单据类型(销售订单/付款申请单)+ 审批人身份校验
- [ ] v2.1.0 定时轮询 + 库存预警阈值配置 + 多系统(用友/SAP)播报
- [ ] 催收跟进记录(工作台标记已催/结果回填)