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/IoCollectOrderMapper.xml

138 lines
5.5 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.glxp.api.dao.collect.IoCollectOrderMapper">
<select id="filterList" parameterType="com.glxp.api.req.collect.CollectOrderRequest"
resultType="com.glxp.api.res.collect.IoCollectOrderResponse">
SELECT ico.billNo,
ico.busType,
ico.fromType,
ico.fromTypeDesc,
ico.fromCorp,
ico.billTime,
ico.orderCirType,
ico.createTime,
ico.workPlaceCode,
ico.remark,
ico.createUser,
ico.updateTime,
ico.updateUser,
ico.tagStatus,
ico.splitStatus,
ico.invAlert,
ico.splitMsg,
ico.fromCorpName,
ico.tagMsg,
sys_workplace_document.busName busTypeName,
sw.workplaceName,
ico.id,
ico.orderTime,
ico.uploadStatus,
ico.uploadError,
ico.errorMsg,
row_number() over ( order by case when ico.orderTime is null then ico.createTime else ico.orderTime end desc ) as orderSequence
FROM io_collect_order ico
left join sys_workplace_document on ico.busType = sys_workplace_document.documentTypeCode
left join basic_corp bc on ico.fromCorp = bc.erpId
left join sys_workplace sw on ico.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 ico.workPlaceCode = #{workPlaceCode}
</if>
<if test="chargeUser != null">
AND sw.chargeUser = #{chargeUser}
</if>
<if test="unionKey != null">
AND (
ico.billNo like concat('%', #{unionKey}, '%')
or ico.fromCorp like concat('%', #{unionKey}, '%')
or ico.fromCorpName like concat('%', #{unionKey}, '%')
or ico.backupOrderRemark1 like concat('%', #{unionKey}, '%')
or ico.backupOrderRemark2 like concat('%', #{unionKey}, '%')
or ico.backupOrderRemark3 like concat('%', #{unionKey}, '%')
or ico.backupOrderRemark4 like concat('%', #{unionKey}, '%')
or ico.backupOrderRemark5 like concat('%', #{unionKey}, '%')
or ico.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 ico.workPlaceCode in
<foreach collection="workPlaceCodes" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="invAlert != null">
and ico.invAlert =#{invAlert}
</if>
<if test="invAlerts != null and invAlerts.size() > 0">
and ico.invAlert in
<foreach collection="invAlerts" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="uploadStatus != null">
and ico.uploadStatus = #{uploadStatus}
</if>
</where>
GROUP BY
ico.billNo
order by case when ico.orderTime is null then ico.createTime else ico.orderTime end desc
</select>
<select id="clearOrder">
-- 清除拆零队列
TRUNCATE io_split_code;
TRUNCATE io_split_code_detail;
TRUNCATE io_split_fifo_code;
truncate io_split_fifo_inv;
-- 清除拆零,原始单据等
TRUNCATE io_collect_code;
TRUNCATE io_collect_order;
TRUNCATE io_collect_order_biz;
TRUNCATE io_collect_order_code_auto;
TRUNCATE io_collect_order_code_man;
TRUNCATE io_split_des_order;
TRUNCATE io_split_des_order_code;
TRUNCATE io_split_des_order_detail;
TRUNCATE io_collect_order_code_man;
TRUNCATE io_collect_order_origin;
TRUNCATE io_collect_order_biz_origin;
</select>
<update id="updateInvAlert" parameterType="map">
UPDATE io_collect_order
SET invAlert = #{invAlert}
WHERE id = #{id}
</update>
</mapper>