chenlu
2024-04-19 8f53694cc7ed5b9965d172a511ab39b914edbfb6
north-glass-erp/target/classes/mapper/sd/OrderDetail.xml
@@ -25,7 +25,8 @@
                            bend_radius,
                            edging_type,
                            weight,
                            perimeter
                            perimeter,
                            other_columns
                          )
        values
        <foreach collection ="orderDetails" item="orderDetail" separator =",">
@@ -49,7 +50,8 @@
            #{orderDetail.bendRadius},
            #{orderDetail.edgingType},
            #{orderDetail.weight},
            #{orderDetail.perimeter}
            #{orderDetail.perimeter},
            #{orderDetail.otherColumns}
             )
        </foreach>
    </insert>
@@ -67,11 +69,345 @@
        </foreach>
    </update>
    <select id="getOrderReport">
    <resultMap id="orderMap" type="com.example.erp.entity.sd.OrderDetail">
        <result column="order_number" property="orderNumber"/>
        <result column="product_id" property="productId"/>
        <result column="product_name" property="productName"/>
        <result column="price" property="price"/>
        <result column="width" property="width"/>
        <result column="height" property="height"/>
        <result column="quantity" property="quantity"/>
        <result column="bend_radius" property="bendRadius"/>
        <result column="gross_area" property="grossArea"/>
        <result column="compute_gross_area" property="computeGrossArea"/>
        <result column="shape" property="shape"/>
        <result column="edging_type" property="edgingType"/>
        <result column="processing_note" property="processingNote"/>
        <result column="remarks" property="remarks"/>
        <result column="perimeter" property="perimeter"/>
        <result column="gross_amount" property="grossAmount"/>
        <result column="levelOne" property="levelOne"/>
        <result column="levelTwo" property="levelTwo"/>
        <result column="total_thickness" property="totalThickness"/>
        <result column="createTime" property="createTime"/>
        <result column="order_type" property="order.orderType"/>
        <result column="customer_name" property="order.customerName"/>
        <result column="project" property="order.project"/>
        <result column="order_id" property="order.orderId"/>
        <result column="batch" property="order.batch"/>
        <result column="b.processing_note" property="order.processingNote"/>
        <result column="icon" property="order.icon"/>
        <result column="packType" property="order.packType"/>
        <result column="salesman" property="order.salesman"/>
        <result column="delivery_address" property="order.deliveryAddress"/>
        <result column="creator" property="order.creator"/>
        <result column="verifier" property="order.verifier"/>
        <result column="customer_batch" property="order.customerBatch"/>
    </resultMap>
    <select id="getOrderReport" resultMap="orderMap">
        SELECT
            from order_detail as a
            left join sd.`order` o on o.id = a.order_id
            *,
            a.create_time as createTime,
            d.type_name as levelOne,
            e.type_name as levelTwo
        from order_detail as a
        left join sd.`order` as b
            on b.order_id = a.order_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(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
        </if>
        <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.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.orderId != null and orderDetail.order.orderId != ''">
            and b.order_id like concat('%',#{orderDetail.order.orderId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.batch != null and orderDetail.order.batch != ''">
            and b.batch like concat('%',#{orderDetail.order.batch},'%')
        </if>
        <if test="orderDetail.productId != null and orderDetail.productId != ''">
            and a.product_id like concat('%',#{orderDetail.productId},'%')
        </if>
        <if test="orderDetail.productName != null and orderDetail.productName != ''">
            and a.product_name like concat('%',#{orderDetail.productName},'%')
        </if>
        <if test="orderDetail.orderNumber != null and orderDetail.orderNumber != ''">
            and a.order_number like concat('%',#{orderDetail.orderNumber},'%')
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
            and a.quantity like concat('%',#{orderDetail.quantity},'%')
        </if>
        <if test="orderDetail.bendRadius != null and orderDetail.bendRadius != ''">
            and a.bend_radius like concat('%',#{orderDetail.bendRadius},'%')
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
            and a.shape like concat('%',#{orderDetail.shape},'%')
        </if>
        <if test="orderDetail.edgingType != null and orderDetail.edgingType != ''">
            and a.edging_type like concat('%',#{orderDetail.edgingType},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.processingNote != null and orderDetail.order.processingNote != ''">
            and b.processing_note like concat('%',#{orderDetail.order.processingNote},'%')
        </if>
        <if test="orderDetail.processingNote != null and orderDetail.processingNote != ''">
            and a.processing_note like concat('%',#{orderDetail.processingNote},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.icon != null and orderDetail.order.icon != ''">
            and b.icon like concat('%',#{orderDetail.order.icon},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.packType != null and orderDetail.order.packType != ''">
            and b.pack_type like concat('%',#{orderDetail.order.packType},'%')
        </if>
        <if test="orderDetail.perimeter != null and orderDetail.perimeter != ''">
            and a.perimeter like concat('%',#{orderDetail.perimeter},'%')
        </if>
        <if test="orderDetail.price != null and orderDetail.price != ''">
            and a.price like concat('%',#{orderDetail.price},'%')
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
            and b.al_type like concat('%',#{orderDetail.order.alType},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.salesman != null and orderDetail.order.salesman != ''">
            and b.salesman like concat('%',#{orderDetail.order.salesman},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.deliveryAddress != null and orderDetail.order.deliveryAddress != ''">
            and b.delivery_address like concat('%',#{orderDetail.order.deliveryAddress},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.creator != null and orderDetail.order.creator != ''">
            and b.creator like concat('%',#{orderDetail.order.creator},'%')
        </if>
        <if test="orderDetail.totalThickness != null and orderDetail.totalThickness != ''">
            and c.total_thickness like concat('%',#{orderDetail.totalThickness},'%')
        </if>
        <if test="orderDetail.levelOne != null and orderDetail.levelOne != ''">
            and d.type_name like concat('%',#{orderDetail.levelOne},'%')
        </if>
        <if test="orderDetail.levelTwo != null and orderDetail.levelTwo != ''">
            and e.type_name like concat('%',#{orderDetail.levelTwo},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerBatch != null and orderDetail.order.customerBatch != ''">
            and b.customer_batch like concat('%',#{orderDetail.order.customerBatch},'%')
        </if>
        order by a.id desc
        limit #{offset},#{pageSize}
    </select>
    <select id="getOrderReportTotal" >
        SELECT
            CEILING(count(a.id)/#{pageSize}) as 'pageTotal',
            count(a.id) as 'total'
        from order_detail as a
                 left join sd.`order` as b
                           on b.order_id = a.order_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(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
        </if>
        <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.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.orderId != null and orderDetail.order.orderId != ''">
            and b.order_id like concat('%',#{orderDetail.order.orderId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.batch != null and orderDetail.order.batch != ''">
            and b.batch like concat('%',#{orderDetail.order.batch},'%')
        </if>
        <if test="orderDetail.productId != null and orderDetail.productId != ''">
            and a.product_id like concat('%',#{orderDetail.productId},'%')
        </if>
        <if test="orderDetail.productName != null and orderDetail.productName != ''">
            and a.product_name like concat('%',#{orderDetail.productName},'%')
        </if>
        <if test="orderDetail.orderNumber != null and orderDetail.orderNumber != ''">
            and a.order_number like concat('%',#{orderDetail.orderNumber},'%')
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
            and a.quantity like concat('%',#{orderDetail.quantity},'%')
        </if>
        <if test="orderDetail.bendRadius != null and orderDetail.bendRadius != ''">
            and a.bend_radius like concat('%',#{orderDetail.bendRadius},'%')
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
            and a.shape like concat('%',#{orderDetail.shape},'%')
        </if>
        <if test="orderDetail.edgingType != null and orderDetail.edgingType != ''">
            and a.edging_type like concat('%',#{orderDetail.edgingType},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.processingNote != null and orderDetail.order.processingNote != ''">
            and b.processing_note like concat('%',#{orderDetail.order.processingNote},'%')
        </if>
        <if test="orderDetail.processingNote != null and orderDetail.processingNote != ''">
            and a.processing_note like concat('%',#{orderDetail.processingNote},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.icon != null and orderDetail.order.icon != ''">
            and b.icon like concat('%',#{orderDetail.order.icon},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.packType != null and orderDetail.order.packType != ''">
            and b.pack_type like concat('%',#{orderDetail.order.packType},'%')
        </if>
        <if test="orderDetail.perimeter != null and orderDetail.perimeter != ''">
            and a.perimeter like concat('%',#{orderDetail.perimeter},'%')
        </if>
        <if test="orderDetail.price != null and orderDetail.price != ''">
            and a.price like concat('%',#{orderDetail.price},'%')
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
            and b.al_type like concat('%',#{orderDetail.order.alType},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.salesman != null and orderDetail.order.salesman != ''">
            and b.salesman like concat('%',#{orderDetail.order.salesman},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.deliveryAddress != null and orderDetail.order.deliveryAddress != ''">
            and b.delivery_address like concat('%',#{orderDetail.order.deliveryAddress},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.creator != null and orderDetail.order.creator != ''">
            and b.creator like concat('%',#{orderDetail.order.creator},'%')
        </if>
        <if test="orderDetail.totalThickness != null and orderDetail.totalThickness != ''">
            and c.total_thickness like concat('%',#{orderDetail.totalThickness},'%')
        </if>
        <if test="orderDetail.levelOne != null and orderDetail.levelOne != ''">
            and d.type_name like concat('%',#{orderDetail.levelOne},'%')
        </if>
        <if test="orderDetail.levelTwo != null and orderDetail.levelTwo != ''">
            and e.type_name like concat('%',#{orderDetail.levelTwo},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerBatch != null and orderDetail.order.customerBatch != ''">
            and b.customer_batch like concat('%',#{orderDetail.order.customerBatch},'%')
        </if>
        order by a.id desc
    </select>
    <select id="exportOrderReport">
        SELECT
            *,
            a.create_time as createTime,
            d.type_name as levelOne,
            e.type_name as levelTwo
        from order_detail as a
         left join sd.`order` as b
                   on b.order_id = a.order_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
    </select>