ZengTao
2025-04-21 492ea67c59e9b82115c4a8b7817ccb3242a15bc1
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
package com.mes.hollowqueue.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.damage.entity.Damage;
import com.mes.damage.service.DamageService;
import com.mes.hollow.entity.HollowGlassOutRelationInfo;
import com.mes.hollow.service.HollowGlassOutRelationInfoService;
import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
import com.mes.hollowqueue.mapper.HollowGlassQueueInfoMapper;
import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
 
/**
 * (HollowGlassQueueInfo)表服务实现类
 *
 * @author makejava
 * @since 2024-11-30 10:19:56
 */
@Service
@Slf4j
public class HollowGlassQueueInfoServiceImpl extends ServiceImpl<HollowGlassQueueInfoMapper, HollowGlassQueueInfo> implements HollowGlassQueueInfoService {
 
 
    @Resource
    HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
    @Resource
    DamageService damageService;
 
 
    @Override
    public List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByTask(int taskId) {
        return this.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
                .eq(HollowGlassQueueInfo::getRelationId, taskId)
                .orderByAsc(HollowGlassQueueInfo::getHollowSequence)
                .orderByAsc(HollowGlassQueueInfo::getLayer));
    }
 
    @Override
    public List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByLine(int cell) {
        LocalDateTime twoDaysAgo = LocalDate.now().atStartOfDay().minusDays(1);
        List<String> relationIds = this.listObjs(
                new LambdaQueryWrapper<HollowGlassQueueInfo>()
                        .lt(HollowGlassQueueInfo::getState, 1)
                        .eq(HollowGlassQueueInfo::getCell, cell)
                        .select(HollowGlassQueueInfo::getRelationId)
                        .groupBy(HollowGlassQueueInfo::getRelationId),
                Object::toString
        );
        List<HollowGlassQueueInfo> resultList = this.list(
                new QueryWrapper<HollowGlassQueueInfo>()
                        .in("relation_id", relationIds)
                        .eq("cell", cell)
                        .eq("is_pair", 1)
                        .ge("create_time", twoDaysAgo)
                        .select("width","height","flow_card_id","relation_id", "hollow_sequence", "cell", "MAX(state) as state", "MAX(layer) as layer")
                        .groupBy("relation_id", "hollow_sequence")
                        .orderByAsc("relation_id", "hollow_sequence")
        );
 
        // 修改内存中集合的第一条 state 为 0 或 -1 的对象的 state 为 -2
        for (HollowGlassQueueInfo item : resultList) {
            if (item.getState() == 0 || item.getState() == -1) {
                item.setState(-2);
                break; // 只改第一条,改完就退出循环
            }
        }
        return resultList;
    }
 
    @Override
    public void confirmBorder(HollowGlassQueueInfo hollowGlassQueueInfo) {
 
        if (hollowGlassQueueInfo.getState() == 8) {
            HollowGlassQueueInfo hollowGlassQueueInfoDamage = this.getOne(
                    new LambdaQueryWrapper<HollowGlassQueueInfo>()
                            .eq(HollowGlassQueueInfo::getLayer, hollowGlassQueueInfo.getLayer())
                            .eq(HollowGlassQueueInfo::getRelationId, hollowGlassQueueInfo.getRelationId())
                            .eq(HollowGlassQueueInfo::getHollowSequence, hollowGlassQueueInfo.getHollowSequence())
            );
            hollowGlassQueueInfoDamage.setState(hollowGlassQueueInfo.getState());
            this.updateById(hollowGlassQueueInfoDamage);
            Damage damage = new Damage();
            damage.setGlassId(hollowGlassQueueInfoDamage.getGlassId());
            damage.setLine(hollowGlassQueueInfoDamage.getCell());
            damage.setWorkingProcedure("中空");
            damage.setRemark("折铝框");
            damage.setStatus(1);
            damage.setType(hollowGlassQueueInfoDamage.getState());
            damageService.insertDamage(damage);
        } else {
            this.update(
                    new LambdaUpdateWrapper<HollowGlassQueueInfo>()
                            .set(HollowGlassQueueInfo::getState, hollowGlassQueueInfo.getState())
                            .eq(HollowGlassQueueInfo::getRelationId, hollowGlassQueueInfo.getRelationId())
                            .eq(HollowGlassQueueInfo::getHollowSequence, hollowGlassQueueInfo.getHollowSequence())
            );
 
        }
    }
}