SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for excel_templates
-- ----------------------------
DROP TABLE IF EXISTS `excel_templates`;
CREATE TABLE `excel_templates` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
`template_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板名称',
`template_key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板唯一标识键',
`template_config` json NOT NULL COMMENT 'Excel模板配置(存储header配置、字段映射规则等)',
`created_by` int NOT NULL COMMENT '创建人ID(关联member_auth_users.id)',
`is_deleted` int NULL DEFAULT 0 COMMENT '是否删除 0-正常 1-删除',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_template_key`(`template_key`) USING BTREE COMMENT '模板唯一键索引',
INDEX `idx_created_by`(`created_by`) USING BTREE COMMENT '创建人索引'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci
COMMENT='Excel模板配置表'
ROW_FORMAT = Dynamic;
-- 向 excel_templates 表插入默认的Excel模板配置
INSERT INTO `excel_templates`
(`template_name`, `template_key`, `template_config`, `created_by`)
VALUES
(
'默认Excel模板',
'default_template',
'{
"sheets": [
{
"headerRowIndex": 5,
"orderNumberRow": 2,
"orderNumberCol": 3,
"dataStartRow": 6,
"endMarker": "订单统计数据:",
"sheetName": "五金清单",
"exportFields": ["订单号", "序号", "名称", "颜色", "长度", "宽度", "数量", "单位", "工艺说明"],
"fieldMappings": {
"序号": "index",
"名称": "name",
"颜色": "color",
"长度": "length",
"宽度": "width",
"数量": "quantity",
"单位": "unit",
"工艺说明": "processDescription",
"订单号": "orderNumber"
},
"requiredFields": ["名称", "数量"]
},
{
"headerRowIndex": 5,
"orderNumberRow": 2,
"orderNumberCol": 3,
"dataStartRow": 6,
"endMarker": "拆单签名",
"sheetName": "灯带",
"exportFields": ["订单号", "序号", "名称", "型号", "规格", "数量", "单位", "柜号"],
"fieldMappings": {
"序号": "index",
"名称": "name",
"型号": "model",
"规格": "specification",
"数量": "quantity",
"单位": "unit",
"柜号": "cabinetNumber",
"订单号": "orderNumber"
},
"requiredFields": ["名称", "型号", "数量"]
},
{
"headerRowIndex": 3,
"orderNumberRow": 1,
"orderNumberCol": 1,
"dataStartRow": 4,
"endMarker": "备注:",
"sheetName": "统计",
"exportFields": ["序号", "封边条颜色", "封边条规格", "单位(米)", "备注"],
"fieldMappings": {
"序号": "index",
"封边条颜色": "color",
"封边条规格": "specification",
"单位(米)": "unit",
"备注": "remark"
},
"requiredFields": ["封边条颜色", "封边条规格"]
},
{
"headerRowIndex": 9,
"orderNumberRow": 7,
"orderNumberCol": 3,
"dataStartRow": 10,
"endMarker": "合计数量:",
"sheetName": "外购单",
"exportFields": ["订单号", "序号", "柜名", "材料名称", "长(高)", "宽", "厚(深)", "单位", "数量", "门铰位置", "单价", "金额", "备注", "分类"],
"fieldMappings": {
"订单号": "orderNumber",
"序号": "index",
"柜名": "cabinetName",
"材料名称": "materialName",
"长(高)": "length",
"宽": "width",
"厚(深)": "depth",
"单位": "unit",
"数量": "quantity",
"门铰位置": "hingePosition",
"单价": "unitPrice",
"金额": "amount",
"备注": "remark",
"分类": "category"
},
"requiredFields": ["材料名称", "数量"]
},
{
"headerRowIndex": 4,
"orderNumberRow": 3,
"orderNumberCol": 1,
"dataStartRow": 5,
"endMarker": "<数据区域结束>",
"sheetName": "包装数据",
"exportFields": ["订单号", "序号", "名称", "部件代码", "颜色", "长度", "宽度", "厚度", "数量", "平方数", "开料长度", "开料宽度", "开料厚度", "备注", "正面条码", "反面条码"],
"fieldMappings": {
"订单号": "orderNumber",
"序号": "index",
"名称": "name",
"部件代码": "componentCode",
"颜色": "color",
"长度": "length",
"宽度": "width",
"厚度": "thickness",
"数量": "quantity",
"平方数": "square",
"开料长度": "cuttingLength",
"开料宽度": "cuttingWidth",
"开料厚度": "cuttingThickness",
"备注": "remark",
"正面条码": "frontBarcode",
"反面条码": "backBarcode"
},
"requiredFields": ["名称", "颜色", "数量"],
"isMultiTable": true,
"multiTableHeaderOffset": 4,
"multiTableDataOffset": 1,
"multiTableOrderNumberOffset": -1
}
],
"activeSheetIndex": 0
}',
1
);
INSERT INTO `excel_templates`
(`template_name`, `template_key`, `template_config`, `created_by`)
VALUES
(
'五金清单模板',
'hardware_list_template',
'{
"sheets": [
{
"headerRowIndex": 5,
"orderNumberRow": 2,
"orderNumberCol": 3,
"dataStartRow": 6,
"endMarker": "订单统计数据:",
"sheetName": "五金清单",
"exportFields": ["订单号", "序号", "名称", "颜色", "长度", "宽度", "数量", "单位", "工艺说明"],
"fieldMappings": {
"序号": "index",
"名称": "name",
"颜色": "color",
"长度": "length",
"宽度": "width",
"数量": "quantity",
"单位": "unit",
"工艺说明": "processDescription",
"订单号": "orderNumber"
},
"requiredFields": ["名称", "数量"]
}
],
"activeSheetIndex": 0
}',
1
);
INSERT INTO `excel_templates`
(`template_name`, `template_key`, `template_config`, `created_by`)
VALUES
(
'灯带模板',
'light_band_template',
'{
"sheets": [
{
"headerRowIndex": 5,
"orderNumberRow": 2,
"orderNumberCol": 3,
"dataStartRow": 6,
"endMarker": "拆单签名",
"sheetName": "灯带",
"exportFields": ["订单号", "序号", "名称", "型号", "规格", "数量", "单位", "柜号"],
"fieldMappings": {
"序号": "index",
"名称": "name",
"型号": "model",
"规格": "specification",
"数量": "quantity",
"单位": "unit",
"柜号": "cabinetNumber",
"订单号": "orderNumber"
},
"requiredFields": ["名称", "型号", "数量"]
}
],
"activeSheetIndex": 0
}',
1
);
INSERT INTO `excel_templates`
(`template_name`, `template_key`, `template_config`, `created_by`)
VALUES
(
'统计模板',
'statistics_template',
'{
"sheets": [
{
"headerRowIndex": 3,
"orderNumberRow": 1,
"orderNumberCol": 1,
"dataStartRow": 4,
"endMarker": "备注:",
"sheetName": "统计",
"exportFields": ["序号", "封边条颜色", "封边条规格", "单位(米)", "备注"],
"fieldMappings": {
"序号": "index",
"封边条颜色": "color",
"封边条规格": "specification",
"单位(米)": "unit",
"备注": "remark"
},
"requiredFields": ["封边条颜色", "封边条规格"]
}
],
"activeSheetIndex": 0
}',
1
);
INSERT INTO `excel_templates`
(`template_name`, `template_key`, `template_config`, `created_by`)
VALUES
(
'外购单模板',
'purchase_template',
'{
"sheets": [
{
"headerRowIndex": 9,
"orderNumberRow": 7,
"orderNumberCol": 3,
"dataStartRow": 10,
"endMarker": "合计数量:",
"sheetName": "外购单",
"exportFields": ["订单号", "序号", "柜名", "材料名称", "长(高)", "宽", "厚(深)", "单位", "数量", "门铰位置", "单价", "金额", "备注", "分类"],
"fieldMappings": {
"订单号": "orderNumber",
"序号": "index",
"柜名": "cabinetName",
"材料名称": "materialName",
"长(高)": "length",
"宽": "width",
"厚(深)": "depth",
"单位": "unit",
"数量": "quantity",
"门铰位置": "hingePosition",
"单价": "unitPrice",
"金额": "amount",
"备注": "remark",
"分类": "category"
},
"requiredFields": ["材料名称", "数量"]
}
],
"activeSheetIndex": 0
}',
1
);
INSERT INTO `excel_templates`
(`template_name`, `template_key`, `template_config`, `created_by`)
VALUES
(
'包装数据模板',
'packaging_template',
'{
"sheets": [
{
"headerRowIndex": 4,
"orderNumberRow": 3,
"orderNumberCol": 1,
"dataStartRow": 5,
"endMarker": "<数据区域结束>",
"sheetName": "包装数据",
"exportFields": ["订单号", "序号", "名称", "部件代码", "颜色", "长度", "宽度", "厚度", "数量", "平方数", "开料长度", "开料宽度", "开料厚度", "备注", "正面条码", "反面条码"],
"fieldMappings": {
"订单号": "orderNumber",
"序号": "index",
"名称": "name",
"部件代码": "componentCode",
"颜色": "color",
"长度": "length",
"宽度": "width",
"厚度": "thickness",
"数量": "quantity",
"平方数": "square",
"开料长度": "cuttingLength",
"开料宽度": "cuttingWidth",
"开料厚度": "cuttingThickness",
"备注": "remark",
"正面条码": "frontBarcode",
"反面条码": "backBarcode"
},
"requiredFields": ["名称", "颜色", "数量"],
"isMultiTable": true,
"multiTableHeaderOffset": 4,
"multiTableDataOffset": 1,
"multiTableOrderNumberOffset": -1
}
],
"activeSheetIndex": 0
}',
1
);
SET FOREIGN_KEY_CHECKS = 1;