WORKORDER_MANAGEMENT.md 8.2 KB

工单管理模块 - 开发文档

📋 模块概述

工单管理模块用于管理生产工单的下达流程,包括物料齐套检查、物料需求生成和工单下达等核心功能。

🎯 功能模块

1. 工单池下达 (/workorder-pool)

页面功能

  • ✅ 工单列表展示(支持搜索、筛选、分页)
  • ✅ 物料齐套检查(批量)
  • ✅ 生成物料需求计划
  • ✅ 工单下达(单个)

相关文件

  • src/views/WorkOrderPool.vue - 工单池下达列表页
  • src/views/components/WorkOrderReleaseForm.vue - 工单下达前处理表单

📂 文件结构

src/
├── api/
│   └── workorder.js             # 新增工单管理API ✨
├── views/
│   ├── components/
│   │   └── WorkOrderReleaseForm.vue  # 工单下达表单 ✨
│   └── WorkOrderPool.vue        # 工单池下达列表 ✨
├── layouts/
│   └── MainLayout.vue           # 已更新菜单 ✨
└── router/
    └── index.js                 # 已更新路由 ✨

🔌 API 接口清单

工单管理相关

1. 获取工单池列表

GET /api/workorder/pool/list
参数: {
  WorkOrd: string,      // 工单编号(模糊查询)
  ItemNum: string,      // 物料编码(模糊查询)
  Descr: string,        // 物料名称(模糊查询)
  OrdDate: string,      // 开工日期(>=)
  page: number,
  pageSize: number
}
返回: {
  code: 200,
  data: {
    list: [{
      id: string,
      WorkOrd: string,          // 工单编号
      Priority: number,         // 优先级
      ItemNum: string,          // 物料编码
      Descr: string,            // 物料名称
      Descr1: string,           // 规格型号
      QtyOrded: number,         // 工单数量
      MaterialSituation: string, // 物料齐套状态
      OrdDate: string,          // 开工日期
      DueDate: string,          // 完成日期
      Status: string            // 状态 (p-初始, r-下达, w-投产, c-关闭)
    }],
    total: number
  }
}

2. 物料齐套检查

POST /api/workorder/material-check
参数: {
  startDate: string,    // 开始时间 YYYY-MM-DD
  endDate: string,      // 结束时间 YYYY-MM-DD
  companyId: string,    // 公司ID
  userAccount: string   // 用户账号
}
返回: {
  code: 200,
  message: "检查完成"
}

3. 生成物料需求

POST /api/workorder/material-requirement
参数: {
  companyId: string     // 公司ID
}
返回: {
  code: 200,
  message: "生成成功"
}

4. 工单下达

POST /api/workorder/release
参数: {
  workOrderNo: string,  // 工单编号
  companyId: string,    // 公司ID
  userAccount: string,  // 用户账号
  lotSerial: string,    // 生产批号
  ordDate: string       // 开工日期 YYYY-MM-DD
}
返回: {
  code: 200,
  message: "下达成功"
}

5. 更新工单

PUT /api/workorder/{id}
参数: {
  LotSerial: string,    // 生产批号
  OrdDate: string       // 开工日期 YYYY-MM-DD
}
返回: {
  code: 200,
  message: "更新成功"
}

🎨 页面功能详解

工单池下达列表

搜索筛选

  • 工单编号 - 模糊查询
  • 物料编码 - 模糊查询
  • 物料名称 - 模糊查询
  • 开工日期 - 大于等于查询

列表字段

字段 说明 格式
WorkOrd 工单编号 文本
Priority 优先级 数字
ItemNum 物料编码 文本
Descr 物料名称 文本
Descr1 规格型号 文本
QtyOrded 工单数量 千分位格式
MaterialSituation 物料齐套 标签(齐套/不齐套/未检查)
OrdDate 开工日期 YYYY-MM-DD
DueDate 完成日期 YYYY-MM-DD
Status 状态 标签

状态说明

  • p - 初始(蓝色)
  • r - 下达(主色)
  • w - 投产(黄色)
  • c - 关闭(绿色)

操作按钮

列表操作

  1. 物料齐套检查 - 弹出对话框,选择时间范围后执行检查
  2. 生成物料需求 - 生成采购需求计划,需二次确认

