我们设计这个系统的核心目标:精确计算利润、实时更新库存、优化材料利用率。
本文目录
隐藏
系统设计核心原理
这个系统需要详细记录每个业务环节的数据,并通过算法(如排料优化)提高板材利用率,从而最大化利润。
设计方法思路
边角料与废料的判断逻辑和计算原理
一、核心判断标准
1. 尺寸标准(硬性指标)
边角料:可用于后续生产的剩余板材
废料:无法再利用的剩余板材
尺寸界限表:
| 分类 | 最小尺寸要求 | 面积要求 | 形状要求 |
|---|---|---|---|
| 优质边角料 | 长≥600mm,宽≥400mm | ≥0.24㎡ | 规整矩形 |
| 普通边角料 | 长≥400mm,宽≥300mm | ≥0.12㎡ | 基本矩形 |
| 小型边角料 | 长≥300mm,宽≥200mm | ≥0.06㎡ | 允许不规则 |
| 废料 | <300mm或<200mm | <0.06㎡ | 任何形状 |
2. 形状和质量标准
形状评分系统:
-- 形状完整度计算
CREATE FUNCTION 计算形状完整度(@长度 DECIMAL, @宽度 DECIMAL, @形状描述 NVARCHAR(50))
RETURNS DECIMAL(5,2)
AS
BEGIN
DECLARE @完整度 DECIMAL(5,2) = 100;
-- 长宽比异常扣分
IF @长度 / @宽度 > 3 OR @宽度 / @长度 > 3
SET @完整度 = @完整度 - 30;
-- 根据形状描述判断
IF @形状描述 LIKE '%不规则%'
SET @完整度 = @完整度 - 20;
IF @形状描述 LIKE '%三角%'
SET @完整度 = @完整度 - 15;
IF @形状描述 LIKE '%梯形%'
SET @完整度 = @完整度 - 10;
-- 必须达到60分才算边角料
RETURN @完整度;
END
质量标准:
- 边角料要求:
- 无贯穿性裂纹
- 边角完整度≥80%
- 表面无明显划痕(深度<1mm)
- 无大面积污染
- 废料特征:
- 有贯穿性裂纹
- 断裂或严重破损
- 表面深度划痕
- 污染无法清洗
二、智能判断算法
1. 自动化判断流程
CREATE PROCEDURE 自动判断边角料废料
@原板材编号 NVARCHAR(30),
@切割后尺寸 NVARCHAR(100), -- 格式:"1200×800,400×300,200×150"
@切割质量评分 INT,
@操作人员判断 NVARCHAR(50) = NULL
AS
BEGIN
-- 1. 解析切割后的各个碎片尺寸
CREATE TABLE #碎片表 (
序号 INT IDENTITY(1,1),
长度 DECIMAL(10,2),
宽度 DECIMAL(10,2),
面积 DECIMAL(10,3),
形状描述 NVARCHAR(50),
临时分类 NVARCHAR(20)
);
-- 2. 解析尺寸字符串并插入临时表
-- (实际实现需要解析字符串逻辑)
-- 3. 自动分类算法
UPDATE #碎片表
SET 临时分类 =
CASE
-- 优质边角料条件
WHEN 长度 >= 600 AND 宽度 >= 400 AND 面积 >= 0.24
AND dbo.计算形状完整度(长度, 宽度, 形状描述) >= 70
AND @切割质量评分 >= 80
THEN N'优质边角料'
-- 普通边角料条件
WHEN 长度 >= 400 AND 宽度 >= 300 AND 面积 >= 0.12
AND dbo.计算形状完整度(长度, 宽度, 形状描述) >= 60
AND @切割质量评分 >= 70
THEN N'普通边角料'
-- 小型边角料条件
WHEN 长度 >= 300 AND 宽度 >= 200 AND 面积 >= 0.06
AND dbo.计算形状完整度(长度, 宽度, 形状描述) >= 50
AND @切割质量评分 >= 60
THEN N'小型边角料'
-- 否则为废料
ELSE N'废料'
END;
-- 4. 考虑人工判断(如果有)
IF @操作人员判断 IS NOT NULL
BEGIN
UPDATE #碎片表
SET 临时分类 = @操作人员判断
WHERE 序号 = 1; -- 假设只针对主要碎片
END
-- 5. 返回分类结果
SELECT * FROM #碎片表;
-- 6. 自动入库处理
INSERT INTO 边角料库存表 (边角料编号, 原板材编号, 尺寸描述, 总面积, 可用状态, 价值评估)
SELECT
dbo.生成边角料编号(),
@原板材编号,
尺寸描述,
面积,
CASE
WHEN 临时分类 IN (N'优质边角料', N'普通边角料', N'小型边角料')
THEN N'可用'
ELSE N'废料'
END,
dbo.计算边角料价值(长度, 宽度, 面积, 临时分类)
FROM #碎片表;
DROP TABLE #碎片表;
END
GO
2. 边角料价值评估算法
CREATE FUNCTION 计算边角料价值(
@长度 DECIMAL(10,2),
@宽度 DECIMAL(10,2),
@面积 DECIMAL(10,3),
@分类 NVARCHAR(20)
)
RETURNS DECIMAL(10,2)
AS
BEGIN
DECLARE @基准单价 DECIMAL(10,2);
DECIMAL @折扣系数 DECIMAL(5,2);
-- 根据材料类型获取基准单价(假设有外部表或参数)
SET @基准单价 = 500; -- 元/平方米,假设值
-- 根据分类确定折扣
SET @折扣系数 =
CASE @分类
WHEN N'优质边角料' THEN 0.5 -- 原价的50%
WHEN N'普通边角料' THEN 0.3 -- 原价的30%
WHEN N'小型边角料' THEN 0.2 -- 原价的20%
ELSE 0 -- 废料无价值
END;
-- 考虑尺寸折扣
IF @面积 < 0.1 -- 小于0.1平方米,进一步打折
SET @折扣系数 = @折扣系数 * 0.8;
-- 考虑形状折扣
DECLARE @长宽比 DECIMAL(10,2) =
CASE WHEN @长度 > @宽度 THEN @长度/@宽度 ELSE @宽度/@长度 END;
IF @长宽比 > 2 -- 长宽比过大,利用率低
SET @折扣系数 = @折扣系数 * 0.9;
RETURN @面积 * @基准单价 * @折扣系数;
END
GO
三、业务规则和判断流程
1. 现场判断检查表
┌─────────────────┬─────────────────┬─────────────────┐
│ 检查项目 │ 边角料标准 │ 废料特征 │
├─────────────────┼─────────────────┼─────────────────┤
│ 尺寸 │ ≥300×200mm │ <300×200mm │
│ 形状 │ 基本规整 │ 极不规则 │
│ 完整性 │ 边角完整 │ 有缺口/裂纹 │
│ 表面质量 │ 轻微划痕 │ 深度损伤 │
│ 厚度均匀性 │ 厚度一致 │ 厚度不均 │
│ 可用性评估 │ 有明确用途 │ 无可用场景 │
└─────────────────┴─────────────────┴─────────────────┘
2. 决策流程图
graph TD
A[切割完成] --> B{尺寸≥300×200mm?}
B -->|是| C{形状是否规整?}
B -->|否| D[标记为废料]
C -->|是| E{有无裂纹/破损?}
C -->|否| F[评估:形状不规整<br>可能降级为废料]
E -->|无| G[标记为边角料]
E -->|有| H{裂纹是否轻微?}
H -->|是| I[标记为次等边角料]
H -->|否| J[标记为废料]
F --> K{能否二次加工<br>变为规整形状?}
K -->|能| L[标记为待加工边角料]
K -->|不能| M[标记为废料]
G --> N[记录入库<br>计算价值]
I --> N
L --> O[安排二次加工]
D --> P[废料处理流程]
M --> P
O --> N
3. 具体尺寸应用场景
不同尺寸边角料的用途:
| 尺寸范围 | 分类 | 可能用途 | 备注 |
|---|---|---|---|
| ≥1200×600mm | 大型边角料 | 小灶台面、窗台板 | 可单独接单 |
| 800×400mm ~ 1200×600mm | 中型边角料 | 洗手台、茶几面 | 需要拼接 |
| 400×300mm ~ 800×400mm | 小型边角料 | 锅垫、装饰板 | 批量使用 |
| 300×200mm ~ 400×300mm | 微型边角料 | 马赛克、小饰品 | 特殊工艺 |
| <300×200mm | 废料 | 填料、垃圾 | 无经济价值 |
四、数据库设计优化
1. 边角料库存表扩展
ALTER TABLE 边角料库存表
ADD
-- 尺寸详细字段
长度 DECIMAL(10,2),
宽度 DECIMAL(10,2),
厚度 DECIMAL(5,1),
-- 质量评估字段
质量等级 NVARCHAR(20) DEFAULT N'普通'
CHECK (质量等级 IN (N'优质', N'普通', N'次等', N'待处理')),
完整度评分 DECIMAL(5,2), -- 0-100分
表面状态 NVARCHAR(50), -- 描述表面状况
-- 可用性字段
建议用途 NVARCHAR(200),
适用最小订单面积 DECIMAL(10,3),
拼接复杂度 INT DEFAULT 1, -- 1-5,越高拼接越复杂
-- 经济性字段
评估单价 DECIMAL(10,2), -- 元/平方米
总价值 DECIMAL(10,2),
入库成本 DECIMAL(10,2), -- 存储、管理成本
-- 时效性字段
最佳使用期限 DATE, -- 建议在此日期前使用
呆滞标记 BIT DEFAULT 0, -- 是否呆滞料
呆滞天数 AS DATEDIFF(DAY, 入库日期, GETDATE());
2. 废料处理记录表
CREATE TABLE 废料处理记录表 (
记录编号 INT IDENTITY(1,1) PRIMARY KEY,
来源订单编号 NVARCHAR(30),
来源板材编号 NVARCHAR(30),
废料类型 NVARCHAR(20), -- 切割废料、破损废料等
废料面积 DECIMAL(10,3),
废料重量 DECIMAL(10,2),
处理方式 NVARCHAR(50) -- 填埋、回收、出售等
CHECK (处理方式 IN (N'填埋', N'专业回收', N'建筑填料', N'出售', N'其他')),
处理单价 DECIMAL(10,2), -- 处理成本或出售收入
处理总金额 DECIMAL(10,2),
处理日期 DATETIME DEFAULT GETDATE(),
处理单位 NVARCHAR(100),
环保处理证明号 NVARCHAR(50),
备注 NVARCHAR(MAX),
CONSTRAINT FK_废料_订单 FOREIGN KEY (来源订单编号) REFERENCES 客户订单表(订单编号),
CONSTRAINT FK_废料_板材 FOREIGN KEY (来源板材编号) REFERENCES 板材库存表(库存编号)
);
五、实际判断示例
示例1:标准切割场景
-- 场景:2400×1200mm板材切割后
DECLARE @碎片表 TABLE (
碎片描述 NVARCHAR(100),
长度 DECIMAL,
宽度 DECIMAL
);
INSERT INTO @碎片表 VALUES
(N'主台面', 2200, 600), -- 订单使用部分
(N'剩余块1', 2400, 400), -- 优质边角料
(N'剩余块2', 2000, 200), -- 普通边角料(长宽比10:1,利用率低)
(N'剩余块3', 400, 300), -- 小型边角料
(N'剩余块4', 200, 100), -- 废料
(N'边角碎料', 50, 30); -- 废料
-- 系统自动判断
SELECT
碎片描述,
长度,
宽度,
长度 * 宽度 / 1000000 AS 面积平方米,
CASE
WHEN 长度 >= 600 AND 宽度 >= 400 THEN N'优质边角料'
WHEN 长度 >= 400 AND 宽度 >= 300 THEN N'普通边角料'
WHEN 长度 >= 300 AND 宽度 >= 200 THEN N'小型边角料'
ELSE N'废料'
END AS 系统判断,
CASE
WHEN 长度 * 宽度 / 1000000 < 0.06 THEN N'面积太小,废料'
WHEN 长度 / 宽度 > 3 OR 宽度 / 长度 > 3 THEN N'形状不佳,降级处理'
ELSE N'符合标准'
END AS 判断依据
FROM @碎片表;
示例2:实际业务判断规则
实际生产中的判断经验:
1. "三指原则"(现场简易判断):
- 能用三根手指稳定抓握的 → 废料
- 需要双手搬运的 → 边角料
2. "用途倒推法":
- 问:这个碎片能做什么具体产品?
- 能明确说出1-2种用途 → 边角料
- 想不到具体用途 → 废料
3. "经济性判断":
- 存储成本 > 潜在价值 → 废料
- 加工成本 > 材料价值 → 废料
- 快速变现可能性高 → 边角料
4. "工艺可行性":
- 能否直接二次切割? → 边角料
- 需要复杂加工才能用? → 谨慎评估
- 加工后尺寸更小? → 可能废料
六、优化建议
1. 动态调整判断标准
-- 基于历史数据的智能调整
CREATE PROCEDURE 动态调整判断标准
AS
BEGIN
-- 分析过去3个月边角料利用率
DECLARE @实际利用率 DECIMAL(5,2);
SELECT @实际利用率 =
SUM(CASE WHEN 使用状态 = N'已使用' THEN 1 ELSE 0 END) * 100.0 / COUNT(*)
FROM 边角料库存表
WHERE 入库日期 >= DATEADD(MONTH, -3, GETDATE());
-- 如果利用率低,提高标准
IF @实际利用率 < 30
BEGIN
-- 自动调高标准,减少边角料入库
UPDATE 系统参数表
SET 边角料最小尺寸 = N'400×300',
边角料最小面积 = 0.12
WHERE 参数类型 = N'边角料标准';
END
ELSE IF @实际利用率 > 60
BEGIN
-- 利用率高,可以适当放宽标准
UPDATE 系统参数表
SET 边角料最小尺寸 = N'300×200',
边角料最小面积 = 0.06
WHERE 参数类型 = N'边角料标准';
END
END
GO
2. 员工培训判断标准
培训要点:
1. 标准工具:准备标准尺寸模板卡(300×200mm、400×300mm等)
2. 现场对比:新切割碎片与模板对比
3. 质量检查:使用强光灯检查裂纹
4. 用途思考:每个碎片思考至少一个潜在用途
5. 记录习惯:及时记录判断理由,便于追溯
考核指标:
- 边角料判断准确率(与最终使用情况对比)
- 废料率控制(目标<15%)
- 边角料再利用价值
3. 技术升级方向
- 视觉识别系统:摄像头+AI识别碎片尺寸和质量
- 自动测量设备:激光测量,自动记录尺寸
- 二维码标签:每个碎片贴码,跟踪全生命周期
- 智能推荐系统:根据碎片尺寸推荐最合适用途
七、关键绩效指标
-- 废料率监控
SELECT
月份,
总切割面积,
废料总面积,
废料率 = 废料总面积 / 总切割面积 * 100,
边角料总面积,
边角料利用率 =
(SELECT SUM(使用面积)
FROM 订单用料明细表
WHERE 库存编号 IN (SELECT 边角料编号 FROM 边角料库存表)
AND MONTH(切割日期) = MONTH(主表.月份))
/ 边角料总面积 * 100
FROM 月度切割统计表
ORDER BY 月份 DESC;
通过这套系统,您可以:
- 标准化判断:减少主观因素影响
- 价值最大化:每个碎片都评估经济价值
- 持续优化:根据数据调整判断标准
- 责任追溯:每个判断都有记录可查
© 版权声明
THE END















