# 隐患排查审核不通过重提方案 ## 目标 - 支持企业审核不通过后,驾驶员再次编辑并重新提交。 - 每次审核不通过时,保存当次提交快照、驳回原因、照片、签名等信息。 - 详情接口可返回多次审核不通过历史,便于企业端查看。 ## 后端改动 ### 主表 `hot_hidden_danger_inspection` 新增字段: - `submit_version`:提交版本号 - `audit_result`:审核结果,`PASS` / `REJECT` - `reject_count`:驳回次数 - `last_reject_reason`:最近一次驳回原因 - `last_reject_time`:最近一次驳回时间 - `last_reject_by_id`:最近一次驳回人ID - `last_reject_by_name`:最近一次驳回人姓名 ### 新表 `hot_hidden_danger_inspection_audit_history` 用于保存每次审核不通过时的完整快照: - 主单ID、计划ID、项目信息 - 提交版本号、审核轮次 - 驳回原因、审核人、审核时间、审核签名 - 当次排查内容、隐患描述、附件、排查人签名、排查人、排查时间 - `submit_snapshot_json` 作为完整快照冗余 ## 业务逻辑 ### 驾驶员提交 - 首次提交时,沿用原有 `updateByBo` 提交流程。 - 驳回后再次编辑提交时,只要主单已经被回调置为: - `status = 1` - `flow_status = REJECTED` - `instance_id = null` - 再次保存后会重新启动 `HIDDEN_DANGER_CHECK` 流程。 - 每次重提时: - `submit_version + 1` - 清空上一轮审核结论、审核签名、评估人等中间字段 - 状态回到 `status = 2` ### 企业审核 审核新增两种结果: - `PASS`:审核通过 - `REJECT`:审核不通过 处理规则: - `PASS + auditHasDanger = 0` - 流程通过 - 主单最终状态在回调中置为 `3` - `PASS + auditHasDanger = 1` - 流程通过 - 主单在回调中置为 `6` - 自动创建隐患治理流程 - `REJECT` - 先写入驳回历史表 - 主单记录最近一次驳回信息 - 流程按驳回处理 - 回调把主单恢复为可再次编辑状态 ### 流程回调 `HiddenDangerCheckCallback` 调整为: - 成功: - `flow_status = APPROVED` - 无隐患:`status = 3` - 有隐患:`status = 6` - 仅在成功且存在隐患时创建治理流程 - 驳回: - `flow_status = REJECTED` - `status = 1` - `instance_id = null` - 允许驾驶员再次提交 ## 详情接口 `queryById` 返回主单详情时,额外附带: - `rejectHistoryList` 该字段按驳回轮次倒序返回,可直接给前端做历史展开。 ## SQL 文件 SQL 已写入: - `sql/update_hidden_danger_inspection_reject_history.sql` ## 注意事项 - 当前版本只改后端,未改前端和移动端展示。 - 前端后续只要在详情页读取 `rejectHistoryList` 即可展示多次驳回历史。 - 审核接口调用时建议明确传 `auditResult`,不要再仅依赖 `auditHasDanger` 推断审核结果。