maven
4 天以前 db807b8e9464af69217f813240e55d9e9b3b4cdb
Merge remote-tracking branch 'origin/dev_New' into dev_New
已添加21个文件
已修改10个文件
696 ■■■■■ 文件已修改
src/main/java/com/ruoyi/account/controller/SalesReceiptReturnController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/controller/SalesRefundAmountOrderController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/dto/SalesReceiptReturnDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/dto/SalesRefundAmountOrderDto.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/mapper/SalesReceiptReturnMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/mapper/SalesRefundAmountOrderMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/pojo/SalesReceiptReturn.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/pojo/SalesRefundAmountOrder.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/service/SalesReceiptReturnService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/service/SalesRefundAmountOrderService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/service/impl/SalesReceiptReturnServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/service/impl/SalesRefundAmountOrderServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/ReturnSaleProductDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/mapper/ReturnSaleProductMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/ReturnSaleProductService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnSaleProductServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrderProductsController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderProductsDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/mapper/PurchaseReturnOrderProductsMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/pojo/PurchaseReturnOrderProducts.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrderProductsService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrdersService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrderProductsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/account/SalesReceiptReturnMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/account/SalesRefundAmountOrderMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/purchase/PurchaseReturnOrderProductsMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/account/controller/SalesReceiptReturnController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.ruoyi.account.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.account.dto.SalesReceiptReturnDto;
import com.ruoyi.account.pojo.SalesReceiptReturn;
import com.ruoyi.account.service.SalesReceiptReturnService;
import com.ruoyi.account.service.impl.SalesReceiptReturnServiceImpl;
import com.ruoyi.framework.web.domain.R;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * æ”¶æ¬¾é€€è´§è¡¨ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 03:34:18
 */
@RestController
@RequestMapping("/salesReceiptReturn")
public class SalesReceiptReturnController {
    @Autowired
    private  SalesReceiptReturnService salesReceiptReturnService;
    @GetMapping("/page")
    @ApiOperation("收款退货表-分页查询")
    public R<IPage<SalesReceiptReturnDto>> page(SalesReceiptReturnDto salesReceiptReturnDto) {
        return R.ok(salesReceiptReturnService.pageSalesReceiptReturnDto(salesReceiptReturnDto));
    }
}
src/main/java/com/ruoyi/account/controller/SalesRefundAmountOrderController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.ruoyi.account.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.dto.SalesRefundAmountOrderDto;
import com.ruoyi.account.pojo.SalesRefundAmountOrder;
import com.ruoyi.account.service.SalesRefundAmountOrderService;
import com.ruoyi.framework.web.domain.R;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
 * é”€å”®ç®¡ç†--退款单 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-07 10:16:47
 */
@RestController
@RequestMapping("/salesRefundAmountOrder")
public class SalesRefundAmountOrderController {
    @Autowired
    private SalesRefundAmountOrderService salesRefundAmountOrderService;
    @GetMapping("/page")
    public R pageSalesRefundAmountOrderDto(Page<SalesRefundAmountOrderDto> page, SalesRefundAmountOrderDto salesRefundAmountOrder) {
        return R.ok(salesRefundAmountOrderService.pageSalesRefundAmountOrderDto(page, salesRefundAmountOrder));
    }
    @ApiOperation("处理")
    @PostMapping("/dispose")
    public R dispose( SalesRefundAmountOrderDto salesRefundAmountOrderId) {
        return R.ok(salesRefundAmountOrderService.dispose(salesRefundAmountOrderId));
    }
}
src/main/java/com/ruoyi/account/dto/SalesReceiptReturnDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.ruoyi.account.dto;
import com.ruoyi.account.pojo.SalesReceiptReturn;
import lombok.Data;
@Data
public class SalesReceiptReturnDto extends SalesReceiptReturn {
}
src/main/java/com/ruoyi/account/dto/SalesRefundAmountOrderDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.account.dto;
import com.ruoyi.account.pojo.SalesRefundAmountOrder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SalesRefundAmountOrderDto extends SalesRefundAmountOrder {
    @ApiModelProperty("退货单号")
    private String returnManagementNo;
    @ApiModelProperty("客户名称")
    private String customerName;
    @ApiModelProperty("销售单号")
    private String salesContractNo;
    @ApiModelProperty("创建人名称")
    private String createUserName;
}
src/main/java/com/ruoyi/account/mapper/SalesReceiptReturnMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.account.mapper;
import com.ruoyi.account.pojo.SalesReceiptReturn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * æ”¶æ¬¾é€€è´§è¡¨ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 03:34:18
 */
