From 2c19f00b211b7ffb1a265d67991d92f2b194b1f5 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 08 六月 2026 11:33:47 +0800
Subject: [PATCH] feat(financial): 新增凭证分录科目明细字段

---
 src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerEntryRecordVo.java    |    5 +
 src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerRowVo.java            |    5 +
 doc/20260608_凭证分录科目明细字段前端联调文档.md                                                 |  275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/20260512_create_financial_management_tables.sql                              |    1 
 src/main/java/com/ruoyi/account/service/impl/financial/FinLedgerServiceImpl.java |    1 
 src/main/resources/application-dev.yml                                           |    2 
 src/main/java/com/ruoyi/account/pojo/financial/FinVoucherEntry.java              |    3 
 src/main/resources/mapper/account/financial/FinVoucherEntryMapper.xml            |    3 
 8 files changed, 294 insertions(+), 1 deletions(-)

diff --git a/doc/20260512_create_financial_management_tables.sql b/doc/20260512_create_financial_management_tables.sql
index db3caad..d77243b 100644
--- a/doc/20260512_create_financial_management_tables.sql
+++ b/doc/20260512_create_financial_management_tables.sql
@@ -92,6 +92,7 @@
   `auxiliary_type` varchar(32) DEFAULT NULL COMMENT '杈呭姪鏍哥畻绫诲瀷',
   `auxiliary_id` varchar(64) DEFAULT NULL COMMENT '杈呭姪鏍哥畻瀵硅薄ID',
   `auxiliary_name` varchar(128) DEFAULT NULL COMMENT '杈呭姪鏍哥畻瀵硅薄鍚嶇О',
