自动化立体仓库 - WMS系统
zyx
2024-04-16 45d602719964509214d06ec5173f23e5307d5dfe
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -10,7 +10,6 @@
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;
@@ -20,11 +19,7 @@
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
@@ -35,6 +30,9 @@
    @Value("${agv.taskCreatePath}")
    private String taskCreatePath;
    @Value("${agv.taskCancelPath}")
    private String taskCancelPath;
    @Value("${agv.containerMoveInPath}")
    private String containerMoveInPath;
@@ -72,12 +70,12 @@
        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");
@@ -148,6 +146,17 @@
        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){
@@ -161,30 +170,26 @@
        }
    }
    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){
@@ -200,7 +205,7 @@
                    .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响应错误");
            }