Junjie
3 天以前 63b01db83d9aad8a15276b4236a9a22e4aeef065
src/main/java/com/zy/core/thread/impl/ZySiemensCrnV2Thread.java
@@ -169,6 +169,7 @@
        crnProtocol.setWalkPos(crnStatus.getWalkPos());
        crnProtocol.setLoaded(crnStatus.getLoaded());
        crnProtocol.setAlarm(crnStatus.getAlarm());
        crnProtocol.setLaserValue(crnStatus.getLaserValue());
        crnProtocol.setTemp1(crnStatus.getTemp1());
        crnProtocol.setTemp2(crnStatus.getTemp2());
        crnProtocol.setTemp3(crnStatus.getTemp3());
@@ -257,14 +258,15 @@
    @Override
    public CrnCommand getPickAndPutCommand(String sourceLocNo, String targetLocNo, Integer taskNo, Integer crnNo) {
        BasCrnp basCrnp = getBasCrnp(crnNo);
        CrnCommand crnCommand = new CrnCommand();
        crnCommand.setCrnNo(crnNo); // 堆垛机编号
        crnCommand.setTaskNo(taskNo); // 工作号
        crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE.id); // 任务模式:  库位移转
        crnCommand.setSourcePosX(Utils.getRow(sourceLocNo));     // 源库位排
        crnCommand.setSourcePosX(resolveCommandRow(sourceLocNo, basCrnp));     // 源库位排
        crnCommand.setSourcePosY(Utils.getBay(sourceLocNo));     // 源库位列
        crnCommand.setSourcePosZ(Utils.getLev(sourceLocNo));     // 源库位层
        crnCommand.setDestinationPosX(Utils.getRow(targetLocNo));     // 目标库位排
        crnCommand.setDestinationPosX(resolveCommandRow(targetLocNo, basCrnp));     // 目标库位排
        crnCommand.setDestinationPosY(Utils.getBay(targetLocNo));     // 目标库位列
        crnCommand.setDestinationPosZ(Utils.getLev(targetLocNo));     // 目标库位层
        crnCommand.setCommand(1);     // 任务确认
@@ -273,21 +275,39 @@
    @Override
    public CrnCommand getMoveCommand(String targetLocNo, Integer taskNo, Integer crnNo) {
        Integer targetRow = resolveCommandRow(targetLocNo, crnNo);
        CrnCommand crnCommand = new CrnCommand();
        crnCommand.setCrnNo(crnNo); // 堆垛机编号
        crnCommand.setTaskNo(taskNo); // 工作号
        crnCommand.setAckFinish(0);  // 任务完成确认位
        crnCommand.setTaskMode(CrnTaskModeType.CRN_MOVE.id); // 任务模式:  堆垛机移动
        crnCommand.setSourcePosX(Utils.getRow(targetLocNo));     // 目标库位排
        crnCommand.setSourcePosX(targetRow);     // 目标库位排
        crnCommand.setSourcePosY(Utils.getBay(targetLocNo));     // 目标库位列
        crnCommand.setSourcePosZ(Utils.getLev(targetLocNo));     // 目标库位层
        crnCommand.setDestinationPosX(Utils.getRow(targetLocNo));     // 目标库位排
        crnCommand.setDestinationPosX(targetRow);     // 目标库位排
        crnCommand.setDestinationPosY(Utils.getBay(targetLocNo));     // 目标库位列
        crnCommand.setDestinationPosZ(Utils.getLev(targetLocNo));     // 目标库位层
        crnCommand.setCommand(1);     // 任务确认
        return crnCommand;
    }
    private Integer resolveCommandRow(String locNo, Integer crnNo) {
        return resolveCommandRow(locNo, getBasCrnp(crnNo));
    }
    private Integer resolveCommandRow(String locNo, BasCrnp basCrnp) {
        Integer locationRow = Utils.getRow(locNo);
        if (basCrnp == null) {
            return locationRow;
        }
        return basCrnp.getCommandRow(locationRow);
    }
    private BasCrnp getBasCrnp(Integer crnNo) {
        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
        return basCrnpService.getById(crnNo);
    }
    @Override
    public CrnCommand getResetCommand(Integer taskNo, Integer crnNo) {
        CrnCommand crnCommand = new CrnCommand();