#
vincentlu
9 天以前 5d8c23764a220724358d9cf7c4244f5f1864e9a1
#
1个文件已删除
2个文件已添加
7个文件已修改
132 ■■■■ 已修改文件
version/doc/AGV-RCS 通信协议 V1.0.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
version/doc/AGV-RCS 通信协议 V1.1.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/domain/HeightDepthDto.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyReleaseToConveyorSta.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyReleaseToShelvesLoc.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyTakeFromConveyorSta.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyTakeFromShelvesLoc.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/sta/StaList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
version/doc/AGV-RCS ͨÐÅЭÒé V1.0.xlsx
Binary files differ
version/doc/AGV-RCS ͨÐÅЭÒé V1.1.xlsx
Binary files differ
zy-acs-common/src/main/java/com/zy/acs/common/domain/HeightDepthDto.java
New file
@@ -0,0 +1,34 @@
package com.zy.acs.common.domain;
import com.zy.acs.framework.exception.CoolException;
import lombok.Data;
import java.io.Serializable;
@Data
public class HeightDepthDto implements Serializable {
    private static final long serialVersionUID = 1304095271854524735L;
    // é«˜åº¦ï¼ˆmm)
    private Short height;
    // æ·±åº¦ï¼ˆmm)
    private Short depth;
    public HeightDepthDto() {
    }
    public HeightDepthDto(Number height, Number depth) {
        this.height = toShort(height);
        this.depth  = toShort(depth);
    }
    private static Short toShort(Number value) {
        if (value == null) {
            throw new CoolException("HeightDepthDto parameter is null");
        }
        return value.shortValue();
    }
}
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyReleaseToConveyorSta.java
@@ -19,7 +19,9 @@
    @Override
    public byte[] writeToBytes() {
        return Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] heightBytes = Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] depthBytes = Utils.reverse(RadixTools.shortToByte(this.depth));
        return Utils.merge(heightBytes, depthBytes);
    }
    @Override
@@ -30,4 +32,7 @@
    // å–货高度
    private Short height;
    // å–货深度
    private Short depth;
}
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyReleaseToShelvesLoc.java
@@ -19,7 +19,9 @@
    @Override
    public byte[] writeToBytes() {
        return Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] heightBytes = Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] depthBytes = Utils.reverse(RadixTools.shortToByte(this.depth));
        return Utils.merge(heightBytes, depthBytes);
    }
    @Override
@@ -30,4 +32,7 @@
    // å–货高度
    private Short height;
    // å–货深度
    private Short depth;
}
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyTakeFromConveyorSta.java
@@ -19,7 +19,9 @@
    @Override
    public byte[] writeToBytes() {
        return Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] heightBytes = Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] depthBytes = Utils.reverse(RadixTools.shortToByte(this.depth));
        return Utils.merge(heightBytes, depthBytes);
    }
    @Override
@@ -30,4 +32,7 @@
    // å–货高度
    private Short height;
    // å–货深度
    private Short depth;
}
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/action/ReadyTakeFromShelvesLoc.java
@@ -19,7 +19,9 @@
    @Override
    public byte[] writeToBytes() {
        return Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] heightBytes = Utils.reverse(RadixTools.shortToByte(this.height));
        byte[] depthBytes = Utils.reverse(RadixTools.shortToByte(this.depth));
        return Utils.merge(heightBytes, depthBytes);
    }
    @Override
