#
vincentlu
2025-02-28 48c698c052185fceda88697e5a79cd14dbd6f0c3
#
5个文件已修改
2个文件已添加
363 ■■■■■ 已修改文件
zy-acs-flow/src/map/constants.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/AreaConstant.java 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/AvoidAreaConstant.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/MapDataConstant.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/constants.js
@@ -1,5 +1,5 @@
export const ANIMATE_DURING_TIME = 30;
export const ANIMATE_DURING_TIME = 100;
export const MAP_DEFAULT_ROTATION = 180;
zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/AreaConstant.java
New file
@@ -0,0 +1,257 @@
package com.zy.acs.manager.common.constant;
import java.util.ArrayList;
public class AreaConstant {
    public static final ArrayList<String> FAR_LEFT_AREA  = new ArrayList<String>(){{
        add("00001461");
        add("00001462");
        add("00001463");
        add("00001464");
        add("00001465");
        add("00001466");
        add("00001467");
        add("00001468");
        add("00001469");
        add("00001470");
        add("00001471");
        add("00001472");
        add("00001473");
        add("00001474");
        add("00001475");
        add("00001476");
        add("00001477");
        add("00001478");
        add("00001479");
        add("00001480");
        add("00001481");
        add("00001482");
        add("00001483");
        add("00001484");
        add("00001485");
        add("00001486");
        add("00001487");
        add("00001488");
        add("00001489");
        add("00001490");
        add("00001491");
        add("00001492");
        add("00001493");
        add("00001494");
        add("00001495");
        add("00001496");
        add("00001497");
        add("00001498");
        add("00001499");
        add("00001500");
        add("00001501");
        add("00001502");
        add("00001503");
        add("00001504");
        add("00001505");
        add("00001506");
        add("00001507");
        add("00001508");
        add("00001509");
        add("00001510");
        add("00001511");
        add("00001512");
        add("00001513");
        add("00001514");
        add("00001515");
        add("00001516");
        add("00001517");
        add("00001518");
        add("00001519");
        add("00001520");
        add("00001521");
        add("00001522");
        add("00001523");
        add("00001524");
        add("00001525");
        add("00001526");
        add("00001527");
        add("00001528");
        add("00001529");
        add("00001530");
        add("00001531");
        add("00001532");
        add("00001533");
        add("00001534");
        add("00001535");
        add("00001536");
        add("00001537");
        add("00001538");
        add("00001539");
        add("00001540");
        add("00001541");
        add("00001542");
        add("00001543");
        add("00001544");
        add("00001545");
        add("00001546");
        add("00001547");
        add("00001548");
        add("00001549");
        add("00001550");
        add("00001551");
        add("00001552");
        add("00001553");
        add("00001554");
        add("00001555");
        add("00001556");
        add("00001557");
        add("00001558");
        add("00001559");
        add("00001560");
        add("00001561");
        add("00001562");
        add("00001563");
        add("00001564");
        add("00001565");
        add("00001566");
        add("00001567");
        add("00001568");
        add("00001569");
        add("00001570");
        add("00001571");
        add("00001572");
        add("00001573");
        add("00001574");
        add("00001575");
        add("00001576");
        add("00001577");
        add("00001578");
        add("00001579");
        add("00001580");
        add("00001581");
        add("00001582");
        add("00001583");
        add("00001584");
        add("00001585");
        add("00001586");
        add("00001587");
        add("00001588");
        add("00001589");
        add("00001590");
        add("00001591");
        add("00001592");
        add("00001593");
        add("00001594");
        add("00001595");
        add("00001596");
        add("00001597");
        add("00001598");
        add("00001599");
        add("00001600");
        add("00001601");
        add("00001602");
        add("00001603");
        add("00001604");
        add("00001605");
        add("00001606");
        add("00001607");
        add("00001608");
        add("00001609");
        add("00001610");
        add("00001611");
        add("00001612");
        add("00001613");
        add("00001614");
        add("00001615");
        add("00001616");
        add("00001617");
        add("00001618");
        add("00001619");
        add("00001620");
        add("00001621");
        add("00001622");
        add("00001623");
        add("00001624");
        add("00001625");
        add("00001626");
        add("00001627");
        add("00001628");
        add("00001629");
        add("00001630");
        add("00001631");
        add("00001632");
        add("00001633");
        add("00001634");
        add("00001635");
        add("00001636");
        add("00001637");
        add("00001638");
        add("00001639");
        add("00001640");
        add("00001641");
        add("00001642");
        add("00001643");
        add("00001644");
        add("00001645");
        add("00001646");
        add("00001647");
        add("00001648");
        add("00001649");
        add("00001650");
        add("00001651");
        add("00001652");
        add("00001653");
        add("00001654");
        add("00001655");
        add("00001656");
        add("00001657");
        add("00001658");
        add("00001659");
        add("00001660");
        add("00001661");
        add("00001662");
        add("00001663");
        add("00001664");
        add("00001665");
        add("00001666");
        add("00001667");
        add("00001668");
        add("00001669");
        add("00001670");
        add("00001671");
        add("00001672");
        add("00001673");
        add("00001674");
        add("00001675");
        add("00001676");
        add("00001677");
        add("00001678");
        add("00001679");
        add("00001680");
        add("00001681");
        add("00001682");
        add("00001683");
        add("00001684");
        add("00001685");
        add("00001686");
        add("00001687");
        add("00001688");
        add("00001689");
        add("00001690");
        add("00001691");
        add("00001692");
        add("00001693");
        add("00001694");
        add("00001695");
        add("00001696");
        add("00001697");
        add("00001698");
        add("00001699");
        add("00001700");
        add("00001701");
        add("00001702");
        add("00001703");
        add("00001704");
        add("00001705");
        add("00001706");
    }};
}
zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/AvoidAreaConstant.java
New file
@@ -0,0 +1,19 @@
package com.zy.acs.manager.common.constant;
import java.util.ArrayList;
/**
 * update man_agv set status = 0 where id > 10;
 * update man_agv_detail set code = null where id > 10;
 */