@Mapper
public interface SalesReceiptReturnMapper extends BaseMapper<SalesReceiptReturn> {
}
src/main/java/com/ruoyi/account/mapper/SalesRefundAmountOrderMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.account.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.dto.SalesRefundAmountOrderDto;
import com.ruoyi.account.pojo.SalesRefundAmountOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * é”€å”®ç®¡ç†--退款单 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-07 10:16:47
 */
@Mapper
public interface SalesRefundAmountOrderMapper extends BaseMapper<SalesRefundAmountOrder> {
    IPage<SalesRefundAmountOrderDto> pageSalesRefundAmountOrderDto(Page<SalesRefundAmountOrderDto> page,@Param("ew") SalesRefundAmountOrderDto salesRefundAmountOrder);
}
src/main/java/com/ruoyi/account/pojo/SalesReceiptReturn.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.ruoyi.account.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * æ”¶æ¬¾é€€è´§è¡¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 03:34:18
 */
@Getter
@Setter
@TableName("sales_receipt_return")
@ApiModel(value = "SalesReceiptReturn对象", description = "收款退货表")
public class SalesReceiptReturn implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键 ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("退款单号")
    private String refundId;
    @ApiModelProperty("付款账号")
    private String paymentAccount;
    @ApiModelProperty("付款账号名称")
    private String paymentAccountName;
    @ApiModelProperty("付款方式")
    private Byte paymentMethod;
    @ApiModelProperty("实际付款金额")
    private BigDecimal actualAmount;
    @ApiModelProperty("手续费")
    private BigDecimal fee;
    @ApiModelProperty("交易号")
    private String transactionNo;
    @ApiModelProperty("优惠金额")
    private BigDecimal discountAmount;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("创建者")
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;
}
src/main/java/com/ruoyi/account/pojo/SalesRefundAmountOrder.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.ruoyi.account.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
/**
 * <p>
 * é”€å”®ç®¡ç†--退款单
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-07 10:16:47
 */
@Getter
@Setter
@TableName("sales_refund_amount_order")
@ApiModel(value = "SalesRefundAmountOrder对象", description = "销售管理--退款单")
public class SalesRefundAmountOrder implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("退货单号id")
    private Long returnManagementId;
    @ApiModelProperty("状态")
    private Integer status;
    @ApiModelProperty("应退款金额")
    private BigDecimal refundAmount;
    @ApiModelProperty("已退款金额")
    private BigDecimal refundedAmount;
    @ApiModelProperty("未退款金额")
    private BigDecimal notRefundedAmount;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    @ApiModelProperty("更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("创建人id")
    private Long createUserId;
    @ApiModelProperty("更新人id")
    private Long updateUserId;
}
src/main/java/com/ruoyi/account/service/SalesReceiptReturnService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.account.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.account.dto.SalesReceiptReturnDto;
import com.ruoyi.account.pojo.SalesReceiptReturn;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * æ”¶æ¬¾é€€è´§è¡¨ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 03:34:18
 */
public interface SalesReceiptReturnService extends IService<SalesReceiptReturn> {
    IPage<SalesReceiptReturnDto> pageSalesReceiptReturnDto(SalesReceiptReturnDto salesReceiptReturnDto);
}
src/main/java/com/ruoyi/account/service/SalesRefundAmountOrderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.account.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.dto.SalesRefundAmountOrderDto;
import com.ruoyi.account.pojo.SalesRefundAmountOrder;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * é”€å”®ç®¡ç†--退款单 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-07 10:16:47
 */
public interface SalesRefundAmountOrderService extends IService<SalesRefundAmountOrder> {
    IPage<SalesRefundAmountOrderDto> pageSalesRefundAmountOrderDto(Page<SalesRefundAmountOrderDto> page, SalesRefundAmountOrderDto salesRefundAmountOrder);
    Boolean addSalesRefundAmountOrderDto(SalesRefundAmountOrderDto salesRefundAmountOrder);
    Boolean dispose(SalesRefundAmountOrderDto salesRefundAmountOrder);
}
src/main/java/com/ruoyi/account/service/impl/SalesReceiptReturnServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.ruoyi.account.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.account.dto.SalesReceiptReturnDto;
import com.ruoyi.account.pojo.SalesReceiptReturn;
import com.ruoyi.account.mapper.SalesReceiptReturnMapper;
import com.ruoyi.account.service.SalesReceiptReturnService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * æ”¶æ¬¾é€€è´§è¡¨ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 03:34:18
 */
