| | |
| | | String fromOpcUa = s7DataDLPOne.getFrom1().toString(); |
| | | |
| | | List<String> ids = s7DataDLPOne.getIds(); |
| | | log.info("获取到进片任务 玻璃id:{}", ids); |
| | | List<String> glassIdList = new ArrayList<>(); |
| | | for (int i = 0; i < 6; i++) { |
| | | String requestWord = ids.get(i); |
| | | if (null != requestWord && !requestWord.isEmpty()) { |
| | | if (StringUtils.isNotBlank(requestWord)) { |
| | | log.info("玻璃id{}加入进片任务", requestWord); |
| | | BigStorageCageTask task = new BigStorageCageTask(); |
| | | task.setGlassId(requestWord); |
| | | task.setStartSlot(Integer.parseInt(fromOpcUa)); |
| | | inTaskList.add(task); |
| | | glassIdList.add(requestWord); |
| | | break; |
| | | } |
| | | } |
| | | if (CollectionUtil.isEmpty(inTaskList)) { |
| | |
| | | for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) { |
| | | int count = bigStorageCageService.count(new LambdaQueryWrapper<BigStorageCage>() |
| | | .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth) |
| | | .ge(BigStorageCage::getDeviceId, 4) |
| | | .le(BigStorageCage::getDeviceId, 4) |
| | | .le(BigStorageCage::getMinThickness, entry.getKey()) |
| | | .ge(BigStorageCage::getMaxThickness, entry.getKey())); |
| | | if (count < entry.getValue()) { |
| | |
| | | cageDetails.setFilmsId(info.getFilmsId()); |
| | | cageDetails.setId(null); |
| | | bigStorageCageDetailsService.save(cageDetails); |
| | | info.setState(Const.GLASS_STATE_OUT); |
| | | bigStorageCageDetailsService.updateById(info); |
| | | } |
| | | //历史数据入库 |
| | | bigStorageCageHistoryTaskService.saveBatch(historyTasks); |
| | | extracted(taskList); |
| | | S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setMesReply(1); |
| | | s7SerializerDLPTwo.write(s7DataDLPTwo); |
| | | return; |
| | | } |
| | | |
| | |
| | | .last("limit 1")); |
| | | List<Integer> slotList = sequenceDTOList.stream().map(BigStorageSequenceDTO::getSlot).collect(Collectors.toList()); |
| | | list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() |
| | | .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).in(BigStorageCageDetails::getSlot, slotList)); |
| | | .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN) |
| | | .in(BigStorageCageDetails::getSlot, slotList) |
| | | .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence) |
| | | ); |
| | | computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task", |
| | | bigStorageCage.getSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH); |
| | | slotList.add(bigStorageCage.getSlot()); |
| | | updateSlotRemainBySlots(slotList); |
| | | return; |
| | | } |
| | | //有:统一往5号笼子送 |
| | | // 无 4号笼子使用数量是否超过阈值 有 生成调度任务按照组号组序由1开始依次往5号笼子送小片 |
| | |
| | | BigStorageSlotDTO slotDTO = bigStorageCageDetailsService.queryNeedDispatchSlotBySequence(); |
| | | if (null != slotDTO) { |
| | | list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() |
| | | .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).in(BigStorageCageDetails::getSlot, slotDTO.getStartSlot())); |
| | | .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN) |
| | | .in(BigStorageCageDetails::getSlot, slotDTO.getStartSlot()) |
| | | .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence) |
| | | ); |
| | | computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task", |
| | | slotDTO.getTargetSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH); |
| | | List<Integer> slotList = new ArrayList<>(); |
| | |
| | | * @return |
| | | */ |
| | | private Boolean extracted(List<BigStorageCageTask> bigStorageCageTaskList) { |
| | | resetOutTask(); |
| | | // resetOutTask(); |
| | | S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo(); |
| | | for (int i = 0; i < bigStorageCageTaskList.size() && i < 6; i++) { |
| | | String glassId = bigStorageCageTaskList.get(i).getGlassId(); |