#
Junjie
8 天以前 cabc8e23b0b1eb4d256813e3941a4f214b32f4e4
#
4个文件已修改
39 ■■■■ 已修改文件
src/main/java/com/zy/core/action/ShuttleAction.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/RedisKeyType.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/task/TrafficApplyProcess.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/action/ShuttleAction.java
@@ -360,7 +360,8 @@
            }
            //申请取消管制
            trafficControlThread.cancelTrafficControl(shuttleNo, shuttleProtocol.getTaskNo());
            cancelTrafficControl(shuttleNo, shuttleProtocol.getTaskNo());
            //删除redis
            redisUtil.del(RedisKeyType.SHUTTLE_WORK_FLAG.key + redisCommand.getWrkNo());
            return 0;//禁止再下发命令
@@ -511,16 +512,18 @@
    //查询是否申请管制成功
    public boolean queryTrafficControl(Integer shuttleNo, Integer taskNo) {
        TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1);
        if (trafficControlThread == null) {
        Object object = redisUtil.get(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo);
        if (object == null) {
            return false;
        }
        TrafficControlDataModel trafficControlDataModel = trafficControlThread.queryTrafficControl(shuttleNo, taskNo);
        if (trafficControlDataModel == null) {
            return false;
        return true;
        }
    public boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) {
        TrafficControlDataModel model = new TrafficControlDataModel();
        model.setShuttleNo(shuttleNo);
        model.setTaskNo(taskNo);
        redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_CANCEL_LIST.key + shuttleNo + "_" + taskNo, model);
        return true;
    }
src/main/java/com/zy/core/enums/RedisKeyType.java
@@ -20,7 +20,9 @@
    //交管信息
    TRAFFIC_CONTROL_MAP("traffic_control_map"),
    TRAFFIC_CONTROL_APPLY("traffic_control_apply_"),
    TRAFFIC_CONTROL_SUCCESS_APPLY("traffic_control_success_apply_"),
    TRAFFIC_CONTROL_REPORT_LIST("traffic_control_report_list_"),
    TRAFFIC_CONTROL_CANCEL_LIST("traffic_control_cancel_list_"),
    TRAFFIC_CONTROL_LOCK_APPLY("traffic_control_lock_apply_"),
    TRAFFIC_CONTROL_SHUTTLE_APPLY_COUNT("traffic_control_shuttle_apply_count_"),
src/main/java/com/zy/core/task/TrafficApplyProcess.java
@@ -88,6 +88,21 @@
        }
    }
    @Scheduled(cron = "0/3 * * * * ? ")
    public void processCancel() {
        TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1);
        if (trafficControlThread == null) {
            return;
        }
        Set<String> keys = redisUtil.searchKeys(RedisKeyType.TRAFFIC_CONTROL_CANCEL_LIST.key);
        for (String key : keys) {
            TrafficControlDataModel param = (TrafficControlDataModel) redisUtil.get(key);
            redisUtil.del(key);
            boolean apply = trafficControlThread.cancelTrafficControl(param.getShuttleNo(), param.getTaskNo());
        }
    }
    class ApplyKey{
        @Getter
        String key;
src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java
@@ -199,6 +199,7 @@
        operateTrafficControl(param);
        applyRecordsMap.remove(shuttleNo);
        redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo, 1, 60 * 60);
        News.info("receipt traffic {},{}", shuttleNo, taskNo);
        return true;
    }
@@ -259,7 +260,7 @@
    }
    @Override
    public synchronized boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) {
    public boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) {
        TrafficControlDataModel dataModel = queryTrafficControl(shuttleNo, taskNo);
        if (dataModel == null) {
            return false;
@@ -273,7 +274,7 @@
    }
    @Override
    public synchronized boolean forceCancelTrafficControl(Integer shuttleNo) {
    public boolean forceCancelTrafficControl(Integer shuttleNo) {
        TrafficControlDataModel dataModel = queryTrafficControl(shuttleNo);
        if (dataModel == null) {
            return false;