chenlu
2024-05-23 0a567fd9c3baeb8022c77fa1a6a96d4c60cfa11c
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -83,6 +83,9 @@
        <result column="creator" property="delivery.creator"/>
        <result column="salesman" property="delivery.salesman"/>
        <result column="product_id" property="orderDetail.productId"/>
        <result column="product_name" property="orderDetail.productName"/>
    </resultMap>
@@ -121,6 +124,10 @@
        update sd.order_detail set delivery_num=delivery_num-#{quantity} where order_id=#{orderId} and order_number=#{orderNumber}
    </update>
    <update id="updateOrderDelivery">
        update sd.`order` set delivery=#{state} where order_id=#{orderDetail.orderId}
    </update>
    <select id="getdeliveryDetailmaximum" >
        select count(*) from sd.delivery_detail where  delivery_id=#{deliveryId}
    </select>
@@ -129,14 +136,22 @@
        select * from sd.delivery_detail where  delivery_id=#{deliveryId}
    </select>
    <select id="getSelectDetailQuantity" >
        select quantity from sd.`order` where  order_id=#{orderId}
    </select>
    <select id="getSelectDetailNum" >
        select sum(quantity) from sd.order_detail where  order_id=#{orderId}
    </select>
    <insert id="insertDeliveryDetail"  useGeneratedKeys="true" >
        insert into sd.delivery_detail (delivery_id,delivery_number,order_number,
                                        area,order_id,quantity,money,delivery_detail_remakes,delivery_detail_state,create_time)
                                        area,order_id,quantity,money,delivery_detail_remakes,delivery_detail_state,other_columns,create_time)
        values (
                   #{number} ,#{deliveryNumber},#{orderDetail.orderNumber},#{orderDetail.computeGrossArea},
                #{orderDetail.orderId},#{orderDetail.deliveryDetail.quantity},
                #{orderDetail.price}*#{orderDetail.deliveryDetail.quantity},'',1,now()
                #{orderDetail.price}*#{orderDetail.deliveryDetail.quantity},'',1,#{orderDetail.otherColumns},now()
               )
    </insert>
@@ -167,7 +182,8 @@
               od.processing_note,
               od.edging_type,
               od.perimeter,
               dd.delivery_detail_remakes
               dd.delivery_detail_remakes,
               dd.other_columns
        from sd.delivery_detail dd
        left join sd.delivery d on dd.delivery_id=d.delivery_id
        left join sd.order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
@@ -668,6 +684,195 @@
        order by dd.delivery_id,dd.delivery_number
    </select>
    <select id="getSelectDeliveryDetailProductReport" resultMap="selectDeliveryDetail">
        select dd.delivery_id,
        dd.delivery_number,
        od.product_id,
        od.product_name,
        d.payment_terms,
        d.project,
        d.customer_id,
        d.customer_name,
        d.delivery_date,
        d.pay_method,
        d.pay_date,
        d.salesman,
        d.creator,
        d.contacts,
        d.contact_number,
        d.delivery_address,
        dd.order_id,
        dd.order_number,
        sum(dd.area) as area,
        sum(dd.money) as money,
        sum(dd.quantity) as quantity,
        dd.delivery_detail_remakes,
        dd.create_time
        from sd.delivery_detail dd left join delivery d on dd.delivery_id=d.delivery_id
            left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
        <where>
            and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
            </if>
            <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
            </if>
            <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
            </if>
            <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
            </if>
            <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
                and dd.area like concat('%', #{deliveryDetail.area},'%')
            </if>
            <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
                and dd.money like concat('%', #{deliveryDetail.money},'%')
            </if>
            <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
            </if>
            <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
            </if>
            <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
            </if>
            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productName != null and deliveryDetail.orderDetail.productName != '')">
                and od.product_id like concat('%', #{deliveryDetail.orderDetail.productName},'%')
            </if>
            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productId != null and deliveryDetail.orderDetail.productId != '')">
                and od.product_name like concat('%', #{deliveryDetail.orderDetail.productId},'%')
            </if>
        </where>
        group by dd.delivery_id,od.product_id
        order by dd.delivery_id,dd.delivery_number
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectDeliveryDetailProductReportPageTotal">
        select
        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
        count(zu.id) as 'total' from (
        select dd.id as id
        from sd.delivery_detail dd left join delivery d on dd.delivery_id=d.delivery_id
        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
        <where>
            and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
            </if>
            <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
            </if>
            <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
            </if>
            <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
            </if>
            <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
                and dd.area like concat('%', #{deliveryDetail.area},'%')
            </if>
            <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
                and dd.money like concat('%', #{deliveryDetail.money},'%')
            </if>
            <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
            </if>
            <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
            </if>
            <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
            </if>
            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
            </if>
            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productName != null and deliveryDetail.orderDetail.productName != '')">
                and od.product_id like concat('%', #{deliveryDetail.orderDetail.productName},'%')
            </if>
            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productId != null and deliveryDetail.orderDetail.productId != '')">
                and od.product_name like concat('%', #{deliveryDetail.orderDetail.productId},'%')
            </if>
        </where>
        group by dd.delivery_id,od.product_id) as zu
    </select>
    <select id="getSelectDeliveryPrinting" resultMap="selectDeliveryDetailOrderDetail" >
        select dd.delivery_id,od.order_id,od.product_id,od.product_name,sum(dd.area) as area,sum(dd.money) as money,sum(dd.quantity) as quantity from
        delivery_detail dd left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
@@ -698,4 +903,63 @@
          and od.order_id = #{orderId}
          and od.product_id = #{productId}
    </select>
    <select id="exportDeliveryDetailReport">
        select dd.id,
            dd.delivery_id,
        dd.delivery_number,
        d.payment_terms,
        d.project,
        d.customer_id,
        d.customer_name,
        d.delivery_date,
        d.pay_method,
        d.pay_date,
        d.salesman,
        d.creator,
        d.contacts,
        d.contact_number,
        d.delivery_address,
        dd.order_id,
        dd.order_number,
        dd.area,
        dd.money,
        dd.quantity,
        dd.delivery_detail_remakes,
        dd.create_time
        from sd.delivery_detail dd
        left join sd.delivery d on dd.delivery_id=d.delivery_id
        where  date(d.create_time)>=#{dates[0]} and date(d.create_time) &lt;= #{dates[1]}
    </select>
    <select id="exportDeliveryDetailProductReport">
        select dd.id,
            dd.delivery_id,
               dd.delivery_number,
               od.product_id,
               od.product_name,
               d.payment_terms,
               d.project,
               d.customer_id,
               d.customer_name,
               d.delivery_date,
               d.pay_method,
               d.pay_date,
               d.salesman,
               d.creator,
               d.contacts,
               d.contact_number,
               d.delivery_address,
               dd.order_id,
               dd.order_number,
               sum(dd.area) as area,
               sum(dd.money) as money,
               sum(dd.quantity) as quantity,
               dd.delivery_detail_remakes,
               dd.create_time
        from sd.delivery_detail dd left join delivery d on dd.delivery_id=d.delivery_id
                                   left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
        where  date(d.create_time)>=#{dates[0]} and date(d.create_time) &lt;= #{dates[1]}
    </select>
</mapper>