From 5bf65a4d967c90b4ee51c8405ee9bef766530fd8 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 16 十月 2026 18:00:36 +0800
Subject: [PATCH] feat(mdm): 计量单位新增重量字段

---
 yudao-module-mdm-api/src/main/java/cn/iocoder/yudao/module/mdm/api/unit/dto/MdmUnitMeasureRespDTO.java           |    3 +
 yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/unit/vo/MdmUnitMeasureSaveReqVO.java |    7 +-
 yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/dal/dataobject/unit/MdmUnitMeasureDO.java             |    7 ++
 docs/unit_measure_weight_integration.md                                                                          |  109 ++++++++++++++++++++++++++++++++++++
 docs/sql/mdm_schema.sql                                                                                          |    2 
 sql/mysql/mdm_unit_measure_add_weight.sql                                                                        |   14 ++++
 6 files changed, 139 insertions(+), 3 deletions(-)

diff --git a/docs/sql/mdm_schema.sql b/docs/sql/mdm_schema.sql
index 058def5..16bc41f 100644
--- a/docs/sql/mdm_schema.sql
+++ b/docs/sql/mdm_schema.sql
@@ -34,6 +34,8 @@
     `id` bigint NOT NULL AUTO_INCREMENT COMMENT '鍗曚綅缂栧彿',
     `code` varchar(50) NOT NULL COMMENT '鍗曚綅缂栫爜',
     `name` varchar(50) NOT NULL COMMENT '鍗曚綅鍚嶇О',
