dubin
4 天以前 3fc16741ed3a5064138de2e5f668a00112f50100
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -10,8 +10,10 @@
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasCrnOpt;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.DeviceDataLog;
import com.zy.asrs.service.BasCrnOptService;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.DeviceDataLogService;
import com.zy.common.utils.News;
import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
@@ -27,6 +29,7 @@
import lombok.extern.slf4j.Slf4j;
import java.text.MessageFormat;
import java.util.Base64;
import java.util.Date;
/**
@@ -75,6 +78,7 @@
                    // 写入数据 1号工位
                    case 2:
                        CrnCommand data = (CrnCommand) task.getData();
                        crnProtocol.setLastCommandTime(System.currentTimeMillis());
                        if (data.getPltType() == null || data.getPltType() == 1) {
                            write(data);
                        } else if (data.getPltType() == 2) {
@@ -225,7 +229,7 @@
                OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功", DateUtils.convert(new Date()), slave.getId()));
                // 复位信号
                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING) && crnProtocol.getTaskNo()!=null&&crnProtocol.getTaskNo() != 0) {
                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING) && crnProtocol.getTaskNo() != null && crnProtocol.getTaskNo() != 0) {
//                    if (crnProtocol.getTaskNo() == 0){
//                        News.error("堆垛机工位1工作号为0,不予确认,工位1{}",crnProtocol.getLoaded() == 1 ? "有物" : "无物");
//                        return;
@@ -248,7 +252,7 @@
                }
                // 复位信号
             else  if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING)&& crnProtocol.getTaskNoTwo()!=null&&crnProtocol.getTaskNoTwo() != 0) {
                else if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING) && crnProtocol.getTaskNoTwo() != null && crnProtocol.getTaskNoTwo() != 0) {
//                    if (crnProtocol.getTaskNoTwo() == 0){
//                        News.error("堆垛机工位2工作号为0,不予确认,工位2{}",crnProtocol.getLoadedTwo() == 1 ? "有物" : "无物");
//                        return;
@@ -270,6 +274,22 @@
                    }
                }
                if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 200) {
                    //采集时间超过5s,保存一次数据记录
                    //保存数据记录
                    DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
                    DeviceDataLog deviceDataLog = new DeviceDataLog();
                    deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content));
                    deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol));
                    deviceDataLog.setType("crn");
                    deviceDataLog.setDeviceNo(crnProtocol.getCrnNo());
                    deviceDataLog.setCreateTime(new Date());
                    deviceDataLogService.insert(deviceDataLog);
                    //更新采集时间
                    crnProtocol.setDeviceDataLog(System.currentTimeMillis());
                }
                try {
                    // 根据实时信息更新数据库
                    BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);