From eeb3b46afe7da500bce62daad35ded0886df3b88 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期四, 09 一月 2025 18:31:12 +0800 Subject: [PATCH] Merge branch 'master-v4' of http://47.96.225.205:8888/r/flowerbackend-v2 into master-v4 --- src/main/resources/mapper/payment/OrderMapper.xml | 534 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 449 insertions(+), 85 deletions(-) diff --git a/src/main/resources/mapper/payment/OrderMapper.xml b/src/main/resources/mapper/payment/OrderMapper.xml index f46921d..2a87af2 100644 --- a/src/main/resources/mapper/payment/OrderMapper.xml +++ b/src/main/resources/mapper/payment/OrderMapper.xml @@ -7,80 +7,13 @@ where status_backend = 'SEND' and partner_id is not null </update> + <select id="getPartnerOrderReceive" resultType="com.mzl.flower.entity.payment.Order"> select * from t_order t where status_backend = 'SEND' and partner_id is not null </select> <select id="getOrderStatusCount" resultType="com.mzl.flower.dto.response.payment.OrderStatusCountDTO"> SELECT q.status_backend value, count(1) orderCount - FROM t_order q - WHERE q.deleted = 0 - <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.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' - ) - and q.transfer_id is null - </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> - GROUP BY q.status_backend - </select> - - <select id="selectOrderList" resultType="com.mzl.flower.dto.response.payment.OrderListDTO"> - SELECT q.*, u.nick_name createName - , ( - select count(1) from t_order_item oi - where oi.order_id = q.id - and (oi.status = 'reduce' or oi.status = 'abnormal') - ) levelDownCount FROM t_order q left join t_user u on q.create_by = u.id WHERE q.deleted = 0 @@ -104,17 +37,23 @@ <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.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.create_time >= #{condition.createStartDate} + AND q.payment_time >= #{condition.createStartDate} </if> <if test="condition.createEndDate != null"> - AND q.create_time <= #{condition.createEndDate} + AND q.payment_time < #{condition.createEndDate} </if> <if test="condition.partnerId != null"> AND q.partner_id = #{condition.partnerId} @@ -129,6 +68,7 @@ and (oi.status = 'reduce' or oi.status = 'abnormal') ) and q.transfer_id is null + and q.status in ('COLLECTION', 'SEND','RECEIVE') </if> <if test="condition.billId != null and condition.billId != ''"> AND q.bill_id = #{condition.billId} @@ -138,6 +78,145 @@ 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> + GROUP BY q.status_backend + </select> + + <select id="selectOrderList" resultType="com.mzl.flower.dto.response.payment.OrderListDTO"> + SELECT q.*, u.nick_name createName + , ( + select count(1) from t_order_item oi + where oi.order_id = q.id + and (oi.status = 'reduce' or oi.status = 'abnormal') + ) levelDownCount + FROM t_order q + left join t_user u on q.create_by = u.id + WHERE q.deleted = 0 + <if test="condition.orderNo != null and condition.orderNo != ''"> + AND q.order_no LIKE concat('%', #{condition.orderNo},'%') + </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> + <if test="condition.customerAddress != null and condition.customerAddress != ''"> + AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%') + </if> + <if test="condition.address != null and condition.address != ''"> + AND CONCAT(q.customer_province, q.customer_city, q.customer_region, q.customer_address) LIKE concat('%', + #{condition.address},'%') + </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>--> + <!-- 修改查询日期对应的的创建时间为支付时间 2024-10-12--> + <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','RECEIVE') + </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.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','RECEIVE') + ) + </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','RECEIVE') ) </if> @@ -168,18 +247,18 @@ <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} + AND q.payment_time >= #{condition.createStartDate} </if> <if test="condition.createEndDate != null"> - AND q.create_time <= #{condition.createEndDate} + AND q.payment_time < #{condition.createEndDate} </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.partnerId != null"> AND q.partner_id = #{condition.partnerId} </if> @@ -201,7 +280,7 @@ </foreach> </if> - ORDER BY q.partner_id, q.warehouse_name, q.warehouse_location_code, q.create_time desc, q.payment_time desc + ORDER BY q.partner_id DESC, q.warehouse_id, q.warehouse_location_id, q.create_time desc, q.payment_time desc </select> <select id="getSupplierSaleNum" resultType="com.mzl.flower.dto.response.payment.SupplierNumDTO"> @@ -256,4 +335,289 @@ join t_order_point_goods opg on opg.goods_record_id = gr.id where opg.order_id = #{orderId} </select> + <select id="getFlowerCompleteNumWithinTimeRange" resultType="java.lang.Integer"> + select IFNULL(sum(oi.num),0) as complete_num + from t_order o + left join t_order_item oi + on o.id=oi.order_id + where o.DELETEd=0 and oi.DELETEd=0 + and o.status_backend not in ('PENDING','CANCEL','REFUND') + and o.create_by=#{userId} + AND oi.flower_id=#{flowerId} + AND o.payment_time BETWEEN #{startTime} AND #{endTime} + </select> + + <select id="selectOrderExportList" resultType="com.mzl.flower.dto.response.payment.OrderListExportDTO"> + SELECT q.order_no,q.create_time,q.customer,q.customer_tel,q.total_amount,q.status_backend,q.partner_name,q.warehouse_location_code,q.remarks,q.logistics_company_code, + u.nick_name createName , + code.label as statusBackendStr, + code2.label as specialNeedsStr, + CONCAT(q.customer_province, q.customer_city,q.customer_region,q.customer_address) AS customerAddress, + (select Sum(COALESCE(oi.num, 0) * COALESCE(oi.supplier_price, 0)) + from t_order_item oi where order_id = q.id) supplierAmount, + (select Sum(oi.num) from t_order_item oi where order_id = q.id) saleNum + FROM t_order q + left join t_user u on q.create_by = u.id + LEFT JOIN (SELECT ct.label, ct.value from t_code_value ct where type_code = 'ORDER_STATUS_BACKEND') code ON q.status_backend = code.value + LEFT JOIN (SELECT ct.label, ct.value from t_code_value ct where type_code = 'SPEC_REQ') code2 ON q.special_needs = code2.value + WHERE q.deleted = 0 + <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.address != null and condition.address != ''"> + AND CONCAT(q.customer_province, q.customer_city, q.customer_region, q.customer_address) LIKE concat('%', + #{condition.address},'%') + </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.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','RECEIVE') + </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> + ORDER BY q.create_time desc, q.payment_time desc + </select> + + <select id="getOrderSaleAmount" resultType="java.math.BigDecimal"> + SELECT sum(o.payment_amount) + FROM t_order o + WHERE o.deleted=0 + and o.status_backend not in ('PENDING','CANCEL','REFUND') + <if test="startTime != null"> + and o.create_time > #{startTime} + </if> + <if test="endTime != null"> + and o.create_time <= #{endTime} + </if> + </select> + +<!-- 获取所有的订单数据,以及时间数据--> + <select id="selectAllDateList" resultType="com.mzl.flower.entity.payment.Order"> + SELECT t.id,t.payment_time, + CASE + 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.create_time, + CASE + WHEN t.create_time > DATE(t.create_time) + INTERVAL 17 HOUR THEN DATE(t.create_time) + INTERVAL 1 DAY + ELSE DATE(t.create_time) + END AS create_date + 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','RECEIVE') + ) + + 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','RECEIVE') + ) + + </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','RECEIVE') + + 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','RECEIVE') + ) + + </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','RECEIVE')--> +<!-- </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} + </update> </mapper> \ No newline at end of file -- Gitblit v1.9.3