zwl
8 天以前 cd761b085ddff0d4f55a0d5b892b3120cf8fa9d2
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
package com.zy.asrs.controller;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.R;
import com.zy.asrs.domain.param.ToInStaParam;
import com.zy.asrs.domain.param.ToOutStaParam;
import com.zy.asrs.entity.RcsReporterTask;
import com.zy.asrs.entity.RcsReturn;
import com.zy.asrs.service.RcsService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
 
import java.util.HashMap;
 
@Slf4j
@RestController
public class OpenController {
    @Autowired
    private RcsService rcsService;
    @Value("${zyHikUrl}")
    private String zyHikUrl;
 
    @RequestMapping("/open/toOutSta")
    public R toOutSta(@RequestBody ToOutStaParam param) {
        log.info("toOutSta:{}",param);
        Integer sourceStaNo = param.getSourceStaNo();
        SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        if(siemensDevpThread == null) {
            return R.error("线程不存在");
        }
 
        StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
        if(staProtocol == null) {
            return R.error("站点不存在");
        }
 
        if (staProtocol.getWorkNo().intValue() != param.getWrkNo()) {
            return R.error("工作号不一致");
        }
 
        if (!staProtocol.isLoading()) {
            return R.error("站点无物");
        }
 
        staProtocol.setWorkNo(param.getWrkNo().shortValue());
        staProtocol.setStaNo(param.getStaNo().shortValue());
        staProtocol.setPalletSize((short) 1);
        boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
        log.info("发生成功:{}",result);
        return R.ok().add(result);
    }
 
    // 反馈任务执行结果
    @PostMapping("/api/robot/reporter/task")
    public RcsReturn reporterTask(@RequestBody RcsReporterTask param){
 
        return rcsService.reporterTask(param);
    }
 
    @RequestMapping("/open/toInSta")
    public R toInSta(@RequestBody ToInStaParam param) {
        log.info("toInSta:{}",param);
        SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        if(siemensDevpThread == null) {
            return R.error("线程不存在");
        }
 
        StaProtocol staProtocol = siemensDevpThread.getStation().get(param.getStaNo()).clone();
        if(staProtocol == null) {
            return R.error("站点不存在");
        }
 
        if (!staProtocol.isLoading()) {
            return R.error("站点无物");
        }
        Short s = 301;
        if (param.getStaNo() == 304 || param.getStaNo() == 305 || param.getStaNo() == 306) {
            s = 304;
        }
 
        staProtocol.setWorkNo(param.getWrkNo().shortValue());
        staProtocol.setStaNo(s);
        boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
        log.info("发生成功:{}",result);
        return R.ok().add(result);
    }
    @RequestMapping("/open/capture")
    public void startPic(@RequestParam String ip,@RequestParam String filename) {
        try {
            HashMap<String, Object> data = new HashMap<>();
            data.put("ip", ip);
            data.put("filename", filename);
 
            String response = new HttpHandler.Builder()
                    .setUri(zyHikUrl)
                    .setPath("/capture")
                    .setJson(JSON.toJSONString(data))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.getBoolean("success")) {
                News.error("请求接口成功!!!url:{};request:{};response:{}", zyHikUrl + "/startPic", JSON.toJSONString(data), response);
            } else {
                News.error("请求接口失败!!!url:{};request:{};response:{}", zyHikUrl + "/startPic", JSON.toJSONString(data), response);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @GetMapping("/api/robot/reporter/task1")
    public void reporterTask1(){
        Integer sourceStaNo = 307;
        SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
        boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
//        log.info("AGV放货完成,给站点写9991工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo());
    }
 
}