编辑 | blame | 历史 | 原始文档

销售发货流程 - 前端联调方案

涉及页面

  • ERP 销售订单页面
  • MES 发货通知单页面
  • MES 销售出库单页面

业务流程与数据带入

  1. 销售订单 -> 发货通知单:销售订单ID、销售订单号、客户ID、物料明细自动带入
  2. 发货通知单 -> 销售出库单:发货通知单ID、销售订单ID、客户ID、物料明细自动带入
  3. 销售出库 -> BPM审批 -> 出库成功:同步更新销售订单出库数量和状态

API

方法 路径 说明
POST /mes/wm/sales-notice/generate-from-sale-order 从销售订单生成发货通知单
GET /mes/wm/sales-notice/page 发货通知单分页查询
GET /mes/wm/sales-notice/get 获取发货通知单详情
POST /mes/wm/sales-notice/create 创建发货通知单
PUT /mes/wm/sales-notice/submit 提交发货通知单

从销售订单生成发货通知单

请求参数:

参数 类型 必填 说明
saleOrderId Long 销售订单ID

响应: { "code": 200, "data": 123 } (返回发货通知单ID)

前端修改点

1. ERP 销售订单页面 - 添加"生成发货通知单"按钮

<el-button type="primary" @click="handleGenerateNotice" v-hasPermi="['mes:wm-sales-notice:create']">
  生成发货通知单
</el-button>
// data
data() {
  return {
    // ...
  }
}

// methods
methods: {
  /** 生成发货通知单 */
  async handleGenerateNotice() {
    if (!this.selectedRow) {
      this.$modal.msgWarning('请选择一条销售订单');
      return;
    }
    try {
      const res = await generateFromSaleOrder(this.selectedRow.id);
      this.$modal.msgSuccess('生成发货通知单成功');
      // 跳转到发货通知单页面
      this.$router.push({ 
        path: '/mes/wm/sales-notice/edit', 
        query: { id: res.data } 
      });
    } catch (e) {
      console.error(e);
    }
  }
}

2. 发货通知单页面 - 显示销售订单信息

<el-descriptions :column="3" border>
  <el-descriptions-item label="销售订单号">
    {{ form.saleOrderCode }}
  </el-descriptions-item>
  <el-descriptions-item label="客户">
    {{ form.clientName }}
  </el-descriptions-item>
</el-descriptions>

3. 发货通知单行表格 - 新增列

列名 字段 说明
销售订单明细ID saleOrderItemId 隐藏字段,用于追溯

4. 销售出库单页面 - 显示销售订单信息

<el-descriptions :column="3" border>
  <el-descriptions-item label="发货通知单号">
    {{ form.noticeCode }}
  </el-descriptions-item>
  <el-descriptions-item label="销售订单号">
    {{ form.saleOrderCode }}
  </el-descriptions-item>
  <el-descriptions-item label="客户">
    {{ form.clientName }}
  </el-descriptions-item>
</el-descriptions>

数据字段映射

发货通知单主表

目标字段 数据来源 填充时机
saleOrderId 销售订单.id 从销售订单生成时
saleOrderCode 销售订单.no 从销售订单生成时
clientId 销售订单.customerId 从销售订单生成时

发货通知单行

目标字段 数据来源 填充时机
saleOrderItemId 销售订单明细.id 从销售订单生成时
itemId 销售订单明细.productId 从销售订单生成时
quantity 销售订单明细.count 从销售订单生成时

销售出库单主表

目标字段 数据来源 填充时机
noticeId 发货通知单.id 从发货通知单生成时
saleOrderId 发货通知单.saleOrderId 从发货通知单生成时
saleOrderCode 发货通知单.saleOrderCode 从发货通知单生成时

销售出库单行

目标字段 数据来源 填充时机
noticeLineId 发货通知单行.id 从发货通知单生成时
saleOrderItemId 发货通知单行.saleOrderItemId 从发货通知单生成时

状态流转

发货通知单状态

状态值 状态名 说明
0 草稿 新建状态
3 待出库 提交后
4 已完成 出库完成后自动更新

销售订单出库状态

状态值 状态名 说明
0 未出库 默认值
1 部分出库 部分明细已出库
2 全部出库 所有明细已出库

注意事项

  1. 从销售订单生成发货通知单时,会自动带入所有销售订单明细
  2. 发货通知单提交后状态变为"待出库",此时可从发货通知单生成销售出库单
  3. 销售出库完成后,系统自动更新:
  • 发货通知单状态 -> 已完成
  • 销售订单出库数量和出库状态
  1. 销售订单的出库状态根据明细出库数量自动计算,无需手动维护