自动化立体仓库 - WMS系统
#
whycq
2024-05-21 7e8c8abedab8d33ea5faff80545e566aa71306d6
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -7,11 +7,14 @@
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.entity.AgvLocMast;
import com.zy.asrs.entity.AgvWrkMast;
import com.zy.asrs.entity.param.AgvTaskCreateParam;
import com.zy.asrs.entity.param.AgvTaskParam;
import com.zy.asrs.mapper.AgvWrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.common.service.AgvCommonService;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +33,9 @@
    @Value("${agv.taskCreatePath}")
    private String taskCreatePath;
    @Value("${agv.taskCancelPath}")
    private String taskCancelPath;
    @Value("${agv.containerMoveInPath}")
    private String containerMoveInPath;
@@ -50,6 +56,10 @@
    ApiLogService apiLogService;
    @Autowired
    AgvBasDevpService agvBasDevpService;
    @Autowired
    private AgvCommonService agvCommonService;
    @Autowired
    private AgvWrkMastService agvWrkMastService;
    public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
        AgvWrkMast agvWrkMast = this.selectById(wrkNo);
@@ -77,6 +87,17 @@
        return doHttpRequest(agvTaskCreateParam,"搬运任务下发",url, taskCreatePath,null,"127.0.0.1");
        //return containerMoveParam;
    }
    public int startAllcationIn(AgvWrkMast agvWrkMast) throws IOException {
        AgvBasDevp basDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
        //检索库位,选择合适的库位
        AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor());
        agvWrkMast.setLocNo(locMast.getLocNo());
        agvWrkMast.setWrkSts(201L);
        agvWrkMastService.updateById(agvWrkMast);
        return 0;
    }
    //容器入场
@@ -143,6 +164,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){
@@ -169,8 +201,16 @@
//        //目标位
//        agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getLocNo()));
        agvTaskCreateParam.setReqCode(agvWrkMast.getWrkNo().toString());
        agvTaskCreateParam.setTaskTyp("F01");
        if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 ){
            agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo());
        }
        agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString());
        if (agvWrkMast.getIoType() == 108 || agvWrkMast.getIoType() == 109 || agvWrkMast.getIoType() == 12) {
            agvTaskCreateParam.setTaskTyp("F06");
        } else  {
            agvTaskCreateParam.setTaskTyp("F01");
        }
        agvTaskCreateParam.setPositionCodePath(agvTaskParamList);
    }
@@ -188,7 +228,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响应错误");
            }