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);
|
}
|
|
}
|