@Service
public class SalesReceiptReturnServiceImpl extends ServiceImpl<SalesReceiptReturnMapper, SalesReceiptReturn> implements SalesReceiptReturnService {
    @Override
    public IPage<SalesReceiptReturnDto> pageSalesReceiptReturnDto(SalesReceiptReturnDto salesReceiptReturnDto) {
        return null;
    }
}
src/main/java/com/ruoyi/account/service/impl/SalesRefundAmountOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.ruoyi.account.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.dto.SalesRefundAmountOrderDto;
import com.ruoyi.account.pojo.SalesRefundAmountOrder;
import com.ruoyi.account.mapper.SalesRefundAmountOrderMapper;
import com.ruoyi.account.service.SalesRefundAmountOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * <p>
 * é”€å”®ç®¡ç†--退款单 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-07 10:16:47
 */
@Service
public class SalesRefundAmountOrderServiceImpl extends ServiceImpl<SalesRefundAmountOrderMapper, SalesRefundAmountOrder> implements SalesRefundAmountOrderService {
    @Autowired
    private SalesRefundAmountOrderMapper salesRefundAmountOrderMapper;
    @Override
    public IPage<SalesRefundAmountOrderDto> pageSalesRefundAmountOrderDto(Page<SalesRefundAmountOrderDto> page, SalesRefundAmountOrderDto salesRefundAmountOrder) {
        return salesRefundAmountOrderMapper.pageSalesRefundAmountOrderDto(page, salesRefundAmountOrder);
    }
    @Override
    public Boolean addSalesRefundAmountOrderDto(SalesRefundAmountOrderDto salesRefundAmountOrder) {
        return this.save(salesRefundAmountOrder);
    }
    @Override
    public Boolean dispose(SalesRefundAmountOrderDto salesRefundAmountOrder) {
        return null;
    }
}
src/main/java/com/ruoyi/procurementrecord/dto/ReturnSaleProductDto.java
@@ -18,4 +18,10 @@
    private BigDecimal unQuantity;
    private BigDecimal totalReturnNum;
    // é€€è´§æ€»ä»·
    private BigDecimal price;
    // é€€è´§æ€»ä»·
    private BigDecimal taxInclusiveUnitPrice;
}
src/main/java/com/ruoyi/procurementrecord/mapper/ReturnSaleProductMapper.java
@@ -20,4 +20,6 @@
public interface ReturnSaleProductMapper extends BaseMapper<ReturnSaleProduct> {
    List<ReturnSaleProductDto> listReturnSaleProductDto(@Param("returnManagementId") Long returnManagementId);
    List<ReturnSaleProductDto> listReturnSaleProduct(@Param("returnManagementId") Long returnManagementId);
}
src/main/java/com/ruoyi/procurementrecord/service/ReturnSaleProductService.java
@@ -17,4 +17,6 @@
public interface ReturnSaleProductService extends IService<ReturnSaleProduct> {
    List<ReturnSaleProductDto> listReturnSaleProductDto(Long returnManagementId);
    List<ReturnSaleProductDto> listReturnSaleProduct(Long returnManagementId);
}
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -1,10 +1,16 @@
package com.ruoyi.procurementrecord.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.pojo.SalesRefundAmountOrder;
import com.ruoyi.account.service.SalesRefundAmountOrderService;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.procurementrecord.dto.ReturnManagementDto;
import com.ruoyi.procurementrecord.dto.ReturnSaleProductDto;
import com.ruoyi.procurementrecord.mapper.ReturnManagementMapper;
import com.ruoyi.procurementrecord.pojo.ReturnManagement;
import com.ruoyi.procurementrecord.pojo.ReturnSaleProduct;
@@ -22,6 +28,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -42,6 +49,8 @@
    private ShippingInfoService shippingInfoService;
    @Autowired
    private SalesLedgerMapper salesLedgerMapper;
    @Autowired
    private SalesRefundAmountOrderService salesRefundAmountOrderService;
    @Override
    public IPage<ReturnManagementDto> listPage(Page page, ReturnManagementDto returnManagement) {
@@ -91,8 +100,22 @@
    @Override
    public boolean handle(Long returnManagementId) {
        ReturnManagement byId = this.getById(returnManagementId);
        List<ReturnSaleProductDto> list = returnSaleProductService.listReturnSaleProduct(returnManagementId);
        byId.setStatus(1);
        updateById(byId);
        SalesRefundAmountOrderDto salesRefundAmountOrder = new SalesRefundAmountOrderDto();
        salesRefundAmountOrder.setReturnManagementId(returnManagementId);
        salesRefundAmountOrder.setStatus(0);
        salesRefundAmountOrder.setCreateTime(byId.getCreateTime());
        salesRefundAmountOrder.setCreateUserId(SecurityUtils.getUserId());
        BigDecimal bigDecimal = new BigDecimal(0);
        for (ReturnSaleProductDto returnSaleProduct : list) {
            bigDecimal = bigDecimal.add(returnSaleProduct.getPrice());
            salesRefundAmountOrder.setRefundedAmount(new BigDecimal(0));
        }
        salesRefundAmountOrder.setRefundAmount(bigDecimal);
        salesRefundAmountOrder.setNotRefundedAmount(salesRefundAmountOrder.getRefundedAmount());
        salesRefundAmountOrderService.addSalesRefundAmountOrderDto(salesRefundAmountOrder);
        return true;
    }
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnSaleProductServiceImpl.java
@@ -29,4 +29,9 @@
        return returnSaleProductMapper.listReturnSaleProductDto(returnManagementId);
    }
    @Override
    public List<ReturnSaleProductDto> listReturnSaleProduct(Long returnManagementId) {
        return returnSaleProductMapper.listReturnSaleProduct(returnManagementId);
    }
}
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrderProductsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.purchase.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 01:37:44
 */
