my_local_kimi_dev2
1a7a761a66
feat(mcp): 新增电池检查/故障汇总/现场维修记录三工具
...
- battery.inspection.list.query(m2 battery_inspection,老 /batteryInspection/pageList)
- repair.recording.list.query(m0 equipment_repair_recording,老 /equipmentRepair/recordingByPage)
- repair.handle.list.query(m0 equipment_repair_handle,老 repairRecordHandleList)
- 行权限复用 resolveRowScope 含直属下级口径(方案 B 拍板),battery 落 apply_agent_id,
repair 三字段 OR(apply_agent_id/property_id 代管/agent_id)
- 修复点:富化与字典按页批量(修 N+1 与 accessory NPE)、chipCode 落 chip_code(修拼不存在列)、
固定 id DESC 砍掉 sidx/sord 动态排序注入面、传 agentId 仍叠加行级 ACL
- REQ-20261106-0020,515 项测试全绿
2026-11-07 09:08:39 +08:00
my_local_kimi_dev2
2024e86573
docs: 修正仓库系列 prod scope 绑定口径为实测 1/2/5
...
REQ-20261105-0020 结项:AGENTS.md 近期需求示例补充
2026-11-05 18:50:07 +08:00
my_local_kimi_dev2
e818f59911
feat(mcp): 新增仓库出入库明细与在库物品查询三工具
...
- warehouse.out.details.list.query / warehouse.in.details.list.query / warehouse.hardstock.list.query
- 出库明细硬过滤 query_flag=0 + order_state=3,入库明细 order_state=3,hardstock 固定 stock_state=0
- dateType 三态 + 缺省最近180天、跨度上限180天;固定排序不提供排序参数
- PermissionService 新增 details 级行权限变体与 HardSockLife 变体(对齐 getWarehouseAuth)
- REQ-20261105-0020
2026-11-05 18:36:06 +08:00
my_local_kimi_dev2
4e27f8137d
feat(mcp): 新增清机记录查询工具 hardware.cleanlog.list.query
...
对齐老系统 /hardwareCleanLog/listByPage,修正 5 处老接口坑(设计文档
doc/hardware-cleanlog-mcp-design.md §5):agentId 传了仍叠加行级 ACL、
富化/图片按页批量消除 N+1、时间过滤明确落 modify_time、status=1 硬过滤
口径保持、type!=0 时 beforeCleanPics 恒空保持。
- 实体/Mapper 从 publicbeanandmap 逐字段复制(25+13 列全核对)
- PermissionService 新增 applyHardwareCleanLogRowFilter(镜像
applyHardwareRowFilter 同一 getByIsAgent 变体)
- 分页 selectCount+LIMIT 物理分页,rows 上限 100 截断+notice
- 图片 type=0 行内 picurl,type!=0 按页 IN 批量查 hardware_clean_pic
按 order_no 拼 OSS URL
- 入参校验抛 ToolCallException(INVALID_ARGUMENT)
- seed-dev.sql 补 hardware/ops-query scope 绑定;reference 文档登记 #45
测试:新增 6 个单测,全量 482 tests 全绿
2026-11-04 18:04:02 +08:00
my_local_kimi_dev2
fecbb2d95a
fix(sync): buildings 流补 ChangesTools import 与 ChangesToolsTest 断言
2026-10-27 08:54:40 +08:00
my_local_kimi_dev2
6cbb29170a
fix(sync): 应收单本地实体补 create_id/create_name 字段
...
PR #31 在 SyncEntity 输出销售人员字段,但本地实体拷贝未同步加列,导致编译失败
2026-10-26 11:39:56 +08:00
my_local_kimi_dev2
fff1ae2d3b
fix(mcp): sale-receivable-orders 实体/Mapper 改用本仓 me.iiv.agent 包并补齐 ChangesToolsTest
...
PR #30 误引用未纳入依赖的 me.iiv.iivframework 参考库导致编译失败;
按本仓惯例在 entity/m1、mapper/m1 落本地拷贝,测试断言同步为 14 个变化流工具。
2026-10-23 17:53:09 +08:00
my_local_kimi_dev2
b7308c836a
chore(mcp): agent.user.list.query 工具描述定位为员工查询(代理人员查询)
2026-10-13 13:51:18 +08:00
my_local_kimi_dev2
14f2cd3ea9
docs(agent): 近期需求示例登记 REQ-20261012-0004 空感工具
2026-10-13 11:50:41 +08:00
my_local_kimi_dev2
de71262101
docs: register REQ-20261013-0006 agent.user.list.query in AGENTS.md
2026-10-13 11:45:02 +08:00
my_local_kimi_dev2
5b0e59feb2
feat(mcp): add toilet.airquality list/detail/metrics/statelog query tools (REQ-20261012-0004)
2026-10-13 11:39:32 +08:00
my_local_kimi_dev2
e1fcae2eb1
feat(mcp): add agent.user.list.query for agent-role user listing
...
查询 m0.user 中 enterprise_type=1 的代理角色用户,返回所属权限组、
dept_user 部门岗位明细与当前站点;行级权限复用 visibleAgentIds
(总部全量/代理商自己+直属下级+代管),mobile 原样不脱敏,
idcard/password/openid 不进白名单,不返回位置字段。
设计:doc/agent-user-list-mcp-tool-design.md(2026-10-13 王恒拍板)
2026-10-13 11:33:19 +08:00
my_local_kimi_dev2
f4eb2387db
docs(agent): 近期需求示例登记 REQ-20261012-0002 换纸记录工具
2026-10-12 14:26:59 +08:00
my_local_kimi_dev2
be5f661a41
Merge branch 'feat/paper-trace-list-mcp-tools': 客户换纸记录 MCP 工具 (REQ-20261012-0002)
2026-10-12 14:18:38 +08:00
my_local_kimi_dev2
f55e07f6ec
feat(mcp): 新增 district.paper.trace.list.query 客户换纸记录工具 (REQ-20261012-0002)
...
- ES paperuselog 热/冷索引 + LocalEsDate 云/本地集群路由(复用 statistics 同款)
- 出分页明细(from+size+track_total_hits),不复刻老系统 scroll 轨迹展开
- snCode/rfid 走 .keyword 精确匹配(修老系统 matchQuery 分词坑)
- state 可选(2上纸/4撤纸,不传查所有,修老系统强制覆盖坑);区间硬限 31 天
- applyDistrictRowFilter 站点可见性校验(老系统此接口无鉴权属历史遗漏,MCP 收紧)
- isAssignment 查 m0 rfid_info assignment_flag>=1;v1 不返回满卷标记
- 单测 420/420(新增 gateway 4 例 + 工具 9 例)
2026-10-12 14:18:30 +08:00
my_local_kimi_dev2
8eaadbf527
docs(mcp): 重写人均用纸统计设计文档对齐已发布实现 (REQ-20260922-0004)
2026-10-12 14:18:30 +08:00
my_local_kimi_dev2
377145cafe
fix(district): position.detail 报错透出对齐 ToolCallException (REQ-20261012-0003)
...
入参校验/超 31 天/超 StatisticsDays 抛 INVALID_ARGUMENT,站点无权抛
NOT_FOUND_OR_FORBIDDEN,具体文案透出给调用方(对齐 traffic/device_average),
不再被统一掩码成 DATA_INTEGRITY_ERROR。Redis StatisticsDays 缺失维持
IllegalStateException 兜底掩码(服务端配置问题)。
2026-10-12 14:09:10 +08:00
my_local_kimi_dev2
3f7a487f38
feat(district): 新增 district.paper.position.detail.query 客户用纸详情工具 (REQ-20261012-0001)
...
- 纯 MySQL monthly_statistics,位置(厕位/厕墙)×日期分组
- 修复老接口整数除法截断 bug,厕墙人均改 null
- 位置命名直查 positions/toilet,补行级权限
- 扁平 rows[] 输出,seed/文档登记
2026-10-12 11:54:33 +08: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
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
my_local_kimi_dev2
c9240fa31c
[fix] 工单工具审查修复:销售负责人前缀碰撞/装机人员/撤机凭证/送货权限范围 ( #22 )
2026-09-18 14:30:46 +08:00
my_local_kimi_dev2
2c6760ce60
[REQ-20260917-0010] 移机工单 MCP 查询工具(列表+详情) ( #20 )
2026-09-17 18:36:33 +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
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
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
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