Commit 01b24c66 by 赵剑炜

设备管理模块完成

parent 32c5a1f4
......@@ -15,7 +15,8 @@ import java.util.Date;
public class WarehouseReq extends BaseRequest {
@NotBlank(message = "仓库主键不能为空", groups = {updateStatus.class, delete.class, detail.class})
private String id;
//查询仓库设备时使用
private String warehouseId;
private String name;
private String location;
......
......@@ -40,6 +40,10 @@ public interface JYZBConstant {
* 设备状态前缀
*/
String JYZB_ONLINE_PREFIX = "onlineState:";
/**
* 设备状态前缀
*/
String JYZB_DEVICE_PREFIX = "device:";
String JYZB_JWT_KEY = "JWT";
// String MINIO_ENDPOINT="http://192.168.3.121:9090";
......
......@@ -10,14 +10,14 @@ import java.util.List;
public class WsWarehouseReq {
@JsonProperty("deviceId")
private String deviceId;
@JsonProperty("onlineState")
private String onlineState;
@JsonProperty("orgId")
private String orgId;
@JsonProperty("onlineState")
private String onlineState;
@JsonProperty("warehouseId")
private String warehouseId;
@JsonProperty("boxList")
@JsonProperty("warehouseDevs")
private List<warehouseDevs> warehouseDevs;
......@@ -28,7 +28,7 @@ public class WsWarehouseReq {
private String devId;
@JsonProperty("devIP")
private int devIP;
private String devIP;
@JsonProperty("devName")
private String devName;
......
......@@ -14,6 +14,6 @@ public class DeviceRedisCache extends AbstractRedisCache<String> {
@Override
public String getCommonKeyPrefix() {
return JYZBConstant.JYZB_CACHE_PREFIX;
return JYZBConstant.JYZB_DEVICE_PREFIX;
}
}
......@@ -10,6 +10,7 @@ import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.api.bean.req.UpdateShelfReq;
import com.junmp.jyzb.api.bean.req.UpdateWarehouseAreaReq;
import com.junmp.jyzb.api.bean.req.UpdateWarehouseReq;
import com.junmp.jyzb.api.util.WsWarehouseReq;
import com.junmp.jyzb.cache.TemperatureRedisCache;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.entity.Temp.HumidityAndtemperature;
......@@ -50,7 +51,11 @@ public class WarehouseController {
return ApiRes.success(warehouseService.AddWarehouse(req));
}
@PostMapping(path="/CheckState",name="查询仓库设备状态")
@ApiOperation("添加仓库")
public ApiRes<WsWarehouseReq> CheckState(@RequestBody @Validated(ValidationApi.add.class) WarehouseReq req) {
return ApiRes.success(warehouseService.CheckState(req));
}
@PostMapping(path="/DeleteWarehouse",name="删除仓库信息#logType=30")
@ApiOperation("删除仓库信息")
......
......@@ -9,6 +9,7 @@ import com.junmp.jyzb.api.bean.query.TjReq.TjOrgPriceReq;
import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.api.bean.req.UpdateWarehouseReq;
import com.junmp.jyzb.api.bean.req.WarrantyReq;
import com.junmp.jyzb.api.util.WsWarehouseReq;
import com.junmp.jyzb.entity.Supplier;
import com.junmp.jyzb.entity.Temp.HumidityAndtemperature;
import com.junmp.jyzb.entity.Warehouse;
......@@ -20,7 +21,12 @@ import java.util.Map;
public interface WarehouseService extends IService<Warehouse> {
//ResponseResult addWarehouse(Map<String, Object> msg);
/**
* 查询状态
*
* @param req
*/
WsWarehouseReq CheckState(WarehouseReq req);
/**
* 新增
*
......
......@@ -2,6 +2,7 @@ package com.junmp.jyzb.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -18,6 +19,8 @@ import com.junmp.jyzb.api.bean.req.UpdateWarehouseReq;
import com.junmp.jyzb.api.bean.req.WarrantyReq;
import com.junmp.jyzb.api.bean.vo.InOrderInfoVo;
import com.junmp.jyzb.api.exception.enums.WarehouseExceptionEnum;
import com.junmp.jyzb.api.util.WsWarehouseReq;
import com.junmp.jyzb.cache.DeviceRedisCache;
import com.junmp.jyzb.cache.TemperatureRedisCache;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum;
......@@ -63,12 +66,33 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
@Autowired
private RabbitMQSendMsg MQ;
@Resource
private DeviceRedisCache redisCache;
@Resource
private OfficeExcelApi officeExcelApi;
@Override
public WsWarehouseReq CheckState(WarehouseReq req) {
WsWarehouseReq warehouseReq=new WsWarehouseReq();
String deviceData= redisCache.get(req.getWarehouseId());
if (ObjectUtil.isNull(deviceData))
{
warehouseReq.setWarehouseId(req.getWarehouseId());
warehouseReq.setOnlineState("false");
}
else
{
warehouseReq.setOnlineState("true");
warehouseReq = JSON.parseObject(deviceData, WsWarehouseReq.class);
}
return warehouseReq;
}
@Override
public String AddWarehouse(UpdateWarehouseReq req) {
List<Warehouse> list = list(new LambdaQueryWrapper<Warehouse>().eq(Warehouse::getName, req.getName()));
......
......@@ -43,8 +43,10 @@ import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
......@@ -71,11 +73,21 @@ public class WarehouseWebSocketServer implements WebSocketServerListener {
String text = protocol.readText();
ObjectMapper objectMapper = new ObjectMapper();
WsWarehouseReq deviceData = objectMapper.readValue(text, WsWarehouseReq.class);
deviceData.setOnlineState("true");
String channel = protocol.requestMessage().getChannelId();
String jsonData=objectMapper.writeValueAsString(deviceData);
redisCache.put(channel,jsonData+":"+deviceData.getOrgId()+":"+deviceData.getWarehouseId());
String warehouseId = deviceData.getWarehouseId();
String redisExist= redisCache.get(warehouseId);
if(redisExist!=null)//已有存在数据
{
String jsonData = objectMapper.writeValueAsString(deviceData);
redisCache.put(warehouseId, jsonData);
}
else
{
String channel = protocol.requestMessage().getChannelId();
String jsonData = objectMapper.writeValueAsString(deviceData);
redisCache.put(warehouseId, jsonData);
redisCache.put(channel, warehouseId);
}
protocol.response("true");
}
catch (Exception e)
......@@ -83,13 +95,13 @@ public class WarehouseWebSocketServer implements WebSocketServerListener {
protocol.response("false");
}
}
@Override
public void onClose(DefaultWebSocketServerProtocol protocol) {
String channel= protocol.requestMessage().getChannelId();
String key= redisCache.get("*:" + channel);
redisCache.remove(key);
String warehouseId= redisCache.get(channel);
redisCache.remove(channel);
redisCache.remove(warehouseId);
WebSocketServerListener.super.onClose(protocol);
}
......@@ -99,4 +111,5 @@ public class WarehouseWebSocketServer implements WebSocketServerListener {
}
}
\ No newline at end of file
package com.junmp.jyzb.boot;
import com.junmp.jyzb.cache.DeviceRedisCache;
import com.junmp.v2.db.starter.JpDataSourceAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
......@@ -14,6 +15,10 @@ import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Collection;
/**
* <pre>
*
......@@ -34,7 +39,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
JpDataSourceAutoConfiguration.class})
public class JyzbBootApplication extends SpringBootServletInitializer {
@Resource
private DeviceRedisCache redisCache;
public static void main(String[] args) {
SpringApplication.run(JyzbBootApplication.class, args);
......@@ -56,6 +62,11 @@ public class JyzbBootApplication extends SpringBootServletInitializer {
}
};
}
@PostConstruct
public void clearRedisCacheOnStartup() {
Collection<String> allKeys=redisCache.getAllKeys();
allKeys.forEach(p->redisCache.remove(p));
}
}
......@@ -10,7 +10,7 @@ thing:
server:
websocket:
start: true
port: 10030
port: 10040
# 配置第三方请求
junmp:
swagger:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论