From a274b897e58c958903c3e00da6c1ccb16646a979 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 12 三月 2026 11:54:13 +0800
Subject: [PATCH] feat: 物料规格和物料的新增、修改和删除

---
 doc/宁夏-中盛建材.sql |   67 ++++++++++++++++++---------------
 1 files changed, 37 insertions(+), 30 deletions(-)

diff --git "a/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql" "b/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql"
index 7c58d7a..4b84c86 100644
--- "a/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql"
+++ "b/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql"
@@ -92,7 +92,7 @@
     add assigned_quantity DECIMAL(10, 4) default 0 not null COMMENT '涓嬪彂鏁伴噺';
 
 alter table product_order
-    add plan_complete_time datetime(0) NULL DEFAULT NULL COMMENT '璁″垝瀹屾垚鏃堕棿';
+    add plan_complete_time date NULL DEFAULT NULL COMMENT '璁″垝瀹屾垚鏃堕棿';
 
 # 鐢熶骇璁㈠崟涓庣敓浜ц鍒掑叧鑱旇〃
 drop table if exists product_order_plan;
@@ -103,6 +103,7 @@
     production_plan_id  bigint not null default 0 comment '鐢熶骇璁″垝id',
     create_time              datetime null comment '褰曞叆鏃堕棿',
     update_time              datetime null comment '鏇存柊鏃堕棿',
+    assigned_quantity DECIMAL(10, 4) default 0 not null comment '涓嬪彂鏁伴噺',
     index idx_product_order_id (product_order_id),
     index idx_production_plan_id (production_plan_id),
     unique idx_product_order_production_plan (product_order_id, production_plan_id)
@@ -110,35 +111,41 @@
 
 CREATE TABLE `product_material`
 (
-    `id`                    INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '涓婚敭ID',
-    `tenant_id`             BIGINT       DEFAULT NULL COMMENT '绉熸埛ID',
-    `material_type_id`      INT          DEFAULT NULL COMMENT '鍏宠仈鐗╂枡绫诲瀷ID',
-    `inventory_category_id` INT          DEFAULT NULL COMMENT '鍏宠仈瀛樿揣绫诲埆ID',
-    `identifier_code`       VARCHAR(100) DEFAULT NULL COMMENT '鏍囪瘑缂栫爜',
-    `material_code`         VARCHAR(100) DEFAULT NULL COMMENT '鐗╂枡浠g爜',
-    `product_name`          VARCHAR(255) DEFAULT NULL COMMENT '浜у搧鍚嶇О',
-    `material_name`         VARCHAR(255) DEFAULT NULL COMMENT '鐗╂枡鍝佸悕',
-    `specification`         VARCHAR(255) DEFAULT NULL COMMENT '瑙勬牸鍨嬪彿',
-    `base_unit`             VARCHAR(50)  DEFAULT NULL COMMENT '鍩烘湰鍗曚綅',
-    `material_attribute`    VARCHAR(100) DEFAULT NULL COMMENT '鐗╂枡灞炴��',
-    `finished_product_name` VARCHAR(100) DEFAULT NULL COMMENT '鎴愬搧鍝佸悕',
-    `originator_name`       VARCHAR(100) DEFAULT NULL COMMENT '鎻愪氦浜哄鍚�',
-    `originator_org`        VARCHAR(255) DEFAULT '瀹佸涓垱缁胯兘瀹炰笟闆嗗洟鏈夐檺鍏徃',
+    `id`                    BIGINT       NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
+    `tenant_id`             BIGINT      DEFAULT NULL COMMENT '绉熸埛ID',
+    `material_type_id`      INT         DEFAULT NULL COMMENT '鐗╂枡绫诲瀷ID',
+    `inventory_category_id` INT         DEFAULT NULL COMMENT '瀛樿揣绫诲埆ID',
+    `material_name`         VARCHAR(255) NOT NULL COMMENT '鐗╂枡鍚嶇О',
+    `base_unit`             VARCHAR(50) DEFAULT NULL COMMENT '鍩烘湰鍗曚綅',
     `remark`                TEXT COMMENT '澶囨敞',
-    `create_time`           DATETIME     DEFAULT CURRENT_TIMESTAMP,
-    `update_time`           DATETIME     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-    INDEX `idx_type_id` (`material_type_id`),
-    INDEX `idx_cat_id` (`inventory_category_id`)
+    `create_time`           DATETIME    DEFAULT CURRENT_TIMESTAMP,
+    `update_time`           DATETIME    DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+    PRIMARY KEY (`id`),
+    KEY `idx_type_id` (`material_type_id`),
+    KEY `idx_cat_id` (`inventory_category_id`),
+    UNIQUE KEY `uk_material_name` (`material_name`)
 ) ENGINE = INNODB
