自动化立体仓库 - WMS系统
zwl
23 小时以前 b7380ff70bcc962494cd6640fcc3eac21aaab0a1
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -23,7 +23,6 @@
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.NodeUtils;
import com.zy.erp.kingdee.utils.PostMesDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -838,95 +837,6 @@
    @Override
    @Transactional
    public boolean TaskArmWorkOrderSign(OrderArmEndParam param) {
        BasArmMastSign basArmMastSignNew = basArmMastSignService.selectOne(
                new EntityWrapper<BasArmMastSign>()
                        .eq("order_no", param.getOrderNo())
                        .eq("create_time", param.getBindingTags())
                        .eq("status", 0)
        );
        if (Cools.isEmpty(basArmMastSignNew)) {
            return false;
        }
        return true;
    }
    @Override
    @Transactional
    public boolean TaskAgvReport(TaskAgvReportParam param) {
        BasAgvMast basAgvMast = basAgvMastService.selectOne(new EntityWrapper<BasAgvMast>().eq("task_no", param.getTaskNo()));
        if (Cools.isEmpty(basAgvMast)) {
            return false;
        }
        basAgvMast.setStatus(2);
        basAgvMastService.updateById(basAgvMast);
        return true;
    }
    @Override
    @Transactional
    public boolean taskAgvCreate(TaskAgvCreateParam param) {
        // 参数检查
        if (param == null) {
            throw new CoolException("参数不能为空");
        }
        BasAgvMast basAgvMast = new BasAgvMast();
        Long ts = basAgvMast.getTimestamp();
        if (ts == null) {
            throw new CoolException("timestamp 生成失败");
        }
        String barcode = String.valueOf(ts);
        if (barcode.length() > 16) {
            barcode = barcode.substring(0, 16);
        }
        basAgvMast.setBarcode(barcode);
        String locNo = null;
        String staNo = null;
        basAgvMast.setTaskNo(commonService.getWorkNo(0));
        basAgvMast.setSourceStaNo(param.getSourceStaNo());
        basAgvMast.setStaNo(param.getStaNo());
        basAgvMast.setSourceLocNo(param.getSourceLocNo());
        basAgvMast.setLocNo(param.getLocNo());
        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
            // 输送线站点==》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.getBarcode());
        bindParam.setIndBind("1");
        bindParam.setFloorNo(basAgvMast.getFloorNo());
        bindParam.setLocNo(locNo);
        bindParam.setStaNo(staNo);
        if (bindCtnrAndBin(bindParam)) {
            return true;
        } else {
            throw new CoolException("未能绑定");
        }
    }
    @Override
    @Transactional
    public List<PickWrkDetlListParam> getPickList(PdaPickListParam param) {
        List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(param.getBarcode());
        List<PickWrkDetlListParam> result = new ArrayList<>();
@@ -1060,95 +970,6 @@
        return true;
    }
    @Override
    @Transactional
    public boolean agvApplicationPassedTheGrating(ArmAgvGratingParam arm) {
        ReturnT<String> result = new PostMesDataUtils().postMesDataArmGrating("光栅请求下发:", ArmConstant.getArmUrl(arm.getArmNo()), ArmConstant.ARM_ADAPTOR_GRATING_AGVENTER, arm);
        if (result.getCode() == 200) {
            return true;
        }
        return false;
    }
    @Override
    @Transactional
    public boolean agvApplicationPassedTheGrating(AgvGoTheArnParam param) {
        String URL = "http://10.10.10.200:8181/rcms/services/rest/hikRpcService"; // AGV接口地址
        String AGVPath = "continueTask"; // 接口路径
        AgvGoParam agvGoParam = new AgvGoParam();
        agvGoParam.setCode("0");
        agvGoParam.setMessage("继续执行");
        agvGoParam.setReqCode(param.getReqCode());
        agvGoParam.setTaskCode(param.getTaskCode());
        ReturnT<String> result = new PostMesDataUtils().postMesDataArmGrating("光栅下发后继续任务:", URL, AGVPath, agvGoParam);
        if (result.getCode() == 200) {
            return true;
        }
        return false;
    }
    @Override
    @Transactional
    public boolean agvBindAndBin(String taskNo) {
        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())
            );
            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() + "-" + System.currentTimeMillis());
            agvBindCtnrAndBinParam.setCtnrCode(ctnrCode);
            agvBindCtnrAndBinParam.setCtnrTyp("1");
            agvBindCtnrAndBinParam.setStgBinCode(binCode);
            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 != null
                    && basAgvMast.getIoType() != null
                    && (basAgvMast.getIoType() == 0)
                    && (Objects.equals(basAgvMast.getSourceStaNo(), 2033) || Objects.equals(basAgvMast.getStaNo(), 2034)
                    || Objects.equals(basAgvMast.getStaNo(), 4003) || Objects.equals(basAgvMast.getSourceStaNo(), 4006))) {
                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容器解绑",
                        AgvConstant.AGV_URL + "/" + AgvConstant.AGV_hikRpcService, AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
                if (resultBind.getCode() != 1) {
                    basAgvMast.setStatus(4);
                    basAgvMastService.updateById(basAgvMast);
                    return true;
                }
            }
        }
        return false;
    }
    @Override
    @Transactional