根据我下方的需求生成开发清单,如有疑问则向我提问,如有更好的建议则向我提出
# 1. 在hqzcsj\templates\zfba_wcnr_jqaj_tab.html新增一个"导出报表"按钮,单击后显示下拉框,包含'xlsx','csv'两项,点击对应的按钮下载对应格式的文件,使用hqzcsj\templates\wcnr_tjb.xlsx作为模板
## 数据来源:主要来源是hqzcsj\templates\zfba_wcnr_jqaj_tab.html,还有2个是其他tab页中数据源的来源,你帮我分析下这个数据获取如何获取
### 1. hqzcsj\templates\zfba_wcnr_jqaj_tab.html
### 2. hqzcsj\templates\zfba_jq_aj_tab.html
### 3. hqzcsj\templates\wcnr_1393zhibiao_tab.html
## 导出逻辑
### 过滤条件
#### 1. 开始时间,结束时间
#### 2. 类型(初始化默认不选,则为全量)
### 写入规则(行)
#### 1. 第6行为"全市"对应前端页面结果集中的"全市"
#### 2. 第7-11行分别对应地区为'445302','445303','445381','445321','445322'5个地区的值
### 写入规则(列)
    - B列为结果集中的"警情"列的值
    - C列为结果集中"同比警情比例"列的值
    - D列为结果集中"转案率"列的值
    - E列为结果集中"转案率"-"同比转案率"的值
    - F列为结果集中"刑事"列的值
    - G为结果集中"刑事"列的值/"hqzcsj\templates\zfba_jq_aj_tab.html"刑事"列的值
    - H列为结果集中"场所案件"列的值
    - I列为结果集中"同比场所案件比例"的值
    - J列为结果集中"矫治文书(行政)"之后数据源(即hqzcsj\dao\jzqk_tongji_dao.py第98行的sql)的计数值,即hqzcsj\templates\jzqk_tongji_tab.html中"违法犯罪人数"的值
    - K列为"矫治数"/"违法犯罪人数"(J列),格式为百分比2位小数,矫治数的判定规则为:结果集(即hqzcsj\dao\jzqk_tongji_dao.py第98行的sql),下方满足任意条件则符合"矫治数"
        + 1. "是否开具矫治文书"值为'是'的
        + 2. "是否刑拘"值为'是'的
        + 3. "治拘大于4天"值为'是'且"是否治拘不送"值为'否'的
        + 4. "是否送校"值为'是'的
    - L列为"开具监护文书数/违法犯罪人数(J列)"百分比2位小数,结果集(即hqzcsj\dao\jzqk_tongji_dao.py第98行的sql)
        - 开具监护文书数:结果集中"开具家庭教育指导书"值为'是'的
    - M列为"涉刑人员送学数/犯罪人数"百分比2位小数,结果集(即hqzcsj\dao\jzqk_tongji_dao.py第98行的sql)
        + 涉刑人员送学数:
            - 结果集"案件类型"值为'刑事'且"是否刑拘"值为'否'且"是否送校"值为'是'的
        + 犯罪人数
            - 结果集"案件类型"值为'刑事'且"是否刑拘"值为'否'
    - N列为"符合送生数"/"已送人数",格式为'X/X'中间用'/'分隔,结果集(即hqzcsj\dao\jzqk_tongji_dao.py第98行的sql)
        + 符合送生数:
            - 结果集"是否符合送生"值为'是'的
        + 已送人数:满足以下任一条件则符合"已送人数"
            - 1. "是否刑拘"值为'是'的
            - 2. "治拘大于4天"值为'是'且"是否治拘不送"值为'否'的
            - 3. "是否送校"值为'是'的
    - O列为hqzcsj\templates\wcnr_1393zhibiao_tab.html中"结业后再犯数(违法犯罪)"列的值
    - P列为hqzcsj\templates\wcnr_1393zhibiao_tab.html中"结业后再犯数(犯罪)"列的值

