# 三资具体问题上报 — 技术方案

## 1. 架构

Controller `/dataModel/threeAssetsProblemReport` → Service → Mapper；校验 `ThreeAssetsProblemReportValidation`；列表数据范围 `ReportDeptDataScopeSupport`；乡镇/村 `TownDeptSupport`。

## 2. 表结构

见 `sql/biz_three_assets_problem_report.sql`。已有库执行 `sql/biz_three_assets_problem_report_drop_problem_type.sql` 删除 `problem_type`。

| 列 | 说明 |
| --- | --- |
| `report_time` | 上报时间 |
| `town_dept_id` / `town_name` | 乡镇 |
| `village_dept_id` / `village_name` | 村 |
| `problem_level` | general/key/major |
| `problem_detail` | 详细描述 |
| `handle_result` | 处理结果（可空） |

物理删除；无村级唯一约束（同一村可多次上报）。

## 3. 接口

| 方法 | 路径 | 权限 |
| --- | --- | --- |
| GET | `/list` | list |
| GET | `/{id}` | query |
| POST | `/` | add |
| PUT | `/` | edit |
| DELETE | `/{ids}` | remove |
| GET | `/townOptions` | list |
| GET | `/villageTree` | list |

列表筛选：`beginReportTime`/`endReportTime`、`townDeptId`、`villageDeptId`。

## 4. 前端

详见 [三资具体问题上报前端技术方案.md](./三资具体问题上报前端技术方案.md)。

## 5. 菜单示例

```sql
-- parent_id 替换为「产业数据模型」实际 ID；menu_id 按环境递增
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('三资具体问题上报', {parentId}, 20, 'threeAssetsProblemReport', 'dataModel/threeAssetsProblemReport/index', 1, 0, 'C', '0', '0', 'dataModel:threeAssetsProblemReport:list', 'form', 'admin', sysdate(), '三资具体问题上报');

-- 按钮权限（parent_id = 上菜单 id）
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES
('三资问题上报查询', {menuId}, 1, '#', '', 1, 0, 'F', '0', '0', 'dataModel:threeAssetsProblemReport:query', '#', 'admin', sysdate(), ''),
('三资问题上报新增', {menuId}, 2, '#', '', 1, 0, 'F', '0', '0', 'dataModel:threeAssetsProblemReport:add', '#', 'admin', sysdate(), ''),
('三资问题上报修改', {menuId}, 3, '#', '', 1, 0, 'F', '0', '0', 'dataModel:threeAssetsProblemReport:edit', '#', 'admin', sysdate(), ''),
('三资问题上报删除', {menuId}, 4, '#', '', 1, 0, 'F', '0', '0', 'dataModel:threeAssetsProblemReport:remove', '#', 'admin', sysdate(), '');
```

## 6. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.1 | 删除 `problem_type` / 问题类型 |
| 1.0 | 初版 |
