import request from '@/config/axios' import {ItemRequisitionVO} from "@/api/mes/itemrequisition"; // 计划记录状态枚举 export enum OperateStatusEnum { SCHEDULED = '1', // 已排产 PAUSED = '3', // 暂停 PENDING_WAREHOUSE = '4', // 待入库 WAREHOUSED = '5', // 已入库 STARTED = '8' // 已开工 } // 计划记录状态映射 export const OPERATE_STATUS_MAP: Record = { '1': '已排产', '3': '暂停', '4': '待入库', '5': '已入库', '8': '已开工' } // 计划记录 VO export interface PlanRecordVO { id: number // ID taskId: number // 任务ID planId: number // 计划ID operateStatus: string // 操作状态 ('1' | '3' | '4' | '5' | '8') operateTime: number // 操作时间戳(毫秒) remark: string // 备注 isEnable: boolean // 是否启用 createTime: number // 创建时间戳 } // 生产计划 VO export interface PlanVO { id: number // ID code: string // 计划编码 productId: number // 产品ID taskDetailId: number // 任务单明细ID taskId: number // 任务单ID productName: number // 产品 taskCode: number // 任务单 planNumber: number // 数量 reyaNumber: number // 数量 finishNumber: number // 成品数量 status: number // 状态 planStartTime: Date // 计划开始时间 planEndTime: Date // 计划结束时间 startTime: Date // 实际开始时间 endTime: Date // 实际结束时间 productionManagerId: number // 生产主管ID productionManager: number // 生产主管 remark: string // 备注 isEnable: boolean // 是否启用 feedingPipeline: number //制浆线 feedingPipelineName: string wangongNumber: number passRate: number passNumber?: number // 合格数量 noPassNumber?: number // 不合格数量 deviceName?: string // 设备名称 planRecordList?: PlanRecordVO[] // 计划记录列表 } export interface DevicePlanGanttPlanVO { planId: number planStartTime: string planEndTime: string latestStartTime: string planNumber: number productName: string deviceName: string } export interface DevicePlanGanttRespVO { deviceId: number deviceName: string deviceCode: string plans: DevicePlanGanttPlanVO[] } // 生产计划 API export const PlanApi = { // 查询生产计划分页 getPlanPage: async (params: any) => { return await request.get({ url: `/mes/plan/page`, params }) }, // 查询生产计划详情 getPlan: async (id: number) => { return await request.get({ url: `/mes/plan/get?id=` + id }) }, // 新增生产计划 createPlan: async (data: PlanVO) => { return await request.post({ url: `/mes/plan/create`, data }) }, // 修改生产计划 updatePlan: async (data: PlanVO) => { return await request.put({ url: `/mes/plan/update`, data }) }, // 删除生产计划 deletePlan: async (id: number) => { return await request.delete({ url: `/mes/plan/delete?id=` + id }) }, // 导出生产计划 Excel exportPlan: async (params) => { return await request.download({ url: `/mes/plan/export-excel`, params }) }, // 批量新增生产计划 saveBatchPlan: async (data: any) => { return await request.post({ url: `/mes/plan/saveBatchPlan`, data }) }, createBatch: async (data:any) => { return await request.post({ url: `/mes/plan/create-batch`, data }) }, // 派工生产计划 arrangePlan: async (data: ItemRequisitionVO) => { return await request.put({ url: `/mes/plan/paigong`, data }) }, // 派工生产计划 arrangePlanNum: async (data: ItemRequisitionVO) => { return await request.put({ url: `/mes/plan/typePaigong`, data }) }, // 更新状态生产计划 updatePlanStatus: async (data: PlanVO) => { return await request.put({ url: `/mes/plan/updateStatus`, data }) }, // 查询正在开工和完工的计划的产品列表 getStartAndFinishPlanProduct: async () => { return await request.get({ url: `/mes/plan/getProductByStatus` }) }, // 查询正在开工和完工的计划的产品列表 getStartPlanProduct: async (orgType) => { return await request.get({ url: `/mes/app/org-worker/getPlanProductList?orgType=`+orgType }) }, // 更新质检状态生产计划 updatePlanZjStatus: async (data: PlanVO) => { return await request.put({ url: `/mes/plan/updatePlanZjStatus`, data }) }, // 根据状态查询生产计划详情 getPlanByStatus: async (status: number) => { return await request.get({ url: `/mes/plan/getByStatus?status=` + status }) }, // 根据质检类型查询生产计划 getPlanByTicketType: async (status: number) => { return await request.get({ url: `/mes/plan/getByTicketType?status=` + status }) }, // 产线任务看板 getProductPlans: async (params?: any) => { return await request.get({ url: `/mes/plan/getProductPlans`, params }) }, // 周生产趋势 getWeekTrend: async (params?: any) => { return await request.get({ url: `/mes/plan/getWeekTrend`, params }) }, getPlanCapacity: async (type: number, orgId?: any) => { let url = `/mes/plan/getPlanCapacity?type=` + type if (orgId) { url += `&orgId=` + orgId } return await request.get({ url }) }, getLastDaysRate: async (params?: any) => { return await request.get({ url: `/mes/plan/getLastDaysRate`, params }) }, getLastSevenDaysCompletedCount: async (params?: any) => { return await request.get({ url: `/mes/plan/getLastSevenDaysCompletedCount`, params }) }, getGanttByDevice: async (params: { startTime: string; endTime: string }) => { return await request.get({ url: `/mes/plan/gantt-by-device`, params }) }, getPlanPageByTask: async (params: any) => { return await request.get({ url: `/mes/plan/page-by-task`, params }) }, getProductCapacityPage: async (params: any) => { return await request.get({ url: `/mes/plan/product-capacity-page`, params }) } }