wangfei
2025-03-10 fda645046f5aba969a5d63751878568483ba244d
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -2,7 +2,12 @@
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.common.config.Const;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
import com.mes.rawglassstation.entity.RawGlassStorageStation;
import com.mes.rawglasstask.entity.RawGlassStorageTask;
import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
@@ -13,6 +18,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
@@ -26,9 +33,11 @@
    @Autowired
    RedisUtil redisUtil;
    @Resource
    RawGlassStorageDetailsService rawGlassStorageDetailsService;
    @Override
    public List<RawGlassStorageTask> listRawGlassTask() {
        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
    public List<RawGlassStorageTask> queryRawGlassHistoryTask(RawGlassTaskRequest request) {
        if (null == request) {
            request = new RawGlassTaskRequest();
        }
@@ -42,12 +51,13 @@
                .in(CollectionUtil.isNotEmpty(request.getTaskState()), RawGlassStorageTask::getTaskState, request.getTaskState())
                .in(CollectionUtil.isNotEmpty(request.getTaskType()), RawGlassStorageTask::getTaskType, request.getTaskType())
                .orderByDesc(RawGlassStorageTask::getCreateTime));
    }
//        return list(new QueryWrapper<RawGlassStorageTask>()
//                .in(CollectionUtil.isNotEmpty(request.getTaskState()), "task_state", request.getTaskState())
//                .in(CollectionUtil.isNotEmpty(request.getTaskType()), "task_type", request.getTaskType())
//                .between("create_time", request.getBeginDate(), request.getEndDate())
//                .orderByDesc("create_time"));
    @Override
    public List<RawGlassStorageTask> listRawGlassTask() {
        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
        return queryRawGlassHistoryTask(request);
    }
    @Override
@@ -60,4 +70,73 @@
        log.info("前端传入参数:{}", request);
        return "success";
    }
    @Override
    public Boolean taskSuccess(Long taskId) {
        //获取任务正在执行的任务信息
        RawGlassStorageTask task = this.getById(taskId);
        //去详情表获取正在执行的原片详情信息
        RawGlassStorageDetails details = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
                .ne(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT).eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
        );
        RawGlassStorageDetails targetDetails = rawGlassStorageDetailsService.generateDetails(details, task.getEndSlot());
        int deviceId = details.getDeviceId();
        Integer taskType = task.getTaskType();
        log.info("将详情表的状态改为已出库");
        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
                .ne(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
                .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()));
        log.info("任务状态已更改为:已完成");
        this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
                .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
                .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_SUCCESS));
        switch (taskType) {
            case 1:
            case 3:
                log.info("1、入库,3、调度任务。{}", taskType);
                if (details.getRemainQuantity() > 0) {
                    rawGlassStorageDetailsService.save(targetDetails);
                }
                break;
            case 2:
            case 4:
                log.info("2、出片,4、入库请求。{}", taskType);
                targetDetails = new RawGlassStorageDetails();
                targetDetails.setSlot(task.getEndSlot());
                targetDetails.setDeviceId(deviceId);
                targetDetails.setShelf(task.getStartSlot());
                targetDetails.setState(Const.RAW_GLASS_STATE_IN);
                rawGlassStorageDetailsService.save(targetDetails);
                break;
            default:
                break;
        }
        return Boolean.TRUE;
    }
    @Override
    public Boolean taskError(Long taskId) {
        //获取任务正在执行的任务信息
        RawGlassStorageTask task = this.getById(taskId);
        Integer taskType = task.getTaskType();
        if (taskType.equals(Const.RAW_GLASS_TASK_TYPE_IN_REQUEST)) {
            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
                    .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
        } else {
            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
                    .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
        }
        this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
                .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
                .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_FAILURE));
        return Boolean.TRUE;
    }
}