订单列表优化

This commit is contained in:
luojiaquan
2026-10-14 14:20:13 +08:00
parent 8c4db2f80f
commit 2d7bd678f3
10 changed files with 327 additions and 87 deletions
@@ -0,0 +1,17 @@
<?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.bms.price.mapper.CustomerCodeResolveMapper">
<!-- 客户主数据仅 200 余行,名称精确匹配在 MySQL 侧代价极低 -->
<select id="selectCustomerCodesByKeywords" resultType="java.lang.String">
SELECT customer_code
FROM ctr_customer
WHERE
<foreach collection="keywords" item="kw" separator=" OR ">
customer_code = #{kw} OR customer_name = #{kw}
</foreach>
</select>
</mapper>
@@ -48,12 +48,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="tabOrderMonitorWhere">
o.BL_PICKUP = 1
AND o.ORDER_STATUS IN (3, 4, 5, 6, 7, 8, 11)
AND o.CUSTOMER_CODE IN
<foreach collection="query.customerCodes" item="code" open="(" separator="," close=")">
#{code}
</foreach>
AND o.PICKUP_DATE &gt;= TO_TIMESTAMP(#{query.beginTime}, 'YYYY-MM-DD HH24:MI:SS')
AND o.PICKUP_DATE &lt;= TO_TIMESTAMP(#{query.endTime}, 'YYYY-MM-DD HH24:MI:SS')
<if test="query.customerCodes != null and query.customerCodes.size() > 0">
AND o.CUSTOMER_CODE IN
<foreach collection="query.customerCodes" item="code" open="(" separator="," close=")">
#{code}
</foreach>
</if>
<if test="query.beginTime != null and query.beginTime != ''">
AND o.PICKUP_DATE &gt;= TO_TIMESTAMP(#{query.beginTime}, 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="query.endTime != null and query.endTime != ''">
AND o.PICKUP_DATE &lt;= TO_TIMESTAMP(#{query.endTime}, 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="query.orderId != null and query.orderId != ''">
AND o.ORDER_ID = #{query.orderId}
</if>
@@ -63,6 +69,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="query.transferOrderId != null and query.transferOrderId != ''">
AND o.TRANSFER_ORDER_ID = #{query.transferOrderId}
</if>
<if test="query.orderIdentifiers != null and query.orderIdentifiers.size() > 0">
AND (
o.ORDER_ID IN
<foreach collection="query.orderIdentifiers" item="oid" open="(" separator="," close=")">
#{oid}
</foreach>
OR o.ORG_ORDER_ID IN
<foreach collection="query.orderIdentifiers" item="oid" open="(" separator="," close=")">
#{oid}
</foreach>
OR o.TRANSFER_ORDER_ID IN
<foreach collection="query.orderIdentifiers" item="oid" open="(" separator="," close=")">
#{oid}
</foreach>
)
</if>
</sql>
<sql id="tabOrderMonitorColumns">