完成排产(测试过了)
This commit is contained in:
@@ -4342,4 +4342,191 @@ CREATE TABLE `xxl_job_user` (
|
||||
UNIQUE INDEX `i_username`(`username` ASC) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- =============================
|
||||
-- APS 排产补充表(wms_*)
|
||||
-- =============================
|
||||
|
||||
-- 1) 工厂日历
|
||||
DROP TABLE IF EXISTS `wms_calendar`;
|
||||
CREATE TABLE `wms_calendar` (
|
||||
`calendar_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`calendar_date` date NOT NULL COMMENT '日期',
|
||||
`calendar_type` tinyint NOT NULL DEFAULT 1 COMMENT '日历类型:1工作日 2周末 3法定假日 4停机日',
|
||||
`factory_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DEFAULT' COMMENT '工厂编码',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`calendar_id`) USING BTREE,
|
||||
UNIQUE KEY `uk_calendar_date_factory` (`calendar_date`,`factory_code`) USING BTREE,
|
||||
KEY `idx_calendar_type` (`calendar_type`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工厂日历' ROW_FORMAT=Dynamic;
|
||||
|
||||
-- 2) 班次模板
|
||||
DROP TABLE IF EXISTS `wms_shift_template`;
|
||||
CREATE TABLE `wms_shift_template` (
|
||||
`shift_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`shift_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '班次编码',
|
||||
`shift_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '班次名称',
|
||||
`start_time` time NOT NULL COMMENT '开始时间',
|
||||
`end_time` time NOT NULL COMMENT '结束时间',
|
||||
`cross_day` tinyint NOT NULL DEFAULT 0 COMMENT '是否跨天:0否 1是',
|
||||
`efficiency_rate` decimal(6,4) NOT NULL DEFAULT 1.0000 COMMENT '班次效率系数',
|
||||
`is_enabled` tinyint NOT NULL DEFAULT 1 COMMENT '是否启用:0否 1是',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`shift_id`) USING BTREE,
|
||||
UNIQUE KEY `uk_shift_code` (`shift_code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班次模板' ROW_FORMAT=Dynamic;
|
||||
|
||||
-- 3) 日历班次配置(某天 + 某产线 + 某班次)
|
||||
DROP TABLE IF EXISTS `wms_calendar_shift`;
|
||||
CREATE TABLE `wms_calendar_shift` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`calendar_date` date NOT NULL COMMENT '日期',
|
||||
`line_id` bigint NOT NULL COMMENT '产线ID',
|
||||
`shift_id` bigint NOT NULL COMMENT '班次ID',
|
||||
`planned_hours` decimal(8,2) NOT NULL DEFAULT 8.00 COMMENT '计划工时',
|
||||
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1可排产 2停机',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_calendar_shift` (`calendar_date`,`line_id`,`shift_id`) USING BTREE,
|
||||
KEY `idx_cs_line_date` (`line_id`,`calendar_date`) USING BTREE,
|
||||
KEY `idx_cs_shift` (`shift_id`) USING BTREE,
|
||||
CONSTRAINT `fk_cs_line` FOREIGN KEY (`line_id`) REFERENCES `wms_production_line` (`line_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_cs_shift` FOREIGN KEY (`shift_id`) REFERENCES `wms_shift_template` (`shift_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='日历班次配置' ROW_FORMAT=Dynamic;
|
||||
|
||||
-- 4) 产线能力(支持产品维度 / 工序维度)
|
||||
DROP TABLE IF EXISTS `wms_line_capability`;
|
||||
CREATE TABLE `wms_line_capability` (
|
||||
`capability_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`line_id` bigint NOT NULL COMMENT '产线ID',
|
||||
`product_id` bigint DEFAULT NULL COMMENT '产品ID,可空(按工序维度时可空)',
|
||||
`process_id` bigint DEFAULT NULL COMMENT '工序ID,可空(按产品维度时可空)',
|
||||
`capacity_per_hour` decimal(18,4) NOT NULL COMMENT '每小时产能',
|
||||
`setup_minutes` int NOT NULL DEFAULT 0 COMMENT '换型准备时间(分钟)',
|
||||
`priority` int NOT NULL DEFAULT 100 COMMENT '优先级(越小越优先)',
|
||||
`is_enabled` tinyint NOT NULL DEFAULT 1 COMMENT '是否启用:0否 1是',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`capability_id`) USING BTREE,
|
||||
UNIQUE KEY `uk_line_prod_proc` (`line_id`,`product_id`,`process_id`) USING BTREE,
|
||||
KEY `idx_lc_line` (`line_id`) USING BTREE,
|
||||
KEY `idx_lc_product` (`product_id`) USING BTREE,
|
||||
KEY `idx_lc_process` (`process_id`) USING BTREE,
|
||||
CONSTRAINT `fk_lc_line` FOREIGN KEY (`line_id`) REFERENCES `wms_production_line` (`line_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_lc_product` FOREIGN KEY (`product_id`) REFERENCES `wms_product` (`product_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_lc_process` FOREIGN KEY (`process_id`) REFERENCES `wms_processe` (`process_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='产线能力(产品/工序可生产关系)' ROW_FORMAT=Dynamic;
|
||||
|
||||
-- 5) 工序级排程记录(核心)
|
||||
DROP TABLE IF EXISTS `wms_schedule_operation`;
|
||||
CREATE TABLE `wms_schedule_operation` (
|
||||
`operation_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`plan_id` bigint NOT NULL COMMENT '排产计划ID',
|
||||
`detail_id` bigint DEFAULT NULL COMMENT '排产明细ID',
|
||||
`order_id` bigint NOT NULL COMMENT '订单ID',
|
||||
`order_detail_id` bigint NOT NULL COMMENT '订单明细ID',
|
||||
`product_id` bigint NOT NULL COMMENT '产品ID',
|
||||
`process_id` bigint NOT NULL COMMENT '工序ID',
|
||||
`line_id` bigint NOT NULL COMMENT '产线ID',
|
||||
`sequence_no` int NOT NULL COMMENT '工序顺序',
|
||||
`plan_qty` decimal(18,4) NOT NULL COMMENT '计划数量',
|
||||
`start_time` datetime NOT NULL COMMENT '计划开始时间',
|
||||
`end_time` datetime NOT NULL COMMENT '计划结束时间',
|
||||
`setup_minutes` int NOT NULL DEFAULT 0 COMMENT '换型时长',
|
||||
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态:0待执行 1执行中 2已完成 3已锁定 4取消',
|
||||
`locked_flag` tinyint NOT NULL DEFAULT 0 COMMENT '是否锁定:0否 1是',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`operation_id`) USING BTREE,
|
||||
KEY `idx_so_plan` (`plan_id`) USING BTREE,
|
||||
KEY `idx_so_line_time` (`line_id`,`start_time`,`end_time`) USING BTREE,
|
||||
KEY `idx_so_order_detail` (`order_detail_id`) USING BTREE,
|
||||
KEY `idx_so_process` (`process_id`) USING BTREE,
|
||||
CONSTRAINT `fk_so_plan` FOREIGN KEY (`plan_id`) REFERENCES `wms_schedule_plan` (`plan_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_so_detail` FOREIGN KEY (`detail_id`) REFERENCES `wms_schedule_plan_detail` (`detail_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_so_order` FOREIGN KEY (`order_id`) REFERENCES `wms_order` (`order_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_so_order_detail` FOREIGN KEY (`order_detail_id`) REFERENCES `wms_order_detail` (`detail_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_so_product` FOREIGN KEY (`product_id`) REFERENCES `wms_product` (`product_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_so_process` FOREIGN KEY (`process_id`) REFERENCES `wms_processe` (`process_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_so_line` FOREIGN KEY (`line_id`) REFERENCES `wms_production_line` (`line_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工序级排产记录' ROW_FORMAT=Dynamic;
|
||||
|
||||
-- 5b) 工序级排程-钢卷关系
|
||||
DROP TABLE IF EXISTS `wms_schedule_operation_coil`;
|
||||
CREATE TABLE `wms_schedule_operation_coil` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`operation_id` bigint NOT NULL COMMENT '工序排程ID(关联 wms_schedule_operation.operation_id)',
|
||||
`coil_id` bigint NOT NULL COMMENT '钢卷ID(关联 wms_material_coil.coil_id)',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
`del_flag` tinyint(1) NOT NULL DEFAULT 0 COMMENT '删除标志(0=正常,1=已删除)',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_soc_operation` (`operation_id`) USING BTREE,
|
||||
KEY `idx_soc_coil` (`coil_id`) USING BTREE,
|
||||
CONSTRAINT `fk_soc_operation` FOREIGN KEY (`operation_id`) REFERENCES `wms_schedule_operation` (`operation_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_soc_coil` FOREIGN KEY (`coil_id`) REFERENCES `wms_material_coil` (`coil_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工序排程钢卷关系表' ROW_FORMAT=Dynamic;
|
||||
|
||||
-- 6) 排产锁定(冻结机制)
|
||||
DROP TABLE IF EXISTS `wms_schedule_lock`;
|
||||
CREATE TABLE `wms_schedule_lock` (
|
||||
`lock_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`lock_type` tinyint NOT NULL COMMENT '锁定类型:1计划 2产线+时间窗 3工序记录',
|
||||
`plan_id` bigint DEFAULT NULL COMMENT '计划ID',
|
||||
`line_id` bigint DEFAULT NULL COMMENT '产线ID',
|
||||
`operation_id` bigint DEFAULT NULL COMMENT '工序排程ID',
|
||||
`lock_start_time` datetime DEFAULT NULL COMMENT '锁定开始时间',
|
||||
`lock_end_time` datetime DEFAULT NULL COMMENT '锁定结束时间',
|
||||
`lock_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '锁定原因',
|
||||
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1生效 0失效',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`lock_id`) USING BTREE,
|
||||
KEY `idx_sl_plan` (`plan_id`) USING BTREE,
|
||||
KEY `idx_sl_line_time` (`line_id`,`lock_start_time`,`lock_end_time`) USING BTREE,
|
||||
KEY `idx_sl_operation` (`operation_id`) USING BTREE,
|
||||
CONSTRAINT `fk_sl_plan` FOREIGN KEY (`plan_id`) REFERENCES `wms_schedule_plan` (`plan_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_sl_line` FOREIGN KEY (`line_id`) REFERENCES `wms_production_line` (`line_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `fk_sl_operation` FOREIGN KEY (`operation_id`) REFERENCES `wms_schedule_operation` (`operation_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='排产锁定表' ROW_FORMAT=Dynamic;
|
||||
|
||||
-- 7) 排程变更日志
|
||||
DROP TABLE IF EXISTS `wms_schedule_change_log`;
|
||||
CREATE TABLE `wms_schedule_change_log` (
|
||||
`log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`operation_id` bigint NOT NULL COMMENT '工序排程ID',
|
||||
`change_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变更类型:CREATE/UPDATE/DELETE/RESCHEDULE/LOCK/UNLOCK',
|
||||
`before_value` json DEFAULT NULL COMMENT '变更前快照',
|
||||
`after_value` json DEFAULT NULL COMMENT '变更后快照',
|
||||
`change_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变更原因',
|
||||
`change_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '变更时间',
|
||||
`change_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变更人',
|
||||
PRIMARY KEY (`log_id`) USING BTREE,
|
||||
KEY `idx_scl_operation` (`operation_id`) USING BTREE,
|
||||
KEY `idx_scl_time` (`change_time`) USING BTREE,
|
||||
CONSTRAINT `fk_scl_operation` FOREIGN KEY (`operation_id`) REFERENCES `wms_schedule_operation` (`operation_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='排产变更日志' ROW_FORMAT=Dynamic;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
Reference in New Issue
Block a user