SupplychainItemMapper.xml 15.2 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.SupplychainItemMapper">

    <sql id="whereForFindList">
        <if test="request.exitId!=null"> AND `ID` !=#{ request.exitId }</if>
        <if test="request.supplyTenantId!=null"> AND `SUPPLY_TENANT_ID` =#{ request.supplyTenantId }</if>
        <if test="request.supplyItemId!=null"> AND `SUPPLY_ITEM_ID` =#{ request.supplyItemId }</if>
        <if test="request.supplyItemIdList!=null"> AND `SUPPLY_ITEM_ID` IN
            <foreach collection="request.supplyItemIdList" open="(" close=")" item="supplyItemId" index="index" separator=",">
                #{ supplyItemId }
            </foreach>
        </if>
        <if test="request.demandTenantId!=null"> AND `DEMAND_TENANT_ID` =#{ request.demandTenantId }</if>
        <if test="request.demandItemId!=null"> AND `DEMAND_ITEM_ID` =#{ request.demandItemId }</if>
        <if test="request.demandItemIdList!=null"> AND `DEMAND_ITEM_ID` IN
            <foreach collection="request.demandItemIdList" open="(" close=")" item="demandItemId" index="index" separator=",">
                #{ demandItemId }
            </foreach>
        </if>
        <if test="request.demandCommodityId!=null"> AND `DEMAND_COMMODITY_ID` =#{ request.demandCommodityId }</if>
        <if test="request.supplyIsActive!=null"> AND `SUPPLY_IS_ACTIVE` =#{ request.supplyIsActive }</if>
        <if test="request.demandIsActive!=null"> AND `DEMAND_IS_ACTIVE` =#{ request.demandIsActive }</if>

        <if test="request.supplychainItemList != null and request.supplychainItemList.size != 0">
            AND
            <foreach collection="request.supplychainItemList" item="SupplychainItem" index="index" open="(" close=")" separator="OR">
                (`SUPPLY_ITEM_NUMBER` = #{SupplychainItem.supplyItemNumber}
                <if test="SupplychainItem.supplyItemSpecCode != null">
                    AND `SUPPLY_ITEM_SPEC_CODE` = #{SupplychainItem.supplyItemSpecCode}
                </if>
                )
            </foreach>
        </if>
        <if test="request.keyword!=null"> AND <include refid="whereForSearchList" /></if>
    </sql>

    <sql id="whereForSearchList">
           (
              `SUPPLY_ITEM_NAME` LIKE CONCAT ('%',#{ request.keyword },'%')
              OR `SUPPLY_ITEM_NUMBER` LIKE CONCAT ('%',#{ request.keyword },'%')
              OR `SUPPLY_ITEM_SPEC_CODE` LIKE CONCAT ('%',#{ request.keyword },'%')
              OR `SUPPLY_ITEM_SPEC_NAME` LIKE CONCAT ('%',#{ request.keyword },'%')
              OR `DEMAND_ITEM_NAME` LIKE CONCAT ('%',#{ request.keyword },'%')
              OR `DEMAND_ITEM_NUMBER` LIKE CONCAT ('%',#{ request.keyword },'%')
              OR `DEMAND_ITEM_SPEC_CODE` LIKE CONCAT ('%',#{ request.keyword },'%')
              OR `DEMAND_ITEM_SPEC_NAME` LIKE CONCAT ('%',#{ request.keyword },'%')
           )
    </sql>

    <select id="find" resultMap="supplychainItemPO">
        SELECT * FROM
        (
            SELECT
                <include refid="entityColumnList"/>
            FROM
                `ZH_SUPPLYCHAIN_ITEM`
            WHERE
                `IS_DELETED`=0
                <include refid="whereForFindList" />
        ) AS T
        ORDER BY id ASC
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

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

    <select id="search" resultMap="supplychainItemPO">
        SELECT * FROM
        (
            SELECT
                <include refid="entityColumnList"/>
            FROM
                `ZH_SUPPLYCHAIN_ITEM`
            WHERE
                `IS_DELETED`=0
                <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_ITEM`
        WHERE
            `IS_DELETED`=0
            AND <include refid="whereForSearchList" />
    </select>

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


    <update id="update">
        UPDATE
            `ZH_SUPPLYCHAIN_ITEM`
        SET
        `SUPPLY_TENANT_ID`=#{ request.supplyTenantId },
        `SUPPLY_ITEM_ID`=#{ request.supplyItemId },
        `SUPPLY_ITEM_NAME`=#{ request.supplyItemName },
        `SUPPLY_ITEM_NUMBER`=#{ request.supplyItemNumber },
        `SUPPLY_ITEM_SPEC_CODE`=#{ request.supplyItemSpecCode },
        `SUPPLY_ITEM_SPEC_NAME`=#{ request.supplyItemSpecName },
        `SUPPLY_COMMODITY_ID`=#{ request.supplyCommodityId },
        `DEMAND_TENANT_ID`=#{ request.demandTenantId },
        `DEMAND_ITEM_ID`=#{ request.demandItemId },
        `DEMAND_ITEM_NAME`=#{ request.demandItemName },
        `DEMAND_ITEM_NUMBER`=#{ request.demandItemNumber },
        `DEMAND_ITEM_SPEC_CODE`=#{ request.demandItemSpecCode },
        `DEMAND_ITEM_SPEC_NAME`=#{ request.demandItemSpecName },
        `DEMAND_COMMODITY_ID`=#{ request.demandCommodityId },
        `SUPPLY_IS_ACTIVE`=#{ request.supplyIsActive },
        `SUPPLY_ACTIVE_TIME`=#{ request.supplyActiveTime },
        `SUPPLY_ACTIVE_USER_ID`=#{ request.supplyActiveUserId },
        `SUPPLY_ACTIVE_USER_NAME`=#{ request.supplyActiveUserName },
        `DEMAND_IS_ACTIVE`=#{ request.demandIsActive },
        `DEMAND_ACTIVE_TIME`=#{ request.demandActiveTime },
        `DEMAND_ACTIVE_USER_ID`=#{ request.demandActiveUserId },
        `DEMAND_ACTIVE_USER_NAME`=#{ request.demandActiveUserName },
        `LAST_UPDATED_BY`=#{ passport.userId }
        ,`LAST_UPDATE_TIME`=SYSDATE()
        ,`ROW_VERSION`=#{ request.rowVersion }+1
        WHERE
            `IS_DELETED`=0
            AND `ID` = #{ request.id }
            AND `ROW_VERSION` = #{ request.rowVersion }
    </update>

    <update id="batchUpdate">
        UPDATE
        `ZH_SUPPLYCHAIN_ITEM`
        <trim prefix="set" suffixOverrides=",">

            <trim prefix="`SUPPLY_ITEM_ID` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.supplyItemId }
                </foreach>
            </trim>
            <trim prefix="`SUPPLY_ITEM_NAME` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.supplyItemName }
                </foreach>
            </trim>
            <trim prefix="`SUPPLY_ITEM_NUMBER` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.supplyItemNumber }
                </foreach>
            </trim>
            <trim prefix="`SUPPLY_ITEM_SPEC_CODE` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.supplyItemSpecCode }
                </foreach>
            </trim>
            <trim prefix="`SUPPLY_ITEM_SPEC_NAME` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.supplyItemSpecName }
                </foreach>
            </trim>
            <trim prefix="`SUPPLY_COMMODITY_ID` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.supplyCommodityId }
                </foreach>
            </trim>
            <trim prefix="`DEMAND_ITEM_ID` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.demandItemId }
                </foreach>
            </trim>
            <trim prefix="`DEMAND_ITEM_NAME` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.demandItemName }
                </foreach>
            </trim>
            <trim prefix="`DEMAND_ITEM_NUMBER` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.demandItemNumber }
                </foreach>
            </trim>
            <trim prefix="`DEMAND_ITEM_SPEC_CODE` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.demandItemSpecCode }
                </foreach>
            </trim>
            <trim prefix="`DEMAND_ITEM_SPEC_NAME` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.demandItemSpecName }
                </foreach>
            </trim>
            <trim prefix="`DEMAND_COMMODITY_ID` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.demandCommodityId }
                </foreach>
            </trim>
            <trim prefix="`SUPPLY_IS_ACTIVE` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.supplyIsActive }
                </foreach>
            </trim>
            <trim prefix="`DEMAND_IS_ACTIVE` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN #{ item.demandIsActive }
                </foreach>
            </trim>
            <trim prefix="`ROW_VERSION` = case" suffix="end,">
                <foreach collection="itemList" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `ID` = #{ item.id }
                    )
                    THEN `ROW_VERSION` + 1
                </foreach>
            </trim>
        </trim>
        WHERE
        <foreach collection="itemList" separator="or" item="item" index="index">
            (
            `IS_DELETED`=0
            AND `ID` = #{ item.id }
            )
        </foreach>

    </update>


    <insert id="insertBatchByDemandTenantId">
        INSERT INTO
        `ZH_SUPPLYCHAIN_ITEM`
        (
        <include refid="entityColumnList" />
        )
        VALUES
        <foreach collection="list" item= "supplychainItem" index ="index" separator=",">
            (
            #{ supplychainItem.id },

            #{ supplyTenantId },
            #{ supplychainItem.supplyItemId },
            #{ supplychainItem.supplyItemName },
            #{ supplychainItem.supplyItemNumber },
            #{ supplychainItem.supplyItemSpecCode },
            #{ supplychainItem.supplyItemSpecName },
            #{ supplychainItem.supplyCommodityId },
            #{ passport.tenantId },
            #{ supplychainItem.demandItemId },
            #{ supplychainItem.demandItemName },
            #{ supplychainItem.demandItemNumber },
            #{ supplychainItem.demandItemSpecCode },
            #{ supplychainItem.demandItemSpecName },
            #{ supplychainItem.demandCommodityId },
            1,
            sysdate(),
            #{ passport.userId},
            #{ passport.userName},
            1,
            sysdate(),
            #{ supplychainItem.demandActiveUserId },
            #{ supplychainItem.demandActiveUserName },
            0,0,#{ passport.userId },sysdate(),null,null
            )
        </foreach >
    </insert>

    <update id="updateByItemId">
        UPDATE
        `ZH_SUPPLYCHAIN_ITEM`
        SET
        `SUPPLY_ITEM_NAME`=#{ request.supplyItemName },
        `SUPPLY_ITEM_NUMBER`=#{ request.supplyItemNumber },
        `SUPPLY_ITEM_SPEC_CODE`=#{ request.supplyItemSpecCode },
        `SUPPLY_ITEM_SPEC_NAME`=#{ request.supplyItemSpecName },
        `LAST_UPDATED_BY`=#{ passport.userId }
        ,`LAST_UPDATE_TIME`=SYSDATE()
        ,`ROW_VERSION`=`ROW_VERSION`+1
        WHERE
        `IS_DELETED`=0
        AND `SUPPLY_ITEM_ID` = #{ request.supplyItemId }
        AND `SUPPLY_TENANT_ID`=#{passport.tenantId}
    </update>

    <update id="updateDemandItemByItemId">
        UPDATE
        `ZH_SUPPLYCHAIN_ITEM`
        SET
        `DEMAND_ITEM_NAME`=#{ request.demandItemName },
        <if test="request.demandItemName != null">
            `DEMAND_IS_ACTIVE` = #{request.demandIsActive},
        </if>
        `DEMAND_ITEM_NUMBER`=#{ request.demandItemNumber },
        `DEMAND_ITEM_SPEC_CODE`=#{ request.demandItemSpecCode },
        `DEMAND_ITEM_SPEC_NAME`=#{ request.demandItemSpecName },
        `LAST_UPDATED_BY`=#{ passport.userId }
        ,`LAST_UPDATE_TIME`=SYSDATE()
        ,`ROW_VERSION`=`row_version`+1
        WHERE
        `IS_DELETED`=0
        AND `DEMAND_ITEM_ID` = #{ request.demandItemId }
    </update>

    <select id="checkIsExit" resultType="java.lang.Long">
        SELECT count(1) FROM
        `ZH_SUPPLYCHAIN_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>





</mapper>