chenlu
2024-10-11 82a5de6d2ec80b45660149c84be28734032562f6
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -63,7 +63,8 @@
            update order_detail as a
            set
                a.price = #{item.price},
                a.gross_amount = #{item.grossAmount}
                a.gross_amount = #{item.grossAmount},
                a.other_columns = #{item.otherColumns}
            where
                a.order_id = #{item.orderId} and
                a.order_number =  #{item.orderNumber}
@@ -108,8 +109,156 @@
        <result column="creator" property="order.creator"/>
        <result column="verifier" property="order.verifier"/>
        <result column="customer_batch" property="order.customerBatch"/>
        <result column="other_money" property="order.otherMoney"/>
    </resultMap>
    <select id="getOrderSummaryReport" >
        SELECT
        *
        from  sd.`order` as b
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="order.orderType != null and order.orderType != ''">
            and b.order_type like concat('%',#{order.orderType},'%')
        </if>
        <if test="order.customerId != null and order.customerId != ''">
            and b.customer_id like concat('%',#{order.customerId},'%')
        </if>
        <if test="order.customerName != null and order.customerName != ''">
            and b.customer_name like concat('%',#{order.customerName},'%')
        </if>
        <if test="order.project != null and order.project != ''">
            and b.project like concat('%',#{order.project},'%')
        </if>
        <if test="order.orderId != null and order.orderId != ''">
            and b.order_id like concat('%',#{order.orderId},'%')
        </if>
        <if test="order.batch != null and order.batch != ''">
            and b.batch like concat('%',#{order.batch},'%')
        </if>
        <if test="order.icon != null and order.icon != ''">
            and b.icon like concat('%',#{order.icon},'%')
        </if>
        <if test="order.packType != null and order.packType != ''">
            and b.pack_type like concat('%',#{order.packType},'%')
        </if>
        <if test="order.alType != null and order.alType != ''">
            and b.al_type like concat('%',#{order.alType},'%')
        </if>
        <if test="order.salesman != null and order.salesman != ''">
            and b.salesman like concat('%',#{order.salesman},'%')
        </if>
        <if test="order.deliveryAddress != null and order.deliveryAddress != ''">
            and b.delivery_address like concat('%',#{order.deliveryAddress},'%')
        </if>
        <if test="order.creator != null and order.creator != ''">
            and b.creator like concat('%',#{order.creator},'%')
        </if>
        <if test="order.otherMoney != null and order.otherMoney != ''">
            and b.other_money regexp REGEXP_REPLACE(#{order.otherMoney},'\\.0+$','')
        </if>
        <if test="order.quantity != null ">
            and b.quantity like concat('%',#{order.quantity},'%')
        </if>
        <if test="order.money != null ">
            and b.money  regexp REGEXP_REPLACE(#{order.money},'\\.0+$','')
        </if>
        <if test="order.perimeter != null and order.perimeter != ''">
            and b.perimeter regexp REGEXP_REPLACE(#{order.perimeter},'\\.0+$','')
        </if>
        <if test="order.processingNote != null and order.processingNote != ''">
            and b.processing_note like concat('%',#{order.processingNote},'%')
        </if>
        <if test="order.area != null and order.area != ''">
            and b.area regexp REGEXP_REPLACE(#{order.area},'\\.0+$','')
        </if>
        order by b.id desc
        limit #{offset},#{pageSize}
    </select>
    <select id="getOrderSummaryReportTotal" >
        SELECT
        CEILING(count(b.id)/#{pageSize}) as 'pageTotal',
        count(b.id) as 'total'
        from  sd.`order` as b
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="order.orderType != null and order.orderType != ''">
            and b.order_type like concat('%',#{order.orderType},'%')
        </if>
        <if test="order.customerId != null and order.customerId != ''">
            and b.customer_id like concat('%',#{order.customerId},'%')
        </if>
        <if test="order.customerName != null and order.customerName != ''">
            and b.customer_name like concat('%',#{order.customerName},'%')
        </if>
        <if test="order.project != null and order.project != ''">
            and b.project like concat('%',#{order.project},'%')
        </if>
        <if test="order.orderId != null and order.orderId != ''">
            and b.order_id like concat('%',#{order.orderId},'%')
        </if>
        <if test="order.batch != null and order.batch != ''">
            and b.batch like concat('%',#{order.batch},'%')
        </if>
        <if test="order.icon != null and order.icon != ''">
            and b.icon like concat('%',#{order.icon},'%')
        </if>
        <if test="order.packType != null and order.packType != ''">
            and b.pack_type like concat('%',#{order.packType},'%')
        </if>
        <if test="order.alType != null and order.alType != ''">
            and b.al_type like concat('%',#{order.alType},'%')
        </if>
        <if test="order.salesman != null and order.salesman != ''">
            and b.salesman like concat('%',#{order.salesman},'%')
        </if>
        <if test="order.deliveryAddress != null and order.deliveryAddress != ''">
            and b.delivery_address like concat('%',#{order.deliveryAddress},'%')
        </if>
        <if test="order.creator != null and order.creator != ''">
            and b.creator like concat('%',#{order.creator},'%')
        </if>
        <if test="order.otherMoney != null and order.otherMoney != ''">
            and b.other_money regexp REGEXP_REPLACE(#{order.otherMoney},'\\.0+$','')
        </if>
        <if test="order.quantity != null ">
            and b.quantity like concat('%',#{order.quantity},'%')
        </if>
        <if test="order.money != null ">
            and b.money  regexp REGEXP_REPLACE(#{order.money},'\\.0+$','')
        </if>
        <if test="order.perimeter != null and order.perimeter != ''">
            and b.perimeter regexp REGEXP_REPLACE(#{order.perimeter},'\\.0+$','')
        </if>
        <if test="order.processingNote != null and order.processingNote != ''">
            and b.processing_note like concat('%',#{order.processingNote},'%')
        </if>
        <if test="order.area != null and order.area != ''">
            and b.area regexp REGEXP_REPLACE(#{order.area},'\\.0+$','')
        </if>
    </select>
    <select id="exportOrderSummary"  >
        SELECT *
        from sd.`order` as b
        where  date(b.create_time)>=#{dates[0]} and date(b.create_time) &lt;= #{dates[1]} and b.create_order>0
        order by b.id desc
    </select>
    <select id="getOrderReport" resultMap="orderMap">
@@ -127,7 +276,7 @@
            on d.type_id = c.type_id
        left join sd.basic_glass_type as e
            on e.type_id = d.belong
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
@@ -136,7 +285,9 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
@@ -162,11 +313,11 @@
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
            and a.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -178,11 +329,11 @@
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -218,7 +369,7 @@
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -268,7 +419,7 @@
                           on d.type_id = c.type_id
                 left join sd.basic_glass_type as e
                           on e.type_id = d.belong
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
        </if>
@@ -276,7 +427,9 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
@@ -302,11 +455,11 @@
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
            and a.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -318,11 +471,11 @@
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -358,7 +511,7 @@
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -397,6 +550,7 @@
    <select id="exportOrderReport"  >
        SELECT
            *,
            b.processing_note as processingNotes,
            a.create_time as createTime,
            d.type_name as level_one,
            e.type_name as level_two
@@ -409,7 +563,7 @@
                   on d.type_id = c.type_id
         left join sd.basic_glass_type as e
                   on e.type_id = d.belong
        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]}
        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]} and b.create_order>0
    </select>
@@ -424,6 +578,7 @@
        b.batch,
        a.product_id,
        a.product_name,
        b.other_money,
        sum(a.quantity) as quantity,
        sum(a.gross_area) as gross_area,
        sum(a.compute_gross_area) as compute_gross_area,
@@ -455,7 +610,7 @@
        on d.type_id = c.type_id
        left join sd.basic_glass_type as e
        on e.type_id = d.belong
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
@@ -464,7 +619,9 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
@@ -490,11 +647,11 @@
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
            and a.width  regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -506,11 +663,11 @@
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail.grossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -546,7 +703,7 @@
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -579,6 +736,10 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerBatch != null and orderDetail.order.customerBatch != ''">
            and b.customer_batch like concat('%',#{orderDetail.order.customerBatch},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.otherMoney != null ">
            and b.other_money  regexp REGEXP_REPLACE(#{orderDetail.order.otherMoney},'\\.0+$','')
        </if>
        group by b.order_id,a.product_id
        order by b.order_id desc
@@ -599,7 +760,7 @@
        on d.type_id = c.type_id
        left join sd.basic_glass_type as e
        on e.type_id = d.belong
        where date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        where date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
        </if>
@@ -607,7 +768,9 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
@@ -633,11 +796,11 @@
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
            and a.width  regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -649,11 +812,11 @@
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail.grossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -689,7 +852,7 @@
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -723,27 +886,98 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerBatch != null and orderDetail.order.customerBatch != ''">
            and b.customer_batch like concat('%',#{orderDetail.order.customerBatch},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.otherMoney != null ">
            and b.other_money  regexp REGEXP_REPLACE(#{orderDetail.order.otherMoney},'\\.0+$','')
        </if>
        group by b.order_id,a.product_id
        ) as ss
    </select>
    <select id="exportOrderProductSummary"  >
        SELECT
            *,
            a.create_time as createTime,
            d.type_name as level_one,
            e.type_name as level_two
        from order_detail as a
        SELECT a.id,
               a.order_id,
               a.order_number,
               a.building_number,
               a.product_id,
               a.product_name,
               a.price,
               sum(a.quantity) as quantity,
               sum(a.gross_amount) as gross_amount,
               a.shape,
               sum(a.area) as area,
               sum(a.gross_area) as gross_area,
               sum(a.compute_area) as compute_area,
               sum(a.compute_gross_area) as compute_gross_area,
               a.processing_note,
               a.remarks,
               a.bend_radius,
               a.edging_type,
               a.weight,
               a.perimeter,
               a.other_columns,
               a.warehouse_num,
               a.delivery_num,
               a.return_num,
               a.state,
               b.id,
               b.order_id,
               b.project,
               b.customer_id,
               b.customer_name,
               b.order_type,
               b.order_classify,
               b.icon,
               b.pack_type,
               b.delivery_date,
               b.batch,
               b.calculate_type,
               b.salesman_id,
               b.salesman,
               b.al_type,
               b.money,
               b.contract_id,
               b.customer_batch,
               b.contacts,
               b.contact_number,
               b.delivery_address,
               b.other_money,
               b.other_money_remarks,
               b.processing_note as processingNotes,
               b.other_remarks,
               b.area,
               b.quantity,
               b.perimeter,
               b.verifier_id,
               b.verifier,
               b.creator_id,
               b.creator,
               b.create_order,
               b.process_review,
               b.order_review,
               b.production_order,
               b.processing_card,
               b.warehousing,
               b.delivery,
               b.create_time,
               b.update_time,
               d.type_name as level_one,
               e.type_name as level_two,
               f.customer_abbreviation
        from sd.order_detail as a
                 left join sd.`order` as b
                           on b.order_id = a.order_id
                 left join sd.customer as f
                           on f.id = b.customer_id
                 left join sd.product as c
                           on c.id = a.product_id
                 left join sd.basic_glass_type as d
                           on d.type_id = c.type_id
                 left join sd.basic_glass_type as e
                           on e.type_id = d.belong
        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]}
        group by b.order_id,a.product_id
        where date(b.create_time) >= #{dates[0]}
          and date(b.create_time) &lt;= #{dates[1]} and b.create_order>0
        group by b.order_id, a.product_id
        order by b.order_id desc
    </select>
    
@@ -798,6 +1032,15 @@
        order by id;
    </select>
    <select id="getOrderProductByProductIds">
        select *
        from sd.order_detail od
                 left join sd.product_detail pd on od.product_id = pd.prod_id
        where od.order_id = #{orderId} and od.product_id=#{productId}
          and pd.detail_type = 'glass'
        group by od.product_id,pd.detail
    </select>