+    `type` varchar(20) DEFAULT NULL COMMENT '绫诲瀷锛�48鍗冨厠/100鍗冨厠/鍚級',
+    `weight` decimal(24,6) DEFAULT NULL COMMENT '閲嶉噺(kg)',
     `primary_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '鏄惁涓诲崟浣�',
     `primary_id` bigint DEFAULT NULL COMMENT '涓诲崟浣嶇紪鍙�',
     `change_rate` decimal(24,6) DEFAULT 1.000000 COMMENT '涓庝富鍗曚綅鎹㈢畻姣斾緥',
diff --git a/docs/unit_measure_weight_integration.md b/docs/unit_measure_weight_integration.md
new file mode 100644
index 0000000..62fb66a
--- /dev/null
+++ b/docs/unit_measure_weight_integration.md
@@ -0,0 +1,109 @@
+# 璁¢噺鍗曚綅鏂板銆岄噸閲忋�嶅瓧娈� - 鍓嶇鑱旇皟鏂规
+
+## 闇�姹傝儗鏅�
+
+璁¢噺鍗曚綅鍘熷厛鍙湁 `type`锛堢被鍨嬶級瀛楁锛屽彇鍊艰闄愬埗涓� `48鍗冨厠 / 100鍗冨厠 / 鍚╜ 涓夌锛屾棤娉曞綍鍏ュ疄闄呴噸閲忋��
+瀹為檯涓氬姟涓ぇ閲忓崟浣嶅悕绉版惡甯﹂噸閲忥紝渚嬪銆屾柊濉旀7鍙峰ぇ鐢扮敤绉�**25鍏枻**銆嶃�屾柊濉�7鍙峰ぇ鐢扮敤绉�**10鍏枻**銆嶏紝
+杩欎簺鍗曚綅鐨勯噸閲忕洰鍓嶅彧鑳藉啓杩涘悕绉帮紝鏃犳硶鍗曠嫭缁存姢銆�
+
+鏈鍦ㄨ閲忓崟浣嶄笂鏂板鍙緭鍏ョ殑銆岄噸閲�(kg)銆嶅瓧娈碉紝閲嶉噺涓庡悕绉拌В鑰︼紝鍙嫭绔嬪綍鍏ャ�佷慨鏀广�佸睍绀恒��
+
+## 娑夊強椤甸潰
+
+- 鍩虹鏁版嵁 > 璁¢噺鍗曚綅锛堝垪琛ㄩ〉銆佹柊澧�/淇敼寮圭獥锛�
+- 璁¢噺鍗曚綅閫夋嫨鍣紙鐗╂枡/鍝佺绛夎〃鍗曚腑閫夌敤璁¢噺鍗曚綅鏃剁殑鎮诞璇︽儏锛�
+
+## 鏁版嵁搴撳彉鏇�
+
+琛� `mdm_unit_measure` 鏂板瀛楁锛�
+
+| 瀛楁 | 绫诲瀷 | 鍙┖ | 璇存槑 |
+|------|------|------|------|
+| `weight` | decimal(24,6) | 鏄� | 閲嶉噺(kg) |
+
+- 浣嶄簬 `type` 瀛楁涔嬪悗銆�
+- **涓嶅仛鍘嗗彶鏁版嵁鍥炲~**锛氬巻鍙茶褰� `weight` 鍧囦负绌猴紝闇�涓氬姟鍦ㄩ〉闈笂鎸夊疄闄呴噸閲忚ˉ褰曘��
+- 鑴氭湰锛歚sql/mysql/mdm_unit_measure_add_weight.sql`
+
+## API
+
+鏈疆鏃犳柊澧炴帴鍙c�佹棤鎺ュ彛璺緞璋冩暣锛屼粎鍦ㄦ棦鏈夋帴鍙g殑璇锋眰/鍝嶅簲涓鍔� `weight` 瀛楁銆�
+
+| 鏂规硶 | 璺緞 | 璇存槑 |
+|------|------|------|
+| POST | /mdm/unit/create | 鏂板璁¢噺鍗曚綅 |
+| PUT | /mdm/unit/update | 淇敼璁¢噺鍗曚綅 |
+| GET | /mdm/unit/get | 鏌ヨ璁¢噺鍗曚綅璇︽儏 |
+| GET | /mdm/unit/page | 鏌ヨ璁¢噺鍗曚綅鍒嗛〉 |
+| GET | /mdm/unit/list | 鏌ヨ璁¢噺鍗曚綅鍒楄〃 |
+| GET | /mdm/unit/list-by-ids | 鏍规嵁缂栧彿鍒楄〃鏌ヨ璁¢噺鍗曚綅 |
+
+**璇锋眰鍙傛暟鏂板锛�**
+
+| 鍙傛暟 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
+|------|------|------|------|
+| weight | Number | 鍚� | 閲嶉噺(kg)锛屽崟浣嶅崈鍏嬶紝鍙紶灏忔暟 |
+
+**鍝嶅簲瀛楁鏂板锛�**
+
+| 瀛楁 | 绫诲瀷 | 璇存槑 |
+|------|------|------|
+| weight | Number | 閲嶉噺(kg)锛屾湭褰曞叆鏃惰繑鍥� null |
+
+**鍝嶅簲绀轰緥锛�/mdm/unit/get锛夛細**
+
+```json
+{
+  "code": 0,
+  "data": {
+    "id": 1,
+    "code": "3",
+    "name": "鏂板妫�7鍙峰ぇ鐢扮敤绉�25鍏枻",
+    "type": "48鍗冨厠",
+    "weight": 25,
+    "primaryFlag": false,
+    "primaryId": null,
+    "changeRate": 1.0,
+    "status": 0,
+    "remark": null
+  },
+  "msg": ""
+}
+```
+
+## 瀛楁灞曠ず瑙勫垯
+
+| 瀛楁 | 灞曠ず浣嶇疆 | 璇存槑 |
+|------|----------|------|
+| weight | 璁¢噺鍗曚綅鍒楄〃 | 鍒楁爣棰樸�岄噸閲�(kg)銆嶏紝涓虹┖鏃跺睍绀� `-`锛屼笉鍙備笌鎺掑簭 |
+| weight | 璁¢噺鍗曚綅鏂板/淇敼寮圭獥 | 鏁板瓧杈撳叆妗嗭紝鏍囩銆岄噸閲�(kg)銆嶏紝闈炲繀濉紝鏈�灏忓�� 0锛屽缓璁簿搴� 2 |
+| weight | 璁¢噺鍗曚綅閫夋嫨鍣ㄦ偓娴鎯� | 鍦ㄣ�屽悕绉般�嶄笅鏂硅拷鍔犱竴琛屻�岄噸閲忥細{weight} kg銆嶏紝weight 涓虹┖鏃朵笉灞曠ず璇ヨ |
+
+## 涓氬姟瑙勫垯璇存槑
+
+| 鍦烘櫙 | 瑙勫垯 |
+|------|------|
+| 鏂板/淇敼 | 閲嶉噺闈炲繀濉紱鍏佽鐣欑┖琛ㄧず灏氭湭缁存姢 |
+| 閲嶉噺鍙栧�� | 鍗曚綅鍥哄畾涓哄崈鍏�(kg)锛屽彧瀛樻暟鍊硷紝涓嶅瓨鍗曚綅鏂囨湰 |
+| 绫诲瀷鏍¢獙 | `type` 宸�**鐢卞繀濉敼涓洪潪蹇呭~**锛屽彧濉悕绉�+閲嶉噺鍗冲彲淇濆瓨鎴愬姛 |
+| 涓� type 鐨勫叧绯� | `type` 淇濈暀涓嶅垹锛涜鐮佺敓鎴愰�昏緫浠嶈鍙� `type`锛屾湰娆′笉鍙楀奖鍝� |
+| 涓庡悕绉扮殑鍏崇郴 | 閲嶉噺鐙珛浜庡悕绉帮紝鍚嶇О涓殑銆�25鍏枻銆嶇瓑瀛楁牱涓嶅啀浣滀负閲嶉噺鏉ユ簮 |
+
+## 娉ㄦ剰浜嬮」
+
+1. **`type` 瀛楁宸叉斁寮�蹇呭~闄愬埗銆�**
+   姝ゅ墠鍚庣 `MdmUnitMeasureSaveReqVO` 瀵� `type` 鏈� `@NotBlank` 鏍¢獙锛岃�屽墠绔柊澧�/淇敼寮圭獥骞舵湭鎻愪氦璇ュ瓧娈碉紝
+   瀵艰嚧浠庨〉闈㈡柊澧炶閲忓崟浣嶅浐瀹氳繑鍥炪�岀被鍨嬩笉鑳戒负绌恒�嶃�傛湰娆″凡鍘绘帀璇ユ牎楠岋紝璇ラ棶棰樹竴骞朵慨澶嶃��
+
+2. **`type` 涓虹┖浼氬鑷存棤娉曠敓鎴愯鐮併��**
+   MES 琚嬬爜鐢熸垚浠嶄緷璧� `type` 瑙f瀽姣忔墭琚嬫暟锛坄48鍗冨厠` 鈫� 姣忔墭 48 琚嬶級锛宍type` 涓虹┖鎴栦笉鍦�
+   `48鍗冨厠 / 100鍗冨厠 / 鍚╜ 鑼冨洿鍐呮椂浼氭姤銆屽搧绉嶄富璁¢噺鍗曚綅鏈厤缃被鍨嬨�嶃��
+   鍥犳锛氫粎缁存姢閲嶉噺銆佷笉缁存姢绫诲瀷鐨勮閲忓崟浣嶏紝涓嶅彲鐢ㄤ簬闇�瑕佺敓鎴愯鐮佺殑鍝佺銆�
+
+3. 閲嶉噺涓�**姣忓崟浣嶏紙琚嬶級鐨勯噸閲�**锛屼笉鏄暣鎵归噸閲忥紝璇峰嬁涓庡簱瀛樻暟閲忕浉涔樺悗鍥炲~銆�
+
+4. 鍘嗗彶鏁版嵁 `weight` 涓虹┖锛屽墠绔睍绀洪渶鍋氱┖鍊煎厹搴曪紝閬垮厤鍑虹幇 `null kg` 鎴� `NaN`銆�
+
+5. `decimal(24,6)` 绮惧害杈冮珮锛屽墠绔缓璁寜 2 浣嶅皬鏁板睍绀猴紝閬垮厤鍑虹幇 `25.000000` 杩欑被澶氫綑灏炬暟銆�
+
+6. 璁¢噺鍗曚綅瀛樺湪鍒犻櫎淇濇姢锛氳鐗╂枡寮曠敤鐨勫崟浣嶄笉鍏佽鍒犻櫎锛岄噸閲忓瓧娈电殑澧炴敼涓嶅奖鍝嶈瑙勫垯銆�
diff --git a/sql/mysql/mdm_unit_measure_add_weight.sql b/sql/mysql/mdm_unit_measure_add_weight.sql
new file mode 100644
index 0000000..c631e2d
--- /dev/null
+++ b/sql/mysql/mdm_unit_measure_add_weight.sql
@@ -0,0 +1,14 @@
+-- MDM 璁¢噺鍗曚綅鏂板銆岄噸閲忋�嶅瓧娈�
+-- 鑳屾櫙锛氬師鏈� type 瀛楁鍙敮鎸� 48鍗冨厠/100鍗冨厠/鍚� 涓夌鍥哄畾鍙栧�硷紝鏃犳硶褰曞叆瀹為檯閲嶉噺锛�
+--       瀵艰嚧銆屾柊濉旀7鍙峰ぇ鐢扮敤绉�25鍏枻銆嶈繖绫诲崟浣嶇殑閲嶉噺鏃犲濉啓銆�
+-- 璇存槑锛歸eight 涓哄彲绌哄瓧娈碉紝鍘嗗彶鏁版嵁涓嶅仛鍥炲~锛岀敱涓氬姟鍦ㄨ閲忓崟浣嶇淮鎶ら〉闈㈡寜瀹為檯閲嶉噺琛ュ綍銆�
+
+-- MySQL 鐨� ALTER TABLE ADD COLUMN 涓嶆敮鎸� IF NOT EXISTS锛屼娇鐢ㄥ吋瀹瑰啓娉曚繚璇佽剼鏈彲閲嶅鎵ц
+SET @exists = (SELECT COUNT(*) FROM information_schema.columns
+               WHERE table_schema = DATABASE() AND table_name = 'mdm_unit_measure' AND column_name = 'weight');
+SET @sql = IF(@exists = 0,
+              'ALTER TABLE mdm_unit_measure ADD COLUMN weight DECIMAL(24,6) NULL COMMENT ''閲嶉噺(kg)'' AFTER type',
+              'SELECT 1');
+PREPARE stmt FROM @sql;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
diff --git a/yudao-module-mdm-api/src/main/java/cn/iocoder/yudao/module/mdm/api/unit/dto/MdmUnitMeasureRespDTO.java b/yudao-module-mdm-api/src/main/java/cn/iocoder/yudao/module/mdm/api/unit/dto/MdmUnitMeasureRespDTO.java
index 297ddb4..cdcc80a 100644
--- a/yudao-module-mdm-api/src/main/java/cn/iocoder/yudao/module/mdm/api/unit/dto/MdmUnitMeasureRespDTO.java
+++ b/yudao-module-mdm-api/src/main/java/cn/iocoder/yudao/module/mdm/api/unit/dto/MdmUnitMeasureRespDTO.java
@@ -21,6 +21,9 @@
     @Schema(description = "绫诲瀷锛�48鍗冨厠/100鍗冨厠/鍚級", example = "48鍗冨厠")
     private String type;
 
