自动化立体仓库 - WMS系统
pang.jiabao
昨天 259e38eb55c12b501427702d551d4de61182406c
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
137
138
139
140
package com.zy.asrs.task.handler;
 
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.mes.MesInApply;
import com.zy.asrs.entity.mes.MesOutApply;
import com.zy.asrs.entity.mes.TransTask;
import com.zy.asrs.service.MesService;
import com.zy.asrs.service.WrkMastService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.ArrayList;
 
/**
 * @author pang.jiabao
 * @description 济南二机床加工相关定时任务
 * @createDate 2025/12/10 14:25
 */
@Slf4j
@Service
public class JlerHandler {
 
    @Resource
    private MesService mesService;
 
    @Value("${wms.wmsTransStartStation3}")
    public String WMS_TRANS_START_STATION_3;
 
    @Value("${wms.zpalletId}")
    public String WMS_ZPALLET_ID;
 
    @Resource
    private WrkMastService wrkMastService;
 
    @Transactional
    public void createAgvOutTasks(WrkMast wrkMast) {
 
        String memo = wrkMast.getMemo();
        MesOutApply mesOutApply = null;
        if(!Cools.isEmpty(memo)) {
            mesOutApply = JSONObject.parseObject(memo, MesOutApply.class);
        }
 
        // 空托出库
        if(wrkMast.getIoType() == 110) {
            if(mesOutApply == null) { // 不是mes下发的空托出库
                TransTask transTask = new TransTask();
//                transTask.setTaskno(mesOutApply.getTaskno());
//                transTask.setTaskname(mesOutApply.getTaskname());
//                transTask.setOrderNo(mesOutApply.getOrderNo());
                transTask.setTransType("01");
                transTask.setCurStationId(WMS_TRANS_START_STATION_3);
//                transTask.setNextProcess(mesOutApply.getProductLineId());
                transTask.setNextStationId(wrkMast.getAgvSta());
                transTask.setItemno(WMS_ZPALLET_ID);  // 固定为空托的编码
                transTask.setQty(1);    // 空托只出1个
//                transTask.setProductLineId(mesOutApply.getProductLineId());
                transTask.setOperateType(1);
                transTask.setAgvFactory(1);
                JSONObject sendAgvTask = mesService.submitTask(transTask);
                if ("1".equals(sendAgvTask.getString("Success"))) {
                    String taskno = sendAgvTask.getString("taskno");
                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
                        wrkMast.setTaskNo(taskno);
                    }
                    wrkMast.setCallAgv(1);
                    wrkMastService.updateById(wrkMast);
                }else {
                    log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
                }
            } else {
                TransTask transTask = new TransTask();
                transTask.setTaskno(mesOutApply.getTaskno());
                transTask.setTaskname(mesOutApply.getTaskname());
                transTask.setOrderNo(mesOutApply.getOrderNo());
                transTask.setTransType(mesOutApply.getTransType());
                transTask.setCurStationId(WMS_TRANS_START_STATION_3);
                transTask.setNextProcess(mesOutApply.getProductLineId());
                transTask.setNextStationId(mesOutApply.getStationId());
                transTask.setItemno(WMS_ZPALLET_ID);  // 固定为空托的编码
                transTask.setItemBarcode(new ArrayList<>()); // 没有零件二维码
                transTask.setQty(1);    // 空托只出1个
                transTask.setProductLineId(mesOutApply.getProductLineId());
                transTask.setOperateType(1);
                transTask.setAgvFactory(1);
                JSONObject sendAgvTask = mesService.submitTask(transTask);
                if ("1".equals(sendAgvTask.getString("Success"))) {
//                    String taskno = sendAgvTask.getString("taskno");
//                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
//                        wrkMast.setTaskNo(taskno);
//                    }
                    wrkMast.setCallAgv(1);
                    wrkMastService.updateById(wrkMast);
                }else {
                    log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
                }
            }
        } else if(wrkMast.getIoType() == 101) { // 满托出库
            if(mesOutApply == null) {
                log.error("满托出库呼叫agv无transTask,任务号:{}",wrkMast.getWrkNo());
            } else {
                TransTask transTask = new TransTask();
                transTask.setTaskno(mesOutApply.getTaskno());
                transTask.setTaskname(mesOutApply.getTaskname());
                transTask.setOrderNo(mesOutApply.getOrderNo());
                transTask.setTransType(mesOutApply.getTransType());
                transTask.setCurStationId(WMS_TRANS_START_STATION_3);
                transTask.setNextProcess(mesOutApply.getProductLineId());
                transTask.setNextStationId(mesOutApply.getStationId());
                transTask.setItemno(mesOutApply.getItemno());
                transTask.setQty(mesOutApply.getQty());
                transTask.setProductLineId(mesOutApply.getProductLineId());
                transTask.setItemBarcode(mesOutApply.getItemBarcode());
                transTask.setTuoPanId(wrkMast.getBarcode());
                transTask.setOperateType(1);
                transTask.setAgvFactory(1);
 
                JSONObject sendAgvTask = mesService.submitTask(transTask);
                if ("1".equals(sendAgvTask.getString("Success"))) {
//                    String taskno = sendAgvTask.getString("taskno");
//                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
//                        wrkMast.setTaskNo(taskno);
//                    }
                    wrkMast.setCallAgv(1);
                    wrkMastService.updateById(wrkMast);
                }else {
                    log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
                }
            }
        } else {
            log.error("出库呼叫agv任务类型错误,任务号:{}",wrkMast.getWrkNo());
        }
    }
 
}