From 0378df1167bff05e209a22ad91f6d01a6e316902 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 06 三月 2026 18:03:00 +0800
Subject: [PATCH] 增加采购退货单列表和新增接口

---
 src/main/java/com/ruoyi/purchase/pojo/PurchaseReturnOrders.java                    |   10 +++++
 src/main/java/com/ruoyi/purchase/vo/PurchaseReturnOrderVo.java                     |   17 ++++++++
 doc/20260306_create_purchase_return_orders.sql                                     |    4 ++
 src/main/java/com/ruoyi/purchase/mapper/PurchaseReturnOrdersMapper.java            |    6 ++
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java |   11 +++++
 src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrdersService.java          |    6 ++
 src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderDto.java                   |   10 +++++
 src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java    |   33 +++++++++++++++-
 src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml                  |   17 ++++++++
 9 files changed, 110 insertions(+), 4 deletions(-)

diff --git a/doc/20260306_craete_purchase_return_orders.sql b/doc/20260306_create_purchase_return_orders.sql
similarity index 87%
rename from doc/20260306_craete_purchase_return_orders.sql
rename to doc/20260306_create_purchase_return_orders.sql
index 6e31d78..84c700b 100644
--- a/doc/20260306_craete_purchase_return_orders.sql
+++ b/doc/20260306_create_purchase_return_orders.sql
@@ -12,9 +12,13 @@
     prepared_user_id   bigint  not null default 0 comment '鍒跺崟浜篿d',
     return_user_id     bigint  not null default 0 comment '閫�鏂欎汉id',
     purchase_ledger_id bigint  not null default 0 comment '閲囪喘璁㈠崟id',
+    total_discount_amount decimal(10, 2) null comment '鏁村崟鎶樻墸棰�',
+    total_discount_rate   decimal(10, 2) null comment '鏁村崟鎶樻墸鐜�',
+    total_amount decimal(10,2) null comment '鎴愪氦閲戦',
     remark             text null comment '澶囨敞',
     create_time        datetime null comment '褰曞叆鏃堕棿',
     update_time        datetime null comment '鏇存柊鏃堕棿',
+    index              idx_supplier_id (supplier_id),
     index              idx_purchase_ledger_id (purchase_ledger_id),
     index              idx_project_id (project_id)
 );
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
index 42363af..df60a34 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
@@ -1,7 +1,16 @@
 package com.ruoyi.purchase.controller;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.projectManagement.mapper.RolesMapper;
+import com.ruoyi.purchase.dto.PurchaseReturnOrderDto;
+import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
+import com.ruoyi.purchase.service.PurchaseReturnOrdersService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -14,5 +23,25 @@
 @RestController
 @RequestMapping("/purchaseReturnOrders")
 public class PurchaseReturnOrdersController {
+    @Autowired
+    private PurchaseReturnOrdersService purchaseReturnOrdersService;
 
+    @Autowired
+    private PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
+
+
+    @GetMapping("/listPage")
+    public AjaxResult listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto) {
+        return AjaxResult.success(purchaseReturnOrdersService.listPage(page, purchaseReturnOrderDto));
+    }
+
+    // 鏂板
+    @Log(title = "閲囪喘閫�璐у崟", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody PurchaseReturnOrderDto purchaseReturnOrderDto) throws Exception {
+        if (purchaseReturnOrderDto.getIsDefaultNo()) {
+            purchaseReturnOrderDto.setNo(OrderUtils.countTodayByCreateTime(purchaseReturnOrdersMapper, "CGTL"));
+        }
+        return AjaxResult.success(purchaseReturnOrdersService.save(purchaseReturnOrderDto));
+    }
 }
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderDto.java
new file mode 100644
index 0000000..2de8642
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderDto.java
@@ -0,0 +1,10 @@
+package com.ruoyi.purchase.dto;
+
+import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
+import lombok.Data;
+
+@Data
+public class PurchaseReturnOrderDto extends PurchaseReturnOrders {
+    // 鏄惁浣跨敤绯荤粺鍗曞彿
+    private Boolean isDefaultNo;
+}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/PurchaseReturnOrdersMapper.java b/src/main/java/com/ruoyi/purchase/mapper/PurchaseReturnOrdersMapper.java
index d2c1747..f0e0227 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/PurchaseReturnOrdersMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/PurchaseReturnOrdersMapper.java
@@ -1,8 +1,12 @@
 package com.ruoyi.purchase.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.purchase.vo.PurchaseReturnOrderVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -14,5 +18,5 @@
  */
 @Mapper
 public interface PurchaseReturnOrdersMapper extends BaseMapper<PurchaseReturnOrders> {
-
+    IPage<PurchaseReturnOrderVo> listPage(Page page, @Param("params") PurchaseReturnOrders purchaseReturnOrder);
 }
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseReturnOrders.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseReturnOrders.java
index c2004c3..821347d 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseReturnOrders.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseReturnOrders.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -61,6 +62,15 @@
     @ApiModelProperty("澶囨敞")
     private String remark;
 
