| | |
| | | package com.zy.asrs.wcs.core.controller; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.common.utils.HttpHandler; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.framework.common.SnowflakeIdWorker; |
| | |
| | | import com.zy.asrs.wcs.system.controller.BaseController; |
| | | import com.zy.asrs.wcs.system.entity.Dict; |
| | | import com.zy.asrs.wcs.system.service.DictService; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.*; |
| | | |
| | |
| | | @RequestMapping("/openapi") |
| | | public class OpenController extends BaseController { |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(OpenController.class); |
| | | @Autowired |
| | | private SnowflakeIdWorker snowflakeIdWorker; |
| | | @Autowired |
| | |
| | | private BasConveyorStaService basConveyorStaService; |
| | | |
| | | |
| | | @PostMapping("/agvPickupComplete") |
| | | public Map<String, Object> agvPickupComplete(@RequestBody AgvTaskParam agvTaskParam) { |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("code","0"); |
| | | map.put("message","成功"); |
| | | map.put("reqCode", ""); |
| | | log.info("agv请求取货完成,wms任务号:"+JSON.toJSONString(agvTaskParam)); |
| | | return map; |
| | | |
| | | } |
| | | |
| | | @PostMapping("/agvTaskComplete") |
| | | public Map<String, Object> agvTaskComplete(@RequestBody AgvTaskParam agvTaskParam) { |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("code","0"); |
| | | map.put("message","成功"); |
| | | map.put("reqCode", ""); |
| | | log.info("agv请求任务完成,wms任务号:"+JSON.toJSONString(agvTaskParam)); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | //取消wcs任务 |
| | | @PostMapping("/cancelWcsTask") |
| | | public HashMap<String,Object> cancelWcsTask(@RequestBody CreateWcsTaskParam param){ |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | |
| | | ArrayList<String> outlist = new ArrayList<>(); |
| | | outlist.add("2");outlist.add("9"); |
| | | if (inlist.contains(param.getTrkType())){ |
| | | try { |
| | | AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); |
| | | getInRequestParam(agvTaskCreateParam,param); |
| | | boolean httpRequest = doHttpRequest(agvTaskCreateParam, "172.18.16.248:443", "/rcs/rtas/api/robot/controller/task/submit"); |
| | | if (!httpRequest){ |
| | | map.put("success", "0"); |
| | | map.put("message", "转发AGV任务出错"); |
| | | map.put("result", ""); |
| | | map.put("requestPK", param.getRequestPK()); |
| | | return map; |
| | | } |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | CreateInTaskParam createInTaskParam = new CreateInTaskParam(); |
| | | createInTaskParam.setTaskNo(param.getRequestPK()); |
| | | createInTaskParam.setDestLoc(getWMStoWCSLocNo(param.getToPos())); |
| | |
| | | } |
| | | } |
| | | } else if (outlist.contains(param.getTrkType())) { |
| | | // try { |
| | | // AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); |
| | | // getOutRequestParam(agvTaskCreateParam,param); |
| | | // boolean httpRequest = doHttpRequest(agvTaskCreateParam, "172.18.16.94:8001", "/api/robot/controller/task/submit"); |
| | | // if (!httpRequest){ |
| | | // map.put("success", "0"); |
| | | // map.put("message", "转发AGV任务出错"); |
| | | // map.put("result", ""); |
| | | // map.put("requestPK", param.getRequestPK()); |
| | | // return map; |
| | | // } |
| | | // }catch (Exception e){ |
| | | // map.put("success", "0"); |
| | | // map.put("message", "转发AGV任务出错"); |
| | | // map.put("result", ""); |
| | | // map.put("requestPK", param.getRequestPK()); |
| | | // return map; |
| | | // } |
| | | CreateOutTaskParam createOutTaskParam = new CreateOutTaskParam(); |
| | | createOutTaskParam.setTaskNo(param.getRequestPK()); |
| | | createOutTaskParam.setOriginLoc(getWMStoWCSLocNo(param.getFrmPos())); |
| | | createOutTaskParam.setOriginSite("101"); |
| | | createOutTaskParam.setDestSite("100"); |
| | | createOutTaskParam.setPriority(Integer.valueOf(param.getTrkPrty())); |
| | | createOutTaskParam.setEndSite(param.getToPos()); |
| | | R outTask = null; |
| | | try { |
| | | outTask = createOutTask(createOutTaskParam); |
| | |
| | | int lev = Integer.parseInt(loc.substring(10,12)); |
| | | locNo = row +"-"+bay+"-"+lev; |
| | | return locNo; |
| | | } |
| | | private void getInRequestParam(AgvTaskCreateParam agvTaskCreateParam,CreateWcsTaskParam param){ |
| | | List<AgvTaskCreateParam.AgvTaskParam> agvTaskParamList = Arrays.asList( |
| | | //起始位 |
| | | new AgvTaskCreateParam.AgvTaskParam("SITE",param.getFrmPos(),0,1), |
| | | //目标位 |
| | | new AgvTaskCreateParam.AgvTaskParam("SITE","06YZ0001",1,1) |
| | | ); |
| | | List<AgvTaskCreateParam.carrierInfoParam> carrierInfoParam = Arrays.asList( |
| | | //起始位 |
| | | new AgvTaskCreateParam.carrierInfoParam() |
| | | |
| | | ); |
| | | agvTaskCreateParam.setTaskType("F01"); |
| | | agvTaskCreateParam.setInitPriority(param.getTrkPrty()); |
| | | agvTaskCreateParam.setRobotTaskCode(param.getRequestPK()); |
| | | agvTaskCreateParam.setTargetRoute(agvTaskParamList); |
| | | agvTaskCreateParam.setCarrierInfo(carrierInfoParam); |
| | | |
| | | } |
| | | private boolean doHttpRequest(AgvTaskCreateParam requestParam, String url, String path){ |
| | | String response = ""; |
| | | boolean success = false; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("Content-Type", "application/json;charset=UTF-8"); |
| | | map.put("X-lr-request-id", requestParam.getRobotTaskCode()); |
| | | map.put("X-lr-version", 4.1); |
| | | map.put("X-lr-trace-id", "{{$guid}}"); |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(map) |
| | | .setUri(url) |
| | | .setHttps(true) |
| | | .setPath(path) |
| | | .setJson(JSONObject.toJSONString(requestParam)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | |
| | | String code = jsonObject.get("code").toString(); |
| | | if(code.equals("SUCCESS")){ |
| | | success = true; |
| | | } |
| | | log.info("转发agv任务:请求体:"+JSONObject.toJSONString(requestParam)+",返回值:"+jsonObject); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | return success; |
| | | } |
| | | |
| | | //生成入库任务 |
| | |
| | | task.setIoTime(new Date()); |
| | | task.setStartTime(new Date()); |
| | | task.setStatus(1); |
| | | task.setMemo(""); |
| | | task.setMemo(param.getEndSite()); |
| | | task.setShuttleNo(null);//等待主线程分配小车 |
| | | task.setRecordLoc("Y");//记录库存信息 |
| | | task.setHostId(hostId);//临时控制只允许host为1 |