自动化立体仓库 - WMS系统
1
zhang
2025-09-01 e01fce2ebdd2bdba72682aa314656b57e68f211c
src/main/resources/mapper/MatMapper.xml
@@ -53,11 +53,41 @@
        FROM man_mat mm
        LEFT JOIN man_tag mt ON mm.tag_id = mt.id
        LEFT JOIN (
            select
            matnr,
            sum(anfme) as amount
            from man_loc_detl
            group by matnr
        SELECT
        matnr,
        SUM(anfme) AS amount
        FROM man_loc_detl
        GROUP BY matnr
        ) AS mld ON mld.matnr = mm.matnr
        WHERE 1=1
        <!-- ✅ 屏蔽 tag_id = 6 -->
        AND mt.id != 6
        <!-- ✅ 判断是否在路径中 or 本身 id 匹配 -->
        AND (CHARINDEX(',' + #{tagId} + ',', ',' + mt.path + ',') > 0 OR mt.id = #{tagId})
        <if test="matnr != null and matnr != ''">
            AND mm.matnr LIKE CONCAT('%', #{matnr}, '%')
        </if>
        <if test="memo != null and memo != ''">
            AND mm.memo LIKE CONCAT('%', #{memo}, '%')
        </if>
        ORDER BY mm.create_time DESC
    </select>
    <select id="listByPage2" resultMap="BaseResultMap">
        SELECT
        isnull(mld.amount,0) as stock,
        mm.*
        FROM man_mat mm
        LEFT JOIN man_tag mt ON mm.tag_id = mt.id
        LEFT JOIN (
        select
        matnr,
        sum(anfme) as amount
        from man_loc_detl
        group by matnr
        ) as mld on mld.matnr = mm.matnr
        WHERE 1=1
        and (mm.memo is null or mm.memo != '打包上线')
@@ -68,10 +98,56 @@
        <if test="maktx != null and maktx != ''">
            and mm.maktx like concat('%',#{maktx},'%')
        </if>
        <if test="specs != null and specs != ''">
            and mm.specs like concat('%',#{specs},'%')
        </if>
        ORDER BY mm.create_time DESC
    </select>
    <select id="selectByMatnr" resultMap="BaseResultMap">
        select top 1 * from man_mat where 1=1 and matnr = #{matnr}
    </select>
    <select id="selectByMatnrLink" resultMap="BaseResultMap">
        select * from man_mat
        where 1=1
        <if test="matnr != null and matnr != ''">
            and mm.matnr like concat('%',#{matnr},'%')
        </if>
    </select>
    <select id="getMatTurnPage" resultMap="BaseResultMap">
        select * from
        (
        select top 16
        ROW_NUMBER() over (order by a.matnr) as matNo,
        a.*
        from man_mat a
        where 1=1
        <if test="matnr!=null and matnr!='' ">
            and a.matnr like concat('%',#{matnr},'%')
        </if>
        ) t where t.matNo between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
    <select id="getBoxMemoMap" resultType="map">
        SELECT tag_id, memo
        FROM man_mat
        WHERE tag_id IN
        <foreach item="id" collection="tagIds" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </select>
    <select id="getStockOutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
        select
        count(1)
        from man_mat a
        where 1=1
        <if test="matnr!=null and matnr!='' ">
            and a.matnr = #{matnr}
        </if>
    </select>
</mapper>