| | |
| | | log.info("将启动子改为4"); |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING); |
| | | edgStorageDeviceTaskService.updateTaskMessage(tableName, task); |
| | | } else { |
| | | } else if (request == 5) { |
| | | log.info("设备:{}状态:{}", device, request); |
| | | finishTask(task, tableName); |
| | | } else { |
| | | log.info("玻璃异常处理"); |
| | | damageTask(task, tableName); |
| | | } |
| | | // } catch (Exception e) { |
| | | // log.info("执行任务过程中发生异常,任务字{},{}", task.getTaskState(), e.getMessage()); |
| | |
| | | Date startDate = new Date(); |
| | | log.info("开始执行完成任务后清除动作,任务信息为:{},表名为:{},开始时间:{}", task, tableName, startDate); |
| | | Integer cell = task.getStartCell(); |
| | | Integer state = task.getTaskState(); |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY); |
| | | task.setGlassIdOut(""); |
| | | task.setStartCell(0); |
| | |
| | | .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1")); |
| | | //如果任务类型为1,3,将切割完成的玻璃自动报工 |
| | | if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskHistory.getTaskType())) { |
| | | damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(),"切割","进卧理"); |
| | | damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(), "切割", "进卧理", 1); |
| | | } |
| | | updateCellRemainWidth(cell, device, taskHistory); |
| | | edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>() |
| | | .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) |
| | | .eq(EdgStorageDeviceTaskHistory::getDeviceId, device) |
| | | .set(EdgStorageDeviceTaskHistory::getTaskState, |
| | | Const.GLASS_CACHE_TYPE_FINISH.equals(state) ? Const.RAW_GLASS_TASK_SUCCESS : Const.RAW_GLASS_TASK_FAILURE) |
| | | .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS) |
| | | ); |
| | | //最后更新任务,保证任务前的动作都做完 |
| | | edgStorageDeviceTaskService.updateTaskMessage(tableName, task); |
| | | Date endDate = new Date(); |
| | | log.info("结束完成任务后清除动作,表名为:{},结束时间为:{},共耗时:{}ms", tableName, endDate, endDate.getTime() - startDate.getTime()); |
| | | return Boolean.TRUE; |
| | | } |
| | | |
| | | private boolean damageTask(EdgStorageDeviceTask task, String tableName) { |
| | | if (task.getTaskState() <= 5) { |
| | | log.info("任务未发生异常清空,任务结束,电气状态{},mes状态{}", task.getTaskState(), task.getTaskRunning()); |
| | | return Boolean.FALSE; |
| | | } |
| | | Date startDate = new Date(); |
| | | log.info("开始执行异常处理任务后清除动作,任务信息为:{},表名为:{},开始时间:{}", task, tableName, startDate); |
| | | int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2; |
| | | EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>() |
| | | .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) |
| | | .eq(EdgStorageDeviceTaskHistory::getDeviceId, device) |
| | | .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1")); |
| | | Integer cell = taskHistory.getStartCell(); |
| | | Integer taskType = taskHistory.getTaskType(); |
| | | if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskType)) { |
| | | String glassId = taskHistory.getGlassIdIn(); |
| | | edgStorageCageDetailsService.remove(new LambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .eq(EdgStorageCageDetails::getDeviceId, device) |
| | | .eq(EdgStorageCageDetails::getSlot, cell) |
| | | .eq(EdgStorageCageDetails::getGlassId, glassId)); |
| | | } else { |
| | | String glassId = taskHistory.getGlassIdOut(); |
| | | edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() |
| | | .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN) |
| | | .eq(EdgStorageCageDetails::getDeviceId, device) |
| | | .eq(EdgStorageCageDetails::getSlot, cell) |
| | | .eq(EdgStorageCageDetails::getGlassId, glassId)); |
| | | } |
| | | |
| | | updateCellRemainWidth(cell, device, taskHistory); |
| | | edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>() |
| | | .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) |
| | | .eq(EdgStorageDeviceTaskHistory::getDeviceId, device) |
| | | .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE) |
| | | ); |
| | | //最后更新任务,保证任务前的动作都做完 |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY); |
| | | task.setGlassIdOut(""); |
| | | task.setStartCell(0); |
| | | edgStorageDeviceTaskService.updateTaskMessage(tableName, task); |
| | | Date endDate = new Date(); |
| | | log.info("完成执行异常处理任务后清除动作,表名为:{},结束时间为:{},共耗时:{}ms", tableName, endDate, endDate.getTime() - startDate.getTime()); |
| | | return Boolean.TRUE; |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | .last("Limit 1"); |
| | | GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper); |
| | | if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) { |
| | | //待替换的玻璃信息 |
| | | Integer ishorizontal = glassInfo.getIshorizontal(); |
| | | Integer temperingLayoutId = glassInfo.getTemperingLayoutId(); |
| | | Integer temperingFeedSequence = glassInfo.getTemperingFeedSequence(); |
| | | Integer xCoordinate = glassInfo.getXCoordinate(); |
| | | Integer yCoordinate = glassInfo.getYCoordinate(); |
| | | double angle = glassInfo.getAngle(); |
| | | Integer ruleId = glassInfo.getRuleId(); |
| | | //替换后的玻璃信息 |
| | | Integer swapIshorizontal = swapGlassInfo.getIshorizontal(); |
| | | Integer swapTemperingLayoutId = swapGlassInfo.getTemperingLayoutId(); |
| | | Integer swapTemperingFeedSequence = swapGlassInfo.getTemperingFeedSequence(); |
| | | Integer swapXCoordinate = swapGlassInfo.getXCoordinate(); |
| | | Integer swapYCoordinate = swapGlassInfo.getYCoordinate(); |
| | | double swapAngle = swapGlassInfo.getAngle(); |
| | | Integer swapRuleId = swapGlassInfo.getRuleId(); |
| | | //替换玻璃信息 |
| | | glassInfo.setIshorizontal(swapIshorizontal); |
| | | glassInfo.setTemperingLayoutId(swapTemperingLayoutId); |
| | | glassInfo.setTemperingFeedSequence(swapTemperingFeedSequence); |
| | | glassInfo.setXCoordinate(swapXCoordinate); |
| | | glassInfo.setYCoordinate(swapYCoordinate); |
| | | glassInfo.setAngle(swapAngle); |
| | | glassInfo.setRuleId(swapRuleId); |
| | | |
| | | int patternSequence = glassInfo.getPatternSequence(); |
| | | int xAxis = glassInfo.getXAxis(); |
| | | int yAxis = glassInfo.getYAxis(); |
| | | String swapGlassId = swapGlassInfo.getGlassId(); |
| | | int swapPatternSequence = swapGlassInfo.getPatternSequence(); |
| | | int swapXAxis = swapGlassInfo.getXAxis(); |
| | | int swapYAxis = swapGlassInfo.getYAxis(); |
| | | swapGlassInfo.setGlassId(glassId); |
| | | swapGlassInfo.setPatternSequence(patternSequence); |
| | | swapGlassInfo.setXAxis(xAxis); |
| | | swapGlassInfo.setYAxis(yAxis); |
| | | glassInfo.setGlassId(swapGlassId); |
| | | glassInfo.setPatternSequence(swapPatternSequence); |
| | | glassInfo.setXAxis(swapXAxis); |
| | | glassInfo.setYAxis(swapYAxis); |
| | | swapGlassInfo.setIshorizontal(ishorizontal); |
| | | swapGlassInfo.setTemperingLayoutId(temperingLayoutId); |
| | | swapGlassInfo.setTemperingFeedSequence(temperingFeedSequence); |
| | | swapGlassInfo.setXCoordinate(xCoordinate); |
| | | swapGlassInfo.setYCoordinate(yCoordinate); |
| | | swapGlassInfo.setAngle(angle); |
| | | swapGlassInfo.setRuleId(ruleId); |
| | | |
| | | log.info("将玻璃{}和玻璃{},信息互换(原片序号及坐标除外),进玻璃 {}", glassInfo, swapGlassInfo, swapGlassInfo); |
| | | glassInfoService.updateById(swapGlassInfo); |
| | | glassInfoService.updateById(glassInfo); |
| | | return swapGlassId; |
| | | return swapGlassInfo.getGlassId(); |
| | | } |
| | | return ""; |
| | | } |
| | |
| | | return Boolean.TRUE; |
| | | } |
| | | |
| | | private boolean updateCellRemainWidth(int slot, int device, EdgStorageDeviceTaskHistory taskHistory) { |
| | | public boolean updateCellRemainWidth(int slot, int device, EdgStorageDeviceTaskHistory taskHistory) { |
| | | List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, slot) |
| | | .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)); |
| | | int remainWidth = cellLength; |