| | |
| | | @Autowired |
| | | private WmsService wmsService; |
| | | |
| | | /**每天早上9点执行一次*/ |
| | | /** |
| | | * 仓储库所有电池的活化任务,任务之前还检查并加入 之前未放入仓储库表中的单体 |
| | | * 活化周期: 在参数表里设置 |
| | | * 每天早上9点执行一次 |
| | | * */ |
| | | //@Scheduled(cron= "0 0 9 * * ?") |
| | | public void checkAndActivate() { |
| | | //查询数据库记录的仓库内所有的电池 |
| | |
| | | battWarehouse.setMonId(Integer.valueOf(item.getPalletCode())); |
| | | battWarehouse.setStorageTime(now); |
| | | battWarehouse.setOnPlan(0); |
| | | battWarehouse.setChargeOnPlan(0); |
| | | battWarehouse.setDischargeOnPlan(0); |
| | | String volStr = item.getV().replace("v", ""); |
| | | int vol = Integer.parseInt(volStr); |
| | | battWarehouse.setVol(vol); |
| | |
| | | |
| | | //查询需要活化的电池列表 |
| | | List<BattWarehouse> list = battWarehouseService.getActivateList(); |
| | | //通过电压进行分组list |
| | | Map<Integer, List<BattWarehouse>> mapToActivate = list.stream().collect(Collectors.groupingBy(BattWarehouse::getVol)); |
| | | /*//通过电压进行分组list |
| | | Map<Integer, List<BattWarehouse>> mapToActivate = list.stream().filter(item->item.getVol() == 2).collect(Collectors.groupingBy(BattWarehouse::getVol)); |
| | | Set<Integer> volSet = mapToActivate.keySet(); |
| | | //永远只对一类电压进行活化任务下发!!!因为连续下发活化,后续的会失败 |
| | | Integer vol; |
| | |
| | | }else{ |
| | | //本次终止 |
| | | return; |
| | | }*/ |
| | | if(list.size() == 0){ |
| | | //没有需要活化的电池 |
| | | return; |
| | | } |
| | | int vol =2; |
| | | String[] activateParameterStr = null; |
| | | list = list.stream().filter(item -> item.getVol() == 2).collect(Collectors.toList()); |
| | | //查询是否存在正在进行的任务 |
| | | List<Task> ongoingList = taskService.getOngoingList(); |
| | | if (ongoingList.size() == 0) { |
| | |
| | | // cCap: 10, // 预充容量0.1AH-需要根据容量实际设置 等于实际容量 |
| | | // tTimes: 1, // 充放次数 |
| | | // standTime: 1, // 静置时间 |
| | | // startType: 1, // 测试起点-默认充电 |
| | | // startType: 1, // 测试起点-默认充电. 测试起点:0放电,1充电 |
| | | //} |
| | | if(vol == 2) { |
| | | activateParameterStr = new String[]{ |
| | | "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "1", "1", "1" |
| | | }; |
| | | } |
| | | //TODO 6V待提供 |
| | | //暂不考虑6V和12V,只存在2V |
| | | /*//6V待提供 |
| | | else if(vol==6){ |
| | | activateParameterStr = new String[]{ |
| | | "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "1", "1", "1" |
| | | }; |
| | | } |
| | | //TODO 12V待提供 |
| | | //12V待提供 |
| | | else if(vol==12){ |
| | | activateParameterStr = new String[]{ |
| | | "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "1", "1", "1" |
| | | }; |
| | | } |
| | | }*/ |
| | | List<String> activateParameter = Arrays.asList(activateParameterStr); |
| | | wmsPalletDto.setActivateParameter(activateParameter); |
| | | Response response = wmsService.sendTask(wmsPalletDto); |
| | |
| | | item.setTaskNo(taskNoList.get(i)); |
| | | } |
| | | //批量更新BattWarehouse |
| | | battWarehouseService.updateBatchById(list); |
| | | battWarehouseService.updateActivateBatchById(list); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 仓储库所有电池的充电任务 |
| | | * 充电周期:1个月 |
| | | * 传入的活化参数:cTime=0,startType=1 |
| | | * 每天早上10点执行一次 |
| | | * */ |
| | | //@Scheduled(cron= "0 0 10 * * ?") |
| | | public void checkAndCharge() { |
| | | //查询需要充电的电池列表 |
| | | List<BattWarehouse> list = battWarehouseService.getChargeList(); |
| | | list = list.stream().filter(item -> item.getVol() == 2).collect(Collectors.toList()); |
| | | if(list.size() == 0){ |
| | | //没有需要充电的电池 |
| | | return; |
| | | } |
| | | |
| | | //查询是否存在正在进行的任务 |
| | | List<Task> ongoingList = taskService.getOngoingList(); |
| | | if (ongoingList.size() == 0) { |
| | | //没有正在进行的活化任务,则下发活化任务 |
| | | WmsPalletDto wmsPalletDto = new WmsPalletDto(); |
| | | wmsPalletDto.setDes(3); |
| | | List<String> pallets = list.stream().map(item -> String.valueOf(item.getMonId())).collect(Collectors.toList()); |
| | | //pallets从List类型转LinkedList类型 |
| | | LinkedList<String> palletsLinked = new LinkedList<>(pallets); |
| | | wmsPalletDto.setPallets(palletsLinked); |
| | | //活化参数设置 |
| | | String[] activateParameterStr = new String[]{ |
| | | "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "0", "1", "1" |
| | | }; |
| | | |
| | | List<String> activateParameter = Arrays.asList(activateParameterStr); |
| | | wmsPalletDto.setActivateParameter(activateParameter); |
| | | Response response = wmsService.sendTask(wmsPalletDto); |
| | | if (response.getCode() == 1) { |
| | | WmsResponse responseInside = (WmsResponse) response.getData(); |
| | | if(responseInside.getCode() == 0){//下发成功 |
| | | LinkedList<String> taskNoList = responseInside.getTask_no(); |
| | | //进行标志位和任务编号的更新 |
| | | for (int i = 0; i < taskNoList.size(); i++) { |
| | | BattWarehouse item = list.get(i); |
| | | item.setChargeOnPlan(1); |
| | | item.setChargeTaskNo(taskNoList.get(i)); |
| | | } |
| | | //批量更新BattWarehouse |
| | | battWarehouseService.updateChargeBatchById(list); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 仓储库所有电池的放电任务 |
| | | * 放电周期:2个月 |
| | | * 传入的活化参数:cTime=0,startType=0 |
| | | * 每天早上11点执行一次 |
| | | * */ |
| | | //@Scheduled(cron= "0 0 11 * * ?") |
| | | public void checkAndDischarge() { |
| | | //查询需要放电的电池列表 |
| | | List<BattWarehouse> list = battWarehouseService.getDischargeList(); |
| | | list = list.stream().filter(item -> item.getVol() == 2).collect(Collectors.toList()); |
| | | if(list.size() == 0){ |
| | | //没有需要放电的电池 |
| | | return; |
| | | } |
| | | |
| | | //查询是否存在正在进行的任务 |
| | | List<Task> ongoingList = taskService.getOngoingList(); |
| | | if (ongoingList.size() == 0) { |
| | | //没有正在进行的活化任务,则下发活化任务 |
| | | WmsPalletDto wmsPalletDto = new WmsPalletDto(); |
| | | wmsPalletDto.setDes(3); |
| | | List<String> pallets = list.stream().map(item -> String.valueOf(item.getMonId())).collect(Collectors.toList()); |
| | | //pallets从List类型转LinkedList类型 |
| | | LinkedList<String> palletsLinked = new LinkedList<>(pallets); |
| | | wmsPalletDto.setPallets(palletsLinked); |
| | | //活化参数设置 |
| | | String[] activateParameterStr = new String[]{ |
| | | "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "0", "1", "0" |
| | | }; |
| | | |
| | | List<String> activateParameter = Arrays.asList(activateParameterStr); |
| | | wmsPalletDto.setActivateParameter(activateParameter); |
| | | Response response = wmsService.sendTask(wmsPalletDto); |
| | | if (response.getCode() == 1) { |
| | | WmsResponse responseInside = (WmsResponse) response.getData(); |
| | | if(responseInside.getCode() == 0){//下发成功 |
| | | LinkedList<String> taskNoList = responseInside.getTask_no(); |
| | | //进行标志位和任务编号的更新 |
| | | for (int i = 0; i < taskNoList.size(); i++) { |
| | | BattWarehouse item = list.get(i); |
| | | item.setDischargeOnPlan(1); |
| | | item.setDischargeTaskNo(taskNoList.get(i)); |
| | | } |
| | | //批量更新BattWarehouse |
| | | battWarehouseService.updateDischargeBatchById(list); |
| | | } |
| | | } |
| | | } |