package com.zy.asrs.wcs.rcs.thread.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.zy.asrs.common.utils.HttpHandler;
|
import com.zy.asrs.framework.common.DateUtils;
|
import com.zy.asrs.framework.common.SpringUtils;
|
import com.zy.asrs.framework.exception.CoolException;
|
import com.zy.asrs.wcs.common.ExecuteSupport;
|
import com.zy.asrs.wcs.core.entity.BasLift;
|
import com.zy.asrs.wcs.core.model.command.LiftCommand;
|
import com.zy.asrs.wcs.core.model.enums.LiftCommandModeType;
|
import com.zy.asrs.wcs.core.model.enums.MotionCtgType;
|
import com.zy.asrs.wcs.core.service.BasLiftService;
|
import com.zy.asrs.wcs.rcs.News;
|
import com.zy.asrs.wcs.rcs.cache.OutputQueue;
|
import com.zy.asrs.wcs.rcs.entity.DeviceDataLog;
|
import com.zy.asrs.wcs.rcs.model.enums.LiftProtocolStatusType;
|
import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol;
|
import com.zy.asrs.wcs.rcs.service.DeviceDataLogService;
|
import com.zy.asrs.wcs.rcs.thread.LiftThread;
|
import com.zy.asrs.wcs.core.utils.RedisUtil;
|
import com.zy.asrs.wcs.rcs.entity.Device;
|
import lombok.Data;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.text.MessageFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
@Slf4j
|
@SuppressWarnings("all")
|
public class SurayLiftThread implements LiftThread {
|
|
private static String API_URL = "http://127.0.0.1:8082";
|
|
private Device device;
|
private RedisUtil redisUtil;
|
private LiftProtocol liftProtocol;
|
|
public SurayLiftThread(Device device,RedisUtil redisUtil) {
|
this.device = device;
|
this.redisUtil = redisUtil;
|
API_URL = "http://" + device.getIp() + ":" + device.getPort();
|
}
|
|
@Override
|
public void run() {
|
News.info("{}号提升机线程启动", device.getDeviceNo());
|
this.connect();
|
while (true) {
|
try {
|
read();
|
Thread.sleep(500);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
private void read() {
|
try {
|
readStatus();
|
|
//提升机处于运行状态,将标记置为true
|
if (liftProtocol.getRun()) {
|
liftProtocol.setPakMk(true);
|
}
|
} catch (Exception e) {
|
OutputQueue.LIFT.offer(MessageFormat.format("【{0}】读取提升机状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort()));
|
}
|
}
|
|
private void readStatus() {
|
try {
|
//获取提升机数据
|
JSONObject data = requestDeviceStatus();
|
if (data != null) {
|
if (null == liftProtocol) {
|
liftProtocol = new LiftProtocol();
|
liftProtocol.setLiftNo(Integer.valueOf(device.getDeviceNo()));
|
liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
|
liftProtocol.setDevice(device);
|
|
InnerLiftExtend innerLiftExtend = new InnerLiftExtend();
|
innerLiftExtend.setLock(false);//默认未锁定
|
liftProtocol.setExtend(innerLiftExtend);
|
}
|
|
//----------读取提升机状态-----------
|
//模式
|
liftProtocol.setModel(true);
|
//运行状态
|
liftProtocol.setRun(data.getInteger("runningState") == 1);
|
//就绪状态
|
liftProtocol.setReady(data.getInteger("readyState") == 1);
|
//有托盘
|
liftProtocol.setHasTray(data.getString("haveCargo").equals("Y"));
|
//有小车
|
liftProtocol.setHasCar(data.getInteger("haveCar") == 1);
|
//故障码
|
liftProtocol.setErrorCode("0");
|
//层
|
liftProtocol.setLev(data.getInteger("curFloor"));
|
|
|
//************补充扩展字段*************
|
InnerLiftExtend liftExtend = (InnerLiftExtend) liftProtocol.getExtend();
|
liftExtend.setLock(data.getInteger("lockStatus") == 1 ? true : false);
|
liftProtocol.setExtend(liftExtend);
|
|
// //前超限
|
// liftProtocol.setFrontOverrun(status1[4]);
|
// //后超限
|
// liftProtocol.setBackOverrun(status1[5]);
|
// //左超限
|
// liftProtocol.setLeftOverrun(status1[6]);
|
// //右超限
|
// liftProtocol.setRightOverrun(status1[7]);
|
// //超高
|
// liftProtocol.setOverHeight(status2[0]);
|
// //超重
|
// liftProtocol.setOverWeight(status2[1]);
|
// //有托盘
|
// liftProtocol.setHasTray(status2[5]);
|
// //有小车
|
// liftProtocol.setHasCar(status2[6]);
|
// //设备故障
|
// liftProtocol.setDeviceError(status2[7]);
|
// //任务号
|
// liftProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, 2));
|
// //目的地址
|
// liftProtocol.setDistAddress(siemensS7Net.getByteTransform().TransInt16(result1.Content, 4));
|
// //已完成任务号
|
// liftProtocol.setCompleteTaskNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
|
// liftProtocol.setLev(lev);
|
|
if (System.currentTimeMillis() - liftProtocol.getDeviceDataLog() > 1000 * 5) {
|
//采集时间超过5s,保存一次数据记录
|
//保存数据记录
|
DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
|
DeviceDataLog deviceDataLog = new DeviceDataLog();
|
deviceDataLog.setOriginData(JSON.toJSONString(data));
|
deviceDataLog.setWcsData(JSON.toJSONString(liftProtocol));
|
deviceDataLog.setType("lift");
|
deviceDataLog.setDeviceNo(String.valueOf(liftProtocol.getLiftNo()));
|
deviceDataLog.setCreateTime(new Date());
|
deviceDataLog.setHostId(device.getHostId());
|
deviceDataLogService.save(deviceDataLog);
|
|
//更新采集时间
|
liftProtocol.setDeviceDataLog(System.currentTimeMillis());
|
}
|
|
//将提升机状态保存至数据库
|
BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
|
BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>()
|
.eq(BasLift::getLiftNo, device.getDeviceNo())
|
.eq(BasLift::getHostId, device.getHostId()));
|
if (basLift == null) {
|
basLift = new BasLift();
|
//提升机号
|
basLift.setLiftNo(Integer.valueOf(device.getDeviceNo()));
|
basLift.setStatus(1);
|
basLift.setDeleted(0);
|
basLift.setHostId(device.getHostId());
|
basLift.setDeviceId(device.getId());
|
basLiftService.save(basLift);
|
}
|
//任务号
|
basLift.setTaskNo(liftProtocol.getTaskNo().intValue());
|
//修改时间
|
basLift.setUpdateTime(new Date());
|
//设备状态
|
basLift.setProtocol(JSON.toJSONString(liftProtocol));
|
if (basLiftService.updateById(basLift)) {
|
OutputQueue.LIFT.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), device.getDeviceNo()));
|
}
|
|
}else {
|
OutputQueue.LIFT.offer(MessageFormat.format("【{0}】{1}读取提升机状态信息失败", DateUtils.convert(new Date()), device.getId()));
|
throw new CoolException(MessageFormat.format( "读取提升机状态信息失败 ===>> [id:{0}] [ip:{1}] [port:{2}]", device.getId(), device.getIp(), device.getPort()));
|
}
|
Thread.sleep(200);
|
} catch (Exception e) {
|
OutputQueue.LIFT.offer(MessageFormat.format("【{0}】读取提升机状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort()));
|
}
|
}
|
|
@Override
|
public boolean connect() {
|
return false;
|
}
|
|
@Override
|
public void close() {
|
|
}
|
|
@Override
|
public LiftProtocol getStatus() {
|
return this.liftProtocol.clone();
|
}
|
|
@Override
|
public Device getDevice() {
|
return this.device;
|
}
|
|
@Override
|
public synchronized boolean move(LiftCommand command) {
|
try {
|
String loginToken = requestLoginToken();
|
if (loginToken == null) {
|
return false;
|
}
|
|
HashMap<String, Object> headers = new HashMap<>();
|
headers.put("Authorization", "Bearer " + loginToken);
|
|
String response = new HttpHandler.Builder()
|
.setUri(API_URL)
|
.setPath("/RDS/lifterTask")
|
.setHeaders(headers)
|
.setJson(command.getBody())
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
Integer code = jsonObject.getInteger("code");
|
if (code.equals(200)) {
|
return true;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return false;
|
}
|
|
@Override
|
public synchronized boolean palletInOut(LiftCommand command) {
|
try {
|
String loginToken = requestLoginToken();
|
if (loginToken == null) {
|
return false;
|
}
|
|
HashMap<String, Object> headers = new HashMap<>();
|
headers.put("Authorization", "Bearer " + loginToken);
|
|
String response = new HttpHandler.Builder()
|
.setUri(API_URL)
|
.setPath("/RDS/lifterTask")
|
.setHeaders(headers)
|
.setJson(command.getBody())
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
Integer code = jsonObject.getInteger("code");
|
if (code.equals(200)) {
|
return true;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return false;
|
}
|
|
@Override
|
public synchronized boolean lock(LiftCommand command) {
|
try {
|
String loginToken = requestLoginToken();
|
if (loginToken == null) {
|
return false;
|
}
|
|
HashMap<String, Object> headers = new HashMap<>();
|
headers.put("Authorization", "Bearer " + loginToken);
|
|
String response = new HttpHandler.Builder()
|
.setUri(API_URL)
|
.setPath("/RDS/lifterOperation")
|
.setHeaders(headers)
|
.setJson(command.getBody())
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
Integer code = jsonObject.getInteger("code");
|
if (code.equals(200)) {
|
return true;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return false;
|
}
|
|
@Override
|
public synchronized boolean unlock(LiftCommand command) {
|
try {
|
String loginToken = requestLoginToken();
|
if (loginToken == null) {
|
return false;
|
}
|
|
HashMap<String, Object> headers = new HashMap<>();
|
headers.put("Authorization", "Bearer " + loginToken);
|
|
String response = new HttpHandler.Builder()
|
.setUri(API_URL)
|
.setPath("/RDS/lifterOperation")
|
.setHeaders(headers)
|
.setJson(command.getBody())
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
Integer code = jsonObject.getInteger("code");
|
if (code.equals(200)) {
|
return true;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return false;
|
}
|
|
@Override
|
public synchronized boolean reset(LiftCommand command) {
|
try {
|
String loginToken = requestLoginToken();
|
if (loginToken == null) {
|
return false;
|
}
|
|
HashMap<String, Object> headers = new HashMap<>();
|
headers.put("Authorization", "Bearer " + loginToken);
|
|
String response = new HttpHandler.Builder()
|
.setUri(API_URL)
|
.setPath("/RDS/lifterOperation")
|
.setHeaders(headers)
|
.setJson(command.getBody())
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
Integer code = jsonObject.getInteger("code");
|
if (code.equals(200)) {
|
return true;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return false;
|
}
|
|
@Override
|
public boolean isIdle() {
|
return isIdle(null);
|
}
|
|
@Override
|
public boolean isIdle(MotionCtgType flag) {
|
if (flag == null) {
|
InnerLiftExtend extend = (InnerLiftExtend) this.liftProtocol.getExtend();//获取扩展字段
|
// 判断提升机是否自动、就绪、空闲、未锁定
|
if (this.liftProtocol.getModel()
|
&& !this.liftProtocol.getRun()
|
&& this.liftProtocol.getPakMk()
|
&& this.liftProtocol.getReady()
|
&& this.liftProtocol.getErrorCode().equals("0")
|
&& (this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.IDLE)
|
|| this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.WAITING))
|
&& !extend.getLock()
|
) {
|
return true;
|
}
|
return false;
|
}
|
|
switch (Objects.requireNonNull(MotionCtgType.get(String.valueOf(flag)))){
|
case SHUTTLE_MOVE_FROM_LIFT://穿梭车出提升机
|
case SHUTTLE_MOVE_TO_LIFT://穿梭车进提升机
|
return isIdleShuttleMoveToLift();
|
}
|
|
return false;
|
}
|
|
//穿梭车进提升机时-提升机状态判断
|
private boolean isIdleShuttleMoveToLift() {
|
InnerLiftExtend extend = (InnerLiftExtend) this.liftProtocol.getExtend();//获取扩展字段
|
// 判断提升机是否自动、就绪、空闲
|
if (this.liftProtocol.getModel()
|
&& !this.liftProtocol.getRun()
|
&& this.liftProtocol.getPakMk()
|
&& this.liftProtocol.getErrorCode().equals("0")
|
&& (this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.IDLE)
|
|| this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.WAITING))
|
) {
|
if (!extend.getLock()) {
|
//提升机未锁定,需要判断是否就绪
|
if (!this.liftProtocol.getReady()) {
|
return false;
|
}
|
}
|
return true;
|
}
|
return false;
|
}
|
|
@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.liftProtocol.getModel()
|
&& !this.liftProtocol.getRun()
|
&& this.liftProtocol.getErrorCode().equals("0")
|
) {
|
if (this.liftProtocol.getTaskNo() == 0) {
|
//无任务情况下检测是否就绪
|
if (!this.liftProtocol.getReady()) {
|
return false;
|
}
|
}
|
return true;
|
}
|
return false;
|
}
|
|
@Override
|
public boolean setProtocolStatus(LiftProtocolStatusType status) {
|
this.liftProtocol.setProtocolStatus(status);
|
return true;
|
}
|
|
@Override
|
public boolean setSyncTaskNo(Integer taskNo) {
|
this.liftProtocol.setTaskNo(taskNo);
|
return true;
|
}
|
|
@Override
|
public boolean isLock(ExecuteSupport support) {
|
InnerLiftExtend extend = (InnerLiftExtend) this.liftProtocol.getExtend();
|
return extend.getLock();
|
}
|
|
//***************设备层通讯-不同厂商设备通讯方案不一致***************
|
|
//请求登录
|
private String requestLoginToken() {
|
try {
|
HashMap<String, Object> param = new HashMap<>();
|
param.put("username", "admin");
|
param.put("password", "admin123");
|
param.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
String response = new HttpHandler.Builder()
|
.setUri(API_URL)
|
.setPath("/RDS/loginToken")
|
.setJson(JSON.toJSONString(param))
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
Integer code = jsonObject.getInteger("code");
|
if (code.equals(200)) {
|
return jsonObject.getString("token");
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
//获取设备状态
|
private JSONObject requestDeviceStatus() {
|
//模拟数据
|
// String data = "[{\"taskNo\":1244,\"curFloor\":2,\"readyState\":1,\"haveCar\":'N',\"completeTaskNo\":0,\"haveCargo\":\"Y\",\"runningstate\":0,\"floors\":[{\"floor\":1,\"location\":1,\"run\":1,\"error\":1,\"cargoState\":\"Y\"},{\"floor\":1,\"location\":2,\"run\":0,\"error\":0,\"cargoState\":\"N\"}]}]";
|
// return JSON.parseArray(data).getJSONObject(0);
|
try {
|
String loginToken = requestLoginToken();
|
if (loginToken == null) {
|
return null;
|
}
|
|
HashMap<String, Object> headers = new HashMap<>();
|
headers.put("Authorization", "Bearer " + loginToken);
|
|
HashMap<String, Object> param = new HashMap<>();
|
param.put("messageName", "deviceRgvStatus");
|
param.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
param.put("deviceNo", device.getDeviceNo());
|
String response = new HttpHandler.Builder()
|
.setUri(API_URL)
|
.setPath("/RDS/deviceLifterStatus")
|
.setHeaders(headers)
|
.setJson(JSON.toJSONString(param))
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
Integer code = jsonObject.getInteger("code");
|
if (code.equals(200)) {
|
return jsonObject.getJSONArray("data").getJSONObject(0);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
//空载移动
|
@Override
|
public List<LiftCommand> getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
|
int taskMode = 3;//空载移动
|
|
HashMap<String, Object> body = new HashMap<>();
|
body.put("messageName", "lifterTask");
|
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
|
body.put("taskId", taskNo);
|
body.put("startLayer", 0);
|
body.put("endLayer", targetLev);
|
body.put("startLocation", 0);
|
body.put("endLocation", 0);
|
body.put("model", taskMode);
|
|
LiftCommand command = new LiftCommand();
|
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
|
command.setBody(JSON.toJSONString(body));
|
command.setMode(LiftCommandModeType.MOVE.id);
|
command.setOriginLev(0);
|
command.setTargetLev(targetLev);
|
|
ArrayList<LiftCommand> list = new ArrayList<>();
|
list.add(command);
|
list.addAll(getTaskClearCommand());
|
return list;
|
}
|
|
//载车移动
|
@Override
|
public List<LiftCommand> getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
|
HashMap<String, Object> body = new HashMap<>();
|
body.put("messageName", "lifterTask");
|
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
|
body.put("taskId", taskNo);
|
body.put("startLayer", sourceLev);
|
body.put("endLayer", targetLev);
|
body.put("startLocation", 0);
|
body.put("endLocation", 0);
|
body.put("model", 2);//载车移动
|
|
LiftCommand command = new LiftCommand();
|
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
|
command.setBody(JSON.toJSONString(body));
|
command.setMode(LiftCommandModeType.MOVE.id);
|
command.setOriginLev(sourceLev);
|
command.setTargetLev(targetLev);
|
|
ArrayList<LiftCommand> list = new ArrayList<>();
|
list.add(command);
|
list.addAll(getTaskClearCommand());
|
return list;
|
}
|
|
//托盘出入
|
@Override
|
public List<LiftCommand> getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) {
|
HashMap<String, Object> body = new HashMap<>();
|
body.put("messageName", "lifterTask");
|
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
|
body.put("taskId", taskNo);
|
body.put("startLayer", sourceLev);
|
body.put("endLayer", targetLev);
|
body.put("startLocation", originSta);
|
body.put("endLocation", targetSta);
|
body.put("model", 1);//托盘出入
|
|
LiftCommand command = new LiftCommand();
|
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
|
command.setBody(JSON.toJSONString(body));
|
command.setMode(LiftCommandModeType.PALLET_INOUT.id);
|
command.setOriginLev(sourceLev);
|
command.setTargetLev(targetLev);
|
command.setOriginSta(originSta);
|
command.setTargetSta(targetSta);
|
|
ArrayList<LiftCommand> list = new ArrayList<>();
|
list.add(command);
|
list.addAll(getTaskClearCommand());
|
return list;
|
}
|
|
//锁定/解锁提升机
|
@Override
|
public List<LiftCommand> getLockCommand(Integer taskNo, Boolean lock) {
|
HashMap<String, Object> body = new HashMap<>();
|
body.put("messageName", "lifterOperation");
|
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
|
body.put("taskId", taskNo);
|
body.put("operation", lock ? 6 : 7);
|
body.put("remark", taskNo);
|
|
LiftCommand command = new LiftCommand();
|
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
|
command.setBody(JSON.toJSONString(body));
|
command.setMode(lock ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id);
|
|
ArrayList<LiftCommand> list = new ArrayList<>();
|
list.add(command);
|
return list;
|
}
|
|
//小车已到位/已驶离信号
|
@Override
|
public List<LiftCommand> getShuttleSignalCommand(Integer taskNo, Boolean signal) {
|
HashMap<String, Object> body = new HashMap<>();
|
body.put("messageName", "lifterOperation");
|
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
|
body.put("taskId", taskNo);
|
body.put("operation", signal ? 4 : 5);
|
|
LiftCommand command = new LiftCommand();
|
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
|
command.setBody(JSON.toJSONString(body));
|
command.setMode(signal ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id);
|
|
ArrayList<LiftCommand> list = new ArrayList<>();
|
list.add(command);
|
return list;
|
}
|
|
//获取提升机任务清除命令
|
private List<LiftCommand> getTaskClearCommand() {
|
HashMap<String, Object> body = new HashMap<>();
|
body.put("messageName", "lifterOperation");
|
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
|
body.put("operation", 1);
|
|
LiftCommand command = new LiftCommand();
|
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
|
command.setBody(JSON.toJSONString(body));
|
command.setMode(LiftCommandModeType.RESET.id);
|
|
ArrayList<LiftCommand> list = new ArrayList<>();
|
list.add(command);
|
return list;
|
}
|
|
/**
|
* 扩展字段
|
*/
|
@Data
|
private class InnerLiftExtend {
|
|
/**
|
* 提升机锁定
|
*/
|
private Boolean lock = false;
|
|
}
|
|
}
|