| | |
| | | String d04ToMES = plcParameterObject.getPlcParameter("D04ToMES").getValue(); |
| | | |
| | | |
| | | // d01Id="P24111102|1|13"; |
| | | // d01Id="P25010108|37|8"; |
| | | // d04ToMES="1"; |
| | | // d01ToMES="1"; |
| | | |
| | |
| | | log.info("两条线卧转立均在执行任务,结束本次扫描进卧转立任务"); |
| | | return; |
| | | } |
| | | // if (REQUEST_WORD.equals(d01ToMES)) { |
| | | // List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list( |
| | | // new LambdaQueryWrapper<BigStorageCageFeedTask>() |
| | | // .gt(BigStorageCageFeedTask::getTargetSlot, 0) |
| | | // .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION) |
| | | // .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW) |
| | | // .eq(BigStorageCageFeedTask::getGlassId, d01Id) |
| | | // ); |
| | | // if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks)) { |
| | | // S7object.getinstance().plccontrol.writeWord(mesD01Address, 1); |
| | | // } |
| | | // log.info("{}线再次发送进片启动", Const.A09_OUT_TARGET_POSITION); |
| | | // return; |
| | | // } |
| | | // if (REQUEST_WORD.equals(d04ToMES)) { |
| | | // List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list( |
| | | // new LambdaQueryWrapper<BigStorageCageFeedTask>() |
| | | // .gt(BigStorageCageFeedTask::getTargetSlot, 0) |
| | | // .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION) |
| | | // .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW) |
| | | // .eq(BigStorageCageFeedTask::getGlassId, d01Id) |
| | | // ); |
| | | // if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks)) { |
| | | // S7object.getinstance().plccontrol.writeWord(mesD04Address, 1); |
| | | // } |
| | | // log.info("{}线再次发送进片启动", Const.A10_OUT_TARGET_POSITION); |
| | | // return; |
| | | // } |
| | | //按照线路及玻璃id获取相邻两块玻璃 卧转立上的玻璃: 状态为0不操作(D01送片,0不操作,1允许送片),请求字为1, (02玻璃id为空或者卧转立未启动) |
| | | if (!REQUEST_WORD.equals(mesD01Value) && REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) { |
| | | List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list( |
| | |
| | | //两条先均可执行进片任务,判断两条线是否进片请求是否都为空 |
| | | if (StringUtils.isBlank(d01Id) && StringUtils.isBlank(d04Id)) { |
| | | //比较最早一片任务的版图id及版序 求出卧转立的线路 |
| | | Integer line = getStartLine(); |
| | | // Integer line = getStartLine(); |
| | | Integer line = lineList.get(0); |
| | | //计算任务表进片格子 发送进片任务 |
| | | computeTargetByLine(line); |
| | | Date endDate = new Date(); |
| | |
| | | List<BigStorageCageDetails> overSizeGlass = bigStorageCageDetailsList.stream().filter( |
| | | t -> Math.min(t.getWidth(), t.getHeight()) > 2500 |
| | | ).collect(Collectors.toList()); |
| | | if(CollectionUtils.isEmpty(overSizeGlass)){ |
| | | if (CollectionUtils.isEmpty(overSizeGlass)) { |
| | | //当一格玻璃都到齐时 |
| | | if (bigStorageCageDetailsList.size() == valueList.size()) { |
| | | long distinctSlotCount = bigStorageCageDetailsList.stream() |
| | |
| | | } |
| | | if (CollectionUtils.isEmpty(glassIds1)) { |
| | | S7object.getinstance().plccontrol.writeWord(mesD03Address, 0); |
| | | log.info("{}线修改玻璃状态为3", Const.A09_OUT_TARGET_POSITION); |
| | | log.info("{}线修改玻璃{}状态为3", Const.A09_OUT_TARGET_POSITION, glassIds1); |
| | | bigStorageCageFeedTaskService.update( |
| | | new LambdaUpdateWrapper<BigStorageCageFeedTask>() |
| | | .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION) |
| | |
| | | } |
| | | if (CollectionUtils.isEmpty(glassIds2)) { |
| | | S7object.getinstance().plccontrol.writeWord(mesD05Address, 0); |
| | | log.info("{}线修改玻璃状态为3", Const.A10_OUT_TARGET_POSITION); |
| | | log.info("{}线修改玻璃{}状态为3", Const.A10_OUT_TARGET_POSITION, glassIds2); |
| | | bigStorageCageFeedTaskService.update( |
| | | new LambdaUpdateWrapper<BigStorageCageFeedTask>() |
| | | .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION) |
| | |
| | | bigStorageCageFeedTask.setWidth(width); |
| | | bigStorageCageFeedTask.setHeight(height); |
| | | bigStorageCageFeedTask.setCreateTime(new Date()); |
| | | bigStorageCageFeedTask.setTargetSlot(0); |
| | | //删除理片笼表拿走/破损数据数据 |
| | | damageService.deleteByGlassId(glassId); |
| | | Damage damage = new Damage(); |
| | |
| | | maxX = e.getXCoordinate(); |
| | | slot = e.getSlot(); |
| | | bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION, |
| | | e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date())); |
| | | e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date())); |
| | | } |
| | | } else { |
| | | bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION, |
| | | e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date())); |
| | | if(serialNumber <= outCarMaxSize && remainWidth > maxLength){ |
| | | remainWidth = remainWidth - maxLength - glassGap; |
| | | bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION, |
| | | e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date())); |
| | | }else{ |
| | | remainWidth = carWidth - maxLength - glassGap; |
| | | trainNumber = trainNumber + 1; |
| | | serialNumber = 1; |
| | | bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION, |
| | | e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date())); |
| | | } |
| | | |
| | | } |
| | | } |
| | | if (isTask == 2) { |
| | |
| | | } |
| | | Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "未获取出片数据,结束出片任务"); |
| | | log.info("获取出片任务数据{}条,执行保存", bigStorageCageOutTaskList.size()); |
| | | for (BigStorageCageOutTask bigStorageCageOutTask : bigStorageCageOutTaskList |
| | | ) { |
| | | bigStorageCageOutTaskService.save(bigStorageCageOutTask); |
| | | } |
| | | // bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); |
| | | bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); |
| | | List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList()); |
| | | log.info("将出片玻璃{}玻璃状态改为已出片", glassIds); |
| | | bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>() |
| | |
| | | .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId()) |
| | | .eq(GlassInfo::getMarkIcon, glassInfo.getMarkIcon()) |
| | | .notInSql(GlassInfo::getGlassId, "select distinct glass_id from big_storage_cage_details " + |
| | | "where state!=101 and engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()) |
| | | "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()) |
| | | .orderByAsc(GlassInfo::getTemperingLayoutId) |
| | | .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence) |
| | | .last("Limit 1"); |