做纺织生意的朋友大概率都有这个经历:采购了十几款进销存软件试用,最后都放弃了。原因很一致——"它不会数我的纱线"。

不是通用软件质量差,而是纺织行业的库存结构和通用模型存在根本性冲突。这篇文章把冲突掰开讲清楚,最后给一份选型自检清单,帮你少走弯路。

一、三个真实场景,先看痛在哪

场景1:发错缸号,一单白干。
客户指名要缸号2305那批白色32S棉纱,仓库发出去的是2308——颜色完全一样,肉眼看不出差别,但客户染出来色差明显,整批拒收。来回运费加赔偿,小几千块没了(真实案例见我之前写的《纺织老板崩溃瞬间》)。

场景2:库存数字是"大概的"。
客户问"白色32S还有多少",得喊一嗓子问仓库,仓库翻了半天回一句"好像还有两三吨"。实际上白色剩3.5吨、藏青剩2吨、本白有5吨——但系统里只有一行"32S棉纱:10.5吨"。

场景3:同一个颜色,五种写法。
A员工写"大红",B员工写"正红",C员工写"深红"。月底盘点,三个"红"在报表上是三个商品,谁也不知道到底有多少红。

这三个场景指向同一个根源:纺织库存的管理维度,比通用模型多。

二、数据模型:通用ERP到底缺了哪一层

通用进销存的库存模型通常是三层:

商品(Product)→ 规格(Spec)→ SKU

看起来能套一切,但放到纺织场景就露馅了:

管理需求 通用模型的表达方式 实际后果
同款纱线,白色和藏青分开算库存 建两个SKU:"32S棉纱-白""32S棉纱-藏青" 颜色上百种时SKU爆炸,无法批量维护
同颜色不同缸号分开算 只能塞进备注字段 备注不可查询、不可统计、开单靠手打会打错
出库必须锁定具体缸号 模型里没有这个概念 发错缸号只能事后扯皮
公斤/米/码/卷多单位换算 大部分不支持 采购按吨、出货按公斤、客户要按卷
某缸号从进货到出货全链路追溯 无批次流水概念 客诉来了说不清哪天进的、哪个供应商、什么价

问题的本质:通用模型里"颜色"是商品属性,而纺织行业里"颜色+缸号"是库存本身。 属性和库存维度搞反了,怎么打补丁都别扭。

三、纺织行业库存需要什么样的模型

我们在做轻账纺织行业版的时候,把库存结构设计成四层:

商品(32S棉纱)
  └─ 颜色(白色 / 藏青 / 本白…预设点选,杜绝手写)
       └─ 缸号/批号(2305、2310…每缸独立数量)
            └─ 单位(公斤/米/卷 自动换算)

对应的关键设计决策:

  1. 颜色是预设枚举,不是自由文本。 开单时从下拉框选,打不错字,统计永远干净。
  2. 缸号是库存的最小计算单元。 库存表按"商品×颜色×缸号"三元组建账,任何一缸的数量单独可查。
  3. 出入库必选缸号。 出库单据强制绑定具体批号,从流程上杜绝"差不多发错了"。
  4. 一张批次流水表贯穿全链路。 采购入、销售出、调拨、盘点调整都写入流水,任意一缸货的完整生命史一条SQL就能拉出来:
SELECT * FROM batch_transactions
WHERE batch_number = '2305'
ORDER BY created_at;
-- 09-01 采购入库 +5t(进价32000/t,供应商XX纱厂)
-- 09-10 调拨出库 -1t
-- 09-15 销售出库 -2t(订单SO-0915)
-- 现存:2t

这套结构不是"功能多",而是账算得对不对的问题。库存账不准,后面的报价、赊账、对账全是空中楼阁。

四、选型自检清单

考察任何纺织进销存产品(包括自研),拿着这9条去试:

  • [ ] 新增一个颜色,是配置一次,还是要建N个SKU?
  • [ ] 开单时颜色是下拉点选还是手打文字?
  • [ ] 同一颜色不同缸号的库存,能否分开显示、分开扣减?
  • [ ] 销售出库是否强制选择缸号?
  • [ ] 任意一个缸号,能否30秒内查到它的进货时间、供应商、进价、当前余量?
  • [ ] 公斤↔米↔卷换算是否按商品配置自动进行?
  • [ ] 退货/调拨是否也走批次流水(否则追溯会断链)?
  • [ ] 手机端和电脑端库存数据是否实时一致?
  • [ ] 月底对账是查报表,还是人工翻单据加总?

3条以内打勾的,这个产品对你就是不适用的,不要指望"用习惯就好了"——模型缺陷靠操作习惯是补不回来的。

五、常见问题(FAQ)

Q:纺织行业用普通进销存+Excel行不行?
A:小规模(单色、缸号少)勉强可行,但Excel记录不进单据流,出错无法追溯,缸号一多维护成本指数上升。本质上你是在用Excel补数据模型的洞。

Q:纺织ERP一定要定制开发吗?
A:不一定。先看现有行业版产品能否覆盖,买不到合适的再考虑定制——定制的成本和长期维护投入,通常远超小老板的直觉估计。

Q:颜色、缸号、色号有什么区别?
A:颜色是直观分类(白色);缸号是染缸批次号,同色不同缸可能存在色差,是库存管理的最小单元;色号是标准色卡编码(如潘通号),用于对色沟通。ERP里必须按缸号分库存,按颜色做汇总。


我们在轻账LightLedger的开发过程中把纺织库存模型完整实现过一遍,技术层面的设计(Vue3+NestJS的颜色缸号三维建模、批次流水表结构)写在这篇架构文里,可以自己评估要不要照着做。下一篇讲批号追踪的数据库设计细节,感兴趣的可以关注。