drop table if exists cm_vehicle;

/*==============================================================*/
/* Table: cm_vehicle                                            */
/*==============================================================*/
create table cm_vehicle
(
    id                   bigint(20) not null auto_increment comment '车辆ID',
    vehicle_no           varchar(50) comment '车牌号',
    vehicle_number       varchar(50) comment '车辆编号',
    vehicle_type         varchar(50) comment '车辆类型',
    vehicle_model        varchar(50) comment '设备型号',
    engine_no            varchar(50) comment '发动机号',
    vin_no               varchar(50) comment '车辆识别代码',
    engine_model         varchar(50) comment '发动机型号',
    horse_power          varchar(50) comment '设备马力',
    axles_number         int comment '车辆轴数',
    loading_capacity     decimal(12,4) comment '装卸能力（T）',
    engine_manufacturer  varchar(50) comment '发动机厂家',
    work_area            varchar(32) comment '作业港区',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table cm_vehicle comment '车辆信息表';

drop table if exists cm_vehicle_rfid;

/*==============================================================*/
/* Table: cm_vehicle_rfid                                       */
/*==============================================================*/
create table cm_vehicle_rfid
(
    id                   bigint(20) not null auto_increment comment '车辆标签ID',
    vehicle_id           bigint(20) comment '车辆ID',
    rfid_no              varchar(100) comment '标签编号',
    manufacturer         varchar(50) comment '厂商',
    is_valid             varchar(10) comment '是否有效',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table cm_vehicle_rfid comment '车辆RFID信息';


drop table if exists cm_vehicle_rfid_date;

/*==============================================================*/
/* Table: cm_vehicle_rfid_date                                  */
/*==============================================================*/
create table cm_vehicle_rfid_date
(
    id                   bigint(20) not null auto_increment comment 'ID',
    rfid_id              bigint(20) comment 'RFID标签ID',
    vehicle_id           bigint(20) comment '车辆ID',
    rfid_no              varchar(100) comment '标签编号',
    setup_date           datetime comment '安装日期',
    effective_date       datetime comment '生效日期',
    expiring_date        datetime comment '失效日期',
    work_area            varchar(32) comment '作业港区',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table cm_vehicle_rfid_date comment '车辆RFID生效日期';

drop table if exists cm_vehicle_host;

/*==============================================================*/
/* Table: cm_vehicle_host                                       */
/*==============================================================*/
create table cm_vehicle_host
(
    id                   bigint(20) not null auto_increment comment '车辆主机ID',
    vehicle_id           bigint(20) comment '车辆ID',
    host_type            varchar(20) comment '设备类型',
    manufacturer         varchar(50) comment '厂商',
    host_no              varchar(100) comment '主机编号',
    sim_no               varchar(100) comment '流量卡号',
    setup_date           datetime comment '安装日期',
    effective_date       datetime comment '生效日期',
    expiring_date        datetime comment '失效日期',
    last_work_date       datetime comment '最后工作时间',
    is_valid             varchar(10) comment '是否有效',
    work_area            varchar(32) comment '作业港区',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table cm_vehicle_host comment '车辆主机信息';

drop table if exists cm_driver;

/*==============================================================*/
/* Table: cm_driver                                             */
/*==============================================================*/
create table cm_driver
(
    id                   bigint(20) not null auto_increment comment 'ID',
    work_number          varchar(50) comment '工号',
    driver_name          varchar(100) comment '司机姓名',
    birthdate            date comment '出生年月',
    id_number            varchar(100) comment '身份证号',
    sex                  varchar(10) comment '性别',
    mobile_number        varchar(50) comment '手机号码',
    is_generate          varchar(10) comment '是否生成账号',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table cm_driver comment '司机信息';

drop table if exists tm_driver_schedule;

/*==============================================================*/
/* Table: tm_driver_schedule                                    */
/*==============================================================*/
create table tm_driver_schedule
(
    id                   bigint(20) not null auto_increment comment 'id',
    vehicle_id           bigint(20) comment '车辆ID',
    drvier_id            bigint(20) comment '司机ID',
    work_area            varchar(32) comment '作业港区',
    start_date           datetime comment '开始日期',
    finish_date          datetime comment '结束日期',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_driver_schedule comment '司机驾驶车辆表';

drop table if exists tm_vehicle_identy;

/*==============================================================*/
/* Table: tm_vehicle_identy                                     */
/*==============================================================*/
create table tm_vehicle_identy
(
    id                   bigint(20) not null auto_increment comment 'id',
    seq_no               varchar(100) comment '流水号',
    host_no              varchar(100) comment '主机编号',
    rfid_no              varchar(100) comment '标签编号',
    identy_time          datetime comment '识别日期',
    send_time            datetime comment '发送日期',
    receive_time         datetime comment '接收日期',
    work_area            varchar(32) comment '作业港区',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_vehicle_identy comment '车辆作业识别表';

drop table if exists tm_vehicle_weight;

/*==============================================================*/
/* Table: tm_vehicle_weight                                     */
/*==============================================================*/
create table tm_vehicle_weight
(
    id                   bigint(20) not null auto_increment comment 'id',
    seq_no               varchar(100) comment '流水号',
    host_no              varchar(100) comment '主机编号',
    data_type            varchar(50) comment '数据类型',
    data_date            datetime comment '数据产生日期',
    work_wt              decimal(16,4) comment '数据量',
    send_time            datetime comment '发送日期',
    receive_time         datetime comment '接收日期',
    work_area            varchar(32) comment '作业港区',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_vehicle_weight comment '称重作业表';

drop table if exists tm_vehicle_workload;

/*==============================================================*/
/* Table: tm_vehicle_workload                                   */
/*==============================================================*/
create table tm_vehicle_workload
(
    id                   bigint(20) not null auto_increment comment 'id',
    vehicle_id           bigint(20) comment '车辆ID',
    vehicle_no           varchar(50) comment '车牌号',
    vehicle_type         varchar(50) comment '车辆类型',
    start_time           datetime comment '趟次开始时间',
    finish_time          datetime comment '趟次结束时间',
    trip_worknum         decimal(16,4) comment '趟次作业量',
    work_area            varchar(32) comment '作业港区',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_vehicle_workload comment '车辆作业量';

drop table if exists tm_work_order;

/*==============================================================*/
/* Table: tm_work_order                                         */
/*==============================================================*/
create table tm_work_order
(
    id                   bigint(20) not null auto_increment comment 'id',
    work_type            varchar(32) comment '作业类型',
    work_area            varchar(32) comment '作业港区',
    work_title           varchar(200) comment '作业标题',
    work_content         varchar(500) comment '作业内容',
    plan_wt              decimal(12,4) comment '计划作业量',
    act_wt               decimal(12,4) comment '实际作业量',
    plan_start           datetime comment '计划开始日期',
    plan_end             datetime comment '计划结束日期',
    act_start            datetime comment '实际开始日期',
    act_end              datetime comment '实际结束日期',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_work_order comment '港区作业指令';


drop table if exists tm_work_shift;

/*==============================================================*/
/* Table: tm_work_shift                                         */
/*==============================================================*/
create table tm_work_shift
(
    id                   bigint(20) not null auto_increment comment 'id',
    order_id             bigint(20) comment '指令id',
    shift_name           varchar(100) comment '班次名称',
    work_content         varchar(500) comment '作业内容',
    plan_wt              decimal(12,4) comment '计划作业量',
    act_wt               decimal(12,4) comment '实际作业量',
    plan_start           datetime comment '计划开始日期',
    plan_end             datetime comment '计划结束日期',
    act_start            datetime comment '实际开始日期',
    act_end              datetime comment '实际结束日期',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_work_shift comment '工班作业调度';

drop table if exists tm_work_equip;

/*==============================================================*/
/* Table: tm_work_equip                                         */
/*==============================================================*/
create table tm_work_equip
(
    id                   bigint(20) not null auto_increment comment 'id',
    order_id             bigint(20) comment '指令id',
    shift_id             bigint(20) comment '班次id',
    equip_type           varchar(100) comment '设备类型',
    equip_id             bigint(20) comment '设备id',
    equip_name           varchar(100) comment '设备名称',
    work_content         varchar(500) comment '作业内容',
    plan_wt              decimal(12,4) comment '计划作业量',
    act_wt               decimal(12,4) comment '实际作业量',
    plan_start           datetime comment '计划开始日期',
    plan_end             datetime comment '计划结束日期',
    act_start            datetime comment '实际开始日期',
    act_end              datetime comment '实际结束日期',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_work_equip comment '工班设备作业';

drop table if exists tm_work_workload;

/*==============================================================*/
/* Table: tm_work_workload                                      */
/*==============================================================*/
create table tm_work_workload
(
    id                   bigint(20) not null auto_increment comment 'id',
    order_id             bigint(20) comment '指令id',
    shift_id             bigint(20) comment '班次id',
    work_equip_id        bigint(20) comment '作业设备id',
    equip_type           varchar(100) comment '设备类型',
    equip_id             bigint(20) comment '设备id',
    equip_name           varchar(100) comment '设备名称',
    driver_id            bigint(20) comment '司机id',
    driver_name          varchar(100) comment '司机姓名',
    work_content         varchar(500) comment '作业内容',
    act_wt               decimal(12,4) comment '实际作业量',
    act_start            datetime comment '实际开始日期',
    act_end              datetime comment '实际结束日期',
    remark               varchar(500) comment '备注',
    del_flag             char(1) default '0' comment '删除标志（0代表存在 2代表删除）',
    create_dept          bigint(20) comment '创建部门',
    create_by            bigint(20) comment '创建人',
    create_time          datetime comment '创建时间',
    update_by            bigint(20) comment '修改人',
    update_time          datetime comment '修改时间',
    tenant_id            varchar(20) comment '租户ID',
    primary key (id)
);

alter table tm_work_workload comment '工班作业量明细';

ALTER TABLE `sys_dept`
    ADD COLUMN `is_work_area` varchar(32) NULL COMMENT '是否作业区' AFTER `email`;