From 58603ef5f8eed9b5e4c13ccb8b02fdeed0999577 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 13 三月 2026 13:45:30 +0800
Subject: [PATCH] yys  销售退货退款修改

---
 src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java |   36 +++++++++++++++++
 src/main/java/com/ruoyi/procurementrecord/pojo/ReturnManagement.java                    |    7 +++
 src/main/java/com/ruoyi/common/enums/StockInUnQualifiedRecordTypeEnum.java              |    3 +
 src/main/resources/mapper/sales/ShippingInfoMapper.xml                                  |    2 
 src/main/java/com/ruoyi/procurementrecord/pojo/ReturnSaleProduct.java                   |   16 ++++++++
 src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java                |    3 +
 6 files changed, 63 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java b/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java
index 20059d5..df0d011 100644
--- a/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java
@@ -11,7 +11,8 @@
     PRODUCTION_REPORT_STOCK_IN("2", "鐢熶骇鎶ュ伐-鍏ュ簱"),
     PURCHASE_STOCK_IN("7", "閲囪喘-鍏ュ簱"),
     QUALITYINSPECT_STOCK_IN("6", "璐ㄦ-鍚堟牸鍏ュ簱"),
-    DEFECTIVE_PASS("11", "涓嶅悎鏍�-璁╂鏀捐");
+    DEFECTIVE_PASS("11", "涓嶅悎鏍�-璁╂鏀捐"),
+    RETURN_HE_IN("14", "閿�鍞��璐�-鍚堟牸鍏ュ簱");
 
 
     private final String code;
diff --git a/src/main/java/com/ruoyi/common/enums/StockInUnQualifiedRecordTypeEnum.java b/src/main/java/com/ruoyi/common/enums/StockInUnQualifiedRecordTypeEnum.java
index d221461..a03e6bd 100644
--- a/src/main/java/com/ruoyi/common/enums/StockInUnQualifiedRecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/common/enums/StockInUnQualifiedRecordTypeEnum.java
@@ -10,7 +10,8 @@
     DEFECTIVE_SCRAP("4", "涓嶅悎鏍煎鐞�-鎶ュ簾"),
     PRODUCTION_SCRAP("5", "鐢熶骇鎶ュ伐-鎶ュ簾"),
     CUSTOMIZATION_UNSTOCK_IN("9", "涓嶅悎鏍艰嚜瀹氫箟鍏ュ簱"),
-    QUALITYINSPECT_UNSTOCK_IN("12", "璐ㄦ-涓嶅悎鏍煎叆搴�");
+    QUALITYINSPECT_UNSTOCK_IN("12", "璐ㄦ-涓嶅悎鏍煎叆搴�"),
+    RETURN_UNSTOCK_IN("15", "閿�鍞��璐�-涓嶅悎鏍煎叆搴�");
 
 
     private final String code;
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnManagement.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnManagement.java
index f061625..bae0caa 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnManagement.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnManagement.java
@@ -7,6 +7,7 @@
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Date;
 
@@ -44,6 +45,12 @@
     @ApiModelProperty("鍒跺崟浜�")
     private String maker;
 
+    @ApiModelProperty("閫�璐у師鍥�")
+    private String returnReason;
+
+    @ApiModelProperty("閫�娆炬�婚")
+    private BigDecimal refundAmount;
+
     @ApiModelProperty("鍒跺崟鏃堕棿")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnSaleProduct.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnSaleProduct.java
index 41ab99c..9a47197 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnSaleProduct.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ReturnSaleProduct.java
@@ -1,6 +1,7 @@
 package com.ruoyi.procurementrecord.pojo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
@@ -26,6 +27,9 @@
 
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty("浜у搧瑙勬牸id")
+    private Long productModelId;
+
     @ApiModelProperty("涓婚敭id")
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
@@ -39,6 +43,18 @@
     @ApiModelProperty("閫�璐т骇鍝佹暟閲�")
     private BigDecimal num;
 
+    @ApiModelProperty("閫�璐т骇鍝佸崟浠�")
+    private BigDecimal price;
+
+    @ApiModelProperty("閫�璐т骇鍝侀噾棰�")
+    private BigDecimal amount;
+
     @ApiModelProperty("閫�璐х姸鎬� 0 鏈��鍥� 1宸查��璐�")
     private Integer status;
