| <?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.zy.asrs.mapper.ReportQueryMapper"> | 
|   | 
| <!-- mapper不支持sql语句嵌套时,采用sql片段包含方式,解决xml标签问题 --> | 
| <sql id="viewStayTimeConditionSql"> | 
|         <if test="loc_no!=null and loc_no!='' "> | 
|             and asr_loc_mast.loc_no like '%' + #{loc_no} + '%' | 
|         </if> | 
|         <if test="specs!=null and specs!='' "> | 
|             and specs like '%' + #{specs} + '%' | 
|         </if> | 
|         <if test="matnr!=null and matnr!='' "> | 
|             and matnr like '%' + #{matnr} + '%' | 
|         </if> | 
|         <if test="stay_time!=null and stay_time!='' "> | 
|             and stay_time > #{stay_time} | 
|         </if> | 
|         <if test="maktx!=null and maktx!='' "> | 
|             and (maktx like '%' + #{maktx} + '%' | 
|             or lgnum like '%' + #{maktx} + '%' | 
|             or tbnum like '%' + #{maktx} + '%' | 
|             or tbpos like '%' + #{maktx} + '%' | 
|             or zmatid like '%' + #{maktx} + '%' | 
|             or werks like '%' + #{maktx} + '%' | 
|             or anfme like '%' + #{maktx} + '%' | 
|             or altme like '%' + #{maktx} + '%' | 
|             or zpallet like '%' + #{maktx} + '%' | 
|             or bname like '%' + #{maktx} + '%' | 
|             ) | 
|         </if> | 
|         <if test="begin_date!=null and begin_date!='' "> | 
|             <![CDATA[ | 
|             and appe_time >= #{begin_date} | 
|             ]]> | 
|         </if> | 
|         <if test="end_date!=null and end_date!='' "> | 
|             <![CDATA[ | 
|             and appe_time <= #{end_date} | 
|             ]]> | 
|         </if> | 
| </sql> | 
|   | 
|     <sql id="viewStayTimeConditionSql2"> | 
|         <if test="loc_no!=null and loc_no!='' "> | 
|             and loc_no like '%' + #{loc_no} + '%' | 
|         </if> | 
|         <if test="floor!=null and floor!='' "> | 
|             and floor = #{floor} | 
|         </if> | 
|         <if test="locType1!=null and locType1!='' "> | 
|             and loc_type1 = #{locType1} | 
|         </if> | 
|         <if test="lev1!=null and lev1!='' "> | 
|             and lev1 = #{lev1} | 
|         </if> | 
|         <if test="matnr!=null and matnr!='' "> | 
|             and matnr like '%' + #{matnr} + '%' | 
|         </if> | 
|         <if test="stay_time!=null and stay_time!='' "> | 
|             and stay_time > #{stay_time} | 
|         </if> | 
|         <if test="maktx!=null and maktx!='' "> | 
|             and (maktx like '%' + #{maktx} + '%' | 
|             ) | 
|         </if> | 
|         <if test="begin_date!=null and begin_date!='' "> | 
|             <![CDATA[ | 
|             and appe_time >= #{begin_date} | 
|             ]]> | 
|         </if> | 
|         <if test="end_date!=null and end_date!='' "> | 
|             <![CDATA[ | 
|             and appe_time <= #{end_date} | 
|             ]]> | 
|         </if> | 
|     </sql> | 
|   | 
|   | 
| <!-- 分页查询所有信息 --> | 
| <select id="queryViewStayTimeList" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="com.zy.asrs.entity.ViewStayTimeBean"> | 
|     select | 
|     * | 
|     from ( | 
|         select | 
|         ROW_NUMBER() over (order by stay_time desc) as row | 
|         , * | 
|         from | 
|         ( | 
|             SELECT | 
|             GETDATE() AS today | 
|             , CONVERT(decimal, DATEDIFF(second,asr_loc_detl.appe_time, GETDATE()) / 86400.0, 9) AS stay_time | 
|             , asr_loc_detl.* | 
|             FROM asr_loc_detl | 
|             INNER JOIN asr_loc_mast ON asr_loc_detl.loc_no = asr_loc_mast.loc_no | 
|             where 1=1 | 
|             <include refid="viewStayTimeConditionSql"></include> | 
|         ) t | 
|         left join (select matnr as c ,store_max_date,store_max,store_min from man_mat) b | 
|         on t.matnr = b.c | 
|         left join (select matnr as f,sum(asr_loc_detl.anfme) as sum_qty from asr_loc_detl group by asr_loc_detl.matnr ) as z | 
|         on z.f= b.c | 
|   | 
|     ) a where a.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) | 
| </select> | 
|   | 
| <select id="getViewStayTimeCount" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="Integer"> | 
|     select | 
|     count(1) | 
|     from ( | 
|         select | 
|         ROW_NUMBER() over (order by stay_time desc) as row | 
|         , * | 
|         from | 
|         ( | 
|             SELECT | 
|             GETDATE() AS today | 
|             , CONVERT(decimal, DATEDIFF(second,asr_loc_detl.appe_time, GETDATE()) / 86400.0, 9) AS stay_time | 
|             , dbo.asr_loc_detl.* | 
|             FROM asr_loc_detl | 
|             INNER JOIN asr_loc_mast ON asr_loc_detl.loc_no = asr_loc_mast.loc_no | 
|             where 1=1 | 
|             <include refid="viewStayTimeConditionSql"></include> | 
|         ) t | 
|     ) a | 
| </select> | 
|   | 
| <!-- 分页查询AGV和四项库所有信息 --> | 
| <select id="queryAllViewStayTimeList" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="com.zy.asrs.entity.ViewStayTimeBean"> | 
|     select | 
|         * | 
|     from ( | 
|              select | 
|                  ROW_NUMBER() over (order by stay_time desc) as row | 
|         , * | 
|              from | 
|                  ( | 
|                      SELECT | 
|                          GETDATE() AS today | 
|                           , CONVERT(decimal, DATEDIFF(second,all_loc_detl.appe_time, GETDATE()) / 86400.0, 9) AS stay_time | 
|                           , all_loc_detl.* | 
|                      FROM all_loc_detl | 
|                      where 1=1 | 
|                      <include refid="viewStayTimeConditionSql2"></include> | 
|                  ) t | 
|                      left join (select matnr as c ,store_max_date,store_max,store_min from man_mat) b | 
|                                on t.matnr = b.c | 
|                      left join (select matnr as f,sum(asr_loc_detl.anfme) as sum_qty from asr_loc_detl group by asr_loc_detl.matnr ) as z | 
|                                on z.f= b.c | 
|   | 
|          ) a  where a.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) | 
| </select> | 
| <select id="getAllViewStayTimeCount" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="Integer"> | 
|     select | 
|         count(1) | 
|     from ( | 
|              select | 
|                  ROW_NUMBER() over (order by stay_time desc) as row | 
|         , * | 
|              from | 
|                  ( | 
|                      SELECT | 
|                          GETDATE() AS today | 
|                           , CONVERT(decimal, DATEDIFF(second,all_loc_detl.appe_time, GETDATE()) / 86400.0, 9) AS stay_time | 
|                           , all_loc_detl.* | 
|                      FROM all_loc_detl | 
|                      where 1=1 | 
|                      <include refid="viewStayTimeConditionSql2"></include> | 
|                  ) t | 
|          ) a | 
| </select> | 
|   | 
| <!-- 不分页查询所有信息,用于excel导出 --> | 
| <select id="getViewStayTimeAll" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="com.zy.asrs.entity.ViewStayTimeBean"> | 
|     select | 
|     * | 
|     from ( | 
|         select | 
|         ROW_NUMBER() over (order by stay_time desc) as row | 
|         , * | 
|         from | 
|         ( | 
|             SELECT | 
|             GETDATE() AS today | 
|             , CONVERT(decimal, DATEDIFF(second,all_loc_detl.appe_time, GETDATE()) / 86400.0, 9) AS stay_time | 
|             , dbo.all_loc_detl.* | 
|             FROM all_loc_detl | 
|             INNER JOIN agv_loc_mast ON all_loc_detl.loc_no = agv_loc_mast.loc_no | 
|             where 1=1 | 
|             <include refid="viewStayTimeConditionSql2"></include> | 
|         ) t | 
|     ) a | 
| </select> | 
|   | 
| <!-- 不分页查询AGV和四项库所有信息,用于excel导出 --> | 
| <select id="getAllViewStayTimeAll" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="com.zy.asrs.entity.ViewStayTimeBean"> | 
|     SELECT | 
|         * | 
|     FROM | 
|         ( | 
|             SELECT | 
|                 ROW_NUMBER ( ) OVER ( ORDER BY stay_time DESC ) AS row, * | 
|             FROM | 
|                 ( | 
|                     SELECT | 
|                         GETDATE( ) AS today, | 
|                         CONVERT ( DECIMAL, DATEDIFF( SECOND, all_loc_detl.appe_time, GETDATE( ) ) / 86400.0, 9 ) AS stay_time, | 
|                         dbo.all_loc_detl.* | 
|                     FROM | 
|                         all_loc_detl | 
|                     where 1=1 | 
|                     <include refid="viewStayTimeConditionSql2"></include> | 
|                 ) t | 
|         ) a | 
| </select> | 
| </mapper> |