import { http } from '@/utils/http/axios'; import type { QueryPageRequest, QueryPageResponse } from '@/types/basic-query'; /** * 劳防用品采购申请 - 实体与接口 * 基础路径: /api/ppePurchaseApply * 状态:0-待审核,1-审核通过,-1-审核不通过 * 申请状态:1-待提交,2-待审批,3-已完成 * 审批状态:1-待审批,2-已审批,3-退回 */ /** 采购申请主表(列表项 / 提交用) */ export interface PpePurchaseApply { id?: number; // 采购申请主表唯一ID applyCode?: number; // 申请单号(业务唯一) applicantCode?: number; // 申请人编码 applicantName?: string; // 申请人名称 deptCode?: number; // 申请部门编码 deptName?: string; // 申请部门名称 status?: number; // 0-待审核/1-审核通过/-1审核不通过 statusName?: string; // 申请状态:1-待提交,2-待审批,3-已完成 nodeDescription?: string; // 当前节点名称 isDeleted?: number; createdAt?: string; updatedAt?: string; templateId?: number; // 审核模板ID approvalStatus?: number; // 1-待审批,2-已审批,3-退回 approvalOrder?: number; // 审批顺序 rejectReason?: string; // 退回原因 [key: string]: any; } /** 采购申请明细(劳防用品项)- 后端 PpePurchaseApplyDetail */ export interface PpePurchaseApplyDetail { id?: number; // 采购申请物品唯一ID ppeApplyId?: number; // 关联的劳防采购申请单ID equipmentId?: number; // 劳防用品ID(关联ppe表的id) equipmentName?: string; // 劳防用品名称 specSize?: string; // 规格/尺寸/鞋码 applyNum?: number; // 需求数量 model?: string; // 产品型号/品类类型 unitPrice?: number; // 单价(元) pictureUrl?: string; // 样式照片URL remark?: string; // 申请备注 isDeleted?: number; createdAt?: string; updatedAt?: string; [key: string]: any; } /** 兼容旧组件:明细行(表单用,可同时兼容后端字段名) */ export interface PurchaseApplyItem extends PpePurchaseApplyDetail { ppeName?: string; // 同 equipmentName ppeId?: number; // 同 equipmentId stylePhoto?: string; // 同 pictureUrl 或附件 JSON sizeOrShoeSize?: string; // 同 specSize requiredQty?: number; // 同 applyNum specModelType?: string; // 同 model productNo?: string; [key: string]: any; } /** 兼容旧组件:列表与表单主表 */ export type PersonalProtectiveEquipmentPurchaseApply = PpePurchaseApply & { applyNo?: string; // 展示用,可与 applyCode 互转 itemList?: PurchaseApplyItem[]; applicantDeptCode?: string; applicantDeptName?: string; currentNodeName?: string; }; /** 分页查询请求 - 查询条件 QueryPersonalProtectiveEquipmentCommonPageReq */ export interface QueryPurchaseApplyPageReq { /** 标题/搜索用品名称/申请人 */ name?: string; /** 状态:0-待审核,1-审核通过,-1-审核不通过 */ status?: number | string; /** 申请人部门CODE/申请部门编码 */ applyDeptCode?: string; /** 申请人部门名称 */ applyDeptName?: string; /** 审批状态:1-待审批,2-已审批,3-退回 */ approvalStatus?: number | string; } /** 审批流程参数 */ export interface ApprovalProcessParam { id: string; approvalDescription: string; templateId?: number; approvalInfoList: { approvalOrder: number; approverIdList: number[]; }[]; } /** 分页查询劳防用品采购申请列表 */ export function queryPurchaseApplyList( query: QueryPageRequest, ) { return http.request>({ url: '/ppePurchaseApply/queryPpePurchaseApplyList', method: 'post', data: query, }); } /** 分页查询劳防用品采购申请列表 */ export function queryPurchaseApplyListAdmin( query: QueryPageRequest, ) { return http.request>({ url: '/ppePurchaseApply/queryPpePurchaseApplyListAdmin', method: 'post', data: query, }); } /** 查询劳防用品详细内容(返回明细列表) */ export function queryPurchaseApplyDetail(id: number) { return http.request({ url: `/ppePurchaseApply/queryPpePurchaseApplyDetail?id=${id}`, method: 'post', }); } /** 删除劳防用品采购申请 */ export function deletePurchaseApply(id: number) { return http.request({ url: `/ppePurchaseApply/deletePpePurchaseApply?id=${id}`, method: 'delete', }); } /** 审批信息项 */ export interface ApprovalInfoItem { approvalOrder?: number; approverIdList?: number[]; } /** 编辑/提交请求体 SavePpePurchaseApplyReq */ export interface SavePpePurchaseApplyReq extends PpePurchaseApply { /** 保存或提交:0-保存 1-提交 */ saveOrSubmit?: number; /** 审批描述 */ approvalDescription?: string; /** 审批信息列表 */ approvalInfoList?: ApprovalInfoItem[]; /** 劳防采购申请列表详情 */ ppePurchaseApplyDetails?: PpePurchaseApplyDetail[]; /** 审核模板ID */ templateId?: number; } /** 编辑劳防用品采购申请(保存/提交,带审批信息) */ export function updatePurchaseApply(data: SavePpePurchaseApplyReq) { return http.request({ url: '/ppePurchaseApply/updatePpePurchaseApplyDetail', method: 'put', data, }); } /** 新增时也可走同一提交接口(无 id 或 saveOrSubmit=1) */ export function savePurchaseApply(data: SavePpePurchaseApplyReq) { return http.request({ url: '/ppePurchaseApply/updatePpePurchaseApplyDetail', method: 'put', data, }); } /** 提交审批 - 通过/退回 SaveApprovalReq */ export interface SaveApprovalReq { id: number; approvalOrder?: number; /** 审批状态: 1-待审批,2-已审批,3-退回 */ approvalStatus: number; /** 退回原因 */ returnReason?: string; templateId?: string; } /** 提交审批(通过/退回) */ export function saveApproval(data: SaveApprovalReq) { return http.request({ url: '/ppePurchaseApply/saveApproval', method: 'post', data, }); } /** 审核参数(兼容旧调用:映射到 SaveApprovalReq) */ export interface AuditPurchaseApplyParam { id: number; /** 1-审核通过,-1-审核不通过 → 映射 approvalStatus 2/3 */ status: number; rejectReason?: string; // 同 returnReason approvalOrder?: number; templateId?: string; } /** 审核劳防用品采购申请(通过/退回)- 兼容旧接口,内部调 saveApproval */ export function auditPurchaseApply(data: AuditPurchaseApplyParam) { return saveApproval({ id: data.id, approvalStatus: data.status === 2 ? 2 : 3, // 1 通过→2 已审批,-1 不通过→3 退回 returnReason: data.rejectReason, approvalOrder: data.approvalOrder, templateId: data.templateId, }); } /** 提交审批流程 */ export const submitApprovalProcess = (data: ApprovalProcessParam) => { return http.request({ url: '/ppePurchaseApply/submit', method: 'post', data, }); }; /** 新增劳防用品采购申请(保存/提交,带审批信息) */ export function saveThePurchaseRequest(data: SavePpePurchaseApplyReq) { return http.request({ url: '/ppePurchaseApply/savePpePurchaseApplyList', method: 'post', data, }); } /** 导出劳防用品采购申请管理 */ export function exportSafetyEquipmentProcurementRequest (queryParams) { return http.request({ url: '/ppePurchaseApply/exportPpePurchaseApplyList', method: 'post', responseType: 'blob', data: queryParams, }, { isTransformResponse: false, }); }