wuyouming666
2024-07-18 9ae5cf6edf1a2acb2a4283eaa35c0c3fa6f13eba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.mes.storagetask.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.storagetask.mapper.StorageTaskMapper;
import com.mes.storagetask.entity.StorageTask;
import com.mes.storagetask.service.StorageTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
 
/**
 * @author system
 * @since 2024-07-09 14:51:27
 */
@Service
@Slf4j
public class StorageTaskServiceImpl extends ServiceImpl<StorageTaskMapper, StorageTask> implements StorageTaskService {
 
    @Autowired
    private StorageTaskMapper storageTaskMapper;
 
    @Override
    public List<StorageTask> findList(StorageTask params){
        LambdaQueryWrapper<StorageTask> query = Wrappers.lambdaQuery(StorageTask.class);
        return storageTaskMapper.selectList(query);
    }
 
 
    public Map<String, Optional<StorageTask>> findLatestTasks() {
        Map<String, Optional<StorageTask>> latestTasks = new HashMap<>();
 
        // 查询最新的已完成任务
        LambdaQueryWrapper<StorageTask> completedWrapper = new LambdaQueryWrapper<>();
        completedWrapper.eq(StorageTask::getTaskType, "已完成")
                .orderByDesc(StorageTask::getId)
                .last("LIMIT 1");
        Optional<StorageTask> latestCompletedTask = Optional.ofNullable(storageTaskMapper.selectOne(completedWrapper));
        latestTasks.put("已完成", latestCompletedTask);
 
        // 查询最新的等待中任务
        LambdaQueryWrapper<StorageTask> pendingWrapper = new LambdaQueryWrapper<>();
        pendingWrapper.eq(StorageTask::getTaskType, "等待中")
                .orderByDesc(StorageTask::getId);
        Optional<StorageTask> latestPendingTask = Optional.ofNullable(storageTaskMapper.selectOne(pendingWrapper));
        latestTasks.put("等待中", latestPendingTask);
        log.info(latestTasks+"");
        return latestTasks;
    }
 
 
 
 
}