自动化立体仓库 - WCS系统
#
Junjie
2023-10-03 87186c12f7c8864da8925aea3e91ecde1d16d255
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
package com.zy.asrs.controller;
 
import com.zy.asrs.domain.param.RobotReportActionStatusParam;
import com.zy.asrs.domain.param.ReportExceptionParam;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.common.utils.RobotUtils;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.HashMap;
 
@RestController
public class RobotController {
 
    @Autowired
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private SlaveProperties slaveProperties;
 
    //机械手向WCS回报任务结果完成
    @PostMapping("/request/wcs/report_task_status")
    public HashMap<String,Object> reportActionStatus(@RequestBody RobotReportActionStatusParam param) {
        HashMap<String, Object> map = new HashMap<>();
        String taskId = param.getTask_id();
        Integer taskStatus = param.getTask_status();
        Integer pickNum = param.getPick_num();
        Integer targetNum = param.getTarget_num();
        String message = param.getMessage();
        Integer staNo = param.getFrom_ws();//目标站
 
        //给目标站写入出库站344
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 获取入库站信息
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
            StaProtocol staProtocol = devpThread.getStation().get(staNo);//机械手臂拣料站
            staProtocol = staProtocol.clone();
            staProtocol.setStaNo((short) 344);//空托盘出库站
            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
 
            //更新工作档 => 29.出库完成
            WrkMast wrkMast = wrkMastMapper.selectByWorkNo(Integer.valueOf(taskId));
            if (wrkMast != null && wrkMast.getWrkSts() == 25) {
                wrkMast.setWrkSts(29L);
                wrkMastMapper.updateById(wrkMast);
            }
        }
 
        System.out.println(param);
        map.put("error", 0);
        map.put("error_message", "success");
        return map;
    }
 
    //机械手向WCS回报异常
    @PostMapping("/request/wcs/report_exception")
    public HashMap<String,Object> reportException(@RequestBody ReportExceptionParam param) {
        HashMap<String, Object> map = new HashMap<>();
        String taskId = param.getTask_id();
        String errorCode = param.getError_code();
        String msg = param.getMsg();
        String tip = param.getTip();
 
        System.out.println(param);
        map.put("error", 0);
        map.put("error_message", "success");
        return map;
    }
 
    @GetMapping("/test")
    public void test() {
        boolean systemStatus = RobotUtils.getSystemStatus();
    }
 
    @GetMapping("/test2")
    public void test2() {
        RobotUtils.sendTask("9994", 4, "317");
    }
 
}