-  DEFAULT CHARSET = utf8mb4 COMMENT = '鐗╂枡淇℃伅琛�';
-
-ALTER TABLE product_material
-    ADD COLUMN form_instance_id   VARCHAR(100) DEFAULT NULL COMMENT '瀹滄惌琛ㄥ崟瀹炰緥ID',
-    ADD COLUMN form_modified_time DATETIME     DEFAULT NULL COMMENT '瀹滄惌淇敼鏃堕棿';
-
-CREATE TABLE `product_material_config`
+  DEFAULT CHARSET = utf8mb4 COMMENT = '鐗╂枡涓昏〃';
+CREATE TABLE `product_material_sku`
 (
-    `id`          int          NOT NULL AUTO_INCREMENT PRIMARY KEY,
-    `config_type` varchar(50)  NOT NULL COMMENT '鍖哄垎绫诲瀷: MATERIAL_TYPE 鎴� INVENTORY_CAT',
-    `config_name` varchar(100) NOT NULL COMMENT '鏄剧ず鐨勫悕绉�'
-) ENGINE = InnoDB COMMENT ='鐗╂枡淇℃伅琛ㄩ厤缃〃';
\ No newline at end of file
+    `id`                 BIGINT NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
+    `material_id`        BIGINT NOT NULL COMMENT '鐗╂枡ID',
+    `identifier_code`    VARCHAR(100) DEFAULT NULL COMMENT '鏍囪瘑缂栫爜',
+    `material_code`      VARCHAR(100) DEFAULT NULL COMMENT '鐗╂枡缂栫爜',
+    `specification`      VARCHAR(255) DEFAULT NULL COMMENT '瑙勬牸鍨嬪彿',
+    `supply_type`        VARCHAR(20)  DEFAULT NULL COMMENT '渚涘簲鏂瑰紡',
+    `originator_name`    VARCHAR(100) DEFAULT NULL COMMENT '鎻愪氦浜哄鍚�',
+    `originator_org`     VARCHAR(255) DEFAULT '瀹佸涓垱缁胯兘瀹炰笟闆嗗洟鏈夐檺鍏徃',
+    `form_instance_id`   VARCHAR(100) DEFAULT NULL COMMENT '瀹滄惌琛ㄥ崟瀹炰緥ID',
+    `form_modified_time` DATETIME     DEFAULT NULL COMMENT '瀹滄惌淇敼鏃堕棿',
+    `create_time`        DATETIME     DEFAULT CURRENT_TIMESTAMP,
+    `update_time`        DATETIME     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+    PRIMARY KEY (`id`),
+    KEY `idx_material_id` (`material_id`),
+    UNIQUE KEY `uk_material_spec` (`material_id`, `specification`),
+    CONSTRAINT `fk_material` FOREIGN KEY (`material_id`) REFERENCES `product_material` (`id`) ON DELETE CASCADE
+) ENGINE = INNODB
+  DEFAULT CHARSET = utf8mb4 COMMENT = '鐗╂枡瑙勬牸琛�';
+
+ALTER TABLE product_material_sku
+    DROP FOREIGN KEY fk_material;
\ No newline at end of file

--
Gitblit v1.9.3