package com.ld.igds.io.impl;
|
|
import com.ld.igds.common.CoreDeviceService;
|
import com.ld.igds.constant.BizType;
|
import com.ld.igds.constant.DeviceStatus;
|
import com.ld.igds.constant.DeviceType;
|
import com.ld.igds.io.RemoteControlService;
|
import com.ld.igds.io.notify.NotifyWebInvoker;
|
import com.ld.igds.io.constant.OrderRespEnum;
|
import com.ld.igds.io.constant.ProtocolEnum;
|
import com.ld.igds.io.request.DeviceAutoControlRequest;
|
import com.ld.igds.io.request.DeviceControlRequest;
|
import com.ld.igds.io.request.ExeDevice;
|
import com.ld.igds.io.request.TempControlRequest;
|
import com.ld.igds.io.response.DeviceControlResponse;
|
import com.ld.igds.models.Device;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.List;
|
|
/**
|
* 默认实现类,直接返回
|
*/
|
@Slf4j
|
@Component
|
public class DefaultRemoteControlImpl implements RemoteControlService {
|
|
@Autowired
|
private NotifyWebInvoker notifyWebInvoker;
|
|
@Autowired
|
private CoreDeviceService coreDeviceService;
|
|
@Override
|
public String getProtocol() {
|
return ProtocolEnum.TCP_DEFAULT.getCode();
|
}
|
|
@Override
|
public DeviceControlResponse deviceControl(DeviceControlRequest request) {
|
|
|
log.info("-----------------------执行默认协议-系统模拟设备操作----------------{}", request.toString());
|
|
try {
|
List<ExeDevice> listDevice = request.getDeviceList();
|
String deviceType = listDevice.get(0).getType();
|
String targetStatus = listDevice.get(0).getTargetStatus();
|
|
//间隔时间定义
|
long longTime = 3 * 1000, longTimeW = 5 * 1000;
|
|
if (request.isSysExeTag()) {
|
longTime = 800;
|
longTimeW = 800;
|
}
|
|
if (DeviceType.TYPE_01.getCode().equals(deviceType)) {
|
longTime = longTimeW;
|
}
|
|
if (DeviceType.TYPE_0B.getCode().equals(deviceType)) {
|
longTime = longTimeW;
|
}
|
if (DeviceType.TYPE_07.getCode().equals(deviceType)) {
|
longTime = longTimeW;
|
}
|
if (DeviceType.TYPE_09.getCode().equals(deviceType)) {
|
longTime = longTimeW;
|
}
|
|
if (DeviceStatus.W_OPEN.getCode().equals(targetStatus) || DeviceStatus.W_CLOSE.getCode().equals(targetStatus)) {
|
longTime = longTimeW;
|
}
|
|
Thread.sleep(longTime);
|
|
// 模拟已经成功
|
List<Device> deviceList = coreDeviceService.getCacheDeviceBySerId(request.getCompanyId(), request.getSerId());
|
|
for (ExeDevice exDevice : listDevice) {
|
Device temp;
|
for (int i = 0; i < deviceList.size(); i++) {
|
temp = deviceList.get(i);
|
if (exDevice.getPassCode() == temp.getPassCode()) {
|
temp.setStatus(exDevice.getTargetStatus());
|
deviceList.set(i, temp);
|
}
|
}
|
}
|
coreDeviceService.updateCacheDeviceBySerId(deviceList, request.getCompanyId(), request.getSerId());
|
|
notifyWebInvoker.notifyWeb(request.getCompanyId(), OrderRespEnum.NO_PROTOCOL, BizType.SYS, "当前为演示协议解析!!");
|
|
return new DeviceControlResponse(OrderRespEnum.ORDER_SUCCESS);
|
|
} catch (Exception e) {
|
return new DeviceControlResponse(OrderRespEnum.NO_PROTOCOL);
|
}
|
|
}
|
|
@Override
|
public DeviceControlResponse closeAll(DeviceControlRequest request) {
|
return new DeviceControlResponse(OrderRespEnum.NO_PROTOCOL);
|
}
|
|
@Override
|
public DeviceControlResponse queryStatus(DeviceControlRequest request) {
|
try {
|
Thread.sleep(2 * 1000);
|
|
notifyWebInvoker.notifyAnalysisStatusSuccess(request.getCompanyId(), request.getSerId(), OrderRespEnum.MSG_SUCCESS, "状态查询成功……");
|
|
} catch (Exception e) {
|
|
}
|
|
return new DeviceControlResponse(OrderRespEnum.ORDER_SUCCESS);
|
}
|
|
@Override
|
public DeviceControlResponse tempControl(TempControlRequest request) {
|
return new DeviceControlResponse(OrderRespEnum.NO_PROTOCOL);
|
}
|
|
@Override
|
public DeviceControlResponse airAutoControl(DeviceAutoControlRequest request) {
|
return new DeviceControlResponse(OrderRespEnum.NO_PROTOCOL);
|
}
|
|
@Override
|
public DeviceControlResponse n2AutoControl(DeviceAutoControlRequest request) {
|
return new DeviceControlResponse(OrderRespEnum.NO_PROTOCOL);
|
}
|
|
|
}
|