# 任务:根据我下方的需求生成开发清单,如有疑问则向我提问,如有更好的建议则向我提出
## 在hqzcsj中新增一个tab页,名为"未成年人10个率",代码前缀均为wcnr_10lv_*,同时html和js要分开写,且分别放在hqzcsj\templates和hqzcsj\static中
### 查询区(参考hqzcsj\templates\zfba_wcnr_jqaj_tab.html的查询区):
    - 时间范围控件:格式为'YYYY-MM-DD HH:MM:SS',"开始时间"默认为当天向前减7天,"结束时间"默认为当天,时间格式均为'00:00:00',如今天是'2026-01-27',那"开始时间"为'2026-01-20 00:00:00',"结束时间"为'2026-01-27 00:00:00'
    - "环比开始"和"环比结束"时间控件,格式为'YYYY-MM-DD HH:MM:SS',环比开始默认向前推14天,时间为'00:00:00',环比结束默认向前推7天,时间为'00:00:00',如今天是'2026-01-22'那环比开始默认是'2026-01-08 00:00:00',环比结束默认是'2026-01-15 00:00:00'
    - "类型",多选下拉框,通过```SELECT "leixing"FROM "ywdata"."case_type_config";```获取
    - "查询",点击查询通过时间范围和类型过滤数据
    - "显示环比",滑动开关,点击后显示环比的数据
    - "显示比例",滑动开关,点击后显示"同比/环比"显示比例
    - "导出":单击按钮,单击"导出"弹出'csv','xlsx'两个下拉按钮,单击对应按钮下载对应格式文件,数据为"数据展示区"显示的数据,文件名为"未成年人10个率报表统计"+{时间戳}.csv/xlsx
    - "导出详情":单击按钮,单击"导出"弹出'csv','xlsx'两个下拉按钮,单击对应按钮下载对应格式文件,数据源为我提供的数据源的详细数据,文件名为"未成年人10个率数据"+{时间戳}.csv/xlsx
