ZengTao
2025-03-28 f68d3c71819feb59e7a227a5d992b059b900916c
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.mes.bigstoragetask.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.List;
 
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author zhoush
 * @since 2024-04-16
 */
@Slf4j
@Service
public class BigStorageCageOutTaskServiceImpl extends ServiceImpl<BigStorageCageOutTaskMapper, BigStorageCageOutTask> implements BigStorageCageOutTaskService {
 
    @Resource
    TemperingGlassInfoMapper temperingGlassInfoMapper;
    @Resource
    BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
    @Resource
    BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
 
    @Override
    public boolean saveBatch(List<BigStorageCageOutTask> list) {
        return baseMapper.saveBatch(list);
    }
 
    /**
     * 查询任务信息
     */
    @Override
    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) {
        log.info("根据传入的任务状态查询任务信息:" + taskState);
        LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper = new LambdaQueryWrapper<>();
        getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState, taskState);
        return baseMapper.selectList(getOutTaskWrapper);
    }
 
    /**
     * 检测PLC是否完成任务
     */
    @Override
    public void updateOutTask(){
        List<BigStorageCageOutTask> bigStorageCageOutTaskList=querybigStorageCageOutTask(1);
        log.info("查询任务表是否有已完成的出片任务"+bigStorageCageOutTaskList.size());
        for (BigStorageCageOutTask bigStorageCageOutTask:bigStorageCageOutTaskList
        ) {
            deleteOutTask(bigStorageCageOutTask.getGlassId());
        }
    }
 
    /**
     * 完成出片任务
     */
    @Override
    public void deleteOutTask(String glassId){
        log.info("根据任务id修改钢化小片表状态,删除已完成的出片任务,删除笼子表玻璃");
 
        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper =new LambdaQueryWrapper<>();
        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getGlassId,glassId);
        TemperingGlassInfo temperingGlassInfo=temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
        //判断是否手动任务,不钢化任务完成后删掉,钢化任务完成后改状态为0
        if(temperingGlassInfo.getState()==-2){
            temperingGlassInfoMapper.deleteById(temperingGlassInfo.getId());
        }else{
            temperingGlassInfo.setState(0);
            temperingGlassInfoMapper.updateById(temperingGlassInfo);
        }
 
        LambdaQueryWrapper<BigStorageCageOutTask> bigStorageCageOutTaskWrapper =new LambdaQueryWrapper<>();
        bigStorageCageOutTaskWrapper.eq(BigStorageCageOutTask::getGlassId,glassId);
        BigStorageCageOutTask bigStorageCageOutTask=bigStorageCageOutTaskMapper.selectOne(bigStorageCageOutTaskWrapper);
        bigStorageCageOutTaskMapper.deleteById(bigStorageCageOutTask.getId());
 
        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
        bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId,glassId);
        BigStorageCageDetails bigStorageCageDetails=bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailsWrapper);
        bigStorageCageDetailsMapper.deleteById(bigStorageCageOutTask.getId());
 
    }
 
    @Override
    public void deleteTask(List<BigStorageCageOutTask> outGlassId){
        baseMapper.deleteTask(outGlassId);
    }
 
    @Override
    public List<BigStorageCageOutTask> selectBigStorageCageOutTask(BigStorageCageOutTask bigStorageCageOutTask, String startTime, String endTime){
        if (endTime != null && !endTime.isEmpty()) {
            endTime = endTime + " 23:59:59";
        }
        LambdaQueryWrapper<BigStorageCageOutTask> wrapper = new LambdaQueryWrapper<>();
        if (bigStorageCageOutTask.getStartSlot() != null) {
            wrapper.eq(BigStorageCageOutTask::getStartSlot, bigStorageCageOutTask.getStartSlot());
        }
        if (bigStorageCageOutTask.getWidth() != null) {
            wrapper.eq(BigStorageCageOutTask::getWidth, bigStorageCageOutTask.getWidth());
        }
        if (bigStorageCageOutTask.getHeight() != null) {
            wrapper.eq(BigStorageCageOutTask::getHeight, bigStorageCageOutTask.getHeight());
        }
        if (bigStorageCageOutTask.getEndSlot() != 0) {
            wrapper.eq(BigStorageCageOutTask::getEndSlot, bigStorageCageOutTask.getEndSlot());
        }
        if (bigStorageCageOutTask.getTaskState() != -1) {
            wrapper.eq(BigStorageCageOutTask::getTaskState, bigStorageCageOutTask.getTaskState());
        }
        if (startTime != null && !startTime.isEmpty()) {
            wrapper.ge(BigStorageCageOutTask::getCreateTime, startTime);
        }
        if (endTime != null && !endTime.isEmpty()) {
            wrapper.le(BigStorageCageOutTask::getCreateTime, endTime);
        }
        wrapper.orderByDesc(BigStorageCageOutTask::getId);
        wrapper.and(item -> item.eq(BigStorageCageOutTask::getDeleted, 0)
                .or()
                .eq(BigStorageCageOutTask::getDeleted, 1));
        wrapper.between(BigStorageCageOutTask::getCreateTime, startTime, endTime);
        return baseMapper.selectList(wrapper);
    }
}