廖井涛
2024-07-28 dffdcaa14f32c51a63b4ab2cc7a38eebf17f8f44
north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
@@ -40,68 +40,58 @@
    </resultMap>
    <select id="getSelectCustomerOderDate" resultMap="selectCustomerOrderDetail">
        select od.order_id,
               od.order_number,
               o.project,
               od.product_id,
               od.product_name,
               o.customer_id,
               o.customer_name,
               sum(od.quantity) as quantity,
               sum(od.area) as area,
               od.shape,
               od.width,
               od.height,
               o.batch,
               o.money,
               o.order_type,
               o.salesman,
               o.create_time
        from order_detail od
                 left join `order` o on o.order_id = od.order_id
        <where>
                and date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
            <if test="orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
                and o.customer_id = #{orderDetail.order.customerId}
            </if>
            <if test="orderDetail.order.project != null and orderDetail.order.project != ''">
                and o.project regexp #{orderDetail.order.project}
            </if>
            <if test="orderDetail.order.batch != null and orderDetail.order.batch != ''">
                and o.batch regexp #{orderDetail.order.batch}
            </if>
            <if test="orderDetail.order.money != null and orderDetail.order.money != ''">
                and o.money regexp REGEXP_REPLACE(#{orderDetail.order.money},'\\.0+$','')
            </if>
            <if test="orderDetail.order.orderType != null and orderDetail.order.orderType != ''">
                and o.order_type regexp #{orderDetail.order.orderType}
            </if>
            <if test="orderDetail.order.salesman != null and orderDetail.order.salesman != ''">
                and o.salesman regexp #{orderDetail.order.salesman}
            </if>
            <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
                and od.order_id regexp #{orderDetail.orderId}
            </if>
            <if test="orderDetail.orderNumber != null and orderDetail.orderNumber != ''">
                and od.order_number regexp #{orderDetail.orderNumber}
            </if>
            <if test="orderDetail.productId != null and orderDetail.productId != ''">
                and od.product_id regexp #{orderDetail.productId}
            </if>
            <if test="orderDetail.productName != null and orderDetail.productName != ''">
                and od.product_name regexp #{orderDetail.productName}
            </if>
            <if test="orderDetail.shape != null and orderDetail.shape != ''">
                and od.shape regexp #{orderDetail.shape}
            </if>
            <if test="orderDetail.width != null and orderDetail.width != ''">
                and od.width regexp  REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
            </if>
            <if test="orderDetail.height != null and orderDetail.height != ''">
                and od.height regexp  REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
            </if>
    <select id="getSelectCustomerDeliveryDate" >
        select d.delivery_id,d.order_id,d.customer_id,d.customer_name,
               d.project,od.product_name,sum(dd.quantity) as quantity,sum(dd.area) as area,dd.price,sum(dd.money) as money,
                date(d.create_time) as create_time
        from sd.delivery_detail dd
                 left join sd.delivery d on d.delivery_id = dd.delivery_id
                 left join sd.order_detail od on od.order_id=dd.order_id and od.order_number=dd.order_number
                where date(d.create_time)>=#{startDate} and date(d.create_time) &lt;= #{endDate}
                and d.customer_id = #{orderDetail.order.customerId}
        group by od.product_id, od.width, od.height
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectCustomerDeliveryDatePageTotal" >
        select
        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
        count(zu.id) as 'total' from (select od.product_id,od.id
        from sd.delivery_detail dd
        left join sd.delivery d on d.delivery_id = dd.delivery_id
        left join sd.order_detail od on od.order_id=dd.order_id and od.order_number=dd.order_number
        where
             date(d.create_time)>=#{startDate} and date(d.create_time) &lt;= #{endDate}
            and d.customer_id = #{orderDetail.order.customerId}
        group by od.product_id, od.width, od.height) as zu
    </select>
    <select id="getSelectCustomerOderDate" >
        select od.order_id,
        od.order_number,
        o.project,
        od.product_id,
        od.product_name,
        o.customer_id,
        o.customer_name,
        sum(od.quantity) as quantity,
        sum(od.area) as area,
        od.shape,
        od.width,
        od.height,
        o.batch,
        od.price,
        sum(od.gross_amount) as money,
        o.order_type,
        o.salesman,
        date(o.create_time) as create_time
        from order_detail od
        left join `order` o on o.order_id = od.order_id
        <where>
            and date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
                                   and o.customer_id = #{orderDetail.order.customerId}
        </where>
        group by od.product_id, od.width, od.height
        limit #{offset},#{pageSize};
@@ -115,46 +105,7 @@
        left join `order` o on o.order_id = od.order_id
        <where>
            and date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
            <if test="orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
                and o.customer_id = #{orderDetail.order.customerId}
            </if>
            <if test="orderDetail.order.project != null and orderDetail.order.project != ''">
                and o.project regexp #{orderDetail.order.project}
            </if>
            <if test="orderDetail.order.batch != null and orderDetail.order.batch != ''">
                and o.batch regexp #{orderDetail.order.batch}
            </if>
            <if test="orderDetail.order.money != null and orderDetail.order.money != ''">
                and o.money regexp REGEXP_REPLACE(#{orderDetail.order.money},'\\.0+$','')
            </if>
            <if test="orderDetail.order.orderType != null and orderDetail.order.orderType != ''">
                and o.order_type regexp #{orderDetail.order.orderType}
            </if>
            <if test="orderDetail.order.salesman != null and orderDetail.order.salesman != ''">
                and o.salesman regexp #{orderDetail.order.salesman}
            </if>
            <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
                and od.order_id regexp #{orderDetail.orderId}
            </if>
            <if test="orderDetail.orderNumber != null and orderDetail.orderNumber != ''">
                and od.order_number regexp #{orderDetail.orderNumber}
            </if>
            <if test="orderDetail.productId != null and orderDetail.productId != ''">
                and od.product_id regexp #{orderDetail.productId}
            </if>
            <if test="orderDetail.productName != null and orderDetail.productName != ''">
                and od.product_name regexp #{orderDetail.productName}
            </if>
            <if test="orderDetail.shape != null and orderDetail.shape != ''">
                and od.shape regexp #{orderDetail.shape}
            </if>
            <if test="orderDetail.width != null and orderDetail.width != ''">
                and od.width regexp  REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
            </if>
            <if test="orderDetail.height != null and orderDetail.height != ''">
                and od.height regexp  REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
            </if>
        </where>
        group by od.product_id, od.width, od.height) as zu
    </select>
@@ -197,6 +148,9 @@
            </if>
            <if test="customer.customerName != null and customer.customerName != ''">
                and c.customer_name regexp #{customer.customerName}
            </if>
            <if test="customer.customerAbbreviation != null and customer.customerAbbreviation != ''">
                and c.customer_abbreviation regexp #{customer.customerAbbreviation}
            </if>
            <if test="customer.grade != null and customer.grade != ''">
                and c.grade regexp #{customer.grade}
@@ -252,15 +206,15 @@
    </select>
    <insert id="insertCustomer"  useGeneratedKeys="true" >
        insert into sd.customer(customer_name,grade,money_limit,address,contact,phone)
        insert into sd.customer(customer_name,customer_abbreviation,grade,money_limit,address,contact,phone)
        values (
                   #{customer.customerName},#{customer.grade},#{customer.moneyLimit},
                   #{customer.customerName},#{customer.customerAbbreviation},#{customer.grade},#{customer.moneyLimit},
                #{customer.address},#{customer.contact},#{customer.phone}
               )
    </insert>
    <update id="updateCustomer"  useGeneratedKeys="true" >
        update sd.customer set customer_name=#{customer.customerName},grade=#{customer.grade},
        update sd.customer set customer_name=#{customer.customerName},customer_abbreviation=#{customer.customerAbbreviation},grade=#{customer.grade},
                                    money_limit=#{customer.moneyLimit},address= #{customer.address},
                                    contact=#{customer.contact},phone=#{customer.phone} where id=#{customer.id}
    </update>
@@ -268,4 +222,36 @@
    <delete id="deleteCustomer" >
        delete from sd.customer  where id=#{customer.id}
    </delete>
    <select id="exportSelectCustomerDeliveryDate" >
        select d.delivery_id,d.order_id,d.customer_id,d.customer_name,
               d.project,od.product_name,sum(dd.quantity) as quantity,sum(dd.area) as area,dd.price,sum(dd.money) as money,
               date(d.create_time) as create_time
        from sd.delivery_detail dd
                 left join sd.delivery d on d.delivery_id = dd.delivery_id
                 left join sd.order_detail od on od.order_id=dd.order_id and od.order_number=dd.order_number
        where date(d.create_time)>=#{startDate} and date(d.create_time) &lt;= #{endDate}
          and d.customer_id = #{orderDetail.order.customerId}
        group by od.product_id, od.width, od.height
    </select>
    <select id="exportSelectCustomerOderDate" >
        select od.order_id,
        o.project,
        od.product_name,
        o.customer_name,
        sum(od.quantity) as quantity,
        sum(od.area) as area,
        od.price,
        sum(od.gross_amount) as money,
        date(o.create_time) as create_time
        from order_detail od
        left join `order` o on o.order_id = od.order_id
        where
             date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
            and o.customer_id = #{orderDetail.order.customerId}
        group by od.product_id, od.width, od.height
    </select>
</mapper>