# 安全责任清单 - 前端联调接口文档 > 基于模板与实例分离的新模型,同一清单可下发给多个公司。 > > **核心变更**:清单(task_list)和任务(task_detail)为模板,下发(task_list_issue)和执行(task_execution)为实例。 --- ## 变更总览 | 序号 | 接口 | 变更类型 | 主要变更点 | |------|------|----------|-----------| | 1 | 获取清单列表 | **重构** | 主表由 task_list_issue 改为 task_list,返回 TaskListCO(纯模板),新增 status 字段 | | 2 | 新增清单 | 不变 | - | | 3 | 修改清单 | **新增** | 修改清单模板信息 | | 4 | 删除清单 | **新增** | 删除清单模板 | | 5 | 开关切换 | **新增** | 开启/关闭清单 | | 6 | 获取任务列表 | **重构** | 主表由 task_execution 改为 task_detail,返回 TaskDetailCO(纯模板),传参由 taskIssueId 改为 taskListId,新增 taskStatus 字段 | | 7 | 批量保存任务 | **新增** | 批量新增/修改任务模板 | | 8 | 获取任务详情 | 不变 | - | | 9 | 企业落实情况 | **重构** | 路径由 /taskList/issueList 改为 /taskListIssue/list,以 task_list_issue 为主表 | | 10 | 获取下发记录详情 | **新增** | 通过 taskIssueId 获取下发记录详情 | | 11 | 任务执行列表 | **重构** | 路径由 /taskDetail/executionList 改为 /taskExecution/list | | 12 | 获取执行记录详情 | **新增** | 通过 taskExecutionId 获取执行记录详情 | | 13 | 反馈周期分组 | 不变 | 传参 taskExecutionId | | 14 | 反馈列表 | 不变 | 传参 taskExecutionId + feedbackPeriodFlag | | 15 | 反馈详情 | **修改** | 返回 FeedbackInfoCO(含任务信息+反馈信息),非 FeedbackCO | | 16 | 编辑反馈 | **新增** | 修改反馈内容 | | 17 | 删除反馈 | **新增** | 删除反馈记录 | | 18 | 企业评价列表 | 不变 | - | | 19 | 更新任务评分 | **重构** | 路径由 /taskDetail/updateScore 改为 /taskExecution/updateScore | | 20 | 提交反馈 | 不变 | - | | 21 | 企业任务下发统计 | 不变 | - | | 22 | 企业统计(股份端) | **新增** | 按企业统计已完成/已关闭/总任务数 | | 23 | 关闭清单 | **修改** | 传参 taskListId,同步关闭下发表+执行表状态 | | 24 | 关闭任务 | **修改** | 传参 taskDetailId,同步关闭执行表状态 | | 25 | 任务下发 | **新增** | 新增 executeDepartmentId 字段 | --- ## 枚举值 | 枚举 | 值 | 说明 | |------|------|------| | task_level | 1/2/3 | 企业级/部门级/班组级 | | switch_flag | 0/1 | 关闭/开启 | | task_list.status | 1/2/3 | 进行中/已完成/已关闭 | | task_detail.task_status | 1/2/3 | 进行中/已完成/已关闭 | | task_list_issue.status | 1/2/3 | 进行中/已完成/已关闭 | | issue_status | 0/1 | 未下发/已下发 | | task_execution.task_status | 1/2/3 | 进行中/已完成/已关闭 | | task_execution.feedback_status | 1/2 | 正常/异常 | | feedback_cycle_type | 1/2/3/4 | 每月/每季度/每半年/每年 | --- ## 一、获取任务清单列表 `POST /safetyDutyList/taskList/list` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "taskListName": "安全", "taskLevel": 1 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | taskListName | String | 否 | 清单名称(模糊查询) | | taskLevel | Integer | 否 | 任务级别:1-企业级 2-部门级 3-班组级 | ### 响应字段 ```json { "success": true, "data": [ { "id": 1, "taskListId": "uuid-xxx", "taskListName": "安全生产责任清单", "taskLevel": 1, "responsibilityPost": "安全主管", "switchFlag": 1, "status": 1, "createCorpId": 100, "createDepartmentId": 200, "createUserId": 300 } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键 | | taskListId | String | 清单UUID(业务主键) | | taskListName | String | 清单名称 | | taskLevel | Integer | 任务级别:1-企业级 2-部门级 3-班组级 | | responsibilityPost | String | 责任岗位 | | switchFlag | Integer | 是否启用:0-关 1-开 | | status | Integer | 状态:1-进行中 2-已完成 3-已关闭 | | createCorpId | Long | 创建公司ID | | createDepartmentId | Long | 创建部门ID | | createUserId | Long | 创建人ID | --- ## 二、新增任务清单 `POST /safetyDutyList/taskList/save` ### 请求参数 ```json { "taskListName": "安全生产责任清单", "taskLevel": 1, "responsibilityPost": "安全主管", "switchFlag": 1 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskListName | String | **是** | 清单名称 | | taskLevel | Integer | **是** | 任务级别:1-企业级 2-部门级 3-班组级 | | responsibilityPost | String | **是** | 责任岗位 | | switchFlag | Integer | **是** | 是否启用:1-启用 0-不启用 | ### 响应字段 同接口一的单条 TaskListCO 对象。 --- ## 三、修改任务清单 `POST /safetyDutyList/taskList/edit` ### 请求参数 ```json { "taskListId": "uuid-xxx", "taskListName": "安全生产责任清单(修改)", "taskLevel": 2, "responsibilityPost": "安全总监", "switchFlag": 1 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskListId | String | **是** | 清单UUID(业务主键) | | taskListName | String | **是** | 清单名称 | | taskLevel | Integer | **是** | 任务级别:1-企业级 2-部门级 3-班组级 | | responsibilityPost | String | **是** | 责任岗位 | | switchFlag | Integer | **是** | 是否启用:1-启用 0-不启用 | ### 响应 ```json { "success": true } ``` --- ## 四、删除任务清单 `POST /safetyDutyList/taskList/delete/{id}` ### 请求参数 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | **是** | 清单主键ID(路径参数) | ### 响应 ```json { "success": true } ``` --- ## 五、开启/关闭任务清单 `POST /safetyDutyList/taskList/switchFlag` > 调用此接口即表示要关闭任务清单(switchFlag 传 0 关闭) ### 请求参数 ```json { "taskListId": "uuid-xxx", "switchFlag": 0 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskListId | String | **是** | 清单UUID(业务主键) | | switchFlag | Integer | **是** | 开启/关闭:0-关 1-开 | ### 响应 ```json { "success": true } ``` --- ## 六、获取任务列表(模板) `POST /safetyDutyList/taskDetail/list` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "taskListId": "uuid-xxx", "taskContent": "巡检", "feedbackCycleType": 1 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | taskListId | String | **是** | 清单表主键ID | | taskContent | String | 否 | 执行内容(模糊查询) | | feedbackCycleType | Integer | 否 | 反馈周期类型:1-每月 2-季度 3-半年 4-年 | ### 响应字段 ```json { "success": true, "data": [ { "id": 1, "taskDetailId": "uuid-detail-1", "taskListId": "uuid-xxx", "executeContent": "每日安全巡检", "feedbackCycleType": 1, "feedbackCycleName": "每月", "taskScore": 10.00, "taskStatus": 1, "taskListName": "安全生产责任清单", "taskLevel": 1, "responsibilityPost": "安全主管" } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键 | | taskDetailId | String | 任务模板UUID | | taskListId | String | 清单UUID | | executeContent | String | 执行内容 | | feedbackCycleType | Integer | 反馈周期类型:1-每月 2-季度 3-半年 4-年 | | feedbackCycleName | String | 反馈周期名称 | | taskScore | BigDecimal | 任务分值 | | taskStatus | Integer | 任务状态:1-进行中 2-已完成 3-已关闭 | | taskListName | String | 清单名称 | | taskLevel | Integer | 任务级别 | | responsibilityPost | String | 责任岗位 | --- ## 七、批量保存任务 `POST /safetyDutyList/taskDetail/saveBatch` > 传入数组,批量新增/修改任务模板。有 id 为修改,无 id 为新增。 ### 请求参数 ```json [ { "taskListId": "uuid-xxx", "taskDetailId": "uuid-detail-1", "executeContent": "每日安全巡检", "feedbackCycleType": 1, "taskScore": 10.00 }, { "taskListId": "uuid-xxx", "executeContent": "每周安全会议", "feedbackCycleType": 2, "taskScore": 15.00 } ] ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 否 | 主键ID(有值则修改,无值则新增) | | taskListId | String | **是** | 清单表主键ID | | taskDetailId | String | 否 | 任务表ID(修改时传入) | | executeContent | String | 否 | 执行内容 | | feedbackCycleType | Integer | **是** | 反馈周期类型:1-每月 2-季度 3-半年 4-年 | | taskScore | BigDecimal | 否 | 任务分值 | ### 响应字段 返回 TaskDetailCO 数组,字段同接口六的单条对象。 --- ## 八、获取任务详情 `GET /safetyDutyList/taskDetail/{detailId}` ### 请求参数 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | detailId | String | **是** | 任务模板UUID(路径参数) | ### 响应字段 ```json { "success": true, "data": { "id": 1, "taskDetailId": "uuid-detail-1", "taskListId": "uuid-xxx", "taskListName": "安全生产责任清单", "taskLevel": 1, "responsibilityPost": "安全主管", "feedbackCycleType": 1, "taskScore": 10.00, "executeContent": "每日安全巡检" } } ``` | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键ID | | taskDetailId | String | 任务详情UUID | | taskListId | String | 清单表主键ID | | taskListName | String | 清单名称 | | taskLevel | Integer | 任务级别 | | responsibilityPost | String | 责任岗位 | | feedbackCycleType | Integer | 反馈周期类型 | | taskScore | BigDecimal | 任务分值 | | executeContent | String | 执行内容 | --- ## 九、企业落实情况(获取所有下发清单列表) `POST /safetyDutyList/taskListIssue/list` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "taskListId": "uuid-xxx", "executeCorpId": 100, "executeUserId": 300, "taskListName": "安全", "taskLevel": 1, "issueStatus": 1, "status": 1, "feedbackStatus": 2, "scoreStatus": 0 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | taskListId | String | 否 | 清单UUID | | executeCorpId | Long | 否 | 执行公司ID | | executeUserId | Long | 否 | 执行人ID | | taskListName | String | 否 | 清单名称(模糊查询) | | taskLevel | Integer | 否 | 任务级别:1-企业级 2-部门级 3-班组级 | | issueStatus | Integer | 否 | 下发状态:0-未下发 1-已下发 | | status | Integer | 否 | 状态:1-进行中 2-已完成 3-已关闭 | | feedbackStatus | Integer | 否 | 反馈状态:1-正常 2-异常 | | scoreStatus | Integer | 否 | 评分状态:0-未评分 1-已评分 | ### 响应字段 ```json { "success": true, "data": [ { "id": 1, "taskIssueId": "uuid-issue-1", "taskListId": "uuid-xxx", "taskListName": "安全生产责任清单", "taskLevel": 1, "responsibilityPost": "安全主管", "executeCorpId": 100, "executeCorpName": "XX公司", "executeDepartmentId": 200, "executeDepartmentName": "安全部", "executeUserId": 300, "executeUserName": "张三", "issueStatus": 1, "issueTime": "2026-01-01 00:00:00", "periodStartTime": "2026-01-01 00:00:00", "periodEndTime": "2026-12-31 23:59:59", "status": 1, "closeTime": null, "ratingScore": 85.50, "ratingUserId": 400, "ratingUserName": "李四", "ratingDepartmentId": 500, "ratingDepartmentName": "考核部", "taskCount": 5, "feedbackStatus": 1, "switchFlag": 1 } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键 | | taskIssueId | String | 下发记录UUID(业务主键) | | taskListId | String | 清单UUID | | taskListName | String | 任务清单名称 | | taskLevel | Integer | 任务级别 | | responsibilityPost | String | 责任岗位 | | executeCorpId | Long | 执行公司ID | | executeCorpName | String | 执行公司名称 | | executeDepartmentId | Long | 执行部门ID | | executeDepartmentName | String | 执行部门名称 | | executeUserId | Long | 执行人员ID | | executeUserName | String | 执行人员名称 | | issueStatus | Integer | 下发状态:0-未下发 1-已下发 | | issueTime | String | 下发时间 | | periodStartTime | String | 执行周期开始时间 | | periodEndTime | String | 执行周期结束时间 | | status | Integer | 状态:1-进行中 2-已完成 3-已关闭 | | closeTime | String | 关闭时间 | | ratingScore | BigDecimal | 评分数 | | ratingUserId | Long | 评分人ID | | ratingUserName | String | 评分人姓名 | | ratingDepartmentId | Long | 评分部门ID | | ratingDepartmentName | String | 评分部门名称 | | taskCount | Integer | 任务数 | | feedbackStatus | Integer | 反馈状态:1-正常 2-异常 | | switchFlag | Integer | 是否启用:0-关 1-开 | --- ## 十、获取清单下发记录详情 `GET /safetyDutyList/taskListIssue/{taskIssueId}` ### 请求参数 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskIssueId | String | **是** | 下发记录UUID(路径参数) | ### 响应字段 同接口九的单条 TaskListIssueCO 对象。 --- ## 十一、获取任务执行记录列表 `POST /safetyDutyList/taskExecution/list` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "taskIssueId": "uuid-issue-1", "taskListId": "uuid-xxx", "taskContent": "巡检", "feedbackCycleType": "1", "feedbackStatus": "1", "taskStatus": "1" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | taskIssueId | String | 否 | 清单下发记录UUID | | taskListId | String | 否 | 清单UUID | | taskContent | String | 否 | 执行内容(模糊查询) | | feedbackCycleType | String | 否 | 反馈周期类型:1-每月 2-季度 3-半年 4-年 | | feedbackStatus | String | 否 | 反馈状态:1-正常 2-异常 | | taskStatus | String | 否 | 任务状态:1-进行中 2-已完成 3-已关闭 | > **注意**:feedbackCycleType、feedbackStatus、taskStatus 类型为 String,非 Integer。 ### 响应字段 ```json { "success": true, "data": [ { "id": 1, "taskExecutionId": "uuid-exec-1", "taskIssueId": "uuid-issue-1", "taskDetailId": "uuid-detail-1", "taskListId": "uuid-xxx", "taskStatus": 1, "feedbackStatus": 1, "taskRating": 8.00, "ratingTime": "2026-06-01 10:00:00", "ratingDepartmentId": 500, "ratingDepartmentName": "考核部", "ratingUserId": 400, "ratingUserName": "李四", "executeContent": "每日安全巡检", "feedbackCycleType": 1, "taskScore": 10.00, "taskListName": "安全生产责任清单", "taskLevel": 1, "responsibilityPost": "安全主管", "feedbackCount": 3, "currentPeriodFeedback": 1 } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键 | | taskExecutionId | String | 任务执行UUID(业务主键) | | taskIssueId | String | 清单下发记录UUID | | taskDetailId | String | 任务模板UUID | | taskListId | String | 清单UUID | | taskStatus | Integer | 任务状态:1-进行中 2-已完成 3-已关闭 | | feedbackStatus | Integer | 反馈状态:1-正常 2-异常 | | taskRating | BigDecimal | 任务评分 | | ratingTime | String | 评分时间 | | ratingDepartmentId | Long | 评分部门ID | | ratingDepartmentName | String | 评分部门名称 | | ratingUserId | Long | 评分人ID | | ratingUserName | String | 评分人姓名 | | executeContent | String | 执行内容 | | feedbackCycleType | Integer | 反馈周期类型 | | taskScore | BigDecimal | 任务分值 | | taskListName | String | 清单名称 | | taskLevel | Integer | 任务级别 | | responsibilityPost | String | 责任岗位 | | feedbackCount | Integer | 反馈次数 | | currentPeriodFeedback | Integer | 当前周期是否已反馈:0-否 1-是 | --- ## 十二、获取任务执行记录详情 `GET /safetyDutyList/taskExecution/{taskExecutionId}` ### 请求参数 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskExecutionId | String | **是** | 任务执行UUID(路径参数) | ### 响应字段 同接口十一的单条 TaskExecutionCO 对象。 --- ## 十三、获取反馈周期分组列表 `POST /safetyDutyList/feedback/periodGroupList` ### 请求参数 ```json { "taskExecutionId": "uuid-exec-1", "feedbackTimeStart": "2026-01-01", "feedbackTimeEnd": "2026-06-30" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskExecutionId | String | **是** | 任务执行业务ID | | feedbackTimeStart | String | 否 | 反馈时间开始(格式:yyyy-MM-dd) | | feedbackTimeEnd | String | 否 | 反馈时间结束(格式:yyyy-MM-dd) | ### 响应字段 ```json { "success": true, "data": [ { "taskExecutionId": "uuid-exec-1", "feedbackPeriodStartTime": "2026-05-01 00:00:00", "feedbackPeriodEndTime": "2026-05-31 23:59:59", "feedbackCount": 3, "feedbackUserName": "张三", "feedbackPeriodFlag": "2026-05" } ] } ``` | 字段 | 类型 | 说明 | |------|------|------| | taskExecutionId | String | 任务执行业务ID | | feedbackPeriodStartTime | String | 反馈周期开始时间 | | feedbackPeriodEndTime | String | 反馈周期结束时间 | | feedbackCount | Integer | 反馈次数(以周期标识为维度统计) | | feedbackUserName | String | 反馈人姓名 | | feedbackPeriodFlag | String | 周期标识 | --- ## 十四、获取反馈列表 `POST /safetyDutyList/feedback/list` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "taskExecutionId": "uuid-exec-1", "feedbackPeriodFlag": "2026-05" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | taskExecutionId | String | **是** | 任务执行业务ID | | feedbackPeriodFlag | String | **是** | 周期标识 | ### 响应字段 ```json { "success": true, "data": [ { "id": 1, "feedbackId": "uuid-fb-1", "taskDetailId": "uuid-detail-1", "taskExecutionId": "uuid-exec-1", "taskListId": "uuid-xxx", "taskIssueId": "uuid-issue-1", "feedbackTime": "2026-05-15 14:30:00", "feedbackPeriodStartTime": "2026-05-01 00:00:00", "feedbackPeriodEndTime": "2026-05-31 23:59:59", "feedbackPeriodFlag": "2026-05", "feedbackCycleType": 1, "feedbackContent": "已完成本月安全巡检", "feedbackUserId": 300, "feedbackUserName": "张三", "feedbackCorpId": 100, "feedbackCorpName": "XX公司", "feedbackDepartmentId": 200, "feedbackDepartmentName": "安全部", "executeContent": "每日安全巡检", "taskListName": "安全生产责任清单", "createTime": "2026-05-15 14:30:00" } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键 | | feedbackId | String | 反馈UUID(业务主键) | | taskDetailId | String | 任务详情UUID | | taskExecutionId | String | 任务执行UUID | | taskListId | String | 任务清单UUID | | taskIssueId | String | 清单下发记录UUID | | feedbackTime | String | 反馈时间 | | feedbackPeriodStartTime | String | 反馈周期开始时间 | | feedbackPeriodEndTime | String | 反馈周期结束时间 | | feedbackPeriodFlag | String | 反馈周期标识 | | feedbackCycleType | Integer | 反馈周期类型 | | feedbackContent | String | 反馈内容 | | feedbackUserId | Long | 反馈人ID | | feedbackUserName | String | 反馈人姓名 | | feedbackCorpId | Long | 反馈人公司ID | | feedbackCorpName | String | 反馈人公司名称 | | feedbackDepartmentId | Long | 反馈人部门ID | | feedbackDepartmentName | String | 反馈人部门名称 | | executeContent | String | 执行内容 | | taskListName | String | 清单名称 | | createTime | String | 创建时间 | --- ## 十五、获取反馈详情 `GET /safetyDutyList/feedback/{feedbackId}` ### 请求参数 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | feedbackId | String | **是** | 反馈UUID(路径参数) | ### 响应字段 > 返回 FeedbackInfoCO,包含任务信息和反馈信息。 ```json { "success": true, "data": { "id": 1, "feedbackId": "uuid-fb-1", "taskDetailId": "uuid-detail-1", "executeContent": "每日安全巡检", "feedbackCycleType": 1, "feedbackContent": "已完成本月安全巡检", "feedbackTime": "2026-05-15 14:30:00", "feedbackPeriodStartTime": "2026-05-01 00:00:00", "feedbackPeriodEndTime": "2026-05-31 23:59:59" } } ``` | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键ID | | feedbackId | String | 反馈UUID | | taskDetailId | String | 任务详情ID | | executeContent | String | 执行内容 | | feedbackCycleType | Integer | 反馈周期类型 | | feedbackContent | String | 反馈内容 | | feedbackTime | String | 反馈时间 | | feedbackPeriodStartTime | String | 反馈周期开始时间 | | feedbackPeriodEndTime | String | 反馈周期结束时间 | --- ## 十六、编辑反馈 `POST /safetyDutyList/feedback/edit` ### 请求参数 ```json { "feedbackId": "uuid-fb-1", "feedbackContent": "已完成本月安全巡检(修改)" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | feedbackId | String | **是** | 反馈UUID | | feedbackContent | String | **是** | 反馈内容 | ### 响应 ```json { "success": true } ``` --- ## 十七、删除反馈 `POST /safetyDutyList/feedback/delete/{id}` ### 请求参数 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | **是** | 反馈主键ID(路径参数) | ### 响应 ```json { "success": true } ``` --- ## 十八、获取企业评价列表 `POST /safetyDutyList/statistics/evaluationList` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "corpName": "XX公司", "scoreStatus": 0 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | corpName | String | 否 | 企业名称(模糊查询) | | scoreStatus | Integer | 否 | 评分状态:0-未评分 1-已评分 | ### 响应字段 ```json { "success": true, "data": [ { "corpId": 100, "corpName": "XX公司", "pendingScoreCount": 3, "scoredCount": 5 } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | corpId | Long | 公司ID | | corpName | String | 企业名称 | | pendingScoreCount | Integer | 待评分清单数量(清单分数为0或空的) | | scoredCount | Integer | 已评分清单数量(清单分数不为0且不为空的) | --- ## 十九、更新任务评分 `POST /safetyDutyList/taskExecution/updateScore` ### 请求参数 ```json { "taskExecutionId": "uuid-exec-1", "taskRating": 8.00 } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskExecutionId | String | **是** | 任务执行UUID | | taskRating | BigDecimal | **是** | 分数(不能超过任务分值) | ### 响应 ```json { "success": true } ``` --- ## 二十、提交反馈 `POST /safetyDutyList/feedback/save` ### 请求参数 ```json { "taskExecutionId": "uuid-exec-1", "feedbackContent": "已完成本月安全巡检" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskExecutionId | String | **是** | 任务执行ID | | feedbackContent | String | **是** | 反馈内容 | ### 响应 ```json { "success": true, "data": { "id": 1, "feedbackId": "uuid-fb-1", "taskDetailId": "uuid-detail-1", "taskExecutionId": "uuid-exec-1", "taskListId": "uuid-xxx", "taskIssueId": "uuid-issue-1", "feedbackTime": "2026-05-15 14:30:00", "feedbackPeriodStartTime": "2026-05-01 00:00:00", "feedbackPeriodEndTime": "2026-05-31 23:59:59", "feedbackPeriodFlag": "2026-05", "feedbackCycleType": 1, "feedbackContent": "已完成本月安全巡检", "feedbackUserId": 300, "feedbackUserName": "张三", "feedbackCorpId": 100, "feedbackCorpName": "XX公司", "feedbackDepartmentId": 200, "feedbackDepartmentName": "安全部", "executeContent": "每日安全巡检", "taskListName": "安全生产责任清单", "createTime": "2026-05-15 14:30:00" } } ``` > 响应为完整 FeedbackCO 对象,字段同接口十四。 --- ## 二十一、获取企业任务下发统计数 `POST /safetyDutyList/statistics/issueStatistics` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "corpName": "XX公司" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | corpName | String | 否 | 企业名称(模糊查询) | ### 响应字段 ```json { "success": true, "data": [ { "corpId": 100, "corpName": "XX公司", "issueCount": 8 } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | corpId | Long | 公司ID | | corpName | String | 公司名称 | | issueCount | Integer | 任务清单下发数 | --- ## 二十二、获取企业统计(股份端) `POST /safetyDutyList/statistics/corpStatistics` ### 请求参数 ```json { "pageIndex": 1, "pageSize": 10, "corpName": "XX公司" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | pageIndex | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | | corpName | String | 否 | 企业名称(模糊查询) | ### 响应字段 ```json { "success": true, "data": [ { "corpId": 100, "corpName": "XX公司", "completedTaskCount": 15, "closedTaskCount": 3, "totalTaskCount": 20 } ], "totalCount": 1, "pageSize": 10, "pageIndex": 1 } ``` | 字段 | 类型 | 说明 | |------|------|------| | corpId | Long | 公司ID | | corpName | String | 公司名称 | | completedTaskCount | Integer | 已完成任务数 | | closedTaskCount | Integer | 已关闭任务数 | | totalTaskCount | Integer | 年度执行任务总数 | --- ## 二十三、关闭清单 `POST /safetyDutyList/taskList/close` ### 请求参数 ```json { "taskListId": "uuid-xxx" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskListId | String | **是** | 清单业务ID | ### 响应 ```json { "success": true } ``` ### 业务逻辑 1. 将 task_list.status 更新为 3(已关闭) 2. 同步关闭该清单下所有进行中的下发记录(task_list_issue.status → 3) 3. 同步关闭所有下发记录下进行中的任务执行记录(task_execution.task_status → 3) --- ## 二十四、关闭任务 `POST /safetyDutyList/taskDetail/close` ### 请求参数 ```json { "taskDetailId": "uuid-detail-1" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskDetailId | String | **是** | 任务业务ID | ### 响应 ```json { "success": true } ``` ### 业务逻辑 1. 将 task_detail.task_status 更新为 3(已关闭) 2. 同步关闭关联的所有进行中的任务执行记录(task_execution.task_status → 3) --- ## 二十五、任务下发 `POST /safetyDutyList/taskList/issue` ### 请求参数 ```json { "taskListId": "uuid-xxx", "executeCorpId": 100, "executeDepartmentId": 200, "executeUserId": 300, "periodStartTime": "2026-01-01 00:00:00", "periodEndTime": "2026-12-31 23:59:59" } ``` | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | taskListId | String | **是** | 清单UUID(业务主键),需为开启状态的清单 | | executeCorpId | Long | **是** | 执行公司ID | | executeDepartmentId | Long | **是** | 执行部门ID | | executeUserId | Long | **是** | 执行人员ID | | periodStartTime | LocalDateTime | **是** | 执行周期开始时间(格式:yyyy-MM-dd HH:mm:ss) | | periodEndTime | LocalDateTime | **是** | 执行周期结束时间(格式:yyyy-MM-dd HH:mm:ss) | ### 响应 ```json { "success": true } ``` ### 业务逻辑 1. 在 task_list_issue 表创建下发记录 2. 根据 task_list 关联的 task_detail 模板,在 task_execution 表创建对应的任务执行记录 3. 下发记录的 issue_status 设为 1(已下发) --- ## 接口路径汇总 | 序号 | 接口 | 路径 | Controller | |------|------|------|-----------| | 1 | 获取清单列表 | POST /taskList/list | TaskListController | | 2 | 新增清单 | POST /taskList/save | TaskListController | | 3 | 修改清单 | POST /taskList/edit | TaskListController | | 4 | 删除清单 | POST /taskList/delete/{id} | TaskListController | | 5 | 开关切换 | POST /taskList/switchFlag | TaskListController | | 6 | 获取任务列表 | POST /taskDetail/list | TaskDetailController | | 7 | 批量保存任务 | POST /taskDetail/saveBatch | TaskDetailController | | 8 | 获取任务详情 | GET /taskDetail/{detailId} | TaskDetailController | | 9 | 企业落实情况 | POST /taskListIssue/list | TaskListIssueController | | 10 | 下发记录详情 | GET /taskListIssue/{taskIssueId} | TaskListIssueController | | 11 | 任务执行列表 | POST /taskExecution/list | TaskExecutionController | | 12 | 执行记录详情 | GET /taskExecution/{taskExecutionId} | TaskExecutionController | | 13 | 反馈周期分组 | POST /feedback/periodGroupList | FeedbackController | | 14 | 反馈列表 | POST /feedback/list | FeedbackController | | 15 | 反馈详情 | GET /feedback/{feedbackId} | FeedbackController | | 16 | 编辑反馈 | POST /feedback/edit | FeedbackController | | 17 | 删除反馈 | POST /feedback/delete/{id} | FeedbackController | | 18 | 企业评价列表 | POST /statistics/evaluationList | StatisticsController | | 19 | 更新任务评分 | POST /taskExecution/updateScore | TaskExecutionController | | 20 | 提交反馈 | POST /feedback/save | FeedbackController | | 21 | 企业下发统计 | POST /statistics/issueStatistics | StatisticsController | | 22 | 企业统计(股份端) | POST /statistics/corpStatistics | StatisticsController | | 23 | 关闭清单 | POST /taskList/close | TaskListController | | 24 | 关闭任务 | POST /taskDetail/close | TaskDetailController | | 25 | 任务下发 | POST /taskList/issue | TaskListController | > 所有路径前缀为 `/safetyDutyList`。