From 6071750e9994534b09a950b8e01b566c1cb7fa6b Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期日, 13 九月 2026 12:35:10 +0800
Subject: [PATCH] fix: 统一数量字段精度为 8 位小数

---
 doc/20260913_alter_quantity_scale_8.sql      |   42 +++++++++++++++++++++
 sql/product-inventory-management-new-pro.sql |   22 +++++-----
 2 files changed, 53 insertions(+), 11 deletions(-)

diff --git a/doc/20260913_alter_quantity_scale_8.sql b/doc/20260913_alter_quantity_scale_8.sql
new file mode 100644
index 0000000..07bc1f7
--- /dev/null
+++ b/doc/20260913_alter_quantity_scale_8.sql
@@ -0,0 +1,42 @@
+-- 鏁伴噺瀛楁缁熶竴淇濈暀 8 浣嶅皬鏁帮紙decimal(20, 8)锛氭暣鏁颁綅淇濈暀 12 浣嶏級
+-- 娑夊強鍔熻兘锛�
+--   1. 浜у搧缁撴瀯锛圔OM锛夊崟浣嶄骇鍑烘墍闇�鏁伴噺锛堜骇鍝佺粨鏋勮鎯呫�佺紪杈戝脊绐楋級
+--   2. 鐢熶骇璁㈠崟-宸ヨ壓璺嚎 BOM 缁撴瀯鍗曚綅浜у嚭鎵�闇�鏁伴噺
+--   3. 鐢熶骇璁㈠崟-棰嗘枡鏁伴噺锛堥鏂欏彴璐﹀脊绐楋級
+--   4. 搴撳瓨閾捐矾锛堥鏂欐墸鍑忓簱瀛樸�佸嚭搴�/鍏ュ簱璁板綍銆佸悎鏍�/涓嶅悎鏍煎簱瀛樸�佽鍗曢攣瀹氭暟閲忥級
+
+-- ----------------------------
+-- BOM 缁撴瀯琛�
+-- ----------------------------
+ALTER TABLE `technology_bom_structure`
+    MODIFY COLUMN `unit_quantity` decimal(20, 8) NOT NULL COMMENT '鍗曚綅浜у嚭闇�瑕佹暟閲�';
+
+ALTER TABLE `production_bom_structure`
+    MODIFY COLUMN `unit_quantity` decimal(20, 8) NOT NULL COMMENT '鍗曚綅浜у嚭闇�瑕佹暟閲�';
+
+-- ----------------------------
+-- 棰嗘枡琛紙production_order_pick.quantity 瀛橀鐢ㄦ暟閲忥級
+-- ----------------------------
+ALTER TABLE `production_order_pick`
+    MODIFY COLUMN `quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '鏁伴噺';
+
+ALTER TABLE `production_order_pick_record`
+    MODIFY COLUMN `pick_quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '棰嗘枡鏁伴噺',
+    MODIFY COLUMN `before_quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '棰嗘枡鍓嶆暟閲�',
+    MODIFY COLUMN `after_quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '棰嗘枡鍚庡墿浣欐暟閲�';
+
+-- ----------------------------
+-- 搴撳瓨閾捐矾琛�
+-- ----------------------------
+ALTER TABLE `stock_inventory`
+    MODIFY COLUMN `qualitity` decimal(20, 8) NULL DEFAULT NULL COMMENT '鏁伴噺',
+    MODIFY COLUMN `locked_quantity` decimal(20, 8) NULL DEFAULT 0.00000000 COMMENT '琚鍗曢攣瀹氭暟閲�';
+
+ALTER TABLE `stock_uninventory`
+    MODIFY COLUMN `qualitity` decimal(20, 8) NULL DEFAULT NULL COMMENT '鏁伴噺';
+
+ALTER TABLE `stock_in_record`
+    MODIFY COLUMN `stock_in_num` decimal(20, 8) NULL DEFAULT NULL COMMENT '鍏ュ簱鏁伴噺';
+
+ALTER TABLE `stock_out_record`
+    MODIFY COLUMN `stock_out_num` decimal(20, 8) NULL DEFAULT NULL COMMENT '鍏ュ簱鏁伴噺';
diff --git a/sql/product-inventory-management-new-pro.sql b/sql/product-inventory-management-new-pro.sql
index 35c0008..71d483b 100644
--- a/sql/product-inventory-management-new-pro.sql
+++ b/sql/product-inventory-management-new-pro.sql
@@ -2705,7 +2705,7 @@
   `product_model_id` bigint NOT NULL COMMENT '浜у搧瑙勬牸id',
   `technology_operation_id` bigint NULL DEFAULT NULL COMMENT '宸ュ簭id',
   `production_order_bom_id` bigint NULL DEFAULT NULL COMMENT '鐢熶骇璁㈠崟BOMid',
-  `unit_quantity` decimal(16, 4) NOT NULL COMMENT '鍗曚綅浜у嚭闇�瑕佹暟閲�',
+  `unit_quantity` decimal(20, 8) NOT NULL COMMENT '鍗曚綅浜у嚭闇�瑕佹暟閲�',
   `demanded_quantity` decimal(16, 4) NULL DEFAULT NULL COMMENT '闇�姹傛暟閲�',
   `unit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鍗曚綅',
   `create_user` bigint NULL DEFAULT NULL COMMENT '鍒涘缓浜篒D',
@@ -2815,7 +2815,7 @@
 CREATE TABLE `production_order_pick`  (
   `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭id',
   `product_model_id` int NULL DEFAULT NULL COMMENT '浜у搧瑙勬牸id',
