base.sql 18.5 KB
alter table base_data_customer modify column mnemonic_code varchar(20) null;

-- 厂房信息
create table if not exists base_data_workshop (
    id varchar(32) primary key comment 'ID',
    code varchar(20) not null comment '厂房编号',
    name varchar(50) not null comment '厂房名称',
    type varchar(20) not null comment '厂房类型',
    description varchar(100) comment '描述',
    create_by_id varchar(32) not null comment '创建人ID',
    create_by varchar(20) not null comment '创建人',
    update_by_id varchar(32) not null comment '更新人ID',
    update_by varchar(20) not null comment '更新人',
    create_time datetime default now() comment '创建时间',
    update_time datetime default now() comment '更新时间'
);

-- 办事处/科办
create table if not exists base_data_office (
    id varchar(32) primary key comment 'ID',
    code varchar(20) not null comment '编号',
    name varchar(50) not null comment '名称',
    description varchar(100) comment '描述',
    create_by_id varchar(32) not null comment '创建人ID',
    create_by varchar(20) not null comment '创建人',
    update_by_id varchar(32) not null comment '更新人ID',
    update_by varchar(20) not null comment '更新人',
    create_time datetime default now() comment '创建时间',
    update_time datetime default now() comment '更新时间'
);

-- 类型数据
create table if not exists base_data_type (
    id varchar(32) primary key comment 'ID',
    code varchar(20) not null comment '编号',
    name varchar(50) not null comment '名称',
    description varchar(100) comment '描述',
    type varchar(20) not null comment '类型:客户(CUSTOMER)',
    create_by_id varchar(32) not null comment '创建人ID',
    create_by varchar(20) not null comment '创建人',
    update_by_id varchar(32) not null comment '更新人ID',
    update_by varchar(20) not null comment '更新人',
    create_time datetime default now() comment '创建时间',
    update_time datetime default now() comment '更新时间'
);

-- 产品品种
create table if not exists base_data_product_variety (
    id varchar(32) primary key comment 'ID',
    code varchar(20) not null comment '编号',
    name varchar(50) not null comment '名称',
    description varchar(100) comment '描述',
    create_by_id varchar(32) not null comment '创建人ID',
    create_by varchar(20) not null comment '创建人',
    update_by_id varchar(32) not null comment '更新人ID',
    update_by varchar(20) not null comment '更新人',
    create_time datetime default now() comment '创建时间',
    update_time datetime default now() comment '更新时间'
);


-- 合同框架
create table if not exists `tbl_contract_framework`(
    `id`                      varchar(32) primary key comment 'ID',
    `code`                    varchar(20) not null comment '编号',
    `customer_id`             varchar(32) not null comment '客户id',
    `company`                 varchar(50) not null comment '所属单位',
    `has_framework_agreement` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否签订框架合同',
    `material_type_id`        varchar(500) NOT NULL COMMENT '品种id',
    `validity_time`           date comment '期限',
    `create_by_id`            varchar(32) not null comment '创建人ID',
    `create_by`               varchar(20) not null comment '创建人',
    `update_by_id`            varchar(32) not null comment '更新人ID',
    `update_by`               varchar(20) not null comment '更新人',
    `create_time`             datetime default now() comment '创建时间',
    `update_time`             datetime default now() comment '更新时间'
);

