wangfei
2024-11-08 3c7d672fb7d6c34742fb7da6f66616ccf3be2c9a
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java
@@ -7,6 +7,8 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
import com.mes.common.config.Const;
import com.mes.edgglasstaskqueueinfo.entity.EdgGlassTaskQueueInfo;
import com.mes.edgglasstaskqueueinfo.service.EdgGlassTaskQueueInfoService;
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
@@ -24,6 +26,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
@@ -50,6 +53,9 @@
    @Resource
    EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
    @Resource
    EdgGlassTaskQueueInfoService edgGlassTaskQueueInfoService;
    @Value("${mes.glassGap}")
    private int glassGap;
    @Value("${mes.threshold}")
@@ -59,6 +65,7 @@
    @Override
    public void onSubscribe(String identifier, Object value) {
        log.info("当前正在执行的任务为{}", value);
        String tableName = identifier.contains("edg_storage_device_one_task") ? EDG_STORAGE_DEVICE_ONE_TASK : EDG_STORAGE_DEVICE_TWO_TASK;
        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
        try {
@@ -83,7 +90,7 @@
                }
            } else if (request == 4) {
                log.info("将启动子改为0");
                task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
                task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING);
                edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
            } else {
                finishTask(task, tableName);
@@ -273,10 +280,16 @@
        edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
                .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
                .eq(EdgStorageCageDetails::getGlassId, edgStorageCageDetails.getGlassId()));
        //todo:磨边对列表新增一条数据
        EdgGlassTaskQueueInfo edgInfo = new EdgGlassTaskQueueInfo();
        BeanUtils.copyProperties(task, edgInfo);
        edgInfo.setState(Const.GLASS_STATE_NEW);
        edgGlassTaskQueueInfoService.save(edgInfo);
        return Boolean.TRUE;
    }
    private boolean finishTask(EdgStorageDeviceTask task, String tableName) {
        log.info("当前任务信息为:{}", task);
        if (task.getTaskState() <= 4) {
            log.info("有正在执行的任务,结束");
            return Boolean.FALSE;
@@ -284,7 +297,7 @@
        Integer cell = task.getStartCell();
        Integer state = task.getTaskState();
        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
        task.setTaskState(Const.GLASS_CACHE_TYPE_EMPTY);
//        task.setTaskState(Const.GLASS_CACHE_TYPE_EMPTY);
        task.setGlassIdOut("");
        task.setStartCell(0);
        task.setWidth(0);
@@ -407,6 +420,7 @@
        EdgStorageDeviceTaskHistory taskHistory = new EdgStorageDeviceTaskHistory();
        BeanUtils.copyProperties(task, taskHistory);
        taskHistory.setTaskType(task.getTaskRunning());
        taskHistory.setCreateTime(new Date());
        taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
        edgStorageDeviceTaskHistoryService.save(taskHistory);
        return Boolean.TRUE;