wangfei
16 小时以前 2b91b242113bd10f1be241d19ab154e9ad6506cd
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -2,7 +2,13 @@
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;
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 +19,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;
/**
@@ -25,6 +33,24 @@
    @Autowired
    RedisUtil redisUtil;
    @Resource
    RawGlassStorageDetailsService rawGlassStorageDetailsService;
    @Override
    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() {
@@ -43,11 +69,6 @@
                .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
@@ -60,4 +81,75 @@
        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())
        );
        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;
                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;
    }
}