Commit Graph
113 Commits
Author SHA1 Message Date
my_local_kimi_dev2 267bc59a8f fix(es): 电量消息归一化——value 支持字符串形态、createTime ISO 文本转本地格式
生产 _source 实测:value 索引为文本("28"/"100"),原 isNumber 判空
导致 value 恒 null;createTime 为 ISO 文本(2026-09-21T10:00:00.000+08:00),
原样输出与老系统 yyyy-MM-dd HH:mm:ss 口径不一致,统一归一。
2026-09-22 11:36:54 +08:00
my_local_kimi_dev2 d87a8752a1 fix(es): 电量消息 createTime range 改发 epoch 毫秒
electricitymessage 索引 createTime 是 date 类型
(format strict_date_optional_time||epoch_millis),yyyy-MM-dd HH:mm:ss
字符串会被 400 拒绝;对齐老系统 DateUtils.parseDate 转 Date 后由
transport 序列化为 epoch 毫秒的口径。
2026-09-22 11:30:46 +08:00
my_local_kimi_dev2 7613499dfb docs(agent-service): AGENTS.md 补充生产 ES 7.7.1 与高阶客户端不兼容的坑 2026-09-22 11:24:22 +08:00
my_local_kimi_dev2 6be5169217 fix(es): ES 集群 7.7.1 与高阶客户端 7.17 不兼容,电量消息/换纸日志查询降级低阶 RestClient
生产两个 ES 集群均为 7.7.1:elasticsearch-java 7.17 的 vendor Content-Type
(application/vnd.elasticsearch+json; compatible-with=7) 被 406 拒绝,
且其 X-Elastic-Product 响应头校验(7.14 引入)在 7.7.1 上无法通过。
ElectricityMessageEsGatewayImpl 与 PaperUseLogEsGatewayImpl 改用低阶
RestClient 直连(application/json、无产品头校验),查询语义不变。
修复REQ-20260921-0007上线后 tools/call 406 冒烟失败。
2026-09-22 11:21:46 +08:00
my_local_kimi_dev2 10d618dac2 docs: AGENTS.md 补充 reassignment confirm 一次性 token 注意项与 mcp.json 读取限制 2026-09-22 09:11:58 +08:00
my_local_kimi_dev2 6e7a5da19d docs(agent-service): add AGENTS.md with ai-proj project id 224 and known MCP contract limits 2026-09-21 18:40:10 +08:00
my_local_kimi_dev2 b3b5877e26 feat(hardware): 新增设备电量消息记录查询工具 (REQ-20260921-0007) 2026-09-21 17:59:20 +08:00
wangheng 3e82e76135 Merge pull request '[REQ-20260921-0006] 新增电池故障列表查询 MCP 工具' (#27) from feat/REQ-20260921-0006-battery-fault-list into main
Merge pull request #27 from feat/REQ-20260921-0006-battery-fault-list

[REQ-20260921-0006] 新增电池故障列表查询 MCP 工具
2026-09-21 17:00:53 +08:00
qiudl 315f9bafff feat(hardware): 新增电池故障列表查询工具 (REQ-20260921-0006) 2026-09-21 10:43:30 +02:00
wangheng c47668f6b9 Merge pull request 'feat(open): 服务身份免登录分页查询(REQ-20260921-0004)' (#26) from feat/REQ-20260921-0004 into main 2026-09-21 16:06:37 +08:00
my_local_kimi_dev2 3f46b64218 feat(open): 服务身份免登录分页查询(REQ-20260921-0004)
- agent_scope 新增 service_enabled 标记(Flyway V7 + 回滚),服务 Token 签发
  由 sync 硬编码改为标记驱动,管理后台作用域 CRUD/前端支持该标记
- PermissionService 全部行过滤入口加 tenant_service 分支:服务主体总部视角
  全量可见不做行过滤,用户身份行为不变;非服务主体的 null user 显式拒绝
- warehouse.todo.list.query 按当前登录人统计,服务身份返回 PERMISSION_DENIED
- RateLimitService 新增 SERVICE-QUERY 独立限流档(默认 300/分钟)
- seed-dev.sql 新增 ops-query 作用域并绑定全部在线查询工具
- 文档:tools-reference §0.3、README Open API 服务 Token 段
2026-09-21 15:58:08 +08:00
wangheng 47886fed3e 排除 Spring Boot ES 自动装配(双 RestClient bean 冲突) (#25) 2026-09-20 19:02:04 +08:00
wangheng 4999c79667 修复 elasticsearch-rest-client 被 Boot BOM 顶成 8.x 导致启动失败 (#24) 2026-09-20 18:58:23 +08:00
wangheng 1f433b5275 新增 district.paper.statistics.query 客户用纸统计工具(含 ES 7.17 客户端引入) (#23) 2026-09-20 18:54:30 +08:00
wangheng 68fd71edbb [fix] 出入库工具复查修复:调拨待办漏本人修改/待办行串位/调拨派生入库单凭证回查 (REQ-20260919-0003) (#22) 2026-09-19 22:28:02 +08:00
my_local_kimi_dev2 c9240fa31c [fix] 工单工具审查修复:销售负责人前缀碰撞/装机人员/撤机凭证/送货权限范围 (#22) 2026-09-18 14:30:46 +08:00
wangheng 1ed33ef828 [REQ-20260918-0004] 撤机工单 MCP 查询工具(列表+详情) (#21) 2026-09-18 12:13:02 +08:00
my_local_kimi_dev2 2c6760ce60 [REQ-20260917-0010] 移机工单 MCP 查询工具(列表+详情) (#20) 2026-09-17 18:36:33 +08:00
wangheng c3aa167403 [REQ-20260917-0003] 取货工单 MCP 查询工具(列表+详情) (#19) 2026-09-17 11:44:21 +08:00
my_local_kimi_dev2 4e5ee541e3 docs(mcp): update ops/ai integration docs with prod scope facts
- 新增 4.1 生产环境对接现状(MCP 入口、ensure 换签、握手流程)
- operation scope(id=2) 当前绑定 24 个工具;移除未绑定的 agent.count
- xiaoqu-ai scope(id=3) 当前绑定 12 个工具;代理域工具改为实际可用映射
- 开发顺序改为按 4.1 清单对照核验
2026-09-16 18:30:07 +08:00
mcp_dev1andmy_local_kimi_dev2 936590a3e3 feat(mcp): add install order query tools (REQ-20260916-0009) 2026-09-16 17:15:24 +08:00
wangheng 6c8fe2e3bb [REQ-20260916-0020] 送货工单 MCP 查询工具(列表+详情) (#18) 2026-09-16 16:41:08 +08:00
my_local_kimi_dev2 c430cc9322 docs(mcp): install order tools design (reviewed) 2026-09-16 15:04:30 +08:00
my_local_kimi_dev2 12de320459 feat(admin): scope tools dialog with category tabs and table
- top category tabs with per-category counts and selected badges
- table layout: checkbox, tool name, description, type, status
- header checkbox for select-all with indeterminate state
- search filter and selected-only toggle
- footer summary of cross-category selections
- keep existing data-testid hooks for E2E tests
2026-09-16 11:35:17 +08:00
jiashumengandmy_local_kimi_dev2 487a41df74 feat: add warehouse stock query MCP tool 2026-09-16 10:03:25 +08:00
my_local_kimi_dev2 798075f47e docs: add MCP external integration spec v1.0 2026-09-16 09:55:19 +08:00
my_local_kimi_dev2 a575736c81 feat(admin): paginate tools list endpoint and console UI
- GET /tools returns ToolPageView{total,page,pageSize,records}, pageSize=0 keeps full-list mode
- App.vue adds pager below tools table; scope/audit/category pickers use allTools
- add backend pagination tests and front-end pager contract test
2026-09-16 09:52:19 +08:00
shumeng 6e8cf60fd3 Merge pull request 'feat(sync): expose contract display context' (#17) from codex/mcp-source-domain-identity into main 2026-09-16 09:08:06 +08:00
jiashumeng 025ee7ffa6 feat(sync): expose contract display context 2026-09-15 20:18:43 +09:30
shumeng 6d8093fa14 Merge pull request 'feat(sync): 合同发送前权威复核' (#16) from codex/crm-contract-sync-review into main
合并合同发送前权威复核;本地全量229项测试通过。
2026-09-15 18:02:42 +08:00
jiashumeng 5c73751889 docs(sync): record post-merge verification 2026-09-15 19:27:12 +09:30
jiashumeng 15620bb4bf Merge branch 'main' of http://39.104.65.241:3000/wangheng/xiaoqu_mcp_service into codex/crm-contract-sync-review 2026-09-15 19:26:16 +09:30
jiashumeng dfe14b29e3 docs(sync): refresh review branch status 2026-09-15 19:25:15 +09:30
jiashumeng 8b5d531f3a feat(sync): add pre-delivery contract verification 2026-09-15 19:23:08 +09:30
my_local_kimi_dev2 78e319c2f9 feat(mcp): add warehouse todo unified query tool
Merge outbound/inbound/allocation process views into warehouse.todo.list.query,
filtered by task assignee (user_id) matching legacy todo semantics (REQ-20260915-0008)
2026-09-15 17:32:59 +08:00
jiashumeng a1c6ac10e5 docs(sync): record MCP delivery boundary 2026-09-15 18:51:34 +09:30
jiashumeng e3b6edeb7b fix(sync): align public change stream schema 2026-09-15 18:49:27 +09:30
jiashumeng 4cd95c61ab docs: separate MCP CRM integration progress 2026-09-15 18:24:13 +09:30
wangheng 76d461a7ec Merge pull request 'feat(mcp): add warehouse inbound query tools' (#15) from feat/warehouse-in-mcp-tools into main 2026-09-15 16:34:57 +08:00
jiashumengandxiaoqu e2835362e9 feat(mcp): add warehouse inbound query tools 2026-09-15 16:31:40 +08:00
wangheng b008a5754a Merge pull request 'feat(mcp): add warehouse outbound query tools' (#14) from feat/warehouse-out-mcp-tools into main 2026-09-15 15:30:44 +08:00
jiashumeng f559012a4c feat(mcp): add warehouse outbound query tools 2026-09-15 16:56:49 +09:30
jiashumeng e064e86def feat(admin): add managed Open API client keys 2026-09-15 12:05:26 +09:30
wangheng 6cf1c0f4a0 Merge pull request 'docs(mcp): CRM 接入手册 (REQ-20260911-0013)' (#13) from docs/REQ-5628-crm-guide into main 2026-09-14 12:21:39 +08:00
wangheng f95de7eceb docs(mcp): CRM 接入手册 (REQ-20260911-0013) 2026-09-14 12:21:26 +08:00
wangheng e408768fe5 Merge pull request 'feat(mcp): 增量同步框架与 users/properties/contracts changes 工具 (REQ-20260911-0013)' (#12) from feat/REQ-5628 into main 2026-09-14 12:20:04 +08:00
wangheng 6639b93c45 feat(mcp): 增量同步框架与 users/properties/contracts changes 工具 (REQ-20260911-0013)
- 通用 ChangesEngine:snapshot 钉住 data_cutoff_at、(modify_time,id) 复合游标、
  仅最后一页签发 next_sync_token、软删 tombstone;sync_token/cursor 为
  HMAC-SHA256 无状态令牌(SyncTokenCodec),过期/篡改/跨快照/数据域变更
  统一 SYNC_CURSOR_EXPIRED
- 注册式实体扩展:SyncEntity/Registry + users(m0.user)/properties(m0.properyt)/
  contracts(m2.contract_new) 三个实现;生效修改时间 COALESCE(modify_time, create_time)
- 硬约束:GuardedToolCallback 对 *.changes.list 拒绝 tenant_id/scope 入参,
  数据域只从 Token 推导;行级权限复用 PermissionService 与 QUERY 工具同一 ACL
- 资源隔离:RateLimitService SYNC/QUERY 分档限流(Redis 固定分钟窗)、
  limit≤200 截断、SyncQueryTimeoutInterceptor 慢查询超时(三套 SqlSessionFactory 接入)
- contract.list.query 补齐 12 字段、contract.detail.query 补 version(ACL 不变)
- V5 migration:tool.description 512→1024(含 sql/rollback 回滚文件)
- seed-dev.sql:三个 changes 工具绑定进 sync 作用域
- 修复:properyt.customerId 为 NULL 时 Collectors.toMap NPE(冒烟命中),
  改为 put 逐条装填(ContractsSyncEntity/ContractTools)
2026-09-14 12:19:36 +08:00
wangheng 949945a195 Merge pull request 'feat(mcp): 服务 Token 生命周期与开放通道域绑定 (REQ-20260911-0014)' (#11) from feat/REQ-5629 into main 2026-09-14 09:22:10 +08:00
xiaoqu a0bae500bc feat(mcp): 服务 Token 生命周期与开放通道域绑定 (REQ-20260911-0014)
- agent_api_key 增加 principal_type/subject_name(V4 Flyway + rollback),integration.context.get 按列判定主体类型\n- Open API 支持 clients 服务密钥→作用域绑定;service ensure get-or-create/无密文轮换,旧密钥禁签 service\n- 服务 Token 吊销/轮换;人员停用后 user Token 失效(60s 本地缓存);AkAuthFilter 401 返回 UNAUTHENTICATED\n- ensure 入口约束:service 仅 sync 作用域、user 禁 sync;sync 作用域预建并绑定 integration.context.get\n- 单测 157 通过;本机 test-up 冒烟通过(跨域/旧密钥/user-sync 403,service context 自检,吊销立即 401,吊销后再签发)
2026-09-14 09:20:48 +08:00
wangheng c596aa93b5 Merge pull request 'feat(mcp): 新增身份与能力自检工具 integration.context.get (REQ-20260911-0012)' (#10) from feat/REQ-5627 into main 2026-09-11 23:11:23 +08:00