@@ -30,4 +32,7 @@
    // å–货高度
    private Short height;
    // å–货深度
    private Short depth;
}
zy-acs-flow/src/page/sta/StaList.jsx
@@ -157,7 +157,7 @@
                    <NumberField source="rsvInCnt" label="table.field.sta.rsvInCnt" />
                    <NumberField source="rsvOutCnt" label="table.field.sta.rsvOutCnt" />
                    <NumberField source="offset" label="table.field.sta.offset" />
                    <NumberField source="hight" label="table.field.sta.hight" />
                    <NumberField source="hight" label="table.field.sta.height" />
                    <NumberField source="depth" label="table.field.sta.depth" />
                    <NumberField source="angle" label="table.field.sta.angle" />
                    {/* <TextField source="autoing" label="table.field.sta.autoing" />
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
@@ -1,6 +1,8 @@
package com.zy.acs.manager.core;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.common.domain.HeightDepthDto;
import com.zy.acs.common.enums.AgvStatusType;
import com.zy.acs.framework.common.R;
import com.zy.acs.manager.core.integrate.conveyor.ConveyorStationService;
@@ -9,16 +11,17 @@
import com.zy.acs.manager.core.service.PatrolService;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.FuncStaType;
import com.zy.acs.manager.manager.enums.StaReserveType;
import com.zy.acs.manager.manager.enums.StatusType;
import com.zy.acs.manager.manager.service.*;
import com.zy.acs.manager.system.controller.BaseController;
import com.zy.acs.manager.system.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -50,6 +53,8 @@
//    private ConveyorStationService siemensConveyorStationService;
    @Autowired
    private ConveyorStationService siemensConveyorStationService;
    @Autowired
    private ConfigService configService;
    @RequestMapping(value = "/system/info", method = {RequestMethod.GET, RequestMethod.POST})
    public R systemInfo() {
@@ -58,8 +63,12 @@
    @RequestMapping(value = "/system/demo", method = {RequestMethod.GET, RequestMethod.POST})
    public R demo() {
        List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(8L, 42L);
        return R.ok(usedBackpacks);
        Double defaultShelfDepth = configService.getVal("defaultShelfDepth", Double.class);
        defaultShelfDepth = Optional.ofNullable(defaultShelfDepth).orElse((double) 0);
        Double ss = 10.0;
        String jsonString = JSON.toJSONString(new HeightDepthDto(ss, defaultShelfDepth));
        return R.ok(jsonString);
    }
    // http://localhost:8088/demo/auto/go/standby
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -4,10 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zy.acs.common.constant.RedisConstant;
import com.zy.acs.common.domain.AgvAction;
import com.zy.acs.common.domain.AgvActionItem;
import com.zy.acs.common.domain.AgvProtocol;
import com.zy.acs.common.domain.BaseResult;
import com.zy.acs.common.domain.*;
import com.zy.acs.common.domain.protocol.*;
import com.zy.acs.common.domain.protocol.action.*;
import com.zy.acs.common.enums.*;
@@ -895,6 +892,8 @@
            long actionPrepareSts = ActionStsType.PREPARE.val();
//            JSONObject storeDirection = configService.getVal("storeDirection", JSONObject.class);
            int angleOffsetVal = configService.getVal("mapAngleOffsetVal", Integer.class);
            Double defaultShelfDepth = configService.getVal("defaultShelfDepth", Double.class);
            defaultShelfDepth = Optional.ofNullable(defaultShelfDepth).orElse((double) 0);
            String agvNo = agvService.getAgvNo(agvId);
//            if (!agvService.judgeEnable(agvId)) {
//                throw new CoolException("AGV[" + agvNo + "]当前不可用...");
@@ -1171,7 +1170,7 @@
                                ActionTypeType.ReadyTakeFromShelvesLoc.desc,    // åç§°
                                (double) agvDirectionType.val,    // å±žæ€§å€¼
                                lastCode.getData(),    // åœ°é¢ç 
                                String.valueOf(oriLoc.getOffset()),   // åŠ¨ä½œå‚æ•°
                                JSON.toJSONString(new HeightDepthDto(oriLoc.getOffset(), defaultShelfDepth)),   // åŠ¨ä½œå‚æ•°
                                ActionTypeType.ReadyTakeFromShelvesLoc.val(),    // åŠ¨ä½œç±»åž‹
                                actionPrepareSts,    // åŠ¨ä½œè¿›åº¦
                                agvId,    // AGV
@@ -1234,7 +1233,7 @@
                                ActionTypeType.ReadyReleaseToShelvesLoc.desc,    // åç§°
                                (double) agvDirectionType.val,    // å±žæ€§å€¼
                                lastCode.getData(),    // åœ°é¢ç 
                                String.valueOf(destLoc.getOffset()),   // åŠ¨ä½œå‚æ•°
                                JSON.toJSONString(new HeightDepthDto(destLoc.getOffset(), defaultShelfDepth)),   // åŠ¨ä½œå‚æ•°
                                ActionTypeType.ReadyReleaseToShelvesLoc.val(),    // åŠ¨ä½œç±»åž‹
                                actionPrepareSts,    // åŠ¨ä½œè¿›åº¦
                                agvId,    // AGV
@@ -1279,7 +1278,7 @@
                                ActionTypeType.ReadyTakeFromConveyorSta.desc,    // åç§°
                                staWorkDirection,    // å±žæ€§å€¼
                                lastCode.getData(),    // åœ°é¢ç 
                                String.valueOf(oriSta.getHeight()),   // åŠ¨ä½œå‚æ•°
                                JSON.toJSONString(new HeightDepthDto(oriSta.getHeight(), Optional.ofNullable(oriSta.getDepth()).orElse((double) 0))),   // åŠ¨ä½œå‚æ•°
                                ActionTypeType.ReadyTakeFromConveyorSta.val(),    // åŠ¨ä½œç±»åž‹
                                actionPrepareSts,    // åŠ¨ä½œè¿›åº¦
                                agvId,    // AGV
@@ -1362,7 +1361,7 @@
                                ActionTypeType.ReadyReleaseToConveyorSta.desc,    // åç§°
                                staWorkDirection,    // å±žæ€§å€¼
                                lastCode.getData(),    // åœ°é¢ç 
                                String.valueOf(destSta.getHeight()),   // åŠ¨ä½œå‚æ•°
                                JSON.toJSONString(new HeightDepthDto(destSta.getHeight(), Optional.ofNullable(destSta.getDepth()).orElse((double) 0))),   // åŠ¨ä½œå‚æ•°
                                ActionTypeType.ReadyReleaseToConveyorSta.val(),    // åŠ¨ä½œç±»åž‹
                                actionPrepareSts,    // åŠ¨ä½œè¿›åº¦
                                agvId,    // AGV
@@ -1635,14 +1634,22 @@
                        agvAction.add(new AgvActionItem<>(ReadyTakeFromShelvesLoc.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                                .bodySync((body) -> {
                                    HeightDepthDto heightDepthDto = JSON.parseObject(action.getParams(), HeightDepthDto.class);
                                    body.setHeight(heightDepthDto.getHeight());
                                    body.setDepth(heightDepthDto.getDepth());
                                })
                        );
                        break;
                    case ReadyTakeFromConveyorSta:
                        agvAction.add(new AgvActionItem<>(ReadyTakeFromConveyorSta.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                                .bodySync((body) -> {
                                    HeightDepthDto heightDepthDto = JSON.parseObject(action.getParams(), HeightDepthDto.class);
                                    body.setHeight(heightDepthDto.getHeight());
                                    body.setDepth(heightDepthDto.getDepth());
                                })
                        );
                        break;
                    case ReadyTakeFromAgvSite:
@@ -1656,21 +1663,22 @@
                        agvAction.add(new AgvActionItem<>(ReadyReleaseToShelvesLoc.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                        );
                        break;
                    case LoadPlatformLift:
                        agvAction.add(new AgvActionItem<>(LoadPlatformLift.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                                .bodySync((body) -> {
                                    HeightDepthDto heightDepthDto = JSON.parseObject(action.getParams(), HeightDepthDto.class);
                                    body.setHeight(heightDepthDto.getHeight());
                                    body.setDepth(heightDepthDto.getDepth());
                                })
                        );
                        break;
                    case ReadyReleaseToConveyorSta:
                        agvAction.add(new AgvActionItem<>(ReadyReleaseToConveyorSta.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                                .bodySync((body) -> {
                                    HeightDepthDto heightDepthDto = JSON.parseObject(action.getParams(), HeightDepthDto.class);
                                    body.setHeight(heightDepthDto.getHeight());
                                    body.setDepth(heightDepthDto.getDepth());
                                })
                        );
                        break;
                    case ReadyReleaseToAgvSite:
@@ -1680,6 +1688,13 @@
                                .bodySync(body -> body.setDepth((short) Double.parseDouble(action.getParams())))
                        );
                        break;
                    case LoadPlatformLift:
                        agvAction.add(new AgvActionItem<>(LoadPlatformLift.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                        );
                        break;
                    case FinishPath:
                        agvAction.add(new AgvActionItem<>(FinishPathAction.class)
                                .setQrCode(action.getCode())