| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | private BigDecimal income; |
| | | |
| | | @ApiModelProperty(value = "下单时间") |
| | | @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss" ,timezone="GMT+8") |
| | | @DateTimeFormat |
| | | private LocalDateTime orderTime; |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | 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.*; |
| | |
| | | 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())); |
| | | } |
| | | } |
| | |
| | | </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 |