### 数据展示区(参考hqzcsj\templates\zfba_wcnr_jqaj_tab.html的查询区)
    - 其中()中的数据项是可根据"显示环比","显示比例"滑动开关'显示/隐藏'的
    - 数据区的数据都是可以点击的,参考hqzcsj\templates\zfba_wcnr_jqaj_detail.html
    - 地区:统一按照代码映射{445300:市局,445302:云城,445303:云安,445381:罗定,445321:新兴,445322:郁南,'all':全市}
    - 警情、同比警情(环比警情、同比比例、环比比例):数据源使用hqzcsj\templates\zfba_jq_aj_tab.html中的"警情"
    - 转案率(同比转案率、环比转案率):数据源使用hqzcsj\templates\zfba_jq_aj_tab.html中的"转案率",这里不显示转案数,直接显示"转案率",百分比两位小数
    - 行政、同比行政、刑事、同比刑事(环比行政、环比刑事、同比行政比例、同比刑事比例、环比行政比例、环比刑事比例)数据源使用hqzcsj\templates\zfba_jq_aj_tab.html中的
    - 案件(被侵害)、同比案件(被侵害)(环比案件(被侵害)、同比案件(被侵害)比例、环比案件(被侵害)比例)数据源使用hqzcsj\templates\zfba_jq_aj_tab.html中的
    - 违法犯罪人员、同比违法犯罪人数(环比违法犯罪人数、同比违法犯罪人数比例、环比违法犯罪人数比例、):数据源使用hqzcsj\templates\jzqk_tongji_tab.html中的违法犯罪人数
    - 专门教育学生结业后再犯数(专门教育学生结业后再犯率):
        + 显示格式为'X1/X2',其中X1是"专门教育学生结业后犯罪数",X2是"专门教育学生结业数"
        + 点击"显示比例"显示"专门教育学生结业后再犯率",值为"X1/X2"的结果集,百分比2位小数,
        + 专门教育学生结业后犯罪数:数据来源为hqzcsj\templates\wcnr_1393zhibiao_tab.html中的"结业后再犯数(犯罪)"
        + 专门教育结业人数:zq_zfba_wcnr_sfzxx("jz_time"<6),时间范围'lx_time',类型'jzyy',身份证号'sfzhm
    - 专门(矫治)教育学生结业后再犯数(专门(矫治)教育学生结业后再犯率):
        + 显示格式为'X1/X2',其中X1是"专门(矫治)教育学生结业后再犯数",X2是"专门(矫治)教育学生结业数"
        + 点击"显示比例"显示"专门(矫治)教育学生结业后再犯率",值为"X1/X2"的结果集,百分比2位小数,
        + 专门(矫治)教育结业人数:zq_zfba_wcnr_sfzxx,时间范围'lx_time',类型'jzyy',身份证号'sfzhm
        + 专门(矫治)教育学生结业后再犯数:数据来源为:专门(矫治)教育结业人数中在zq_zfba_wcnr_xyr表中通过身份证号"xyrxx_sfzh"匹配,且离校时间'lx_time'要小于立案时间'ajxx_join_ajxx_lasj'
    - 案件(场所被侵害)、同比案件(场所被侵害)(同比案件比例(场所被侵害)、环比案件(场所被侵害)、环比案件比例(场所被侵害)):逻辑参考hqzcsj\templates\zfba_wcnr_jqaj_tab.html中的"场所案件",但是过滤逻辑改为"重点管控行业"和"一般商业"
    - 刑事占比、同比刑事占比:
        + 显示格式为'X1/X2',X1为未成年人刑事案件数,数据源为hqzcsj\templates\zfba_wcnr_jqaj_tab.html中的"刑事",X2为刑事案件数,数据源为hqzcsj\templates\zfba_jq_aj_tab.html中的"刑事"
        + 点击"显示比例"显示"刑事占比",值为"X1/X2"的结果集,百分比2位小数,
    - 严重不良未成年人矫治教育占比
        + 显示格式为'X1/X2',X1为严重不良未成年人矫治人数,X2为违法犯罪人员数
        + X1为严重不良未成年人矫治人数,数据底数为hqzcsj\templates\jzqk_tongji_tab.html的数据源
            - 过滤条件(符合下方任意条件即满足):
                + "是否送校"值为'是'的
                + "治拘大于4天"值为'是'的且"是否治拘不送"值为'否'的
                + "是否刑拘"值为'是'的
                + "是否开具矫治文书"值为'是'的
    - 专门(矫治)教育占比:
         + 显示格式为'X1/X2',X1为已矫治人数,X2符合矫治人数,数据源为hqzcsj\templates\jzqk_tongji_tab.html的数据源
         + 已矫治人数(符合下列任一条件):
            - 年龄>12
            - "是否送校"值为'是'的
            - "是否刑拘"值为'是'的
            - "治拘大于4天"值为'是'且'是否治拘不送'值为'否'的
        + 符合矫治人数:
            - 年龄>12
            - "2次违法且案由相同且第一次违法开具了训诫书"值为'是'的
            - "治拘大于4天"值为'是'的
            - "3次及以上违法"值为'是'的
            - "案件类型"值为'刑事'且"是否刑拘"值为'否'的
    - 纳管人员再犯占比:
         + 显示格式为'X1/X2',X1为纳管人员再犯数,X2纳管人员数
         + 纳管人员数据源:
            ```
            SELECT bzr.xm 姓名,bzr."zjhm"证件号码 ,bzr.lxdh 联系电话,bzr.hjdz 户籍地,bzr."jzdz" 居住地 ,bzr.lgsj 列管时间,bzr."ssfj_dm" 所属分局代码,bdz."ssfj" 分局,bdz."sspcs" 派出所,
            bzr."sspcs_dm" 所属派出所代码
            FROM "stdata"."b_zdry_ryxx" bzr  LEFT JOIN "stdata"."b_dic_zzjgdm" bdz ON bzr."sspcs_dm" =bdz."sspcsdm" 
            WHERE bzr."deleteflag" =0 AND bzr."sflg" =1
            ```
        + 纳管人员再犯数:通过证件号码与ywdata.zq_zfba_xyrxx表的xyrxx_sfzh匹配,同时列管时间要小于ajxx_join_ajxx_lasj立案时间