@RestController
@RequestMapping("/purchaseReturnOrderProducts")
public class PurchaseReturnOrderProductsController {
}
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
@@ -42,6 +42,6 @@
        if (purchaseReturnOrderDto.getIsDefaultNo()) {
            purchaseReturnOrderDto.setNo(OrderUtils.countTodayByCreateTime(purchaseReturnOrdersMapper, "CGTL"));
        }
        return AjaxResult.success(purchaseReturnOrdersService.save(purchaseReturnOrderDto));
        return AjaxResult.success(purchaseReturnOrdersService.add(purchaseReturnOrderDto));
    }
}
src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderDto.java
@@ -1,10 +1,16 @@
package com.ruoyi.purchase.dto;
import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts;
import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
import lombok.Data;
import java.util.List;
@Data
public class PurchaseReturnOrderDto extends PurchaseReturnOrders {
    // æ˜¯å¦ä½¿ç”¨ç³»ç»Ÿå•号
    private Boolean isDefaultNo;
    private List<PurchaseReturnOrderProductsDto> purchaseReturnOrderProductsDtos;
}
src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderProductsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.ruoyi.purchase.dto;
import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts;
import lombok.Data;
@Data
public class PurchaseReturnOrderProductsDto extends PurchaseReturnOrderProducts {
    private String productName;
    private String model;
    private String unit;
}
src/main/java/com/ruoyi/purchase/mapper/PurchaseReturnOrderProductsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.purchase.mapper;
import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 01:37:44
 */
@Mapper
public interface PurchaseReturnOrderProductsMapper extends BaseMapper<PurchaseReturnOrderProducts> {
}
src/main/java/com/ruoyi/purchase/pojo/PurchaseReturnOrderProducts.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.ruoyi.purchase.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 01:37:44
 */
@Getter
@Setter
@TableName("purchase_return_order_products")
@ApiModel(value = "PurchaseReturnOrderProducts对象", description = "")
public class PurchaseReturnOrderProducts implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("退货单id")
    private Long purchaseReturnOrderId;
    @ApiModelProperty("采购产品id")
    private Long salesLedgerProductId;
    @ApiModelProperty("录入时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("退货数量")
    private BigDecimal num;
}
src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrderProductsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.ruoyi.purchase.service;
import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 01:37:44
 */
public interface PurchaseReturnOrderProductsService extends IService<PurchaseReturnOrderProducts> {
}
src/main/java/com/ruoyi/purchase/service/PurchaseReturnOrdersService.java
@@ -17,4 +17,6 @@
 */
public interface PurchaseReturnOrdersService extends IService<PurchaseReturnOrders> {
    IPage<PurchaseReturnOrderVo> listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto);
    Boolean add(PurchaseReturnOrderDto purchaseReturnOrderDto);
}
src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrderProductsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.purchase.service.impl;
import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts;
import com.ruoyi.purchase.mapper.PurchaseReturnOrderProductsMapper;
import com.ruoyi.purchase.service.PurchaseReturnOrderProductsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-03-09 01:37:44
 */
