zhoushihao
2025-06-06 4e3b8155722b66e25df3c6fd42cc586b68dea391
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -3,6 +3,7 @@
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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.common.config.Const;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
@@ -37,7 +38,23 @@
    RawGlassStorageDetailsService rawGlassStorageDetailsService;
    @Override
    public List<RawGlassStorageTask> queryRawGlassHistoryTask(RawGlassTaskRequest request) {
    public Page<RawGlassStorageTask> queryRawGlassHistoryTask(RawGlassTaskRequest request) {
        if (request.getBeginDate() == null) {
            //设置默认时间    startDate:开始时间   endDate:结束时间
            request.setBeginDate(DateUtil.getBeginDate());
            request.setEndDate(DateUtil.getEndDate());
        }
        Page<RawGlassStorageTask> page = new Page<>(request.getPageNo(), request.getPageSize());
        return page(page, new LambdaQueryWrapper<RawGlassStorageTask>()
                .between(RawGlassStorageTask::getCreateTime, request.getBeginDate(), request.getEndDate())
                .in(CollectionUtil.isNotEmpty(request.getTaskState()), RawGlassStorageTask::getTaskState, request.getTaskState())
                .in(CollectionUtil.isNotEmpty(request.getTaskType()), RawGlassStorageTask::getTaskType, request.getTaskType())
                .orderByDesc(RawGlassStorageTask::getCreateTime));
    }
    @Override
    public List<RawGlassStorageTask> listRawGlassTask() {
        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
        if (null == request) {
            request = new RawGlassTaskRequest();
        }
@@ -51,12 +68,6 @@
                .in(CollectionUtil.isNotEmpty(request.getTaskState()), RawGlassStorageTask::getTaskState, request.getTaskState())
                .in(CollectionUtil.isNotEmpty(request.getTaskType()), RawGlassStorageTask::getTaskType, request.getTaskType())
                .orderByDesc(RawGlassStorageTask::getCreateTime));
    }
    @Override
    public List<RawGlassStorageTask> listRawGlassTask() {
        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
        return queryRawGlassHistoryTask(request);
    }
@@ -79,38 +90,40 @@
        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) {
        if(details!=null){
            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;
            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;
                    break;
                default:
                    break;
            }
        }
        return Boolean.TRUE;
    }