| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.R; |
| | | import com.zy.asrs.entity.AgvLocDetl; |
| | |
| | | |
| | | //获取当前楼层库位数据 |
| | | List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev,floor); |
| | | |
| | | if (floor == 1 && lev == 2) { |
| | | List<AgvLocMast> distinctRow = agvLocMastService.selectDistinctLocByLevAndFloor(lev, floor); |
| | | List<Integer> integers = new ArrayList<>(); |
| | | int min = 0; |
| | | int i =1; |
| | | for (AgvLocMast locMast : distinctRow) { |
| | | if (min > locMast.getMapRow1()) { |
| | | min = locMast.getMapRow1(); |
| | | } |
| | | if (locMast.getRightSide() == 1) { |
| | | integers.add(i); |
| | | } |
| | | i++; |
| | | |
| | | } |
| | | for (AgvLocMast locMast : locMasts) { |
| | | Integer row = locMast.getMapRow1(); |
| | | if (row < 0) { |
| | | row = row - min + 1; |
| | | } else { |
| | | row = row - min; |
| | | } |
| | | Integer bay = locMast.getMapBay1(); |
| | | Integer rightSide = locMast.getRightSide(); |
| | | int x = bay; |
| | | int y = row; |
| | | y = generateMap4Row(integers, row); |
| | | ArrayList rowData = arrayLists.get(x); |
| | | Object o = rowData.get(y); |
| | | |
| | | JSONObject jsonObject = JSON.parseObject(o.toString()); |
| | | jsonObject.put("value", "0"); |
| | | |
| | | jsonObject.put("locNo", locMast.getLocNo());//设置库位号 |
| | | jsonObject.put("locSts", locMast.getLocSts());//库位状态 |
| | | //更新list |
| | | rowData.set(y, jsonObject); |
| | | arrayLists.set(x, rowData); |
| | | } |
| | | } else { |
| | | for (AgvLocMast locMast : locMasts) { |
| | | Integer row = locMast.getRow1(); |
| | | Integer bay = locMast.getBay1(); |
| | |
| | | //2楼 |
| | | if(floor == 1 && lev == 1){ |
| | | x = generateMap1Bay(bay); |
| | | } |
| | | if(floor == 1 && lev == 2){ |
| | | y = generateMap4Row(row); |
| | | } |
| | | //2楼 |
| | | if(floor == 2){ |
| | |
| | | rowData.set(y, jsonObject); |
| | | arrayLists.set(x, rowData); |
| | | } |
| | | } |
| | | |
| | | return JSONObject.toJSONString(arrayLists); |
| | | } |
| | | |
| | | private Integer generateMap1Bay(int bay){ |
| | | int y = bay; |
| | | Integer[] bayAdd = {1,3,5,7,9,11,13,15,17,19}; |
| | |
| | | |
| | | } |
| | | |
| | | private Integer generateMap4Row(int row){ |
| | | private Integer generateMap4Row(List<Integer> rightSide, int row) { |
| | | int x = row; |
| | | Integer[] rowAdd = {1,3,5,7,9,11,13,15,17,19,21}; |
| | | for(int i=0; i<rowAdd.length; i++){ |
| | | if(row > rowAdd[i]){ |
| | | // if (rightSide == 0) { |
| | | // x++; |
| | | // } |
| | | for (int i = 0; i < rightSide.size(); i++) { |
| | | if (row > rightSide.get(i)) { |
| | | x ++; |
| | | } |
| | | } |