| | |
| | | } |
| | | |
| | | List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(engineering.getEngineerId()); |
| | | log.info("按照当前获取到正在需要上片的原片信息有:{}", pattenUsageList); |
| | | log.info("获取正在需要上片的原片信息有:{}", pattenUsageList); |
| | | if (CollectionUtils.isEmpty(pattenUsageList)) { |
| | | log.info("当前工程需要上片的原片信息为空,任务已结束"); |
| | | return; |
| | | } |
| | | // 有无正在执行的任务 |
| | | UpPattenUsage runningTask = upPattenUsageMapper.selectOne( |
| | | new LambdaQueryWrapper<UpPattenUsage>() |
| | | .eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId()) |
| | | .eq(UpPattenUsage::getState, 101) |
| | | .last("limit 1") // 只取一条 |
| | | ); |
| | | if (runningTask != null) { |
| | | log.info("当前工程存在正在执行的上片任务,跳过本次处理"); |
| | | return; |
| | | } |
| | | |
| | | Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream() |
| | | .collect(Collectors.groupingBy(UpPattenUsageVO::getGroupNumber)); |
| | | log.info("获取当前需要上片的原片数据"); |
| | |
| | | task.setTaskRunning(1); |
| | | task.setRawGlassWidth((int) usageVOS.get(0).getWidth()); |
| | | task.setRawGlassHeight((int) usageVOS.get(0).getHeight()); |
| | | task.setSlot(loadStation.get(0)); |
| | | task.setSlot(1); |
| | | task.setRawGlassFilmsId(usageVOS.get(0).getFilmsId()); |
| | | task.setEngineeringId(usageVOS.get(0).getEngineeringId()); |
| | | saveHistoryTask(task, deviceId); |
| | |
| | | s7DataSPWrite.setMesSend(1); |
| | | s7DataSPWrite.setRawGlassWidth((int) usageVOS.get(0).getWidth()); |
| | | s7DataSPWrite.setRawGlassHeight((int) usageVOS.get(0).getHeight()); |
| | | s7DataSPWrite.setSlot(loadStation.get(1)); |
| | | s7DataSPWrite.setSlot(1); |
| | | if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) { |
| | | s7SerializerSPOne.write(s7DataSPWrite); |
| | | } else { |
| | |
| | | task.setRawGlassWidth((int) usageVOS.get(0).getWidth()); |
| | | task.setRawGlassHeight((int) usageVOS.get(0).getHeight()); |
| | | task.setRawGlassThickness((int) usageVOS.get(0).getThickness()); |
| | | task.setSlot(loadStation.get(0)); |
| | | task.setSlot(1); |
| | | task.setRawGlassFilmsId(usageVOS.get(0).getFilmsId()); |
| | | task.setEngineeringId(usageVOS.get(0).getEngineeringId()); |
| | | saveHistoryTask(task, deviceId); |
| | |
| | | s7DataSPWrite.setMesSend(1); |
| | | s7DataSPWrite.setRawGlassWidth((int) usageVOS.get(0).getWidth()); |
| | | s7DataSPWrite.setRawGlassHeight((int) usageVOS.get(0).getHeight()); |
| | | s7DataSPWrite.setSlot(loadStation.get(0)); |
| | | s7DataSPWrite.setSlot(1); |
| | | if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) { |
| | | s7SerializerSPOne.write(s7DataSPWrite); |
| | | } else { |
| | |
| | | unconfirmedTask.setTaskState(Const.RAW_GLASS_TASK_SUCCESS); |
| | | unconfirmedTask.setFinishCount(unconfirmedTask.getFinishCount() + 1); |
| | | log.info("{}上片线,任务汇报成功,更新上片记录[{}]为成功", deviceId, upUsageId); |
| | | |
| | | // PLC确认字1 |
| | | s7DataSP.setMesConfirm(1); |
| | | s7SerializerSPOne.write(s7DataSP); |
| | | } else if (s7DataSP.getPlcReport() == 2) { |
| | | // 汇报失败 |
| | | unconfirmedTask.setTaskState(2); |
| | | // unconfirmedTask.setDamageCount(unconfirmedTask.getDamageCount() + 1); |
| | | log.warn("{}上片线,任务汇报失败,上片记录[{}]标记为失败", deviceId, upUsageId); |
| | | |
| | | // PLC确认字2 |
| | | s7DataSP.setMesConfirm(2); |
| | | s7SerializerSPOne.write(s7DataSP); |
| | | }else if (s7DataSP.getPlcReport() == 3) { |
| | | // 汇报破损 |
| | | unconfirmedTask.setTaskState(200); |
| | | unconfirmedTask.setTaskState(3); |
| | | unconfirmedTask.setDamageCount(unconfirmedTask.getDamageCount() + 1); |
| | | log.warn("{}上片线,任务汇报破损,上片记录[{}]标记为破损", deviceId, upUsageId); |
| | | |
| | | // PLC确认字3 |
| | | s7DataSP.setMesConfirm(3); |
| | | s7SerializerSPOne.write(s7DataSP); |
| | | } |
| | | unconfirmedTask.setUpdateTime(new Date()); |
| | | loadGlassDeviceTaskHistoryService.updateById(unconfirmedTask); |
| | |
| | | rawGlassStorageDetailsService.update(new UpdateWrapper<RawGlassStorageDetails>() |
| | | .inSql("slot", "select slot from raw_glass_storage_station where enable_state = 1") |
| | | // .eq("slot", task.getSlot()) |
| | | .eq("slot", unconfirmedTask.getSlot()) |
| | | .eq("slot", 101) |
| | | .eq("state", Const.RAW_GLASS_STATE_IN) |
| | | .setSql("remain_quantity = GREATEST(remain_quantity - 1, 0)")); |
| | | //汇报字给1 |
| | | S7DataSP s7DataSPWrite = new S7DataSP(); |
| | | s7DataSPWrite.setMesConfirm(1); |
| | | s7SerializerSPOne.write(s7DataSPWrite); |
| | | } |
| | | |
| | | private boolean saveHistoryTask(LoadGlassDeviceTaskHistory task, Integer deviceId) { |