From 3c45d4f9f3aba5bc85a9577e43c0dffc71b93a22 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 10 七月 2025 15:54:27 +0800
Subject: [PATCH] #
---
src/main/resources/mapper/BasLiftMapper.xml | 16
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 127 +-
src/main/java/com/zy/core/thread/impl/ZyForkLiftThread2.java | 451 +++++++++
src/main/java/com/zy/core/utils/DeviceMsgUtils.java | 1
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 153 +-
src/main/java/com/zy/core/enums/ForkLiftTaskModeType.java | 4
src/main/java/com/zy/core/model/DeviceMsgModel.java | 2
src/main/java/com/zy/asrs/controller/ForkLiftController.java | 16
src/main/webapp/views/admin/basLift/basLift.html | 159 ---
src/main/java/com/zy/core/thread/impl/LfdZyForkLiftSlaveThread.java | 950 ++++++++++----------
src/main/java/com/zy/asrs/entity/BasLift.java | 22
src/main/java/com/zy/core/ServerBootstrap.java | 63
/dev/null | 452 ---------
src/main/webapp/static/js/basLift/basLift.js | 25
src/main/java/com/zy/core/model/DeviceCommandMsgModel.java | 2
src/main/java/com/zy/core/model/command/ForkLiftCommand.java | 10
src/main/java/com/zy/core/thread/ForkLiftThread.java | 14
src/main/java/com/zy/core/thread/impl/LfdZyForkLiftMasterThread.java | 306 +++---
src/main/resources/application.yml | 22
19 files changed, 1,307 insertions(+), 1,488 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ForkLiftController.java b/src/main/java/com/zy/asrs/controller/ForkLiftController.java
index eb34bc6..3344deb 100644
--- a/src/main/java/com/zy/asrs/controller/ForkLiftController.java
+++ b/src/main/java/com/zy/asrs/controller/ForkLiftController.java
@@ -59,7 +59,7 @@
for (DeviceConfig device : forkliftList) {
// 琛ㄦ牸琛�
JSONObject baseObj = new JSONObject();
- baseObj.put("shuttleNo", device.getDeviceNo());
+ baseObj.put("liftNo", device.getDeviceNo());
list.add(baseObj);
// 鑾峰彇鎻愬崌鏈轰俊鎭�
ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
@@ -112,7 +112,7 @@
StringBuilder str = new StringBuilder();
String s;
int i = 0;
- while((s = OutputQueue.LIFT.poll()) != null && i <=10) {
+ while((s = OutputQueue.FORKLIFT.poll()) != null && i <=10) {
str.append("\n").append(s);
i++;
}
@@ -286,9 +286,9 @@
Integer targetSta = param.getStaNo();
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<ForkLiftCommand> liftCommand = forkLiftThread.getShuttleSwitchCommand(workNo, startSta, targetSta);
+ ForkLiftCommand liftCommand = forkLiftThread.getShuttleSwitchCommand(workNo, startSta, targetSta);
ArrayList<ForkLiftCommand> commands = new ArrayList<>();
- commands.addAll(liftCommand);
+ commands.add(liftCommand);
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
@@ -308,9 +308,9 @@
Integer targetSta = param.getStaNo();
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<ForkLiftCommand> liftCommand = forkLiftThread.getPickAndPutCommand(workNo, startSta, targetSta);
+ ForkLiftCommand liftCommand = forkLiftThread.getPickAndPutCommand(workNo, startSta, targetSta);
ArrayList<ForkLiftCommand> commands = new ArrayList<>();
- commands.addAll(liftCommand);
+ commands.add(liftCommand);
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
@@ -330,9 +330,9 @@
Integer targetSta = param.getStaNo();
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<ForkLiftCommand> liftCommand = forkLiftThread.getMoveCommand(workNo, startSta, targetSta);
+ ForkLiftCommand liftCommand = forkLiftThread.getMoveCommand(workNo, startSta, targetSta);
ArrayList<ForkLiftCommand> commands = new ArrayList<>();
- commands.addAll(liftCommand);
+ commands.add(liftCommand);
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
diff --git a/src/main/java/com/zy/asrs/entity/BasLift.java b/src/main/java/com/zy/asrs/entity/BasLift.java
index 66b85e2..7f8317c 100644
--- a/src/main/java/com/zy/asrs/entity/BasLift.java
+++ b/src/main/java/com/zy/asrs/entity/BasLift.java
@@ -1,11 +1,14 @@
package com.zy.asrs.entity;
+import com.alibaba.fastjson.JSON;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
+import com.zy.core.model.LiftStation;
import org.springframework.format.annotation.DateTimeFormat;
import com.core.common.SpringUtils;
import com.zy.system.service.UserService;
@@ -15,6 +18,7 @@
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
+import java.util.List;
@Data
@TableName("asr_bas_lift")
@@ -86,6 +90,13 @@
@TableField("point")
private String point;
+ /**
+ * 鎻愬崌鏈虹珯鐐�
+ */
+ @ApiModelProperty(value= "鎻愬崌鏈虹珯鐐�")
+ @TableField("station_list")
+ private String stationList;
+
public BasLift() {}
public BasLift(Integer liftNo, Integer status, Integer wrkNo, Date updateTime, Long updateBy, String memo, Boolean pakMk, String deviceStatus) {
@@ -115,4 +126,15 @@
return null;
}
+ public List<LiftStation> getStationList$(){
+ List<LiftStation> list = new ArrayList<>();
+ if (Cools.isEmpty(this.stationList)){
+ return list;
+ }
+
+ List<LiftStation> liftStations = JSON.parseArray(stationList, LiftStation.class);
+ list.addAll(liftStations);
+ return list;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 6811d6d..67ccf13 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -762,9 +762,9 @@
}
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<ForkLiftCommand> liftCommands = forkLiftThread.getPickAndPutCommand(wrkMast.getWrkNo(), wrkMast.getSourceStaNo(), liftSta.getLev());
+ ForkLiftCommand liftCommand = forkLiftThread.getPickAndPutCommand(wrkMast.getWrkNo(), wrkMast.getSourceStaNo(), liftSta.getLev());
ArrayList<ForkLiftCommand> commands = new ArrayList<>();
- commands.addAll(liftCommands);
+ commands.add(liftCommand);
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
@@ -890,9 +890,9 @@
}
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<ForkLiftCommand> liftCommands = forkLiftThread.getPickAndPutCommand(wrkMast.getWrkNo(), liftSta.getLev(), wrkMast.getStaNo());
+ ForkLiftCommand liftCommand = forkLiftThread.getPickAndPutCommand(wrkMast.getWrkNo(), liftSta.getLev(), wrkMast.getStaNo());
ArrayList<ForkLiftCommand> commands = new ArrayList<>();
- commands.addAll(liftCommands);
+ commands.add(liftCommand);
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
@@ -924,6 +924,9 @@
for (DeviceConfig device : forkliftList) {
//鑾峰彇鎻愬崌鏈轰俊鎭�
ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
+ if(forkLiftThread == null) {
+ continue;
+ }
ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
if (forkLiftProtocol == null) {
continue;
@@ -1775,9 +1778,9 @@
}
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<ForkLiftCommand> liftCommands = forkLiftThread.getShuttleSwitchCommand(wrkMast.getWrkNo(), sourceLiftSta.getLev(), liftSta.getLev());
+ ForkLiftCommand liftCommand = forkLiftThread.getShuttleSwitchCommand(wrkMast.getWrkNo(), sourceLiftSta.getLev(), liftSta.getLev());
ArrayList<ForkLiftCommand> commands = new ArrayList<>();
- commands.addAll(liftCommands);
+ commands.add(liftCommand);
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
@@ -1919,73 +1922,73 @@
//鑷姩鍒囨崲鍑哄叆搴撴ā寮�
public void autoSwitchForkLiftIOMode() {
- List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
- .eq("device_type", String.valueOf(SlaveType.ForkLift)));
- for (DeviceConfig device : forkliftList) {
- Integer liftNo = device.getDeviceNo();
- ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
- if (forkLiftThread == null) {
- continue;
- }
- ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
- if (forkLiftProtocol == null) {
- continue;
- }
-
- List<Integer> liftAllStaNo = ForkLiftUtils.getLiftAllStaNo(liftNo);
- if (liftAllStaNo.isEmpty()) {
- continue;
- }
-
- List<Integer> conveyorBindLiftAllStaNo = ForkLiftUtils.getConveyorBindLiftAllStaNo(liftNo);
- if (conveyorBindLiftAllStaNo.isEmpty()) {
- continue;
- }
-
- //鑾峰彇鍏ュ簱浠诲姟
- List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
- .in("sta_no", liftAllStaNo)
- .in("wrk_sts"
- , WrkStsType.NEW_INBOUND.sts
- , WrkStsType.INBOUND_DEVICE_RUN.sts
- , WrkStsType.INBOUND_LIFT_RUN.sts
- , WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts
- , WrkStsType.INBOUND_SHUTTLE_RUN.sts
- , WrkStsType.INBOUND_SHUTTLE_RUN_COMPLETE.sts
- ));
-
- //鑾峰彇鍑哄簱浠诲姟
- List<WrkMast> outWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
- .in("sta_no", conveyorBindLiftAllStaNo)
- .in("wrk_sts"
- , WrkStsType.NEW_OUTBOUND.sts
- , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts
- , WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts
- , WrkStsType.OUTBOUND_LIFT_RUN.sts
- , WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts
- ));
-
- if (forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.NONE)) {
- //鏈煡妯″紡
- if (!inWrkMasts.isEmpty()) {
- forkLiftThread.switchIOMode(ForkLiftIoModeType.IN);
- } else if (!outWrkMasts.isEmpty()) {
- forkLiftThread.switchIOMode(ForkLiftIoModeType.OUT);
- }else {
- forkLiftThread.switchIOMode(ForkLiftIoModeType.IN);
- }
- } else if (forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.IN)) {
- //鍏ュ簱妯″紡
- if (inWrkMasts.isEmpty() && !outWrkMasts.isEmpty()) {
- forkLiftThread.switchIOMode(ForkLiftIoModeType.OUT);
- }
- } else if (forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.OUT)) {
- //鍑哄簱妯″紡
- if (outWrkMasts.isEmpty() && !inWrkMasts.isEmpty()) {
- forkLiftThread.switchIOMode(ForkLiftIoModeType.IN);
- }
- }
- }
+// List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+// .eq("device_type", String.valueOf(SlaveType.ForkLift)));
+// for (DeviceConfig device : forkliftList) {
+// Integer liftNo = device.getDeviceNo();
+// ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
+// if (forkLiftThread == null) {
+// continue;
+// }
+// ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
+// if (forkLiftProtocol == null) {
+// continue;
+// }
+//
+// List<Integer> liftAllStaNo = ForkLiftUtils.getLiftAllStaNo(liftNo);
+// if (liftAllStaNo.isEmpty()) {
+// continue;
+// }
+//
+// List<Integer> conveyorBindLiftAllStaNo = ForkLiftUtils.getConveyorBindLiftAllStaNo(liftNo);
+// if (conveyorBindLiftAllStaNo.isEmpty()) {
+// continue;
+// }
+//
+// //鑾峰彇鍏ュ簱浠诲姟
+// List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+// .in("sta_no", liftAllStaNo)
+// .in("wrk_sts"
+// , WrkStsType.NEW_INBOUND.sts
+// , WrkStsType.INBOUND_DEVICE_RUN.sts
+// , WrkStsType.INBOUND_LIFT_RUN.sts
+// , WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts
+// , WrkStsType.INBOUND_SHUTTLE_RUN.sts
+// , WrkStsType.INBOUND_SHUTTLE_RUN_COMPLETE.sts
+// ));
+//
+// //鑾峰彇鍑哄簱浠诲姟
+// List<WrkMast> outWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+// .in("sta_no", conveyorBindLiftAllStaNo)
+// .in("wrk_sts"
+// , WrkStsType.NEW_OUTBOUND.sts
+// , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts
+// , WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts
+// , WrkStsType.OUTBOUND_LIFT_RUN.sts
+// , WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts
+// ));
+//
+// if (forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.NONE)) {
+// //鏈煡妯″紡
+// if (!inWrkMasts.isEmpty()) {
+// forkLiftThread.switchIOMode(ForkLiftIoModeType.IN);
+// } else if (!outWrkMasts.isEmpty()) {
+// forkLiftThread.switchIOMode(ForkLiftIoModeType.OUT);
+// }else {
+// forkLiftThread.switchIOMode(ForkLiftIoModeType.IN);
+// }
+// } else if (forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.IN)) {
+// //鍏ュ簱妯″紡
+// if (inWrkMasts.isEmpty() && !outWrkMasts.isEmpty()) {
+// forkLiftThread.switchIOMode(ForkLiftIoModeType.OUT);
+// }
+// } else if (forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.OUT)) {
+// //鍑哄簱妯″紡
+// if (outWrkMasts.isEmpty() && !inWrkMasts.isEmpty()) {
+// forkLiftThread.switchIOMode(ForkLiftIoModeType.IN);
+// }
+// }
+// }
}
//鍑哄簱浠诲姟棰勮皟搴︽彁鍗囨満
@@ -2056,9 +2059,9 @@
int workNo = commonService.getWorkNo(WrkIoType.FORKLIFT_MOVE.id);//鑾峰彇浠诲姟鍙�
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<ForkLiftCommand> liftCommand = forkLiftThread.getMoveCommand(workNo, forkLiftProtocol.getLev(), Utils.getLev(wrkMast.getSourceLocNo()));
+ ForkLiftCommand liftCommand = forkLiftThread.getMoveCommand(workNo, forkLiftProtocol.getLev(), Utils.getLev(wrkMast.getSourceLocNo()));
ArrayList<ForkLiftCommand> commands = new ArrayList<>();
- commands.addAll(liftCommand);
+ commands.add(liftCommand);
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
diff --git a/src/main/java/com/zy/common/utils/ForkLiftOperaUtils.java b/src/main/java/com/zy/common/utils/ForkLiftOperaUtils.java
deleted file mode 100644
index e45d338..0000000
--- a/src/main/java/com/zy/common/utils/ForkLiftOperaUtils.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.zy.common.utils;
-
-import com.zy.core.model.command.ForkLiftCommand;
-import org.springframework.stereotype.Component;
-
-/**
- * 璐у弶鎻愬崌鏈烘搷浣滃伐鍏风被
- */
-@Component
-public class ForkLiftOperaUtils {
-
- /**
- * 鑾峰彇鎻愬崌鏈哄懡浠�
- */
- public ForkLiftCommand getLiftCommand(Integer liftNo, Integer taskNo, Integer taskModel, Integer pick, Integer put, Integer confirm) {
- ForkLiftCommand command = new ForkLiftCommand();
- command.setLiftNo(liftNo);
- command.setTaskNo(taskNo.shortValue());
- command.setMode(taskModel.shortValue());
- command.setPick(pick.shortValue());
- command.setPut(put.shortValue());
- command.setConfirm(confirm.shortValue());
- return command;
- }
-
-}
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index c67e150..003d514 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -3,13 +3,16 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasLift;
import com.zy.asrs.entity.DeviceConfig;
+import com.zy.asrs.service.BasLiftService;
import com.zy.asrs.service.DeviceConfigService;
import com.zy.common.utils.RedisUtil;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.thread.impl.NyShuttleThread;
+import com.zy.core.thread.impl.ZyForkLiftThread;
import com.zy.core.utils.DeviceMsgUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +39,8 @@
private DeviceConfigService deviceConfigService;
@Autowired
private DeviceMsgUtils deviceMsgUtils;
+ @Autowired
+ private BasLiftService basLiftService;
@PostConstruct
@Async
@@ -70,44 +75,38 @@
List<DeviceConfig> allDevices = new ArrayList<>();
List<DeviceConfig> fakeDevices = new ArrayList<>();
-// // 鍒濆鍖栬揣鍙夋彁鍗囨満
-// List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
-// .eq("device_type", String.valueOf(SlaveType.ForkLift)));
-// allDevices.addAll(forkLiftList);
-// for (DeviceConfig deviceConfig : forkLiftList) {
-// News.info("鍒濆鍖栬揣鍙夋彁鍗囨満........................................................");
-// ThreadHandler thread = null;
-// if (deviceConfig.getThreadImpl().equals("ZyForkLiftThread")) {
-// thread = new ZyForkLiftThread(forkLiftSlave, redisUtil);
-// } else if (deviceConfig.getThreadImpl().equals("LfdZyForkLiftSlaveThread")) {
-// thread = new LfdZyForkLiftSlaveThread(forkLiftSlave, redisUtil, forkLiftSlave.getMasterId());
-// } else {
-// throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�");
-// }
-//
-// new Thread(thread).start();
-// SlaveConnection.put(SlaveType.ForkLift, deviceConfig.getDeviceNo(), thread);
-// }
+ // 鍒濆鍖栬揣鍙夋彁鍗囨満
+ News.info("鍒濆鍖栬揣鍙夋彁鍗囨満........................................................");
+ List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.ForkLift)));
+ for (DeviceConfig deviceConfig : forkLiftList) {
+ BasLift basLift = basLiftService.selectOne(new EntityWrapper<BasLift>().eq("lift_no", deviceConfig.getDeviceNo()));
+ if (basLift == null) {
+ throw new CoolException("鏈厤缃揣鍙夋彁鍗囨満鏁版嵁");
+ }
-// // 鍒濆鍖栬揣鍙夋彁鍗囨満
-// for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLiftMaster()) {
-// News.info("鍒濆鍖栬揣鍙夋彁鍗囨満Master........................................................");
-// ThreadHandler thread = null;
-// if (forkLiftSlave.getThreadImpl().equals("LfdZyForkLiftMasterThread")) {
-// thread = new LfdZyForkLiftMasterThread(forkLiftSlave, redisUtil);
-// } else {
-// throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�");
-// }
-//
-// new Thread(thread).start();
-// SlaveConnection.put(SlaveType.ForkLiftMaster, forkLiftSlave.getId(), thread);
-// }
+ ThreadHandler thread = null;
+ if (deviceConfig.getThreadImpl().equals("ZyForkLiftThread")) {
+ thread = new ZyForkLiftThread(deviceConfig, basLift.getStationList$(), redisUtil);
+ } else {
+ throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�");
+ }
+
+ new Thread(thread).start();
+ SlaveConnection.put(SlaveType.ForkLift, deviceConfig.getDeviceNo(), thread);
+
+ if (deviceConfig.getFake() == 1) {
+ fakeDevices.add(deviceConfig);
+ }else {
+ allDevices.add(deviceConfig);
+ }
+ }
// 鍒濆鍖栧洓鍚戠┛姊溅
+ News.info("鍒濆鍖栧洓鍚戠┛姊溅......................................................");
List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
.eq("device_type", String.valueOf(SlaveType.Shuttle)));
for (DeviceConfig deviceConfig : shuttleList) {
- News.info("鍒濆鍖栧洓鍚戠┛姊溅......................................................");
ThreadHandler thread = null;
if (deviceConfig.getThreadImpl().equals("NyShuttleThread")) {
thread = new NyShuttleThread(deviceConfig, redisUtil);
diff --git a/src/main/java/com/zy/core/enums/ForkLiftTaskModeType.java b/src/main/java/com/zy/core/enums/ForkLiftTaskModeType.java
index 894c60d..adcbc6b 100644
--- a/src/main/java/com/zy/core/enums/ForkLiftTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/ForkLiftTaskModeType.java
@@ -9,6 +9,10 @@
PICK_PUT(3, "鍙栨斁璐�"),
SHUTTLE_SWITCH(4, "灏忚溅鎹㈠眰"),
MOVE(5, "鎻愬崌鏈虹Щ鍔�"),
+ RESET(9996, "澶嶄綅"),
+ SWITCH_IN(9997, "鍒囨崲鍏ュ簱妯″紡"),
+ SWITCH_OUt(9998, "鍒囨崲鍑哄簱妯″紡"),
+ READ_STATUS(9999, "璇诲彇鐘舵��"),
;
public Integer id;
diff --git a/src/main/java/com/zy/core/model/DeviceCommandMsgModel.java b/src/main/java/com/zy/core/model/DeviceCommandMsgModel.java
index 0e44755..8d8ad92 100644
--- a/src/main/java/com/zy/core/model/DeviceCommandMsgModel.java
+++ b/src/main/java/com/zy/core/model/DeviceCommandMsgModel.java
@@ -9,6 +9,8 @@
private String deviceType;
+ private String resultKey;
+
private Object command;
}
diff --git a/src/main/java/com/zy/core/model/DeviceMsgModel.java b/src/main/java/com/zy/core/model/DeviceMsgModel.java
index ecabe4f..ca64719 100644
--- a/src/main/java/com/zy/core/model/DeviceMsgModel.java
+++ b/src/main/java/com/zy/core/model/DeviceMsgModel.java
@@ -13,4 +13,6 @@
private String deviceOriginMsg;
+ private String resultKey;
+
}
diff --git a/src/main/java/com/zy/core/model/command/ForkLiftCommand.java b/src/main/java/com/zy/core/model/command/ForkLiftCommand.java
index 69b637f..aba270a 100644
--- a/src/main/java/com/zy/core/model/command/ForkLiftCommand.java
+++ b/src/main/java/com/zy/core/model/command/ForkLiftCommand.java
@@ -17,27 +17,27 @@
/**
* 浠诲姟鍙�
*/
- private Short taskNo;
+ private Integer taskNo;
/**
* 浠诲姟妯″紡
*/
- private Short mode;
+ private Integer mode;
/**
* 鍙栬揣鏁版嵁
*/
- private Short pick;
+ private Integer pick;
/**
* 鏀捐揣鏁版嵁
*/
- private Short put;
+ private Integer put;
/**
* 浠诲姟纭
*/
- private Short confirm;
+ private Integer confirm;
/**
* 鍛戒护鏄惁瀹屾垚,榛樿false鏈畬鎴�
diff --git a/src/main/java/com/zy/core/thread/ForkLiftThread.java b/src/main/java/com/zy/core/thread/ForkLiftThread.java
index 408ad8c..62fe964 100644
--- a/src/main/java/com/zy/core/thread/ForkLiftThread.java
+++ b/src/main/java/com/zy/core/thread/ForkLiftThread.java
@@ -26,6 +26,8 @@
CommandResponse move(ForkLiftCommand command);//灏忚溅鎹㈠眰
+ CommandResponse switchIOMode(ForkLiftCommand command);//鍒囨崲鍑哄叆搴撴ā寮�
+
CommandResponse reset();//澶嶄綅
boolean isIdle();//鏄惁绌洪棽
@@ -38,16 +40,18 @@
boolean setSyncTaskNo(Integer taskNo);//璁剧疆宸ヤ綔鍙�
- boolean switchIOMode(ForkLiftIoModeType type);//鍒囨崲鍑哄叆搴撴ā寮�
-
int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type);//鐢熸垚纭欢璁惧宸ヤ綔鍙�
//***************鑾峰彇鍛戒护*****************
- List<ForkLiftCommand> getPickAndPutCommand(Integer taskNo, Integer pick, Integer put);//鍙栨斁璐ф寚浠�
+ ForkLiftCommand getPickAndPutCommand(Integer taskNo, Integer pick, Integer put);//鍙栨斁璐ф寚浠�
- List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put);//灏忚溅鎹㈠眰
+ ForkLiftCommand getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put);//灏忚溅鎹㈠眰
- List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put);//鎻愬崌鏈虹Щ鍔�
+ ForkLiftCommand getMoveCommand(Integer taskNo, Integer pick, Integer put);//鎻愬崌鏈虹Щ鍔�
+
+ ForkLiftCommand getSwitchIOCommand(Integer taskNo, ForkLiftIoModeType mode);
+
+ ForkLiftCommand getResetCommand(Integer taskNo);
}
diff --git a/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftMasterThread.java b/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftMasterThread.java
index 8a8964d..fbf2829 100644
--- a/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftMasterThread.java
+++ b/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftMasterThread.java
@@ -1,153 +1,153 @@
-package com.zy.core.thread.impl;
-
-import HslCommunication.Core.Types.OperateResult;
-import HslCommunication.Core.Types.OperateResultExOne;
-import HslCommunication.Profinet.Siemens.SiemensPLCS;
-import HslCommunication.Profinet.Siemens.SiemensS7Net;
-import com.core.common.DateUtils;
-import com.zy.common.utils.RedisUtil;
-import com.zy.core.News;
-import com.zy.core.ThreadHandler;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.model.ForkLiftSlave;
-import com.zy.core.model.protocol.ForkLiftProtocol;
-import lombok.extern.slf4j.Slf4j;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-
-@Slf4j
-@SuppressWarnings("all")
-public class LfdZyForkLiftMasterThread implements ThreadHandler {
-
- private ForkLiftSlave slave;
- private ForkLiftProtocol forkLiftProtocol;
- private RedisUtil redisUtil;
- private SiemensS7Net siemensS7Net;
- private List<HashMap<String,Object>> slaveAddressList = null;
- private boolean connect = false;
-
- public LfdZyForkLiftMasterThread(ForkLiftSlave slave, RedisUtil redisUtil) {
- this.slave = slave;
- this.redisUtil = redisUtil;
- ArrayList<HashMap<String, Object>> addressList = new ArrayList<>();
-
- HashMap<String, Object> lift1 = new HashMap<>();
- lift1.put("status", new DbData("DB101.0", (short) 18));//鎻愬崌鏈烘暟鎹�
- lift1.put("staStatusTray", new DbData("DB102.0", (short) 14));//绔欑偣鏁版嵁
- lift1.put("staStatusCar", new DbData("DB102.50", (short) 14));//绔欑偣鏁版嵁
- lift1.put("write", new DbData("DB103.0", null));//鍐欏叆鏁版嵁
- lift1.put("writeConfirm", new DbData("DB103.8", null));//鍐欏叆纭鏁版嵁
- lift1.put("confirm", new DbData("DB103.10", null));//纭鍛戒护
- lift1.put("switchIOMode", new DbData("DB103.12", null));//鍑哄叆搴撴ā寮�
-
- HashMap<String, Object> lift2 = new HashMap<>();
- lift2.put("status", new DbData("DB104.0", (short) 18));//鎻愬崌鏈烘暟鎹�
- lift2.put("staStatusTray", new DbData("DB105.0", (short) 14));//绔欑偣鏁版嵁
- lift2.put("staStatusCar", new DbData("DB105.50", (short) 14));//绔欑偣鏁版嵁
- lift2.put("write", new DbData("DB106.0", null));//鍐欏叆鏁版嵁
- lift2.put("writeConfirm", new DbData("DB106.8", null));//鍐欏叆纭鏁版嵁
- lift2.put("confirm", new DbData("DB106.10", null));//纭鍛戒护
- lift2.put("switchIOMode", new DbData("DB106.12", null));//鍑哄叆搴撴ā寮�
-
- addressList.add(lift1);
- addressList.add(lift2);
- this.slaveAddressList = addressList;
- }
-
- @Override
- public boolean connect() {
- boolean result = false;
- siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
- siemensS7Net.setRack(slave.getRack().byteValue());
- siemensS7Net.setSlot(slave.getSlot().byteValue());
- OperateResult connect = siemensS7Net.ConnectServer();
- if(connect.IsSuccess){
- result = true;
- OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.info("璐у弶鎻愬崌鏈鸿繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- } else {
- OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.error("璐у弶鎻愬崌鏈鸿繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- }
- // siemensS7Net.ConnectClose();
- this.connect = result;
- return result;
- }
-
- @Override
- public void close() {
-
- }
-
- @Override
- public void run() {
- News.info("{}鍙疯揣鍙夋彁鍗囨満Master绾跨▼鍚姩", slave.getId());
- this.connect();
- while (true) {
- try {
- if (!this.connect) {
- this.connect();
- }
-
- Thread.sleep(500);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- }
-
- public SiemensS7Net getSiemensS7Net() {
- return siemensS7Net;
- }
-
- public synchronized OperateResultExOne<byte[]> read(Integer slaveId, String dbTag) {
- try {
- HashMap<String, Object> map = this.slaveAddressList.get(slaveId - 1);
- DbData dbData = (DbData) map.get(dbTag);
- OperateResultExOne<byte[]> result = siemensS7Net.Read(dbData.dbAddress, dbData.dbAddressLength);
- return result;
- } catch (Exception e) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- }
- return null;
- }
-
- public synchronized OperateResult write(Integer slaveId, String dbTag, short[] array) {
- try {
- HashMap<String, Object> map = this.slaveAddressList.get(slaveId - 1);
- DbData dbData = (DbData) map.get(dbTag);
- OperateResult result = siemensS7Net.Write(dbData.dbAddress, array);
- return result;
- } catch (Exception e) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- }
- return null;
- }
-
- public synchronized OperateResult write(Integer slaveId, String dbTag, short val) {
- try {
- HashMap<String, Object> map = this.slaveAddressList.get(slaveId - 1);
- DbData dbData = (DbData) map.get(dbTag);
- OperateResult result = siemensS7Net.Write(dbData.dbAddress, val);
- return result;
- } catch (Exception e) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- }
- return null;
- }
-
- private class DbData {
- private String dbAddress;
- private Short dbAddressLength;
-
- public DbData(String dbAddress, Short dbAddressLength) {
- this.dbAddress = dbAddress;
- this.dbAddressLength = dbAddressLength;
- }
-
- }
-}
+//package com.zy.core.thread.impl;
+//
+//import HslCommunication.Core.Types.OperateResult;
+//import HslCommunication.Core.Types.OperateResultExOne;
+//import HslCommunication.Profinet.Siemens.SiemensPLCS;
+//import HslCommunication.Profinet.Siemens.SiemensS7Net;
+//import com.core.common.DateUtils;
+//import com.zy.common.utils.RedisUtil;
+//import com.zy.core.News;
+//import com.zy.core.ThreadHandler;
+//import com.zy.core.cache.OutputQueue;
+//import com.zy.core.model.ForkLiftSlave;
+//import com.zy.core.model.protocol.ForkLiftProtocol;
+//import lombok.extern.slf4j.Slf4j;
+//
+//import java.text.MessageFormat;
+//import java.util.ArrayList;
+//import java.util.Date;
+//import java.util.HashMap;
+//import java.util.List;
+//
+//@Slf4j
+//@SuppressWarnings("all")
+//public class LfdZyForkLiftMasterThread implements ThreadHandler {
+//
+// private ForkLiftSlave slave;
+// private ForkLiftProtocol forkLiftProtocol;
+// private RedisUtil redisUtil;
+// private SiemensS7Net siemensS7Net;
+// private List<HashMap<String,Object>> slaveAddressList = null;
+// private boolean connect = false;
+//
+// public LfdZyForkLiftMasterThread(ForkLiftSlave slave, RedisUtil redisUtil) {
+// this.slave = slave;
+// this.redisUtil = redisUtil;
+// ArrayList<HashMap<String, Object>> addressList = new ArrayList<>();
+//
+// HashMap<String, Object> lift1 = new HashMap<>();
+// lift1.put("status", new DbData("DB101.0", (short) 18));//鎻愬崌鏈烘暟鎹�
+// lift1.put("staStatusTray", new DbData("DB102.0", (short) 14));//绔欑偣鏁版嵁
+// lift1.put("staStatusCar", new DbData("DB102.50", (short) 14));//绔欑偣鏁版嵁
+// lift1.put("write", new DbData("DB103.0", null));//鍐欏叆鏁版嵁
+// lift1.put("writeConfirm", new DbData("DB103.8", null));//鍐欏叆纭鏁版嵁
+// lift1.put("confirm", new DbData("DB103.10", null));//纭鍛戒护
+// lift1.put("switchIOMode", new DbData("DB103.12", null));//鍑哄叆搴撴ā寮�
+//
+// HashMap<String, Object> lift2 = new HashMap<>();
+// lift2.put("status", new DbData("DB104.0", (short) 18));//鎻愬崌鏈烘暟鎹�
+// lift2.put("staStatusTray", new DbData("DB105.0", (short) 14));//绔欑偣鏁版嵁
+// lift2.put("staStatusCar", new DbData("DB105.50", (short) 14));//绔欑偣鏁版嵁
+// lift2.put("write", new DbData("DB106.0", null));//鍐欏叆鏁版嵁
+// lift2.put("writeConfirm", new DbData("DB106.8", null));//鍐欏叆纭鏁版嵁
+// lift2.put("confirm", new DbData("DB106.10", null));//纭鍛戒护
+// lift2.put("switchIOMode", new DbData("DB106.12", null));//鍑哄叆搴撴ā寮�
+//
+// addressList.add(lift1);
+// addressList.add(lift2);
+// this.slaveAddressList = addressList;
+// }
+//
+// @Override
+// public boolean connect() {
+// boolean result = false;
+// siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
+// siemensS7Net.setRack(slave.getRack().byteValue());
+// siemensS7Net.setSlot(slave.getSlot().byteValue());
+// OperateResult connect = siemensS7Net.ConnectServer();
+// if(connect.IsSuccess){
+// result = true;
+// OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+// News.info("璐у弶鎻愬崌鏈鸿繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+// } else {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+// News.error("璐у弶鎻愬崌鏈鸿繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+// }
+// // siemensS7Net.ConnectClose();
+// this.connect = result;
+// return result;
+// }
+//
+// @Override
+// public void close() {
+//
+// }
+//
+// @Override
+// public void run() {
+// News.info("{}鍙疯揣鍙夋彁鍗囨満Master绾跨▼鍚姩", slave.getId());
+// this.connect();
+// while (true) {
+// try {
+// if (!this.connect) {
+// this.connect();
+// }
+//
+// Thread.sleep(500);
+// }catch (Exception e){
+// e.printStackTrace();
+// }
+// }
+// }
+//
+// public SiemensS7Net getSiemensS7Net() {
+// return siemensS7Net;
+// }
+//
+// public synchronized OperateResultExOne<byte[]> read(Integer slaveId, String dbTag) {
+// try {
+// HashMap<String, Object> map = this.slaveAddressList.get(slaveId - 1);
+// DbData dbData = (DbData) map.get(dbTag);
+// OperateResultExOne<byte[]> result = siemensS7Net.Read(dbData.dbAddress, dbData.dbAddressLength);
+// return result;
+// } catch (Exception e) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// }
+// return null;
+// }
+//
+// public synchronized OperateResult write(Integer slaveId, String dbTag, short[] array) {
+// try {
+// HashMap<String, Object> map = this.slaveAddressList.get(slaveId - 1);
+// DbData dbData = (DbData) map.get(dbTag);
+// OperateResult result = siemensS7Net.Write(dbData.dbAddress, array);
+// return result;
+// } catch (Exception e) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// }
+// return null;
+// }
+//
+// public synchronized OperateResult write(Integer slaveId, String dbTag, short val) {
+// try {
+// HashMap<String, Object> map = this.slaveAddressList.get(slaveId - 1);
+// DbData dbData = (DbData) map.get(dbTag);
+// OperateResult result = siemensS7Net.Write(dbData.dbAddress, val);
+// return result;
+// } catch (Exception e) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// }
+// return null;
+// }
+//
+// private class DbData {
+// private String dbAddress;
+// private Short dbAddressLength;
+//
+// public DbData(String dbAddress, Short dbAddressLength) {
+// this.dbAddress = dbAddress;
+// this.dbAddressLength = dbAddressLength;
+// }
+//
+// }
+//}
diff --git a/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftSlaveThread.java b/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftSlaveThread.java
index 82bb5aa..ae2b966 100644
--- a/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftSlaveThread.java
+++ b/src/main/java/com/zy/core/thread/impl/LfdZyForkLiftSlaveThread.java
@@ -1,475 +1,475 @@
-package com.zy.core.thread.impl;
-
-import HslCommunication.Core.Types.OperateResult;
-import HslCommunication.Core.Types.OperateResultExOne;
-import HslCommunication.Profinet.Siemens.SiemensPLCS;
-import HslCommunication.Profinet.Siemens.SiemensS7Net;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.DateUtils;
-import com.core.common.SpringUtils;
-import com.zy.asrs.entity.BasLift;
-import com.zy.asrs.entity.DeviceDataLog;
-import com.zy.asrs.service.BasLiftService;
-import com.zy.asrs.service.DeviceDataLogService;
-import com.zy.asrs.utils.Utils;
-import com.zy.common.ExecuteSupport;
-import com.zy.common.utils.RedisUtil;
-import com.zy.core.News;
-import com.zy.core.action.ForkLiftAction;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.*;
-import com.zy.core.model.CommandResponse;
-import com.zy.core.model.ForkLiftSlave;
-import com.zy.core.model.command.ForkLiftCommand;
-import com.zy.core.model.protocol.ForkLiftProtocol;
-import com.zy.core.model.protocol.ForkLiftStaProtocol;
-import com.zy.core.thread.ForkLiftThread;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-
-import java.text.MessageFormat;
-import java.util.*;
-
-@Slf4j
-@SuppressWarnings("all")
-public class LfdZyForkLiftSlaveThread implements ForkLiftThread {
-
- private Integer masterId;
- private ForkLiftSlave slave;
- private ForkLiftProtocol forkLiftProtocol;
- private RedisUtil redisUtil;
- private List<ForkLiftStaProtocol> forkLiftStaProtocols = new ArrayList<>();
- private LfdZyForkLiftMasterThread masterThread;
-
- public LfdZyForkLiftSlaveThread(ForkLiftSlave slave, RedisUtil redisUtil, Integer masterId) {
- this.slave = slave;
- this.redisUtil = redisUtil;
- this.masterId = masterId;
- //鍒濆鍖栫珯鐐�
- for (ForkLiftSlave.Sta sta : this.slave.getSta()) {
- ForkLiftStaProtocol forkLiftStaProtocol = new ForkLiftStaProtocol();
- forkLiftStaProtocol.setStaNo(sta.getStaNo());//绔欑偣鍙�
- forkLiftStaProtocol.setLev(sta.getLev());//绔欑偣妤煎眰
- String locNo = Utils.getLocNo(this.slave.getStaRow(), this.slave.getStaBay(), sta.getLev());
- forkLiftStaProtocol.setLocNo(locNo);//绔欑偣搴撲綅鍙�
- forkLiftStaProtocol.setLiftNo(sta.getLiftNo());//鎻愬崌鏈哄彿
- forkLiftStaProtocols.add(forkLiftStaProtocol);
- }
- }
-
- @Override
- public boolean connect() {
- boolean result = false;
- LfdZyForkLiftMasterThread masterThread = (LfdZyForkLiftMasterThread) SlaveConnection.get(SlaveType.ForkLiftMaster, masterId);
- if(masterThread != null) {
- result = true;
- this.masterThread = masterThread;
- }
- return result;
- }
-
- @Override
- public void close() {
-
- }
-
- @Override
- public void run() {
- News.info("{}鍙疯揣鍙夋彁鍗囨満绾跨▼鍚姩", slave.getId());
- this.connect();
- while (true) {
- try {
- if (this.masterThread == null) {
- this.connect();
- continue;
- }
-
- read();
- Thread.sleep(300);
- execute();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- private void execute() {
- ForkLiftAction forkLiftAction = null;
- try {
- forkLiftAction = SpringUtils.getBean(ForkLiftAction.class);
- }catch (Exception e){}
- if (forkLiftAction == null) {
- return;
- }
-
- Object object = redisUtil.get(RedisKeyType.FORK_LIFT_FLAG.key + slave.getId());
- if (object == null) {
- return;
- }
-
- Integer taskNo = Integer.valueOf(String.valueOf(object));
- if (taskNo != 0) {
- //瀛樺湪浠诲姟闇�瑕佹墽琛�
- boolean result = forkLiftAction.executeWork(slave.getId(), taskNo);
- }
- }
-
- private void read() {
- try {
- readStatus();
-
- //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue
- if (forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PICK_UP)
- || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PUT_DOWN)
- || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.WAITING)) {
- forkLiftProtocol.setPakMk(true);
- }
- } catch (Exception e) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- }
- }
-
- private void readStatus() {
- try {
- //鑾峰彇鎻愬崌鏈烘暟鎹�
- OperateResultExOne<byte[]> result1 = this.masterThread.read(this.slave.getId(), "status");
- SiemensS7Net siemensS7Net = this.masterThread.getSiemensS7Net();
- if (result1.IsSuccess) {
- if (null == forkLiftProtocol) {
- forkLiftProtocol = new ForkLiftProtocol();
- forkLiftProtocol.setLiftNo(slave.getId());
- forkLiftProtocol.setProtocolStatus(ForkLiftProtocolStatusType.NONE);
-
- InnerForkLiftExtend innerForkLiftExtend = new InnerForkLiftExtend();
- }
-
- //----------璇诲彇鎻愬崌鏈虹姸鎬�-----------
- //妯″紡
- forkLiftProtocol.setModel((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 0));
- //PLC浠诲姟鍙�
- forkLiftProtocol.setWrkNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 2));
- //浠诲姟鐘舵��
- forkLiftProtocol.setProtocolStatus((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 4));
- //浠诲姟妯″紡
- forkLiftProtocol.setTaskMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
- //鍙栬揣鏁版嵁
- forkLiftProtocol.setPick((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 8));
- //鏀捐揣鏁版嵁
- forkLiftProtocol.setPut((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 10));
- //鍑哄叆搴撴ā寮�
- forkLiftProtocol.setIOMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 12));
- //鏁呴殰鐮�
- forkLiftProtocol.setErrorCode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 14));
- //褰撳墠灞�
- forkLiftProtocol.setLev((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 16));
-
- //************琛ュ厖鎵╁睍瀛楁*************
- InnerForkLiftExtend forkLiftExtend = (InnerForkLiftExtend) forkLiftProtocol.getExtend();
- forkLiftProtocol.setExtend(forkLiftExtend);
-
- }else {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆憑1}璇诲彇璐у弶鎻愬崌鏈虹姸鎬佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
- }
-
- OperateResultExOne<byte[]> result2 = this.masterThread.read(this.slave.getId(), "staStatusTray");
- if (result2.IsSuccess) {
- for (int i = 0; i < this.slave.getSta().size(); i++) {
- ForkLiftSlave.Sta sta = this.slave.getSta().get(i);
- if (forkLiftStaProtocols.isEmpty()) {
- continue;
- }
-
- short val = siemensS7Net.getByteTransform().TransInt16(result2.Content, i * 2);
- ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i);
- forkLiftStaProtocol.setHasTray(val == 1);
- }
- }
-
- OperateResultExOne<byte[]> result3 = this.masterThread.read(this.slave.getId(), "staStatusCar");
- if (result3.IsSuccess) {
- for (int i = 0; i < this.slave.getSta().size(); i++) {
- ForkLiftSlave.Sta sta = this.slave.getSta().get(i);
- if (forkLiftStaProtocols.isEmpty()) {
- continue;
- }
-
- short val = siemensS7Net.getByteTransform().TransInt16(result3.Content, i * 2);
- ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i);
- forkLiftStaProtocol.setHasCar(val == 1);
- }
- }
-
- if (System.currentTimeMillis() - forkLiftProtocol.getDeviceDataLog() > 1000 * 5) {
- //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
- //淇濆瓨鏁版嵁璁板綍
- DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
- DeviceDataLog deviceDataLog = new DeviceDataLog();
- deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result1.Content));
- deviceDataLog.setWcsData(JSON.toJSONString(forkLiftProtocol));
- deviceDataLog.setType("forkLift");
- deviceDataLog.setDeviceNo(forkLiftProtocol.getLiftNo());
- deviceDataLog.setCreateTime(new Date());
- deviceDataLogService.insert(deviceDataLog);
-
- //淇濆瓨鏁版嵁璁板綍
- DeviceDataLog deviceDataLog2 = new DeviceDataLog();
- deviceDataLog2.setOriginData(Base64.getEncoder().encodeToString(result2.Content));
- deviceDataLog2.setWcsData(JSON.toJSONString(forkLiftStaProtocols));
- deviceDataLog2.setType("forkLiftStaProtocols");
- deviceDataLog2.setDeviceNo(forkLiftProtocol.getLiftNo());
- deviceDataLog2.setCreateTime(new Date());
- deviceDataLogService.insert(deviceDataLog2);
-
- //鏇存柊閲囬泦鏃堕棿
- forkLiftProtocol.setDeviceDataLog(System.currentTimeMillis());
- }
-
- //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
- BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
- BasLift basLift = basLiftService.selectOne(new EntityWrapper<BasLift>()
- .eq("lift_no", slave.getId()));
- if (basLift == null) {
- basLift = new BasLift();
- //鎻愬崌鏈哄彿
- basLift.setLiftNo(forkLiftProtocol.getLiftNo());
- basLift.setStatus(1);
- basLiftService.insert(basLift);
- }
- //浠诲姟鍙�
- basLift.setWrkNo(forkLiftProtocol.getTaskNo());
- //淇敼鏃堕棿
- basLift.setUpdateTime(new Date());
- //璁惧鐘舵��
- basLift.setDeviceStatus(JSON.toJSONString(forkLiftProtocol));
- if (basLiftService.updateById(basLift)) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), forkLiftProtocol.getLiftNo()));
- }
-
- } catch (Exception e) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栬揣鍙夋彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- }
- }
-
- @Override
- public ForkLiftProtocol getStatus(boolean clone) {
- if (this.forkLiftProtocol == null) {
- return null;
- }
- return clone ? this.forkLiftProtocol.clone() : this.forkLiftProtocol;
- }
-
- @Override
- public List<ForkLiftStaProtocol> getForkLiftStaProtocols() {
- return this.forkLiftStaProtocols;
- }
-
- @Override
- public ForkLiftProtocol getStatus() {
- return getStatus(true);
- }
-
- @Override
- public CommandResponse pickAndPut(ForkLiftCommand command) {
- CommandResponse response = new CommandResponse(false);
-
- short[] array = new short[4];
- array[0] = command.getTaskNo();//浠诲姟鍙�
- array[1] = command.getMode();//浠诲姟妯″紡
- array[2] = command.getPick();//鍙栬揣鏁版嵁
- array[3] = command.getPut();//鏀捐揣鏁版嵁
- OperateResult result = this.masterThread.write(this.slave.getId(), "write", array);
- if (result.IsSuccess) {
- OperateResult result2 = this.masterThread.write(this.slave.getId(), "writeConfirm", command.getConfirm());
- if (result2.IsSuccess) {
- response.setResult(true);
- }
- }
- return response;
- }
-
- @Override
- public CommandResponse shuttleSwitch(ForkLiftCommand command) {
- CommandResponse response = new CommandResponse(false);
-
- short[] array = new short[4];
- array[0] = command.getTaskNo();//浠诲姟鍙�
- array[1] = command.getMode();//浠诲姟妯″紡
- array[2] = command.getPick();//鍙栬揣鏁版嵁
- array[3] = command.getPut();//鏀捐揣鏁版嵁
- OperateResult result = this.masterThread.write(this.slave.getId(), "write", array);
- if (result.IsSuccess) {
- OperateResult result2 = this.masterThread.write(this.slave.getId(), "writeConfirm", command.getConfirm());
- if (result2.IsSuccess) {
- response.setResult(true);
- }
- }
- return response;
- }
-
- @Override
- public CommandResponse move(ForkLiftCommand command) {
- CommandResponse response = new CommandResponse(false);
-
- short[] array = new short[4];
- array[0] = command.getTaskNo();//浠诲姟鍙�
- array[1] = command.getMode();//浠诲姟妯″紡
- array[2] = command.getPut();//鏀捐揣鏁版嵁
- OperateResult result = this.masterThread.write(this.slave.getId(), "write", array);
- if (result.IsSuccess) {
- OperateResult result2 = this.masterThread.write(this.slave.getId(), "writeConfirm", command.getConfirm());
- if (result2.IsSuccess) {
- response.setResult(true);
- }
- }
- return response;
- }
-
- @Override
- public CommandResponse reset() {
- CommandResponse response = new CommandResponse(false);
- OperateResult result = this.masterThread.write(this.slave.getId(), "confirm", (short) 1);
- if (result.IsSuccess) {
- News.info("璐у弶鎻愬崌鏈虹‘璁ゅ懡浠や笅鍙戞垚鍔燂紝鎻愬崌鏈哄彿={}", forkLiftProtocol.getLiftNo());
- response.setResult(true);
- }
- return response;
- }
-
- @Override
- public boolean isIdle() {
- if (this.forkLiftProtocol.getTaskNo() == null
- || this.forkLiftProtocol.getProtocolStatus() == null
- || this.forkLiftProtocol.getModel() == null
- || this.forkLiftProtocol.getErrorCode() == null
- ) {
- return false;
- }
-
- boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
- && this.forkLiftProtocol.getWrkNo() == 0
- && this.forkLiftProtocol.getTaskNo() == 0
- && this.forkLiftProtocol.getModel() == 2
- && this.forkLiftProtocol.getErrorCode() == 0
- ;
- return res;
- }
-
- @Override
- public boolean isDeviceIdle() {
- return isDeviceIdle(null);
- }
-
- @Override
- public boolean isDeviceIdle(ExecuteSupport support) {
- if (null != support) {
- Boolean judgement = support.judgement();
- if (judgement != null && !judgement) {
- return true;
- }
- }
-
- if (this.forkLiftProtocol.getTaskNo() == null
- || this.forkLiftProtocol.getProtocolStatus() == null
- || this.forkLiftProtocol.getModel() == null
- || this.forkLiftProtocol.getErrorCode() == null
- ) {
- return false;
- }
-
- boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
- && this.forkLiftProtocol.getWrkNo() == 0
- && this.forkLiftProtocol.getModel() == 2
- && this.forkLiftProtocol.getErrorCode() == 0
- ;
- return res;
- }
-
- @Override
- public boolean setProtocolStatus(ForkLiftProtocolStatusType status) {
- return false;
- }
-
- @Override
- public boolean setSyncTaskNo(Integer taskNo) {
- this.forkLiftProtocol.setSyncTaskNo(taskNo);
- return true;
- }
-
- @Override
- public boolean switchIOMode(ForkLiftIoModeType type) {
- OperateResult result = this.masterThread.write(this.slave.getId(), "switchIOMode", type.id.shortValue());
- if (result.IsSuccess) {
- return true;
- }
- return false;
- }
-
- @Override
- public int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type) {
- return taskNo;
- }
-
- @Override
- public List<ForkLiftCommand> getPickAndPutCommand(Integer taskNo, Integer pick, Integer put) {
- Integer realPick = pick % 1000;
- Integer realPut = put % 1000;
-
- List<ForkLiftCommand> commands = new ArrayList<>();
- ForkLiftCommand command = new ForkLiftCommand();
- command.setLiftNo(slave.getId());
- command.setTaskNo(taskNo.shortValue());
- command.setMode(ForkLiftTaskModeType.PICK_PUT.id.shortValue());
- command.setPick(realPick.shortValue());
- command.setPut(realPut.shortValue());
- command.setConfirm((short) 1);
-
- commands.add(command);
- return commands;
- }
-
- @Override
- public List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put) {
- Integer realPick = pick % 1000;
- Integer realPut = put % 1000;
-
- List<ForkLiftCommand> commands = new ArrayList<>();
- ForkLiftCommand command = new ForkLiftCommand();
- command.setLiftNo(slave.getId());
- command.setTaskNo(taskNo.shortValue());
- command.setMode(ForkLiftTaskModeType.SHUTTLE_SWITCH.id.shortValue());
- command.setPick(realPick.shortValue());
- command.setPut(realPut.shortValue());
- command.setConfirm((short) 1);
-
- commands.add(command);
- return commands;
- }
-
- @Override
- public List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put) {
- Integer realPick = pick % 1000;
- Integer realPut = put % 1000;
-
- List<ForkLiftCommand> commands = new ArrayList<>();
- ForkLiftCommand command = new ForkLiftCommand();
- command.setLiftNo(slave.getId());
- command.setTaskNo(taskNo.shortValue());
- command.setMode(ForkLiftTaskModeType.MOVE.id.shortValue());
- command.setPick(realPick.shortValue());
- command.setPut(realPut.shortValue());
- command.setConfirm((short) 1);
-
- commands.add(command);
- return commands;
- }
-
- /**
- * 鎵╁睍瀛楁
- */
- @Data
- private class InnerForkLiftExtend {
-
- }
-}
+//package com.zy.core.thread.impl;
+//
+//import HslCommunication.Core.Types.OperateResult;
+//import HslCommunication.Core.Types.OperateResultExOne;
+//import HslCommunication.Profinet.Siemens.SiemensPLCS;
+//import HslCommunication.Profinet.Siemens.SiemensS7Net;
+//import com.alibaba.fastjson.JSON;
+//import com.baomidou.mybatisplus.mapper.EntityWrapper;
+//import com.core.common.DateUtils;
+//import com.core.common.SpringUtils;
+//import com.zy.asrs.entity.BasLift;
+//import com.zy.asrs.entity.DeviceDataLog;
+//import com.zy.asrs.service.BasLiftService;
+//import com.zy.asrs.service.DeviceDataLogService;
+//import com.zy.asrs.utils.Utils;
+//import com.zy.common.ExecuteSupport;
+//import com.zy.common.utils.RedisUtil;
+//import com.zy.core.News;
+//import com.zy.core.action.ForkLiftAction;
+//import com.zy.core.cache.OutputQueue;
+//import com.zy.core.cache.SlaveConnection;
+//import com.zy.core.enums.*;
+//import com.zy.core.model.CommandResponse;
+//import com.zy.core.model.ForkLiftSlave;
+//import com.zy.core.model.command.ForkLiftCommand;
+//import com.zy.core.model.protocol.ForkLiftProtocol;
+//import com.zy.core.model.protocol.ForkLiftStaProtocol;
+//import com.zy.core.thread.ForkLiftThread;
+//import lombok.Data;
+//import lombok.extern.slf4j.Slf4j;
+//
+//import java.text.MessageFormat;
+//import java.util.*;
+//
+//@Slf4j
+//@SuppressWarnings("all")
+//public class LfdZyForkLiftSlaveThread implements ForkLiftThread {
+//
+// private Integer masterId;
+// private ForkLiftSlave slave;
+// private ForkLiftProtocol forkLiftProtocol;
+// private RedisUtil redisUtil;
+// private List<ForkLiftStaProtocol> forkLiftStaProtocols = new ArrayList<>();
+// private LfdZyForkLiftMasterThread masterThread;
+//
+// public LfdZyForkLiftSlaveThread(ForkLiftSlave slave, RedisUtil redisUtil, Integer masterId) {
+// this.slave = slave;
+// this.redisUtil = redisUtil;
+// this.masterId = masterId;
+// //鍒濆鍖栫珯鐐�
+// for (ForkLiftSlave.Sta sta : this.slave.getSta()) {
+// ForkLiftStaProtocol forkLiftStaProtocol = new ForkLiftStaProtocol();
+// forkLiftStaProtocol.setStaNo(sta.getStaNo());//绔欑偣鍙�
+// forkLiftStaProtocol.setLev(sta.getLev());//绔欑偣妤煎眰
+// String locNo = Utils.getLocNo(this.slave.getStaRow(), this.slave.getStaBay(), sta.getLev());
+// forkLiftStaProtocol.setLocNo(locNo);//绔欑偣搴撲綅鍙�
+// forkLiftStaProtocol.setLiftNo(sta.getLiftNo());//鎻愬崌鏈哄彿
+// forkLiftStaProtocols.add(forkLiftStaProtocol);
+// }
+// }
+//
+// @Override
+// public boolean connect() {
+// boolean result = false;
+// LfdZyForkLiftMasterThread masterThread = (LfdZyForkLiftMasterThread) SlaveConnection.get(SlaveType.ForkLiftMaster, masterId);
+// if(masterThread != null) {
+// result = true;
+// this.masterThread = masterThread;
+// }
+// return result;
+// }
+//
+// @Override
+// public void close() {
+//
+// }
+//
+// @Override
+// public void run() {
+// News.info("{}鍙疯揣鍙夋彁鍗囨満绾跨▼鍚姩", slave.getId());
+// this.connect();
+// while (true) {
+// try {
+// if (this.masterThread == null) {
+// this.connect();
+// continue;
+// }
+//
+// read();
+// Thread.sleep(300);
+// execute();
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+// }
+//
+// private void execute() {
+// ForkLiftAction forkLiftAction = null;
+// try {
+// forkLiftAction = SpringUtils.getBean(ForkLiftAction.class);
+// }catch (Exception e){}
+// if (forkLiftAction == null) {
+// return;
+// }
+//
+// Object object = redisUtil.get(RedisKeyType.FORK_LIFT_FLAG.key + slave.getId());
+// if (object == null) {
+// return;
+// }
+//
+// Integer taskNo = Integer.valueOf(String.valueOf(object));
+// if (taskNo != 0) {
+// //瀛樺湪浠诲姟闇�瑕佹墽琛�
+// boolean result = forkLiftAction.executeWork(slave.getId(), taskNo);
+// }
+// }
+//
+// private void read() {
+// try {
+// readStatus();
+//
+// //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue
+// if (forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PICK_UP)
+// || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PUT_DOWN)
+// || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.WAITING)) {
+// forkLiftProtocol.setPakMk(true);
+// }
+// } catch (Exception e) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// }
+// }
+//
+// private void readStatus() {
+// try {
+// //鑾峰彇鎻愬崌鏈烘暟鎹�
+// OperateResultExOne<byte[]> result1 = this.masterThread.read(this.slave.getId(), "status");
+// SiemensS7Net siemensS7Net = this.masterThread.getSiemensS7Net();
+// if (result1.IsSuccess) {
+// if (null == forkLiftProtocol) {
+// forkLiftProtocol = new ForkLiftProtocol();
+// forkLiftProtocol.setLiftNo(slave.getId());
+// forkLiftProtocol.setProtocolStatus(ForkLiftProtocolStatusType.NONE);
+//
+// InnerForkLiftExtend innerForkLiftExtend = new InnerForkLiftExtend();
+// }
+//
+// //----------璇诲彇鎻愬崌鏈虹姸鎬�-----------
+// //妯″紡
+// forkLiftProtocol.setModel((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 0));
+// //PLC浠诲姟鍙�
+// forkLiftProtocol.setWrkNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 2));
+// //浠诲姟鐘舵��
+// forkLiftProtocol.setProtocolStatus((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 4));
+// //浠诲姟妯″紡
+// forkLiftProtocol.setTaskMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
+// //鍙栬揣鏁版嵁
+// forkLiftProtocol.setPick((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 8));
+// //鏀捐揣鏁版嵁
+// forkLiftProtocol.setPut((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 10));
+// //鍑哄叆搴撴ā寮�
+// forkLiftProtocol.setIOMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 12));
+// //鏁呴殰鐮�
+// forkLiftProtocol.setErrorCode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 14));
+// //褰撳墠灞�
+// forkLiftProtocol.setLev((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 16));
+//
+// //************琛ュ厖鎵╁睍瀛楁*************
+// InnerForkLiftExtend forkLiftExtend = (InnerForkLiftExtend) forkLiftProtocol.getExtend();
+// forkLiftProtocol.setExtend(forkLiftExtend);
+//
+// }else {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆憑1}璇诲彇璐у弶鎻愬崌鏈虹姸鎬佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
+// }
+//
+// OperateResultExOne<byte[]> result2 = this.masterThread.read(this.slave.getId(), "staStatusTray");
+// if (result2.IsSuccess) {
+// for (int i = 0; i < this.slave.getSta().size(); i++) {
+// ForkLiftSlave.Sta sta = this.slave.getSta().get(i);
+// if (forkLiftStaProtocols.isEmpty()) {
+// continue;
+// }
+//
+// short val = siemensS7Net.getByteTransform().TransInt16(result2.Content, i * 2);
+// ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i);
+// forkLiftStaProtocol.setHasTray(val == 1);
+// }
+// }
+//
+// OperateResultExOne<byte[]> result3 = this.masterThread.read(this.slave.getId(), "staStatusCar");
+// if (result3.IsSuccess) {
+// for (int i = 0; i < this.slave.getSta().size(); i++) {
+// ForkLiftSlave.Sta sta = this.slave.getSta().get(i);
+// if (forkLiftStaProtocols.isEmpty()) {
+// continue;
+// }
+//
+// short val = siemensS7Net.getByteTransform().TransInt16(result3.Content, i * 2);
+// ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i);
+// forkLiftStaProtocol.setHasCar(val == 1);
+// }
+// }
+//
+// if (System.currentTimeMillis() - forkLiftProtocol.getDeviceDataLog() > 1000 * 5) {
+// //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
+// //淇濆瓨鏁版嵁璁板綍
+// DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
+// DeviceDataLog deviceDataLog = new DeviceDataLog();
+// deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result1.Content));
+// deviceDataLog.setWcsData(JSON.toJSONString(forkLiftProtocol));
+// deviceDataLog.setType("forkLift");
+// deviceDataLog.setDeviceNo(forkLiftProtocol.getLiftNo());
+// deviceDataLog.setCreateTime(new Date());
+// deviceDataLogService.insert(deviceDataLog);
+//
+// //淇濆瓨鏁版嵁璁板綍
+// DeviceDataLog deviceDataLog2 = new DeviceDataLog();
+// deviceDataLog2.setOriginData(Base64.getEncoder().encodeToString(result2.Content));
+// deviceDataLog2.setWcsData(JSON.toJSONString(forkLiftStaProtocols));
+// deviceDataLog2.setType("forkLiftStaProtocols");
+// deviceDataLog2.setDeviceNo(forkLiftProtocol.getLiftNo());
+// deviceDataLog2.setCreateTime(new Date());
+// deviceDataLogService.insert(deviceDataLog2);
+//
+// //鏇存柊閲囬泦鏃堕棿
+// forkLiftProtocol.setDeviceDataLog(System.currentTimeMillis());
+// }
+//
+// //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
+// BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
+// BasLift basLift = basLiftService.selectOne(new EntityWrapper<BasLift>()
+// .eq("lift_no", slave.getId()));
+// if (basLift == null) {
+// basLift = new BasLift();
+// //鎻愬崌鏈哄彿
+// basLift.setLiftNo(forkLiftProtocol.getLiftNo());
+// basLift.setStatus(1);
+// basLiftService.insert(basLift);
+// }
+// //浠诲姟鍙�
+// basLift.setWrkNo(forkLiftProtocol.getTaskNo());
+// //淇敼鏃堕棿
+// basLift.setUpdateTime(new Date());
+// //璁惧鐘舵��
+// basLift.setDeviceStatus(JSON.toJSONString(forkLiftProtocol));
+// if (basLiftService.updateById(basLift)) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), forkLiftProtocol.getLiftNo()));
+// }
+//
+// } catch (Exception e) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栬揣鍙夋彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// }
+// }
+//
+// @Override
+// public ForkLiftProtocol getStatus(boolean clone) {
+// if (this.forkLiftProtocol == null) {
+// return null;
+// }
+// return clone ? this.forkLiftProtocol.clone() : this.forkLiftProtocol;
+// }
+//
+// @Override
+// public List<ForkLiftStaProtocol> getForkLiftStaProtocols() {
+// return this.forkLiftStaProtocols;
+// }
+//
+// @Override
+// public ForkLiftProtocol getStatus() {
+// return getStatus(true);
+// }
+//
+// @Override
+// public CommandResponse pickAndPut(ForkLiftCommand command) {
+// CommandResponse response = new CommandResponse(false);
+//
+// short[] array = new short[4];
+// array[0] = command.getTaskNo();//浠诲姟鍙�
+// array[1] = command.getMode();//浠诲姟妯″紡
+// array[2] = command.getPick();//鍙栬揣鏁版嵁
+// array[3] = command.getPut();//鏀捐揣鏁版嵁
+// OperateResult result = this.masterThread.write(this.slave.getId(), "write", array);
+// if (result.IsSuccess) {
+// OperateResult result2 = this.masterThread.write(this.slave.getId(), "writeConfirm", command.getConfirm());
+// if (result2.IsSuccess) {
+// response.setResult(true);
+// }
+// }
+// return response;
+// }
+//
+// @Override
+// public CommandResponse shuttleSwitch(ForkLiftCommand command) {
+// CommandResponse response = new CommandResponse(false);
+//
+// short[] array = new short[4];
+// array[0] = command.getTaskNo();//浠诲姟鍙�
+// array[1] = command.getMode();//浠诲姟妯″紡
+// array[2] = command.getPick();//鍙栬揣鏁版嵁
+// array[3] = command.getPut();//鏀捐揣鏁版嵁
+// OperateResult result = this.masterThread.write(this.slave.getId(), "write", array);
+// if (result.IsSuccess) {
+// OperateResult result2 = this.masterThread.write(this.slave.getId(), "writeConfirm", command.getConfirm());
+// if (result2.IsSuccess) {
+// response.setResult(true);
+// }
+// }
+// return response;
+// }
+//
+// @Override
+// public CommandResponse move(ForkLiftCommand command) {
+// CommandResponse response = new CommandResponse(false);
+//
+// short[] array = new short[4];
+// array[0] = command.getTaskNo();//浠诲姟鍙�
+// array[1] = command.getMode();//浠诲姟妯″紡
+// array[2] = command.getPut();//鏀捐揣鏁版嵁
+// OperateResult result = this.masterThread.write(this.slave.getId(), "write", array);
+// if (result.IsSuccess) {
+// OperateResult result2 = this.masterThread.write(this.slave.getId(), "writeConfirm", command.getConfirm());
+// if (result2.IsSuccess) {
+// response.setResult(true);
+// }
+// }
+// return response;
+// }
+//
+// @Override
+// public CommandResponse reset() {
+// CommandResponse response = new CommandResponse(false);
+// OperateResult result = this.masterThread.write(this.slave.getId(), "confirm", (short) 1);
+// if (result.IsSuccess) {
+// News.info("璐у弶鎻愬崌鏈虹‘璁ゅ懡浠や笅鍙戞垚鍔燂紝鎻愬崌鏈哄彿={}", forkLiftProtocol.getLiftNo());
+// response.setResult(true);
+// }
+// return response;
+// }
+//
+// @Override
+// public boolean isIdle() {
+// if (this.forkLiftProtocol.getTaskNo() == null
+// || this.forkLiftProtocol.getProtocolStatus() == null
+// || this.forkLiftProtocol.getModel() == null
+// || this.forkLiftProtocol.getErrorCode() == null
+// ) {
+// return false;
+// }
+//
+// boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
+// && this.forkLiftProtocol.getWrkNo() == 0
+// && this.forkLiftProtocol.getTaskNo() == 0
+// && this.forkLiftProtocol.getModel() == 2
+// && this.forkLiftProtocol.getErrorCode() == 0
+// ;
+// return res;
+// }
+//
+// @Override
+// public boolean isDeviceIdle() {
+// return isDeviceIdle(null);
+// }
+//
+// @Override
+// public boolean isDeviceIdle(ExecuteSupport support) {
+// if (null != support) {
+// Boolean judgement = support.judgement();
+// if (judgement != null && !judgement) {
+// return true;
+// }
+// }
+//
+// if (this.forkLiftProtocol.getTaskNo() == null
+// || this.forkLiftProtocol.getProtocolStatus() == null
+// || this.forkLiftProtocol.getModel() == null
+// || this.forkLiftProtocol.getErrorCode() == null
+// ) {
+// return false;
+// }
+//
+// boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
+// && this.forkLiftProtocol.getWrkNo() == 0
+// && this.forkLiftProtocol.getModel() == 2
+// && this.forkLiftProtocol.getErrorCode() == 0
+// ;
+// return res;
+// }
+//
+// @Override
+// public boolean setProtocolStatus(ForkLiftProtocolStatusType status) {
+// return false;
+// }
+//
+// @Override
+// public boolean setSyncTaskNo(Integer taskNo) {
+// this.forkLiftProtocol.setSyncTaskNo(taskNo);
+// return true;
+// }
+//
+// @Override
+// public boolean switchIOMode(ForkLiftIoModeType type) {
+// OperateResult result = this.masterThread.write(this.slave.getId(), "switchIOMode", type.id.shortValue());
+// if (result.IsSuccess) {
+// return true;
+// }
+// return false;
+// }
+//
+// @Override
+// public int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type) {
+// return taskNo;
+// }
+//
+// @Override
+// public List<ForkLiftCommand> getPickAndPutCommand(Integer taskNo, Integer pick, Integer put) {
+// Integer realPick = pick % 1000;
+// Integer realPut = put % 1000;
+//
+// List<ForkLiftCommand> commands = new ArrayList<>();
+// ForkLiftCommand command = new ForkLiftCommand();
+// command.setLiftNo(slave.getId());
+// command.setTaskNo(taskNo.shortValue());
+// command.setMode(ForkLiftTaskModeType.PICK_PUT.id.shortValue());
+// command.setPick(realPick.shortValue());
+// command.setPut(realPut.shortValue());
+// command.setConfirm((short) 1);
+//
+// commands.add(command);
+// return commands;
+// }
+//
+// @Override
+// public List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put) {
+// Integer realPick = pick % 1000;
+// Integer realPut = put % 1000;
+//
+// List<ForkLiftCommand> commands = new ArrayList<>();
+// ForkLiftCommand command = new ForkLiftCommand();
+// command.setLiftNo(slave.getId());
+// command.setTaskNo(taskNo.shortValue());
+// command.setMode(ForkLiftTaskModeType.SHUTTLE_SWITCH.id.shortValue());
+// command.setPick(realPick.shortValue());
+// command.setPut(realPut.shortValue());
+// command.setConfirm((short) 1);
+//
+// commands.add(command);
+// return commands;
+// }
+//
+// @Override
+// public List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put) {
+// Integer realPick = pick % 1000;
+// Integer realPut = put % 1000;
+//
+// List<ForkLiftCommand> commands = new ArrayList<>();
+// ForkLiftCommand command = new ForkLiftCommand();
+// command.setLiftNo(slave.getId());
+// command.setTaskNo(taskNo.shortValue());
+// command.setMode(ForkLiftTaskModeType.MOVE.id.shortValue());
+// command.setPick(realPick.shortValue());
+// command.setPut(realPut.shortValue());
+// command.setConfirm((short) 1);
+//
+// commands.add(command);
+// return commands;
+// }
+//
+// /**
+// * 鎵╁睍瀛楁
+// */
+// @Data
+// private class InnerForkLiftExtend {
+//
+// }
+//}
diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
index 166c711..68771e5 100644
--- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -56,7 +56,7 @@
private static final boolean DEBUG = false;//璋冭瘯妯″紡
private List<JSONObject> socketReadResults = new ArrayList<>();
- private List<JSONObject> socketResults = new ArrayList<>();
+ private List<DeviceMsgModel> socketResults = new ArrayList<>();
//鍘熷璁惧鏁版嵁
private Object originDeviceData;
@@ -188,54 +188,32 @@
data.put("originDeviceData", deviceMsg.getDeviceOriginMsg());
socketReadResults.add(data);
} else {
- socketResults.add(data);//娣诲姞鏁版嵁
+ socketResults.add(deviceMsg);//娣诲姞鏁版嵁
}
} catch (Exception e) {
e.printStackTrace();
}
}
- public JSONObject getRequestBody(String type, String taskId) {
+ public JSONObject getRequestBody(String resultKey) {
try {
// 鑾峰彇鏈嶅姟鍣ㄥ搷搴�
JSONObject result = null;
- if (type.equals("readState")) {
- type = "state";
- }
-
+ int idx = -1;
for (int i = 0; i < socketResults.size(); i++) {
- JSONObject socketResult = socketResults.get(i);
- if (!socketResult.get("msgType").equals("responseMsg")) {//涓嶆槸鍝嶅簲鍐呭
- continue;
- }
-
- JSONObject resultResponse = JSON.parseObject(socketResult.get("response").toString());
- JSONObject resultBody = JSON.parseObject(resultResponse.get("body").toString());
- String responseType = resultBody.get("responseType").toString();
- if (DEBUG) {
- result = socketResult;
+ DeviceMsgModel deviceMsgModel = socketResults.get(i);
+ if(deviceMsgModel.getResultKey().equals(resultKey)){
+ idx = i;
+ result = JSON.parseObject(JSON.toJSONString(deviceMsgModel.getDeviceMsg()));
break;
}
-
- if (!responseType.equals(type)) {
- continue;//鍝嶅簲绫诲瀷涓庤姹傜被鍨嬩笉涓�鑷达紝涓嶅湪璋冭瘯妯″紡涓�
- }
-
- if (taskId != null) {
- String responseTaskId = resultBody.get("taskId").toString();
- if (!responseTaskId.equals(taskId)) {
- continue;//鍝嶅簲ID涓庤姹侷D涓嶄竴鑷达紝涓嶅湪璋冭瘯妯″紡涓�
- }
- }
-
- result = socketResult;
- break;
}
if (result == null) {
return null;//鏃犲搷搴旂粨鏋�
}
+ socketResults.remove(idx);
return filterBodyData(result);//杩斿洖Body缁撴灉闆�
} catch (Exception e) {
return null;
@@ -359,35 +337,38 @@
// 鑾峰彇鏈嶅姟鍣ㄥ搷搴�
JSONObject result = null;
int removeIdx = -1;
+ JSONObject socketResult = null;
for (int i = 0; i < socketResults.size(); i++) {
- JSONObject socketResult = socketResults.get(i);
- if (socketResult == null) {
+ DeviceMsgModel deviceMsgModel = socketResults.get(i);
+ if (!deviceMsgModel.getDeviceMsgType().equals("shuttleInit")) {
continue;
}
- if (!socketResult.get("msgType").equals("requestMsg")) {//涓嶆槸璇锋眰鍐呭
- continue;
- }
+ removeIdx = i;
+ socketResult = JSON.parseObject(JSON.toJSONString(deviceMsgModel.getDeviceMsg()));
+ break;
+ }
- JSONObject resultResponse = JSON.parseObject(socketResult.get("request").toString());
- JSONObject resultHeader = JSON.parseObject(resultResponse.get("header").toString());
- JSONObject resultBody = JSON.parseObject(resultResponse.get("body").toString());
- String requestType = resultBody.getString("requestType");
- Integer requestId = resultHeader.getInteger("requestId");
- if (requestType.equals("init")) {
- removeIdx = i;//姝ゆ暟鎹凡缁忓鐞嗭紝浠庣粨鏋滈泦涓墧闄�
- socketResults.remove(removeIdx);
+ if (socketResult == null) {
+ return;
+ }
- Integer code = resultBody.getInteger("code");
- //灏忚溅澶嶄綅璇锋眰
- ShuttleCommand initCommand = getInitCommand(requestId, code);
- //鍙戝嚭璇锋眰
- NyShuttleHttpCommand httpCommand = JSON.parseObject(initCommand.getBody(), NyShuttleHttpCommand.class);
- requestCommand(httpCommand);
+ JSONObject resultResponse = JSON.parseObject(socketResult.get("request").toString());
+ JSONObject resultHeader = JSON.parseObject(resultResponse.get("header").toString());
+ JSONObject resultBody = JSON.parseObject(resultResponse.get("body").toString());
+ String requestType = resultBody.getString("requestType");
+ Integer requestId = resultHeader.getInteger("requestId");
+ if (requestType.equals("init")) {
+ socketResults.remove(removeIdx);
- log.info(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", deviceConfig.getDeviceNo(), code, deviceConfig.getIp(), deviceConfig.getPort()));
- OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", deviceConfig.getDeviceNo(), code, deviceConfig.getIp(), deviceConfig.getPort()));
- break;
- }
+ Integer code = resultBody.getInteger("code");
+ //灏忚溅澶嶄綅璇锋眰
+ ShuttleCommand initCommand = getInitCommand(requestId, code);
+ //鍙戝嚭璇锋眰
+ NyShuttleHttpCommand httpCommand = JSON.parseObject(initCommand.getBody(), NyShuttleHttpCommand.class);
+ requestCommand(httpCommand);
+
+ log.info(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", deviceConfig.getDeviceNo(), code, deviceConfig.getIp(), deviceConfig.getPort()));
+ OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", deviceConfig.getDeviceNo(), code, deviceConfig.getIp(), deviceConfig.getPort()));
}
} catch (Exception e) {
e.printStackTrace();
@@ -479,9 +460,9 @@
try {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
- JSONObject requestToken = requestCommand(httpCommand);
+ String resultKey = requestCommand(httpCommand);
//鏌ヨ璇锋眰缁撴灉
- JSONObject result = queryCommandStatus(requestToken.getString("requestType"), requestToken.getString("taskId"));
+ JSONObject result = queryCommandStatus(resultKey);
if (result == null) {
return response;//璇锋眰澶辫触
}
@@ -502,9 +483,9 @@
try {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
- JSONObject requestToken = requestCommand(httpCommand);
+ String resultKey = requestCommand(httpCommand);
//鏌ヨ璇锋眰缁撴灉
- JSONObject result = queryCommandStatus(requestToken.getString("requestType"), requestToken.getString("taskId"));
+ JSONObject result = queryCommandStatus(resultKey);
if (result == null) {
return response;//璇锋眰澶辫触
}
@@ -524,9 +505,9 @@
try {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
- JSONObject requestToken = requestCommand(httpCommand);
+ String resultKey = requestCommand(httpCommand);
//鏌ヨ璇锋眰缁撴灉
- JSONObject result = queryCommandStatus(requestToken.getString("requestType"), requestToken.getString("taskId"));
+ JSONObject result = queryCommandStatus(resultKey);
if (result == null) {
return response;//璇锋眰澶辫触
}
@@ -554,9 +535,9 @@
try {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
- JSONObject requestToken = requestCommand(httpCommand);
+ String resultKey = requestCommand(httpCommand);
//鏌ヨ璇锋眰缁撴灉
- JSONObject result = queryCommandStatus(requestToken.getString("requestType"), requestToken.getString("taskId"));
+ JSONObject result = queryCommandStatus(resultKey);
if (result == null) {
return response;//璇锋眰澶辫触
}
@@ -1127,7 +1108,7 @@
}
//鍙戝嚭璇锋眰
- private JSONObject requestCommand(NyShuttleHttpCommand httpCommand) throws IOException {
+ private String requestCommand(NyShuttleHttpCommand httpCommand) throws IOException {
try {
DeviceMsgUtils deviceMsgUtils = SpringUtils.getBean(DeviceMsgUtils.class);
if (deviceMsgUtils == null) {
@@ -1143,33 +1124,19 @@
commandMsgModel.setDeviceType(String.valueOf(SlaveType.Shuttle));
commandMsgModel.setCommand(data);
String key = deviceMsgUtils.sendDeviceCommand(SlaveType.Shuttle, deviceConfig.getDeviceNo(), commandMsgModel);
-
- String requestType = null;
- String taskId = null;
- try {
- requestType = httpCommand.getRequest().getBody().get("requestType").toString();
- taskId = httpCommand.getRequest().getBody().get("taskId").toString();
- } catch (Exception e) {
-// return null;
- //taskId鍙兘鍙栫┖锛屼笉鎶ラ敊锛屾甯告儏鍐�
- }
-
- JSONObject result = new JSONObject();
- result.put("requestType", requestType);
- result.put("taskId", taskId);
- return result;
+ return key;
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
- private JSONObject queryCommandStatus(String requestType, String taskId) {
+ private JSONObject queryCommandStatus(String resultKey) {
// 鑾峰彇鏈嶅姟鍣ㄥ搷搴�
// 灏濊瘯50娆�
JSONObject result = null;
for (int i = 0; i < 50; i++) {
- result = getRequestBody(requestType, taskId);
+ result = getRequestBody(resultKey);
if (result == null) {
try {
Thread.sleep(500);
diff --git a/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java b/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java
deleted file mode 100644
index e795ce3..0000000
--- a/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java
+++ /dev/null
@@ -1,452 +0,0 @@
-package com.zy.core.thread.impl;
-
-import HslCommunication.Core.Types.OperateResult;
-import HslCommunication.Core.Types.OperateResultExOne;
-import HslCommunication.Profinet.Siemens.SiemensPLCS;
-import HslCommunication.Profinet.Siemens.SiemensS7Net;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.DateUtils;
-import com.core.common.SpringUtils;
-import com.zy.asrs.entity.BasLift;
-import com.zy.asrs.entity.DeviceDataLog;
-import com.zy.asrs.service.BasLiftService;
-import com.zy.asrs.service.DeviceDataLogService;
-import com.zy.asrs.utils.Utils;
-import com.zy.common.ExecuteSupport;
-import com.zy.common.utils.RedisUtil;
-import com.zy.core.News;
-import com.zy.core.action.ForkLiftAction;
-import com.zy.core.action.ShuttleAction;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.enums.ForkLiftIoModeType;
-import com.zy.core.enums.ForkLiftProtocolStatusType;
-import com.zy.core.enums.ForkLiftTaskModeType;
-import com.zy.core.enums.RedisKeyType;
-import com.zy.core.model.CommandResponse;
-import com.zy.core.model.ForkLiftSlave;
-import com.zy.core.model.command.ForkLiftCommand;
-import com.zy.core.model.protocol.ForkLiftProtocol;
-import com.zy.core.model.protocol.ForkLiftStaProtocol;
-import com.zy.core.thread.ForkLiftThread;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-
-import java.text.MessageFormat;
-import java.util.*;
-
-@Slf4j
-@SuppressWarnings("all")
-public class ZyForkLiftThread implements ForkLiftThread {
-
- private ForkLiftSlave slave;
- private ForkLiftProtocol forkLiftProtocol;
- private RedisUtil redisUtil;
- private SiemensS7Net siemensS7Net;
- private List<ForkLiftStaProtocol> forkLiftStaProtocols = new ArrayList<>();
-
- public ZyForkLiftThread(ForkLiftSlave slave, RedisUtil redisUtil) {
- this.slave = slave;
- this.redisUtil = redisUtil;
- //鍒濆鍖栫珯鐐�
- for (ForkLiftSlave.Sta sta : this.slave.getSta()) {
- ForkLiftStaProtocol forkLiftStaProtocol = new ForkLiftStaProtocol();
- forkLiftStaProtocol.setStaNo(sta.getStaNo());//绔欑偣鍙�
- forkLiftStaProtocol.setLev(sta.getLev());//绔欑偣妤煎眰
- String locNo = Utils.getLocNo(this.slave.getStaRow(), this.slave.getStaBay(), sta.getLev());
- forkLiftStaProtocol.setLocNo(locNo);//绔欑偣搴撲綅鍙�
- forkLiftStaProtocol.setLiftNo(sta.getLiftNo());//鎻愬崌鏈哄彿
- forkLiftStaProtocols.add(forkLiftStaProtocol);
- }
- }
-
- @Override
- public boolean connect() {
- boolean result = false;
- siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
- siemensS7Net.setRack(slave.getRack().byteValue());
- siemensS7Net.setSlot(slave.getSlot().byteValue());
- OperateResult connect = siemensS7Net.ConnectServer();
- if(connect.IsSuccess){
- result = true;
- OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.info("璐у弶鎻愬崌鏈鸿繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- } else {
- OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.error("璐у弶鎻愬崌鏈鸿繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- }
- // siemensS7Net.ConnectClose();
- return result;
- }
-
- @Override
- public void close() {
-
- }
-
- @Override
- public void run() {
- News.info("{}鍙疯揣鍙夋彁鍗囨満绾跨▼鍚姩", slave.getId());
- this.connect();
- while (true) {
- try {
- read();
- Thread.sleep(200);
- execute();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- private void execute() {
- ForkLiftAction forkLiftAction = SpringUtils.getBean(ForkLiftAction.class);
- if (forkLiftAction == null) {
- return;
- }
-
- Object object = redisUtil.get(RedisKeyType.FORK_LIFT_FLAG.key + slave.getId());
- if (object == null) {
- return;
- }
-
- Integer taskNo = Integer.valueOf(String.valueOf(object));
- if (taskNo != 0) {
- //瀛樺湪浠诲姟闇�瑕佹墽琛�
- boolean result = forkLiftAction.executeWork(slave.getId(), taskNo);
- }
- }
-
- private void read() {
- try {
- readStatus();
-
- //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue
- if (forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PICK_UP)
- || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PUT_DOWN)
- || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.WAITING)) {
- forkLiftProtocol.setPakMk(true);
- }
- } catch (Exception e) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- }
- }
-
- private void readStatus() {
- try {
- //鑾峰彇鎻愬崌鏈烘暟鎹�
- OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB101.0", (short) 16);
- if (result1.IsSuccess) {
- if (null == forkLiftProtocol) {
- forkLiftProtocol = new ForkLiftProtocol();
- forkLiftProtocol.setLiftNo(slave.getId());
- forkLiftProtocol.setProtocolStatus(ForkLiftProtocolStatusType.NONE);
-
- InnerForkLiftExtend innerForkLiftExtend = new InnerForkLiftExtend();
- }
-
- //----------璇诲彇鎻愬崌鏈虹姸鎬�-----------
- //妯″紡
- forkLiftProtocol.setModel((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 0));
- //PLC浠诲姟鍙�
- forkLiftProtocol.setWrkNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 2));
- //浠诲姟鐘舵��
- forkLiftProtocol.setProtocolStatus((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 4));
- //浠诲姟妯″紡
- forkLiftProtocol.setTaskMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
- //鍙栬揣鏁版嵁
- forkLiftProtocol.setPick((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 8));
- //鏀捐揣鏁版嵁
- forkLiftProtocol.setPut((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 10));
- //鍑哄叆搴撴ā寮�
- forkLiftProtocol.setIOMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 12));
- //鏁呴殰鐮�
- forkLiftProtocol.setErrorCode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 14));
-
- //************琛ュ厖鎵╁睍瀛楁*************
- InnerForkLiftExtend forkLiftExtend = (InnerForkLiftExtend) forkLiftProtocol.getExtend();
- forkLiftProtocol.setExtend(forkLiftExtend);
-
- }else {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆憑1}璇诲彇璐у弶鎻愬崌鏈虹姸鎬佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
- }
-
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB102.0", (short) 8);
- if (result2.IsSuccess) {
- for (int i = 0; i < this.slave.getSta().size(); i++) {
- ForkLiftSlave.Sta sta = this.slave.getSta().get(i);
- if (forkLiftStaProtocols.isEmpty()) {
- continue;
- }
-
- ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i);
- boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result2.Content, i * 2, 2);
- forkLiftStaProtocol.setHasTray(status1[0]);
- forkLiftStaProtocol.setHasCar(status1[1]);
- }
- }
-
- if (System.currentTimeMillis() - forkLiftProtocol.getDeviceDataLog() > 1000 * 5) {
- //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
- //淇濆瓨鏁版嵁璁板綍
- DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
- DeviceDataLog deviceDataLog = new DeviceDataLog();
- deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result1.Content));
- deviceDataLog.setWcsData(JSON.toJSONString(forkLiftProtocol));
- deviceDataLog.setType("forkLift");
- deviceDataLog.setDeviceNo(forkLiftProtocol.getLiftNo());
- deviceDataLog.setCreateTime(new Date());
- deviceDataLogService.insert(deviceDataLog);
-
- //鏇存柊閲囬泦鏃堕棿
- forkLiftProtocol.setDeviceDataLog(System.currentTimeMillis());
- }
-
- //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
- BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
- BasLift basLift = basLiftService.selectOne(new EntityWrapper<BasLift>()
- .eq("lift_no", slave.getId()));
- if (basLift == null) {
- basLift = new BasLift();
- //鎻愬崌鏈哄彿
- basLift.setLiftNo(forkLiftProtocol.getLiftNo());
- basLift.setStatus(1);
- basLiftService.insert(basLift);
- }
- //浠诲姟鍙�
- basLift.setWrkNo(forkLiftProtocol.getTaskNo());
- //淇敼鏃堕棿
- basLift.setUpdateTime(new Date());
- //璁惧鐘舵��
- basLift.setDeviceStatus(JSON.toJSONString(forkLiftProtocol));
- if (basLiftService.updateById(basLift)) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), forkLiftProtocol.getLiftNo()));
- }
-
- } catch (Exception e) {
- OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栬揣鍙夋彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- }
- }
-
- @Override
- public ForkLiftProtocol getStatus(boolean clone) {
- if (this.forkLiftProtocol == null) {
- return null;
- }
- return clone ? this.forkLiftProtocol.clone() : this.forkLiftProtocol;
- }
-
- @Override
- public List<ForkLiftStaProtocol> getForkLiftStaProtocols() {
- return this.forkLiftStaProtocols;
- }
-
- @Override
- public ForkLiftProtocol getStatus() {
- return getStatus(true);
- }
-
- @Override
- public CommandResponse pickAndPut(ForkLiftCommand command) {
- CommandResponse response = new CommandResponse(false);
-
- short[] array = new short[4];
- array[0] = command.getTaskNo();//浠诲姟鍙�
- array[1] = command.getMode();//浠诲姟妯″紡
- array[2] = command.getPick();//鍙栬揣鏁版嵁
- array[3] = command.getPut();//鏀捐揣鏁版嵁
- OperateResult result = siemensS7Net.Write("DB103.0", array);
- if (result.IsSuccess) {
- OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
- if (result2.IsSuccess) {
- response.setResult(true);
- }
- }
- return response;
- }
-
- @Override
- public CommandResponse shuttleSwitch(ForkLiftCommand command) {
- CommandResponse response = new CommandResponse(false);
-
- short[] array = new short[4];
- array[0] = command.getTaskNo();//浠诲姟鍙�
- array[1] = command.getMode();//浠诲姟妯″紡
- array[2] = command.getPick();//鍙栬揣鏁版嵁
- array[3] = command.getPut();//鏀捐揣鏁版嵁
- OperateResult result = siemensS7Net.Write("DB103.0", array);
- if (result.IsSuccess) {
- OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
- if (result2.IsSuccess) {
- response.setResult(true);
- }
- }
- return response;
- }
-
- @Override
- public CommandResponse move(ForkLiftCommand command) {
- CommandResponse response = new CommandResponse(false);
-
- short[] array = new short[4];
- array[0] = command.getTaskNo();//浠诲姟鍙�
- array[1] = command.getMode();//浠诲姟妯″紡
- array[2] = command.getPick();//鍙栬揣鏁版嵁
- array[3] = command.getPut();//鏀捐揣鏁版嵁
- OperateResult result = siemensS7Net.Write("DB103.0", array);
- if (result.IsSuccess) {
- OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
- if (result2.IsSuccess) {
- response.setResult(true);
- }
- }
- return response;
- }
-
- @Override
- public CommandResponse reset() {
- CommandResponse response = new CommandResponse(false);
- OperateResult result = siemensS7Net.Write("DB103.10", (short) 1);
- if (result.IsSuccess) {
- News.info("璐у弶鎻愬崌鏈虹‘璁ゅ懡浠や笅鍙戞垚鍔燂紝鎻愬崌鏈哄彿={}", forkLiftProtocol.getLiftNo());
- response.setResult(true);
- }
- return response;
- }
-
- @Override
- public boolean isIdle() {
- if (this.forkLiftProtocol.getTaskNo() == null
- || this.forkLiftProtocol.getProtocolStatus() == null
- || this.forkLiftProtocol.getModel() == null
- || this.forkLiftProtocol.getErrorCode() == null
- ) {
- return false;
- }
-
- boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
- && this.forkLiftProtocol.getWrkNo() == 0
- && this.forkLiftProtocol.getTaskNo() == 0
- && this.forkLiftProtocol.getModel() == 2
- && this.forkLiftProtocol.getErrorCode() == 0
- ;
- return res;
- }
-
- @Override
- public boolean isDeviceIdle() {
- return isDeviceIdle(null);
- }
-
- @Override
- public boolean isDeviceIdle(ExecuteSupport support) {
- if (null != support) {
- Boolean judgement = support.judgement();
- if (judgement != null && !judgement) {
- return true;
- }
- }
-
- if (this.forkLiftProtocol.getTaskNo() == null
- || this.forkLiftProtocol.getProtocolStatus() == null
- || this.forkLiftProtocol.getModel() == null
- || this.forkLiftProtocol.getErrorCode() == null
- ) {
- return false;
- }
-
- boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
- && this.forkLiftProtocol.getWrkNo() == 0
- && this.forkLiftProtocol.getModel() == 2
- && this.forkLiftProtocol.getErrorCode() == 0
- ;
- return res;
- }
-
- @Override
- public boolean setProtocolStatus(ForkLiftProtocolStatusType status) {
- return false;
- }
-
- @Override
- public boolean setSyncTaskNo(Integer taskNo) {
- this.forkLiftProtocol.setSyncTaskNo(taskNo);
- return true;
- }
-
- @Override
- public boolean switchIOMode(ForkLiftIoModeType type) {
- OperateResult result = siemensS7Net.Write("DB103.12", type.id.shortValue());
- if (result.IsSuccess) {
- return true;
- }
- return false;
- }
-
- @Override
- public int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type) {
- return taskNo;
- }
-
- @Override
- public List<ForkLiftCommand> getPickAndPutCommand(Integer taskNo, Integer pick, Integer put) {
- Integer realPick = pick % 1000;
- Integer realPut = put % 1000;
-
- List<ForkLiftCommand> commands = new ArrayList<>();
- ForkLiftCommand command = new ForkLiftCommand();
- command.setLiftNo(slave.getId());
- command.setTaskNo(taskNo.shortValue());
- command.setMode(ForkLiftTaskModeType.PICK_PUT.id.shortValue());
- command.setPick(realPick.shortValue());
- command.setPut(realPut.shortValue());
- command.setConfirm((short) 1);
-
- commands.add(command);
- return commands;
- }
-
- @Override
- public List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put) {
- Integer realPick = pick % 1000;
- Integer realPut = put % 1000;
-
- List<ForkLiftCommand> commands = new ArrayList<>();
- ForkLiftCommand command = new ForkLiftCommand();
- command.setLiftNo(slave.getId());
- command.setTaskNo(taskNo.shortValue());
- command.setMode(ForkLiftTaskModeType.SHUTTLE_SWITCH.id.shortValue());
- command.setPick(realPick.shortValue());
- command.setPut(realPut.shortValue());
- command.setConfirm((short) 1);
-
- commands.add(command);
- return commands;
- }
-
- @Override
- public List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put) {
- Integer realPick = pick % 1000;
- Integer realPut = put % 1000;
-
- List<ForkLiftCommand> commands = new ArrayList<>();
- ForkLiftCommand command = new ForkLiftCommand();
- command.setLiftNo(slave.getId());
- command.setTaskNo(taskNo.shortValue());
- command.setMode(ForkLiftTaskModeType.MOVE.id.shortValue());
- command.setPick(realPick.shortValue());
- command.setPut(realPut.shortValue());
- command.setConfirm((short) 1);
-
- commands.add(command);
- return commands;
- }
-
- /**
- * 鎵╁睍瀛楁
- */
- @Data
- private class InnerForkLiftExtend {
-
- }
-}
diff --git a/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread2.java b/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread2.java
new file mode 100644
index 0000000..84c661e
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread2.java
@@ -0,0 +1,451 @@
+//package com.zy.core.thread.impl;
+//
+//import HslCommunication.Core.Types.OperateResult;
+//import HslCommunication.Core.Types.OperateResultExOne;
+//import HslCommunication.Profinet.Siemens.SiemensPLCS;
+//import HslCommunication.Profinet.Siemens.SiemensS7Net;
+//import com.alibaba.fastjson.JSON;
+//import com.baomidou.mybatisplus.mapper.EntityWrapper;
+//import com.core.common.DateUtils;
+//import com.core.common.SpringUtils;
+//import com.zy.asrs.entity.BasLift;
+//import com.zy.asrs.entity.DeviceDataLog;
+//import com.zy.asrs.service.BasLiftService;
+//import com.zy.asrs.service.DeviceDataLogService;
+//import com.zy.asrs.utils.Utils;
+//import com.zy.common.ExecuteSupport;
+//import com.zy.common.utils.RedisUtil;
+//import com.zy.core.News;
+//import com.zy.core.action.ForkLiftAction;
+//import com.zy.core.cache.OutputQueue;
+//import com.zy.core.enums.ForkLiftIoModeType;
+//import com.zy.core.enums.ForkLiftProtocolStatusType;
+//import com.zy.core.enums.ForkLiftTaskModeType;
+//import com.zy.core.enums.RedisKeyType;
+//import com.zy.core.model.CommandResponse;
+//import com.zy.core.model.ForkLiftSlave;
+//import com.zy.core.model.command.ForkLiftCommand;
+//import com.zy.core.model.protocol.ForkLiftProtocol;
+//import com.zy.core.model.protocol.ForkLiftStaProtocol;
+//import com.zy.core.thread.ForkLiftThread;
+//import lombok.Data;
+//import lombok.extern.slf4j.Slf4j;
+//
+//import java.text.MessageFormat;
+//import java.util.*;
+//
+//@Slf4j
+//@SuppressWarnings("all")
+//public class ZyForkLiftThread2 implements ForkLiftThread {
+//
+// private ForkLiftSlave slave;
+// private ForkLiftProtocol forkLiftProtocol;
+// private RedisUtil redisUtil;
+// private SiemensS7Net siemensS7Net;
+// private List<ForkLiftStaProtocol> forkLiftStaProtocols = new ArrayList<>();
+//
+// public ZyForkLiftThread2(ForkLiftSlave slave, RedisUtil redisUtil) {
+// this.slave = slave;
+// this.redisUtil = redisUtil;
+// //鍒濆鍖栫珯鐐�
+// for (ForkLiftSlave.Sta sta : this.slave.getSta()) {
+// ForkLiftStaProtocol forkLiftStaProtocol = new ForkLiftStaProtocol();
+// forkLiftStaProtocol.setStaNo(sta.getStaNo());//绔欑偣鍙�
+// forkLiftStaProtocol.setLev(sta.getLev());//绔欑偣妤煎眰
+// String locNo = Utils.getLocNo(this.slave.getStaRow(), this.slave.getStaBay(), sta.getLev());
+// forkLiftStaProtocol.setLocNo(locNo);//绔欑偣搴撲綅鍙�
+// forkLiftStaProtocol.setLiftNo(sta.getLiftNo());//鎻愬崌鏈哄彿
+// forkLiftStaProtocols.add(forkLiftStaProtocol);
+// }
+// }
+//
+// @Override
+// public boolean connect() {
+// boolean result = false;
+// siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
+// siemensS7Net.setRack(slave.getRack().byteValue());
+// siemensS7Net.setSlot(slave.getSlot().byteValue());
+// OperateResult connect = siemensS7Net.ConnectServer();
+// if(connect.IsSuccess){
+// result = true;
+// OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+// News.info("璐у弶鎻愬崌鏈鸿繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+// } else {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+// News.error("璐у弶鎻愬崌鏈鸿繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+// }
+// // siemensS7Net.ConnectClose();
+// return result;
+// }
+//
+// @Override
+// public void close() {
+//
+// }
+//
+// @Override
+// public void run() {
+// News.info("{}鍙疯揣鍙夋彁鍗囨満绾跨▼鍚姩", slave.getId());
+// this.connect();
+// while (true) {
+// try {
+// read();
+// Thread.sleep(200);
+// execute();
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+// }
+//
+// private void execute() {
+// ForkLiftAction forkLiftAction = SpringUtils.getBean(ForkLiftAction.class);
+// if (forkLiftAction == null) {
+// return;
+// }
+//
+// Object object = redisUtil.get(RedisKeyType.FORK_LIFT_FLAG.key + slave.getId());
+// if (object == null) {
+// return;
+// }
+//
+// Integer taskNo = Integer.valueOf(String.valueOf(object));
+// if (taskNo != 0) {
+// //瀛樺湪浠诲姟闇�瑕佹墽琛�
+// boolean result = forkLiftAction.executeWork(slave.getId(), taskNo);
+// }
+// }
+//
+// private void read() {
+// try {
+// readStatus();
+//
+// //鎻愬崌鏈哄浜庤繍琛岀姸鎬侊紝灏嗘爣璁扮疆涓簍rue
+// if (forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PICK_UP)
+// || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.PUT_DOWN)
+// || forkLiftProtocol.getProtocolStatusType().equals(ForkLiftProtocolStatusType.WAITING)) {
+// forkLiftProtocol.setPakMk(true);
+// }
+// } catch (Exception e) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栨彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// }
+// }
+//
+// private void readStatus() {
+// try {
+// //鑾峰彇鎻愬崌鏈烘暟鎹�
+// OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB101.0", (short) 16);
+// if (result1.IsSuccess) {
+// if (null == forkLiftProtocol) {
+// forkLiftProtocol = new ForkLiftProtocol();
+// forkLiftProtocol.setLiftNo(slave.getId());
+// forkLiftProtocol.setProtocolStatus(ForkLiftProtocolStatusType.NONE);
+//
+// InnerForkLiftExtend innerForkLiftExtend = new InnerForkLiftExtend();
+// }
+//
+// //----------璇诲彇鎻愬崌鏈虹姸鎬�-----------
+// //妯″紡
+// forkLiftProtocol.setModel((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 0));
+// //PLC浠诲姟鍙�
+// forkLiftProtocol.setWrkNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 2));
+// //浠诲姟鐘舵��
+// forkLiftProtocol.setProtocolStatus((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 4));
+// //浠诲姟妯″紡
+// forkLiftProtocol.setTaskMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
+// //鍙栬揣鏁版嵁
+// forkLiftProtocol.setPick((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 8));
+// //鏀捐揣鏁版嵁
+// forkLiftProtocol.setPut((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 10));
+// //鍑哄叆搴撴ā寮�
+// forkLiftProtocol.setIOMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 12));
+// //鏁呴殰鐮�
+// forkLiftProtocol.setErrorCode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 14));
+//
+// //************琛ュ厖鎵╁睍瀛楁*************
+// InnerForkLiftExtend forkLiftExtend = (InnerForkLiftExtend) forkLiftProtocol.getExtend();
+// forkLiftProtocol.setExtend(forkLiftExtend);
+//
+// }else {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆憑1}璇诲彇璐у弶鎻愬崌鏈虹姸鎬佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
+// }
+//
+// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB102.0", (short) 8);
+// if (result2.IsSuccess) {
+// for (int i = 0; i < this.slave.getSta().size(); i++) {
+// ForkLiftSlave.Sta sta = this.slave.getSta().get(i);
+// if (forkLiftStaProtocols.isEmpty()) {
+// continue;
+// }
+//
+// ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i);
+// boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result2.Content, i * 2, 2);
+// forkLiftStaProtocol.setHasTray(status1[0]);
+// forkLiftStaProtocol.setHasCar(status1[1]);
+// }
+// }
+//
+// if (System.currentTimeMillis() - forkLiftProtocol.getDeviceDataLog() > 1000 * 5) {
+// //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
+// //淇濆瓨鏁版嵁璁板綍
+// DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
+// DeviceDataLog deviceDataLog = new DeviceDataLog();
+// deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result1.Content));
+// deviceDataLog.setWcsData(JSON.toJSONString(forkLiftProtocol));
+// deviceDataLog.setType("forkLift");
+// deviceDataLog.setDeviceNo(forkLiftProtocol.getLiftNo());
+// deviceDataLog.setCreateTime(new Date());
+// deviceDataLogService.insert(deviceDataLog);
+//
+// //鏇存柊閲囬泦鏃堕棿
+// forkLiftProtocol.setDeviceDataLog(System.currentTimeMillis());
+// }
+//
+// //灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
+// BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
+// BasLift basLift = basLiftService.selectOne(new EntityWrapper<BasLift>()
+// .eq("lift_no", slave.getId()));
+// if (basLift == null) {
+// basLift = new BasLift();
+// //鎻愬崌鏈哄彿
+// basLift.setLiftNo(forkLiftProtocol.getLiftNo());
+// basLift.setStatus(1);
+// basLiftService.insert(basLift);
+// }
+// //浠诲姟鍙�
+// basLift.setWrkNo(forkLiftProtocol.getTaskNo());
+// //淇敼鏃堕棿
+// basLift.setUpdateTime(new Date());
+// //璁惧鐘舵��
+// basLift.setDeviceStatus(JSON.toJSONString(forkLiftProtocol));
+// if (basLiftService.updateById(basLift)) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), forkLiftProtocol.getLiftNo()));
+// }
+//
+// } catch (Exception e) {
+// OutputQueue.FORKLIFT.offer(MessageFormat.format("銆恵0}銆戣鍙栬揣鍙夋彁鍗囨満鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// }
+// }
+//
+// @Override
+// public ForkLiftProtocol getStatus(boolean clone) {
+// if (this.forkLiftProtocol == null) {
+// return null;
+// }
+// return clone ? this.forkLiftProtocol.clone() : this.forkLiftProtocol;
+// }
+//
+// @Override
+// public List<ForkLiftStaProtocol> getForkLiftStaProtocols() {
+// return this.forkLiftStaProtocols;
+// }
+//
+// @Override
+// public ForkLiftProtocol getStatus() {
+// return getStatus(true);
+// }
+//
+// @Override
+// public CommandResponse pickAndPut(ForkLiftCommand command) {
+// CommandResponse response = new CommandResponse(false);
+//
+// short[] array = new short[4];
+// array[0] = command.getTaskNo();//浠诲姟鍙�
+// array[1] = command.getMode();//浠诲姟妯″紡
+// array[2] = command.getPick();//鍙栬揣鏁版嵁
+// array[3] = command.getPut();//鏀捐揣鏁版嵁
+// OperateResult result = siemensS7Net.Write("DB103.0", array);
+// if (result.IsSuccess) {
+// OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
+// if (result2.IsSuccess) {
+// response.setResult(true);
+// }
+// }
+// return response;
+// }
+//
+// @Override
+// public CommandResponse shuttleSwitch(ForkLiftCommand command) {
+// CommandResponse response = new CommandResponse(false);
+//
+// short[] array = new short[4];
+// array[0] = command.getTaskNo();//浠诲姟鍙�
+// array[1] = command.getMode();//浠诲姟妯″紡
+// array[2] = command.getPick();//鍙栬揣鏁版嵁
+// array[3] = command.getPut();//鏀捐揣鏁版嵁
+// OperateResult result = siemensS7Net.Write("DB103.0", array);
+// if (result.IsSuccess) {
+// OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
+// if (result2.IsSuccess) {
+// response.setResult(true);
+// }
+// }
+// return response;
+// }
+//
+// @Override
+// public CommandResponse move(ForkLiftCommand command) {
+// CommandResponse response = new CommandResponse(false);
+//
+// short[] array = new short[4];
+// array[0] = command.getTaskNo();//浠诲姟鍙�
+// array[1] = command.getMode();//浠诲姟妯″紡
+// array[2] = command.getPick();//鍙栬揣鏁版嵁
+// array[3] = command.getPut();//鏀捐揣鏁版嵁
+// OperateResult result = siemensS7Net.Write("DB103.0", array);
+// if (result.IsSuccess) {
+// OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
+// if (result2.IsSuccess) {
+// response.setResult(true);
+// }
+// }
+// return response;
+// }
+//
+// @Override
+// public CommandResponse reset() {
+// CommandResponse response = new CommandResponse(false);
+// OperateResult result = siemensS7Net.Write("DB103.10", (short) 1);
+// if (result.IsSuccess) {
+// News.info("璐у弶鎻愬崌鏈虹‘璁ゅ懡浠や笅鍙戞垚鍔燂紝鎻愬崌鏈哄彿={}", forkLiftProtocol.getLiftNo());
+// response.setResult(true);
+// }
+// return response;
+// }
+//
+// @Override
+// public boolean isIdle() {
+// if (this.forkLiftProtocol.getTaskNo() == null
+// || this.forkLiftProtocol.getProtocolStatus() == null
+// || this.forkLiftProtocol.getModel() == null
+// || this.forkLiftProtocol.getErrorCode() == null
+// ) {
+// return false;
+// }
+//
+// boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
+// && this.forkLiftProtocol.getWrkNo() == 0
+// && this.forkLiftProtocol.getTaskNo() == 0
+// && this.forkLiftProtocol.getModel() == 2
+// && this.forkLiftProtocol.getErrorCode() == 0
+// ;
+// return res;
+// }
+//
+// @Override
+// public boolean isDeviceIdle() {
+// return isDeviceIdle(null);
+// }
+//
+// @Override
+// public boolean isDeviceIdle(ExecuteSupport support) {
+// if (null != support) {
+// Boolean judgement = support.judgement();
+// if (judgement != null && !judgement) {
+// return true;
+// }
+// }
+//
+// if (this.forkLiftProtocol.getTaskNo() == null
+// || this.forkLiftProtocol.getProtocolStatus() == null
+// || this.forkLiftProtocol.getModel() == null
+// || this.forkLiftProtocol.getErrorCode() == null
+// ) {
+// return false;
+// }
+//
+// boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id
+// && this.forkLiftProtocol.getWrkNo() == 0
+// && this.forkLiftProtocol.getModel() == 2
+// && this.forkLiftProtocol.getErrorCode() == 0
+// ;
+// return res;
+// }
+//
+// @Override
+// public boolean setProtocolStatus(ForkLiftProtocolStatusType status) {
+// return false;
+// }
+//
+// @Override
+// public boolean setSyncTaskNo(Integer taskNo) {
+// this.forkLiftProtocol.setSyncTaskNo(taskNo);
+// return true;
+// }
+//
+// @Override
+// public boolean switchIOMode(ForkLiftIoModeType type) {
+// OperateResult result = siemensS7Net.Write("DB103.12", type.id.shortValue());
+// if (result.IsSuccess) {
+// return true;
+// }
+// return false;
+// }
+//
+// @Override
+// public int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type) {
+// return taskNo;
+// }
+//
+// @Override
+// public List<ForkLiftCommand> getPickAndPutCommand(Integer taskNo, Integer pick, Integer put) {
+// Integer realPick = pick % 1000;
+// Integer realPut = put % 1000;
+//
+// List<ForkLiftCommand> commands = new ArrayList<>();
+// ForkLiftCommand command = new ForkLiftCommand();
+// command.setLiftNo(slave.getId());
+// command.setTaskNo(taskNo.shortValue());
+// command.setMode(ForkLiftTaskModeType.PICK_PUT.id.shortValue());
+// command.setPick(realPick.shortValue());
+// command.setPut(realPut.shortValue());
+// command.setConfirm((short) 1);
+//
+// commands.add(command);
+// return commands;
+// }
+//
+// @Override
+// public List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put) {
+// Integer realPick = pick % 1000;
+// Integer realPut = put % 1000;
+//
+// List<ForkLiftCommand> commands = new ArrayList<>();
+// ForkLiftCommand command = new ForkLiftCommand();
+// command.setLiftNo(slave.getId());
+// command.setTaskNo(taskNo.shortValue());
+// command.setMode(ForkLiftTaskModeType.SHUTTLE_SWITCH.id.shortValue());
+// command.setPick(realPick.shortValue());
+// command.setPut(realPut.shortValue());
+// command.setConfirm((short) 1);
+//
+// commands.add(command);
+// return commands;
+// }
+//
+// @Override
+// public List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put) {
+// Integer realPick = pick % 1000;
+// Integer realPut = put % 1000;
+//
+// List<ForkLiftCommand> commands = new ArrayList<>();
+// ForkLiftCommand command = new ForkLiftCommand();
+// command.setLiftNo(slave.getId());
+// command.setTaskNo(taskNo.shortValue());
+// command.setMode(ForkLiftTaskModeType.MOVE.id.shortValue());
+// command.setPick(realPick.shortValue());
+// command.setPut(realPut.shortValue());
+// command.setConfirm((short) 1);
+//
+// commands.add(command);
+// return commands;
+// }
+//
+// /**
+// * 鎵╁睍瀛楁
+// */
+// @Data
+// private class InnerForkLiftExtend {
+//
+// }
+//}
diff --git a/src/main/java/com/zy/core/utils/DeviceMsgUtils.java b/src/main/java/com/zy/core/utils/DeviceMsgUtils.java
index c6c26fc..7a4f8b3 100644
--- a/src/main/java/com/zy/core/utils/DeviceMsgUtils.java
+++ b/src/main/java/com/zy/core/utils/DeviceMsgUtils.java
@@ -84,6 +84,7 @@
public String sendDeviceCommand(SlaveType deviceType, Integer deviceId, DeviceCommandMsgModel command) {
String key = parseDeviceCommandMsgKey(deviceType, deviceId) + System.currentTimeMillis();
+ command.setResultKey(key);
redisUtil.set(key, command, 60 * 60 * 24);
return key;
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4b685fd..c20a4eb 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -17,7 +17,7 @@
mvc:
static-path-pattern: /**
redis:
- host: 127.0.0.1
+ host: 192.168.4.77
port: 6379
database: 0
# password: 123456
@@ -46,16 +46,16 @@
# 璇诲彇鏁版嵁鍚庤嚜鍔ㄥ垹闄�
destroyAfterReading: true
-# 涓嬩綅鏈洪厤缃�
-wcs-slave:
- # 鍥涘悜绌挎杞�1
- shuttle[0]:
- id: 1
- ip: 10.10.20.11
- port: 8888
- rack: 0
- slot: 0
- threadImpl: NyShuttleThread
+## 涓嬩綅鏈洪厤缃�
+#wcs-slave:
+# # 鍥涘悜绌挎杞�1
+# shuttle[0]:
+# id: 1
+# ip: 10.10.20.11
+# port: 8888
+# rack: 0
+# slot: 0
+# threadImpl: NyShuttleThread
# # 鍥涘悜绌挎杞�2
# shuttle[1]:
# id: 2
diff --git a/src/main/resources/mapper/BasLiftMapper.xml b/src/main/resources/mapper/BasLiftMapper.xml
index 484f672..3975d12 100644
--- a/src/main/resources/mapper/BasLiftMapper.xml
+++ b/src/main/resources/mapper/BasLiftMapper.xml
@@ -11,21 +11,7 @@
<result column="memo" property="memo" />
<result column="pak_mk" property="pakMk" />
<result column="point" property="point" />
- <result column="model" property="model" />
- <result column="busy" property="busy" />
- <result column="front_overrun" property="frontOverrun" />
- <result column="back_overrun" property="backOverrun" />
- <result column="left_overrun" property="leftOverrun" />
- <result column="right_overrun" property="rightOverrun" />
- <result column="over_height" property="overHeight" />
- <result column="over_weight" property="overWeight" />
- <result column="has_tray" property="hasTray" />
- <result column="has_car" property="hasCar" />
- <result column="device_error" property="deviceError" />
- <result column="task_address" property="taskAddress" />
- <result column="dist_address" property="distAddress" />
- <result column="complete_task_no" property="completeTaskNo" />
- <result column="lev" property="lev" />
+ <result column="station_list" property="stationList" />
</resultMap>
diff --git a/src/main/webapp/static/js/basLift/basLift.js b/src/main/webapp/static/js/basLift/basLift.js
index cdef2d8..80ae9a6 100644
--- a/src/main/webapp/static/js/basLift/basLift.js
+++ b/src/main/webapp/static/js/basLift/basLift.js
@@ -25,31 +25,12 @@
,{field: 'liftNo', align: 'center',title: '鎻愬崌鏈哄彿'}
,{field: 'status', align: 'center',title: '褰撳墠浠诲姟鐘舵��'}
,{field: 'wrkNo', align: 'center',title: '浠诲姟鍙�'}
+ ,{field: 'point', align: 'center',title: '鎻愬崌鏈哄潗鏍�'}
+ ,{field: 'stationList', align: 'center',title: '绔欑偣鍒楄〃'}
// ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
// ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
,{field: 'memo', align: 'center',title: '澶囨敞'}
- ,{field: 'pakMk$', align: 'center',title: '浣滀笟鏍囪'}
- ,{field: 'liftLock$', align: 'center',title: '鎻愬崌鏈洪攣瀹�'}
- ,{field: 'positionArrivalFeedback', align: 'center',title: '浣嶇疆鍒拌揪鍙嶉'}
- ,{field: 'ready$', align: 'center',title: '鍑嗗灏辩华'}
- ,{field: 'running', align: 'center',title: '杩愯涓�'}
- ,{field: 'mode$', align: 'center',title: '鑱旀満/鍗曟満'}
- // ,{field: 'lineFrontHasStock', align: 'center',title: '杈撻�佺嚎鍓嶇鍏夌數鏈夎揣'}
- // ,{field: 'forwardRotationFeedback', align: 'center',title: '杈撻�佺嚎姝h浆鍙嶉'}
- // ,{field: 'reverseFeedback', align: 'center',title: '杈撻�佺嚎鍙嶈浆鍙嶉'}
- // ,{field: 'motorOverload', align: 'center',title: '杈撻�佺嚎鐢垫満杩囪浇'}
- // ,{field: 'lineEndHasStock', align: 'center',title: '杈撻�佺嚎鏈鍏夌數鏈夎揣'}
- // ,{field: 'inConveyLineCardTrayAlarm', align: 'center',title: '杩涜緭閫佺嚎鍗℃墭鐩樻姤璀�'}
- // ,{field: 'outConveyLineCardTrayAlarm', align: 'center',title: '鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀�'}
- // ,{field: 'platPositionDeviationAlarm', align: 'center',title: '骞冲彴浣嶇疆鍋忓樊鎶ヨ'}
- // ,{field: 'platTorqueDeviationAlarm', align: 'center',title: '骞冲彴鎵煩鍋忓樊鎶ヨ'}
- // ,{field: 'platShuttleCheck', align: 'center',title: '骞冲彴鍥涘悜杞︽娴�'}
- ,{field: 'notReady$', align: 'center',title: '鏈氨缁姸鎬�'}
- // ,{field: 'servoError1', align: 'center',title: '浼烘湇1閿欒'}
- // ,{field: 'servoError2', align: 'center',title: '浼烘湇2閿欒'}
- // ,{field: 'servoError3', align: 'center',title: '浼烘湇3閿欒'}
- // ,{field: 'servoError4', align: 'center',title: '浼烘湇4閿欒'}
- // ,{field: 'liftActualSpeed', align: 'center',title: '鎻愬崌鏈哄疄闄呴�熷害鍙嶉'}
+ // ,{field: 'pakMk', align: 'center',title: '浣滀笟鏍囪'}
,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
]],
diff --git a/src/main/webapp/views/admin/basLift/basLift.html b/src/main/webapp/views/admin/basLift/basLift.html
index 2d2dd95..8028c2f 100644
--- a/src/main/webapp/views/admin/basLift/basLift.html
+++ b/src/main/webapp/views/admin/basLift/basLift.html
@@ -79,174 +79,23 @@
</div>
</div>
<div class="layui-form-item">
- <label class="layui-form-label">褰撳墠浠诲姟鐘舵��: </label>
+ <label class="layui-form-label">鎻愬崌鏈哄潗鏍�: </label>
<div class="layui-input-block">
- <input class="layui-input" name="status" placeholder="璇疯緭鍏ュ綋鍓嶄换鍔$姸鎬�">
+ <input class="layui-input" name="point" placeholder="璇疯緭鍏ユ彁鍗囨満鍧愭爣">
</div>
</div>
<div class="layui-form-item">
- <label class="layui-form-label">浠诲姟鍙�: </label>
+ <label class="layui-form-label">绔欑偣鍒楄〃: </label>
<div class="layui-input-block">
- <input class="layui-input" name="wrkNo" placeholder="璇疯緭鍏ヤ换鍔″彿">
+ <input class="layui-input" name="stationList" placeholder="璇疯緭鍏ョ珯鐐瑰垪琛�">
</div>
</div>
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">淇敼鏃堕棿: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">淇敼浜哄憳: </label>-->
-<!-- <div class="layui-input-block cool-auto-complete">-->
-<!-- <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">-->
-<!-- <input id="updateBy$" name="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>-->
-<!-- <div class="cool-auto-complete-window">-->
-<!-- <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
-<!-- <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
-<!-- </select>-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">澶囨敞: </label>
<div class="layui-input-block">
<input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
</div>
</div>
- <div class="layui-form-item">
- <label class="layui-form-label">浣滀笟鏍囪: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="pakMk" placeholder="璇疯緭鍏ヤ綔涓氭爣璁�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">鎻愬崌鏈洪攣瀹�: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="liftLock" placeholder="璇疯緭鍏ユ彁鍗囨満閿佸畾">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">浣嶇疆鍒拌揪鍙嶉: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="positionArrivalFeedback" placeholder="璇疯緭鍏ヤ綅缃埌杈惧弽棣�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">鍑嗗灏辩华: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="ready" placeholder="璇疯緭鍏ュ噯澶囧氨缁�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">杩愯涓�: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="running" placeholder="璇疯緭鍏ヨ繍琛屼腑">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">鑱旀満/鍗曟満: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="mode" placeholder="璇疯緭鍏ヨ仈鏈�/鍗曟満">
- </div>
- </div>
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">杈撻�佺嚎鍓嶇鍏夌數鏈夎揣: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="lineFrontHasStock" placeholder="璇疯緭鍏ヨ緭閫佺嚎鍓嶇鍏夌數鏈夎揣">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">杈撻�佺嚎姝h浆鍙嶉: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="forwardRotationFeedback" placeholder="璇疯緭鍏ヨ緭閫佺嚎姝h浆鍙嶉">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">杈撻�佺嚎鍙嶈浆鍙嶉: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="reverseFeedback" placeholder="璇疯緭鍏ヨ緭閫佺嚎鍙嶈浆鍙嶉">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">杈撻�佺嚎鐢垫満杩囪浇: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="motorOverload" placeholder="璇疯緭鍏ヨ緭閫佺嚎鐢垫満杩囪浇">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">杈撻�佺嚎鏈鍏夌數鏈夎揣: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="lineEndHasStock" placeholder="璇疯緭鍏ヨ緭閫佺嚎鏈鍏夌數鏈夎揣">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">杩涜緭閫佺嚎鍗℃墭鐩樻姤璀�: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="inConveyLineCardTrayAlarm" placeholder="璇疯緭鍏ヨ繘杈撻�佺嚎鍗℃墭鐩樻姤璀�">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀�: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="outConveyLineCardTrayAlarm" placeholder="璇疯緭鍏ュ嚭杈撻�佺嚎鍗℃墭鐩樻姤璀�">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">骞冲彴浣嶇疆鍋忓樊鎶ヨ: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="platPositionDeviationAlarm" placeholder="璇疯緭鍏ュ钩鍙颁綅缃亸宸姤璀�">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">骞冲彴鎵煩鍋忓樊鎶ヨ: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="platTorqueDeviationAlarm" placeholder="璇疯緭鍏ュ钩鍙版壄鐭╁亸宸姤璀�">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">骞冲彴鍥涘悜杞︽娴�: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="platShuttleCheck" placeholder="璇疯緭鍏ュ钩鍙板洓鍚戣溅妫�娴�">-->
-<!-- </div>-->
-<!-- </div>-->
- <div class="layui-form-item">
- <label class="layui-form-label">鏈氨缁姸鎬�: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="notReady" placeholder="璇疯緭鍏ユ湭灏辩华鐘舵��">
- </div>
- </div>
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">浼烘湇1閿欒: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="servoError1" placeholder="璇疯緭鍏ヤ己鏈�1閿欒">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">浼烘湇2閿欒: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="servoError2" placeholder="璇疯緭鍏ヤ己鏈�2閿欒">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">浼烘湇3閿欒: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="servoError3" placeholder="璇疯緭鍏ヤ己鏈�3閿欒">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">浼烘湇4閿欒: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="servoError4" placeholder="璇疯緭鍏ヤ己鏈�4閿欒">-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="layui-form-item">-->
-<!-- <label class="layui-form-label">鎻愬崌鏈哄疄闄呴�熷害鍙嶉: </label>-->
-<!-- <div class="layui-input-block">-->
-<!-- <input class="layui-input" name="liftActualSpeed" placeholder="璇疯緭鍏ユ彁鍗囨満瀹為檯閫熷害鍙嶉">-->
-<!-- </div>-->
-<!-- </div>-->
-
</div>
</div>
<hr class="layui-bg-gray">
--
Gitblit v1.9.1