From 48594bf1b5e60bee258116ca7ce36c2834477ba6 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 09 六月 2026 10:47:51 +0800
Subject: [PATCH] feat(stock): 添加出入库记录的合同号查询功能
---
src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java | 5 ++
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 4 ++
src/main/resources/mapper/stock/StockOutRecordMapper.xml | 22 ++++++++++-
src/main/java/com/ruoyi/stock/execl/StockInRecordExportData.java | 2 +
src/main/resources/mapper/stock/StockInRecordMapper.xml | 14 ++++++-
src/main/resources/mapper/approve/ApproveProcessMapper.xml | 16 +++++++
src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java | 5 ++
src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java | 2 +
8 files changed, 65 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index 411ab11..6f629d8 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -181,6 +181,10 @@
@ApiModelProperty(value = "閿�鍞彴璐d")
private Long salesLedgerId;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "閲囪喘鍗曞彿")
+ private String purchaseOrderNo;
+
@ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
@TableField(fill = FieldFill.INSERT)
diff --git a/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java b/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
index 9f47fd6..45db4f9 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
@@ -26,4 +26,9 @@
//鐜板瓨閲�
private String currentStock;
+ /**
+ * 閲囪喘鍚堝悓鍙凤紙鏌ヨ鍙傛暟锛�
+ */
+ private String purchaseContractNumber;
+
}
diff --git a/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java b/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java
index f32ffa6..b016e4f 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java
@@ -35,4 +35,9 @@
* 鍚堟牸鑷畾涔夊嚭搴擄細澶囨敞
*/
private String sourceNo;
+
+ /**
+ * 閿�鍞崟鍙凤紙鏌ヨ鍙傛暟锛�
+ */
+ private String salesContractNo;
}
diff --git a/src/main/java/com/ruoyi/stock/execl/StockInRecordExportData.java b/src/main/java/com/ruoyi/stock/execl/StockInRecordExportData.java
index d705110..df79d4a 100644
--- a/src/main/java/com/ruoyi/stock/execl/StockInRecordExportData.java
+++ b/src/main/java/com/ruoyi/stock/execl/StockInRecordExportData.java
@@ -26,6 +26,8 @@
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
+ @Excel(name = "閲囪喘鍚堝悓鍙�")
+ private String purchaseContractNumber;
@Excel(isExport = false)
private String type;
diff --git a/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java b/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java
index b0f45a3..8e660d3 100644
--- a/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java
+++ b/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java
@@ -21,6 +21,8 @@
private String recordType;
@Excel(name = "鏉ユ簮鍗曞彿")
private String sourceNo;
+ @Excel(name = "閿�鍞崟鍙�")
+ private String salesContractNo;
@Excel(name = "鍑哄簱鏁伴噺")
private String stockInNum;
@Excel(name = "鍑哄簱鏃堕棿")
diff --git a/src/main/resources/mapper/approve/ApproveProcessMapper.xml b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
index 070a228..6d92a2a 100644
--- a/src/main/resources/mapper/approve/ApproveProcessMapper.xml
+++ b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
@@ -44,7 +44,21 @@
and ap.approve_reason like concat('%閿�鍞崟鍙�:',#{req.salesContractNo},'%')
</if>
</if>
- <if test="req.approveType == null or req.approveType != 7">
+ <if test="req.approveType != null and req.approveType == 5">
+ select ap.* from approve_process ap
+ where ap.approve_delete = 0
+ <if test="req.approveId != null and req.approveId != ''">
+ and ap.approve_id like concat('%',#{req.approveId},'%')
+ </if>
+ <if test="req.approveStatus != null or req.approveStatus == 0">
+ and ap.approve_status = #{req.approveStatus}
+ </if>
+ and ap.approve_type = #{req.approveType}
+ <if test="req.purchaseOrderNo != null and req.purchaseOrderNo != ''">
+ and ap.approve_reason like concat('%',#{req.purchaseOrderNo},'%')
+ </if>
+ </if>
+ <if test="req.approveType == null or (req.approveType != 7 and req.approveType != 5)">
select * from approve_process ap where ap.approve_delete = 0
<if test="req.approveId != null and req.approveId != ''">
and ap.approve_id like concat('%',#{req.approveId},'%')
diff --git a/src/main/resources/mapper/stock/StockInRecordMapper.xml b/src/main/resources/mapper/stock/StockInRecordMapper.xml
index d5c3f38..04df5e5 100644
--- a/src/main/resources/mapper/stock/StockInRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -8,11 +8,13 @@
p.product_name as product_name,
pm.model,
pm.unit,
- u.nick_name as createBy
+ u.nick_name as createBy,
+ pl.purchase_contract_number as purchaseContractNumber
FROM stock_in_record as sir
LEFT JOIN product_model as pm on sir.product_model_id = pm.id
LEFT JOIN product as p on pm.product_id = p.id
LEFT JOIN sys_user as u on sir.create_user = u.user_id
+ LEFT JOIN purchase_ledger as pl on sir.record_id = pl.id and sir.record_type = '7'
<where>
<if test="params.timeStr != null and params.timeStr != ''">
and sir.create_time like concat('%',#{params.timeStr},'%')
@@ -25,6 +27,9 @@
</if>
<if test="params.recordType != null and params.recordType != ''">
and sir.record_type = #{params.recordType}
+ </if>
+ <if test="params.purchaseContractNumber != null and params.purchaseContractNumber != ''">
+ and pl.purchase_contract_number like concat('%',#{params.purchaseContractNumber},'%')
</if>
</where>
order by sir.id desc
@@ -35,11 +40,13 @@
p.product_name as product_name,
pm.model,
pm.unit,
- u.nick_name as createBy
+ u.nick_name as createBy,
+ pl.purchase_contract_number as purchaseContractNumber
FROM stock_in_record as sir
LEFT JOIN product_model as pm on sir.product_model_id = pm.id
LEFT JOIN product as p on pm.product_id = p.id
LEFT JOIN sys_user as u on sir.create_user = u.user_id
+ LEFT JOIN purchase_ledger as pl on sir.record_id = pl.id and sir.record_type = '7'
<where>
<if test="params.timeStr != null and params.timeStr != ''">
and sir.create_time like concat('%',#{params.timeStr},'%')
@@ -53,6 +60,9 @@
<if test="params.recordType != null and params.recordType != ''">
and sir.record_type = #{params.recordType}
</if>
+ <if test="params.purchaseContractNumber != null and params.purchaseContractNumber != ''">
+ and pl.purchase_contract_number like concat('%',#{params.purchaseContractNumber},'%')
+ </if>
</where>
order by sir.id desc
</select>
diff --git a/src/main/resources/mapper/stock/StockOutRecordMapper.xml b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
index 4b0233d..7970cd3 100644
--- a/src/main/resources/mapper/stock/StockOutRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
@@ -32,7 +32,12 @@
WHEN '1' THEN sor.remark
WHEN '10' THEN sor.remark
ELSE NULL
- END as sourceNo
+ END as sourceNo,
+ CASE sor.record_type
+ WHEN '8' THEN sl.sales_contract_no
+ WHEN '13' THEN sl2.sales_contract_no
+ ELSE NULL
+ END as salesContractNo
FROM stock_out_record as sor
LEFT JOIN product_model as pm on sor.product_model_id = pm.id
LEFT JOIN product as p on pm.product_id = p.id
@@ -54,6 +59,10 @@
</if>
<if test="params.recordType != null and params.recordType != ''">
and sor.record_type = #{params.recordType}
+ </if>
+ <if test="params.salesContractNo != null and params.salesContractNo != ''">
+ and ((sor.record_type = '8' and sl.sales_contract_no like concat('%',#{params.salesContractNo},'%'))
+ or (sor.record_type = '13' and sl2.sales_contract_no like concat('%',#{params.salesContractNo},'%')))
</if>
</where>
order by sor.id desc
@@ -73,7 +82,12 @@
WHEN '1' THEN sor.remark
WHEN '10' THEN sor.remark
ELSE NULL
- END as sourceNo
+ END as sourceNo,
+ CASE sor.record_type
+ WHEN '8' THEN sl.sales_contract_no
+ WHEN '13' THEN sl2.sales_contract_no
+ ELSE NULL
+ END as salesContractNo
FROM stock_out_record as sor
LEFT JOIN product_model as pm on sor.product_model_id = pm.id
LEFT JOIN product as p on pm.product_id = p.id
@@ -96,6 +110,10 @@
<if test="params.recordType != null and params.recordType != ''">
and sor.record_type = #{params.recordType}
</if>
+ <if test="params.salesContractNo != null and params.salesContractNo != ''">
+ and ((sor.record_type = '8' and sl.sales_contract_no like concat('%',#{params.salesContractNo},'%'))
+ or (sor.record_type = '13' and sl2.sales_contract_no like concat('%',#{params.salesContractNo},'%')))
+ </if>
</where>
order by sor.id desc
</select>
--
Gitblit v1.9.3