自动化立体仓库 - WMS系统
13
zhang
2025-05-24 954799493a5d4a63a8844fd53e8a14c8ea9f6cea
src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -1,9 +1,11 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.ReportQueryMapper;
@@ -128,12 +130,87 @@
      ViewInOutBean bean = new ViewInOutBean();
      bean.setPageSize(limit);
      bean.setPageNumber(curr);
      List<ViewInOutBean> list = reportQueryMapper.queryViewInOutList(bean);
      int count = reportQueryMapper.getViewInOutCount(bean);
      if (!Cools.isEmpty(param.get("modi_time"))) {
         String[] dates = param.get("modi_time").toString().split(RANGE_TIME_LINK);
         bean.setBegin_date(dates[0]);
         bean.setEnd_date(dates[1]);
      }
      int count = 0;
      List<ViewInOutBean> list = new ArrayList<>();
      if (param.get("type") == null || param.get("type").equals(1)) {
         list = reportQueryMapper.queryViewInOutListDay(bean);
         count = reportQueryMapper.getViewInOutCountDay(bean);
      }else if ( param.get("type").equals("2")) {
         list = reportQueryMapper.queryViewInOutListMonth(bean);
         count = reportQueryMapper.getViewInOutCountMonth(bean);
      } else if (param.get("type").equals("3")) {
         list = reportQueryMapper.queryViewInOutListYear(bean);
         count = reportQueryMapper.getViewInOutCountYear(bean);
      }else {
         list = reportQueryMapper.queryViewInOutListDay(bean);
         count = reportQueryMapper.getViewInOutCountDay(bean);
      }
//      List<ViewInOutBean> list = reportQueryMapper.queryViewInOutList(bean);
      Page<ViewInOutBean> page = new Page<>();
      page.setRecords(list);
      page.setTotal(count);
      return R.ok(page);
   }
   @RequestMapping("/viewInOutList/count")
   public R getAllCount() {
      ViewInOutBean bean = new ViewInOutBean();
      bean.setPageSize(99999);
      bean.setPageNumber(1);
      List<ViewInOutBean> list = new ArrayList<>();
      Map<String, Double> map =  new HashMap<>();
      Double in = 0.0;
      Double out = 0.0;
      list = reportQueryMapper.queryViewInOutListDay(bean);
      for (ViewInOutBean bean1 : list) {
         in += bean1.getSto_qty().doubleValue();
         out += bean1.getRet_qty().doubleValue();
      }
      map.put("in", in);
      map.put("out", out);
      return R.ok(map);
   }
   /**
    * 获取库存总数
    * @return
    */
   @RequestMapping("/viewInOutList/date/count")
   public R getCount(@RequestBody Map<String, String> param){
      ViewInOutBean bean = new ViewInOutBean();
      bean.setPageSize(99999);
      bean.setPageNumber(1);
      if (!Cools.isEmpty(param.get("modi_time"))) {
         String[] dates = param.get("modi_time").toString().split(RANGE_TIME_LINK);
         bean.setBegin_date(dates[0]);
         bean.setEnd_date(dates[1]);
      }
      Map<String, Double> map =  new HashMap<>();
      Double in = 0.0;
      Double out = 0.0;
      List<ViewInOutBean> list = new ArrayList<>();
      if (param.get("type") == null || param.get("type").equals(1)) {
         list = reportQueryMapper.queryViewInOutListDay(bean);
      }else if ( param.get("type").equals("2")) {
         list = reportQueryMapper.queryViewInOutListMonth(bean);
      } else if (param.get("type").equals("3")) {
         list = reportQueryMapper.queryViewInOutListYear(bean);
      }else {
         list = reportQueryMapper.queryViewInOutListDay(bean);
      }
      for (ViewInOutBean bean1 : list) {
         in += bean1.getSto_qty().doubleValue();
         out += bean1.getRet_qty().doubleValue();
      }
      map.put("in", in);
      map.put("out", out);
      return R.ok(map);
   }
   //excel导出
@@ -246,4 +323,17 @@
      return R.ok(exportSupport(list, fields));
   }
   private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
      for (Map.Entry<String, Object> entry : map.entrySet()){
         String val = String.valueOf(entry.getValue());
         if (val.contains(RANGE_TIME_LINK)){
            String[] dates = val.split(RANGE_TIME_LINK);
            wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
            wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
         } else {
            wrapper.like(entry.getKey(), val);
         }
      }
   }
}