+
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+
+    @ApiModelProperty("鏄惁鏈夎川閲忛棶棰�(1-鏄� 2-鍚�)")
+    private Integer isQuality;
 }
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
index 6eb90db..d2b6142 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -5,8 +5,12 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.dto.SalesRefundAmountOrderDto;
+import com.ruoyi.account.mapper.AccountExpenseMapper;
+import com.ruoyi.account.pojo.AccountExpense;
 import com.ruoyi.account.pojo.SalesRefundAmountOrder;
 import com.ruoyi.account.service.SalesRefundAmountOrderService;
+import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
 import com.ruoyi.common.utils.OrderUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.procurementrecord.dto.ReturnManagementDto;
@@ -16,6 +20,7 @@
 import com.ruoyi.procurementrecord.pojo.ReturnSaleProduct;
 import com.ruoyi.procurementrecord.service.ReturnManagementService;
 import com.ruoyi.procurementrecord.service.ReturnSaleProductService;
+import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.sales.dto.SalesLedgerDto;
 import com.ruoyi.sales.dto.SalesLedgerProductDto;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
@@ -30,6 +35,7 @@
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -51,6 +57,12 @@
     private SalesLedgerMapper salesLedgerMapper;
     @Autowired
     private SalesRefundAmountOrderService salesRefundAmountOrderService;
+
+    @Autowired
+    private StockUtils stockUtils;
+
+    @Autowired
+    private AccountExpenseMapper accountExpenseMapper;
 
     @Override
     public IPage<ReturnManagementDto> listPage(Page page, ReturnManagementDto returnManagement) {
@@ -112,10 +124,32 @@
         for (ReturnSaleProductDto returnSaleProduct : list) {
             bigDecimal = bigDecimal.add(returnSaleProduct.getPrice());
             salesRefundAmountOrder.setRefundedAmount(new BigDecimal(0));
+            // 鏄惁鏈夎川閲忛棶棰�
+            if (returnSaleProduct.getIsQuality() == 1) {
+                // 鏈夎川閲忛棶棰橈紝鍏ヤ笉鍚堟牸搴�
+                stockUtils.addUnStock(returnSaleProduct.getProductModelId(),returnSaleProduct.getNum(), StockInUnQualifiedRecordTypeEnum.RETURN_UNSTOCK_IN.getCode(),returnSaleProduct.getId());
+            }else{
+                // 鏃犺川閲忛棶棰橈紝鍏ュ悎鏍煎簱
+                stockUtils.addStock(returnSaleProduct.getProductModelId(),returnSaleProduct.getNum(), StockInQualifiedRecordTypeEnum.RETURN_HE_IN.getCode(),returnSaleProduct.getId());
+            }
         }
         salesRefundAmountOrder.setRefundAmount(bigDecimal);
         salesRefundAmountOrder.setNotRefundedAmount(salesRefundAmountOrder.getRefundedAmount());
-        salesRefundAmountOrderService.addSalesRefundAmountOrderDto(salesRefundAmountOrder);
+        // 鍒嗘壒閫�娆�
+//        salesRefundAmountOrderService.addSalesRefundAmountOrderDto(salesRefundAmountOrder);
+        // 鍜岃储鍔¤仈鍔紝鏂板鏀嚭
+        AccountExpense accountExpense = new AccountExpense();
+        accountExpense.setBusinessType(3);
+        accountExpense.setExpenseMoney(byId.getRefundAmount());
+        accountExpense.setBusinessId(byId.getId());
+        accountExpense.setExpenseDate(new Date());
+        accountExpense.setExpenseMethod("3");
+        accountExpense.setExpenseType("5");
+        accountExpense.setExpenseDescribed("閿�鍞��璐ч��娆�");
+        accountExpense.setNote(byId.getReturnReason());
+        accountExpense.setInputUser(SecurityUtils.getLoginUser().getNickName());
+        accountExpense.setInputTime(new Date());
+        accountExpenseMapper.insert(accountExpense);
         return true;
     }
 
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 955a89f..82c67b2 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -84,6 +84,6 @@
     <select id="getShippingInfoByCustomerName" resultType="com.ruoyi.sales.pojo.ShippingInfo">
         select * from shipping_info si
         left join sales_ledger sl on si.sales_ledger_id = sl.id
-        where sl.customer_name = #{customerName}
+        where si.status = '宸插彂璐�' and sl.customer_name = #{customerName}
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3