#
cpT
7 天以前 463b9e4b68b8ab62a11c6985081fd5d62692cc79
#
7个文件已修改
70 ■■■■■ 已修改文件
src/main/java/com/zy/core/enums/RedisKeyType.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/network/ZyStationConnectDriver.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/network/real/ZyStationV3RealConnect.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/plugin/NormalProcess.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/plugin/XiaosongProcess.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/utils/WmsOperateUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/RedisKeyType.java
@@ -10,6 +10,7 @@
    LIFT_FLAG("lift_"),
    DUAL_CRN_COMMAND_("dual_crn_command_"),
    DUAL_CRN_COMMAND_STATION_TASK_NO("dual_crn_command_station_task_no_"),
    QUEUE_CRN("queue_crn_"),
    QUEUE_DUAL_CRN("queue_dual_crn_"),
@@ -49,6 +50,7 @@
    CHECK_SHALLOW_LOC_STATUS_LIMIT("check_shallow_loc_status_limit_"),
    GENERATE_ENABLE_IN_STATION_DATA_LIMIT("generate_enable_in_station_data_limit_"),
    GENERATE_STATION_BACK_LIMIT("generate_station_back_limit_"),
    STATION_EXECUTE_COMMAND_LOCK("station_execute_command_lock"),
    DUAL_CRN_PICK_WAIT_NEXT_TASK("dual_crn_pick_wait_next_task_"),
    DUAL_CRN_OUT_TASK_STATION_INFO("dual_crn_out_task_station_info_"),
