From c7d127ae867c00f01a7eb4977836565bcae6ee9f Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期三, 11 十二月 2024 11:29:56 +0800 Subject: [PATCH] 1.财务报表-部分统计字段新增 2.合伙人报表-部分统计字段新增 --- src/main/java/com/mzl/flower/dto/response/report/OrderPartnerReportResultVO.java | 12 ++++ src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java | 23 +++++++ src/main/resources/mapper/report/OrderReportMapper.xml | 70 ++++++++++++----------- src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java | 34 +++++++++-- 4 files changed, 98 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/mzl/flower/dto/response/report/OrderPartnerReportResultVO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderPartnerReportResultVO.java index 0676964..c40cf04 100644 --- a/src/main/java/com/mzl/flower/dto/response/report/OrderPartnerReportResultVO.java +++ b/src/main/java/com/mzl/flower/dto/response/report/OrderPartnerReportResultVO.java @@ -55,9 +55,21 @@ @ApiModelProperty("总包干费--暂无") private BigDecimal partnerTotalFeeAmount; + @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/dto/response/report/OrderReportResultVO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java index 7c82985..71273f4 100644 --- a/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java +++ b/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java @@ -40,11 +40,18 @@ @ApiModelProperty("合伙人区间加价--暂无") private BigDecimal partnerSectionFeeAmount; + + @ApiModelProperty("优惠合计") + private BigDecimal orderDiscountTotalFee; + @ApiModelProperty("会员折扣") private BigDecimal orderPriceDiscountAmount; @ApiModelProperty("优惠券") private BigDecimal orderCouponAmountTotal; + + @ApiModelProperty("质检总扣款") + private BigDecimal orderCheckTotalFee; @ApiModelProperty("降级扣款") private BigDecimal orderCheckFee; @@ -55,6 +62,9 @@ @ApiModelProperty("补货扣款") private BigDecimal orderReplaceFee; + @ApiModelProperty("售后总扣款") + private BigDecimal orderTotalFee; + @ApiModelProperty("售后扣合伙人款") private BigDecimal orderFeePartner; @@ -64,6 +74,19 @@ @ApiModelProperty("售后扣平台款") private BigDecimal orderFeePlatform; + @ApiModelProperty("售后打包扣款") + private BigDecimal orderFeePlatformPack; + + @ApiModelProperty("售后质检扣款") + private BigDecimal orderFeePlatformCheck; + + @ApiModelProperty("售后物流扣款") + private BigDecimal orderFeePlatformTransport; + + @ApiModelProperty("售后打包运费扣款") + private BigDecimal orderFeePackingTransport; + + @ApiModelProperty("总包干费--暂无") private BigDecimal partnerTotalFeeAmount; 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 5556fe2..0e270b3 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 @@ -103,9 +103,11 @@ return vo2; }).collect(Collectors.toList()); - String[] rowsName = new String[]{"序号","下单日期", "销售额", "花农底价", "平台区间加价", "平台加价", "平台区域加价" - , "合伙人加价", "合伙人区间加价", "会员折扣","优惠券","降级扣款","缺货扣款","补货扣款","售后扣合伙人款","售后扣花农款", - "售后扣平台款","总包干费","总销售扎数","实际销售扎数","利润","结算状态",}; + String[] rowsName = new String[]{"序号","下单日期", "销售额(原订单)","销售额(实付)", "花农底价", "平台区间加价", "平台加价", "平台区域加价" + , "合伙人加价", "合伙人区间加价","优惠合计", "会员折扣","优惠券", + "质检总扣款","降级扣款","缺货扣款","补货扣款", + "售后总扣款","售后供应商扣款","售后平台扣款","售后合伙人扣款","售后打包扣款","售后质检扣款","售后物流扣款","售后打包运费扣款", + "总包干费","总销售扎数","实际销售扎数","缺货扎数","降级扎数","补货扎数","利润","结算状态",}; List<Object[]> dataList = new ArrayList<>(); int sn = 1; for (OrderReportResultVO o : list) { @@ -113,24 +115,42 @@ int a = 0; objs[a++] = sn; // 序号 objs[a++] = format(o.getOrderDate(), "yyyy-MM-dd"); // 下单日期 - objs[a++] = o.getOrderTotal(); // 销售额 + objs[a++] = o.getOrderTotal(); // 销售额(原订单) + objs[a++] = o.getTotalAmount(); // 销售额(实付) objs[a++] = o.getOrderSupplierPriceAmount(); // 花农底价 objs[a++] = o.getOrderMarkupOneAmount(); // 平台区间加价 objs[a++] = o.getOrderMarkupTwoAmount(); // 平台加价 objs[a++] = o.getPlatformAreaFeeAmount(); //平台区域加价 objs[a++] = o.getOrderMarkupPartnerAmount(); //合伙人加价 objs[a++] = o.getPartnerSectionFeeAmount(); //合伙人区间加价 + + objs[a++] = o.getOrderDiscountTotalFee();//优惠合计 objs[a++] = o.getOrderPriceDiscountAmount();//会员折扣 objs[a++] = o.getOrderCouponAmountTotal(); // 优惠券 + + objs[a++] = o.getOrderCheckTotalFee();//质检总扣款 objs[a++] = o.getOrderCheckFee();//降级扣款 objs[a++] = o.getOrderLackFeeSupplier(); //缺货扣款 objs[a++] = o.getOrderReplaceFee(); //补货扣款 - objs[a++] = o.getOrderFeePartner(); //售后扣合伙人款 - objs[a++] = o.getOrderFeeSupplier(); // 售后扣花农款 - objs[a++] = o.getOrderFeePlatform(); //售后扣平台款 + + + objs[a++] = o.getOrderTotalFee(); //售后总扣款 + objs[a++] = o.getOrderFeeSupplier(); //售后供应商扣款 + objs[a++] = o.getOrderFeePlatform(); //售后平台扣款 + objs[a++] = o.getOrderFeePartner(); //售后合伙人扣款 + objs[a++] = o.getOrderFeePlatformPack(); //售后打包扣款 + objs[a++] = o.getOrderFeePlatformCheck(); // 售后质检扣款 + objs[a++] = o.getOrderFeePlatformTransport(); //售后物流扣款 + objs[a++] = o.getOrderFeePackingTransport(); //售后打包运费扣款 + + objs[a++] = o.getPartnerTotalFeeAmount(); // 总包干费 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/resources/mapper/report/OrderReportMapper.xml b/src/main/resources/mapper/report/OrderReportMapper.xml index bc6b171..f58f1ae 100644 --- a/src/main/resources/mapper/report/OrderReportMapper.xml +++ b/src/main/resources/mapper/report/OrderReportMapper.xml @@ -10,8 +10,10 @@ sum(order_markup_one_amount) as order_markup_one_amount, sum(order_markup_two_amount) as order_markup_two_amount, sum(order_markup_partner_amount) as order_markup_partner_amount, + sum(order_price_discount_amount)+sum(order_coupon_amount_total) as order_discount_total_fee, sum(order_price_discount_amount) as order_price_discount_amount, sum(order_coupon_amount_total) as order_coupon_amount_total, + sum(order_check_fee)+sum(order_lack_fee_supplier)+sum(order_replace_fee) as order_check_total_fee, sum(order_check_fee) as order_check_fee, sum(order_lack_fee_supplier) as order_lack_fee_supplier, sum(order_replace_fee) as order_replace_fee, @@ -39,10 +41,10 @@ where o.deleted=0 and o.status_backend not in ('PENDING','CANCEL','REFUND') <if test="dto.startDate != null"> - and o.payment_time > #{dto.startDate} + and o.payment_time >= #{dto.startDate} </if> <if test="dto.endDate != null"> - and o.payment_time <= #{dto.endDate} + and o.payment_time < #{dto.endDate} </if> <if test="dto.partnerId != null"> and o.create_by in ( @@ -88,10 +90,10 @@ where o.deleted=0 and o.status_backend not in ('PENDING','CANCEL','REFUND') <if test="dto.startDate != null"> - and o.payment_time > #{dto.startDate} + and o.payment_time >= #{dto.startDate} </if> <if test="dto.endDate != null"> - and o.payment_time <= #{dto.endDate} + and o.payment_time < #{dto.endDate} </if> <if test="dto.partnerId != null"> and o.create_by in ( @@ -122,10 +124,10 @@ where o.deleted=0 and o.status_backend not in ('PENDING','CANCEL','REFUND') <if test="dto.startDate != null"> - and o.payment_time > #{dto.startDate} + and o.payment_time >= #{dto.startDate} </if> <if test="dto.endDate != null"> - and o.payment_time <= #{dto.endDate} + and o.payment_time < #{dto.endDate} </if> <if test="dto.partnerId != null"> and o.create_by in ( @@ -151,10 +153,10 @@ where o.deleted=0 and o.status_backend not in ('PENDING','CANCEL','REFUND') <if test="dto.startDate != null"> - and o.payment_time > #{dto.startDate} + and o.payment_time >= #{dto.startDate} </if> <if test="dto.endDate != null"> - and o.payment_time <= #{dto.endDate} + and o.payment_time < #{dto.endDate} </if> <if test="dto.partnerId != null"> and o.create_by in ( @@ -234,7 +236,7 @@ select t2.payment_date,t2.id,t2.order_no,t2.create_by,t2.partner_id,p.name as partner_name,r2.* from ( SELECT t.*, CASE - WHEN t.payment_time > DATE(t.payment_time) + INTERVAL 17 HOUR THEN DATE(t.payment_time) + INTERVAL 1 DAY + WHEN t.payment_time >= DATE(t.payment_time) + INTERVAL 17 HOUR THEN DATE(t.payment_time) + INTERVAL 1 DAY ELSE DATE(t.payment_time) END AS payment_date, t.payment_time as payment_time2 @@ -265,7 +267,7 @@ select t2.*, IFNULL(t3.fee_supplier,0) as order_fee_supplier, IFNULL(t3.fee_partner,0) as order_fee_partner, - IFNULL(t3.fee_platform,0) + IFNULL(t3.fee_packing_transport,0) as order_fee_platform, + IFNULL(t3.fee_platform,0) as order_fee_platform, IFNULL(t3.fee_platform_pack,0) as order_fee_platform_pack, IFNULL(t3.fee_platform_check,0) as order_fee_platform_check, IFNULL(t3.fee_platform_transport,0) as order_fee_platform_transport, @@ -324,10 +326,10 @@ left join t_order_item_settlement ois on ois.order_item_id = oi.id WHERE oi.deleted = 0 <if test="dto.startDate != null"> - and o.payment_time > #{dto.startDate} + and o.payment_time >= #{dto.startDate} </if> <if test="dto.endDate != null"> - and o.payment_time <= #{dto.endDate} + and o.payment_time < #{dto.endDate} </if> )t1 @@ -368,7 +370,7 @@ from ( SELECT CASE - WHEN o.payment_time > DATE(o.payment_time) + INTERVAL 17 HOUR THEN DATE(o.payment_time) + INTERVAL 1 DAY + WHEN o.payment_time >= DATE(o.payment_time) + INTERVAL 17 HOUR THEN DATE(o.payment_time) + INTERVAL 1 DAY ELSE DATE(o.payment_time) END AS payment_date, oi.order_id, @@ -415,10 +417,10 @@ left join t_order_item_settlement ois on ois.order_item_id = oi.id WHERE oi.deleted = 0 <if test="dto.startDate != null"> - and o.payment_time > #{dto.startDate} + and o.payment_time >= #{dto.startDate} </if> <if test="dto.endDate != null"> - and o.payment_time <= #{dto.endDate} + and o.payment_time < #{dto.endDate} </if> )t1 where 1=1 @@ -497,7 +499,7 @@ and o.payment_time >= #{dto.startDate} </if> <if test="dto.endDate != null"> - and o.payment_time <= #{dto.endDate} + and o.payment_time < #{dto.endDate} </if> <if test="dto.supplierId != null"> and oi.supplier_id = #{dto.supplierId} @@ -631,8 +633,8 @@ where o.deleted=0 and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') </sql> <!--上月成交:上月售卖的底价合计--> <sql id="last_mon_supplier_amount"> @@ -643,8 +645,8 @@ where o.deleted=0 and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') </sql> <!--今日成交:今日售卖的底价合计 // todo 需要根据当前时间判断今日的开始时间和结束时间--> <sql id="today_supplier_amount"> @@ -655,8 +657,8 @@ where o.deleted=0 and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} - and o.payment_time > #{dto.startDateTime} - and o.payment_time <= #{dto.endDateTime} + and o.payment_time >= #{dto.startDateTime} + and o.payment_time < #{dto.endDateTime} </sql> <!--缺货(本月):本月质检缺货,并且web端审核通过的数量合计--> <sql id="cur_mon_lack_num"> @@ -670,8 +672,8 @@ and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} and oic.type = 'lack' and oic.audit_status='AGREED' - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') </sql> <!--缺货(上月):上月质检缺货,并且web端审核通过的数量合计--> <sql id="last_mon_lack_num"> @@ -685,8 +687,8 @@ and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} and oic.type = 'lack' and oic.audit_status='AGREED' - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') </sql> <!--降级(本月):本月质检降级,并且web端审核通过的数量合计--> <sql id="cur_mon_reduce_num"> @@ -700,8 +702,8 @@ and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} and oic.type = 'reduce' and oic.audit_status='AGREED' - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') </sql> <!-- 降级(上月):上月质检降级,并且web端审核通过的数量合计--> @@ -716,8 +718,8 @@ and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} and oic.type = 'reduce' and oic.audit_status='AGREED' - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') </sql> <!-- 补货(本月):本月质检补货,并且web端审核通过的数量合计--> <sql id="cur_mon_replace_num"> @@ -731,8 +733,8 @@ and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} and oic.type = 'replace' and oic.audit_status='AGREED' - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(LAST_DAY(CURRENT_DATE()), '%Y-%m-%d 17:00:00') </sql> <!-- 补货(上月):上月质检补货,并且web端审核通过的数量合计--> <sql id="last_mon_replace_num"> @@ -746,8 +748,8 @@ and o.status_backend not in ('PENDING','CANCEL','REFUND') and oi.supplier_id = #{dto.supplierId} and oic.type = 'replace' and oic.audit_status='AGREED' - and o.payment_time > DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') - and o.payment_time <= DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') + and o.payment_time >= DATE_FORMAT(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 MONTH)), '%Y-%m-%d 17:00:00') + and o.payment_time < DATE_FORMAT(DATE_SUB(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') </sql> </mapper> \ No newline at end of file -- Gitblit v1.9.3