Cui Zhi Feng
2024-08-25 5cf3e3979d922b855c667afb9f91da7d68a5d057
我的配送单结算明细 调整
已修改4个文件
78 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/dto/response/payment/DeliveryOrderItemSettlementDTO.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/supplier/DeliverySupplierController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/payment/DeliveryOrderItemMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/payment/DeliveryOrderItemSettlementDTO.java
@@ -1,18 +1,17 @@
package com.mzl.flower.dto.response.payment;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mzl.flower.base.AbstractTransDTO;
import com.mzl.flower.base.annotation.DictTrans;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
public class DeliveryOrderItemSettlementDTO extends AbstractTransDTO {
    @ApiModelProperty(value = "订单商品id")
    private String orderItemId;
    @ApiModelProperty(value = "商品名称")
    private String flowerName;
@@ -41,8 +40,23 @@
    private String statusBackend;
    private String statusBackendStr;
    @ApiModelProperty(value = "质检扣款")
    @ApiModelProperty(value = "降级数量")
    private Integer checkNum;
    @ApiModelProperty(value = "降级扣款")
    private BigDecimal checkFee;
    @ApiModelProperty(value = "补货数量")
    private Integer replaceNum;
    @ApiModelProperty(value = "补货扣款")
    private BigDecimal replaceFee;
    @ApiModelProperty(value = "缺货数量")
    private Integer lackNum;
    @ApiModelProperty(value = "缺货扣款")
    private BigDecimal lackFee;
    @ApiModelProperty(value = "集货站运费")
    private BigDecimal stationFee;
@@ -60,7 +74,5 @@
    private BigDecimal income;
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss" ,timezone="GMT+8")
    @DateTimeFormat
    private LocalDateTime orderTime;
}
src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
@@ -171,25 +171,6 @@
        if(ls != null && ls.size() > 0){
            for(DeliveryOrderItemSettlementDTO dto : ls){
                dto.setTotalAmount(dto.getPrice().multiply(new BigDecimal(dto.getNum())));
                if(StringUtils.isNotEmpty(dto.getStatus())) {
                    Double rate = dto.getServiceFeeRate();
                    BigDecimal serviceFee = new BigDecimal(0);
                    if(rate != null) {
                        serviceFee = dto.getTotalAmount().multiply(new BigDecimal(rate))
                                .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
                        dto.setServiceFee(serviceFee);
                    }
                    BigDecimal income = dto.getTotalAmount().subtract(dto.getCheckFee())
                            .subtract(dto.getSalesFee()).subtract(dto.getStationFee())
                            .subtract(serviceFee);//结算金额
                    if (income.doubleValue() < 0) {
                        income = new BigDecimal(0);
                    }
                    dto.setIncome(income);
                }
            }
        }
src/main/java/com/mzl/flower/web/supplier/DeliverySupplierController.java
@@ -4,6 +4,7 @@
import com.mzl.flower.base.BaseController;
import com.mzl.flower.base.R;
import com.mzl.flower.base.ReturnDataDTO;
import com.mzl.flower.constant.Constants;
import com.mzl.flower.dto.request.payment.DeliveryOrderArriveDTO;
import com.mzl.flower.dto.request.payment.DeliveryOrderQueryDTO;
import com.mzl.flower.dto.response.payment.*;
@@ -136,4 +137,32 @@
        return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectSettlementListByTime(page, day));
    }
    @GetMapping("/mine/list/check/info/reduce")
    @ApiOperation(value = "降级操作详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query")
    })
    public ResponseEntity<ReturnDataDTO<OrderItemCheckReduceDTO>> getReduceCheck(String orderItemId){
        return returnData(R.SUCCESS.getCode(), deliveryOrderService.getReduceCheck(orderItemId));
    }
    @GetMapping("/mine/list/check/info/replace")
    @ApiOperation(value = "补货操作详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query")
    })
    public ResponseEntity<ReturnDataDTO<OrderItemCheckNumDTO>> getReplaceCheck(String orderItemId){
        return returnData(R.SUCCESS.getCode(), deliveryOrderService.getOtherCheck(orderItemId
                , Constants.CHECK_TYPE.replace.name()));
    }
    @GetMapping("/mine/list/check/info/lack")
    @ApiOperation(value = "缺货操作详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query")
    })
    public ResponseEntity<ReturnDataDTO<OrderItemCheckNumDTO>> getLackCheck(String orderItemId){
        return returnData(R.SUCCESS.getCode(), deliveryOrderService.getOtherCheck(orderItemId
                , Constants.CHECK_TYPE.lack.name()));
    }
}
src/main/resources/mapper/payment/DeliveryOrderItemMapper.xml
@@ -39,13 +39,15 @@
    </select>
    <select id="selectSettlementListByTime" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderItemSettlementDTO">
        SELECT oi.flower_name, oi.flower_level, oi.num, oi.supplier_price price
        , s.`status`, sd.check_fee, sd.station_fee, sd.sales_fee, s.service_fee_rate
        SELECT ois.order_item_id, oi.flower_name, oi.flower_level, oi.num, oi.supplier_price price , s.`status`
        , ois.check_num, ois.check_fee, ois.replace_num, ois.replace_fee, ois.lack_num, ois.lack_fee_supplier lackFee
        , ois.station_fee, ois.sales_fee_supplier salesFee, ois.service_fee_rate, ois.service_fee, ois.income_supplier
        , o.status_backend, o.create_time orderTime
        FROM t_delivery_order_item doi
        join t_delivery_order q on q.id = doi.delivery_id
        join t_order o on o.id = q.order_id
        join t_order_item oi on oi.id = doi.order_item_id
        left join t_order_item_settlement ois on ois.order_item_id = oi.id
        left join t_order_settlement_detail sd on sd.order_item_id = oi.id
        left join t_order_settlement s on sd.settlement_id = s.id
        WHERE q.deleted = 0 and doi.deleted = 0