表设计

master
ljw 2025-12-08 10:13:01 +08:00
parent 34395a4fff
commit c4190066c0
1 changed files with 511 additions and 0 deletions

View File

@ -0,0 +1,511 @@
-- MySQL 8.0.35
CREATE DATABASE IF NOT EXISTS `building_cdwms` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `building_cdwms`;
CREATE TABLE IF NOT EXISTS `wh_warehouse` (
`id` bigint NOT NULL COMMENT '主键',
`warehouse_name` varchar(128) NOT NULL COMMENT '仓库名称',
`warehouse_type_code` varchar(32) NOT NULL COMMENT '仓库类型编码(来源数据字典例如RAW=原料仓、FINISHED=成品仓、HAZ_TMP=危废暂存仓等)',
`capacity` decimal(16,2) NOT NULL DEFAULT 0 COMMENT '最大容量',
`capacity_unit_code` varchar(16) NOT NULL DEFAULT 'TON' COMMENT '容量单位编码(来源字典例如TON=吨、CBM=立方米)',
`manager_id` bigint DEFAULT NULL COMMENT '责任人 Id; sys_user.id',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`),
KEY `idx_wh_warehouse_type_code` (`warehouse_type_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='仓库信息';
-- 仓库存量(实时库存)
-- 出入库单(入库单+出库单,且每笔订单只包含一种物料)
CREATE TABLE IF NOT EXISTS `wh_stock_order` (
`id` bigint NOT NULL COMMENT '主键',
`batch_no` varchar(64) DEFAULT NULL COMMENT '出入库编号',
`order_id` bigint NOT NULL COMMENT '上游业务订单Id如销售订单、采购订单等',
`order_type` varchar(16) NOT NULL COMMENT '单据类型(字典)IN=入库单、OUT=出库单',
`warehouse_id` bigint NOT NULL COMMENT '仓库 Id; wh_warehouse.id',
`order_no` varchar(32) DEFAULT NULL COMMENT '关联业务单号(可选,用于展示用单号)',
`customer_id` bigint DEFAULT NULL COMMENT '客户 Id; tb_customer.id仅出库单使用',
`operate_time` datetime NOT NULL COMMENT '出入库时间(入库=到货/入库时间,出库=发货时间)',
`locator` varchar(64) DEFAULT NULL COMMENT '仓内存放位置(货架/库位等,入库使用为主)',
`material_id` bigint NOT NULL COMMENT '物料 Id; tb_material.id',
`quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '数量',
`remark` varchar(255) DEFAULT NULL COMMENT '备注信息',
`responsible_id` bigint DEFAULT NULL COMMENT '经办人/责任人 Id; sys_user.id',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_wh_stock_order_order_id_type` (`order_id`,`order_type`),
KEY `idx_wh_stock_order_wh` (`warehouse_id`),
KEY `idx_wh_stock_order_type` (`order_type`),
KEY `idx_wh_stock_order_material` (`material_id`),
KEY `idx_wh_stock_order_customer` (`customer_id`),
CONSTRAINT `fk_wh_stock_order_wh` FOREIGN KEY (`warehouse_id`) REFERENCES `wh_warehouse` (`id`),
CONSTRAINT `fk_wh_stock_order_material` FOREIGN KEY (`material_id`) REFERENCES `tb_material` (`id`),
CONSTRAINT `fk_wh_stock_order_customer` FOREIGN KEY (`customer_id`) REFERENCES `tb_customer` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='出入库单(单物料)';
-- 库存预警记录
CREATE TABLE IF NOT EXISTS `wh_stock_alert` (
`id` bigint NOT NULL COMMENT '主键',
`warehouse_id` bigint NOT NULL COMMENT '仓库 Id',
`material_id` bigint NOT NULL COMMENT '物料 Id',
`alert_type` varchar(16) NOT NULL COMMENT '预警类型(字典)LOW=低库存预警、HIGH=高库存预警',
`current_quantity` decimal(16,3) NOT NULL COMMENT '触发时库存',
`status` varchar(16) NOT NULL DEFAULT 'UNRESOLVED' COMMENT '处理状态(字典)UNRESOLVED=未处理、RESOLVED=已处理',
`suggestion` varchar(255) DEFAULT NULL COMMENT '处理建议',
`alert_time` datetime NOT NULL COMMENT '预警时间',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`),
KEY `idx_wh_stock_alert_wh_material` (`warehouse_id`,`material_id`),
CONSTRAINT `fk_wh_stock_alert_wh` FOREIGN KEY (`warehouse_id`) REFERENCES `wh_warehouse` (`id`),
CONSTRAINT `fk_wh_stock_alert_material` FOREIGN KEY (`material_id`) REFERENCES `tb_material` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='库存预警记录';
-- 盘点任务
CREATE TABLE IF NOT EXISTS `wh_stocktaking_task` (
`id` bigint NOT NULL COMMENT '主键',
`task_no` varchar(32) NOT NULL COMMENT '盘点编号',
`warehouse_id` bigint NOT NULL COMMENT '盘点仓库 Id',
`checker_id` bigint DEFAULT NULL COMMENT '盘点人 Id; sys_user.id',
`reviewer_id` bigint DEFAULT NULL COMMENT '复核人 Id; sys_user.id',
`task_time` datetime NOT NULL COMMENT '盘点时间',
`item_count` int NOT NULL DEFAULT 0 COMMENT '盘点项数',
`abnormal_count` int NOT NULL DEFAULT 0 COMMENT '差异项数',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_wh_stocktaking_task_no` (`task_no`),
KEY `idx_wh_stocktaking_task_wh` (`warehouse_id`),
CONSTRAINT `fk_wh_stocktaking_task_wh` FOREIGN KEY (`warehouse_id`) REFERENCES `wh_warehouse` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='库存盘点任务';
-- 盘点明细
CREATE TABLE IF NOT EXISTS `wh_stocktaking_item` (
`id` bigint NOT NULL COMMENT '主键',
`task_id` bigint NOT NULL COMMENT '盘点任务 Id; wh_stocktaking_task.id',
`material_id` bigint NOT NULL COMMENT '物料 Id',
`system_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '系统库存',
`actual_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '实际库存',
`difference_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '差异数量',
`status` varchar(16) NOT NULL DEFAULT 'NORMAL' COMMENT '盘点结果状态(字典)NORMAL=无差异、ABNORMAL=有差异',
`suggestion` varchar(255) DEFAULT NULL COMMENT '处理建议',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`),
KEY `idx_wh_stocktaking_item_task` (`task_id`),
KEY `idx_wh_stocktaking_item_material` (`material_id`),
CONSTRAINT `fk_wh_stocktaking_item_task` FOREIGN KEY (`task_id`) REFERENCES `wh_stocktaking_task` (`id`),
CONSTRAINT `fk_wh_stocktaking_item_material` FOREIGN KEY (`material_id`) REFERENCES `tb_material` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='库存盘点明细';
CREATE TABLE `fin_money_account` (
`id` bigint NOT NULL COMMENT 'Id',
`account_no` varchar(64) NOT NULL COMMENT '账户编号',
`type` varchar(32) NOT NULL COMMENT '账户类型编码(来源数据字典例如COMPANY=企业账户、PERSONAL=个人账户)',
`user_id` bigint DEFAULT NULL COMMENT '用户Id; 个人账户使用',
`company_id` bigint DEFAULT NULL COMMENT '企业Id; 企业账户使用',
`money` decimal(14,2) NOT NULL DEFAULT '0.00' COMMENT '余额',
`revenue` decimal(14,2) NOT NULL DEFAULT '0.00' COMMENT '营收',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_fin_money_account_no` (`account_no`),
KEY `idx_fin_money_account_type` (`type`),
KEY `idx_fin_money_account_user` (`user_id`),
KEY `idx_fin_money_account_company` (`company_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='资金账户表';
CREATE TABLE `fin_money_detail` (
`id` bigint NOT NULL COMMENT 'Id',
`order_id` bigint DEFAULT NULL COMMENT '订单 Id',
`money_account_id` bigint NOT NULL COMMENT '资金账户 Id',
`balance_before` decimal(14,2) NOT NULL COMMENT '变动前余额',
`delta` decimal(14,2) NOT NULL COMMENT '变动金额; 有正负',
`balance_after` decimal(14,2) NOT NULL COMMENT '变动后余额',
`type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动类型(字典 money_change_category)recharge=充值、platform_pay=平台打款、order_adjust=订单调账、order_deduct=订单扣款、order_refund=订单退款',
`memo` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='资金明细';
CREATE TABLE `fin_money_bill` (
`id` bigint NOT NULL COMMENT 'Id',
`company_id` bigint NOT NULL COMMENT '企业 Id',
`user_id` bigint NOT NULL COMMENT '个人 Id',
`type` varchar(32) NOT NULL COMMENT '账户类型编码(company=企业账户、personal=个人账户)',
`start_time` date NOT NULL COMMENT '账单开始时间',
`end_time` date NOT NULL COMMENT '账单结束时间',
`bill_period` date DEFAULT NULL COMMENT '账期',
`goods_id` bigint NOT NULL COMMENT '产品id',
`goods_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '产品名称',
`order_count` int NOT NULL COMMENT '订单数',
`total_weight` int DEFAULT '0' COMMENT '总质量; 单位:千克',
`car_count` int DEFAULT '0' COMMENT '总车数',
`discount_money` decimal(14,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额',
`total_money` decimal(14,2) NOT NULL COMMENT '账单金额',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='对账单';
CREATE TABLE `fin_expense` (
`id` bigint NOT NULL COMMENT 'Id',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '付费项名称',
`price` decimal(14,2) DEFAULT '0.00' COMMENT '单价; 单位:元',
`money_strategy` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计费策略; 字典代码money_strategy',
`canuse` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否可用; 0-->否、1-->是',
`scope` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '适用范围; all -->所有客户 customer_type-->指定客户类型 customer -->指定客户',
`company_ids` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司ids',
`goods_scope` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '产品范围;字典代码goods_scope all -->所有产品 goods -->指定产品',
`goods_ids` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '产品ids',
`station_scope` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '站点范围;字典代码station_scope all -->所有站点 stations -->指定站点',
`station_ids` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '站点ids',
`billing_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计费类型 字典代码billing_type',
`basic_weight` decimal(14,2) DEFAULT '0.00' COMMENT '基础磅重',
`basic_price` decimal(14,2) DEFAULT '0.00' COMMENT '基础单价; 单位:元',
`every_weight` decimal(14,2) DEFAULT '0.00' COMMENT '每档磅重',
`every_price` decimal(14,2) DEFAULT '0.00' COMMENT '每档单价; 单位:元',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='费用配置';
CREATE TABLE `fin_discount` (
`id` bigint NOT NULL COMMENT 'Id',
`company_id` bigint DEFAULT NULL COMMENT '公司id',
`fee_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '费用类型goods 产品 service 服务费',
`expense_id` bigint DEFAULT NULL COMMENT '服务费id',
`goods_ids` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '产品ids',
`type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '优惠类型discount 优惠 raise加价',
`money` decimal(14,2) DEFAULT '0.00' COMMENT '变化金额',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '备注',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='优惠管理';
-- 生产计划(简化:单表存主信息,物料明细在子表)
CREATE TABLE IF NOT EXISTS `prod_plan` (
`id` bigint NOT NULL COMMENT '主键',
`plan_code` varchar(32) NOT NULL COMMENT '计划编号(如 PLAN-20230515-001',
`plan_name` varchar(128) NOT NULL COMMENT '计划名称',
`plan_type_code` varchar(32) NOT NULL COMMENT '计划类型编码(字典,如建筑垃圾处理等)',
`create_mode_code` varchar(16) NOT NULL COMMENT '创建方式字典AI=AI生成MANUAL=手动创建',
`status_code` varchar(16) NOT NULL DEFAULT 'PENDING' COMMENT '计划状态字典PENDING=待执行、RUNNING=执行中、DONE=已完成、CANCELLED=已取消',
`start_date` date NOT NULL COMMENT '开始日期',
`end_date` date NOT NULL COMMENT '结束日期',
`raw_plan_total` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '原料计划量汇总(吨)',
`finished_plan_total` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '成品计划量汇总(吨)',
`remark` varchar(512) DEFAULT NULL COMMENT '备注说明',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_prod_plan_code` (`plan_code`),
KEY `idx_prod_plan_status` (`status_code`),
KEY `idx_prod_plan_type` (`plan_type_code`),
KEY `idx_prod_plan_date` (`start_date`,`end_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='生产计划';
-- 生产计划物料明细(原料/成品在同一表,用 material_kind 区分)
CREATE TABLE IF NOT EXISTS `prod_plan_material` (
`id` bigint NOT NULL COMMENT '主键',
`plan_id` bigint NOT NULL COMMENT '生产计划 Id; prod_plan.id',
`material_kind` varchar(16) NOT NULL COMMENT '物料类型RAW=原料、FINISHED=成品',
`material_id` bigint NOT NULL COMMENT '物料 Id; tb_material.id',
`material_name` varchar(128) NOT NULL COMMENT '物料名称/品类名称快照',
`plan_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '计划量(吨)',
`actual_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '实际量(吨)',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_prod_plan_material_plan` (`plan_id`),
KEY `idx_prod_plan_material_kind` (`material_kind`),
CONSTRAINT `fk_prod_plan_material_plan` FOREIGN KEY (`plan_id`) REFERENCES `prod_plan` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='生产计划物料明细';
-- 生产计划报告(执行结果汇总与偏差分析)
CREATE TABLE IF NOT EXISTS `prod_plan_report` (
`id` bigint NOT NULL COMMENT '主键',
`report_code` varchar(32) NOT NULL COMMENT '报告编号(如 REP-20230508-001',
`plan_id` bigint NOT NULL COMMENT '关联计划 Id; prod_plan.id',
`execute_date` date NOT NULL COMMENT '执行日期/生成日期',
`raw_plan_total` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '原料计划量汇总(吨)',
`raw_actual_total` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '原料实际量汇总(吨)',
`finished_plan_total` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '成品计划量汇总(吨)',
`finished_actual_total` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '成品实际量汇总(吨)',
`completion_rate` decimal(5,2) NOT NULL DEFAULT 0 COMMENT '计划完成率(%',
`raw_deviation_rate` decimal(6,2) DEFAULT NULL COMMENT '原料偏差率(%',
`finished_deviation_rate` decimal(6,2) DEFAULT NULL COMMENT '成品偏差率(%',
`raw_deviation_reason` text DEFAULT NULL COMMENT '原料偏差原因',
`finished_deviation_reason` text DEFAULT NULL COMMENT '成品偏差原因',
`improvement_suggestion` text DEFAULT NULL COMMENT '改进建议',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_prod_plan_report_code` (`report_code`),
KEY `idx_prod_plan_report_plan` (`plan_id`),
CONSTRAINT `fk_prod_plan_report_plan` FOREIGN KEY (`plan_id`) REFERENCES `prod_plan` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='生产计划报告';
-- AI勘料主表
CREATE TABLE IF NOT EXISTS `ai_material_inspection` (
`id` bigint NOT NULL COMMENT '主键',
`order_id` bigint DEFAULT NULL COMMENT '关联订单 Id',
`license_plate_no` varchar(32) NOT NULL COMMENT '车牌号',
`entry_time` datetime NOT NULL COMMENT '进场时间',
`exit_time` datetime DEFAULT NULL COMMENT '出场时间',
`material_id` bigint NOT NULL COMMENT '物料 Id; tb_material.id',
`material_name` varchar(128) NOT NULL COMMENT '物料名称/品名快照(如拆除垃圾)',
`gross_weight` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '毛重(吨)',
`tare_weight` decimal(16,3) DEFAULT NULL COMMENT '皮重(吨)',
`net_weight` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '净重(吨)',
`inspection_method_code` varchar(32) NOT NULL COMMENT '看料方式编码字典smart=智能看料、manual=人工',
`inspection_result_code` varchar(32) NOT NULL COMMENT '看料结果编码字典qualified=合格、unqualified=不合格',
`judgment_reason` text DEFAULT NULL COMMENT '判断原因/原因说明',
`judgment_basis` text DEFAULT NULL COMMENT '判断依据',
`status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '状态字典pending=未看料、inspected=已看料',
`preliminary_images` text DEFAULT NULL COMMENT '初步识别图片JSON数组存储图片URL',
`deep_images` text DEFAULT NULL COMMENT '深度识别图片JSON数组存储图片URL',
`inspection_result` text DEFAULT NULL COMMENT '看料结果Json字符串',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_ai_material_inspection_order` (`order_id`),
KEY `idx_ai_material_inspection_plate` (`license_plate_no`),
KEY `idx_ai_material_inspection_entry_time` (`entry_time`),
KEY `idx_ai_material_inspection_status` (`status`),
KEY `idx_ai_material_inspection_result` (`inspection_result_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='AI勘料主表';
-- ==================== AI运营决策模块 ====================
-- 能耗决策报告主表
CREATE TABLE IF NOT EXISTS `ai_energy_decision_report` (
`id` bigint NOT NULL COMMENT '主键',
`report_code` varchar(64) NOT NULL COMMENT '报告编号如AED-20230512-001',
`generation_time` datetime NOT NULL COMMENT '生成时间',
`analysis_condition_ids` text DEFAULT NULL COMMENT '分析条件ID列表JSON数组字符串如["code1","code2"]',
`analysis_condition_count` int NOT NULL DEFAULT 0 COMMENT '分析条件数',
`estimated_energy_saving` decimal(5,2) DEFAULT NULL COMMENT '预计节能(%',
`status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '执行状态字典executed=已执行、expired=已过期、pending=待执行',
`core_conclusion` text DEFAULT NULL COMMENT '核心结论',
`energy_saving_forecast` text DEFAULT NULL COMMENT '节能预期说明',
`best_operating_period` text DEFAULT NULL COMMENT '最佳运行时段说明',
`optimization_strategy` text DEFAULT NULL COMMENT '能耗优化策略说明',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_ai_energy_decision_report_code` (`report_code`),
KEY `idx_ai_energy_decision_report_status` (`status`),
KEY `idx_ai_energy_decision_report_time` (`generation_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='能耗决策报告主表';
-- 能耗决策设备建议表
CREATE TABLE IF NOT EXISTS `ai_energy_decision_equipment` (
`id` bigint NOT NULL COMMENT '主键',
`report_id` bigint NOT NULL COMMENT '能耗决策报告 Id; ai_energy_decision_report.id',
`equipment_name` varchar(128) NOT NULL COMMENT '设备名称',
`suggested_time` varchar(128) DEFAULT NULL COMMENT '建议运行时间如00:00-06:00',
`operating_status_code` varchar(32) NOT NULL COMMENT '运行状态编码字典priority=优先运行、peak_flat=平峰运行、linked=联动运行、intermittent=间歇运行',
`suggestion_reason` text DEFAULT NULL COMMENT '建议理由',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_ai_energy_decision_equipment_report` (`report_id`),
CONSTRAINT `fk_ai_energy_decision_equipment_report` FOREIGN KEY (`report_id`) REFERENCES `ai_energy_decision_report` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='能耗决策设备建议表';
-- 生产决策计划主表
CREATE TABLE IF NOT EXISTS `ai_production_decision_plan` (
`id` bigint NOT NULL COMMENT '主键',
`plan_code` varchar(64) NOT NULL COMMENT '计划编号如APD-20230512-001',
`generation_time` datetime NOT NULL COMMENT '生成时间',
`analysis_condition_ids` text DEFAULT NULL COMMENT '分析条件ID列表JSON数组字符串如["code1","code2"]',
`plan_period_days` int NOT NULL DEFAULT 7 COMMENT '计划周期(天)',
`start_date` date NOT NULL COMMENT '计划开始日期',
`end_date` date NOT NULL COMMENT '计划结束日期',
`estimated_output` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '预计产量(吨)',
`estimated_raw_consumption` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '预计原料消耗(吨)',
`estimated_finished_output` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '预计成品产出(吨)',
`estimated_revenue` decimal(16,2) DEFAULT NULL COMMENT '预计生产收益(元)',
`status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '执行状态字典pending=待执行、executing=执行中、completed=已完成、cancelled=已取消',
`production_strategy` text DEFAULT NULL COMMENT '生产策略说明',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_ai_production_decision_plan_code` (`plan_code`),
KEY `idx_ai_production_decision_plan_status` (`status`),
KEY `idx_ai_production_decision_plan_time` (`generation_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='生产决策计划主表';
-- 生产决策物料计划表
CREATE TABLE IF NOT EXISTS `ai_production_decision_material` (
`id` bigint NOT NULL COMMENT '主键',
`plan_id` bigint NOT NULL COMMENT '生产决策计划 Id; ai_production_decision_plan.id',
`raw_material_type_code` varchar(32) NOT NULL COMMENT '原料类型编码(字典)',
`raw_material_name` varchar(128) NOT NULL COMMENT '原料类型名称快照',
`demand_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '需求数量(吨)',
`estimated_output_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '预计产出成品数量(吨)',
`finished_product_type_code` varchar(32) DEFAULT NULL COMMENT '成品类型编码(字典)',
`finished_product_name` varchar(128) DEFAULT NULL COMMENT '成品类型名称快照',
`estimated_market_price` decimal(16,2) DEFAULT NULL COMMENT '预计市场价格(元/吨)',
`priority_code` varchar(32) NOT NULL COMMENT '优先级编码字典highest=最高、high=高、medium=中、low=低',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_ai_production_decision_material_plan` (`plan_id`),
CONSTRAINT `fk_ai_production_decision_material_plan` FOREIGN KEY (`plan_id`) REFERENCES `ai_production_decision_plan` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='生产决策物料计划表';
-- 生产决策每日安排表
CREATE TABLE IF NOT EXISTS `ai_production_decision_daily` (
`id` bigint NOT NULL COMMENT '主键',
`plan_id` bigint NOT NULL COMMENT '生产决策计划 Id; ai_production_decision_plan.id',
`schedule_date` date NOT NULL COMMENT '安排日期',
`planned_quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '计划产量(吨)',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_ai_production_decision_daily_plan` (`plan_id`),
KEY `idx_ai_production_decision_daily_date` (`schedule_date`),
CONSTRAINT `fk_ai_production_decision_daily_plan` FOREIGN KEY (`plan_id`) REFERENCES `ai_production_decision_plan` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='生产决策每日安排表';
-- 智能决策扫描报告主表
CREATE TABLE IF NOT EXISTS `ai_intelligent_decision_scan` (
`id` bigint NOT NULL COMMENT '主键',
`scan_month` varchar(7) NOT NULL COMMENT '扫描月份格式YYYY-MM',
`scan_time` datetime NOT NULL COMMENT '扫描时间',
`data_coverage` varchar(64) DEFAULT NULL COMMENT '数据覆盖范围(如全平台)',
`production_efficiency_rate` decimal(5,2) DEFAULT NULL COMMENT '生产效率达标率(%',
`energy_cost_control_rate` decimal(5,2) DEFAULT NULL COMMENT '能耗成本控制率(%',
`safety_disposal_rate` decimal(5,2) DEFAULT NULL COMMENT '安全隐患处置及时率(%',
`recycled_profit_margin` decimal(5,2) DEFAULT NULL COMMENT '再生品销售利润率(%',
`ai_inspection_accuracy_rate` decimal(5,2) DEFAULT NULL COMMENT 'AI勘料准确率%',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_ai_intelligent_decision_scan_month` (`scan_month`),
KEY `idx_ai_intelligent_decision_scan_time` (`scan_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='智能决策扫描报告主表';
-- 智能决策建议表
CREATE TABLE IF NOT EXISTS `ai_intelligent_decision_recommendation` (
`id` bigint NOT NULL COMMENT '主键',
`scan_id` bigint DEFAULT NULL COMMENT '扫描报告 Id; ai_intelligent_decision_scan.id可为空支持历史建议',
`category_tags` varchar(255) DEFAULT NULL COMMENT '类别标签(多个用逗号分隔,如能耗中心,生产管理)',
`title` varchar(255) NOT NULL COMMENT '建议标题',
`details` text NOT NULL COMMENT '建议详情',
`priority_code` varchar(32) NOT NULL COMMENT '优先级编码字典high=高优先级、medium=中优先级、low=低优先级',
`data_basis` text DEFAULT NULL COMMENT '数据依据说明',
`handle_deadline` varchar(64) DEFAULT NULL COMMENT '处理期限如7天内处理、15天内处理、30天内处理、下月周期前',
`status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '处理状态字典pending=待处理、assigned=已分配、processing=处理中、completed=已完成',
`assigned_to` bigint DEFAULT NULL COMMENT '分配给用户Id',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_ai_intelligent_decision_recommendation_scan` (`scan_id`),
KEY `idx_ai_intelligent_decision_recommendation_priority` (`priority_code`),
KEY `idx_ai_intelligent_decision_recommendation_status` (`status`),
CONSTRAINT `fk_ai_intelligent_decision_recommendation_scan` FOREIGN KEY (`scan_id`) REFERENCES `ai_intelligent_decision_scan` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='智能决策建议表';
-- ==================== 采购管理模块 ====================
-- 采购计划主表
CREATE TABLE IF NOT EXISTS `proc_plan` (
`id` bigint NOT NULL COMMENT '主键',
`plan_code` varchar(64) NOT NULL COMMENT '采购编号',
`name` varchar(128) NOT NULL COMMENT '采购项名称(如颚式破碎机、铁矿石等)',
`type_code` varchar(32) NOT NULL COMMENT '类型编码字典equipment=设备、raw_material=原料',
`quantity` decimal(16,3) NOT NULL DEFAULT 0 COMMENT '数量',
`unit` varchar(16) NOT NULL COMMENT '单位(如台、吨等)',
`planned_purchase_time` date NOT NULL COMMENT '计划采购时间',
`responsible_id` bigint DEFAULT NULL COMMENT '责任人 Id; sys_user.id',
`progress_rate` decimal(5,2) NOT NULL DEFAULT 0 COMMENT '采购进度(%',
`company_id` bigint DEFAULT NULL COMMENT '企业id',
`status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '采购状态字典pending=未开始、in_progress=进行中、completed=已完成、cancelled=已取消',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`creator_id` bigint NOT NULL COMMENT '创建人 Id; sys_user.id',
`modifier_id` bigint NOT NULL COMMENT '修改人 Id; sys_user.id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`modify_time` datetime NOT NULL COMMENT '修改时间',
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除; 0-->未删除、1-->已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_proc_plan_code` (`plan_code`),
KEY `idx_proc_plan_type` (`type_code`),
KEY `idx_proc_plan_status` (`status`),
KEY `idx_proc_plan_planned_purchase_time` (`planned_purchase_time`),
KEY `idx_proc_plan_company` (`company_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购计划主表';