| | |
| | | import com.zy.asrs.entity.AgvWrkMast; |
| | | import com.zy.asrs.entity.param.AgvTaskCreateParam; |
| | | import com.zy.asrs.entity.param.AgvTaskParam; |
| | | import com.zy.asrs.entity.param.AgvTaskkDescribeParam; |
| | | import com.zy.asrs.mapper.AgvWrkMastMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.utils.HttpHandler; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | @Slf4j |
| | |
| | | |
| | | @Value("${agv.taskCreatePath}") |
| | | private String taskCreatePath; |
| | | |
| | | @Value("${agv.taskCancelPath}") |
| | | private String taskCancelPath; |
| | | |
| | | @Value("${agv.containerMoveInPath}") |
| | | private String containerMoveInPath; |
| | |
| | | return true; |
| | | } |
| | | |
| | | public int startWrk(List<AgvWrkMast> agvWrkMastList, String taskType) throws IOException { |
| | | public int startWrk(AgvWrkMast agvWrkMast) throws IOException { |
| | | |
| | | AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); |
| | | agvTaskCreateParam.setTaskType(taskType); |
| | | //agvTaskCreateParam.setTaskType(taskType); |
| | | |
| | | getRequestParam(agvTaskCreateParam,agvWrkMastList); |
| | | getRequestParam(agvTaskCreateParam,agvWrkMast); |
| | | |
| | | return doHttpRequest(agvTaskCreateParam,"搬运任务下发",url, taskCreatePath,null,"127.0.0.1"); |
| | | |
| | |
| | | return this.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",containerCode)); |
| | | } |
| | | |
| | | @Override |
| | | public int callCancelTask(int wrkNo) { |
| | | |
| | | AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); |
| | | agvTaskCreateParam.setTaskCode(wrkNo + ""); |
| | | |
| | | return doHttpRequest(agvTaskCreateParam,"取消任务下发",url, taskCancelPath,null,"127.0.0.1"); |
| | | |
| | | } |
| | | |
| | | |
| | | private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){ |
| | | //往容器入场参数中放入源站点位置 |
| | | for(AgvWrkMast agvWrkMast : agvWrkMastList){ |
| | |
| | | } |
| | | } |
| | | |
| | | private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam,List<AgvWrkMast> agvWrkMastList){ |
| | | List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> { |
| | | AgvTaskParam agvTaskParam = new AgvTaskParam(); |
| | | AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam(); |
| | | agvTaskParam.setTaskDescribe(agvTaskkDescribeParam); |
| | | //AgvTaskParam |
| | | if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57){ |
| | | agvTaskParam.setTaskCode(-agvWrkMast.getWrkNo() + ""); |
| | | }else{ |
| | | agvTaskParam.setTaskCode(agvWrkMast.getWrkNo() + ""); |
| | | } |
| | | private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam,AgvWrkMast agvWrkMast){ |
| | | |
| | | agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue()); |
| | | List<AgvTaskParam> agvTaskParamList = Arrays.asList( |
| | | //起始位 |
| | | new AgvTaskParam(agvWrkMast.getSourceLocNo()), |
| | | //目标位 |
| | | new AgvTaskParam(agvWrkMast.getLocNo())); |
| | | |
| | | //AgvTaskkDescribeParam |
| | | if(agvWrkMast.getSourceLocNo().contains("CS") || agvWrkMast.getSourceLocNo().contains("SK")){ |
| | | agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo()); |
| | | } |
| | | agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo()); |
| | | agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode()); |
| | | return agvTaskParam; |
| | | }).collect(Collectors.toList()); |
| | | // //起始位 |
| | | // agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getSourceLocNo())); |
| | | // //目标位 |
| | | // agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getLocNo())); |
| | | |
| | | agvTaskCreateParam.setTasks(agvTaskParamList); |
| | | if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 ){ |
| | | agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo()); |
| | | } |
| | | agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | agvTaskCreateParam.setPositionCodePath(agvTaskParamList); |
| | | |
| | | } |
| | | |
| | | private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){ |
| | |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | |
| | | int code = (int) jsonObject.get("code"); |
| | | int code = Integer.parseInt(jsonObject.get("code").toString()); |
| | | if(code != 0){ |
| | | throw new CoolException("调用AGV响应错误"); |
| | | } |