src/main/java/com/zy/core/network/ZyStationConnectDriver.java
@@ -3,6 +3,7 @@
import com.zy.asrs.entity.DeviceConfig;
import com.zy.common.utils.RedisUtil;
import com.zy.core.ThreadHandler;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.model.CommandResponse;
import com.zy.core.model.command.StationCommand;
import com.zy.core.network.api.ZyStationConnectApi;
@@ -114,7 +115,22 @@
    }
    public CommandResponse sendCommand(StationCommand command) {
        return zyStationConnectApi.sendCommand(deviceConfig.getDeviceNo(), command);
        while (true) {
            Object lock = redisUtil.get(RedisKeyType.STATION_EXECUTE_COMMAND_LOCK.key);
            if(lock != null) {
                try {
                    Thread.sleep(500);
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }else {
                redisUtil.set(RedisKeyType.STATION_EXECUTE_COMMAND_LOCK.key, "lock", 60 * 5);
                break;
            }
        }
        CommandResponse commandResponse = zyStationConnectApi.sendCommand(deviceConfig.getDeviceNo(), command);
        redisUtil.del(RedisKeyType.STATION_EXECUTE_COMMAND_LOCK.key);
        return commandResponse;
    }
    public CommandResponse sendOriginCommand(String address, short[] data) {
src/main/java/com/zy/core/network/real/ZyStationV3RealConnect.java
@@ -15,6 +15,7 @@
import com.zy.common.utils.RedisUtil;
import com.zy.core.News;
import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.StationCommandType;
import com.zy.core.model.CommandResponse;
import com.zy.core.model.StationObjModel;
@@ -315,7 +316,7 @@
    }
    @Override
    public CommandResponse sendOriginCommand(String address, short[] data) {
    public synchronized CommandResponse sendOriginCommand(String address, short[] data) {
        CommandResponse commandResponse = new CommandResponse(false);
        if (null == data || data.length == 0) {
            commandResponse.setMessage("数据为空");
src/main/java/com/zy/core/plugin/NormalProcess.java
@@ -171,14 +171,6 @@
                                taskParam.setTaskPri(dto.getTaskPri());
                                taskParam.setBarcode(barcode);
                                WrkMast wrkMast = commonService.createInTask(taskParam);
                                StationCommand command = stationThread.getCommand(StationCommandType.WRITE_INFO,
                                        wrkMast.getWrkNo(), stationId, stationId, 0);
                                if (command == null) {
                                    News.taskInfo(wrkMast.getWrkNo(), "获取输送线命令失败");
                                    continue;
                                }
                                MessageQueue.offer(SlaveType.Devp, basDevp.getDevpNo(), new Task(2, command));
                                stationProtocol.setSystemWarning("");
                            } else {
                                // 接口返回非200,重新发起请求
src/main/java/com/zy/core/plugin/XiaosongProcess.java
@@ -181,14 +181,6 @@
                                taskParam.setTaskPri(dto.getTaskPri());
                                taskParam.setBarcode(barcode);
                                WrkMast wrkMast = commonService.createInTask(taskParam);
                                StationCommand command = stationThread.getCommand(StationCommandType.WRITE_INFO,
                                        wrkMast.getWrkNo(), stationId, stationId, 0);
                                if (command == null) {
                                    News.taskInfo(wrkMast.getWrkNo(), "获取输送线命令失败");
                                    continue;
                                }
                                MessageQueue.offer(SlaveType.Devp, basDevp.getDevpNo(), new Task(2, command));
                                stationProtocol.setSystemWarning("");
                            } else {
                                // 接口返回非200,重新发起请求
src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
@@ -92,6 +92,7 @@
                        map.put("commands", commandList);
                        map.put("idx", 1);
                        redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_.key + command.getTaskNo(), JSON.toJSONString(map, SerializerFeature.DisableCircularReferenceDetect), 60 * 60 * 24);
                        redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_STATION_TASK_NO.key + crnProtocol.getCrnNo() + "_" + command.getStation(), command.getTaskNo(), 60 * 60 * 24);
                        sendCommand(command);
                    } else if (step == 3) {
                        sendCommand((DualCrnCommand) task.getData());
@@ -123,8 +124,18 @@
                        }
                    }
                    if(crnProtocol.getTaskNo() > 0 && crnProtocol.getStatus().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
                        Integer taskNo = crnProtocol.getTaskNo();
                    if(crnProtocol.getTaskNo() == 0 && crnProtocol.getStatus().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
                        Integer taskNo = null;
                        Object stationObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_STATION_TASK_NO.key + crnProtocol.getCrnNo() + "_" + 1);
                        if(stationObj != null) {
                            taskNo = Integer.parseInt(String.valueOf(stationObj));
                        }
                        if (taskNo == null) {
                            News.error("双工位堆垛机,工位1空闲等待下发命令,但未找到工作号。堆垛机号={}", crnProtocol.getCrnNo());
                            continue;
                        }
                        Object commandObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_.key + taskNo);
                        if (commandObj == null) {
                            News.error("双工位堆垛机,工位1空闲等待下发命令,但未找到命令。堆垛机号={},工作号={}", crnProtocol.getCrnNo(), taskNo);
@@ -181,8 +192,18 @@
                        redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_.key + taskNo, commandMap.toJSONString(), 60 * 60 * 24);
                    }
                    if(crnProtocol.getTaskNoTwo() > 0 && crnProtocol.getStatusTwo() == DualCrnStatusType.IDLE.id) {
                        Integer taskNo = crnProtocol.getTaskNoTwo();
                    if(crnProtocol.getTaskNoTwo() == 0 && crnProtocol.getStatusTwo().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
                        Integer taskNo = null;
                        Object stationObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_STATION_TASK_NO.key + crnProtocol.getCrnNo() + "_" + 2);
                        if(stationObj != null) {
                            taskNo = Integer.parseInt(String.valueOf(stationObj));
                        }
                        if (taskNo == null) {
                            News.error("双工位堆垛机,工位1空闲等待下发命令,但未找到工作号。堆垛机号={}", crnProtocol.getCrnNo());
                            continue;
                        }
                        Object commandObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_.key + taskNo);
                        if (commandObj == null) {
                            News.error("双工位堆垛机,工位2空闲等待下发命令,但未找到命令。堆垛机号={},工作号={}", crnProtocol.getCrnNo(), taskNo);
src/main/java/com/zy/core/utils/WmsOperateUtils.java
@@ -93,7 +93,7 @@
            requestParam.put("barcode", barcode);
            requestParam.put("sourceStaNo", stationNo);
            requestParam.put("locType1", locType1);
            requestParam.put("locType1", locType1 == null ? 1 : locType1);
            requestParam.put("row", Utils.getInTaskEnableRow(sourceStaNo));
            response = new HttpHandler.Builder()