| | |
| | | @ManagerAuth(memo = "初始化库位") |
| | | public R init(LocMastInitParam param) { |
| | | //清空原有库位 |
| | | //agvLockMastService.clearLoc(); |
| | | //初始化一楼站点 |
| | | agvLockMastService.initLocFloor1(); |
| | | agvLockMastService.clearLoc(); |
| | | //初始化二楼库位 |
| | | agvLockMastService.initLocFloor2(); |
| | | //初始化三楼站点 |
| | | //agvLockMastService.initLocFloor3(); |
| | | |
| | |
| | | @GetMapping("/map/getData/{floor}/{lev}/auth") |
| | | @ManagerAuth |
| | | public String getMapData(@PathVariable("floor") Integer floor, @PathVariable("lev") Integer lev) { |
| | | |
| | | //to do |
| | | floor = 2; |
| | | |
| | | BasMap basMap = agvBasMapService.selectLatestMap(1,floor); |
| | | //解析json地图数据 |
| | | List<ArrayList> arrayLists = JSON.parseArray(basMap.getData(), ArrayList.class); |
| | |
| | | List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev,floor); |
| | | for (AgvLocMast locMast : locMasts) { |
| | | Integer row = locMast.getRow1(); |
| | | Integer bay = 34 - locMast.getBay1(); |
| | | Integer bay = locMast.getBay1(); |
| | | |
| | | |
| | | int x = bay; |
| | | int y = row; |
| | | ////1楼 |
| | | //if(floor == 1){ |
| | | // x = generateMap1Row(row); |
| | | // y = generateMap1Bay(bay); |
| | | //} |
| | | //2楼 |
| | | if(floor == 2){ |
| | | y = generateMap2Row(row); |
| | | //y = generateMap2Bay(bay); |
| | | } |
| | | ////3楼 |
| | | //if(floor == 3){ |
| | | // y = generateMap3Row(row); |
| | |
| | | return JSONObject.toJSONString(arrayLists); |
| | | } |
| | | |
| | | private Integer generateMap1Row(int row){ |
| | | int x = 21-row; |
| | | if(row > 1){ |
| | | x --; |
| | | 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 ++; |
| | | } |
| | | if(row > 3){ |
| | | x --; |
| | | } |
| | | if(row > 5){ |
| | | x --; |
| | | } |
| | | if(row > 7){ |
| | | x --; |
| | | } |
| | | if(row > 9){ |
| | | x --; |
| | | } |
| | | if(row > 10){ |
| | | x --; |
| | | } |
| | | if(row > 12){ |
| | | x --; |
| | | } |
| | | if(row >20) x += 9; |
| | | |
| | | return x; |
| | | |
| | | } |
| | | |
| | | private Integer generateMap1Bay(int bay){ |
| | | private Integer generateMap2Bay(int bay){ |
| | | int y = bay; |
| | | if(y > 28){ |
| | | y ++; |
| | |
| | | public interface AgvLocMastMapper extends BaseMapper<AgvLocMast>{ |
| | | |
| | | //@Delete("delete from agv_loc_mast") |
| | | @Delete("delete from agv_loc_mast where floor = '3'") |
| | | @Delete("delete from agv_loc_mast") |
| | | public void deleteAll(); |
| | | |
| | | @Update("update agv_loc_mast set loc_type2 = ${locType2}" + |
| | |
| | | |
| | | public void initLocFloor1(); |
| | | |
| | | public void initLocFloor3(); |
| | | public void initLocFloor2(); |
| | | |
| | | List<AgvLocMast> queryFreeLocMast2(Short locType1, Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd); |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | public void initLocFloor3() { |
| | | //3楼 1-33排 1-14列 8层 ------> 1-33排 1-17列 8层 |
| | | // this.insertBatch(getLocMastList(1, 33, 1, 17, 1, 8, 3)); |
| | | // |
| | | // //3楼 1-27排 15-34列 8层 ------> 1-26排 18-25列 8层 |
| | | // this.insertBatch(getLocMastList(1, 27, 18, 25, 1, 8, 3)); |
| | | // |
| | | // //3楼 1-25排 35-46列 8层 ------> 1-25排 26-35列 8层 |
| | | // this.insertBatch(getLocMastList(1, 25, 26, 35, 1, 8, 3)); |
| | | // |
| | | // //3楼 3-25排 47-60列 8层 ------> 1-23排 36-70列 8层 |
| | | // this.insertBatch(getLocMastList(1, 23, 36, 70, 1, 8, 3)); |
| | | |
| | | //3楼 3-23排 71-72列 8层 |
| | | this.insertBatch(getLocMastList(3, 23, 71, 72, 1, 8, 3)); |
| | | |
| | | public void initLocFloor2() { |
| | | //2楼 1-25排 1-33列 1层 |
| | | this.insertBatch(getLocMastList(1, 25, 1, 33, 1, 1, 2)); |
| | | } |
| | | |
| | | //根据排列层获取AGV库位列表 |
| | |
| | | for (int bay = bayIndex; bay <= bayMax; bay++) { |
| | | for (int lev = levIndex; lev <= levMax; lev++) { |
| | | |
| | | if(!checkLocExist(row,bay,floor)){ |
| | | if(!checkLocExistFloor2(row,bay)){ |
| | | continue; |
| | | } |
| | | |
| | | // if(floor == 1 && (row == 8 || row == 9)){ |
| | | // if((bay >=8 && bay <=11) |
| | | // || (bay >= 20 && bay <=23) |
| | | // || (bay>=37 && bay <=39) |
| | | // || (bay>=50 && bay <=52) |
| | | // || (bay>=63 && bay <=64) |
| | | // || (bay>=79 && bay <=80)){ |
| | | // continue; |
| | | // } |
| | | // } |
| | | |
| | | AgvLocMast loc = new AgvLocMast(); |
| | | String locRow = row < 10 ? "-00" + row : "-0" + row; |
| | |
| | | loc.setModiTime(now); |
| | | loc.setFirstTime(now); |
| | | loc.setAppeTime(now); |
| | | loc.setLocType1(initLocMastSts(row,bay)); |
| | | agvLocMastList.add(loc); |
| | | } |
| | | } |
| | |
| | | return agvLocMastList; |
| | | } |
| | | |
| | | private boolean checkLocExistFloor2(int row, int bay){ |
| | | if(row <= 4 && bay >= 17){ |
| | | return false; |
| | | } |
| | | |
| | | if(row <= 7 && bay >= 26){ |
| | | return false; |
| | | } |
| | | |
| | | if(row >= 24 && bay >= 29){ |
| | | return false; |
| | | } |
| | | |
| | | if((row != 20 && row != 25) && (bay ==8 || bay ==22)){ |
| | | return false; |
| | | } |
| | | |
| | | if((row == 3 || row == 12 || row == 16 || row == 21) && (bay ==4 || bay ==9 || bay == 14 || bay == 20 || bay == 25 || bay ==30 || bay == 31)){ |
| | | return false; |
| | | } |
| | | |
| | | if(row == 21 && bay == 15){ |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | private short initLocMastSts(int row, int bay){ |
| | | |
| | | if(row <= 11 && bay <= 14){ |
| | | return 1; |
| | | } |
| | | |
| | | if(row <= 7){ |
| | | return 1; |
| | | } |
| | | |
| | | if(row >= 21){ |
| | | return 3; |
| | | } |
| | | |
| | | return 2; |
| | | } |
| | | |
| | | private boolean checkLocExist(int row, int bay, int floor){ |
| | | //if(floor == 1 && (row == 2)){ |
| | | // if((bay >=8 && bay <=11) |
| | |
| | | putaway:上架 |
| | | 定时处理AGV工作档中工作状态为201.生成入库任务ID 且(出库类型为 53.拣料再入库 || 1.入库 || 10.空板入库栽 || 57.盘点再入库)的数据 |
| | | */ |
| | | @Scheduled(cron = "0/10 * * * * ? ") |
| | | //@Scheduled(cron = "0/10 * * * * ? ") |
| | | public void startPutwayWrk(){ |
| | | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50) |
| | | ,new EntityWrapper<AgvWrkMast>() |
| | |
| | | enabled: false |
| | | datasource: |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | url: jdbc:sqlserver://127.0.0.1:1433;databasename=phyzasrs |
| | | url: jdbc:sqlserver://192.168.4.188:1433;databasename=phyzasrs |
| | | # url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs |
| | | #url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs |
| | | username: sa |