自动化立体仓库 - WMS系统
pang.jiabao
2024-12-02 57936e11434f6614f818a0a0a495918dc1af6dd6
src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -2,14 +2,21 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.plugins.Page;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.common.web.BaseController;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.asrs.service.LocDetlService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -25,7 +32,12 @@
public class ReportQueryController extends BaseController {
   @Autowired
   private LocDetlService locDetlService;
   @Autowired
   private ReportQueryMapper reportQueryMapper;
   @Resource
   private ManLocDetlMapper manLocDetlMapper;
   //------------------库位使用统计--------------------------------------
   @RequestMapping("/viewStockUseList.action")
@@ -60,6 +72,10 @@
      ViewStayTimeBean bean = new ViewStayTimeBean();
      bean.setPageSize(limit);
      bean.setPageNumber(curr);
      String locNo = String.valueOf(param.get("loc_no"));
      if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
         bean.setLoc_no(locNo);
      }
      List<ViewStayTimeBean> list = reportQueryMapper.queryViewStayTimeList(bean);
      int count = reportQueryMapper.getViewStayTimeCount(bean);
      Page<ViewStayTimeBean> page = new Page<>();
@@ -78,8 +94,82 @@
   }
   //-----------------库存MAP图--------------------------------------
   @RequestMapping("/viewLocMapList/rows.action")
   public R queryViewLocMapRows(){
      List<Integer> viewLocRowTotal = reportQueryMapper.getViewLocRowTotal();
      viewLocRowTotal.add(9);
      viewLocRowTotal.add(10);
      return R.ok().add(viewLocRowTotal);
   }
   @RequestMapping("/viewLocMapList.action")
   public R queryViewLocMapListByPages(@RequestParam(defaultValue = "1")Integer row){
   public R queryViewLocMapListByPages(@RequestParam(defaultValue = "1")Integer row) {
      if (row == 9) {
         // 获取排级数据
         // 表格标题:列 ===>> 升序
//         List<String> bays = new ArrayList<>();
         String[] bays = new String[33];
         for (int i = 1; i <= 32; i ++) {
            bays[i] = String.valueOf(i);
         }
         // !表格第一列放层级数
         bays[0] = "";
         // 表格行:层 ====>> 倒序
         List<String> levs = new ArrayList<>();
         for (int i = 5; i>= 1; i --) {
            levs.add(String.valueOf(i));
         }
         List<Map<String, Object>> body = new ArrayList<>();
         for (String lev : levs){
            // 获取层级数据
//            List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev));
            List<ViewLocMapDto> dtos = manLocDetlMapper.getViewLocBays(String.valueOf(row), lev);
            // !表格第一列放层级数
            dtos.add(0, new ViewLocMapDto(null ,null, lev));
            Map<String, Object> map = new HashMap<>();
            map.put("loc", dtos);
            body.add(map);
         }
         Map<String, Object> result = new HashMap<>();
         result.put("title", bays);
         result.put("body", body);
         return R.ok(result);
      } else if( row == 10) {
         // 获取排级数据
         // 表格标题:列 ===>> 升序
//         List<String> bays = new ArrayList<>();
         String[] bays = new String[33];
         for (int i = 1; i <= 32; i ++) {
            bays[i] = String.valueOf(i);
         }
         // !表格第一列放层级数
         bays[0] = "";
         // 表格行:层 ====>> 倒序
         List<String> levs = new ArrayList<>();
         for (int i = 5; i>= 1; i --) {
            levs.add(String.valueOf(i));
         }
         List<Map<String, Object>> body = new ArrayList<>();
         for (String lev : levs){
            // 获取层级数据
//            List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev));
            List<ViewLocMapDto> dtos = manLocDetlMapper.getViewLocBays(String.valueOf(row), lev);
            // !表格第一列放层级数
            dtos.add(0, new ViewLocMapDto(null ,null, lev));
            for (int i = 15;i <= 18; i ++) {
               dtos.add(i,new ViewLocMapDto(null ,i, "X"));
            }
            Map<String, Object> map = new HashMap<>();
            map.put("loc", dtos);
            body.add(map);
         }
         Map<String, Object> result = new HashMap<>();
         result.put("title", bays);
         result.put("body", body);
         return R.ok(result);
      } else {
      // 获取排级数据
      // 表格标题:列 ===>> 升序
      List<String> bays = reportQueryMapper.getViewLocBayCount(row);
@@ -101,6 +191,7 @@
      result.put("title", bays);
      result.put("body", body);
      return R.ok(result);
   }
   }
@@ -131,12 +222,7 @@
   //------------------日入库明细统计--------------------------------------
   @RequestMapping("/viewWorkInList.action")
   public Map<String,Object> viewWorkInList(@RequestParam(defaultValue = "1")Integer curr,
                                  @RequestParam(defaultValue = "10")Integer limit,
                                  @RequestParam Map<String, Object> param){
      ViewWorkInBean bean = new ViewWorkInBean();
      bean.setPageSize(limit);
      bean.setPageNumber(curr);
   public Map<String,Object> viewWorkInList(ViewWorkInBean bean){
      List<ViewWorkInBean> list = reportQueryMapper.queryViewWorkInList(bean);
      int count = reportQueryMapper.getViewWorkInCount(bean);
      Page<ViewWorkInBean> page = new Page<>();
@@ -145,23 +231,76 @@
      return R.ok(page);
   }
   /**
    * 日入库汇总查询
    * @return
    */
   @RequestMapping("/viewWorkCountInList.action")
   public R viewWorkCountInList(@RequestParam(defaultValue = "1")Integer curr,
                         @RequestParam(defaultValue = "10")Integer limit,
                         @RequestParam Map<String, Object> param){
      String startTime = "1970.1.2";
      String endTime = "2099.1.2";
      if (!Cools.isEmpty(param.get("query_date"))) {
         String  queryDate = (String) param.get("query_date");
         String[] split = queryDate.split(" - ");
         startTime= split[0].split(" ")[0].replace("-",".");
         endTime = split[1].split(" ")[0].replace("-",".");
      }
      List<ViewWorkCountInView> allCountIn = reportQueryMapper.selectWorkCountIn(Integer.valueOf((String) param.get("pageNumber")), Integer.valueOf((String) param.get("pageSize")), (String) param.get("matnr"), startTime,endTime);
      Integer total = reportQueryMapper.selectWorkCountInTotal((String) param.get("matnr"), startTime,endTime);
      Page<ViewWorkCountInView> page = new Page<>();
      page.setRecords(allCountIn);
      page.setTotal(total);
      Integer sum = reportQueryMapper.selectWorkCountInSum((String) param.get("matnr"), startTime,endTime);
      HashMap<String, Object> result = new HashMap<>();
      result.put("page",page);
      result.put("sum",sum);
      return R.ok(result);
   }
   /**
    * 日出库汇总
    */
   @RequestMapping("/viewWorkCountOutList.action")
   public R viewWorkCountOutList(@RequestParam(defaultValue = "1")Integer curr,
                          @RequestParam(defaultValue = "10")Integer limit,
                          @RequestParam Map<String, Object> param){
      String startTime = "1970.1.2";
      String endTime = "2099.1.2";
      if (!Cools.isEmpty(param.get("query_date"))) {
         String  queryDate = (String) param.get("query_date");
         String[] split = queryDate.split(" - ");
         startTime= split[0].split(" ")[0].replace("-",".");
         endTime = split[1].split(" ")[0].replace("-",".");
      }
      List<ViewWorkCountInView> allCountIn = reportQueryMapper.selectWorkCountOut(Integer.valueOf((String) param.get("pageNumber")), Integer.valueOf((String) param.get("pageSize")), (String) param.get("matnr"), startTime,endTime);
      Integer total = reportQueryMapper.selectWorkCountOutTotal((String) param.get("matnr"), startTime,endTime);
      Page<ViewWorkCountInView> page = new Page<>();
      page.setRecords(allCountIn);
      page.setTotal(total);
      Integer sum = reportQueryMapper.selectWorkCountOutSum((String) param.get("matnr"), startTime,endTime);
      HashMap<String, Object> result = new HashMap<>();
      result.put("page",page);
      result.put("sum",sum);
      return R.ok(result);
   }
   //excel导出
   @RequestMapping("/viewWorkInExport.action")
   @ManagerAuth(memo = "日入库明细统计导出")
   public R viewWorkInExport(@RequestBody JSONObject param){
      List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
      List<ViewWorkInBean> list = reportQueryMapper.getViewWorkInAll(new ViewWorkInBean());
      @SuppressWarnings("unchecked")
      ViewWorkInBean bean = Cools.conver((Map<? extends String, ?>) param.get("exportData"), ViewWorkInBean.class);
      bean.setQuery_date(bean.getQuery_date());
      List<ViewWorkInBean> list = reportQueryMapper.getViewWorkInAll(bean);
      return R.ok(exportSupport(list, fields));
   }
   //------------------日出库明细统计--------------------------------------
   @RequestMapping("/viewWorkOutList.action")
   public R viewWorkOutList(@RequestParam(defaultValue = "1")Integer curr,
                    @RequestParam(defaultValue = "10")Integer limit,
                    @RequestParam Map<String, Object> param){
      ViewWorkInBean bean = new ViewWorkInBean();
      bean.setPageSize(limit);
      bean.setPageNumber(curr);
   public R viewWorkOutList(ViewWorkInBean bean){
      List<ViewWorkInBean> list = reportQueryMapper.queryViewWorkOutList(bean);
      int count = reportQueryMapper.getViewWorkOutCount(bean);
      Page<ViewWorkInBean> page = new Page<>();
@@ -175,7 +314,10 @@
   @ManagerAuth(memo = "日出库明细统计导出")
   public R viewWorkOutExport(@RequestBody JSONObject param){
      List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
      List<ViewWorkInBean> list = reportQueryMapper.getViewWorkOutAll(new ViewWorkInBean());
      @SuppressWarnings("unchecked")
      ViewWorkInBean bean = Cools.conver((Map<? extends String, ?>) param.get("exportData"), ViewWorkInBean.class);
      bean.setQuery_date(bean.getQuery_date());
      List<ViewWorkInBean> list = reportQueryMapper.getViewWorkOutAll(bean);
      return R.ok(exportSupport(list, fields));
   }