ERP 中的车间

金蝶中没有实际的车间概念,其车间是通过设置部门的部门属性来进行分类。车间在云星空中的定义是部门属性必须为“基本生产部门”的部门。

所以我们不需要同步金蝶的“车间”到我们的“车间”,但需要建立金蝶中“车间”与我们“工作中心”的对应关系,以便实现在订单下推时可以自动选择工作中心。

由于东原还没有确定最终 ERP 中车间的设置与产线的关联关系是什么,前期我们先将 ERP 中车间的信息建立一张关联表保存起来,前期通过维护表数据来维护关联关系,后期再依实际情况决定要不要做成配置。(2025-07-21)

ERP 中的车间与精制中工作中心和生产单元的关联

云星空车间 精制工作中心 精制生产基本单元
生产部 肇庆车间
扬声器三厂-功放
扬声器一厂
扬声器四厂-音圈部
扬声器二厂
音箱部
六分厂
七分厂
八分厂

车间与工作中心的关联表

/*
 Navicat Premium Dump SQL

 Source Server         : 渊联-192.168.103.89
 Source Server Type    : MySQL
 Source Server Version : 80032 (8.0.32)
 Source Host           : 192.168.103.89:3306
 Source Schema         : dfs

 Target Server Type    : MySQL
 Target Server Version : 80032 (8.0.32)
 File Encoding         : 65001

 Date: 23/07/2025 17:01:36
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for work_center_work_shop
-- ----------------------------
DROP TABLE IF EXISTS `work_center_work_shop`;
CREATE TABLE `work_center_work_shop`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `shop_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '云星空车间编码',
  `shop_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '云星空车间名称',
  `work_center_id` int NULL DEFAULT NULL COMMENT '精制工作中心id',
  `work_center_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '精制工作中心名称',
  `production_basic_unit_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '精制生产基本单元编码',
  `production_basic_unit_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '精制生产基本单元名称',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '云星空录入的车间与精致生产中心 基本单元映射表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of work_center_work_shop
-- ----------------------------
INSERT INTO `work_center_work_shop` VALUES (1, '10', '生产部', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (2, '16', '扬声器三厂-功放', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (3, '23', '扬声器一厂', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (4, '24', '扬声器四厂-音圈部', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (5, '25', '扬声器二厂', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (6, '37', '音箱部', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (7, '38', '六分厂', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (8, '39', '七分厂', NULL, NULL, NULL, NULL);
INSERT INTO `work_center_work_shop` VALUES (9, '40', '八分厂', NULL, NULL, NULL, NULL);

SET FOREIGN_KEY_CHECKS = 1;

订单

金蝶中订单分为很多类,但我们只需要关注其生产相关的订单,即“计划订单”和“生产订单”。

计划订单

计划订单中,核心的几个字段和有效值范围参考表格。

字段 可选范围 备注
投放类型 委外订单类、采购申请类、生产订单类 可能为空
生产车间 基础管理-基础资料-部门列表 部门属性只能是“基本生产部门”
单据类型 空、MRP 计划订单 -
单据状态 空、创建、已审核 -
业务状态 空、计划、需求确认、供应确认、手工投放关闭、手工关闭、自动投放关闭、合并关闭、拆分关闭、自动关闭 -

从 ERP 拉取计划单数据时,仅拉取投放类型为“生产订单类”且单据类型为“MRP 计划订单”且单据状态为“已审核”的订单,其他状态的单据无需拉取。

如果已经被拉取到精制中的计划订单的状态在 ERP 中发生了变更,则需要同步修改精制中对应的状态。

2025-07-21:目前不需要同步计划订单,只同步生产订单

采购申请类

生产订单类


生产订单

生产订单由计划订单下推生成,当然也可以直接录入生产订单。生产订单的核心字段见表格。

字段 可选范围 备注
单据类型 空、直接入库-普通生产
单据状态 空、创建、已审核、重新审核
业务状态 空、计划确认、结案、开工、下达
领料状态 空、部分领料、未领料
生产车间 基础管理-基础资料-部门列表 部门属性只能是“基本生产部门”

单据状态

金蝶中单据状态的流转为:

而精制中是没有单独的审核状态,所以金蝶的生产订单需要结合业务状态来确定同步到精制后的单据状态是什么。

业务状态

同步方案

采用定时同步和订阅 API 同步两种方式。

在定时同步中,只同步单据状态为“已审核”和“重新审核”的单据。然后根据 ERP 中生产订单的业务状态来决定精制生产订单中的单据状态:

  • 如果其业务状态是“空”的,到精制中生产订单状态为“创建”
  • 如果其业务状态是“计划确认”、“下达”或“开工”的,到精制中生产订单状态为“生效”
  • 如果其业务状态是“结案”的,到精制中生产订单状态为“完成”

在订阅 API 的订单同步中,只要 ERP 中生产订单的单据状态或业务状态有变更,都应按照以下规则同步更新精制中生产订单的单据状态:

  • 如果其单据状态从“空”或“创建”变为“已审核”,则需要将该订单同步到精制中,单据状态参考上文
  • 如果其业务状态从“空”变为“计划确认”,则需要将精制中该生产订单的单据状态变为“生效”
  • 如果其业务状态从“计划确认”变为“开工”或“下达”,此事件不影响精制中生产订单的单据状态
  • 如果其业务状态从任意状态变为“结案”,此时如果该订单在精制中生产状态为“已排产”的,单据状态变为“完成”;如果生产状态为“待排产”的,单据状态变为“取消”
作者:郭腾彬  创建时间:2025-10-28 14:37
最后编辑:郭腾彬  更新时间:2025-10-28 15:56