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 reportActionStatus(@RequestBody RobotReportActionStatusParam param) { HashMap 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 reportException(@RequestBody ReportExceptionParam param) { HashMap 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"); } }