SupplychainOpenItemMapper.xml 7.19 KB
<?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.lecuntao.ordering.customization.dal.SupplychainOpenItemMapper">

    <sql id="whereForFindList">
        <if test="request.itemId!=null"> AND `ITEM_ID` =#{ request.itemId }</if>
        <if test="request.supplychainOpenItemExportList != null and request.supplychainOpenItemExportList.size != 0">
            AND
            <foreach collection="request.supplychainOpenItemExportList" item="supplychainOpenItemExport" index="index" open="(" close=")" separator="OR">
                (
                `ITEM_NUMBER` = #{supplychainOpenItemExport.itemNumber}
                <if test="supplychainOpenItemExport.itemSpecCode != ''">
                    AND `ITEM_SPEC_CODE` = #{supplychainOpenItemExport.itemSpecCode}
                </if>
                <if test="supplychainOpenItemExport.itemSpecCode == ''">
                    AND (`ITEM_SPEC_CODE` IS  NULL OR `ITEM_SPEC_CODE` = '')
                </if>
                )
            </foreach>

        </if>

    </sql>

    <sql id="whereForSearchList">
           (
           `ITEM_NAME` LIKE CONCAT ('%',#{ request.keyword },'%')  OR
           `ITEM_NUMBER` LIKE CONCAT ('%',#{ request.keyword },'%')  OR
           `ITEM_SPEC_CODE` LIKE CONCAT ('%',#{ request.keyword },'%')
           )
    </sql>

    <select id="find" resultMap="supplychainOpenItemPO">
        SELECT * FROM
        (
            SELECT
                <include refid="entityColumnList"/>
            FROM
                `ZH_SUPPLYCHAIN_OPEN_ITEM`
            WHERE
                `IS_DELETED`=0
                AND `TENANT_ID`=#{ passport.tenantId }
                <include refid="whereForFindList" />
        ) AS T

        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="findDemandId" resultMap="supplychainOpenItemPO">
        SELECT * FROM
        (
        SELECT
        <include refid="entityColumnList"/>
        FROM
        `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
        `IS_DELETED`=0
        <include refid="whereForFindList" />
        ) AS T

        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>


    <select id="findCountDemandId"   resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
            `IS_DELETED`=0
            <include refid="whereForFindList" />
    </select>

    <select id="findCount"   resultType="java.lang.Long">
        SELECT
        COUNT(*)
        FROM
        `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
        <include refid="whereForFindList" />
    </select>

    <select id="search" resultMap="supplychainOpenItemPO">
        SELECT * FROM
        (
            SELECT
                <include refid="entityColumnList"/>
            FROM
                `ZH_SUPPLYCHAIN_OPEN_ITEM`
            WHERE
                `IS_DELETED`=0
                AND `TENANT_ID`=#{ passport.tenantId }
                <if test="request.keyword !=null">
                      AND <include refid="whereForSearchList" />
                </if>

        ) AS T
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="searchCount"   resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND <include refid="whereForSearchList" />
    </select>

    <select id="existByCode" resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND  `ID` != #{id}
            AND `CODE` = #{code}
    </select>


    <update id="update">
        UPDATE
            `ZH_SUPPLYCHAIN_OPEN_ITEM`
        SET
        `ITEM_ID`=#{ request.itemId },
        `ITEM_NAME`=#{ request.itemName },
        `ITEM_NUMBER`=#{ request.itemNumber },
        `ITEM_SPEC_CODE`=#{ request.itemSpecCode },
        `ITEM_SPEC_NAME`=#{ request.itemSpecName },
        `IS_ACTIVE`=#{ request.isActive },
        `LAST_UPDATED_BY`=#{ passport.userId }
        ,`LAST_UPDATE_TIME`=SYSDATE()
        ,`ROW_VERSION`=#{ request.rowVersion }+1
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` = #{ request.id }
            AND `ROW_VERSION` = #{ request.rowVersion }
    </update>



    <update id="batchUpdate">
        UPDATE
            `ZH_SUPPLYCHAIN_OPEN_ITEM`
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="`ROW_VERSION` = case" suffix="end,">
                <foreach collection="openItemList" item="openItem" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ openItem.id }
                    )
                    THEN `ROW_VERSION` + 1
                </foreach>
            </trim>
            <trim prefix="`IS_ACTIVE` = case" suffix="end,">
                <foreach collection="openItemList" item="openItem" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ openItem.id }
                    )
                    THEN #{ openItem.isActive }
                </foreach>
            </trim>
        </trim>
        WHERE
        <foreach collection="openItemList" separator="or" item="openItem" index="index">
            (
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` = #{ openItem.id }
            )
        </foreach>
    </update>

    <select id="checkIsExit" resultType="java.lang.Long">
        SELECT count(1) FROM
        `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
        `IS_DELETED`=0
        <if test="request.itemNumber !=null">
            AND ITEM_NUMBER = #{request.itemNumber}
        </if>
        <if test="request.itemSpecCode !=null">
            AND ITEM_SPEC_CODE = #{request.itemSpecCode}
        </if>
    </select>

    <select id="findNoTenant" resultMap="supplychainOpenItemPO">
        SELECT * FROM
        (
        SELECT
        <include refid="entityColumnList"/>
        FROM
        `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
        `IS_DELETED`=0
        <include refid="whereForFindList" />
        ) AS T

        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="findNoTenantCount" resultType="java.lang.Long">
        SELECT count(1) FROM
        (
        SELECT
        <include refid="entityColumnList"/>
        FROM
        `ZH_SUPPLYCHAIN_OPEN_ITEM`
        WHERE
        `IS_DELETED`=0
        <include refid="whereForFindList" />
        ) AS T
    </select>


</mapper>