-  `quantity` decimal(16, 2) NULL DEFAULT NULL COMMENT '鏁伴噺',
+  `quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '鏁伴噺',
   `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鎵瑰彿',
   `create_time` timestamp NULL DEFAULT NULL,
   `update_time` timestamp NULL DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
@@ -2845,9 +2845,9 @@
   `production_operation_task_id` bigint NULL DEFAULT 0 COMMENT '鐢熶骇宸ュ崟id',
   `product_model_id` int NULL DEFAULT NULL COMMENT '浜у搧瑙勬牸id',
   `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鎵瑰彿',
-  `pick_quantity` decimal(16, 4) NULL DEFAULT NULL COMMENT '棰嗘枡鏁伴噺',
-  `before_quantity` decimal(16, 4) NULL DEFAULT NULL COMMENT '棰嗘枡鍓嶆暟閲�',
-  `after_quantity` decimal(16, 4) NULL DEFAULT NULL COMMENT '棰嗘枡鍚庡墿浣欐暟閲�',
+  `pick_quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '棰嗘枡鏁伴噺',
+  `before_quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '棰嗘枡鍓嶆暟閲�',
+  `after_quantity` decimal(20, 8) NULL DEFAULT NULL COMMENT '棰嗘枡鍚庡墿浣欐暟閲�',
   `pick_type` tinyint NULL DEFAULT 1 COMMENT '棰嗘枡绫诲瀷锛�1姝e父棰嗘枡  2琛ユ枡',
   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '澶囨敞',
   `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
@@ -4763,7 +4763,7 @@
   `id` int NOT NULL AUTO_INCREMENT,
   `inbound_batches` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鍏ュ簱鎵规',
   `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鎵瑰彿',
-  `stock_in_num` decimal(16, 4) NULL DEFAULT NULL COMMENT '鍏ュ簱鏁伴噺',
+  `stock_in_num` decimal(20, 8) NULL DEFAULT NULL COMMENT '鍏ュ簱鏁伴噺',
   `record_id` int NULL DEFAULT NULL COMMENT '鍏ュ簱鏉ユ簮id',
   `record_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鍏ュ簱绫诲瀷',
   `product_model_id` int NULL DEFAULT NULL COMMENT '浜у搧瑙勬牸id',
@@ -4788,11 +4788,11 @@
   `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭id',
   `product_model_id` int NULL DEFAULT NULL COMMENT '瑙勬牸id',
   `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鎵瑰彿',
-  `qualitity` decimal(16, 4) NULL DEFAULT NULL COMMENT '鏁伴噺',
+  `qualitity` decimal(20, 8) NULL DEFAULT NULL COMMENT '鏁伴噺',
   `create_time` timestamp NULL DEFAULT NULL,
   `update_time` timestamp NULL DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
   `version` int NULL DEFAULT NULL COMMENT '鐗堟湰鍙�',
-  `locked_quantity` decimal(16, 4) NULL DEFAULT 0.0000 COMMENT '琚鍗曢攣瀹氭暟閲�',
+  `locked_quantity` decimal(20, 8) NULL DEFAULT 0.00000000 COMMENT '琚鍗曢攣瀹氭暟閲�',
   `warn_num` decimal(16, 4) NULL DEFAULT NULL COMMENT '棰勮鏁伴噺',
   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '澶囨敞',
   `create_user` bigint NULL DEFAULT NULL COMMENT '鍒涘缓浜篒D',
@@ -4808,7 +4808,7 @@
   `id` int NOT NULL AUTO_INCREMENT,
   `outbound_batches` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鍏ュ簱鎵规',
   `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鎵瑰彿',
-  `stock_out_num` decimal(16, 4) NULL DEFAULT NULL COMMENT '鍏ュ簱鏁伴噺',
+  `stock_out_num` decimal(20, 8) NULL DEFAULT NULL COMMENT '鍏ュ簱鏁伴噺',
   `record_id` int NULL DEFAULT NULL COMMENT '鍏ュ簱鏉ユ簮id',
   `record_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鍏ュ簱绫诲瀷',
   `product_model_id` int NULL DEFAULT NULL COMMENT '浜у搧瑙勬牸id',
@@ -4831,7 +4831,7 @@
   `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭id',
   `product_model_id` int NULL DEFAULT NULL COMMENT '瑙勬牸id',
   `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鎵瑰彿',
-  `qualitity` decimal(16, 4) NULL DEFAULT NULL COMMENT '鏁伴噺',
+  `qualitity` decimal(20, 8) NULL DEFAULT NULL COMMENT '鏁伴噺',
   `create_time` timestamp NULL DEFAULT NULL,
   `update_time` timestamp NULL DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
   `version` int NULL DEFAULT NULL COMMENT '鐗堟湰鍙�',
@@ -5302,7 +5302,7 @@
   `parent_id` bigint NULL DEFAULT NULL COMMENT '鐖惰妭鐐笽D',
   `product_model_id` bigint NOT NULL COMMENT '浜у搧id',
   `operation_id` bigint NULL DEFAULT NULL COMMENT '宸ュ簭id',
-  `unit_quantity` decimal(16, 4) NOT NULL COMMENT '鍗曚綅浜у嚭闇�瑕佹暟閲�',
+  `unit_quantity` decimal(20, 8) NOT NULL COMMENT '鍗曚綅浜у嚭闇�瑕佹暟閲�',
   `demanded_quantity` decimal(16, 4) NULL DEFAULT NULL COMMENT '闇�姹傛暟閲�',
   `unit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '鍗曚綅',
   `bom_id` bigint NOT NULL COMMENT 'bom鐨刬d',

--
Gitblit v1.9.3