-- 经销标准合同
create table if not exists `tbl_contract_distributor_standard`
(
    `id`                         varchar(32) primary key comment 'ID',
    `code`                       varchar(20)  not null comment '编号',
    `supplier`                   varchar(50)  not null comment '供方',
    `buyer`                      varchar(200) not null comment '需方',
    `dept_id`                    varchar(32)  not null comment '办事处',
    `order_date`                 date         NOT NULL COMMENT '订货日期',
    `unit`                       VARCHAR(50) COMMENT '单位',
    `workshop_id`                varchar(32) comment '生产厂',
    `total_quantity`             DECIMAL(15, 4) COMMENT '合计数量',
    `total_amount_excluding_tax` DECIMAL(15, 4) COMMENT '合计不含税金额',
    `total_amount_including_tax` DECIMAL(15, 4) COMMENT '合计总金额',
    `total_amount_capital`       VARCHAR(100) COMMENT '合计人民币金额(大写)',
    `deposit_info`               VARCHAR(500) COMMENT '交付定金信息(包含数额、时间)',
    `packaging_requirements`     VARCHAR(200) COMMENT '包装要求',
    `payment_terms`              VARCHAR(500) COMMENT '付款信息(包含付款方式、付款期限)',
    `execution_standard`         VARCHAR(50) COMMENT '执行标准',
    `execution_standard_remarks` VARCHAR(100) COMMENT '执行标准备注',
    `transport_mode`             VARCHAR(100) COMMENT '运输方式',
    `destination`                VARCHAR(200) COMMENT '目的地',
    `includes_packaging_fee`     tinyint(1) NOT NULL DEFAULT 0 COMMENT '单价中是否已包含包装费',
    `includes_transport_fee`     tinyint(1) NOT NULL DEFAULT 0 COMMENT '单价中是否已包含运费',
    `piece_weight_head`          TEXT COMMENT '件重条头',
    `surface`                    TEXT COMMENT '表面',
    `tolerance`                  TEXT COMMENT '公差',
    `performance`                TEXT COMMENT '性能',
    `component`                  TEXT COMMENT '元素',
    `packaging`                  TEXT COMMENT '包装',
    `special_terms`              VARCHAR(50) COMMENT '特别条款要求',
    `designated_consignee`       TEXT COMMENT '需方指定收货人',
    `special_instructions`       TEXT COMMENT '特别说明',
    `remarks`                    TEXT COMMENT '备注',
    `status`                     varchar(20)  not null DEFAULT 'DRAFT' COMMENT '状态',
    `type`                       varchar(20) COMMENT '合同类型',
    `parent_id`                  varchar(32) COMMENT '父合同id',
    `formal_file_id`             VARCHAR(100) COMMENT '正式合同文件ID',
    `formal_file_name`           VARCHAR(255) COMMENT '正式合同文件名称',
    `formal_standardized`        TINYINT(1) COMMENT '正式合同是否规范 (0-不规范, 1-规范)',
    `formal_approved`            varchar(20) COMMENT '正式合同是否审核完成(AUDIT:审核中,PASS:审核通过,REFUSE:已驳回,CANCEL:已取消)',
    `formal_approver_id`         varchar(32) COMMENT '正式合同审批人ID',
    `formal_time`                datetime COMMENT '正式合同审批完成时间',
    `standard_file_id`           VARCHAR(100) COMMENT '标准合同文件ID',
    `standard_file_name`         VARCHAR(255) COMMENT '标准合同文件名称',
    `standard_standardized`      TINYINT(1) COMMENT '标准合同是否规范 (0-不规范, 1-规范)',
    `standard_approved`          varchar(20) COMMENT '标准合同是否审核完成(AUDIT:审核中,PASS:审核通过,REFUSE:已驳回,CANCEL:已取消)',
    `standard_approver_id`       varchar(32) COMMENT '标准合同审批人ID',
    `standard_time`               datetime COMMENT '标准合同审批完成时间',
    `price_spec_locked`          TINYINT(1) COMMENT '是否已完成锁价/锁规',
    `signed_contract_file_id`    VARCHAR(100) COMMENT '双方盖章合同ID',
    `signed_contract_file_name`  VARCHAR(255) COMMENT '双方盖章合同名称',
    `formalized_at`              datetime comment '转为正式合同时间',
    `standardized_at`            datetime comment '转为标准合同时间',
    `title`                      varchar(20)  comment '合同名称(销售合同、销售订单)',
    `create_by_id`               varchar(32)  not null comment '创建人ID',
    `create_by`                  varchar(20)  not null comment '创建人',
    `update_by_id`               varchar(32)  not null comment '更新人ID',
    `update_by`                  varchar(20)  not null comment '更新人',
    `create_time`                datetime              default now() comment '创建时间',
    `update_time`                datetime              default now() comment '更新时间'
);

-- 经销合同物料行
create table if not exists  `tbl_contract_distributor_line`
(
    `id`                   varchar(32) primary key comment 'ID',
    `contract_id`          varchar(32)    NOT NULL COMMENT '合同主表ID',
    `product_id`           VARCHAR(50)    NOT NULL COMMENT '产品名称',
    `industry`             VARCHAR(100) COMMENT '行业',
    `quality`              VARCHAR(100) COMMENT '品质',
    `brand`                VARCHAR(100) COMMENT '牌号',
    `thickness`            DECIMAL(10, 4) COMMENT '厚度',
    `thickness_tol_pos`    DECIMAL(10, 4) COMMENT '厚度公差正',
    `thickness_tol_neg`    DECIMAL(10, 4) COMMENT '厚度公差负',
    `width`                DECIMAL(10, 4) COMMENT '宽度',
    `width_tol_pos`        DECIMAL(10, 4) COMMENT '宽度公差正',
    `width_tol_neg`        DECIMAL(10, 4) COMMENT '宽度公差负',
    `length`               DECIMAL(10, 4) COMMENT '长度',
    `length_tol_pos`       DECIMAL(10, 4) COMMENT '长度公差正',
    `length_tol_neg`       DECIMAL(10, 4) COMMENT '长度公差负',
    `status`               VARCHAR(50) COMMENT '状态',
    `quantity`             DECIMAL(15, 4)  COMMENT '数量',
    `processing_fee`       DECIMAL(15, 4)  COMMENT '加工费',
    `unit_price`           DECIMAL(15, 4)  COMMENT '单价',
    `amount_excluding_tax` DECIMAL(15, 2) COMMENT '不含税金额',
    `total_amount`         DECIMAL(15, 2) COMMENT '总金额',
    `delivery_date`        DATE COMMENT '发货日期',
    `show_order`           INT      DEFAULT 0 COMMENT '排序',
    `item_id`              varchar(50)    COMMENT '前端用ID',
    `create_by_id`         varchar(32)    not null comment '创建人ID',
    `create_by`            varchar(20)    not null comment '创建人',
    `update_by_id`         varchar(32)    not null comment '更新人ID',
    `update_by`            varchar(20)    not null comment '更新人',
    `create_time`          datetime default now() comment '创建时间',
    `update_time`          datetime default now() comment '更新时间'
)

