控制申请

master
guochaojie 4 months ago
parent 41359a6374
commit 28a0efd0a2

@ -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);
}
}
}

@ -2,6 +2,8 @@ package jnpf.model.recycledevice;
import lombok.Data;
import java.util.Map;
@Data
public class Command {
private String orderNo;

@ -0,0 +1,12 @@
package jnpf.model.recycledevice;
import lombok.Data;
@Data
public class ControlAuthVO {
private String deviceCode;
private Long applyNo;
}

@ -0,0 +1,11 @@
package jnpf.model.recycledevice;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class DeviceVO {
@NotBlank(message = "设备编码不能为空")
private String deviceCode;
}
Loading…
Cancel
Save