将到货通知单的采购订单号从手动输入改为关联 ERP 采购订单,实现数据联动和校验。
| 页面 | 路径 | 说明 |
|---|---|---|
| 到货通知单列表页 | wls/arrivalnotice/index.vue |
到货通知单管理 |
| 到货通知单详情/编辑页 | wls/arrivalnotice/form.vue |
新增/编辑到货通知单 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /rpc-api/erp/purchase-order/get |
根据 ID 获取采购订单 |
| GET | /rpc-api/erp/purchase-order/list-by-supplier |
根据供应商获取采购订单列表(已审核) |
| POST | /mes/wm-arrival-notice/create |
创建到货通知单 |
| PUT | /mes/wm-arrival-notice/update |
更新到货通知单 |
请求参数变更(create/update):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| purchaseOrderId | Long | 否 | 采购订单编号(新增) |
| purchaseOrderCode | String | 否 | 采购订单号(冗余,后端自动填充) |
| vendorId | Long | 是 | 供应商编号(原有) |
| ... | ... | ... | 其他原有字段不变 |
响应变更:
| 参数 | 类型 | 说明 |
|---|---|---|
| purchaseOrderId | Long | 采购订单编号(新增) |
| purchaseOrderCode | String | 采购订单号(原有) |
<!-- 原来的输入框 -->
<el-form-item label="采购订单号" prop="purchaseOrderCode">
<el-input v-model="formData.purchaseOrderCode" placeholder="请输入采购订单号" />
</el-form-item>
<!-- 改为下拉选择框 -->
<el-form-item label="采购订单" prop="purchaseOrderId">
<el-select
v-model="formData.purchaseOrderId"
placeholder="请选择采购订单"
clearable
filterable
@change="handlePurchaseOrderChange"
>
<el-option
v-for="order in purchaseOrderList"
:key="order.id"
:label="order.no"
:value="order.id"
>
<span>{{ order.no }}</span>
<span style="color: #999; margin-left: 10px;">{{ order.orderTime }}</span>
</el-option>
</el-select>
</el-form-item>
data() {
return {
// 新增:采购订单列表
purchaseOrderList: [],
formData: {
purchaseOrderId: undefined, // 新增
purchaseOrderCode: '', // 保留(显示用)
// ... 其他字段
},
}
}
// 供应商变更时,加载对应的采购订单列表
handleVendorChange(vendorId) {
if (!vendorId) {
this.purchaseOrderList = [];
this.formData.purchaseOrderId = undefined;
this.formData.purchaseOrderCode = '';
return;
}
getPurchaseOrderListBySupplier(vendorId).then(res => {
this.purchaseOrderList = res.data || [];
});
}
// 采购订单变更时,自动填充采购订单号
handlePurchaseOrderChange(orderId) {
if (!orderId) {
this.formData.purchaseOrderCode = '';
return;
}
const order = this.purchaseOrderList.find(o => o.id === orderId);
if (order) {
this.formData.purchaseOrderCode = order.no;
}
}
import request from '@/utils/request';
// 根据供应商获取采购订单列表(已审核状态)
export function getPurchaseOrderListBySupplier(supplierId) {
return request({
url: `/rpc-api/erp/purchase-order/list-by-supplier?supplierId=${supplierId}`,
method: 'get'
});
}
purchaseOrderId 填充 purchaseOrderCode,前端无需手动传递purchaseOrderCode 字段保留用于显示,但不建议手动输入需要执行 SQL 脚本:sql/mysql/mes_wm_arrival_notice_purchase_order.sql
ALTER TABLE mes_wm_arrival_notice ADD COLUMN purchase_order_id BIGINT COMMENT '采购订单编号' AFTER name;
mes_wm_item_receipt 表在数据库中是 物料退库单(关联生产工单),但代码中注释写的是"采购入库单"。
这是一个代码与数据库不一致的问题,需要后续单独修复。本次修改不影响该表。