自动化立体仓库 - WMS系统
#
Junjie
2023-11-07 dc07f8dfebabfc695bfe5fc4d65083eb2a23d728
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -2,7 +2,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.AgvWrkMast;
import com.zy.asrs.entity.param.AgvTaskCreateParam;
@@ -42,6 +44,9 @@
    @Value("${agv.containerMoveOutPath}")
    private String containerMoveOutPath;
    @Value("${agv.containerArrivedPath}")
    private String containerArrivedPath;
    @Autowired
    AgvWrkMastMapper agvWrkMastMapper;
    @Autowired
@@ -72,26 +77,25 @@
        AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
        agvTaskCreateParam.setTaskType(taskType);
//        //调用容器入场时所需要参数
//        Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
//        List<Map<String,String>> positionCodeMapList = new ArrayList<>();
//        containerMoveParam.put("containerMoveIns",positionCodeMapList);
        getRequestParam(agvTaskCreateParam,agvWrkMastList);
        return doHttpRequest(agvTaskCreateParam,"上架任务下发",url, taskCreatePath,null,"127.0.0.1");
        return doHttpRequest(agvTaskCreateParam,"搬运任务下发",url, taskCreatePath,null,"127.0.0.1");
        //return containerMoveParam;
    }
    //容器入场
    public int containerMove(List<AgvWrkMast> agvWrkMastList) throws IOException {
    public int containerMoveIn(List<AgvWrkMast> agvWrkMastList) throws IOException {
        //调用容器入场时所需要参数
        Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
        List<Map<String,String>> positionCodeMapList = new ArrayList<>();
        containerMoveParam.put("containerMoveIns",positionCodeMapList);
        getContainerMoveParam(agvWrkMastList,positionCodeMapList);
        if(Cools.isEmpty(positionCodeMapList)){
            return 0;
        }
        return doHttpRequest(containerMoveParam,"容器入场任务下发",url, containerMoveInPath,null,"127.0.0.1");
    }
@@ -115,9 +119,28 @@
        return index > 0;
    }
    @Override
    public boolean deleteByWrkNo(int wrkNo) {
        return this.delete(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo));
    }
    //容器到达通知
    public int containerArrived(AgvWrkMast agvWrkMast) {
        Map<String,String> containerArrivedParam = new HashMap<>();
        containerArrivedParam.put("slotCode",agvWrkMast.getSourceLocNo());
        containerArrivedParam.put("containerCode",agvWrkMast.getBarcode());
        return doHttpRequest(containerArrivedParam,"容器达到通知",url, containerArrivedPath,null,"127.0.0.1");
    }
    private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){
        //往容器入场参数中放入源站点位置
        for(AgvWrkMast agvWrkMast : agvWrkMastList){
            //判断是否为输送线入库,是则不需要容器进场请求
            if("Y".equals(agvWrkMast.getMk())){
                continue;
            }
            Map<String,String> positionCodeMap = new HashMap<>();
            positionCodeMap.put("positionCode",agvWrkMast.getSourceLocNo());
            positionCodeMapList.add(positionCodeMap);
@@ -130,11 +153,18 @@
            AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
            agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
            //AgvTaskParam
            agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString());
            if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57){
                agvTaskParam.setTaskCode(-agvWrkMast.getWrkNo() + "");
            }else{
                agvTaskParam.setTaskCode(agvWrkMast.getWrkNo() + "");
            }
            agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
            //AgvTaskkDescribeParam
            agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
            if(agvWrkMast.getSourceLocNo().contains("CS") || agvWrkMast.getSourceLocNo().contains("SK")){
                agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
            }
            agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo());
            agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode());
            return agvTaskParam;