+    @Schema(description = "閲嶉噺(kg)", example = "25")
+    private BigDecimal weight;
+
     @Schema(description = "鏄惁涓诲崟浣�", example = "true")
     private Boolean primaryFlag;
 
diff --git a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/unit/vo/MdmUnitMeasureSaveReqVO.java b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/unit/vo/MdmUnitMeasureSaveReqVO.java
index 509f0f9..ef2f075 100644
--- a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/unit/vo/MdmUnitMeasureSaveReqVO.java
+++ b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/unit/vo/MdmUnitMeasureSaveReqVO.java
@@ -1,7 +1,6 @@
 package cn.iocoder.yudao.module.mdm.controller.admin.unit.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -19,10 +18,12 @@
     @Schema(description = "鍗曚綅鍚嶇О", requiredMode = Schema.RequiredMode.REQUIRED, example = "涓�")
     private String name;
 
-    @Schema(description = "绫诲瀷", requiredMode = Schema.RequiredMode.REQUIRED, example = "48鍗冨厠")
-    @NotBlank(message = "绫诲瀷涓嶈兘涓虹┖")
+    @Schema(description = "绫诲瀷锛�48鍗冨厠/100鍗冨厠/鍚級锛岄潪蹇呭~锛涜鐮佺敓鎴愪緷璧栬瀛楁锛屼负绌烘椂鏃犳硶鐢熸垚琚嬬爜", example = "48鍗冨厠")
     private String type;
 
+    @Schema(description = "閲嶉噺(kg)", example = "25")
+    private BigDecimal weight;
+
     @Schema(description = "鏄惁涓诲崟浣�", example = "true")
     private Boolean primaryFlag;
 
diff --git a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/dal/dataobject/unit/MdmUnitMeasureDO.java b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/dal/dataobject/unit/MdmUnitMeasureDO.java
index 3cb2d2c..2a9ec82 100644
--- a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/dal/dataobject/unit/MdmUnitMeasureDO.java
+++ b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/dal/dataobject/unit/MdmUnitMeasureDO.java
@@ -43,10 +43,17 @@
      * 绫诲瀷
      *
      * 鍙�夊�硷細48鍗冨厠銆�100鍗冨厠銆佸惃
+     *
+     * 闈炲繀濉紱MES 琚嬬爜鐢熸垚渚濊禆璇ュ瓧娈垫崲绠楁瘡鎵樿鏁帮紝涓虹┖鏃舵棤娉曠敓鎴愯鐮�
      */
     private String type;
 
     /**
+     * 閲嶉噺(kg)
+     */
+    private BigDecimal weight;
+
+    /**
      * 鏄惁涓诲崟浣�
      */
     private Boolean primaryFlag;

--
Gitblit v1.9.3