#
Junjie
昨天 912901afb40fffba9eda36bba09fb3b2e98f216e
#
2个文件已修改
81 ■■■■■ 已修改文件
src/main/java/com/zy/core/plugin/NormalProcess.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/plugin/NormalProcess.java
@@ -4,9 +4,12 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.domain.param.CreateInTaskParam;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.StartupDto;
@@ -15,15 +18,14 @@
import com.zy.core.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.StationCommandType;
import com.zy.core.enums.WrkIoType;
import com.zy.core.enums.*;
import com.zy.core.model.StationObjModel;
import com.zy.core.model.Task;
import com.zy.core.model.command.StationCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StationProtocol;
import com.zy.core.plugin.api.MainProcessPluginApi;
import com.zy.core.thread.CrnThread;
import com.zy.core.thread.StationThread;
import com.zy.core.utils.CrnOperateProcessUtils;
import com.zy.core.utils.StationOperateProcessUtils;
@@ -32,6 +34,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -54,6 +57,8 @@
    private RedisUtil redisUtil;
    @Autowired
    private WmsOperateUtils wmsOperateUtils;
    @Autowired
    private BasCrnpService basCrnpService;
    @Override
    public void run() {
@@ -77,6 +82,9 @@
        //检测输送站点是否运行堵塞
        stationOperateProcessUtils.checkStationRunBlock();
        //上报堆垛机DB110状态数据
        reportDb110();
    }
    /**
@@ -273,4 +281,40 @@
        }
    }
    //上报堆垛机DB110状态数据
    public synchronized void reportDb110() {
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
        for (BasCrnp basCrnp : basCrnps) {
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
            if(crnThread == null){
                continue;
            }
            CrnProtocol crnProtocol = crnThread.getStatus();
            if(crnProtocol == null){
                continue;
            }
            // 上报堆垛机DB110状态数据
            short[] db110Data = crnProtocol.getDb110Data();
            List<Integer> currentIndices = new ArrayList<>();
            if (db110Data != null) {
                for (int i = 0; i < db110Data.length; i++) {
                    if (db110Data[i] == 1) {
                        currentIndices.add(i);
                    }
                }
            }
            try {
                WmsOperateUtils wmsOperateUtils = SpringUtils.getBean(WmsOperateUtils.class);
                if (wmsOperateUtils != null) {
                    wmsOperateUtils.reportCrnDb110Status(crnProtocol.getCrnNo(), currentIndices);
                }
            } catch (Exception e) {
                log.error("Report Crn Db110 Status Fail", e);
            }
        }
    }
}
src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -30,9 +30,6 @@
import java.text.MessageFormat;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.zy.core.utils.WmsOperateUtils;
import com.zy.asrs.entity.BasCrnpErrLog;
import com.zy.asrs.service.BasCrnpErrLogService;
@@ -48,7 +45,6 @@
    private ZyCrnConnectDriver zyCrnConnectDriver;
    private CrnProtocol crnProtocol;
    private int deviceLogCollectTime = 200;
    private List<Integer> lastReportedIndices = new ArrayList<>();
    public ZySiemensCrnThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
        this.deviceConfig = deviceConfig;
@@ -192,31 +188,6 @@
        crnProtocol.setYDuration(crnStatus.getYDuration());
        crnProtocol.setWeight(crnStatus.getWeight());
        crnProtocol.setDb110Data(crnStatus.getDb110Data());
        // 上报堆垛机DB110状态数据
        short[] db110Data = crnProtocol.getDb110Data();
        List<Integer> currentIndices = new ArrayList<>();
        if (db110Data != null) {
            for (int i = 0; i < db110Data.length; i++) {
                if (db110Data[i] == 1) {
                    currentIndices.add(i);
                }
            }
        }
        //!currentIndices.equals(lastReportedIndices)
        boolean changed = true;
        if (changed) {
            try {
                WmsOperateUtils wmsOperateUtils = SpringUtils.getBean(WmsOperateUtils.class);
                if (wmsOperateUtils != null) {
                    wmsOperateUtils.reportCrnDb110Status(crnProtocol.getCrnNo(), currentIndices);
                    lastReportedIndices = new ArrayList<>(currentIndices);
                }
            } catch (Exception e) {
                log.error("Report Crn Db110 Status Fail", e);
            }
        }
        OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));