From e96fa2622043188f3e7eeee5ddc4d203c9fa5494 Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期五, 13 十二月 2024 09:03:59 +0800 Subject: [PATCH] 1.花农报表调整 2.订单列表:异常订单 3.钱包增加体现状态查询 --- src/main/java/com/mzl/flower/dto/response/report/OrderSupplierReportResultVO.java | 14 ++ src/main/java/com/mzl/flower/web/payment/OrderController.java | 6 + src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java | 2 src/main/java/com/mzl/flower/service/payment/OrderService.java | 30 +++++ src/main/resources/mapper/report/OrderReportMapper.xml | 20 ++ src/main/java/com/mzl/flower/dto/request/payment/OrderQueryDTO.java | 3 src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java | 5 src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java | 9 + src/main/resources/mapper/wallet/WalletWithdrawRecordMapper.xml | 4 src/main/resources/mapper/payment/OrderMapper.xml | 208 ++++++++++++++++++++++++++++++++++ 10 files changed, 296 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/mzl/flower/dto/request/payment/OrderQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/payment/OrderQueryDTO.java index 5d8126c..ee3f4a3 100644 --- a/src/main/java/com/mzl/flower/dto/request/payment/OrderQueryDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/payment/OrderQueryDTO.java @@ -91,4 +91,7 @@ @ApiModelProperty("服务区域-区") private String region; + + @ApiModelProperty("异常订单状态") + private String abnormalOrderStatus; } diff --git a/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java b/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java index c4e4a0e..d3c6ee7 100644 --- a/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java @@ -36,7 +36,10 @@ @DateTimeFormat(pattern="yyyy-MM-dd") private LocalDate approveEndDate; - @ApiModelProperty(value = "提现状态") + @ApiModelProperty(value = "审核状态") private String approveState; + @ApiModelProperty(value = "提现状态(提现中、提现成功、提现失败)") + private String withdrawState; + } diff --git a/src/main/java/com/mzl/flower/dto/response/report/OrderSupplierReportResultVO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderSupplierReportResultVO.java index 2414d2a..f48a48b 100644 --- a/src/main/java/com/mzl/flower/dto/response/report/OrderSupplierReportResultVO.java +++ b/src/main/java/com/mzl/flower/dto/response/report/OrderSupplierReportResultVO.java @@ -35,9 +35,23 @@ @ApiModelProperty("售后扣花农款") private BigDecimal salesFeeSupplier; + + @ApiModelProperty("总销售扎数") + private Integer orderNum; + @ApiModelProperty("实际销售扎数") private Integer realSaleNum; + @ApiModelProperty("缺货扎数") + private BigDecimal orderLackNum; + + @ApiModelProperty("降级扎数") + private BigDecimal orderReduceNum; + + @ApiModelProperty("补货扎数") + private BigDecimal orderReplaceNum; + + @ApiModelProperty("结算费用") private BigDecimal profitFeeAmount; diff --git a/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java b/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java index 461ee22..debf57f 100644 --- a/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java +++ b/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java @@ -77,4 +77,6 @@ List<Order> selectAllDateList(); void updatePaymentCreateDate(@Param("order") Order order); + + List<OrderStatusCountDTO> getAbnormalOrderStatusCount(@Param("condition") OrderQueryDTO dto); } diff --git a/src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java index 3ef65aa..a43f482 100644 --- a/src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java @@ -360,7 +360,8 @@ List<OrderSupplierReportResultVO> list = orderReportMapper.getOrderSupplierReport(supplierReportCalendarBO); String[] rowsName = new String[]{"序号","日期", "供应商ID", "供应商","花农底价" - , "降级扣款", "缺货扣款(缺货+补货)","售后扣花农款","实际销售扎数","结算费用","订单状态"}; + , "降级扣款", "缺货扣款(缺货+补货)","售后扣花农款", + "总销售扎数","实际销售扎数","缺货扎数","降级扎数","补货扎数","结算费用","订单状态"}; List<Object[]> dataList = new ArrayList<>(); int sn = 1; for (OrderSupplierReportResultVO o : list) { @@ -375,7 +376,13 @@ objs[a++] = o.getOrderCheckFee(); //降级扣款 objs[a++] = o.getOrderLackFeeSupplier();//缺货扣款 objs[a++] = o.getSalesFeeSupplier(); // 售后扣花农款 + + objs[a++] = o.getOrderNum(); // 总销售扎数 objs[a++] = o.getRealSaleNum(); // 实际销售扎数 + objs[a++] = o.getOrderLackNum(); // 缺货扎数 + objs[a++] = o.getOrderReduceNum(); // 降级扎数 + objs[a++] = o.getOrderReplaceNum(); // 补货扎数 + objs[a++] = o.getProfitFeeAmount(); // 结算费用 objs[a++] = o.getSettleStatus(); // 订单状态 dataList.add(objs); diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java index 69a4c85..2f92e46 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java @@ -1818,4 +1818,34 @@ orderMapper.updatePaymentCreateDate(order); }); } + + public List<OrderStatusCountDTO> getAbnormalOrderStatusCount(OrderQueryDTO dto) { + dto.setStartDate(parseLocalDateTime(dto.getStartDateStr(), true)); + dto.setEndDate(parseLocalDateTime(dto.getEndDateStr(), false)); + + dto.setCreateStartDate(parseLocalDateTime(dto.getCreateStartDateStr(), 17, 0, 0, -1)); + dto.setCreateEndDate(parseLocalDateTime(dto.getCreateEndDateStr(), 17, 0, 0, 0)); + + List<CodeValueDTO> ls = codeService.searchValue("ABNORMAL_ORDER_STATUS"); + List<OrderStatusCountDTO> ll = orderMapper.getAbnormalOrderStatusCount(dto); + Map<String, Integer> llMap = new HashMap<>(); + if (ll != null && ll.size() > 0) { + for (OrderStatusCountDTO c : ll) { + llMap.put(c.getValue(), c.getOrderCount()); + } + } + + List<OrderStatusCountDTO> rr = new ArrayList<>(); + for (CodeValueDTO c : ls) { + OrderStatusCountDTO r = new OrderStatusCountDTO(); + r.setValue(c.getValue()); + r.setLabel(c.getLabel()); + Integer count = llMap.get(r.getValue()); + r.setOrderCount(count == null ? 0 : count); + + rr.add(r); + } + + return rr; + } } diff --git a/src/main/java/com/mzl/flower/web/payment/OrderController.java b/src/main/java/com/mzl/flower/web/payment/OrderController.java index 476248d..b82944f 100644 --- a/src/main/java/com/mzl/flower/web/payment/OrderController.java +++ b/src/main/java/com/mzl/flower/web/payment/OrderController.java @@ -48,6 +48,12 @@ return returnData(R.SUCCESS.getCode(), orderService.getOrderStatusCount(dto)); } + @GetMapping("/abnormal/status/count") + @ApiOperation(value = "获取异常订单状态数量") + public ResponseEntity<ReturnDataDTO<List<OrderStatusCountDTO>>> getAbnormalOrderStatusCount(OrderQueryDTO dto){ + return returnData(R.SUCCESS.getCode(), orderService.getAbnormalOrderStatusCount(dto)); + } + @GetMapping("/list") @ApiOperation(value = "查询订单列表") public ResponseEntity<ReturnDataDTO<Page<OrderPlatformListDTO>>> selectOrderList(Page page, OrderQueryDTO dto){ diff --git a/src/main/resources/mapper/payment/OrderMapper.xml b/src/main/resources/mapper/payment/OrderMapper.xml index 66cd365..fc86d17 100644 --- a/src/main/resources/mapper/payment/OrderMapper.xml +++ b/src/main/resources/mapper/payment/OrderMapper.xml @@ -193,6 +193,54 @@ AND u.nick_name LIKE concat('%', #{condition.createName},'%') </if> + <if test="condition.abnormalOrderStatus != null and condition.abnormalOrderStatus != '' and condition.abnormalOrderStatus == 'UN_PROCESSED'"> + AND q.id in ( + select oi.order_id + from t_order_item oi + left join t_order o + on oi.order_id=o.id + where oi.status in ('abnormal','reduce','lack','back') + and o.transfer_id is null + and o.status in ('COLLECTION','SEND') + ) +-- AND exists( +-- select 1 from t_order_item oi +-- where oi.order_id = q.id +-- and oi.status in ('abnormal','reduce','lack','back') +-- ) +-- and q.transfer_id is null +-- and q.status in ('COLLECTION', 'SEND') + </if> + + <if test="condition.abnormalOrderStatus != null and condition.abnormalOrderStatus != '' and condition.abnormalOrderStatus == 'PROCESSED'"> + AND q.id in ( + select order_id from t_order_item oi where oi.status in ('abnormal','reduce','lack','back') + ) + and q.id not in( + select oi.order_id + from t_order_item oi + left join t_order o + on oi.order_id=o.id + where oi.status in ('abnormal','reduce','lack','back') + and o.transfer_id is null + and o.status in ('COLLECTION','SEND') + ) +-- AND exists( +-- select 1 from t_order_item oi +-- where oi.order_id = q.id +-- and oi.status in ('abnormal','reduce','lack','back') +-- ) +-- AND not exists( +-- select 1 from t_order_item oi +-- where oi.order_id = q.id +-- and oi.status in ('abnormal','reduce','lack','back') +-- and q.transfer_id is null +-- and q.status in ('COLLECTION', 'SEND') +-- ) + + + </if> + ORDER BY q.create_time desc, q.payment_time desc </select> @@ -429,6 +477,166 @@ FROM t_order t order by t.create_time desc </select> + <select id="getAbnormalOrderStatusCount" + resultType="com.mzl.flower.dto.response.payment.OrderStatusCountDTO"> + SELECT 'UN_PROCESSED' as value, count(1) orderCount + FROM t_order q + left join t_user u on q.create_by = u.id + WHERE q.deleted = 0 + <include refid="getAbnormalOrderStatusCount_condition"></include> + + AND q.id in ( + select oi.order_id + from t_order_item oi + left join t_order o + on oi.order_id=o.id + where oi.status in ('abnormal','reduce','lack','back') + and o.transfer_id is null + and o.status in ('COLLECTION','SEND') + ) + + union + + SELECT 'PROCESSED' as value, count(1) orderCount + FROM t_order q + left join t_user u on q.create_by = u.id + WHERE q.deleted = 0 + <include refid="getAbnormalOrderStatusCount_condition"></include> + AND q.id in ( + select order_id from t_order_item oi where oi.status in ('abnormal','reduce','lack','back') + ) + and q.id not in( + select oi.order_id + from t_order_item oi + left join t_order o + on oi.order_id=o.id + where oi.status in ('abnormal','reduce','lack','back') + and o.transfer_id is null + and o.status in ('COLLECTION','SEND') + ) + + </select> + + <select id="getAbnormalOrderStatusCount2" + resultType="com.mzl.flower.dto.response.payment.OrderStatusCountDTO"> + SELECT 'UN_PROCESSED' as value, count(1) orderCount + FROM t_order q + left join t_user u on q.create_by = u.id + WHERE q.deleted = 0 + <include refid="getAbnormalOrderStatusCount_condition"></include> + + AND exists( + select 1 from t_order_item oi + where oi.order_id = q.id + and oi.status in ('abnormal','reduce','lack','back') + ) + and q.transfer_id is null + and q.status in ('COLLECTION', 'SEND') + + union + + SELECT 'PROCESSED' as value, count(1) orderCount + FROM t_order q + left join t_user u on q.create_by = u.id + WHERE q.deleted = 0 + <include refid="getAbnormalOrderStatusCount_condition"></include> + AND exists( + select 1 from t_order_item oi + where oi.order_id = q.id + and oi.status in ('abnormal','reduce','lack','back') + ) + AND not exists( + select 1 from t_order_item oi + where oi.order_id = q.id + and oi.status in ('abnormal','reduce','lack','back') + and q.transfer_id is null + and q.status in ('COLLECTION', 'SEND') + ) + + </select> + + <sql id="getAbnormalOrderStatusCount_condition"> + <if test="condition.orderNo != null and condition.orderNo != ''"> + AND q.order_no LIKE concat('%', #{condition.orderNo},'%') + </if> + <if test="condition.customerAddress != null and condition.customerAddress != ''"> + AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%') + </if> + <if test="condition.customer != null and condition.customer != ''"> + AND (q.customer LIKE concat('%', #{condition.customer},'%') + or q.customer_tel LIKE concat('%', #{condition.customer},'%') + ) + </if> + <if test="condition.createBy != null and condition.createBy != ''"> + AND q.create_by = #{condition.createBy} + </if> + <if test="condition.status != null and condition.status != ''"> + AND q.status = #{condition.status} + </if> + <if test="condition.statusBackend != null and condition.statusBackend != ''"> + AND q.status_backend = #{condition.statusBackend} + </if> + <!-- <if test="condition.startDate != null">--> + <!-- AND q.payment_time >= #{condition.startDate}--> + <!-- </if>--> + <!-- <if test="condition.endDate != null">--> + <!-- AND q.payment_time <= #{condition.endDate}--> + <!-- </if>--> + <!-- <if test="condition.createStartDate != null">--> + <!-- AND q.create_time >= #{condition.createStartDate}--> + <!-- </if>--> + <!-- <if test="condition.createEndDate != null">--> + <!-- AND q.create_time <= #{condition.createEndDate}--> + <!-- </if>--> + <if test="condition.createStartDate != null"> + AND q.payment_time >= #{condition.createStartDate} + </if> + <if test="condition.createEndDate != null"> + AND q.payment_time < #{condition.createEndDate} + </if> + <if test="condition.partnerId != null"> + AND q.partner_id = #{condition.partnerId} + </if> + <if test="condition.partnerName != null and condition.partnerName != ''"> + AND q.partner_name LIKE concat('%', #{condition.partnerName},'%') + </if> +<!-- <if test="condition.levelDown != null and condition.levelDown != ''">--> +<!-- AND exists(--> +<!-- select 1 from t_order_item oi--> +<!-- where oi.order_id = q.id--> +<!-- and (oi.status = 'reduce' or oi.status = 'abnormal')--> +<!-- )--> +<!-- and q.transfer_id is null--> +<!-- and q.status in ('COLLECTION', 'SEND')--> +<!-- </if>--> + <if test="condition.billId != null and condition.billId != ''"> + AND q.bill_id = #{condition.billId} + </if> + <if test="condition.flowerName != null and condition.flowerName != ''"> + AND exists( + select 1 from t_order_item oi + where oi.order_id = q.id + and oi.flower_name LIKE concat('%', #{condition.flowerName},'%') + ) + </if> + + <if test="condition.warehouseLocationCode != null and condition.warehouseLocationCode != ''"> + AND q.warehouse_location_code LIKE concat('%', #{condition.warehouseLocationCode},'%') + </if> + <if test="condition.createName != null and condition.createName != ''"> + AND u.nick_name LIKE concat('%', #{condition.createName},'%') + </if> + <if test="condition.province != null and condition.province != ''"> + AND q.customer_province LIKE concat('%', #{condition.province},'%') + </if> + <if test="condition.city != null and condition.city != ''"> + AND q.customer_city LIKE concat('%', #{condition.city},'%') + </if> + <if test="condition.region != null and condition.region != ''"> + AND q.customer_region LIKE concat('%', #{condition.region},'%') + </if> + </sql> + <update id="updatePaymentCreateDate"> update t_order set payment_date_sta=#{order.paymentDate}, create_date_sta=#{order.createDate} where id=#{order.id} diff --git a/src/main/resources/mapper/report/OrderReportMapper.xml b/src/main/resources/mapper/report/OrderReportMapper.xml index b9b2d5c..affc3b6 100644 --- a/src/main/resources/mapper/report/OrderReportMapper.xml +++ b/src/main/resources/mapper/report/OrderReportMapper.xml @@ -267,6 +267,7 @@ <sql id="baseSql"> select t2.*, IFNULL(t2.order_check_fee+t2.order_lack_fee_supplier+t2.order_replace_fee,0) as order_check_total_fee, + IFNULL(t2.order_price_discount_amount+t2.order_coupon_amount_total,0) as order_discount_total_fee, IFNULL(t3.fee_supplier,0) as order_fee_supplier, IFNULL(t3.fee_partner,0) as order_fee_partner, IFNULL(t3.fee_platform,0) as order_fee_platform, @@ -480,7 +481,9 @@ sum( t1.replace_fee ) AS order_replace_fee, sum( t1.lack_fee_supplier ) AS order_lack_fee_supplier, sum( t1.num ) AS order_num, - sum( t1.lack_num ) AS order_lack_num + sum( t1.lack_num ) AS order_lack_num, + sum( t1.reduce_num ) AS order_reduce_num, + sum( t1.replace_num ) AS order_replace_num FROM ( SELECT @@ -496,8 +499,11 @@ IFNULL( oi.supplier_price, 0 ) * IFNULL( oi.num, 0 ) AS supplier_price_amount, IFNULL( ois.check_fee, 0 ) AS check_fee, IFNULL( ois.replace_fee, 0 ) AS replace_fee, - IFNULL( ois.lack_fee_supplier, 0 ) AS lack_fee_supplier, - IFNULL( (select oic.num from t_order_item_check oic where oic.order_item_id = oi.id and oic.type = 'lack' and oic.audit_status='AGREED'),0) as lack_num + IFNULL( ois.lack_fee_supplier, 0 ) AS lack_fee_supplier + + ,IFNULL( (select oic.num from t_order_item_check oic where oic.order_item_id = oi.id and oic.type = 'replace' and oic.audit_status='AGREED'),0) as replace_num + ,IFNULL( (select oic.num from t_order_item_check oic where oic.order_item_id = oi.id and oic.type = 'reduce' and oic.audit_status='AGREED'),0) as reduce_num + ,IFNULL( (select oic.num from t_order_item_check oic where oic.order_item_id = oi.id and oic.type = 'lack' and oic.audit_status='AGREED'),0) as lack_num FROM t_order o LEFT JOIN t_order_item oi ON oi.order_id = o.id @@ -531,7 +537,11 @@ sum(order_supplier_price_amount) order_supplier_price_amount, sum(order_check_fee) order_check_fee, sum(order_replace_fee) + sum(order_lack_fee_supplier) order_lack_fee_supplier, + sum(order_num) as order_num, sum(order_num)-sum(order_lack_num) as real_sale_num, + sum(order_lack_num) as order_lack_num, + sum(order_reduce_num ) AS order_reduce_num, + sum(order_replace_num ) AS order_replace_num, sum(sales_fee_supplier) sales_fee_supplier, sum(order_supplier_price_amount) - sum(order_check_fee) - sum(order_replace_fee) - sum(order_lack_fee_supplier) - sum(sales_fee_supplier) profitFeeAmount, case when COUNT(CASE WHEN status_backend ='COMPLETED' THEN NULL ELSE 1 END) = 0 Then '已完成' Else '进行中' end as settleStatus @@ -558,7 +568,11 @@ sum(order_supplier_price_amount) order_supplier_price_amount, sum(order_check_fee) order_check_fee, sum(order_replace_fee) + sum(order_lack_fee_supplier) order_lack_fee_supplier, + sum(order_num) as order_num, sum(order_num)-sum(order_lack_num) as real_sale_num, + sum(order_lack_num) as order_lack_num, + sum(order_reduce_num ) AS order_reduce_num, + sum(order_replace_num ) AS order_replace_num, sum(sales_fee_supplier) sales_fee_supplier, sum(order_supplier_price_amount) - sum(order_check_fee) - sum(order_replace_fee) - sum(order_lack_fee_supplier) - sum(sales_fee_supplier) profitFeeAmount, case when COUNT(CASE WHEN status_backend ='COMPLETED' THEN NULL ELSE 1 END) = 0 Then '已完成' Else '进行中' end as settleStatus diff --git a/src/main/resources/mapper/wallet/WalletWithdrawRecordMapper.xml b/src/main/resources/mapper/wallet/WalletWithdrawRecordMapper.xml index 1adafd6..fa6c5d8 100644 --- a/src/main/resources/mapper/wallet/WalletWithdrawRecordMapper.xml +++ b/src/main/resources/mapper/wallet/WalletWithdrawRecordMapper.xml @@ -34,6 +34,10 @@ <if test="dto.approveState != null and dto.approveState != ''"> and t.approve_state = #{dto.approveState} </if> + <if test="dto.withdrawState != null and dto.withdrawState != ''"> + and t.withdraw_state = #{dto.withdrawState} + </if> + <if test="dto.createStartDate!=null "> AND DATE_FORMAT(t.create_time, '%Y-%m-%d') >= #{dto.createStartDate} </if> -- Gitblit v1.9.3