DROP TABLE IF EXISTS `production_plan`;

CREATE TABLE production_plan
(
    id                 BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    form_instance_id   VARCHAR(64) COMMENT '表单实例ID',
    serial_no          VARCHAR(50) COMMENT '流水号',
    apply_no           VARCHAR(100) COMMENT '申请单编号',
    customer_name      VARCHAR(200) COMMENT '客户名称',
    material_code      VARCHAR(100) COMMENT '物料编码',
    product_name       VARCHAR(200) COMMENT '产品名称',
    product_spec       VARCHAR(200) COMMENT '产品规格',
    length             INT COMMENT '长',
    width              INT COMMENT '宽',
    height             INT COMMENT '高',
    quantity           INT COMMENT '块数',
    total_count        INT COMMENT '此次统计数量',
    volume             DECIMAL(10, 4) COMMENT '方数',
    strength           VARCHAR(50) COMMENT '强度',
    start_date         DATETIME COMMENT '开始日期',
    end_date           DATETIME COMMENT '结束日期',
    submitter          VARCHAR(100) COMMENT '提交人',
    submit_org         VARCHAR(200) COMMENT '提交人组织',
    remark_one         TEXT COMMENT '备注1',
    remark_two         TEXT COMMENT '备注2',
    creator_name       VARCHAR(100) COMMENT '创建人',
    modifier_name      VARCHAR(100) COMMENT '修改人',
    form_created_time  DATETIME COMMENT '表单创建时间',
    form_modified_time DATETIME COMMENT '表单修改时间',
    data_sync_type     TINYINT  DEFAULT 1 COMMENT '数据同步类型：1=手动 2=定时任务',
    data_source_type   TINYINT  DEFAULT 1 COMMENT '数据来源类型：1=销售订单 2=销售预测',
    create_time        DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '数据库创建时间',
    update_time        DATETIME COMMENT '数据库更新时间',

    INDEX idx_apply_no (apply_no),
    INDEX idx_serial_no (serial_no),
    INDEX idx_form_instance_id (form_instance_id),
    INDEX idx_material_code (material_code)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='销售生产计划';

CREATE TABLE `product-inventory-management-zsjc`.`energy`  (
    `id` int NOT NULL AUTO_INCREMENT,
    `energy_tyep` varchar(255) NULL COMMENT '能源类型',
    `energy_name` varchar(255) NULL COMMENT '能源名称',
    `unit` varchar(255) NULL COMMENT '单位',
    `unit_price` decimal(10, 2) NULL COMMENT '单价',
    `remark` varchar(255) NULL COMMENT '备注',
    `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
    `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
    `create_user` bigint NULL DEFAULT NULL COMMENT '创建者',
    `update_user` bigint NULL DEFAULT NULL COMMENT '更新者',
    PRIMARY KEY (`id`)
    ) COMMENT = '能源类型';

CREATE TABLE `product-inventory-management-zsjc`.`energy_consumption_detail`  (
    `id` int NOT NULL AUTO_INCREMENT,
    `energy_id` int NULL COMMENT '外检关联能源类型id',
    `type` varchar(255) NULL COMMENT '办公/生产',
    `meter_reading_location` varchar(255) NULL COMMENT '抄表位置',
    `meter_reading_date` date NULL COMMENT '抄表日期',
    `start_code` decimal(10, 2) NULL COMMENT '起码',
    `stop_code` decimal(10, 2) NULL COMMENT '止码',
    `dosage` decimal(10, 2) NULL COMMENT '用量',
    `remark` varchar(255) NULL COMMENT '备注',
    `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
    `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
    `create_user` bigint NULL DEFAULT NULL COMMENT '创建者',
    `update_user` bigint NULL DEFAULT NULL COMMENT '更新者',
    PRIMARY KEY (`id`)
    ) COMMENT = '能源类型-能耗抄表明细';

CREATE TABLE `product-inventory-management-zsjc`.`energy_consumption_detail_file`  (
    `id` int NOT NULL AUTO_INCREMENT,
    `energy_consumption_detail_id` int NULL COMMENT '关联外键能耗抄表id',
    `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
    `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
    `file_size` double NULL DEFAULT NULL,
    `create_time` timestamp(0) NULL DEFAULT NULL,
    `create_user` int NULL DEFAULT NULL,
    `update_time` timestamp(0) NULL DEFAULT NULL,
    `update_user` int NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) COMMENT = '能源类型-能耗抄表明细_附件';

alter table product_order
drop column sales_ledger_id,
drop column sale_ledger_product_id,
drop column product_model_id;

alter table production_plan
    add assigned_quantity DECIMAL(10, 4) default 0 not null COMMENT '下发数量';

alter table product_order
    add plan_complete_time datetime(0) NULL DEFAULT NULL COMMENT '计划完成时间',
    add combine_production_plan_ids varchar(500) default '' not null;
