You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
5.8 KiB
TypeScript
186 lines
5.8 KiB
TypeScript
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<string, string> = {
|
|
'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<DevicePlanGanttRespVO[]>({ 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 })
|
|
}
|
|
}
|