Files
GEAR-OA/gear-oa/src/main/resources/mapper/oa/GearOrderMapper.xml
2026-05-21 14:22:42 +08:00

109 lines
4.7 KiB
XML

<?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.gear.oa.mapper.GearOrderMapper">
<resultMap type="com.gear.oa.domain.GearOrder" id="GearOrderResult">
<result property="orderId" column="order_id"/>
<result property="orderCode" column="order_code"/>
<result property="customerId" column="customer_id"/>
<result property="company" column="company"/>
<result property="salesManager" column="sales_manager"/>
<result property="salesmanId" column="salesman_id"/>
<result property="orderStatus" column="order_status"/>
<result property="tradeType" column="trade_type"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="taxAmount" column="tax_amount"/>
<result property="noTaxAmount" column="no_tax_amount"/>
<result property="contractExcelOssIds" column="contract_excel_oss_ids"/>
</resultMap>
<select id="selectVoPlusPage" resultType="com.gear.oa.domain.vo.GearOrderVo">
select o.order_id,
o.order_code,
o.customer_id,
o.company,
o.salesman_id,
s.name as sales_manager,
o.order_status AS order_status,
o.remark,
o.del_flag,
o.create_time,
o.create_by,
o.update_time,
o.update_by,
o.tax_amount,
o.no_tax_amount,
o.contract_excel_oss_ids as contractExcelOssIds,
c.name as customerName,
(SELECT MAX(CAST(so.status AS SIGNED))
FROM gear_shipping_order so
WHERE so.order_id = o.order_id
AND so.del_flag = '0') AS shippingMaxStatus,
(CASE
WHEN EXISTS (SELECT 1
FROM gear_shipping_order so
WHERE so.order_id = o.order_id
AND so.del_flag = '0'
AND CAST(so.status AS SIGNED) >= 2) THEN 1
ELSE 0
END) AS shippedFlag,
(SELECT MAX(so.ship_time)
FROM gear_shipping_order so
WHERE so.order_id = o.order_id
AND so.del_flag = '0'
AND CAST(so.status AS SIGNED) >= 2) AS lastShipTime
from gear_order o
left join gear_customer c on o.customer_id = c.customer_id and c.del_flag = 0
left join gear_salesman s on o.salesman_id = s.salesman_id and s.del_flag = 0
${ew.customSqlSegment}
</select>
<select id="selectVoPagePlus" resultType="com.gear.oa.domain.vo.GearOrderVo">
select o.order_id,
o.order_code,
o.customer_id,
o.company,
o.salesman_id,
s.name as sales_manager,
o.order_status AS order_status,
o.remark,
o.del_flag,
o.create_time,
o.create_by,
o.update_time,
o.update_by,
o.tax_amount,
o.no_tax_amount,
o.contract_excel_oss_ids as contractExcelOssIds,
c.name as customerName,
(SELECT MAX(CAST(so.status AS SIGNED))
FROM gear_shipping_order so
WHERE so.order_id = o.order_id
AND so.del_flag = '0') AS shippingMaxStatus,
(CASE
WHEN EXISTS (SELECT 1
FROM gear_shipping_order so
WHERE so.order_id = o.order_id
AND so.del_flag = '0'
AND CAST(so.status AS SIGNED) >= 2) THEN 1
ELSE 0
END) AS shippedFlag,
(SELECT MAX(so.ship_time)
FROM gear_shipping_order so
WHERE so.order_id = o.order_id
AND so.del_flag = '0'
AND CAST(so.status AS SIGNED) >= 2) AS lastShipTime
from gear_order o
left join gear_customer c on o.customer_id = c.customer_id and c.del_flag = 0
left join gear_salesman s on o.salesman_id = s.salesman_id and s.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>