自动化立体仓库 - WMS系统
#
1
1 天以前 c63696bec5666ad3064dd72636420e3980ade34f
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -721,6 +721,40 @@
    @Override
    @Transactional
    public boolean TaskArmLocStatus(ArmOKParam param) {
        BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>()
                .eq("arm_no", param.getArmNo())
                .eq("sta_no", param.getStaNo())
                .eq("status", 1)
        );
        if (Cools.isEmpty(basArm)){
            log.error("机械臂配置异常,查询不到机械臂数据!!!"+ JSON.toJSONString(param));
            return false;
        }
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
        if (Cools.isEmpty(locMast)){
            log.error("查询不到locMast数据!!!"+ JSON.toJSONString(param));
            return false;
        }
        if (locMast.getLocSts().equals("D")){
            BasArmMast basArmMast = basArmMastService.selectOne(
                    new EntityWrapper<BasArmMast>()
                            .eq("sta_no", basArm.getStaNoSou())
                            .eq("arm_no", param.getArmNo())
                            .eq("status", 3)
            );
            if (Cools.isEmpty(basArmMast)){
                return true;
            }
            log.error("未查询到相关机械臂拆码垛任务!!!"+ JSON.toJSONString(param));
        } else {
            log.error("locMast状态不为D!!!"+ JSON.toJSONString(param));
        }
        return false;
    }
    @Override
    @Transactional
    public void taskArmWorkspaceStatus(TaskArmWorkspaceStatusParam param) {
        BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>()
                .eq("arm_no", param.getArm_no())
@@ -799,24 +833,28 @@
        if (param == null) {
            throw new CoolException("参数不能为空");
        }
        // 创建对象(构造函数中已生成 timestamp)
        BasAgvMast basAgvMast = new BasAgvMast();
        // 生成 WMS 任务号(如无外部传入,可以使用雪花ID 或自增)
        Long ts = basAgvMast.getTimestamp();
        if (ts == null) {
            throw new CoolException("timestamp 生成失败");
        }
        String locNo = null;
        String staNo = null;
        basAgvMast.setBarcode(Long.toString(ts));
        basAgvMast.setTaskNo(commonService.getWorkNo(0));
        // 赋值参数
        basAgvMast.setSourceStaNo(param.getSourceStaNo());
        basAgvMast.setStaNo(param.getStaNo());
        basAgvMast.setSourceLocNo(param.getSourceLocNo());
        basAgvMast.setLocNo(param.getLocNo());
        String locNo = null;
        String staNo = null;
        // 默认值
        basAgvMast.setPriority(1L);          // 默认优先级
        basAgvMast.setStatus(0);             // 初始状态
        basAgvMast.setAppeTime(new Date());  // 添加时间
        basAgvMast.setModiTime(new Date());  // 修改时间
        basAgvMast.setIoType(param.getIoType());// 任务类型
        basAgvMast.setFloorNo(param.getFloorNo()); //楼层
        basAgvMast.setPriority(1L);
        basAgvMast.setStatus(0);
        basAgvMast.setAppeTime(new Date());
        basAgvMast.setModiTime(new Date());
        basAgvMast.setIoType(param.getIoType());
        basAgvMast.setFloorNo(param.getFloorNo());
        switch (basAgvMast.getIoType()){
            // AGV库位==》输送线站点  0
            // AGV库位==》AGV库位  1
@@ -831,10 +869,10 @@
                staNo = param.getSourceStaNo().toString();
                break;
        }
        // 插入数据库
        basAgvMastService.insert(basAgvMast);
        bindCtnrAndBinParam bindParam = new bindCtnrAndBinParam();
        bindParam.setBarcode(basAgvMast.getTimestamp().toString());
        bindParam.setBarcode(Long.toString(ts));
        bindParam.setIndBind("1");
        bindParam.setFloorNo(basAgvMast.getFloorNo());
        bindParam.setLocNo(locNo);
@@ -941,6 +979,8 @@
    }
    @Override
    @Transactional
    public boolean agvApplicationPassedTheGrating(ArmAgvGratingParam arm) {
@@ -971,7 +1011,7 @@
    @Override
    @Transactional
    public boolean agvBindAndBin(String taskNo) {
        String URL = "http://10.10.10.200:8181/"; // AGV接口地址
        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)){
@@ -982,39 +1022,45 @@
            BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(
                    new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo())
            );
            BasAgvLocNo locNo = basAgvLocNoService.selectOne(
                    new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getLocNo())
            );
            String binCode = basAgvLocNoEnd != null
                    ? basAgvLocNoEnd.getAgvLocNo()
                    : (locNo != null ? locNo.getAgvLocNo() : null);
            if (Cools.isEmpty(basAgvMast)){
                return false;
            }
            String ctnrCode = basAgvMast.getBarcode().length() > 1?basAgvMast.getBarcode():basAgvMast.getTimestamp().toString();
            AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam();
            agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp());
            agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString());
            agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + System.currentTimeMillis());
            agvBindCtnrAndBinParam.setCtnrCode(ctnrCode);
            agvBindCtnrAndBinParam.setCtnrTyp("1");
            agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoEnd.getAgvLocNo());
            agvBindCtnrAndBinParam.setStgBinCode(binCode);
            agvBindCtnrAndBinParam.setIndBind("0");
            ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑", URL,AGVPath, agvBindCtnrAndBinParam);
            if (resultBind.getCode()!=200){
            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){
            if (basAgvMast.getIoType()==0 && (basAgvMast.getSourceStaNo()==2033 || basAgvMast.getStaNo()==4003)){
                AgvBindCtnrAndBinTwoParam agvBindCtnrAndBinTwoParam = new AgvBindCtnrAndBinTwoParam();
                agvBindCtnrAndBinTwoParam.setReqCode(String.valueOf(snowflakeIdWorker.nextId()));
                agvBindCtnrAndBinTwoParam.setPodcode(basAgvMast.getBarcode());
                agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getStaNo().toString());
                agvBindCtnrAndBinTwoParam.setIndBind("0");;
                ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑",
                ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器解绑",
                        AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
                if (resultBind.getCode()!=200){
                if (resultBind.getCode()!=1){
                    basAgvMast.setStatus(4);
                    basAgvMastService.updateById(basAgvMast);
                    return true;
                }
            }
        }
        return false;
    }