-- 批量导入任务表。执行一次即可。
create table if not exists wms_batch_job (
  id bigint not null auto_increment comment '主键',
  job_no varchar(64) not null comment '任务号',
  source_type varchar(20) not null comment '来源类型 excel/image/file',
  biz_type varchar(30) default 'mixed' comment '业务类型',
  file_name varchar(255) default null comment '原始文件名',
  file_path varchar(500) default null comment '服务器文件路径',
  status tinyint not null default 0 comment '状态 0上传完成 1解析中 2待确认 3执行中 4完成 5失败 6取消',
  progress int not null default 0 comment '进度',
  total_count int not null default 0 comment '总条数',
  success_count int not null default 0 comment '成功条数',
  fail_count int not null default 0 comment '失败条数',
  error_msg varchar(1000) default null comment '错误信息',
  create_by varchar(64) default null comment '创建人',
  create_time datetime default null comment '创建时间',
  update_time datetime default null comment '更新时间',
  primary key (id),
  unique key uk_wms_batch_job_no (job_no)
) engine=innodb default charset=utf8mb4 comment='WMS批量导入任务';

create table if not exists wms_batch_item (
  id bigint not null auto_increment comment '主键',
  job_id bigint not null comment '任务ID',
  row_no int default null comment 'Excel行号',
  action_type varchar(40) not null comment '操作类型',
  raw_text text comment '原始内容',
  parsed_json text comment '解析JSON',
  status tinyint not null default 1 comment '状态 1校验通过 2校验失败 3已执行 4执行失败',
  error_msg varchar(1000) default null comment '错误信息',
  warning_msg varchar(1000) default null comment '提示信息',
  ref_id bigint default null comment '执行后业务ID',
  area_name varchar(100) default null comment '库区名称',
  product_name varchar(200) default null comment '产品名称',
  brand varchar(100) default null comment '品牌',
  category varchar(100) default null comment '类别',
  spec varchar(200) default null comment '规格',
  unit varchar(50) default null comment '单位',
  quantity decimal(16,3) default null comment '数量',
  operator_name varchar(100) default null comment '操作人',
  type_code tinyint default null comment '入库/出库类型',
  source_no varchar(100) default null comment '来源单据号',
  remark varchar(500) default null comment '备注',
  create_time datetime default null comment '创建时间',
  update_time datetime default null comment '更新时间',
  primary key (id),
  key idx_wms_batch_item_job (job_id),
  key idx_wms_batch_item_status (status)
) engine=innodb default charset=utf8mb4 comment='WMS批量导入明细';
