销售订单、出库、退货
这篇解决什么
销售单怎么下、出库怎么扣库存、退货怎么加回来。读完能对上 erp_sale_order 的客户、销售员和审核状态,以及客户主数据为什么走 MDM。
默认端口 48080。先开模块见 ERP 功能设计。
示意图:审核后出库。出库减库存,退货再加回。客户下拉读 MDM。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 销售订单 | @RequestMapping("/erp/sale-order") | ruoyi-office/yudao-module-erp/.../controller/admin/sale/ErpSaleOrderController.java |
| 改审核 | PUT /update-status | 同上 |
| 销售出库 | /erp/sale-out | ErpSaleOutController |
| 销售退货 | /erp/sale-return | ErpSaleReturnController |
| 客户 | /erp/customer | ErpCustomerController |
| 订单表 | erp_sale_order | ErpSaleOrderDO |
官方菜单:销售目录 2617。订单 2638(/erp/sale/order),出库 2652,退货 2659,客户 2618。
列表路由 /erp/sale/order。销售员是系统用户 ID,客户是 MDM 客商。
状态与字段
审核同样是 10 / 20,不是流程引擎。金额算法和采购一样:totalPrice = totalProductPrice + totalTaxPrice - discountPrice。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
no | 销售订单号 | ErpSaleOrderDO |
customerId | 客户,优先 MDM | 同上 |
saleUserId | 销售员,管理端用户 | 同上 |
accountId | 结算账户 | 同上 |
orderTime | 下单时间 | 同上 |
| 出库表 | erp_sale_out / erp_sale_out_item | ErpSaleOutDO |
| 退货表 | erp_sale_return | ErpSaleReturnDO |
库存业务类型:销售出库 50。统计接口在 /erp/sale-statistics,给首页和报表用,不改库存。
客户不能在销售页新建
ErpCustomerServiceImpl#createCustomer 直接 rejectMasterDataWrite。列表过滤 customer=true 的 MDM 客商。历史单仍可能带着旧 erp_customer.id,读取时先 MDM 再回退本地表。
这套客户和 CRM crm_customer 不是一张表。CRM 跟进、公海不要写到 customerId 上。
配置与操作
菜单:ERP → 销售 → 销售订单(2638,/erp/sale/order)。出库 2652,退货 2659,客户 2618。
先在 MDM 选客户、指定销售员(系统用户)、选结算账户。保存后 status = 10。行内 PUT /update-status 成 20 才能出库。审核是 ErpAuditStatus 的 10 / 20,不是 Flowable。
客户不能在销售页新建。这套 customerId 和 CRM crm_customer 不是一张表。金额算法:totalPrice = totalProductPrice + totalTaxPrice - discountPrice。
