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