| | |
| | | @Scheduled(fixedDelay = 1000) // 固定频率执行,同步 |
| | | // @Scheduled(cron = "0/1 * * * * ? ") |
| | | private void execute() { |
| | | if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; } |
| | | this.autoRun(); |
| | | if (configService.getVal("TaskAssignMode", Boolean.class)) { |
| | | this.autoRun(); |
| | | } |
| | | if (configService.getVal("TaskAssignMode1", Boolean.class,false)) { |
| | | this.autoRun0(1); |
| | | } |
| | | if (configService.getVal("TaskAssignMode2", Boolean.class,false)) { |
| | | this.autoRun0(2); |
| | | } |
| | | if (configService.getVal("TaskAssignMode3", Boolean.class,false)) { |
| | | this.autoRun0(3); |
| | | } |
| | | } |
| | | |
| | | private void autoRun() { |
| | |
| | | // 移库 |
| | | this.runLocToLoc(memo); |
| | | } |
| | | |
| | | private void autoRun0(Integer i) { |
| | | int availableAgvCount = this.getAvailableAgvCount(); |
| | | if (0 == availableAgvCount) { return; } |
| | | |
| | | // List<String> staPreNos = getStaPrefixes(staGroupList); |
| | | List<String> staPreNos = new ArrayList<>(); |
| | | String memo = "DEMO_STA_" + String.join("-", staPreNos); |
| | | if(i ==1){ |
| | | // 入库 |
| | | this.runStaToLoc0(memo); |
| | | }else if (i == 2){ |
| | | // 出库 |
| | | this.runLocToSta0(memo); |
| | | }else if (i == 3){ |
| | | // 移库 |
| | | this.runLocToLoc(memo); |
| | | } |
| | | } |
| | | |
| | | |
| | | // 入库 |
| | | private void runStaToLoc(String memo) { |
| | |
| | | } |
| | | |
| | | private void runStaToLoc0(String memo) { |
| | | int availableAgvCount = this.getAvailableAgvCount(); |
| | | |
| | | // 最多 ? 组bus运行 |
| | | if (availableAgvCount <= busService.count(new LambdaQueryWrapper<Bus>() |
| | | .in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val()) |
| | | .in(Bus::getMemo, memo, memo) |
| | | )) { return; } |
| | | |
| | | AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString())); |
| | | if (null == agvModel) { return; } |
| | | |
| | |
| | | } |
| | | |
| | | private void runLocToSta0(String memo) { |
| | | int availableAgvCount = this.getAvailableAgvCount(); |
| | | |
| | | // 最多 ? 组bus运行 |
| | | if (availableAgvCount <= busService.count(new LambdaQueryWrapper<Bus>() |
| | | .in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val()) |
| | | .in(Bus::getMemo, memo, memo) |
| | | )) { return; } |
| | | |
| | | AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString())); |
| | | if (null == agvModel) { return; } |
| | | |
| | |
| | | |
| | | private int d2 = 5; |
| | | |
| | | private List<Integer> starts2 = Lists.newArrayList(389, 478, 567, 745, 835, 923, 1012, 1101, 1190, 1366, 1458, 1547); |
| | | private List<Integer> starts2 = Lists.newArrayList(389, 478, 567, 656,835, 923, 1012, 1101, 1190, 1366, 1458, 1547); |
| | | |
| | | |
| | | @RequestMapping("/loc") |
| | |
| | | // } |
| | | if (loc.getBay() > 32) { |
| | | Integer i = starts2.get((loc.getRow() - 13) / 2); |
| | | Code cacheByData = codeService.getCacheByData(Utils.zeroFill((Utils.zeroFill((((loc.getBay()-1) % 8) + i + (((loc.getBay()-1) / 8) - 4) * 10) + "", 8)) + "", 8)); |
| | | loc.setCode(cacheByData.getId()); |
| | | locService.updateById(loc); |
| | | if (i==656){ |
| | | Code cacheByData = codeService.getCacheByData(Utils.zeroFill((Utils.zeroFill((((loc.getBay()-1) % 8) + i + (((loc.getBay()-1) / 8) - 4) * 10) + "", 8)) + "", 8)); |
| | | loc.setCode(cacheByData.getId()); |
| | | locService.updateById(loc); |
| | | } |
| | | } |
| | | } |
| | | return "success"; |
| | |
| | | |
| | | <T> T getVal(String key, Class<T> clazz); |
| | | |
| | | <T> T getVal(String key, Class<T> clazz, T b); |
| | | |
| | | <T> boolean setVal(String key, T val); |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | @SuppressWarnings("unchecked") |
| | | public <T> T getVal(String key, Class<T> clazz, T defaultValue) { |
| | | Config config = CONFIG_CACHE.get(key); |
| | | if (config == null) { |
| | | List<Config> list = this.list(new LambdaQueryWrapper<Config>().eq(Config::getFlag, key)); |
| | | config = list.stream().findFirst().orElse(null); |
| | | if (null == config) { |
| | | return defaultValue; |
| | | } |
| | | } |
| | | String val = config.getVal(); |
| | | switch (ConfigType.query(config.getType())) { |
| | | case BOOLEAN: |
| | | if (val.equals("1") || val.trim().equalsIgnoreCase("TRUE")) { |
| | | return (T) Boolean.TRUE; |
| | | } |
| | | return (T) Boolean.FALSE; |
| | | case NUMBER: |
| | | if (clazz == Integer.class) { |
| | | return (T) Integer.valueOf(val); |
| | | } else if (clazz == Short.class) { |
| | | return (T) Short.valueOf(val); |
| | | } else if (clazz == Long.class) { |
| | | return (T) Long.valueOf(val); |
| | | } else if (clazz == Double.class) { |
| | | return (T) Double.valueOf(val); |
| | | } |
| | | throw new UnsupportedOperationException("Unsupported type: " + clazz.getName()); |
| | | case STRING: |
| | | return (T) val; |
| | | case JSON: |
| | | return GsonUtils.fromJson(val, clazz); |
| | | case DATE: |
| | | return (T) DateUtils.convert(val); |
| | | default: |
| | | return defaultValue; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public <T> boolean setVal(String key, T val) { |
| | | Config config = CONFIG_CACHE.get(key); |
| | | if (config == null) { |