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 trafficControlDataList = (List) object; for (TrafficControlDataModel dataModel : trafficControlDataList) { WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper() .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); } }