@Service
public class PurchaseReturnOrderProductsServiceImpl extends ServiceImpl<PurchaseReturnOrderProductsMapper, PurchaseReturnOrderProducts> implements PurchaseReturnOrderProductsService {
}
src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
@@ -3,6 +3,8 @@
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.dto.PurchaseReturnOrderProductsDto;
import com.ruoyi.purchase.mapper.PurchaseReturnOrderProductsMapper;
import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
import com.ruoyi.purchase.service.PurchaseReturnOrdersService;
@@ -10,6 +12,7 @@
import com.ruoyi.purchase.vo.PurchaseReturnOrderVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * <p>
@@ -23,9 +26,24 @@
public class PurchaseReturnOrdersServiceImpl extends ServiceImpl<PurchaseReturnOrdersMapper, PurchaseReturnOrders> implements PurchaseReturnOrdersService {
    @Autowired
    private PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
    @Autowired
    private PurchaseReturnOrderProductsMapper purchaseReturnOrderProductsMapper;
    @Override
    public IPage<PurchaseReturnOrderVo> listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto) {
        return purchaseReturnOrdersMapper.listPage(page, purchaseReturnOrderDto);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean add(PurchaseReturnOrderDto purchaseReturnOrderDto) {
        this.save(purchaseReturnOrderDto);
        if (purchaseReturnOrderDto.getPurchaseReturnOrderProductsDtos().isEmpty()) {
            for (PurchaseReturnOrderProductsDto purchaseReturnOrderProductsDto :purchaseReturnOrderDto.getPurchaseReturnOrderProductsDtos()) {
                purchaseReturnOrderProductsDto.setPurchaseReturnOrderId(purchaseReturnOrderDto.getId());
                purchaseReturnOrderProductsMapper.insert(purchaseReturnOrderProductsDto);
            }
        }
        return true;
    }
}
src/main/resources/mapper/account/SalesReceiptReturnMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.account.mapper.SalesReceiptReturnMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.account.pojo.SalesReceiptReturn">
        <id column="id" property="id" />
        <result column="refund_id" property="refundId" />
        <result column="payment_account" property="paymentAccount" />
        <result column="payment_account_name" property="paymentAccountName" />
        <result column="payment_method" property="paymentMethod" />
        <result column="actual_amount" property="actualAmount" />
        <result column="fee" property="fee" />
        <result column="transaction_no" property="transactionNo" />
        <result column="discount_amount" property="discountAmount" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
    </resultMap>
</mapper>
src/main/resources/mapper/account/SalesRefundAmountOrderMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.account.mapper.SalesRefundAmountOrderMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.account.pojo.SalesRefundAmountOrder">
        <id column="id" property="id" />
        <result column="return_management_id" property="returnManagementId" />
        <result column="status" property="status" />
        <result column="refund_amount" property="refundAmount" />
        <result column="refunded_amount" property="refundedAmount" />
        <result column="not_refunded_amount" property="notRefundedAmount" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user_id" property="createUserId" />
        <result column="update_user_id" property="updateUserId" />
    </resultMap>
    <select id="pageSalesRefundAmountOrderDto" resultType="com.ruoyi.account.dto.SalesRefundAmountOrderDto">
        select sl.sales_contract_no,
        sl.customer_contract_no,
        slp.specification_model,
        slp.product_category as product_name,
        slp.unit,
        sl.customer_name,
        rm.return_no as return_management_no,
        srao.*
        from sales_refund_amount_order srao
        left join return_management rm on srao.return_management_id = rm.id
        left join return_sale_product rs on rm.id = rs.return_management_id
        left join sales_ledger_product slp on rs.return_sale_ledger_product_id = slp.id
        left join sales_ledger sl on slp.sales_ledger_id = sl.id
        <where>
            <if test="ew.salesContractNo != null and ew.salesContractNo !=''">
                and sl.sales_contract_no like concat('%',#{ew.salesContractNo},'%')
            </if>
            <if test="ew.returnManagementNo != null and ew.returnManagementNo !=''">
                and rm.return_no like concat('%',#{ew.returnManagementNo},'%')
            </if>
        </where>
    </select>
</mapper>
src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
@@ -28,5 +28,11 @@
                            GROUP BY return_sale_ledger_product_id) rs ON rs.return_sale_ledger_product_id = slp.id
        where rm.id =#{returnManagementId}
    </select>
    <select id="listReturnSaleProduct" resultType="com.ruoyi.procurementrecord.dto.ReturnSaleProductDto">
        select rsp.*,slp.tax_inclusive_unit_price ,slp.tax_inclusive_total_price*rsp.num as price
        from return_sale_product rsp
                 left join sales_ledger_product slp on slp.id = rsp.return_sale_ledger_product_id
        where rsp.return_management_id = #{returnManagementId}
    </select>
</mapper>
src/main/resources/mapper/purchase/PurchaseReturnOrderProductsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.purchase.mapper.PurchaseReturnOrderProductsMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts">
        <id column="id" property="id" />
        <result column="purchase_return_order_id" property="purchaseReturnOrderId" />
        <result column="sales_ledger_product_id" property="salesLedgerProductId" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="num" property="num" />
    </resultMap>
</mapper>