# 任务:你帮我分析下hqzcsj\templates\wcnr_1393zhibiao_tab.html中的结业后再犯数(犯罪)的逻辑对不对
## 业务逻辑名:结业后再犯数(犯罪)
### 业务逻辑数据项:1. 专门教育结业人数 2. 结业后再犯数(犯罪)
### 业务逻辑数据来源
        专门教育结业人数:zq_zfba_wcnr_sfzxx("jz_time"<6),时间范围'lx_time',类型'jzyy',身份证号'sfzhm
        结业后再犯数(犯罪)：专门教育结业人数中在zq_zfba_wcnr_xyr表中通过身份证号"xyrxx_sfzh"匹配,且离校时间'lx_time'要小于立案时间'ajxx_join_ajxx_lasj'且案件类型'ajxx_join_ajxx_ajlx'='刑事'


## 在hqzcsj\templates\hqzcsj_zongcha.html中"获取提请文书"功能中新增一个数据源:
### 要求:新建一个表,名为zq_zfba_jtjyzdtzs2
### 接口:http://68.26.7.47:1999/com/api/v1/com/model/getQueryPageData
### 请求参数:
    access_token: c3f447df-e4f3-415f-9ec7-8014e3e35916
    quickFilter: C75050E4832B4F5C882B7AE04B11FAC3
    modelId: 3014B3FB4791461998A87D794ED94077
    where: {"rules":[{"field":"AJBH","op":"like","value":"","type":"string","format":""},{"field":"WS_ID","op":"like","value":"16D4504F3D133E95E06307E21D44D3E7,2355D72E6AA448329C46D56C8A57B8B4","type":"string","format":"","linkOp":"or"},{"field":"WSZH","op":"like","value":"","type":"string","format":""},{"field":"XGRY_XM","op":"like","value":"","type":"string","format":""},{"field":"DYCS","op":"between","value":"0|999","type":"number","format":""},{"field":"DYSJ","op":"between","value":"|","type":"date","format":"yyyy/MM/dd HH:mm:ss"},{"field":"CBDW_MC","op":"like","value":"","type":"string","format":"","linkOp":"or"},{"field":"CBDW_BH_1","op":"like","value":"","type":"string","format":""},{"field":"CBR_XM","op":"like","value":"","type":"string","format":""},{"field":"KJSJ","op":"between","value":"|","type":"date","format":"yyyy/MM/dd HH:mm:ss"},{"field":"SPSJ","op":"between","value":"|","type":"date","format":"yyyy/MM/dd HH:mm:ss"},{"field":"WSZT","op":"like","value":"03","type":"string","format":"","linkOp":"or"}],"op":"and"}
    mark: yshdws
    modelName: 已审核的文书SZ
    pkName: ID
    modelMark: yshdws
    resType: 02
    funcMark: yshdws
    funcId: 6CDD88E5222140A1B66E608814697B84
    resId: 17CF516331DE4DF6800761D9452BAAEF
    page: 1
    pagesize: 
    sortname: KJSJ,LRSJ,SPSJ,DYSJ
    sortorder: desc,desc,asc,asc
    new-password
