自动化立体仓库 - WMS系统
野心家
2024-12-25 0cac4ab2975a4dd01c937aa4f33ffa88c45b604b
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
package com.zy.asrs.task.handler;
 
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WorkService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
import java.util.Map;
 
 
/**
 * Created by vincent on 2023/7/7
 */
@Slf4j
@Service
public class AutoLocMoveHandler extends AbstractHandler<String> {
    @Autowired
    private CommonService commonService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private WorkService workService;
 
//    @Transactional(isolation = Isolation.REPEATABLE_READ)
//    public ReturnT<String> start(Integer crnNo, Integer ioType) {
//        try {
//            //11  穿梭移单边
//            if (ioType==11){
//                for (int bay = 1;bay < 27;bay++){
//                    for (int lev = 1 ; lev <6 ; lev++){
//                        List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay,lev,crnNo);
//                        if (!Cools.isEmpty(locMasts) && locMasts.size()<4){
//                            for (LocMast locMast:locMasts){
//                                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
//                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
//                                workService.locMove(locMast.getLocNo(), startupDto.getLocNo(),9527L);
//                            }
//                            return SUCCESS;
//                        }
//                    }
//                }
//            }else {//11  单边移穿梭
//                List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111   单边移穿梭
//                for (Map<String, Object> map : list) {
//                    String matnr = map.getOrDefault("matnr","").toString();//物料号
//                    String batch = map.getOrDefault("batch","").toString();//批号
//                    String grade = map.getOrDefault("brand","").toString();//等级
//                    int count = Integer.parseInt(map.get("count").toString());//单边库数量
//                    if (count < 4) {
//                        continue;
//                    }
//
//                    List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo);
//                    for (LocDetl locDetl : locDetlList) {
//                        StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null);
//                        workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L);
//                    }
//                }
//                return SUCCESS;
//            }
//        }catch (Exception e){
//            log.error("自动移库出错,堆垛机号{},工作类型{}",crnNo,ioType);
//        }
//        return SUCCESS;
//    }
 
}