| | |
| | | |
| | | 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; |
| | |
| | | //to do |
| | | // floor = 2; |
| | | |
| | | BasMap basMap = agvBasMapService.selectLatestMap(1,floor); |
| | | BasMap basMap = agvBasMapService.selectLatestMap(lev, floor); |
| | | //解析json地图数据 |
| | | List<ArrayList> arrayLists = JSON.parseArray(basMap.getData(), ArrayList.class); |
| | | |
| | | |
| | | //获取当前楼层库位数据 |
| | | List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev,floor); |
| | | List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev, floor); |
| | | |
| | | List<AgvLocMast> distinctRow = new ArrayList<>(); |
| | | List<Integer> rowIntegers = new ArrayList<>(); |
| | | int min = 0; |
| | | int i =1; |
| | | if (lev == 1 && floor == 1) { |
| | | distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMapbay1(lev, floor); |
| | | for (AgvLocMast locMast : distinctRow) { |
| | | if (min > locMast.getMapBay1()) { |
| | | min = locMast.getMapBay1(); |
| | | } |
| | | if (locMast.getRightSide() == 1) { |
| | | rowIntegers.add(i); |
| | | } |
| | | i++; |
| | | |
| | | } |
| | | } else { |
| | | distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMaprow1(lev, floor); |
| | | for (AgvLocMast locMast : distinctRow) { |
| | | if (min > locMast.getMapRow1()) { |
| | | min = locMast.getMapRow1(); |
| | | } |
| | | if (locMast.getRightSide() == 1) { |
| | | rowIntegers.add(i); |
| | | } |
| | | i++; |
| | | |
| | | } |
| | | } |
| | | |
| | | for (AgvLocMast locMast : locMasts) { |
| | | Integer row = locMast.getRow1(); |
| | | Integer bay = locMast.getBay1(); |
| | | |
| | | |
| | | 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; |
| | | //2楼 |
| | | if(floor == 2){ |
| | | y = generateMap2Row(row); |
| | | //y = generateMap2Bay(bay); |
| | | } |
| | | ////3楼 |
| | | if(floor == 3){ |
| | | y = generateMap3Row(row); |
| | | // x = generateMap3Bay(bay); |
| | | if (floor == 3) { |
| | | y = generateMap3Row(rowIntegers, row); |
| | | } else if (floor == 1 && lev == 1) { |
| | | x = generateMap1Bay(rowIntegers, bay); |
| | | } else { |
| | | y = generateMap4Row(rowIntegers, row); |
| | | } |
| | | |
| | | ArrayList rowData = arrayLists.get(x); |
| | | Object o = rowData.get(y); |
| | | |
| | | JSONObject jsonObject = JSON.parseObject(o.toString()); |
| | | jsonObject.put("value","0"); |
| | | jsonObject.put("value", "0"); |
| | | |
| | | jsonObject.put("locNo", locMast.getLocNo());//设置库位号 |
| | | jsonObject.put("locSts", locMast.getLocSts());//库位状态 |
| | |
| | | return JSONObject.toJSONString(arrayLists); |
| | | } |
| | | |
| | | private Integer generateMap2Row(int row){ |
| | | int x = row; |
| | | Integer[] rowAdd = {2,4,6,7,8,10,12,13,15,17,19,20,22,24}; |
| | | for(int i=0; i<rowAdd.length; i++){ |
| | | if(row > rowAdd[i]){ |
| | | x ++; |
| | | private Integer generateMap1Bay(List<Integer> rightSide,int bay) { |
| | | int y = bay; |
| | | for (int i = 0; i < rightSide.size(); i++) { |
| | | if (bay > rightSide.get(i)) { |
| | | y++; |
| | | } |
| | | } |
| | | if(row >20) x += 9; |
| | | |
| | | return y; |
| | | |
| | | } |
| | | |
| | | private Integer generateMap4Row(List<Integer> rightSide, int row) { |
| | | int x = row; |
| | | for (int i = 0; i < rightSide.size(); i++) { |
| | | if (row > rightSide.get(i)) { |
| | | x++; |
| | | } |
| | | } |
| | | |
| | | return x; |
| | | |
| | | } |
| | | |
| | | private Integer generateMap2Bay(int bay){ |
| | | int y = bay; |
| | | if(y > 28){ |
| | | y ++; |
| | | private Integer generateMap2Row(List<Integer> rightSide,int row) { |
| | | int x = row; |
| | | for (int i = 0; i < rightSide.size(); i++) { |
| | | if (row > rightSide.get(i)) { |
| | | x++; |
| | | } |
| | | } |
| | | if(y > 57){ |
| | | y ++; |
| | | |
| | | return x; |
| | | |
| | | } |
| | | |
| | | private Integer generateMap2Bay(int bay) { |
| | | int y = bay; |
| | | if (y > 28) { |
| | | y++; |
| | | } |
| | | if (y > 57) { |
| | | y++; |
| | | } |
| | | return y; |
| | | } |
| | | |
| | | private Integer generateMap3Row(int row){ |
| | | private Integer generateMap3Row(List<Integer> rightSide,int row) { |
| | | int x = row; |
| | | Integer[] rowAdd = {2,4,6,7,8,10,12,13,15,17,19,21,23,24,26,28,30,32}; |
| | | for(int i=0; i<rowAdd.length; i++){ |
| | | if(row >= rowAdd[i]){ |
| | | x ++; |
| | | for (int i = 0; i < rightSide.size(); i++) { |
| | | if (row > rightSide.get(i)) { |
| | | x++; |
| | | } |
| | | } |
| | | if(row >9) x += 9; |
| | | if (row > 8) x += 9; |
| | | return x; |
| | | } |
| | | |
| | | private Integer generateMap3Bay(int bay){ |
| | | int y = 76-bay; |
| | | if(bay >= 18) y --; |
| | | if(bay >= 26) y --; |
| | | if(bay >= 50) y --; |
| | | private Integer generateMap3Bay(int bay) { |
| | | int y = 76 - bay; |
| | | if (bay >= 18) y--; |
| | | if (bay >= 26) y--; |
| | | if (bay >= 50) y--; |
| | | return y; |
| | | } |
| | | |
| | |
| | | @RequestParam("specs") String specs, |
| | | @RequestParam("matnr") String matnr, |
| | | @RequestParam("maktx") String maktx |
| | | ) { |
| | | ) { |
| | | |
| | | List<AgvLocDetl> locDetls = agvLocDetlService.searchByLike(orderNo, matnr, maktx, specs, locNo); |
| | | ArrayList<AgvLocDetl> lists = new ArrayList<>(); |