当前位置: 首页 > article >正文

ERP生产模块设计:从BOM到完工

一、基础数据BOM与工艺路线生产模块的核心是BOM物料清单和工艺路线。这两个搞不清楚生产计划无从谈起。1. BOM表结构CREATE TABLE bd_bom ( id BIGINT PRIMARY KEY AUTO_INCREMENT, bom_no VARCHAR(30) NOT NULL UNIQUE, material_id BIGINT NOT NULL, -- 成品 version VARCHAR(10) DEFAULT 1.0, -- 基本信息 bom_type VARCHAR(20), -- STANDARD/ENGINEERING effective_date DATE, expire_date DATE, -- 用量汇总 total_material_cost DECIMAL(18,2), status VARCHAR(10) DEFAULT ACTIVE, created_time DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_material_version (material_id, version), INDEX idx_material (material_id) ); CREATE TABLE bd_bom_component ( id BIGINT PRIMARY KEY AUTO_INCREMENT, bom_id BIGINT NOT NULL, line_no INT NOT NULL, -- 子件 material_id BIGINT NOT NULL, -- 用量 quantity DECIMAL(18,6) NOT NULL, -- 基础用量 base_quantity DECIMAL(18,6) DEFAULT 1,-- 成品基数 usage_rate DECIMAL(18,6) GENERATED ALWAYS AS (quantity / base_quantity) STORED, -- 损耗 scrap_rate DECIMAL(5,2) DEFAULT 0, actual_usage DECIMAL(18,6) GENERATED ALWAYS AS (quantity / base_quantity * (1 scrap_rate / 100)) STORED, -- 替代件 substitute_group VARCHAR(20), substitute_priority INT, -- 工序 operation_seq INT, INDEX idx_bom (bom_id), INDEX idx_material (material_id) );usage_rate单位用量。如果生产100个成品需要50个零件quantity50base_quantity100usage_rate0.5。scrap_rate损耗率。考虑损耗后的实际需求量 标准用量 × (1 损耗率)。2. 工艺路线CREATE TABLE bd_routing ( id BIGINT PRIMARY KEY AUTO_INCREMENT, routing_no VARCHAR(30) NOT NULL UNIQUE, material_id BIGINT NOT NULL, version VARCHAR(10) DEFAULT 1.0, status VARCHAR(10) DEFAULT ACTIVE, created_time DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE bd_routing_operation ( id BIGINT PRIMARY KEY AUTO_INCREMENT, routing_id BIGINT NOT NULL, operation_seq INT NOT NULL, -- 工序号 operation_code VARCHAR(20) NOT NULL, -- 工序代码 operation_name VARCHAR(50) NOT NULL, -- 工作中心 work_center_id BIGINT NOT NULL, -- 时间标准 setup_time DECIMAL(10,2), -- 准备时间小时 run_time DECIMAL(10,2), -- 单件加工时间小时 wait_time DECIMAL(10,2), -- 等待时间小时 move_time DECIMAL(10,2), -- 移动时间小时 -- 人员 crew_size INT DEFAULT 1, -- 成本 labor_cost DECIMAL(18,6), machine_cost DECIMAL(18,6), overhead_cost DECIMAL(18,6), INDEX idx_routing (routing_id) );二、生产订单与领料1. 生产订单CREATE TABLE mo_order ( id BIGINT PRIMARY KEY AUTO_INCREMENT, mo_no VARCHAR(30) NOT NULL UNIQUE, mo_date DATE NOT NULL, mo_type VARCHAR(20), -- NORMAL/REWORK/TEAR_DOWN -- 产品 material_id BIGINT NOT NULL, bom_id BIGINT, routing_id BIGINT, -- 数量 quantity DECIMAL(18,6) NOT NULL, completed_quantity DECIMAL(18,6) DEFAULT 0, scrapped_quantity DECIMAL(18,6) DEFAULT 0, -- 日期 plan_start_date DATE, plan_end_date DATE, actual_start_date DATE, actual_end_date DATE, -- 状态 status VARCHAR(10) DEFAULT DRAFT, -- DRAFT/RELEASED/STARTED/COMPLETED/CLOSED created_time DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_material (material_id), INDEX idx_status (status) );2. 领料单CREATE TABLE mo_material_requisition ( id BIGINT PRIMARY KEY AUTO_INCREMENT, requisition_no VARCHAR(30) NOT NULL UNIQUE, requisition_date DATE NOT NULL, mo_id BIGINT NOT NULL, warehouse_id BIGINT NOT NULL, status VARCHAR(10) DEFAULT DRAFT, created_time DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE mo_material_requisition_line ( id BIGINT PRIMARY KEY AUTO_INCREMENT, requisition_id BIGINT NOT NULL, material_id BIGINT NOT NULL, batch_no VARCHAR(50), required_quantity DECIMAL(18,6), -- 需求数量 actual_quantity DECIMAL(18,6), -- 实领数量 warehouse_id BIGINT NOT NULL, location_id BIGINT, INDEX idx_requisition (requisition_id) );3. 领料审核扣减库存CREATE PROCEDURE sp_mo_requisition_approve(IN p_requisition_id BIGINT) BEGIN -- 扣减库存 UPDATE inv_stock s JOIN mo_material_requisition_line l ON s.material_id l.material_id AND s.warehouse_id l.warehouse_id SET s.quantity s.quantity - l.actual_quantity WHERE l.requisition_id p_requisition_id; -- 记录流水 INSERT INTO inv_transaction (transaction_type, warehouse_id, material_id, quantity) SELECT OUT_PRODUCTION, warehouse_id, material_id, -actual_quantity FROM mo_material_requisition_line WHERE requisition_id p_requisition_id; UPDATE mo_material_requisition SET status APPROVED WHERE id p_requisition_id; END;三、完工入库与成本核算1. 完工报告CREATE TABLE mo_completion ( id BIGINT PRIMARY KEY AUTO_INCREMENT, completion_no VARCHAR(30) NOT NULL UNIQUE, completion_date DATE NOT NULL, mo_id BIGINT NOT NULL, -- 完工数量 completed_quantity DECIMAL(18,6) NOT NULL, scrapped_quantity DECIMAL(18,6) DEFAULT 0, -- 入库仓库 warehouse_id BIGINT NOT NULL, -- 成本 material_cost DECIMAL(18,2), labor_cost DECIMAL(18,2), overhead_cost DECIMAL(18,2), total_cost DECIMAL(18,2), status VARCHAR(10) DEFAULT DRAFT, created_time DATETIME DEFAULT CURRENT_TIMESTAMP );2. 完工审核增加库存CREATE PROCEDURE sp_mo_completion_approve(IN p_completion_id BIGINT) BEGIN DECLARE v_mo_id BIGINT; DECLARE v_material_id BIGINT; DECLARE v_quantity DECIMAL(18,6); DECLARE v_cost DECIMAL(18,6); DECLARE v_warehouse_id BIGINT; -- 获取完工信息 SELECT mo_id, completed_quantity, total_cost, warehouse_id INTO v_mo_id, v_quantity, v_cost, v_warehouse_id FROM mo_completion WHERE id p_completion_id; -- 获取产品ID SELECT material_id INTO v_material_id FROM mo_order WHERE id v_mo_id; -- 计算单位成本 SET v_cost v_cost / v_quantity; -- 增加库存 INSERT INTO inv_stock (warehouse_id, material_id, quantity, cost) VALUES (v_warehouse_id, v_material_id, v_quantity, v_cost) ON DUPLICATE KEY UPDATE quantity quantity v_quantity, cost (cost * quantity v_cost * v_quantity) / (quantity v_quantity); -- 记录流水 INSERT INTO inv_transaction (transaction_type, warehouse_id, material_id, quantity, cost) VALUES (IN_PRODUCTION, v_warehouse_id, v_material_id, v_quantity, v_cost); -- 更新生产订单完工数量 UPDATE mo_order SET completed_quantity completed_quantity v_quantity WHERE id v_mo_id; UPDATE mo_completion SET status APPROVED WHERE id p_completion_id; END;四、生产成本核算逻辑1. 材料成本领料时按实际领用量 × 领料单价计算。如果采用加权平均法领料单价取当前库存平均成本。2. 人工成本按工序报工汇总人工工时 × 工作中心人工费率。3. 制造费用按工时分摊或按产量分摊或按机器工时分摊。不同企业分摊方法不同。4. 成本差异标准成本 vs 实际成本。差异分析是成本控制的基础。成都云策数链科技有限公司 | 用友四川授权服务中心 | 专注企业数字化转型

相关文章:

ERP生产模块设计:从BOM到完工

一、基础数据:BOM与工艺路线生产模块的核心是BOM(物料清单)和工艺路线。这两个搞不清楚,生产计划无从谈起。1. BOM表结构CREATE TABLE bd_bom (id BIGINT PRIMARY KEY AUTO_INCREMENT,bom_no VARCHAR(30) NOT NULL UNIQUE,materia…...

如何高效处理RPG Maker加密资源:纯前端解密方案深度解析

如何高效处理RPG Maker加密资源:纯前端解密方案深度解析 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://gitco…...

机器人接触式操作:混合式轨迹优化与策略学习

1. 机器人接触式操作的核心挑战与解决方案在机器人操作领域,接触式任务(如物体翻转、装配、精密放置)一直是最具挑战性的问题之一。这类任务要求机器人频繁建立和断开与物体的接触,同时需要精确控制接触力和运动轨迹。哪怕几毫米的…...

MediaCreationTool.bat:革命性的Windows自动化部署解决方案

MediaCreationTool.bat:革命性的Windows自动化部署解决方案 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat …...

5分钟上手iFakeLocation:无需越狱的iOS虚拟定位神器

5分钟上手iFakeLocation:无需越狱的iOS虚拟定位神器 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation iFakeLocation是一款强大的跨平台开源工具…...

告别重启:IDEA集成JRebel实现Java代码热部署全攻略

1. 为什么你需要JRebel来拯救开发效率 作为一个Java开发者,你一定经历过这样的痛苦:每次修改完代码,都要经历漫长的重启等待。特别是开发Web应用时,改一行代码就要重启Tomcat,看着进度条慢慢爬行,那种感觉就…...

用Wireshark抓包分析Powerlink协议:从数据帧看懂主站轮询与从站响应

Wireshark实战:深度解析Powerlink协议的主从站通信机制 工业以太网协议Powerlink凭借其确定性实时通信能力,在自动化控制领域占据重要地位。本文将带您通过Wireshark抓包分析,揭开Powerlink主站轮询与从站响应的核心机制。不同于基础配置教程…...

数据获取指南

教程:数据获取指南 作者:太虚野老 目录 说明: 3 数据获取指南 4 计划:创建和填充示例表 4 基础数据检索 4 过滤和排序结果 6 处理多表(JOIN)和函数 7 SELECT 语句修饰符 8 说明: 1.MariaDB版本:10.11.14 2.开发工具:dbeaver(版本25.3.0) 3.操作系统:debian12…...

从VMware嵌套虚拟化到NFS共享存储:一份给运维新人的FusionCompute平台搭建避坑实录

从VMware嵌套虚拟化到NFS共享存储:一份给运维新人的FusionCompute平台搭建避坑实录 刚接触云计算平台搭建的运维工程师,往往会被各种专业术语和复杂配置搞得晕头转向。华为FusionCompute作为企业级虚拟化平台,功能强大但入门门槛不低。本文将…...

STM32F103C8T6驱动MAX30102:从CubeMX配置到心率可视化,一个LED灯带你看懂心跳

STM32F103C8T6驱动MAX30102:从硬件交互到心跳可视化实战 当你第一次看到LED灯随着自己的心跳节奏闪烁时,那种将生物信号转化为物理反馈的奇妙体验,正是嵌入式开发的魅力所在。本文将带你用STM32F103C8T6和MAX30102血氧传感器,打造…...

实战 | 性能瓶颈无处遁形,揭秘 mPaaS 全链路压测的落地策略与调优秘籍

1. 从性能焦虑到精准定位:为什么需要全链路压测? 第一次接手移动应用性能优化项目时,我盯着监控大屏上跳动的红色警报线手足无措。用户投诉像雪片般飞来:"支付页面卡死"、"图片加载转圈半分钟"、"活动页…...

【谷歌内部培训材料流出】:Gemini与Workspace Admin Console深度绑定的5类企业级策略配置

更多请点击: https://intelliparadigm.com 第一章:Gemini与Workspace Admin Console深度集成的底层架构解析 Gemini 与 Workspace Admin Console 的深度集成并非简单的 API 调用叠加,而是基于统一身份上下文、双向实时状态同步和策略驱动控制…...

人工智能【第22篇】Seq2Seq模型与注意力机制:机器翻译的基石

作者的话:在前面的文章中,我们学习了RNN、LSTM以及NLP的基础知识。现在让我们进入NLP的核心应用——机器翻译。Seq2Seq(Sequence to Sequence)模型是机器翻译的基石,而注意力机制(Attention)的出…...

【Perplexity PubMed医学搜索实战指南】:3大颠覆性技巧让临床研究效率提升300%

更多请点击: https://intelliparadigm.com 第一章:Perplexity PubMed医学搜索实战指南概述 Perplexity AI 作为新一代推理型搜索引擎,其“学术模式”深度集成 PubMed 元数据与语义理解能力,可显著提升临床研究者、循证医学实践者…...

收藏 | 程序员小白也能掌握大模型开发,AI时代大有可为!

收藏 | 程序员小白也能掌握大模型开发,AI时代大有可为! 本文针对非AI专业背景的程序员,介绍了如何参与大模型应用开发。内容涵盖大模型基础、提示词编写与提示工程技巧,以及使用OpenAI API和LangChain框架进行应用开发的关键步骤。…...

Cursor智能体监控工具:本地部署与API成本可视化实战

1. 项目概述:一个为开发者量身打造的Cursor智能体监控工具如果你和我一样,是一位重度依赖Cursor进行编码的开发者,那你一定对它的“智能体”(Agent)功能又爱又恨。爱的是,它能理解上下文、自动补全代码、甚…...

小白/程序员必备!收藏这份大模型AI学习资料,抓住高薪职业赛道!

小白/程序员必备!收藏这份大模型AI学习资料,抓住高薪职业赛道! 随着AI技术发展,AI人才需求激增,薪资待遇飙升。本文针对小白和程序员学习大模型AI的三大难题:缺乏理论、资源受限、底层逻辑难懂,…...

收藏!AI时代程序员是消失还是逆袭?小白程序员必看大模型逆袭指南

收藏!AI时代程序员是消失还是逆袭?小白程序员必看大模型逆袭指南 文章探讨了AI对程序员行业的影响,指出AI抢走了程序员一半的饭碗,但也为另一半人打开了高阶职场的大门。初级岗位因AI工具普及而面临失业风险,但高级技术…...

收藏!小白程序员轻松入门大模型,高薪就业秘籍大公开!

收藏!小白程序员轻松入门大模型,高薪就业秘籍大公开! 本文为想入行AI应用开发的程序员提供了一条“先进门、再补短板”的转型路径。核心内容包括夯实Python基础、掌握AI应用核心概念(如RAG、Prompt工程、Agent智能体)、…...

ARM GICv3虚拟中断处理:GICV_IAR寄存器详解

1. GICV_IAR寄存器概述GICV_IAR(Virtual Machine Interrupt Acknowledge Register)是ARM GICv3架构中虚拟CPU接口的关键寄存器,主要用于虚拟机环境下的中断确认机制。当虚拟中断信号到达处理器时,通过读取该寄存器可以获取当前最高…...

机器学习在芯片电容提取中的应用与CapBench数据集

1. 电容提取与机器学习结合的背景与挑战在芯片设计流程中,电容提取是决定最终产品性能的关键环节。当设计进入物理实现阶段,工程师需要精确计算互连线之间的寄生电容,这些数据直接影响时序分析和功耗估算的准确性。传统基于场求解器的方法&am…...

systemverilog学习

1.数据类型 1.1logic类型和双状态数据类型 logic类型:在实际电路中,信号只有0和1两种状态,但是在电路设计中,能有四种状态,0、1、Z和X,X代表未知态,当给它两个驱动时(一边给0&#x…...

so_arm101上传云端并握手

采集数据集:一个腕部摄像头lerobot-record \--robot.typeso101_follower \--robot.port/dev/tty.usbmodem5B415317841 \--robot.idzihao_follower_arm \--robot.cameras"{ front: {type: opencv, index_or_path: 0, width: 1920, height: 1080, fps: 60, fourc…...

【Zotero-Perplexity协同系统白皮书】:基于127个真实科研场景验证的整合失败率下降91.6%的工程化方案

更多请点击: https://intelliparadigm.com 第一章:Zotero-Perplexity协同系统白皮书概览 Zotero-Perplexity协同系统是一个面向学术研究者的智能文献工作流增强框架,它将Zotero本地文献管理能力与Perplexity AI的实时语义检索、上下文感知问…...

保姆级教程:STM32F407驱动AD9926并行ADC,从硬件连线到DMA数据搬运全流程

STM32F407实战:AD9926并行ADC驱动与DMA高效数据采集全解析 在工业自动化与精密测量领域,高速数据采集系统的设计一直是嵌入式开发的难点之一。AD9926作为一款12位并行输出ADC芯片,配合STM32F407强大的DCMI接口和DMA控制器,能够构…...

LaTeX2Word-Equation:3分钟实现LaTeX公式到Word的无缝转换

LaTeX2Word-Equation:3分钟实现LaTeX公式到Word的无缝转换 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 还在为学术论文中复杂的数…...

初识java(三):运算符

目录 一:什么是运算符 二:算术运算符 1. 基本四则运算符:加减乘除模( - * / %) 2.增量运算符 - * % 3. ⾃增/⾃减运算符 -- 三:关系运算符 四:逻辑运算符(重点) 1.逻辑与&& 2.逻辑 || …...

EasyRules:轻量级规则引擎的实战入门

1. 为什么你需要了解EasyRules? 如果你是一名开发者,肯定遇到过这样的场景:业务逻辑越来越复杂,代码里充斥着大量的if-else嵌套,每次修改都要小心翼翼,生怕影响其他逻辑。我曾经维护过一个用户积分系统&…...

HoRain云--PHP安全插入MySQL数据指南

🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...

如何安全导出浏览器Cookie:本地化工具的完整使用教程

如何安全导出浏览器Cookie:本地化工具的完整使用教程 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 你是否曾需要将浏览器Cookie导出到…...