unis_sip/ruoyi-sip/src/main/resources/mapper/manage/OrderDeliveryMapper.xml

222 lines
13 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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.ruoyi.sip.mapper.OrderDeliveryMapper">
<resultMap type="OrderDelivery" id="OrderDeliveryResult">
<result property="id" column="id" />
<result property="orderId" column="order_id" />
<result property="deliveryCode" column="delivery_code" />
<result property="deliveryDate" column="delivery_date" />
<result property="deliveryType" column="delivery_type" />
<result property="logisticsCompany" column="logistics_company" />
<result property="logisticsCode" column="logistics_code" />
<result property="receiverName" column="receiver_name" />
<result property="receiverPhone" column="receiver_phone" />
<result property="receiverAddress" column="receiver_address" />
<result property="deliveryStatus" column="delivery_status" />
<result property="signTime" column="sign_time" />
<result property="remark" column="remark" />
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
<result property="deletedAt" column="deleted_at" />
</resultMap>
<sql id="selectOrderDeliveryVo">
select id, order_id, delivery_code, delivery_date, delivery_type, logistics_company, logistics_code, receiver_name, receiver_phone, receiver_address, delivery_status, sign_time, remark, created_at, updated_at, deleted_at from order_delivery
</sql>
<select id="selectOrderDeliveryList" parameterType="OrderDelivery" resultMap="OrderDeliveryResult">
select t1.id, t1.order_id, t1.delivery_code, t1.delivery_date, t1.delivery_type, t1.logistics_company, t1.logistics_code, t1.receiver_name, t1.receiver_phone, t1.receiver_address, t1.delivery_status, t1.sign_time, t1.remark, t1.created_at, t1.updated_at, t1.deleted_at,
t2.order_code,t2.order_name,t1.create_by,t1.update_by,t3.total,t4.user_name as create_by_name
from order_delivery t1
left join order_info t2 on t1.order_id = t2.id
left join (select count(1) as total,delivery_id from delivery_list group by delivery_id) t3 on t1.id = t3.delivery_id
left join sys_user t4 on t1.create_by=t4.user_id
<where>
t1.status=0
<if test="orderId != null "> and t1.order_id = #{orderId}</if>
<if test="deliveryCode != null and deliveryCode != ''"> and t1.delivery_code like concat('%', #{deliveryCode}, '%')</if>
<if test="deliveryDate != null "> and t1.delivery_date = #{deliveryDate}</if>
<if test="deliveryType != null and deliveryType != ''"> and t1.delivery_type = #{deliveryType}</if>
<if test="logisticsCompany != null and logisticsCompany != ''"> and t1.logistics_company = #{logisticsCompany}</if>
<if test="logisticsCode != null and logisticsCode != ''"> and t1.logistics_code = #{logisticsCode}</if>
<if test="deliveryStatus != null and deliveryStatus != ''"> and t1.delivery_status = #{deliveryStatus}</if>
<if test="orderName != null and orderName != ''"> and t2.order_name like concat('%', #{orderName},'%')</if>
<if test="ids != null and ids != ''">
and t1.id in
<foreach collection="ids.split(',')" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
order by t1.order_id,t1.delivery_date
</select>
<select id="selectOrderDeliveryById" parameterType="Long" resultMap="OrderDeliveryResult">
select t1.id, t1.order_id, t1.delivery_code, t1.delivery_date, t1.delivery_type, t1.logistics_company, t1.logistics_code, t1.receiver_name, t1.receiver_phone, t1.receiver_address, t1.delivery_status, t1.sign_time, t1.remark, t1.created_at, t1.updated_at, t1.deleted_at,
t2.order_code,t2.order_name,t1.create_by,t1.update_by
from order_delivery t1
left join order_info t2 on t1.order_id = t2.id
where t1.id = #{id}
</select>
<select id="count" resultType="java.lang.Integer">
select count(1) from order_delivery
<where>
<if test="status != null "> and tatus = #{status}</if>
<if test="orderId != null "> and order_id = #{orderId}</if>
<if test="deliveryCode != null and deliveryCode != ''"> and delivery_code like concat('%', #{deliveryCode}, '%')</if>
<if test="deliveryDate != null "> and delivery_date = #{deliveryDate}</if>
<if test="deliveryType != null and deliveryType != ''"> and delivery_type = #{deliveryType}</if>
<if test="logisticsCompany != null and logisticsCompany != ''"> and logistics_company = #{logisticsCompany}</if>
<if test="deliveryStatus != null and deliveryStatus != ''"> and delivery_status = #{deliveryStatus}</if>
<if test="createdAt != null "> and created_at between date_format(#{createdAt}, '%Y-%m-%d 00:00:00') and date_format(#{createdAt}, '%Y-%m-%d 23:59:59')</if>
</where>
</select>
<insert id="insertOrderDelivery" parameterType="OrderDelivery" useGeneratedKeys="true" keyProperty="id">
insert into order_delivery
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="orderId != null">order_id,</if>
<if test="deliveryCode != null and deliveryCode != ''">delivery_code,</if>
<if test="deliveryDate != null">delivery_date,</if>
<if test="deliveryType != null and deliveryType != ''">delivery_type,</if>
<if test="logisticsCompany != null">logistics_company,</if>
<if test="logisticsCode != null">logistics_code,</if>
<if test="receiverName != null and receiverName != ''">receiver_name,</if>
<if test="receiverPhone != null and receiverPhone != ''">receiver_phone,</if>
<if test="receiverAddress != null and receiverAddress != ''">receiver_address,</if>
<if test="deliveryStatus != null and deliveryStatus != ''">delivery_status,</if>
<if test="signTime != null">sign_time,</if>
<if test="remark != null">remark,</if>
<if test="createdAt != null">created_at,</if>
<if test="updatedAt != null">updated_at,</if>
<if test="deletedAt != null">deleted_at,</if>
<if test="createBy != null and createBy!=''">create_by,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderId != null">#{orderId},</if>
<if test="deliveryCode != null and deliveryCode != ''">#{deliveryCode},</if>
<if test="deliveryDate != null">#{deliveryDate},</if>
<if test="deliveryType != null and deliveryType != ''">#{deliveryType},</if>
<if test="logisticsCompany != null">#{logisticsCompany},</if>
<if test="logisticsCode != null">#{logisticsCode},</if>
<if test="receiverName != null and receiverName != ''">#{receiverName},</if>
<if test="receiverPhone != null and receiverPhone != ''">#{receiverPhone},</if>
<if test="receiverAddress != null and receiverAddress != ''">#{receiverAddress},</if>
<if test="deliveryStatus != null and deliveryStatus != ''">#{deliveryStatus},</if>
<if test="signTime != null">#{signTime},</if>
<if test="remark != null">#{remark},</if>
<if test="createdAt != null">#{createdAt},</if>
<if test="updatedAt != null">#{updatedAt},</if>
<if test="deletedAt != null">#{deletedAt},</if>
<if test="createBy != null and createBy!=''">#{createBy},</if>
</trim>
</insert>
<update id="updateOrderDelivery" parameterType="OrderDelivery">
update order_delivery
<trim prefix="SET" suffixOverrides=",">
<if test="orderId != null">order_id = #{orderId},</if>
<if test="deliveryCode != null and deliveryCode != ''">delivery_code = #{deliveryCode},</if>
<if test="deliveryDate != null">delivery_date = #{deliveryDate},</if>
<if test="deliveryType != null and deliveryType != ''">delivery_type = #{deliveryType},</if>
<if test="logisticsCompany != null">logistics_company = #{logisticsCompany},</if>
<if test="logisticsCode != null">logistics_code = #{logisticsCode},</if>
<if test="receiverName != null and receiverName != ''">receiver_name = #{receiverName},</if>
<if test="receiverPhone != null and receiverPhone != ''">receiver_phone = #{receiverPhone},</if>
<if test="receiverAddress != null and receiverAddress != ''">receiver_address = #{receiverAddress},</if>
<if test="deliveryStatus != null and deliveryStatus != ''">delivery_status = #{deliveryStatus},</if>
<if test="signTime != null">sign_time = #{signTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createdAt != null">created_at = #{createdAt},</if>
<if test="updatedAt != null">updated_at = #{updatedAt},</if>
<if test="deletedAt != null">deleted_at = #{deletedAt},</if>
<if test="updateBy != null and updateBy!=''">update_by = #{updateBy},</if>
</trim>
where id = #{id} and status=0
</update>
<delete id="deleteOrderDeliveryById" parameterType="Long">
update order_delivery set status =1, deleted_at=now() where id = #{id}
</delete>
<delete id="deleteOrderDeliveryByIds" parameterType="String">
update order_delivery set status =1, deleted_at=now() where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<!-- ================= MCP 只读查询(新增,仅 SELECT) ================= -->
<sql id="orderDeliveryPageFilter">
<if test="deliveryCodeList != null and deliveryCodeList.size() > 0">
and t1.delivery_code in
<foreach item="item" collection="deliveryCodeList" open="(" separator="," close=")">#{item}</foreach>
</if>
<if test="orderCodeList != null and orderCodeList.size() > 0">
and trim(t2.order_code) in
<foreach item="item" collection="orderCodeList" open="(" separator="," close=")">#{item}</foreach>
</if>
<if test="deliveryStatus != null and deliveryStatus != ''">and t1.delivery_status = #{deliveryStatus}</if>
<if test="startTime != null">and t1.delivery_date &gt;= #{startTime}</if>
<if test="endTime != null">and t1.delivery_date &lt; #{endTime}</if>
</sql>
<!-- warehouse_list(entity=ORDER_DELIVERY):manage 域发货单游标分页(排序键 delivery_code,id)
强制 deleted_at is null;left join order_info(trim(order_code) 对齐)补合同/客户信息 -->
<select id="listOrderDeliveryPage" resultType="java.util.LinkedHashMap">
select t1.id as id,
t1.delivery_code as deliveryCode,
t1.order_id as orderId,
t1.delivery_date as deliveryDate,
t1.delivery_type as deliveryType,
t1.logistics_company as logisticsCompany,
t1.logistics_code as logisticsCode,
t1.receiver_name as receiverName,
t1.receiver_phone as receiverPhone,
t1.receiver_address as receiverAddress,
t1.delivery_status as deliveryStatus,
t1.sign_time as signTime,
t1.remark as remark,
t1.created_at as createdAt,
t1.updated_at as updatedAt,
t4.user_name as createByName,
trim(t2.order_code) as orderCode,
t2.order_name as orderName,
t2.customer_code as customerCode,
t2.customer_name as customerName,
t2.order_agent_code as orderAgentCode,
t2.order_partner_code as orderPartnerCode
from order_delivery t1
left join order_info t2 on t1.order_id = t2.id
left join sys_user t4 on t1.create_by = t4.user_id
<where>
t1.deleted_at is null
<include refid="orderDeliveryPageFilter"/>
<if test="cursorKey != null">
and (t1.delivery_code &gt; #{cursorKey}
or (t1.delivery_code = #{cursorKey} and t1.id &gt; #{cursorId}))
</if>
</where>
order by t1.delivery_code, t1.id
limit #{limit}
</select>
<select id="countOrderDeliveryPage" resultType="long">
select count(1)
from order_delivery t1
left join order_info t2 on t1.order_id = t2.id
<where>
t1.deleted_at is null
<include refid="orderDeliveryPageFilter"/>
</where>
</select>
</mapper>