+  `subject_detail` varchar(255) DEFAULT NULL COMMENT '绉戠洰鏄庣粏',
   `create_user` varchar(64) DEFAULT NULL COMMENT '鍒涘缓浜�',
   `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
   `update_user` varchar(64) DEFAULT NULL COMMENT '淇敼浜�',
diff --git "a/doc/20260608_\345\207\255\350\257\201\345\210\206\345\275\225\347\247\221\347\233\256\346\230\216\347\273\206\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260608_\345\207\255\350\257\201\345\210\206\345\275\225\347\247\221\347\233\256\346\230\216\347\273\206\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
new file mode 100644
index 0000000..1a13460
--- /dev/null
+++ "b/doc/20260608_\345\207\255\350\257\201\345\210\206\345\275\225\347\247\221\347\233\256\346\230\216\347\273\206\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
@@ -0,0 +1,275 @@
+# 鍑瘉鍒嗗綍绉戠洰鏄庣粏瀛楁鍓嶇鑱旇皟鏂囨。
+
+> 鏂囨。鏃ユ湡锛�2026-06-08
+> 鍏宠仈妯″潡锛氳储鍔$鐞� - 鍑瘉 / 绉戠洰鏄庣粏璐�
+
+---
+
+## 1. 鍙樻洿姒傝堪
+
+鍦�**鍑瘉鍒嗗綍**涓柊澧� `subjectDetail`锛堢鐩槑缁嗭級瀛楁锛屽瓧绗︿覆绫诲瀷锛岀敱鐢ㄦ埛鍦ㄥ墠绔緭鍏ワ紝闅忓嚟璇佷繚瀛�/淇敼鎺ュ彛浼犲叆鍚庣锛屽苟鍦ㄤ互涓嬪満鏅弽鏄撅細
+
+1. **鍑瘉璇︽儏** (`GET /financial/voucher/detail/{id}`)
+2. **绉戠洰鏄庣粏璐︽煡璇�** (`GET /financial/ledger/detail`)
+
+---
+
+## 2. 鏁版嵁搴撳彉鏇�
+
+### 2.1 鏂板瀛楁
+
+```sql
+ALTER TABLE fin_voucher_entry
+ADD COLUMN subject_detail VARCHAR(255) DEFAULT NULL COMMENT '绉戠洰鏄庣粏' AFTER auxiliary_name;
+```
+
+---
+
+## 3. 鎺ュ彛鍙樻洿
+
+### 3.1 鍑瘉鏂板 /financial/voucher/add
+
+**Method**: `POST`
+
+**Request Body** 绀轰緥锛�
+
+```json
+{
+  "voucherNo": "璁�-0001",
+  "voucherDate": "2026-06-08",
+  "summary": "閲囪喘鍘熸潗鏂�",
+  "creator": "寮犱笁",
+  "attachmentCount": 0,
+  "remark": "",
+  "entries": [
+    {
+      "subjectCode": "1403",
+      "subjectName": "鍘熸潗鏂�",
+      "summary": "閲囪喘A鏉愭枡",
+      "debit": 5000.00,
+      "credit": 0,
+      "subjectDetail": "A鏉愭枡-瑙勬牸鍨嬪彿001"
+    },
+    {
+      "subjectCode": "1002",
+      "subjectName": "閾惰瀛樻",
+      "summary": "鏀粯璐ф",
+      "debit": 0,
+      "credit": 5000.00,
+      "subjectDetail": "宸ュ晢閾惰-鍩烘湰鎴�"
+    }
+  ]
+}
+```
+
+**鍙樻洿璇存槑**锛�
+- `entries` 鏁扮粍涓瘡鏉″垎褰曞璞℃柊澧� `subjectDetail` 瀛楁锛堝彲閫夛紝瀛楃涓诧級銆�
+- 鍓嶇鍦ㄥ垎褰曡涓鍔犺緭鍏ユ锛屼緵鐢ㄦ埛濉啓绉戠洰鏄庣粏銆�
+
+---
+
+### 3.2 鍑瘉淇敼 /financial/voucher/update
+
+**Method**: `PUT`
+
+**Request Body** 绀轰緥锛�
+
+```json
+{
+  "id": 1,
+  "voucherNo": "璁�-0001",
+  "voucherDate": "2026-06-08",
+  "summary": "閲囪喘鍘熸潗鏂�",
+  "creator": "寮犱笁",
+  "attachmentCount": 0,
+  "remark": "",
+  "entries": [
+    {
+      "subjectCode": "1403",
+      "subjectName": "鍘熸潗鏂�",
+      "summary": "閲囪喘A鏉愭枡",
+      "debit": 5000.00,
+      "credit": 0,
+      "subjectDetail": "A鏉愭枡-瑙勬牸鍨嬪彿001"
+    },
+    {
+      "subjectCode": "1002",
+      "subjectName": "閾惰瀛樻",
+      "summary": "鏀粯璐ф",
+      "debit": 0,
+      "credit": 5000.00,
+      "subjectDetail": "宸ュ晢閾惰-鍩烘湰鎴�"
+    }
+  ]
+}
+```
+
+**鍙樻洿璇存槑**锛�
+- 鍚屾柊澧炴帴鍙o紝`entries` 涓瘡鏉″垎褰曟敮鎸� `subjectDetail`銆�
+- 淇敼鏃跺墠绔渶灏嗗師鏈� `subjectDetail` 鍊煎洖鏄惧埌杈撳叆妗嗕腑銆�
+
+---
+
+### 3.3 鍑瘉璇︽儏 /financial/voucher/detail/{id}
+
+**Method**: `GET`
+
+**Response** 绀轰緥锛�
+
+```json
+{
+  "code": 200,
+  "msg": "鎿嶄綔鎴愬姛",
+  "data": {
+    "id": 1,
+    "voucherNo": "璁�-0001",
+    "voucherDate": "2026-06-08",
+    "summary": "閲囪喘鍘熸潗鏂�",
+    "creator": "寮犱笁",
+    "status": "unposted",
+    "attachmentCount": 0,
+    "remark": "",
+    "entries": [
+      {
+        "id": 1,
+        "voucherId": 1,
+        "rowNo": 1,
+        "subjectCode": "1403",
+        "subjectName": "鍘熸潗鏂�",
+        "summary": "閲囪喘A鏉愭枡",
+        "debit": 5000.00,
+        "credit": 0.00,
+        "auxiliaryType": null,
+        "auxiliaryId": null,
+        "auxiliaryName": null,
+        "subjectDetail": "A鏉愭枡-瑙勬牸鍨嬪彿001",
+        "createUser": "admin",
+        "createTime": "2026-06-08T10:00:00",
+        "updateUser": "admin",
+        "updateTime": "2026-06-08T10:00:00",
+        "deptId": 1
+      },
+      {
+        "id": 2,
+        "voucherId": 1,
+        "rowNo": 2,
+        "subjectCode": "1002",
+        "subjectName": "閾惰瀛樻",
+        "summary": "鏀粯璐ф",
+        "debit": 0.00,
+        "credit": 5000.00,
+        "auxiliaryType": null,
+        "auxiliaryId": null,
+        "auxiliaryName": null,
+        "subjectDetail": "宸ュ晢閾惰-鍩烘湰鎴�",
+        "createUser": "admin",
+        "createTime": "2026-06-08T10:00:00",
+        "updateUser": "admin",
+        "updateTime": "2026-06-08T10:00:00",
+        "deptId": 1
+      }
+    ]
+  }
+}
+```
+
+**鍙樻洿璇存槑**锛�
+- `entries` 鏁扮粍涓瘡鏉″垎褰曞璞℃柊澧� `subjectDetail` 瀛楁銆�
+- 鍓嶇鍦ㄨ鎯呴〉鍒嗗綍鍒楄〃涓鍔犱竴鍒楁樉绀� `subjectDetail`銆�
+
+---
+
+### 3.4 绉戠洰鏄庣粏璐︽煡璇� /financial/ledger/detail
+
+**Method**: `GET`
+
+**Query 鍙傛暟**锛�
+- `subjectCode`锛堝繀濉級
+- `auxiliaryType`锛堝彲閫夛級
+- `auxiliaryId`锛堝彲閫夛級
+- `startMonth`锛圷YYY-MM锛�
+- `endMonth`锛圷YYY-MM锛�
+
+**Response** 绀轰緥锛�
+
+```json
+{
+  "code": 200,
+  "msg": "鎿嶄綔鎴愬姛",
+  "data": [
+    {
+      "rowType": "opening",
+      "date": "2026-06-01",
+      "voucherNo": "-",
+      "summary": "鏈熷垵浣欓",
+      "debit": 0.00,
+      "credit": 0.00,
+      "direction": "鍊�",
+      "balance": 10000.00
+    },
+    {
+      "rowType": "entry",
+      "date": "2026-06-08",
+      "voucherNo": "璁�-0001",
+      "summary": "閲囪喘A鏉愭枡",
+      "subjectDetail": "A鏉愭枡-瑙勬牸鍨嬪彿001",
+      "debit": 5000.00,
+      "credit": 0.00,
+      "direction": "鍊�",
+      "balance": 15000.00
+    },
+    {
+      "rowType": "monthly_total",
+      "date": "2026-06-30",
+      "voucherNo": "-",
+      "summary": "鏈湀鍚堣",
+      "debit": 5000.00,
+      "credit": 0.00,
+      "direction": "鍊�",
+      "balance": 15000.00
+    },
+    {
+      "rowType": "yearly_total",
+      "date": "2026-06-30",
+      "voucherNo": "-",
+      "summary": "鍚堣",
+      "debit": 5000.00,
+      "credit": 0.00,
+      "direction": "鍊�",
+      "balance": 15000.00
+    }
+  ]
+}
+```
+
+**鍙樻洿璇存槑**锛�
+- 褰� `rowType` 涓� `entry`锛堝垎褰曡锛夋椂锛屾柊澧� `subjectDetail` 瀛楁杩斿洖銆�
+- `opening`銆乣monthly_total`銆乣yearly_total` 琛屼笉杩斿洖 `subjectDetail`锛堝瓧娈典负 `null`锛孞SON 涓笉鏄剧ず锛夈��
+- 鍓嶇鍦ㄧ鐩槑缁嗚处琛ㄦ牸涓紝鍒嗗綍琛屽鍔犱竴鍒楁樉绀� `subjectDetail`銆�
+
+---
+
+## 4. 鍓嶇淇敼鐐规眹鎬�
+
+| 椤甸潰/缁勪欢 | 淇敼鍐呭 |
+|-----------|----------|
+| 鍑瘉鏂板椤� | 鍒嗗綍琛ㄦ牸姣忚澧炲姞銆岀鐩槑缁嗐�嶈緭鍏ユ锛屽瓧娈靛悕 `subjectDetail` |
+| 鍑瘉淇敼椤� | 鍚屼笂锛屼笖闇�浠庤鎯呮帴鍙e洖鏄� `subjectDetail` 鍊� |
+| 鍑瘉璇︽儏椤� | 鍒嗗綍鍒楄〃澧炲姞銆岀鐩槑缁嗐�嶅睍绀哄垪 |
+| 绉戠洰鏄庣粏璐﹂〉 | 鍒嗗綍琛岋紙`rowType=entry`锛夊鍔犮�岀鐩槑缁嗐�嶅睍绀哄垪锛涙湡鍒�/鍚堣琛屼笉鏄剧ず |
+
+---
+
+## 5. 瀛楁璇存槑
+
+| 瀛楁鍚� | 绫诲瀷 | 蹇呭~ | 璇存槑 |
+|--------|------|------|------|
+| `subjectDetail` | String | 鍚� | 绉戠洰鏄庣粏锛岀敤鎴疯嚜瀹氫箟杈撳叆锛屾渶澶ч暱搴� 255 瀛楃 |
+
+---
+
+## 6. 娉ㄦ剰浜嬮」
+
+1. `subjectDetail` 涓哄彲閫夊瓧娈碉紝涓嶄紶鎴栦紶绌哄瓧绗︿覆鍧囧彲姝e父淇濆瓨銆�
+2. 鍑瘉杩囪处/浣滃簾鐘舵�佷笉褰卞搷 `subjectDetail` 鐨勮鍙栵紝宸茶繃璐﹀嚟璇佺殑 `subjectDetail` 浠嶅彲鍦ㄦ槑缁嗚处涓煡璇€��
+3. 绉戠洰鏄庣粏璐︿腑浠� `rowType=entry` 鐨勮鎼哄甫 `subjectDetail`锛屽叾浣欏悎璁�/鏈熷垵琛屼笉鎼哄甫璇ュ瓧娈点��
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerEntryRecordVo.java b/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerEntryRecordVo.java
index 846b350..2a38de2 100644
--- a/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerEntryRecordVo.java
+++ b/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerEntryRecordVo.java
@@ -37,6 +37,11 @@
     private BigDecimal credit;
 
     /**
+     * 绉戠洰鏄庣粏銆�
+     */
+    private String subjectDetail;
+
+    /**
      * 琛屽彿锛堟帓搴忓瓧娈碉級銆�
      */
     private Integer rowNo;
diff --git a/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerRowVo.java b/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerRowVo.java
index da4131f..acb75fd 100644
--- a/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerRowVo.java
+++ b/src/main/java/com/ruoyi/account/bean/vo/financial/FinLedgerRowVo.java
@@ -34,6 +34,11 @@
     private String summary;
 
     /**
+     * 绉戠洰鏄庣粏銆�
+     */
+    private String subjectDetail;
+
+    /**
      * 鍊熸柟閲戦銆�
      */
     private BigDecimal debit;
diff --git a/src/main/java/com/ruoyi/account/pojo/financial/FinVoucherEntry.java b/src/main/java/com/ruoyi/account/pojo/financial/FinVoucherEntry.java
index 44ac56e..c13397b 100644
--- a/src/main/java/com/ruoyi/account/pojo/financial/FinVoucherEntry.java
+++ b/src/main/java/com/ruoyi/account/pojo/financial/FinVoucherEntry.java
@@ -63,6 +63,9 @@
     @ApiModelProperty("杈呭姪鏍哥畻瀵硅薄鍚嶇О")
     private String auxiliaryName;
 
+    @ApiModelProperty("绉戠洰鏄庣粏")
+    private String subjectDetail;
+
     @ApiModelProperty("鍒涘缓浜�")
     @TableField(fill = FieldFill.INSERT)
     private String createUser;
diff --git a/src/main/java/com/ruoyi/account/service/impl/financial/FinLedgerServiceImpl.java b/src/main/java/com/ruoyi/account/service/impl/financial/FinLedgerServiceImpl.java
index a36b241..aaf0aa8 100644
--- a/src/main/java/com/ruoyi/account/service/impl/financial/FinLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/account/service/impl/financial/FinLedgerServiceImpl.java
@@ -101,6 +101,7 @@
                 row.setDate(entry.getVoucherDate());
                 row.setVoucherNo(entry.getVoucherNo());
                 row.setSummary(StringUtils.isNotEmpty(entry.getSummary()) ? entry.getSummary() : "");
+                row.setSubjectDetail(entry.getSubjectDetail());
                 row.setDebit(debit);
                 row.setCredit(credit);
                 row.setBalance(money(runningBalance));
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index f1a5bf9..e5e2f9a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -74,7 +74,7 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:mysql://localhost:3306/product-inventory-management-new-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://localhost:3306/product-inventory-management-bdpro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
         password: 123456
       # 浠庡簱鏁版嵁婧�
diff --git a/src/main/resources/mapper/account/financial/FinVoucherEntryMapper.xml b/src/main/resources/mapper/account/financial/FinVoucherEntryMapper.xml
index 56633ba..74298b1 100644
--- a/src/main/resources/mapper/account/financial/FinVoucherEntryMapper.xml
+++ b/src/main/resources/mapper/account/financial/FinVoucherEntryMapper.xml
@@ -14,6 +14,7 @@
         <result column="auxiliary_type" property="auxiliaryType"/>
         <result column="auxiliary_id" property="auxiliaryId"/>
         <result column="auxiliary_name" property="auxiliaryName"/>
+        <result column="subject_detail" property="subjectDetail"/>
         <result column="create_user" property="createUser"/>
         <result column="create_time" property="createTime"/>
         <result column="update_user" property="updateUser"/>
@@ -31,6 +32,7 @@
             END AS summary,
             e.debit AS debit,
             e.credit AS credit,
+            e.subject_detail AS subjectDetail,
             e.row_no AS rowNo
         FROM fin_voucher_entry e
         INNER JOIN fin_voucher v ON e.voucher_id = v.id
@@ -57,6 +59,7 @@
             END AS summary,
             e.debit AS debit,
             e.credit AS credit,
+            e.subject_detail AS subjectDetail,
             e.row_no AS rowNo
         FROM fin_voucher_entry e
         INNER JOIN fin_voucher v ON e.voucher_id = v.id

--
Gitblit v1.9.3