zouyu
22 小时以前 ba473638c25efe295a039ff4dd9585bbd8dd4474
销售退货:调整新增和编辑时计算可退货数量的逻辑
已修改5个文件
37 ■■■■ 文件已修改
src/main/java/com/ruoyi/procurementrecord/bean/dto/ReturnSaleProductDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/bean/vo/ShippingProductVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/ShippingInfoMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/bean/dto/ReturnSaleProductDto.java
@@ -35,4 +35,7 @@
    @Schema(description = "发货出库数量")
    private BigDecimal stockOutNum;
    @Schema(description = "待处理退货数量")
    private BigDecimal pendingReturnNum;
}
src/main/java/com/ruoyi/procurementrecord/bean/vo/ShippingProductVo.java
@@ -40,4 +40,7 @@
    @Schema(description = "含税单价")
    private BigDecimal taxInclusiveUnitPrice;
    @Schema(description = "待处理退货数量")
    private BigDecimal pendingReturnNum;
}
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -33,6 +33,7 @@
import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @author :yys
@@ -122,6 +123,14 @@
        byId.setSettler(SecurityUtils.getLoginUser().getNickName());
        byId.setRefundAmount(totalRefund);
        updateById(byId);
        //更新退货产品列表的状态
        List<ReturnSaleProduct> updateList = list.stream().map(m -> {
            ReturnSaleProduct returnSaleProduct = new ReturnSaleProduct();
            returnSaleProduct.setId(m.getId());
            returnSaleProduct.setStatus(1);
            return returnSaleProduct;
        }).collect(Collectors.toList());
        returnSaleProductService.updateBatchById(updateList);
        // 3. 更新销售台账的实际合同金额
        if (byId.getShippingId() != null) {
src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
@@ -19,8 +19,9 @@
            sor.outbound_batches,
            sor.stock_out_num,
            sor.batch_no,
               GREATEST(sor.stock_out_num - COALESCE(rs1.total_return_num1, 0), 0) AS un_quantity,
               COALESCE(rs.total_return_num, 0)                             AS total_return_num
            GREATEST( sor.stock_out_num - COALESCE ( rs.total_return_num, 0 ), 0 ) AS un_quantity,
            COALESCE ( rs.pending_return_num, 0 ) AS pending_return_num ,
            COALESCE ( rs.return_num, 0 ) AS total_return_num
        FROM return_sale_product rsp
                 LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
                 LEFT JOIN shipping_info si ON si.id = rm.shipping_id
@@ -30,15 +31,11 @@
                left join product_model pm on slp.product_model_id = pm.id
                  LEFT JOIN product p on pm.product_id = p.id
                 LEFT JOIN (SELECT stock_out_record_id,
                                   SUM(num) AS total_return_num
                                   SUM(num) AS total_return_num,
                                   SUM( CASE WHEN return_management_id =#{returnManagementId} AND STATUS = 0 THEN num ELSE 0 END ) AS pending_return_num ,
                                   SUM( CASE WHEN STATUS = 1 THEN num ELSE 0 END ) AS return_num
                            FROM return_sale_product
                            WHERE 1 = 1 and return_management_id = #{returnManagementId}
                            GROUP BY stock_out_record_id) rs ON rs.stock_out_record_id = sor.id
                 LEFT JOIN (SELECT stock_out_record_id,
                                   SUM(num) AS total_return_num1
                            FROM return_sale_product
                            WHERE 1 = 1
                            GROUP BY stock_out_record_id) rs1 ON rs1.stock_out_record_id = sor.id
        where rm.id =#{returnManagementId}
    </select>
    <select id="listReturnSaleProduct" resultType="com.ruoyi.procurementrecord.bean.dto.ReturnSaleProductDto">
src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -78,7 +78,8 @@
            sor.batch_no,
            slp.tax_inclusive_unit_price,
            GREATEST(sor.stock_out_num - COALESCE(rs.total_return_num, 0), 0) AS un_quantity,
            COALESCE(rs.total_return_num, 0) AS total_return_num
            COALESCE(rs.return_num, 0) AS total_return_num,
            COALESCE(rs.pending_return_num, 0) AS pending_return_num
        FROM shipping_info si
        LEFT JOIN shipping_product_detail spd ON spd.shipping_info_id = si.id
        LEFT JOIN stock_out_record sor ON sor.record_id = si.id and sor.record_type = '13'
@@ -86,7 +87,9 @@
        LEFT JOIN (
        SELECT
        stock_out_record_id,
        SUM(num) AS total_return_num
        SUM(num) AS total_return_num,
        SUM( CASE WHEN rsp.STATUS = 0 THEN rsp.num ELSE 0 END ) AS pending_return_num ,
        SUM( CASE WHEN rsp.STATUS = 1 THEN rsp.num ELSE 0 END ) AS return_num
        FROM return_sale_product rsp
        left join return_management rm on rm.id = rsp.return_management_id
        left join shipping_info si on si.id = rm.shipping_id