public class AvoidAreaConstant {
    public static final ArrayList<String> FAR_LEFT_AVOID_AREA  = new ArrayList<String>(){{
        add("A");
        add("B");
        add("C");
        add("D");
        add("E");
    }};
}
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/MapDataConstant.java
@@ -15,4 +15,8 @@
    public static final String EMPTY_OF_ERROR = "EMPTY";
    public static final String RESOLVE_DEADLOCK = "RESOLVE_DEADLOCK";
    public static final Integer DEADLOCK_TASK_TIMEOUT = 6 * MAX_JAM_TIMEOUT;
}
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java
@@ -37,7 +37,7 @@
@Component
public class MapDataWsScheduler {
    public static final int WEBSOCKET_BROADCAST_INTERVAL = 30;
    public static final int WEBSOCKET_BROADCAST_INTERVAL = 100;
    private ExecutorService singleThreadExecutor;
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -71,6 +71,10 @@
    private JamService jamService;
    @Autowired
    private AvoidWaveCalculator avoidWaveCalculator;
    @Autowired
    private TaskService taskService;
    @Autowired
    private FuncStaService funcStaService;
    @Transactional
    public synchronized void trigger(Segment segment) {
@@ -99,6 +103,77 @@
            if (!agvService.judgeEnable(agv.getId())) {
                return;
            }
            // resolve deadlock
//            if (configService.getVal("unlockSwitch", Boolean.class)) {
//
//                boolean preSegIsStandbyDeadLock = false;
//                Segment previousSeg = segmentService.getPreviousStepOfFinish(segment.getTravelId(), segment.getSerial(), MapDataConstant.RESOLVE_DEADLOCK);
//                preSegIsStandbyDeadLock = previousSeg != null;
//                if (preSegIsStandbyDeadLock && !jamService.isAvoidSeg(segment.getId())) {
//                    if (0 < segmentService.count(new LambdaQueryWrapper<Segment>()
//                            .in(Segment::getState, SegmentStateType.WAITING.toString(), SegmentStateType.RUNNING.toString())
//                            .eq(Segment::getMemo, MapDataConstant.RESOLVE_DEADLOCK))) {
//                        return;
//                    }
//                }
//
//                Jam jam = jamService.getJam(agv.getId(), agvDetail.getRecentCode(), segment.getId());
//                if (!preSegIsStandbyDeadLock && (null != jam && null != jam.getDuration() && jam.getDuration() > (BlockSeverityType.SEVERE.duration - MapDataConstant.MAX_JAM_TIMEOUT)
//                        || DateUtils.diffToMilliseconds(segment.getUpdateTime(), now)  > (BlockSeverityType.SEVERE.duration - MapDataConstant.MAX_JAM_TIMEOUT))
//                        && (Cools.isEmpty(segment.getMemo()) || !segment.getMemo().equals(MapDataConstant.RESOLVE_DEADLOCK))) {
//
//                    Task task = taskService.getById(segment.getTaskId());
//                    if (task.getTaskSts().equals(TaskStsType.PROGRESS.val())
//                            && DateUtils.diffToMilliseconds(task.getUpdateTime(), now) > MapDataConstant.DEADLOCK_TASK_TIMEOUT) {
//
//                        Code endCode = null;
//                        List<FuncSta> idleFunStaList = funcStaService.findInIdleStatus(FuncStaType.STANDBY, segment.getAgvId());
//                        if (!Cools.isEmpty(idleFunStaList)) {
//                            idleFunStaList = idleFunStaList.stream().filter(funcSta -> {
//                                return 0 == segmentService.count(new LambdaQueryWrapper<Segment>()
//                                                .eq(Segment::getEndNode, funcSta.getCode())
//                                                .in(Segment::getState, SegmentStateType.WAITING.toString(), SegmentStateType.RUNNING.toString())
//                                                .eq(Segment::getMemo, MapDataConstant.RESOLVE_DEADLOCK)
//                                );
//                            }).collect(Collectors.toList());
//                            FuncSta funcSta = funcStaService.checkoutFurthestFunSta(agvDetailService.getCurrentCode(segment.getAgvId()).getId(), idleFunStaList);
//                            if (null != funcSta) {
//                                endCode = codeService.getCacheById(funcSta.getCode());
//                            }
//                        }
//                        if (null == endCode) {
//                            log.warn("AGV[{}] failed to search destination,there hadn't any idle funSta,TaskTypeType:{}", segment.getAgvId(), FuncStaType.STANDBY);
//                            return;
//                        }
//
//                        segment.setState(SegmentStateType.INIT.toString());
//                        segment.setUpdateTime(now);
//                        if (!segmentService.updateById(segment)) {
//                            log.error("Segment [{}] failed to update !!!", segment.getGroupId() + " - " + segment.getSerial());
//                            return;
//                        }
//
//                        // new move seg
//                        Segment insertSeg = new Segment();
//                        insertSeg.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
//                        insertSeg.setTravelId(segment.getTravelId());
//                        insertSeg.setAgvId(segment.getAgvId());
//                        insertSeg.setTaskId(segment.getTaskId());
//                        insertSeg.setSerial(segment.getSerial() - 1);
//                        insertSeg.setEndNode(endCode.getId());
//                        insertSeg.setPosType(TaskPosDto.PosType.MOVE.toString());
//                        insertSeg.setState(SegmentStateType.WAITING.toString());
//                        insertSeg.setMemo(MapDataConstant.RESOLVE_DEADLOCK);
//                        if (!segmentService.save(insertSeg)) {
//                            log.error("Segment [{}] failed to save !!!", segment.getTravelId() + " - " + segment.getSerial());
//                            return;
//                        }
//                        return;
//                    }
//                }
//            }
            if (!Cools.isEmpty(segmentService.getByAgvAndState(agv.getId(), SegmentStateType.RUNNING.toString()))) {
                return;
            }
zy-acs-manager/src/main/resources/application.yml
@@ -7,7 +7,7 @@
    static-path-pattern: /**
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/zy_rcs_dual2?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://127.0.0.1:3306/zy_rcs_jbly?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: xltys1995
    type: com.alibaba.druid.pool.DruidDataSource
@@ -60,7 +60,7 @@
  max: 30
  min: 10
  timeout: 5000
  index: 12
  index: 9
floyd:
  enable: false