### 响应数据:
    {
        "msg": "查询成功！",
        "code": 200,
        "success": true,
        "Total": 315,
        "Data": {},
        "Rows": [
            {
                "AJMC": "XXX被盗窃案",
                "WSZH": "XXXX书第〔2026〕 360049号",
                "WSZTName": "审批通过",
                "DYCS": "1",
                "XGRY_XM": "XXX",
                "CBDW_MC": "XXXXXXXX派出所",
                "ZJZ": "4B77178231B87FB1E06316E21D4467B5",
                "DYSJ": "2026-02-23 19:46:23",
                "SPR_XM": "陈双龙",
                "WS_ID": "2355D72E6AA448329C46D56C8A57B8B4",
                "AJBH": "AXXXX816400002026016007",
                "SPSJ": "2026-02-23 19:45:08",
                "KJSJ": "2026-02-23 19:45:00",
                "WSMC": "加强监督教育/责令接受家庭教育指导通知书(XXX)",
                "BD_ID": "76A30A63E92B4DC38338051D0F8999CE",
                "ID": "4B7D20708EC4B9DFE06316E21D44DC4E",
                "CBR_XM": "XXX,XXX",
                "WSZT": "03",
                "LRSJ": "2026-02-23 19:35:17"
            },

## 将weichengnianren-djdo\templates\wcnr_djdo\index.html的"采取矫治教育措施率","责令加强监护率","涉刑人员送学率"数据源改为hqzcsj\templates\jzqk_tongji_tab.html的数据源
### "采取矫治教育措施率"
    - 分子(满足以下任一条件):
        + 1. "是否开具矫治文书"值为'是'的
        + 2. "是否刑拘"值为'是'的
        + 3. "治拘大于4天"值为'是'且"是否治拘不送"值为'否'的
        + 4. "是否送校"值为'是'的
    - 分母:结果集计数
### "责令加强监护率"
    - 分子:结果集中"开具家庭教育指导书"值为'是'的
    - 分母:结果集计数
### "涉刑人员送学率"
    - 分子:结果集"案件类型"值为'刑事'且"是否刑拘"值为'否'且"是否送校"值为'是'的
    - 分母:结果集"案件类型"值为'刑事'且"是否刑拘"值为'否'且"年龄"大于12的

---

## hqzcsj_zongcha 数据源目录公共接口说明（2026-02-26）

### 新增接口
- 路径：`GET /hqzcsj/zongcha/api/sources`
- 参数：`scope=fetch|tqws|all`（默认 `all`）
- 鉴权：与“获取综查数据”页一致，需先通过 fetch tab 密码解锁

### 返回字段
- `scope`：`fetch` 或 `tqws`
- `key`：稳定键（前端提交值）
- `name`：展示名称
- `table`：入库表名
- `pk_fields`：主键字段数组
- `requires`：认证要求（`cookie+authorization` 或 `access_token`）
- `time_mode`：时间模式（`range` 或 `none`）

### 前端迁移注意
- “获取数据”与“获取提请文书”下拉都改为目录接口动态加载。
- 选择项 `value` 使用 `key`，不再依赖中文 `name`。
- 启动接口继续传 `sources: [key...]`，路由路径与响应结构不变。

### 兼容策略
- 服务层 `zongcha_start` 仍兼容旧中文 `name` 输入（通过 key/name 映射）。
- 兼容下线时间：**2026-04-30** 后计划移除 name 输入兼容，仅接受 `key`。

---

## 提请文书新增数据源：`jtjyzdtzs2`（2026-02-26）

### 目标
- 在“获取提请文书”中新增数据源 `jtjyzdtzs2`。
- 入库新表：`ywdata.zq_zfba_jtjyzdtzs2`（动态建表）。

### 注册信息
- `key`: `jtjyzdtzs2`
- `name`: `加强监督教育/责令接受家庭教育指导通知书(新)`
- `table`: `zq_zfba_jtjyzdtzs2`
- `where.WS_ID`: `16D4504F3D133E95E06307E21D44D3E7,2355D72E6AA448329C46D56C8A57B8B4`
- 日期格式：`yyyy/MM/dd HH:mm:ss`
- `extra_form`: `{"new-password": ""}`

### 兼容映射
- `jtjyzdtzs2`
- `加强监督教育/责令接受家庭教育指导通知书(新)`
- `加强监督教育/责令接受家庭教育指导通知书（新）`
- `加强监督教育/责令接受家庭教育指导通知书2`

### 行为说明
- token 仍由页面输入 `access_token` 提供，不在代码中固化。
- `pagesize` 保持 `1000`。
- 目录接口 `GET /hqzcsj/zongcha/api/sources?scope=tqws` 自动返回新源。

---

## jzqk_tongji 监护文书口径切换（2026-02-26）

- 文件：`hqzcsj/dao/jzqk_tongji_dao.py`
- 变更点：`是否开具家庭教育指导书` 的判定来源由 `zq_zfba_jtjyzdtzs` 切换为 `zq_zfba_jtjyzdtzs2`。
- 新匹配口径：`ajbh = 案件编号` 且 `xgry_xm = 姓名`。
- 时间口径：`spsj BETWEEN start_time AND end_time`。
- 参数顺序同步调整为：`[start_time, end_time, start_time, end_time] + type_params`。

---

## 导入送校数据 `jz_time` 口径调整（2026-02-27）

- 文件：`weichengnianren-djdo/0125_wcnr_sfzxx_import.py`
- 字段含义变更：`ywdata.zq_zfba_wcnr_sfzxx.jz_time` 由日期口径改为“矫治时长（月）”整数。
- 导入规则：从 Excel “矫治时间”文本中提取首个阿拉伯数字；提取不到则写入 `NULL`。
- 建表/迁移：`ensure_table` 目标字段类型改为 `INTEGER`；若历史列不是 `int4`，执行 `ALTER COLUMN jz_time TYPE INTEGER USING NULL`。
- 回归影响：`是否送校` 等统计逻辑不依赖 `jz_time`，不受本次改动影响。

---

## 未成年人10个率（`wcnr_10lv`）新增（2026-02-27）

### 新增文件
- `hqzcsj/routes/wcnr_10lv_routes.py`
- `hqzcsj/service/wcnr_10lv_service.py`
- `hqzcsj/dao/wcnr_10lv_dao.py`
- `hqzcsj/templates/wcnr_10lv_tab.html`
- `hqzcsj/templates/wcnr_10lv_detail.html`
- `hqzcsj/static/js/wcnr_10lv_tab.constants.js`
- `hqzcsj/static/js/wcnr_10lv_tab.helpers.js`
- `hqzcsj/static/js/wcnr_10lv_tab.app.js`

### 集成变更
- `hqzcsj/templates/hqzcsj_zongcha.html` 新增 Tab：`未成年人10个率`（`data-tab="wcnr10lv"`）。
- `app.py` 注册蓝图：`wcnr_10lv_bp`，URL 前缀 `/hqzcsj`。

### 新增接口
- `GET /hqzcsj/wcnr_10lv/api/leixing`
- `GET /hqzcsj/wcnr_10lv/api/summary`
- `GET /hqzcsj/wcnr_10lv/detail`
- `GET /hqzcsj/wcnr_10lv/api/detail`
- `GET /hqzcsj/wcnr_10lv/export`
- `GET /hqzcsj/wcnr_10lv/export_detail`
- `GET /hqzcsj/wcnr_10lv/detail/export`

### 导出规则
- 汇总导出：文件名 `未成年人10个率报表统计{ts}.csv/xlsx`。
- 详情导出：文件名 `未成年人10个率数据{ts}.xlsx`；CSV 详情按指标拆分后以 zip 下载。
- 详情导出周期：同比始终导出；环比按 `show_hb` 开关控制。

### 关键口径
- 场所被侵害：分类结果严格等于 `重点管控行业` 或 `一般商业`。
- 专门教育再犯（犯罪）：`jz_time < 6`，`lx_time < 立案时间`，案件类型 `刑事`，并按身份证生日与立案时间校验 `<18`。
- 专门(矫治)教育再犯：`lx_time < 立案时间`，不限制刑事。
- 组合指标 `X1/X2` 与比率列点击明细：默认打开分子明细。