行操作

  1. 工单下达 - 打开下达前处理表单

工单下达前处理表单

显示信息

  • 工单编号(只读)
  • 物料编码(只读)
  • 物料名称(只读)
  • 工单数量(只读)

输入字段

  • 生产批号 - 必填
  • 开工日期 - 必填,默认当前日期

操作流程

  1. 填写生产批号和开工日期
  2. 点击"保存并下达"
  3. 先更新工单信息(批号和日期)
  4. 再调用工单下达接口
  5. 更新工单状态为"下达"

🎯 业务流程

1. 工单处于初始状态 (Status='p')
   ↓
2. 执行物料齐套检查
   ↓
3. 查看齐套状态,确认物料是否齐套
   ↓
4. 如需采购,生成物料需求计划
   ↓
5. 点击"工单下达",填写生产批号和开工日期
   ↓
6. 保存并下达,工单状态变为"下达" (Status='r')
   ↓
7. 工单可以开始生产

📝 数据库表结构

WorkOrdMaster - 工单主表

主要字段:
- recid          -- 记录ID
- WorkOrd        -- 工单编号
- ItemNum        -- 物料编码
- QtyOrded       -- 工单数量
- Priority       -- 优先级
- OrdDate        -- 开工日期
- DueDate        -- 完成日期
- Status         -- 状态 (p/r/w/c)
- LotSerial      -- 生产批号
- Batch          -- 批次

mes_morder - MES工单表

主要字段:
- morder_no           -- 工单编号
- factory_id          -- 工厂ID
- MaterialSituation   -- 物料齐套状态

🔧 配置说明

用户信息配置

需要从用户状态中获取以下信息:

  • companyId - 公司ID/工厂ID
  • userAccount - 用户账号

建议在 Pinia store 中管理:

// src/stores/user.js
export const useUserStore = defineStore('user', {
  state: () => ({
    companyId: '',
    userAccount: '',
    username: ''
  })
})

后端地址配置

src/utils/request.js 中配置:

const request = axios.create({
  baseURL: 'http://your-backend-api.com',
  timeout: 30000
})

🚀 启用自动查询

当后端API准备好后,取消注释以下代码:

文件位置: src/views/WorkOrderPool.vue 第 263 行

// 从这样:
// 初始化 - 注释掉自动查询,等后端API准备好后再启用
// handleSearch()

// 改为这样:
// 初始化
handleSearch()

🎨 UI特性

数据展示

  • 千分位格式 - 工单数量自动格式化
  • 状态标签 - 不同状态显示不同颜色
  • 齐套标签 - 齐套/不齐套/未检查三种状态
  • 日期格式 - 统一 YYYY-MM-DD 格式

交互特性

  • 搜索筛选 - 支持多条件组合查询
  • 分页功能 - 20/50/100条/页可选
  • 二次确认 - 重要操作需确认
  • 加载状态 - 操作时显示loading
  • 错误提示 - 友好的错误信息

📋 测试清单

功能测试

  • 工单列表查询
  • 工单编号搜索
  • 物料编码搜索
  • 物料名称搜索
  • 开工日期筛选
  • 分页切换
  • 物料齐套检查
  • 生成物料需求
  • 工单下达
  • 表单验证

UI测试

  • 列表展示正常
  • 状态标签颜色正确
  • 齐套标签显示正确
  • 数字千分位格式化
  • 日期格式正确
  • 弹窗正常打开关闭
  • 按钮禁用状态正确
  • Loading状态显示

❓ 常见问题

Q1: 如何测试页面?

A: 启动项目后,点击左侧菜单的"工单管理" -> "工单池下达"即可访问。

Q2: 物料齐套检查需要什么参数?

A: 需要选择开始时间和结束时间,系统会检查该时间范围内的工单物料齐套情况。

Q3: 工单下达后状态如何变化?

A: 工单状态从"初始(p)"变为"下达(r)",表示可以开始生产。

Q4: 生产批号有什么规则?

A: 生产批号由用户自定义输入,建议按照公司规范填写。

📞 技术支持

如遇问题:

  1. 查看浏览器控制台错误信息
  2. 检查网络请求是否正常
  3. 确认后端API是否已实现
  4. 验证用户权限是否正确

创建日期: 2025-10-31
版本: v1.0.0
作者: AI Assistant