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