wangheng
3aa74cbcde
docs(agent): 记录人流量统计需求的 ai-proj 关联信息
2026-09-24 16:30:22 +08:00
wangheng
e41ecf9ea1
feat(mcp): 新增人流量统计工具,统计类工具查询区间统一限一个月
...
- district.traffic.statistics.query:复刻老 trafficStatistics 饼图与
trafficStatisticsDetail 折线图,SUM(use_count) 按 gender/日期×gender 聚合,
view=gender 占比 + view=daily_gender 按日趋势零填充(修正老系统插入错位 bug)
- 行级权限对齐 district.paper.* 系列;gender=null 归「未配置」不再 NPE
- 日期区间硬限 31 天(一个月),超出报错提示修改日期(2026-09-24 拍板);
district.paper.percapita.query 与 district.paper.device_average.query 同步加限,
与 Redis StatisticsDays 取更严
- 新增 12 个单测;设计文档 doc/traffic-statistics-mcp-tool-design.md
2026-09-24 16:22:10 +08:00
wangheng
0e7c7e778b
docs(agent): 补充 ai-proj submit/review 流转接口契约
2026-09-24 11:05:36 +08:00
wangheng
89af0c45fc
docs(agent): 记录设备生命周期需求的 ai-proj 关联信息与 REST 契约实测
2026-09-24 11:01:03 +08:00
wangheng
98a3d3c6e4
fix(mcp): 生命周期列表改为 selectCount+LIMIT 物理分页
...
项目未注册 MyBatis-Plus 分页拦截器,selectPage 不做物理分页且 total 恒为 0
(2026-09-24 生产冒烟实测),对齐项目内 battery.fault.list.query 的既有做法
2026-09-24 10:21:57 +08:00
wangheng
04f7508062
docs(mcp): 工具参考文档新增设备生命周期两个工具章节
2026-09-24 09:46:56 +08:00
wangheng
1f145e0c57
feat(mcp): 新增设备生命周期查询工具
...
- hardware.device.lifecycle.query:按 SN 模糊分页查询 device_life_cycle 当前状态,
含流转/在途/在库/联网/资产五组状态文案、关键日期、在途天数与超期标记
(阈值取 Redis Dictionary.MaxRoadDays,缺失 fail fast)
- hardware.device.lifecycle.detail.query:按 SN 精确聚合事件时间线,
覆盖生产档案/质检/出入库(含发货信息)/安装上下线/备用机日志(ES hardwarelog),
时间倒序,SN 不存在返回 found=false
- 复刻老系统 lifeCycleListByPage 与 lookDetail,按拍板不做权限校验、
不复制 exchange_state 排除、物流公司名用 mall_order_logistics 冗余列
- ES 备用机日志走低阶 RestClient 云集群,SpecialSncode 集合命中跳过
- 新增 15 个单测(含 ES 请求体断言、排序、null 安全、fail fast 路径)
- 设计文档:doc/device-lifecycle-mcp-tool-design.md
2026-09-24 09:40:06 +08:00
wangheng
d95bd4d57c
feat(mcp): 工具注册同步支持更新已有工具元数据
...
- 已存在工具自动更新 category/kind/description,无需手动改库
- status 仍由管理端维护,同步不覆盖;只插不删语义保留
2026-09-23 13:56:01 +08:00
wangheng
31122e25f1
fix(mcp): 用纸统计类工具分类统一调整为 customer
2026-09-23 13:46:08 +08:00
wangheng
51f8639a3a
feat(admin): 管理端改为多标签导航
...
- 菜单点击打开标签页,标签可关闭,关闭当前标签自动切换相邻标签
- 页面面板 v-show 保活,切换标签保留筛选/分页/选中状态
- 激活标签仍刷新数据,登录/退出重置标签
- 补充多标签契约测试
2026-09-23 13:03:16 +08:00
qiudl
c1ebb30cce
Merge remote-tracking branch 'origin/main' into feat/REQ-20260922-0004-paper-percapita
...
# Conflicts:
# xiaoqu-agent-service/README.md
# xiaoqu-agent-service/doc/agent-mcp-tools-reference.md
2026-09-22 11:30:56 +02:00
qiudl
7385b06bd9
feat(mcp): 新增设备日均用纸统计工具 (REQ-20260922-0007)
2026-09-22 11:29:08 +02:00
qiudl
35d7ad73ed
feat(mcp): 新增人均用纸统计工具 (REQ-20260922-0004)
2026-09-22 11:29:08 +02:00
my_local_kimi_dev2
6d76cfd70e
docs: 部署前先推 main 的教训(本地领先 origin 导致生产跑旧代码)
2026-09-22 15:03:25 +08:00
my_local_kimi_dev2
a61040e2bc
fix(es): paperuselog state terms 过滤结构修正——{"terms":{"state":[2,4]}} 误写成嵌套 terms 对象被 ES 7.7.1 以 400 拒绝(生产实测);补 Gateway impl 层单测锁请求体结构
2026-09-22 14:38:44 +08:00
my_local_kimi_dev2
c7b6f84db4
docs(agent-service): AGENTS.md 补 paperuselog rfid 为 text 类型须用 rfid.keyword 聚合的坑
2026-09-22 13:48:17 +08:00
my_local_kimi_dev2
58d01e9a47
fix(es): paperuselog rfid 去重聚合改 rfid.keyword——rfid 为 text 类型,terms 聚合 text 字段被 7.7.1 以 400 拒绝(生产实测)
2026-09-22 13:47:41 +08:00
my_local_kimi_dev2
dc43920d5c
docs(agent-service): AGENTS.md 补充 electricitymessage 字段形态与 curl 直连冒烟坑
2026-09-22 11:39:46 +08:00
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_dev1 and my_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
jiashumeng and my_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