-- /erp/order/add/new 与 /erp/report/order/new 最小表结构

-- 1) 合并映射表：记录“合并维度 -> 原始行”分配关系
CREATE TABLE IF NOT EXISTS `open_api_order_item_map` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `order_id` bigint NOT NULL COMMENT 'open_api_order.id',
  `order_code` varchar(45) NOT NULL COMMENT '单号',
  `source_item_id` bigint NOT NULL COMMENT 'open_api_order_item.id',
  `source_line_id` varchar(45) DEFAULT NULL COMMENT '原始行号',
  `merge_matnr_code` varchar(45) NOT NULL COMMENT '合并维度-物料编码',
  `merge_batch` varchar(110) DEFAULT '' COMMENT '合并维度-批次',
  `seq_no` int NOT NULL DEFAULT 1 COMMENT '反向分配顺序',
  `source_qty` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '原始行应完成数量',
  `allocated_qty` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '已分配完成量',
  `reported_qty` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '已回传ERP数量',
  `status` int NOT NULL DEFAULT 1 COMMENT '状态{1:正常,0:冻结}',
  `deleted` int NOT NULL DEFAULT 0 COMMENT '是否删除{1:是,0:否}',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_order_merge` (`order_id`, `merge_matnr_code`, `merge_batch`),
  KEY `idx_source_item` (`source_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='open-api 订单行映射表';

-- 2) 回传事件幂等表：eventId/taskNo/reportNo
CREATE TABLE IF NOT EXISTS `open_api_order_report_event` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `event_id` varchar(64) NOT NULL DEFAULT '' COMMENT '事件ID',
  `task_no` varchar(64) NOT NULL DEFAULT '' COMMENT '任务号',
  `report_no` varchar(64) NOT NULL DEFAULT '' COMMENT '回传号',
  `order_code` varchar(45) DEFAULT NULL COMMENT '单号',
  `payload` text COMMENT '原始报文',
  `status` int NOT NULL DEFAULT 0 COMMENT '处理状态{0:处理中,1:成功,2:失败}',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_event_task_report` (`event_id`, `task_no`, `report_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='open-api 回传事件幂等表';
