|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package jnpf.controller;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
@ -7,16 +8,11 @@ import io.swagger.v3.oas.annotations.Operation;
|
|
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
|
|
import jnpf.base.ActionResult;
|
|
|
|
|
import jnpf.base.UserInfo;
|
|
|
|
|
import jnpf.base.model.datainterface.DataInterfacePage;
|
|
|
|
|
import jnpf.base.model.datainterface.DataInterfaceParamModel;
|
|
|
|
|
import jnpf.base.vo.PageListVO;
|
|
|
|
|
import jnpf.base.vo.PaginationVO;
|
|
|
|
|
import jnpf.entity.*;
|
|
|
|
|
import jnpf.model.datainterface.DIDeviceListInfoModel;
|
|
|
|
|
import jnpf.model.recycledevice.Command;
|
|
|
|
|
import jnpf.model.recycledevice.RecycleDeviceConstant;
|
|
|
|
|
import jnpf.model.recycledevice.RecycleDeviceForm;
|
|
|
|
|
import jnpf.model.recycledevice.RecycleDevicePagination;
|
|
|
|
|
import jnpf.model.recycledevice.*;
|
|
|
|
|
import jnpf.service.*;
|
|
|
|
|
import jnpf.util.*;
|
|
|
|
|
import jnpf.utils.CustomerMqttClient;
|
|
|
|
@ -32,6 +28,7 @@ import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 设备柜清单
|
|
|
|
@ -67,6 +64,8 @@ public class RecycleDeviceController {
|
|
|
|
|
private RecycleDeviceEventService eventService;
|
|
|
|
|
@Resource
|
|
|
|
|
private CustomerMqttClient mqttClient;
|
|
|
|
|
@Resource
|
|
|
|
|
private RedisUtil redisUtil;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -268,17 +267,27 @@ public class RecycleDeviceController {
|
|
|
|
|
public ActionResult command(@RequestBody Command command) {
|
|
|
|
|
UserInfo userInfo = userProvider.get();
|
|
|
|
|
Date nowDate = DateUtil.getNowDate();
|
|
|
|
|
|
|
|
|
|
boolean exists = redisUtil.exists("online_" + command.getDeviceCode());
|
|
|
|
|
Long liveTime = redisUtil.getLiveTime("online_" + command.getDeviceCode());
|
|
|
|
|
if (!exists || liveTime < 0) {
|
|
|
|
|
return ActionResult.fail("设备不在线!");
|
|
|
|
|
}
|
|
|
|
|
String deviceCode = command.getDeviceCode();
|
|
|
|
|
mqttClient.publish(deviceCode + "/command", JSONUtil.toJsonStr(command));
|
|
|
|
|
//记录命令下发
|
|
|
|
|
RecycleDeviceEventEntity event = new RecycleDeviceEventEntity();
|
|
|
|
|
event.setDeviceCode(command.getDeviceCode());
|
|
|
|
|
if (null != command.getData() && !"".equals(command.getData().toString()))
|
|
|
|
|
event.setBucketCode(command.getData().toString());
|
|
|
|
|
Object data = command.getData();
|
|
|
|
|
if (null != command.getData() && !"".equals(data)) {
|
|
|
|
|
JSONObject _data = JSONUtil.parseObj(data);
|
|
|
|
|
String bucketCode = _data.getStr("bucketCode");
|
|
|
|
|
if (StringUtil.isNotEmpty(bucketCode)) {
|
|
|
|
|
event.setBucketCode(bucketCode.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
event.setEventTime(nowDate);
|
|
|
|
|
event.setEventType(command.getCmd().getValue());
|
|
|
|
|
event.setEventDesc("手动远程控制,命令下发!");
|
|
|
|
|
event.setEventDesc("手动远程控制,命令下发!" + command.getCmd().getDesc());
|
|
|
|
|
event.setCompanyId(userInfo.getOrganizeId());
|
|
|
|
|
event.setCreateTime(nowDate);
|
|
|
|
|
event.setCreateUserId(userInfo.getUserId());
|
|
|
|
@ -296,16 +305,17 @@ public class RecycleDeviceController {
|
|
|
|
|
String organizeId = userInfo.getOrganizeId();
|
|
|
|
|
QueryWrapper<RecycleDeviceEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
LambdaQueryWrapper<RecycleDeviceEntity> lambda = wrapper.lambda();
|
|
|
|
|
if(!isAdministrator){
|
|
|
|
|
lambda.eq(RecycleDeviceEntity::getBeLongCompanyId,organizeId);
|
|
|
|
|
if (!isAdministrator) {
|
|
|
|
|
lambda.eq(RecycleDeviceEntity::getBeLongCompanyId, organizeId);
|
|
|
|
|
}
|
|
|
|
|
List<RecycleDeviceEntity> list = recycleDeviceService.list(lambda);
|
|
|
|
|
return ActionResult.success(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备信息
|
|
|
|
|
@PostMapping("/getDeviceListInfo")
|
|
|
|
|
@Operation(summary = "获取设备清单信息")
|
|
|
|
|
public ActionResult getDeviceListInfo( @RequestBody(required = false) Map<String, Object> objectMap) {
|
|
|
|
|
public ActionResult getDeviceListInfo(@RequestBody(required = false) Map<String, Object> objectMap) {
|
|
|
|
|
DIDeviceListInfoModel model = JsonUtil.getJsonToBean(objectMap, DIDeviceListInfoModel.class);
|
|
|
|
|
List<String> ids = model.getIds();
|
|
|
|
|
QueryWrapper<RecycleDeviceEntity> wrapper = new QueryWrapper<>();
|
|
|
|
@ -314,6 +324,7 @@ public class RecycleDeviceController {
|
|
|
|
|
List<RecycleDeviceEntity> list = recycleDeviceService.list(lambda);
|
|
|
|
|
return ActionResult.success(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取商户列表
|
|
|
|
|
@PostMapping("/getCompanyList")
|
|
|
|
|
@Operation(summary = "获取商户列表下拉")
|
|
|
|
@ -323,12 +334,27 @@ public class RecycleDeviceController {
|
|
|
|
|
String organizeId = userInfo.getOrganizeId();
|
|
|
|
|
QueryWrapper<CompanyEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
LambdaQueryWrapper<CompanyEntity> lambda = wrapper.lambda();
|
|
|
|
|
if(!isAdministrator){
|
|
|
|
|
lambda.eq(CompanyEntity::getId,organizeId);
|
|
|
|
|
if (!isAdministrator) {
|
|
|
|
|
lambda.eq(CompanyEntity::getId, organizeId);
|
|
|
|
|
}
|
|
|
|
|
List<CompanyEntity> list = companyService.list(lambda);
|
|
|
|
|
return ActionResult.success(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备信息
|
|
|
|
|
@PostMapping("/getControlAuth")
|
|
|
|
|
@Operation(summary = "获取控制授权信息")
|
|
|
|
|
public ActionResult getControlAuth(@RequestBody DeviceVO deviceVO) {
|
|
|
|
|
String deviceCode = deviceVO.getDeviceCode();
|
|
|
|
|
Object value = redisUtil.getString("auth_" + deviceCode);
|
|
|
|
|
long expire = redisUtil.getLiveTime("auth_" + deviceCode);
|
|
|
|
|
if (null == value || expire <= 0) {
|
|
|
|
|
return ActionResult.fail(400, "获取控制权失败");
|
|
|
|
|
} else {
|
|
|
|
|
ControlAuthVO bean = JSONUtil.toBean(value.toString(), ControlAuthVO.class);
|
|
|
|
|
return ActionResult.success(bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|