| | |
| | | package com.mes.opctask.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; |
| | | import com.mes.job.OpcCacheGlassTask; |
| | | import com.mes.opctask.entity.EdgStorageDeviceTask; |
| | | import com.mes.opctask.entity.EdgStorageDeviceTaskHistory; |
| | | import com.mes.opctask.mapper.EdgStorageDeviceTaskMapper; |
| | | import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService; |
| | | import com.mes.opctask.service.EdgStorageDeviceTaskService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | */ |
| | | @Service |
| | | public class EdgStorageDeviceTaskServiceImpl implements EdgStorageDeviceTaskService { |
| | | // @Override |
| | | // public void updateTaskMessage(Integer slot, Integer taskRunning, String glassIdOut) { |
| | | |
| | | // } |
| | | |
| | | private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task"; |
| | | |
| | | private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task"; |
| | | |
| | | @Resource |
| | | private EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService; |
| | | @Resource |
| | | private EdgStorageCageDetailsService edgStorageCageDetailsService; |
| | | @Resource |
| | | EdgStorageDeviceTaskMapper edgStorageDeviceTaskMapper; |
| | | @Resource |
| | | OpcCacheGlassTask opcCacheGlassTask; |
| | | |
| | | @Override |
| | | public EdgStorageDeviceTask queryTaskMessage(String tableName) { |
| | |
| | | public boolean updateTaskMessage(String tableName, EdgStorageDeviceTask edgStorageDeviceTask) { |
| | | return edgStorageDeviceTaskMapper.updateTaskMessage(tableName, edgStorageDeviceTask); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Boolean resetTask(Integer deviceId) { |
| | | String tableName = deviceId == 1 ? EDG_STORAGE_DEVICE_ONE_TASK : EDG_STORAGE_DEVICE_TWO_TASK; |
| | | EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>() |
| | | .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) |
| | | .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId) |
| | | .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1")); |
| | | if (taskHistory == null) { |
| | | return Boolean.FALSE; |
| | | } |
| | | 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, deviceId) |
| | | .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, deviceId) |
| | | .eq(EdgStorageCageDetails::getSlot, cell) |
| | | .eq(EdgStorageCageDetails::getGlassId, glassId)); |
| | | } |
| | | |
| | | opcCacheGlassTask.updateCellRemainWidth(cell, deviceId, taskHistory); |
| | | edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>() |
| | | .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) |
| | | .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId) |
| | | .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE) |
| | | ); |
| | | //最后更新任务,保证任务前的动作都做完 |
| | | EdgStorageDeviceTask task = new EdgStorageDeviceTask(); |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY); |
| | | task.setGlassIdOut(""); |
| | | task.setStartCell(0); |
| | | this.updateTaskMessage(tableName, task); |
| | | return Boolean.TRUE; |
| | | } |
| | | } |