-- 加工标准合同物料行
DROP TABLE IF EXISTS `tbl_contract_std_processing_line`;
create table `tbl_contract_std_processing_line`
(
    `id`                             varchar(32) primary key comment 'ID',
    `contract_id`                    varchar(32)    NOT NULL COMMENT '合同主表ID',
    `raw_product_id`                 VARCHAR(50) COMMENT '原材料名称',
    `raw_product_grade`              VARCHAR(100) COMMENT '原材料牌号',
    `industry`                       VARCHAR(100) COMMENT '行业',
    `quality`                        VARCHAR(100) COMMENT '品质',
    `loss_rate`                      VARCHAR(50) COMMENT '损耗',
    `supply_time`                    VARCHAR(50) COMMENT '提供时间',
    `material_product_ratio`         VARCHAR(50) COMMENT '原材料与产品数量比',
    `material_product_ratio_remarks` VARCHAR(100) COMMENT '原材料与产品数量比备注',
    `product_id`                     VARCHAR(50)    NOT NULL COMMENT '定作物名称',
    `product_grade`                  VARCHAR(100) COMMENT '定作物牌号',
    `product_status`                 VARCHAR(100) COMMENT '定作物状态',
    `product_quantity`               DECIMAL(15, 4) NOT NULL COMMENT '定作物数量',
    `thickness`                      DECIMAL(10, 4) COMMENT '厚度',
    `thickness_tol_pos`              DECIMAL(10, 4) COMMENT '厚度公差正',
    `thickness_tol_neg`              DECIMAL(10, 4) COMMENT '厚度公差负',
    `width`                          DECIMAL(10, 4) COMMENT '宽度',
    `width_tol_pos`                  DECIMAL(10, 4) COMMENT '宽度公差正',
    `width_tol_neg`                  DECIMAL(10, 4) COMMENT '宽度公差负',
    `length`                         DECIMAL(10, 4) COMMENT '长度',
    `length_tol_pos`                 DECIMAL(10, 4) COMMENT '长度公差正',
    `length_tol_neg`                 DECIMAL(10, 4) COMMENT '长度公差负',
    `unit_price`                     DECIMAL(12, 4) NOT NULL COMMENT '单价',
    `amount_excluding_tax`           DECIMAL(14, 2) COMMENT '不含税金额',
    `total_amount`                   DECIMAL(14, 2) NOT NULL COMMENT '总金额',
    `delivery_date`                  DATE COMMENT '发货日期',
    `show_order`                     INT      DEFAULT 0 COMMENT '排序',
    `item_id`                        varchar(50) COMMENT '前端用ID',
    `create_by_id`                   varchar(32)    not null comment '创建人ID',
    `create_by`                      varchar(20)    not null comment '创建人',
    `update_by_id`                   varchar(32)    not null comment '更新人ID',
    `update_by`                      varchar(20)    not null comment '更新人',
    `create_time`                    datetime default now() comment '创建时间',
    `update_time`                    datetime default now() comment '更新时间'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '加工标准合同物料行' ROW_FORMAT = DYNAMIC;

-- 锁价无规格操作申请单
DROP TABLE IF EXISTS `tbl_spec_lock_delay_application`;
create table `tbl_spec_lock_delay_application`
(
    `id`                varchar(32) primary key comment 'ID',
    `contract_id`       varchar(32) NOT NULL COMMENT '合同主表ID',
    `spec_lock_date`    DATE COMMENT '现申请锁规格日期',
    `application_count` INT COMMENT '申请次数(第几次申请)',
    `delay_reason`      VARCHAR(200) COMMENT '延迟原因',
    `approval_status`   VARCHAR(50) COMMENT '审核状态',
    `approver_id`       VARCHAR(32) COMMENT '审核人',
    `approved_at`       datetime COMMENT '审核时间',
    `create_by_id`      varchar(32) not null comment '创建人ID',
    `create_by`         varchar(20) not null comment '创建人',
    `update_by_id`      varchar(32) not null comment '更新人ID',
    `update_by`         varchar(20) not null comment '更新人',
    `create_time`       datetime default now() comment '创建时间',
    `update_time`       datetime default now() comment '更新时间'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '锁价无规格操作申请单' ROW_FORMAT = DYNAMIC;

-- 节假日
DROP TABLE IF EXISTS `tbl_holidays`;
create table `tbl_holidays`
(
    `id`           varchar(32) primary key comment 'ID',
    `year`         int(4) NOT NULL COMMENT '年份',
    `holiday_date` date        NOT NULL COMMENT '日期',
    `rest`         TINYINT(1) COMMENT '是否休息(0-补班,1-休息)',
    `holiday_name` varchar(50) COMMENT '节假日名称',
    `create_by_id` varchar(32) not null comment '创建人ID',
    `create_by`    varchar(20) not null comment '创建人',
    `update_by_id` varchar(32) not null comment '更新人ID',
    `update_by`    varchar(20) not null comment '更新人',
    `create_time`  datetime default now() comment '创建时间',
    `update_time`  datetime default now() comment '更新时间'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '节假日' ROW_FORMAT = DYNAMIC;

-- 补货单
DROP TABLE IF EXISTS `tbl_replenishment_order`;
create table `tbl_replenishment_order`
(
    `id`                    varchar(32) primary key comment 'ID',
    `code`                  varchar(50) NOT NULL COMMENT '编号',
    `workshop_id`           varchar(32) comment '分厂',
    `dept_id`               varchar(32) comment '办事处',
    `customer_id`           varchar(32) comment '购货单位',
    `origin_plan_ship_date` DATE COMMENT '原计划发货日期',
    `purchase_order_id`     varchar(32) COMMENT '订货单',
    `status`                varchar(20) comment '状态',
    `create_by_id`          varchar(32) not null comment '创建人ID',
    `create_by`             varchar(20) not null comment '创建人',
    `update_by_id`          varchar(32) not null comment '更新人ID',
    `update_by`             varchar(20) not null comment '更新人',
    `create_time`           datetime default now() comment '创建时间',
    `update_time`           datetime default now() comment '更新时间'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '补货单' ROW_FORMAT = DYNAMIC;

-- 补货单物料行
DROP TABLE IF EXISTS `tbl_replenishment_order_line`;
create table `tbl_replenishment_order_line`
(
    `id`                      varchar(32) primary key comment 'ID',
    `replenishment_order_id`  varchar(32) NOT NULL COMMENT '补货单',
    `purchase_order_line_id`  varchar(32) NOT NULL COMMENT '订货单表物料行ID',
    `brand`                   varchar(100) COMMENT '牌号',
    `thickness`               DECIMAL(10, 4) COMMENT '厚度',
    `thickness_tol_pos`       DECIMAL(10, 4) COMMENT '厚度公差正',
    `thickness_tol_neg`       DECIMAL(10, 4) COMMENT '厚度公差负',
    `width`                   DECIMAL(10, 4) COMMENT '宽度',
    `width_tol_pos`           DECIMAL(10, 4) COMMENT '宽度公差正',
    `width_tol_neg`           DECIMAL(10, 4) COMMENT '宽度公差负',
    `length`                  DECIMAL(10, 4) COMMENT '长度',
    `length_tol_pos`          DECIMAL(10, 4) COMMENT '长度公差正',
    `length_tol_neg`          DECIMAL(10, 4) COMMENT '长度公差负',
    `status`                  varchar(50) COMMENT '状态',
    `quantity`                decimal(15, 4) COMMENT '需发(t)',
    `shipped_quantity`        decimal(15, 4) COMMENT '实发(t)',
    `supplementary_quantity`  decimal(15, 4) COMMENT '需求补发(t/件)',
    `confirmed_delivery_date` DATE COMMENT '生产科确认交付日期',
    `remarks`                 TEXT COMMENT '备注',
    `show_order`              INT      DEFAULT 0 COMMENT '排序',
    `item_id`                 varchar(50) COMMENT '前端用ID',
    `create_by_id`            varchar(32) not null comment '创建人ID',
    `create_by`               varchar(20) not null comment '创建人',
    `update_by_id`            varchar(32) not null comment '更新人ID',
    `update_by`               varchar(20) not null comment '更新人',
    `create_time`             datetime default now() comment '创建时间',
    `update_time`             datetime default now() comment '更新时间'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '补货单物料行' ROW_FORMAT = DYNAMIC;