+    @ApiModelProperty("'鏁村崟鎶樻墸棰�'")
+    private BigDecimal totalDiscountAmount;
+
+    @ApiModelProperty("'鏁村崟鎶樻墸鐜�'")
+    private BigDecimal totalDiscountRate;
+
+    @ApiModelProperty("'鎴愪氦閲戦'")
+    private BigDecimal totalAmount;
+
     @ApiModelProperty("褰曞叆鏃堕棿")
     @TableField(fill = FieldFill.INSERT)
     private LocalDateTime createTime;
diff --git a/src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrdersService.java b/src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrdersService.java
index 6f165e1..74a451f 100644
--- a/src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrdersService.java
+++ b/src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrdersService.java
@@ -1,7 +1,11 @@
 package com.ruoyi.purchase.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.purchase.dto.PurchaseReturnOrderDto;
 import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.purchase.vo.PurchaseReturnOrderVo;
 
 /**
  * <p>
@@ -12,5 +16,5 @@
  * @since 2026-03-06 11:44:38
  */
 public interface PurchaseReturnOrdersService extends IService<PurchaseReturnOrders> {
-
+    IPage<PurchaseReturnOrderVo> listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto);
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
index f052d45..c084a68 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
@@ -1,9 +1,14 @@
 package com.ruoyi.purchase.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.purchase.dto.PurchaseReturnOrderDto;
 import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
 import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
 import com.ruoyi.purchase.service.PurchaseReturnOrdersService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.purchase.vo.PurchaseReturnOrderVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -16,5 +21,11 @@
  */
 @Service
 public class PurchaseReturnOrdersServiceImpl extends ServiceImpl<PurchaseReturnOrdersMapper, PurchaseReturnOrders> implements PurchaseReturnOrdersService {
+    @Autowired
+    private PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
 
+    @Override
+    public IPage<PurchaseReturnOrderVo> listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto) {
+        return purchaseReturnOrdersMapper.listPage(page, purchaseReturnOrderDto);
+    }
 }
diff --git a/src/main/java/com/ruoyi/purchase/vo/PurchaseReturnOrderVo.java b/src/main/java/com/ruoyi/purchase/vo/PurchaseReturnOrderVo.java
new file mode 100644
index 0000000..8e19f8c
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/vo/PurchaseReturnOrderVo.java
@@ -0,0 +1,17 @@
+package com.ruoyi.purchase.vo;
+
+import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
+
+public class PurchaseReturnOrderVo extends PurchaseReturnOrders {
+    //渚涘簲鍟嗗悕绉�
+    private String supplierName;
+
+    // 閲囪喘鍚堝悓鍙�
+    private String purchaseContractNumber;
+
+    //閫�鏂欎汉濮撳悕
+    private String returnUserName;
+
+     //鍒跺崟浜哄鍚�
+    private String createUserName;
+}
diff --git a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
index 8d23060..8976a3a 100644
--- a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
@@ -19,4 +19,21 @@
         <result column="update_time" property="updateTime" />
     </resultMap>
 
+    <select id="listPage" resultType="com.ruoyi.purchase.vo.PurchaseReturnOrderVo">
+        SELECT
+        pro.*,
+        sm.supplier_name as supplierName,
+        pl.purchase_contract_number as purchaseContractNumber,
+        su.user_name as returnUserName,
+        su1.user_name as createUserName
+        FROM purchase_return_orders pro
+        LEFT JOIN supplier_manage sm ON pro.supplier_id = sm.id
+        LEFT JOIN purchase_ledger pl ON pl.id = pro.purchase_ledger_id
+        LEFT JOIN sys_user su ON su.user_id = pro.return_user_id
+        LEFT JOIN sys_user su1 ON su1.user_id = pro.prepared_user_id
+        where 1=1
+        <if test="params.no != null and params.no != '' ">
+            AND pro.no LIKE CONCAT('%',#{params.no},'%')
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.9.3