自动化立体仓库 - WMS系统
#
1
3 天以前 b1ab4be395a104f6e1bb25249e0b93c520080053
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -18,6 +18,7 @@
import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.asrs.utils.Utils;
import com.zy.common.constant.AgvConstant;
import com.zy.common.constant.ArmConstant;
import com.zy.common.model.DetlDto;
import com.zy.common.service.CommonService;
@@ -807,6 +808,8 @@
        basAgvMast.setStaNo(param.getStaNo());
        basAgvMast.setSourceLocNo(param.getSourceLocNo());
        basAgvMast.setLocNo(param.getLocNo());
        String locNo = null;
        String staNo = null;
        // 默认值
        basAgvMast.setPriority(1L);          // 默认优先级
        basAgvMast.setStatus(0);             // 初始状态
@@ -814,11 +817,33 @@
        basAgvMast.setModiTime(new Date());  // 修改时间
        basAgvMast.setIoType(param.getIoType());// 任务类型
        basAgvMast.setFloorNo(param.getFloorNo()); //楼层
        switch (basAgvMast.getIoType()){
            // AGV库位==》输送线站点  0
            // AGV库位==》AGV库位  1
            // 输送线站点==》AGV库位  2
            // 输送线站点==》输送线站点  3
            case 0:
            case 1:
                locNo = param.getSourceLocNo();
                break;
            case 2:
            case 3:
                staNo = param.getSourceStaNo().toString();
                break;
        }
        // 插入数据库
        basAgvMastService.insert(basAgvMast);
        bindCtnrAndBinParam bindParam = new bindCtnrAndBinParam();
        bindParam.setBarcode(basAgvMast.getTimestamp().toString());
        bindParam.setIndBind("1");
        bindParam.setFloorNo(basAgvMast.getFloorNo());
        bindParam.setLocNo(locNo);
        bindParam.setStaNo(staNo);
        if(bindCtnrAndBin(bindParam)){
        return true;
        }else{
            throw new CoolException("未能绑定");
        }
    }
    @Override
@@ -865,6 +890,7 @@
        if (param == null) {
            throw new CoolException("参数不能为空");
        }
        if (param.getFloorNo()==1){
        AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam();
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", param.getLocNo()));
@@ -880,8 +906,8 @@
        }
        agvBindCtnrAndBinParam.setIndBind(param.getIndBind());
        try {
            String URL = "http://10.10.10.200:8181/rcms/services/rest/hikRpcService"; // AGV接口地址
            String mesPath = "bindCtnrAndBin"; // 接口路径
                String URL = AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService; // AGV接口地址
                String mesPath = AgvConstant.getAGVADAPTOR(param.getFloorNo()); // 接口路径
            String response = "";
            boolean success = false;
            try {
@@ -910,6 +936,7 @@
        } catch (Exception e) {
            throw new CoolException(e.getMessage());
        }
        } else {}
        return true;
    }
@@ -933,7 +960,7 @@
        agvGoParam.setCode("0");
        agvGoParam.setMessage("继续执行");
        agvGoParam.setReqCode(param.getReqCode());
        ReturnT<String> result = new PostMesDataUtils().postMesDataArmGrating("光栅下发后继续任务:", URL, AGVPath, param);
        ReturnT<String> result = new PostMesDataUtils().postMesDataArmGrating("光栅下发后继续任务:", URL, AGVPath, agvGoParam);
        if (result.getCode()==200){
            return true;
        }
@@ -946,10 +973,17 @@
        String URL = "http://10.10.10.200:8181/"; // AGV接口地址
        String AGVPath = "rcms/services/rest/hikRpcService/bindCtnrAndBin"; // 接口路径
        BasAgvMast basAgvMast = basAgvMastService.selectOne(new EntityWrapper<BasAgvMast>().eq("task_no",taskNo));
        if (Cools.isEmpty(basAgvMast)){
            return false;
        }
        if (basAgvMast.getFloorNo()==1){
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(
                new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo())
        );
            if (Cools.isEmpty(basAgvMast)){
                return false;
            }
        AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam();
        agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp());
        agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString());
@@ -958,9 +992,30 @@
        agvBindCtnrAndBinParam.setIndBind("0");
        ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑", URL,AGVPath, agvBindCtnrAndBinParam);
        if (resultBind.getCode()!=200){
                basAgvMast.setStatus(4);
                basAgvMastService.updateById(basAgvMast);
            return true;
        }
        return false;
        }else {
            if (basAgvMast.getIoType()==0 && basAgvMast.getStaNo()==2034){
                AgvBindCtnrAndBinTwoParam agvBindCtnrAndBinTwoParam = new AgvBindCtnrAndBinTwoParam();
                agvBindCtnrAndBinTwoParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp());
                agvBindCtnrAndBinTwoParam.setPodCode(basAgvMast.getBarcode());
                agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getStaNo().toString());
                agvBindCtnrAndBinTwoParam.setIndBind("0");;
                ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑",
                        AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
                if (resultBind.getCode()!=200){
                    basAgvMast.setStatus(4);
                    basAgvMastService.updateById(basAgvMast);
                    return true;
                }
            }
        }
        return false;
    }