gongzuming
2024-09-19 a768dc3daa04d35fedfbe75c0a59b9b2545b85c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mzl.flower.mapper.payment.DeliveryOrderItemMapper">
 
    <select id="selectDoItemList" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderItemListDTO">
        SELECT q.id, o.order_no, o.warehouse_name, o.warehouse_location_code
            , oi.flower_name, oi.flower_unit, oi.flower_color, oi.flower_cover, oi.num
            , oi.supplier_price price, oi.flower_level
        FROM t_delivery_order_item q
        join t_order o on q.order_id = o.id
        join t_order_item oi on oi.id = q.order_item_id
        WHERE q.deleted = 0 and o.deleted = 0 and oi.deleted = 0
        and q.delivery_id = #{deliveryId}
    </select>
 
    <select id="selectDoItemCheckList" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderItemCheckDTO">
        SELECT oi.id, oi.flower_name, oi.flower_unit, oi.flower_color, oi.flower_cover, oi.num
        , oi.supplier_price price, oi.flower_level, oi.status, oi.check_images, oi.check_time, oi.check_remarks
        , (select oic.num from t_order_item_check oic where oic.order_item_id = oi.id and oic.type = 'replace') replaceNum
        , (select oic.num from t_order_item_check oic where oic.order_item_id = oi.id and oic.type = 'reduce') reduceNum
        , (select oic.num from t_order_item_check oic where oic.order_item_id = oi.id and oic.type = 'lack') lackNum
        FROM t_delivery_order_item q
        join t_order_item oi on oi.id = q.order_item_id
        WHERE q.deleted = 0 and oi.deleted = 0
        and q.delivery_id = #{deliveryId}
    </select>
 
    <select id="selectDoItemListByTime" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderItemStatisticsDTO">
        SELECT oi.flower_name, oi.flower_level, sum(oi.num) num, sum(oi.supplier_price*oi.num) price
        FROM t_delivery_order_item doi
        join t_delivery_order q on q.id = doi.delivery_id
        join t_order_item oi on oi.id = doi.order_item_id
        WHERE q.deleted = 0 and doi.deleted = 0
        and q.supplier_id = #{supplierId}
        <if test="startDate != null">
            AND q.create_time &gt; #{startDate}
        </if>
        <if test="endDate != null">
            AND q.create_time &lt;= #{endDate}
        </if>
        group by oi.flower_name, oi.flower_level
    </select>
 
    <select id="selectSettlementListByTime" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderItemSettlementDTO">
        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 income, o.status_backend, o.create_time orderTime, o.receive_time, o.order_no
        , (select count(1) from t_order_item_sales sa where sa.order_item_id = oi.id) salesNum
        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
        and q.supplier_id = #{supplierId}
        <if test="startDate != null">
            AND q.create_time &gt; #{startDate}
        </if>
        <if test="endDate != null">
            AND q.create_time &lt;= #{endDate}
        </if>
        order by q.create_time desc
    </select>
 
    <select id="getSupplierStatisticsByTime" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderItemStatisticsDTO">
        SELECT sum(oi.num) num, sum(oi.supplier_price*oi.num) price
        FROM t_delivery_order_item doi
        join t_delivery_order q on q.id = doi.delivery_id
        join t_order_item oi on oi.id = doi.order_item_id
        WHERE q.deleted = 0 and doi.deleted = 0
        and q.supplier_id = #{supplierId}
        <if test="startDate != null">
            AND q.create_time &gt; #{startDate}
        </if>
        <if test="endDate != null">
            AND q.create_time &lt;= #{endDate}
        </if>
    </select>
 
    <select id="getDoItemCount" resultType="java.lang.Integer">
        SELECT sum(oi.num)
        FROM t_delivery_order_item doi
        join t_delivery_order q on q.id = doi.delivery_id
        join t_order_item oi on oi.id = doi.order_item_id
        WHERE q.deleted = 0 and doi.deleted = 0
        and q.supplier_id = #{supplierId}
        <if test="status != null and status != ''">
            AND q.status = #{status}
        </if>
        <if test="startDate != null">
            AND q.create_time &gt; #{startDate}
        </if>
        <if test="endDate != null">
            AND q.create_time &lt;= #{endDate}
        </if>
    </select>
 
    <select id="selectDoItemList4Check" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderItem4CheckDTO">
        SELECT oi.id, q.delivery_id, oi.flower_name, oi.flower_unit, oi.flower_color
        , oi.flower_cover, oi.num , oi.supplier_price price, oi.flower_level, oi.status
        , (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' or oic.audit_status is null)
        ) replaceNum
        , (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' or oic.audit_status is null)
        ) reduceNum
        , (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' or oic.audit_status is null)
        ) lackNum
        FROM t_delivery_order_item q
        join t_order_item oi on oi.id = q.order_item_id
        WHERE q.deleted = 0 and oi.deleted = 0
        and q.delivery_id in
        <foreach collection="deliveryIds" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
 
    <select id="getUnCheckCount" resultType="java.lang.Integer">
        SELECT count(1)
        FROM t_delivery_order_item doi
        join t_order_item oi on oi.id = doi.order_item_id
        WHERE oi.deleted = 0 and doi.deleted = 0
        and oi.status is null
        and doi.delivery_id = #{deliveryId}
    </select>
</mapper>