You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml

146 lines
6.5 KiB
XML

10 months ago
<?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.glxp.api.dao.collect.IoCollectOrderBackupMapper">
<select id="filterList" resultType="com.glxp.api.res.collect.IoCollectOrderResponse">
SELECT icob.billNo,
icob.busType,
icob.fromType,
icob.fromTypeDesc,
icob.fromCorp,
icob.billTime,
icob.orderCirType,
icob.createTime,
icob.workPlaceCode,
icob.remark,
icob.createUser,
icob.updateTime,
icob.updateUser,
icob.tagStatus,
icob.splitStatus,
icob.invAlert,
icob.splitMsg,
icob.fromCorpName,
icob.shipperName,
icob.thrBusType,
icob.shipper,
icob.tagMsg,
sys_workplace_document.busName busTypeName,
sw.workplaceName,
icob.id,
icob.orderTime,
icob.uploadStatus,
icob.uploadError,
icob.checkCodeStatus,
icob.errorMsg,
row_number() over ( order by case
when icob.orderTime is null then icob.createTime
else icob.orderTime end desc )
as orderSequence
FROM io_collect_order_backup icob
left join sys_workplace_document on icob.busType = sys_workplace_document.documentTypeCode
left join basic_corp bc on icob.fromCorp = bc.erpId
left join sys_workplace sw on icob.workPlaceCode = sw.workplaceId
<where>
<if test="billNo != '' and billNo != null">
AND billNo LIKE concat('%', #{billNo}, '%')
</if>
<if test="workplaceName != '' and workplaceName != null">
AND workplaceName LIKE concat('%', #{workplaceName}, '%')
</if>
<if test="busType != null and busType != ''">
AND busType = #{busType}
</if>
<if test="fromCorp != '' and fromCorp != null">
AND fromCorp LIKE concat('%', #{fromCorp}, '%')
</if>
<if test="busType != null and busType != ''">
AND busType = #{busType}
</if>
<if test="tagStatus != null">
AND tagStatus = #{tagStatus}
</if>
<if test="workPlaceCode != null">
AND icob.workPlaceCode = #{workPlaceCode}
</if>
<if test="chargeUser != null">
AND sw.chargeUser = #{chargeUser}
</if>
<if test="unionKey != null">
AND (
icob.billNo like concat('%', #{unionKey}, '%')
or icob.fromCorp like concat('%', #{unionKey}, '%')
or icob.fromCorpName like concat('%', #{unionKey}, '%')
or icob.backupOrderRemark1 like concat('%', #{unionKey}, '%')
or icob.backupOrderRemark2 like concat('%', #{unionKey}, '%')
or icob.backupOrderRemark3 like concat('%', #{unionKey}, '%')
or icob.backupOrderRemark4 like concat('%', #{unionKey}, '%')
or icob.backupOrderRemark5 like concat('%', #{unionKey}, '%')
or icob.backupOrderRemark6 like concat('%', #{unionKey}, '%'))
</if>
<if test="tagStatusList != null and tagStatusList.size() > 0">
and tagStatus in
<foreach collection="tagStatusList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="workPlaceCodes != null and workPlaceCodes.size() > 0">
and icob.workPlaceCode in
<foreach collection="workPlaceCodes" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="invAlert != null">
and icob.invAlert = #{invAlert}
</if>
<if test="invAlerts != null and invAlerts.size() > 0">
and icob.invAlert in
<foreach collection="invAlerts" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="uploadStatus != null">
and icob.uploadStatus = #{uploadStatus}
</if>
<if test="keyWords != null and keyWords != ''">
and (icob.billNo like concat('%', #{keyWords}, '%')
or icob.fromCorp like concat('%', #{keyWords}, '%')
or icob.workPlaceCode like concat('%', #{keyWords}, '%')
or icob.busType like concat('%', #{keyWords}, '%')
or icob.fromType like concat('%', #{keyWords}, '%'))
</if>
<if test="shipperName != '' and shipperName != null">
AND icob.shipperName LIKE concat('%', #{shipperName}, '%')
</if>
<if test="fromType != '' and fromType != null">
AND icob.fromType LIKE concat('%', #{fromType}, '%')
</if>
<if test="fromCorpName != '' and fromCorpName != null">
AND icob.fromCorpName LIKE concat('%', #{fromCorpName}, '%')
</if>
<if test="startTime != null and startTime != ''">
<![CDATA[
and icob.billTime >= DATE_FORMAT(#{startTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="endTime != null and endTime != ''">
<![CDATA[
and icob.billTime <= DATE_FORMAT(#{endTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="uploadStatusList!= null and uploadStatusList.size() > 0">
and uploadStatus IN
<foreach collection="uploadStatusList" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</where>
GROUP BY icob.billNo
order by case when icob.orderTime is null then icob.createTime else icob.orderTime end desc
</select>
10 months ago
</mapper>