#
Junjie
4 天以前 6daf900a09adcca981f620744bf89851654d88e0
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
package com.zy.asrs.controller;
 
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.R;
import com.zy.asrs.domain.param.CancelTrafficParam;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.NavigateNode;
import com.zy.common.utils.RedisUtil;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.ShuttleCommandModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.TrafficControlDataModel;
import com.zy.core.model.command.ShuttleCommand;
import com.zy.core.thread.TrafficControlThread;
import lombok.extern.slf4j.Slf4j;
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.RestController;
 
import java.util.List;
 
@Slf4j
@RestController
public class TrafficControlController {
 
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private WrkMastService wrkMastService;
 
    @GetMapping("/trafficControl/getTrafficControlInfos")
    public R getTrafficControlInfos() {
        Object object = redisUtil.get(RedisKeyType.TRAFFIC_CONTROL_MAP.key);
        if (object == null) {
            return R.ok();
        }
 
        List<TrafficControlDataModel> trafficControlDataList = (List<TrafficControlDataModel>) object;
 
        for (TrafficControlDataModel dataModel : trafficControlDataList) {
            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                    .eq("wrk_no", dataModel.getTaskNo()));
            dataModel.setTaskExist(wrkMast != null);
        }
        return R.ok().add(trafficControlDataList);
    }
 
    @PostMapping("/trafficControl/cancelTraffic")
    public R cancelTraffic(CancelTrafficParam param) {
        TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1);
        if (trafficControlThread == null) {
            return R.error();
        }
 
        boolean result = trafficControlThread.cancelTrafficControl(param.getShuttleNo(), param.getTaskNo());
        return R.ok().add(result);
    }
 
}