# Ralph Fix Plan - 保洁巡检模块 ## 需求文档 参考: docs/物业服务AIoT平台-保洁服务模块.md(模块二:巡检小程序后端) ## High Priority ### 1. 数据库表 + DO + Mapper ✅ - [x] 创建 `ops_inspection_template` 表及 SQL(巡检检查项模板) - [x] 创建 `ops_inspection_record` 表及 SQL(巡检主记录) - [x] 创建 `ops_inspection_record_item` 表及 SQL(巡检明细) - [x] 创建对应 DO 类: OpsInspectionTemplateDO, OpsInspectionRecordDO, OpsInspectionRecordItemDO - [x] 创建对应 Mapper: OpsInspectionTemplateMapper, OpsInspectionRecordMapper, OpsInspectionRecordItemMapper - SQL: sql/mysql/aiot_ops_inspection.sql - DO: environment-biz/dal/dataobject/inspection/ - Mapper: environment-biz/dal/mysql/inspection/ ### 2. 巡检模板 CRUD(管理后台配置检查项) ✅ - [x] InspectionTemplateService 接口 + Impl(增删改查,按 function_type 查询) - [x] InspectionTemplateController(管理端 REST API) - [x] 请求/响应 VO 类 ### 3. 获取动态表单接口 ✅ - [x] GET /admin-api/ops/inspection/template/list-by-area - 入参: area_id + detected_beacons(蓝牙指纹数组) - 逻辑: area_id → 查 ops_bus_area 获取 function_type → 查 ops_inspection_template 加载检查项 - 返回: 检查项列表 ### 4. 蓝牙位置校验逻辑 ✅ - [x] InspectionLocationService(位置校验服务) - 入参: area_id + detected_beacons - 查询 ops_area_device_relation 获取该区域绑定的信标列表 - 匹配算法: 至少1个绑定信标匹配,且 RSSI > 阈值 - 返回: 校验通过/失败 - [x] InspectionController + verify-location 端点 - [x] DetectedBeaconVO, LocationVerifyResultVO ## Medium Priority ### 5. 提交巡检结果接口 - [ ] POST /admin-api/ops/inspection/submit - 入参: area_id, is_location_exception, items[{template_id, is_passed, remark}] - 逻辑: 1. 保存 ops_inspection_record 主记录 2. 批量保存 ops_inspection_record_item 明细 3. 判定 result_status: 任意一项 is_passed=false → 不合格 4. 不合格时触发异步归属判定 - [ ] InspectionRecordService 接口 + Impl - [ ] InspectionController(巡检提交 REST API) ### 6. 归属判定异步逻辑 - [ ] InspectionAttributionService(归属判定服务) - 以巡检提交时间为基点,回溯该区域上一个 COMPLETED 工单 - 获取保洁员实际停留时长 T_stay(来自 ops_order.actual_duration 或工单扩展) - 获取区域标准时长 clean_threshold(来自 ops_bus_area.standard_duration) - 判定: - T_stay >= clean_threshold → attribution_result=2(突发状况),不扣分 - T_stay < clean_threshold → attribution_result=1(个人责任),扣信用分 - 更新 ops_inspection_record 的 attribution_result, last_order_id, stay_duration ### 7. 整改工单自动创建 - [ ] 不合格巡检触发创建整改派单 - 调用现有 OpsOrderService / OrderLifecycleManager 创建工单 - source_type = INSPECTION - 关联 generated_order_id 回写到 ops_inspection_record - 对接工单引擎的优先级和派单逻辑 ## Low Priority - [ ] 巡检记录查询接口(分页、按区域/时间筛选) - [ ] 巡检统计接口(合格率、不合格热点区域) ## Completed - [x] 需求分析与表结构设计 - [x] Task 1: 数据库表 + DO + Mapper(3表、3DO、3Mapper) - [x] Task 2: 巡检模板 CRUD(Service + Impl + Controller + VOs) - [x] Task 3: 获取动态表单接口(list-by-area,area_id → function_type → template 查询链路) - [x] Task 4: 蓝牙位置校验(InspectionLocationService + verify-location 端点) ## Notes - 巡检是保洁业务线内的子功能,代码放 viewsh-module-environment-biz - 复用 ops_area_device_relation 做蓝牙信标校验,不新建 iot_device_location - 复用 ops_bus_area.standard_duration 作为 clean_threshold,不新建 ops_rule_config - Controller 放在 ops-server 模块的 controller/admin/inspection/ 下 - 遵循现有 CleanOrderService 的编码模式