自动化立体仓库 - WMS系统
#
fyxc
2025-04-03 7bac1f6a6be795d36b94a6f77b23958e0590add4
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
package com.zy.asrs.task;
 
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.LocMoveAllHandler;
import com.zy.asrs.utils.Utils;
import com.zy.common.properties.SlaveProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import java.util.Iterator;
import java.util.List;
 
/**
 * Created by vincent on 2020/7/7
 */
@Slf4j
@Component
public class LocMoveAllScheduler {
 
    @Value("${loc-move.enable}")
    private boolean enable;
    @Value("${loc-move.crn1}")
    private boolean crn1;
    @Value("${loc-move.crn2}")
    private boolean crn2;
    @Value("${loc-move.crn3}")
    private boolean crn3;
    @Value("${loc-move.crn4}")
    private boolean crn4;
 
    @Autowired
    private LocMoveAllHandler locMoveAllHandler;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private SlaveProperties slaveProperties;
 
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        if (!enable) return;
 
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
        if (basCrnps.isEmpty()){
            return;
        }
        Iterator<BasCrnp> iterator = basCrnps.iterator();
        while (iterator.hasNext()){
            BasCrnp basCrnp = iterator.next();
            if (basCrnp.getCrnNo() == 1 && !crn1){
                iterator.remove();
            }
            if (basCrnp.getCrnNo() == 2 && !crn2){
                iterator.remove();
            }
            if (basCrnp.getCrnNo() == 3 && !crn3){
                iterator.remove();
            }
            if (basCrnp.getCrnNo() == 4 && !crn4){
                iterator.remove();
            }
            if (basCrnp.getCrnNo() == 7){
                iterator.remove();
            }
        }
        if (basCrnps.isEmpty()){
            return;
        }
        for (BasCrnp basCrnp:basCrnps){
            if (basCrnp.getCrnSts()!=3) continue;
            if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) continue;
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no",basCrnp.getCrnNo()).eq("io_type",11));
            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()==0) {
                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",basCrnp.getCrnNo()).orderBy("appe_time",true));//空板所在
                if (Cools.isEmpty(locMastStart)){
                    continue;
                }
                if (!Utils.isShallowLoc(slaveProperties, locMastStart.getLocNo())){
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, locMastStart.getLocNo());
                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLocNo));
                    if (!locNo.getLocSts().equals("O")){
                        locMastStart = locNo;
                    }
                }
                LocMast locMastEnd = locMastService.selectOne(new EntityWrapper<LocMast>()
                        .eq("loc_sts","O")
                        .eq("crn_no",basCrnp.getCrnNo())
                        .eq("loc_type1",locMastStart.getLocType1())
                        .ne("modi_user",66)
                        .orderBy("row1",true));//目标
                if (Cools.isEmpty(locMastEnd)){
                    continue;
                }
                if (!Utils.isShallowLoc(slaveProperties, locMastEnd.getLocNo())){
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, locMastEnd.getLocNo());
                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLocNo));
                    if (locNo.getLocSts().equals("O")){
 
                    }else {
                        locMastEnd.setModiUser(66L);
                        locMastService.updateById(locMastEnd);
                        continue;
                    }
                }
//                if (Cools.isEmpty(locMastStart) || Cools.isEmpty(locMastEnd)){
 
                ReturnT<String> result = locMoveAllHandler.start(locMastStart,locMastEnd,basCrnp.getCrnNo());
                if (!result.isSuccess()) {
                    log.error("处理失败");
                }
            }
        }
    }
 
}