|  |  | 
 |  |  |  | 
 |  |  |     </resultMap> | 
 |  |  |  | 
 |  |  |     <sql id="locDetlCondition"> | 
 |  |  |         <if test="loc_no != null and loc_no != ''"> | 
 |  |  |             and mld.loc_no like concat('%',#{loc_no},'%') | 
 |  |  |         </if> | 
 |  |  |         <if test="matnr != null and matnr != ''"> | 
 |  |  |             and mld.matnr like concat('%',#{matnr},'%') | 
 |  |  |         </if> | 
 |  |  |         <if test="maktx != null and maktx != ''"> | 
 |  |  |             and mld.maktx like concat('%',#{maktx},'%') | 
 |  |  |         </if> | 
 |  |  |         <if test="startTime!=null and endTime!=null"> | 
 |  |  |             and mld.update_time between #{startTime} and #{endTime} | 
 |  |  |         </if> | 
 |  |  |     </sql> | 
 |  |  |  | 
 |  |  |     <select id="listByPage" resultMap="BaseResultMap"> | 
 |  |  |         select * from | 
 |  |  |         ( | 
 |  |  |             SELECT | 
 |  |  |             ROW_NUMBER() over (order by mld.create_time desc) as row, | 
 |  |  |             mld.* | 
 |  |  |             FROM man_loc_detl mld | 
 |  |  |             LEFT JOIN man_node mn ON mld.node_id = mn.id | 
 |  |  |             WHERE 1=1 | 
 |  |  |             AND (CHARINDEX(#{node_id}, ','+mn.path+',') > 0 OR mn.id = #{node_id}) | 
 |  |  |             <include refid="locDetlCondition"></include> | 
 |  |  |         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="listByPageCount" parameterType="java.util.Map" resultType="java.lang.Integer"> | 
 |  |  |         select | 
 |  |  |         count(1) | 
 |  |  |         FROM man_loc_detl mld | 
 |  |  |         LEFT JOIN man_node mn ON mld.node_id = mn.id | 
 |  |  |         WHERE 1=1 | 
 |  |  |         AND (CHARINDEX(#{node_id}, ','+mn.path+',') > 0 OR mn.id = #{node_id}) | 
 |  |  |         <include refid="locDetlCondition"></include> | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="selectByLocNoAndMatnr" resultMap="BaseResultMap"> | 
 |  |  |         select top 1 * | 
 |  |  |         from man_loc_detl | 
 |  |  |         where 1=1 | 
 |  |  |         and anfme > 0 | 
 |  |  |         <if test="nodeId != null and nodeId != ''"> | 
 |  |  |             and node_id = #{nodeId} | 
 |  |  |         </if> | 
 |  |  |         <if test="matnr != null and matnr != ''"> | 
 |  |  |             and matnr = #{matnr} | 
 |  |  |         </if> | 
 |  |  |         order by create_time asc | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="selectCountByMatnr" resultType="java.lang.Double"> | 
 |  |  |        select sum(anfme) as count from man_loc_detl where 1=1 and matnr = #{matnr} | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <update id="reduceStock"> | 
 |  |  |         update man_loc_detl | 
 |  |  |         set anfme = anfme - #{anfme} | 
 |  |  |         , update_time = getdate() | 
 |  |  |         where 1=1 | 
 |  |  |         and node_id = #{nodeId} | 
 |  |  |         and matnr = #{matnr} | 
 |  |  |     </update> | 
 |  |  |  | 
 |  |  |     <update id="incrementStock"> | 
 |  |  |         update man_loc_detl | 
 |  |  |         set anfme = anfme + #{anfme} | 
 |  |  |         , update_time = getdate() | 
 |  |  |         where 1=1 | 
 |  |  |         and node_id = #{nodeId} | 
 |  |  |         and matnr = #{matnr} | 
 |  |  |     </update> | 
 |  |  |  | 
 |  |  |     <update id="removeStock"> | 
 |  |  |         delete from man_loc_detl | 
 |  |  |         where 1=1 | 
 |  |  |         and node_id = #{nodeId} | 
 |  |  |         and matnr = #{matnr} | 
 |  |  |     </update> | 
 |  |  |  | 
 |  |  |     <select id="selectByPrior" resultMap="BaseResultMap"> | 
 |  |  |         select | 
 |  |  |         mld.* | 
 |  |  |         from man_loc_detl mld | 
 |  |  |         left join man_prior mp on mld.node_id = mp.node_id and mld.matnr = mp.matnr | 
 |  |  |         where 1=1 | 
 |  |  |         <if test="nodeId != null and nodeId != ''"> | 
 |  |  |             and mld.node_id = #{nodeId} | 
 |  |  |         </if> | 
 |  |  |         <if test="matnr != null and matnr != ''"> | 
 |  |  |             and mld.matnr = #{matnr} | 
 |  |  |         </if> | 
 |  |  |         and mld.anfme > 0 | 
 |  |  |         and mp.status = 1 | 
 |  |  |         order by mp.prio desc, mld.create_time asc | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="getLocDetlStatis" resultMap="BaseResultMap"> | 
 |  |  |         select | 
 |  |  |         ROW_NUMBER() over (order by sum(a.anfme) desc) as row | 
 |  |  |         , a.matnr | 
 |  |  |         , sum(a.anfme) as anfme | 
 |  |  |         from man_loc_detl a | 
 |  |  |         where 1=1 | 
 |  |  |         group by a.matnr | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="selectByNodeUuid" resultMap="BaseResultMap"> | 
 |  |  |         select * from man_loc_detl mld left join man_node mn on mld.node_id = mn.id | 
 |  |  |         where 1=1 | 
 |  |  |         and mn.uuid = #{uuid} | 
 |  |  |         and mld.status = 1 | 
 |  |  |         order by mld.create_time | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  | </mapper> |