package com.zy.asrs.mapper; import com.zy.asrs.entity.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @Mapper @Repository public interface ReportQueryMapper { //分页查询库位使用率 List queryViewStockUseList(ViewStockUseBean viewStockUse); int getViewStockUseCount(ViewStockUseBean viewStockUse); List getViewStockUseAll(ViewStockUseBean viewStockUse); //分页查询库存滞留时间 public List queryViewStayTimeList(ViewStayTimeBean viewStayTime); public int getViewStayTimeCount(ViewStayTimeBean viewStayTime); //不分页查询所有信息,用于excel导出 public List getViewStayTimeAll(ViewStayTimeBean viewStayTime); // // 库位Map @Select("select distinct row1 from asr_loc_mast order by row1 asc") List getViewLocRowTotal(); @Select("select distinct lev1 from asr_loc_mast where row1=#{row1} order by lev1 desc") public List getViewLocLevCount(@Param("row1") int row1); // @Select("select loc_no as locNo, bay1,loc_sts as locSts from asr_loc_mast where row1=#{row1} and lev1=#{lev1} order by bay1") public List getViewLocBays(@Param("row1") int row1, @Param("lev1") int lev1); // 库位Map @Select("select distinct bay1 from asr_loc_mast where row1=#{row1} order by bay1") public List getViewLocBayCount(@Param("row1") int row1); @Select("select lev1,loc_sts as locSts from asr_loc_mast where row1=#{row1} and bay1=#{bay1} order by bay1") public List getViewLocLevs(@Param("row1") int row1, @Param("bay1") int bay1); //分页查询站点入出库次数统计 public List queryViewInOutList(ViewInOutBean viewInOut); public int getViewInOutCount(ViewInOutBean viewInOut); //不分页查询所有信息,用于excel导出 public List getViewInOutAll(ViewInOutBean viewInOut); //分页查询日入库记录 public List queryViewWorkInList(ViewWorkInBean viewWorkIn); public int getViewWorkInCount(ViewWorkInBean viewWorkIn); //不分页查询所有信息,用于excel导出 public List getViewWorkInAll(ViewWorkInBean viewWorkIn); //分页查询日出库记录 public List queryViewWorkOutList(ViewWorkInBean viewWorkOut); public int getViewWorkOutCount(ViewWorkInBean viewWorkOut); //不分页查询所有信息,用于excel导出 public List getViewWorkOutAll(ViewWorkInBean viewWorkOut); // ------图表 //饼状图 @Select("select * from asr_loc_use_view") public LocChartPie getLocUseRate(); //曲线图 @Select("select ymd,SUM(sto_qty) inqty,SUM(ret_qty) outqty from asr_sta_inout_view " + "where ymd>CONVERT(char(10), DATEADD(DAY,-12,GETDATE()), 120) group by ymd order by ymd") public List getChartAxis(); /** * 按小时汇总(视图 v_asr_inout_hourly_stat,ymd 与接口 yyyy-MM-dd HH 对齐) */ @Select("SELECT ymd, inqty, outqty,cube_inqty as cubeInqty,cube_outqty as cubeOutqty FROM v_asr_inout_hourly_stat ") List getChartAxisHourly(); /** * 按小时汇总(视图 v_asr_inout_hourly_stat,ymd 与接口 yyyy-MM-dd HH 对齐) */ @Select("SELECT ymd, teu_total FROM asr_wrk_detl_teu_day_view ORDER BY ymd") List getteuTotal(); /** * 最近 12 天体积汇总 */ @Select("SELECT CONVERT(char(10), stat_date, 23) AS ymd, " + "CAST(ISNULL(wrk_sts_5_cube_sum, 0) AS decimal(18,4)) AS cube5Total, " + "CAST(ISNULL(wrk_sts_15_cube_sum, 0) AS decimal(18,4)) AS cube15Total " + "FROM dbo.asr_wrk_cube_day_stat ORDER BY stat_date") List getCubeTotal(); /** * 最近 12 天入库体积汇总,先筛选完成状态主档,再关联明细,避免明细日志大范围预聚合。 */ @Select("WITH dates AS ( " + " SELECT DATEADD(DAY, -v.n, CONVERT(date, GETDATE())) AS stat_date " + " FROM (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11)) AS v(n) " + "), completed_mast AS ( " + " SELECT DISTINCT m.wrk_no, m.io_time " + " FROM dbo.asr_wrk_mast_log AS m " + " WHERE m.wrk_sts = 5 " + " AND m.io_time >= DATEADD(DAY, -11, CONVERT(date, GETDATE())) " + " AND m.io_time < DATEADD(DAY, 1, CONVERT(date, GETDATE())) " + "), agg AS ( " + " SELECT CONVERT(date, cm.io_time) AS stat_date, " + " SUM(ISNULL(d.cube_number, 0)) AS wrk_sts_5_cube_sum " + " FROM completed_mast AS cm " + " INNER JOIN dbo.asr_wrk_detl_log AS d " + " ON d.wrk_no = cm.wrk_no " + " AND d.io_time = cm.io_time " + " GROUP BY CONVERT(date, cm.io_time) " + ") " + "SELECT CONVERT(char(10), ds.stat_date, 23) AS ymd, " + " CAST(ISNULL(a.wrk_sts_5_cube_sum, 0) AS decimal(18,4)) AS cube5Total " + "FROM dates AS ds " + "LEFT JOIN agg AS a ON a.stat_date = ds.stat_date " + "ORDER BY ds.stat_date " + "OPTION (RECOMPILE)") List getInboundCubeTotal(); List selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr")String matnr, @Param("start") String startTime, @Param("end") String endTime); Integer selectWorkCountInTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime); List selectWorkCountOut(@Param("curr") Integer pageNumber, @Param("limit") Integer pageSize, String matnr, @Param("start") String startTime, @Param("end") String endTime); Integer selectWorkCountOutTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime); Integer selectWorkCountInSum(String matnr, @Param("start") String startTime, @Param("end") String endTime); Integer selectWorkCountOutSum(String matnr, @Param("start") String startTime, @Param("end") String endTime); }