import { http } from '@/utils/http/axios'; import type { QueryPageRequest, QueryPageResponse } from '@/types/basic-query'; /** * ==================== 员工上报隐患管理 employeeHazardReport ==================== */ // 员工上报隐患数据对象(详情 / 列表返回) export interface EmployeeHazardReportDTO { id: number; hazardNo: string; // 隐患编号 categoryId: number; // 隐患类别 ID categoryName: string; // 隐患类别名称 hazardDesc: string; // 隐患问题描述 location: string; // 隐患地点 reportTime: string; // 上报时间 sourceType: number; // 提交类型:1-员工,2-供应商,3-第三方 sourceTypeName: string; // 提交类型名称 taskSource: string; // 任务来源 reporterName: string; // 上报人姓名 reporterJobNo: string; // 上报人工号 reporterMobile: string; // 联系电话 attachment: string; // 附件 JSON status: number; // 状态:1-待审核,2-需求部门通过,3-需求部门驳回,4-安全部门通过,5-安全部门驳回,6-已入账,7-已关闭 statusName: string; // 状态名称 statusType?: number; // 状态类型:1-待审核,2-审核通过,3-审核不通过 canApprove?: boolean; // 可审核 canAccount?: boolean; // 可入账 canView?: boolean; // 可查看 isRewardApplied?: number; // 是否申请奖品:1-是,0-否 createdById?: number; // 创建人 ID createdByName?: string; // 创建人姓名 createdAt: string; // 创建时间 updatedAt: string; // 更新时间 approvalOrder?: number; // 审核顺序 } // 新增员工上报隐患 export interface SaveEmployeeHazardReportReq { categoryId: number; // 隐患类别 ID hazardDesc: string; // 隐患问题描述 location: string; // 隐患地点 reportTime: string; // 上报时间 sourceType: number; // 提交类型:1-员工,2-供应商,3-第三方 taskSource: string; // 任务来源 reporterName: string; // 上报人姓名 reporterJobNo: string; // 上报人工号 reporterMobile: string; // 联系电话 attachment?: string; // 附件 JSON,格式 [{file_name, url}] } // 编辑员工上报隐患 export interface UpdateEmployeeHazardReportReq { id: number; // 主键 ID categoryId?: number; // 隐患类别 ID hazardDesc?: string; // 隐患问题描述 location?: string; // 隐患地点 reportTime?: string; // 上报时间 sourceType?: number; // 提交类型:1-员工,2-供应商,3-第三方 taskSource?: string; // 任务来源 reporterName?: string; // 上报人姓名 reporterJobNo?: string; // 上报人工号 reporterMobile?: string; // 联系电话 attachment?: string; // 附件 JSON } // 查询条件 export interface QueryEmployeeHazardReportReq { keyword?: string; // 搜索隐患问题(支持全部非格式化字段关键词:隐患问题描述、隐患地点、姓名、工号、联系电话) statusType?: number; // 隐患状态下拉:0或null=全部,1=待审核,2=审核通过,3=审核不通过 status?: number; // 状态精确值(1~7),与 statusType 二选一 sourceTypeName?: string; // 搜索任务来源(模糊查询) startDate?: string; // 上报时间范围-开始日期(格式:YYYY-MM-DD) endDate?: string; // 上报时间范围-结束日期(格式:YYYY-MM-DD) categoryId?: number; // 隐患类别 ID reporterJobNo?: string; // 上报人工号 hazardDesc?: string; // 仅按隐患问题描述查询(兼容用,建议使用 keyword) } // 审核员工上报隐患 export interface ApproveEmployeeHazardReportReq { hazardId: number; // 隐患主表 ID node: number; // 审批节点:1-需求部门,2-安全部门 approvalStatus: number; // 审批状态:2-通过,3-驳回 approvalContent?: string; // 审批意见 approvalOrder?: number; // 审核顺序 } // 兼容旧接口名称(向后兼容) export type HiddenDanger = EmployeeHazardReportDTO; export type SaveHiddenDangerReq = SaveEmployeeHazardReportReq; export type UpdateHiddenDangerReq = UpdateEmployeeHazardReportReq; export type QueryHiddenDangerReq = QueryEmployeeHazardReportReq; // 新增员工上报隐患 export function saveEmployeeHazardReport(data: SaveEmployeeHazardReportReq) { return http.request({ url: '/employeeHazardReport/saveEmployeeHazardReport', method: 'post', data, }); } // 编辑员工上报隐患 export function updateEmployeeHazardReport(data: UpdateEmployeeHazardReportReq) { return http.request({ url: '/employeeHazardReport/updateEmployeeHazardReport', method: 'put', data, }); } // 删除员工上报隐患 export function deleteEmployeeHazardReport(id: number) { return http.request({ url: `/employeeHazardReport/deleteEmployeeHazardReport?id=${id}`, method: 'delete', }); } // 根据 ID 查询员工上报隐患详情 export function queryEmployeeHazardReportById(id: number) { return http.request({ url: `/employeeHazardReport/queryEmployeeHazardReportById?id=${id}`, method: 'get', }); } // 获取templateID export function queryTemplateID() { return http.request({ url: `/employeeHazardReport/queryReportHazardApprovalFlowId`, method: 'get', }); } // 查看员工上报隐患列表(不分页) export function queryEmployeeHazardReportList(params?: QueryEmployeeHazardReportReq) { return http.request({ url: '/employeeHazardReport/queryEmployeeHazardReportList', method: 'post', data: params || {}, }); } // 分页查询员工上报隐患 export function queryEmployeeHazardReportPage(query: QueryPageRequest) { return http.request>({ url: '/employeeHazardReport/queryEmployeeHazardReportPage', method: 'post', data: query, }); } // 分页查询员工上报隐患(管理员审核列表) export function queryEmployeeHazardReportPendingPage(query: QueryPageRequest) { return http.request>({ url: '/employeeHazardReport/queryEmployeeHazardReportPendingPage', method: 'post', data: query, }); } // 审核员工上报隐患 export function approveEmployeeHazardReport(data: ApproveEmployeeHazardReportReq) { return http.request({ url: '/employeeHazardReport/approveEmployeeHazardReport', method: 'post', data, }); } // 入账员工上报隐患 export function accountEmployeeHazardReport(hazardId: number) { return http.request({ url: `/employeeHazardReport/accountEmployeeHazardReport`, method: 'post', data: { hazardId, }, }); } // 导出员工上报隐患 export function exportEmployeeHazardReport(params?: QueryEmployeeHazardReportReq) { return http.request( { url: '/employeeHazardReport/exportEmployeeHazardReport', method: 'post', data: params || {}, responseType: 'blob', }, { isTransformResponse: false, }, ); } // 导入结果 export interface ImportRes { successCount: number; failCount: number; failInfoList?: Array<{ rowNum: number; failReason: string; }>; failMessages?: string[]; // 兼容旧版本 } // 向后兼容的接口函数(使用旧接口名称) export const saveHiddenDanger = saveEmployeeHazardReport; export const updateHiddenDanger = updateEmployeeHazardReport; export const deleteHiddenDanger = deleteEmployeeHazardReport; export const queryHiddenDangerById = queryEmployeeHazardReportById; export const queryHiddenDangerList = queryEmployeeHazardReportList; export const queryHiddenDangerPage = queryEmployeeHazardReportPage; export const exportHiddenDanger = exportEmployeeHazardReport; /** * ==================== 隐患类别管理 hazardCategory ==================== */ export interface HazardCategoryDTO { id: number; categoryName: string; // 类别名称 description: string; // 类别描述 status: number; // 状态:1-启用,0-禁用 parentId: number; // 父级 ID,一级为 0 sortOrder: number; // 排序 createdAt: string; // 创建时间 updatedAt: string; // 更新时间 } export interface SaveHazardCategoryReq { categoryName: string; // 类别名称 description?: string; // 类别描述,最多 300 字 status: number; // 启用状态:1-启用,0-禁用 } export interface UpdateHazardCategoryReq { id: number; // 主键 ID categoryName?: string; // 类别名称 description?: string; // 类别描述,最多 300 字 status?: number; // 启用状态:1-启用,0-禁用 } export interface QueryHazardCategoryReq { keyword?: string; // 关键词,模糊查询类别名称、描述等 status?: number; // 状态:1-启用,0-禁用 startDate?: string; // 创建时间范围-开始 endDate?: string; // 创建时间范围-结束 } // 兼容旧接口名称(向后兼容) export type DangerType = HazardCategoryDTO; export type SaveDangerTypeReq = SaveHazardCategoryReq; export type UpdateDangerTypeReq = UpdateHazardCategoryReq; export type QueryDangerTypeReq = QueryHazardCategoryReq; // 新增隐患类别 export function saveHazardCategory(data: SaveHazardCategoryReq) { return http.request({ url: '/hazardCategory/saveHazardCategory', method: 'post', data, }); } // 编辑隐患类别 export function updateHazardCategory(data: UpdateHazardCategoryReq) { return http.request({ url: '/hazardCategory/updateHazardCategory', method: 'put', data, }); } // 删除隐患类别 export function deleteHazardCategory(id: number) { return http.request({ url: `/hazardCategory/deleteHazardCategory?id=${id}`, method: 'delete', }); } // 根据 ID 查询隐患类别详情 export function queryHazardCategoryById(id: number) { return http.request({ url: `/hazardCategory/queryHazardCategoryById?id=${id}`, method: 'get', }); } // 查看隐患类别列表(不分页) export function queryHazardCategoryList(params?: QueryHazardCategoryReq) { return http.request({ url: '/hazardCategory/queryHazardCategoryList', method: 'post', data: params || {}, }); } // 分页查询隐患类别 export function queryHazardCategoryPage(query: QueryPageRequest) { return http.request>({ url: '/hazardCategory/queryHazardCategoryPage', method: 'post', data: query, }); } // 导出隐患类别 export function exportHazardCategory(params?: QueryHazardCategoryReq) { return http.request( { url: '/hazardCategory/exportHazardCategory', method: 'post', data: params || {}, responseType: 'blob', }, { isTransformResponse: false, }, ); } // 导入隐患类别 export function importHazardCategory(file: File) { const formData = new FormData(); formData.append('file', file); return http.request({ url: '/hazardCategory/importHazardCategory', method: 'post', data: formData, headers: { 'Content-Type': 'multipart/form-data', }, }); } // 向后兼容的接口函数(使用旧接口名称) export const saveDangerType = saveHazardCategory; export const updateDangerType = updateHazardCategory; export const deleteDangerType = deleteHazardCategory; export const queryDangerTypeById = queryHazardCategoryById; export const queryDangerTypeList = queryHazardCategoryList; export const queryDangerTypePage = queryHazardCategoryPage; export const exportDangerType = exportHazardCategory; export const importDangerType = importHazardCategory;