自动化立体仓库 - WCS系统
*
lsh
2024-10-23 c55724c0af4cb66443b747c6567f16d0b878bce5
*
4个文件已修改
44 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/RgvController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/RgvController.java
@@ -33,6 +33,7 @@
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -66,6 +67,9 @@
    private BasDevpPositionService basDevpPositionService;
    @Autowired
    private BasCircularShuttleService basCircularShuttleService;
    @Value("${constant-parameters.perimeter}")
    private Long perimeter;
    @PostMapping("/table/rgv/state")
    @ManagerAuth(memo = "RGV信息表")
@@ -347,8 +351,8 @@
            ringThroughParam.setIndex(rgv.getId());
//            ringThroughParam.setIndex(i);
//            double[] doubles = Utils.RingThroughXY2(1737000.0, NumUtils.GetRandomIntInRange(183));
            double[] doubles = Utils.RingThroughXYRgv(1737000.0, 1737000.0-rgvProtocol.RgvPos.doubleValue());
//            double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
            double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
//            double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
            ringThroughParam.setValueX(doubles[0]-2.94);
@@ -368,7 +372,7 @@
        for (BasDevpPosition basDevpPosition : basDevpPositions){
            RingThroughParam ringThroughParam = new RingThroughParam();
            ringThroughParam.setIndex(basDevpPosition.getDevNo());
            double[] doubles = Utils.RingThroughXYSta(1737000.0, 1737000.0-basDevpPosition.getPlcPosition());
            double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition());
            ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1);
            ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1);
            result.add(ringThroughParam);
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -21,6 +21,7 @@
import com.zy.core.thread.RgvThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -47,6 +48,9 @@
    private BasCircularShuttleService basCircularShuttleService;
    @Autowired
    private WrkMastService wrkMastService;
    @Value("${constant-parameters.perimeter}")
    private Long perimeter;
    /**
     * 站点任务检测  更新小车位置信息
     */
@@ -86,7 +90,7 @@
                rgvPosition.add(rgvProtocol.getRgvPos());
                rgvPositionList.add(rgvPosition);
            }
            Integer rgvNo = SortTheExecutionOfTheCarUtil.LatelyAndGreaterThan(rgvPositionList, sitePosition);
            Integer rgvNo = SortTheExecutionOfTheCarUtil.LatelyAndGreaterThan(rgvPositionList, sitePosition,perimeter);
            List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true));
            if (basCircularShuttleList.get(0).getRgvNo().equals(rgvNo)){
@@ -186,7 +190,7 @@
                return;
            }
            List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",false));
            Integer devNo = SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPositions, rgvProtocol.getRgvPos());
            Integer devNo = SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPositions, rgvProtocol.getRgvPos(),perimeter);
            BasDevpPosition[] basDevpPositionsList = SortTheExecutionOfTheCarUtil.devpNoSort(basDevpPositions, devNo);
            BasDevpPosition[] basDevpPositionsListUN = SortTheExecutionOfTheCarUtil.devpNoSortUN(basDevpPositionsList);
            List<List<WrkMast>> wrkMastLists = getWrkMastLists(basDevpPositionsListUN);
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -23,6 +23,7 @@
import com.zy.core.thread.RgvThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -44,6 +45,9 @@
    private WrkMastService wrkMastService;
    @Autowired
    private BasDevpPositionService basDevpPositionService;
    @Value("${constant-parameters.perimeter}")
    private Long perimeter;
    @Override
    @Transactional
@@ -93,7 +97,7 @@
                wcsRgvListParam.setRgvNo(rgv.getId().toString());
                wcsRgvListParam.setTaskNo(Cools.isEmpty(rgvProtocol.getTaskNo1()) ? null:rgvProtocol.getTaskNo1().toString());
                wcsRgvListParam.setStatus(rgvProtocol.statusType.desc);
                wcsRgvListParam.setCurrSta(SortTheExecutionOfTheCarUtil.LatelyAndLessThanWcs(basDevpPositions,rgvProtocol.getRgvPos()).toString());
                wcsRgvListParam.setCurrSta(SortTheExecutionOfTheCarUtil.LatelyAndLessThanWcs(basDevpPositions,rgvProtocol.getRgvPos(),perimeter).toString());
                List<String> arrayList = new ArrayList<>();
                if (rgvProtocol.getAlarm()!=0){
                    arrayList.add(rgvProtocol.getAlarm$());
src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
@@ -30,9 +30,9 @@
    }
    //获取最近并在当前位置前边的位置
    public static Integer LatelyAndLessThan(List<BasDevpPosition> devpPosition, long nowPosition){
    public static Integer LatelyAndLessThan(List<BasDevpPosition> devpPosition, long nowPosition,long perimeter){
        Integer result = 0;
        long Difference = 1737000L;
        long Difference = perimeter;
        for (BasDevpPosition positions : devpPosition){
            Long position = positions.getPlcPosition();
            if (position<=nowPosition){
@@ -41,8 +41,8 @@
                    result = positions.getDevNo();
                }
            } else {
                if ((nowPosition-(position - 1737000L)) < Difference){
                    Difference = nowPosition-(position - 1737000L);
                if ((nowPosition-(position - perimeter)) < Difference){
                    Difference = nowPosition-(position - perimeter);
                    result = positions.getDevNo();
                }
            }
@@ -51,9 +51,9 @@
    }
    //获取最近并在当前位置后边的位置
    public static Integer LatelyAndLessThanWcs(List<BasDevpPosition> devpPosition, long nowPosition){
    public static Integer LatelyAndLessThanWcs(List<BasDevpPosition> devpPosition, long nowPosition,long perimeter){
        Integer result = 0;
        Integer integer = LatelyAndLessThan(devpPosition, nowPosition);
        Integer integer = LatelyAndLessThan(devpPosition, nowPosition,perimeter);
        for (BasDevpPosition basDevpPosition:devpPosition){
            if (basDevpPosition.getDevNo().equals(integer)){
                if (basDevpPosition.getDevNo() == 101){
@@ -86,9 +86,9 @@
//    }
    //获取最近并在当前位置后边的位置
    public static Integer LatelyAndGreaterThan(List<List<Long>> sitePosition, long nowPosition){
    public static Integer LatelyAndGreaterThan(List<List<Long>> sitePosition, long nowPosition ,long perimeter){
        int result = 0;
        long Difference = 1737000L;
        long Difference = perimeter;
        for (List<Long> rgvPositions: sitePosition){
            Long position = rgvPositions.get(1);
            if (position>nowPosition){
@@ -97,8 +97,8 @@
                    result = rgvPositions.get(0).intValue();
                }
            } else {
                if ((1737000L - (nowPosition - position)) < Difference){
                    Difference = 1737000L - (nowPosition - position);
                if ((perimeter - (nowPosition - position)) < Difference){
                    Difference = perimeter - (nowPosition - position);
                    result = rgvPositions.get(0).intValue();
                }
            }