Commit 5753fa92 LN

设备互联功能

1 个父辈 37215eb9
package com.neotel.smfcore.core.equipment.bean; package com.neotel.smfcore.core.equipment.bean;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.language.util.MessageUtils;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.util.Locale;
@ToString @ToString
@Data @Data
public class EquipMsg { public class EquipMsg {
...@@ -27,4 +31,18 @@ public class EquipMsg { ...@@ -27,4 +31,18 @@ public class EquipMsg {
* 参数 * 参数
*/ */
private String[] msgParams; private String[] msgParams;
public String getShowMsg(Locale locale) {
//提示信息国际化
if (ObjectUtil.isEmpty(getMsgCode())) {
return this.msg;
} else {
String code = this.msgCode;
if (!code.startsWith(MessageUtils.smfcore)) {
code = MessageUtils.smfcore + "." + this.msgCode;
}
String newMsg = MessageUtils.getText(code, getMsgParams(), locale, getMsg());
return newMsg;
}
}
} }
...@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.equipment.bean; ...@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.equipment.bean;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.neotel.smfcore.core.equipment.enums.EquipmentType; import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.message.enums.MessageType;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
...@@ -20,7 +21,7 @@ public class EquipStatusBean implements Serializable { ...@@ -20,7 +21,7 @@ public class EquipStatusBean implements Serializable {
*/ */
private String type = EquipmentType.AUTO.name(); private String type = EquipmentType.AUTO.name();
/** /**
* 设备状态 * 设备状态 0=离线,1=正常运行中, 2=急停
*/ */
private int status; private int status;
/** /**
...@@ -94,4 +95,14 @@ public class EquipStatusBean implements Serializable { ...@@ -94,4 +95,14 @@ public class EquipStatusBean implements Serializable {
data.put(key, valueStr); data.put(key, valueStr);
} }
public EquipMsg getMsgByType(String type){
for (EquipMsg msg : getMsgList()){
if(msg.getType().equals(type)){
return msg;
}
}
return null;
}
} }
package com.neotel.smfcore.core.equipment.handler.impl; package com.neotel.smfcore.core.equipment.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean; import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.enums.EquipmentType; import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.handler.IEquipmentHandler; import com.neotel.smfcore.core.equipment.handler.IEquipmentHandler;
...@@ -28,15 +30,39 @@ public class BaseEquipHandler implements IEquipmentHandler { ...@@ -28,15 +30,39 @@ public class BaseEquipHandler implements IEquipmentHandler {
try { try {
//判断是否刚刚上线 //判断是否刚刚上线
EquipStatusBean bean = EquipStatusUtil.getStatusBean(statusBean.getCid()); EquipStatusBean preBean = EquipStatusUtil.getStatusBean(statusBean.getCid());
if (bean == null) { if (preBean == null) {
DeviceMessageUtil.addOnlineMessage(statusBean.getCid(), "", statusBean.getClientIp()); DeviceMessageUtil.addOnlineMessage(statusBean.getCid(), "", statusBean.getClientIp());
// EquipStatusUtil.updateClientMsg(statusBean.getCid(), "", "", "", null); // EquipStatusUtil.updateClientMsg(statusBean.getCid(), "", "", "", null);
} else if (bean.timeOut() && (bean.getOfflineTime() > -1)) { } else if (preBean.timeOut() && (preBean.getOfflineTime() > -1)) {
DeviceMessageUtil.addOnlineMessage(statusBean.getCid(), "", statusBean.getClientIp()); DeviceMessageUtil.addOnlineMessage(statusBean.getCid(), "", statusBean.getClientIp());
// EquipStatusUtil.updateClientMsg(statusBean.getCid(), "", "", "", null); // EquipStatusUtil.updateClientMsg(statusBean.getCid(), "", "", "", null);
} }
//记录提示信息
if(statusBean.getMsgList()!=null){
for (EquipMsg msg :
statusBean.getMsgList()) {
//判断是否有内容
//判断消息是否有内容
if(ObjectUtil.isNotEmpty(msg.getMsg())||ObjectUtil.isNotEmpty(msg.getMsgCode())){
boolean newMsg=true;
//和上个消息是否一样
if(preBean!=null){
EquipMsg preMsg=preBean.getMsgByType(msg.getType());
if(preMsg!=null){
if(msg.getMsgCode().equals(preMsg.getMsgCode())&&msg.getMsg().equals(preMsg.getMsg())){
newMsg=false;
}
}
}
if(newMsg){
DeviceMessageUtil.addDeviceMessage(statusBean.getCid(),msg.getType(),msg.getModule(),msg.getMsgCode(),msg.getMsg(),msg.getMsgParams());
}
}
}
}
EquipStatusUtil.updateStatusBean(statusBean); EquipStatusUtil.updateStatusBean(statusBean);
// } // }
......
package com.neotel.smfcore.core.equipment.rest; package com.neotel.smfcore.core.equipment.rest;
import com.neotel.smfcore.core.device.util.EquipmentCache; import com.neotel.smfcore.core.device.util.EquipmentCache;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.bean.EquipStatusDto; import com.neotel.smfcore.core.equipment.bean.EquipStatusDto;
import com.neotel.smfcore.core.equipment.service.po.Equipment; ; import com.neotel.smfcore.core.equipment.service.po.Equipment; ;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.system.util.EquipStatusUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -16,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -16,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
...@@ -34,11 +39,27 @@ public class EquipViewController { ...@@ -34,11 +39,27 @@ public class EquipViewController {
@PreAuthorize("@el.check('equipmentView:info')") @PreAuthorize("@el.check('equipmentView:info')")
public List<EquipStatusDto> info(HttpServletRequest servletRequest) { public List<EquipStatusDto> info(HttpServletRequest servletRequest) {
Locale locale=servletRequest.getLocale();
List<EquipStatusDto> resultList=new ArrayList<>(); List<EquipStatusDto> resultList=new ArrayList<>();
Map<String,Equipment> allEquipList= equipmentCache.getAllEquipment(); Map<String,Equipment> allEquipList= equipmentCache.getAllEquipment();
for (Equipment equip : for (Equipment equip :
allEquipList.values()) { allEquipList.values()) {
EquipStatusDto dto=new EquipStatusDto(equip.getId(),equip.getName(),equip.getCid(),false,0,"",equip.getType()); EquipStatusDto dto=new EquipStatusDto(equip.getId(),equip.getName(),equip.getCid(),false,0,"",equip.getType());
EquipStatusBean bean= EquipStatusUtil.getStatusBean(equip.getCid());
if(bean!=null){
if(bean.timeOut()){
dto.setOnLine(false);
}else{
dto.setOnLine(true);
if(bean.getMsgList()!=null){
for (EquipMsg msg : bean.getMsgList()){
if(msg.getType().equals(MessageType.ERROR.name())){
dto.setMsg(msg.getShowMsg(locale));
}
}
}
}
}
resultList.add(dto); resultList.add(dto);
} }
return resultList; return resultList;
......
...@@ -27,6 +27,10 @@ public class Message extends BasePo implements Serializable { ...@@ -27,6 +27,10 @@ public class Message extends BasePo implements Serializable {
Message message=new Message(deviceName,deviceId,module, type.name(),msgCode,msg,msgParams,null,null,""); Message message=new Message(deviceName,deviceId,module, type.name(),msgCode,msg,msgParams,null,null,"");
return message; return message;
} }
public static Message newMsg(String type,String deviceName,String deviceId,String module,String msgCode,String msg,String[] msgParams){
Message message=new Message(deviceName,deviceId,module, type,msgCode,msg,msgParams,null,null,"");
return message;
}
/** /**
* 设备名称 * 设备名称
*/ */
......
...@@ -52,7 +52,7 @@ public class DeviceMessageUtil { ...@@ -52,7 +52,7 @@ public class DeviceMessageUtil {
} }
public static void addErrorMessage(String cid, String moudle, String msgCode, String msg, String[] msgParam) { public static void addDeviceMessage(String cid,String msgType, String moudle, String msgCode, String msg, String[] msgParam) {
Storage storage = dataCache.getStorage(cid); Storage storage = dataCache.getStorage(cid);
if (storage != null) { if (storage != null) {
String code=msgCode; String code=msgCode;
......
...@@ -3,6 +3,7 @@ package com.neotel.smfcore.core.system.util; ...@@ -3,6 +3,7 @@ package com.neotel.smfcore.core.system.util;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.neotel.smfcore.core.device.bean.StatusBean; import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil; import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -71,7 +72,7 @@ public class DevicesStatusUtil { ...@@ -71,7 +72,7 @@ public class DevicesStatusUtil {
} }
} }
if(newMsg){ if(newMsg){
DeviceMessageUtil.addErrorMessage(cid,"",msgCode,clientMsg,msgParam); DeviceMessageUtil.addDeviceMessage(cid, MessageType.ERROR.name(),"",msgCode,clientMsg,msgParam);
} }
} }
......
...@@ -34,4 +34,4 @@ rsa: ...@@ -34,4 +34,4 @@ rsa:
app: app:
version: '@project.version@'
\ No newline at end of file \ No newline at end of file
version: '1.23.0211'
\ No newline at end of file \ No newline at end of file
...@@ -251,6 +251,8 @@ smfcore.safetyInventory.stockReel=\u5E93\u5B58\u76D8\u6570 ...@@ -251,6 +251,8 @@ smfcore.safetyInventory.stockReel=\u5E93\u5B58\u76D8\u6570
smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570 smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570
smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88C5 smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88C5
smfcore.component.storeError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5E93\u5B58\uFF0C\u6700\u5C0F\u5E93\u5B58<=\u5B89\u5168\u5E93\u5B58<=\u6700\u5927\u5E93\u5B58 smfcore.component.storeError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5E93\u5B58\uFF0C\u6700\u5C0F\u5E93\u5B58<=\u5B89\u5168\u5E93\u5B58<=\u6700\u5927\u5E93\u5B58
smfcore.equipmentView=\u8BBE\u5907\u4E92\u8054
#smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0} #smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0}
#smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1} #smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1}
#smfclient.nlp.inputOk={0}\u5165\u5E93\u5230{1}\u6210\u529F #smfclient.nlp.inputOk={0}\u5165\u5E93\u5230{1}\u6210\u529F
......
...@@ -252,4 +252,5 @@ smfcore.safetyInventory.stockReel=Reel QTY ...@@ -252,4 +252,5 @@ smfcore.safetyInventory.stockReel=Reel QTY
smfcore.safetyInventory.supplementReel=Number of additional plates smfcore.safetyInventory.supplementReel=Number of additional plates
smfcore.safetyInventory.amount=Amount smfcore.safetyInventory.amount=Amount
smfcore.component.storeError=Please enter the correct stock, minimum stock <= safety stock <= maximum stock smfcore.component.storeError=Please enter the correct stock, minimum stock <= safety stock <= maximum stock
smfcore.equipmentView=Equipment connected
...@@ -251,4 +251,5 @@ smfcore.safetyInventory.stockReel=\u76E4\u6578 ...@@ -251,4 +251,5 @@ smfcore.safetyInventory.stockReel=\u76E4\u6578
smfcore.safetyInventory.supplementReel=\u8FFD\u52A0\u30D7\u30EC\u30FC\u30C8\u679A\u6570 smfcore.safetyInventory.supplementReel=\u8FFD\u52A0\u30D7\u30EC\u30FC\u30C8\u679A\u6570
smfcore.safetyInventory.amount=\u6578\u91CF smfcore.safetyInventory.amount=\u6578\u91CF
smfcore.component.storeError=\u6B63\u3057\u3044\u5728\u5EAB\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3001\u6700\u5C0F\u5728\u5EAB\u2266\u5B89\u5168\u5728\u5EAB\u2266\u6700\u5927\u5728\u5EAB smfcore.component.storeError=\u6B63\u3057\u3044\u5728\u5EAB\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3001\u6700\u5C0F\u5728\u5EAB\u2266\u5B89\u5168\u5728\u5EAB\u2266\u6700\u5927\u5728\u5EAB
smfcore.equipmentView=\u8BBE\u5907\u4E92\u8054
...@@ -251,3 +251,4 @@ smfcore.safetyInventory.stockReel=\u5E93\u5B58\u76D8\u6570 ...@@ -251,3 +251,4 @@ smfcore.safetyInventory.stockReel=\u5E93\u5B58\u76D8\u6570
smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570 smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570
smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88C5 smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88C5
smfcore.component.storeError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5E93\u5B58\uFF0C\u6700\u5C0F\u5E93\u5B58<=\u5B89\u5168\u5E93\u5B58<=\u6700\u5927\u5E93\u5B58 smfcore.component.storeError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5E93\u5B58\uFF0C\u6700\u5C0F\u5E93\u5B58<=\u5B89\u5168\u5E93\u5B58<=\u6700\u5927\u5E93\u5B58
smfcore.equipmentView=\u8BBE\u5907\u4E92\u8054
...@@ -251,3 +251,4 @@ smfcore.safetyInventory.stockReel=\u5EAB\u5B58\u76E4\u6578 ...@@ -251,3 +251,4 @@ smfcore.safetyInventory.stockReel=\u5EAB\u5B58\u76E4\u6578
smfcore.safetyInventory.supplementReel=\u88DC\u5145\u76E4\u6578 smfcore.safetyInventory.supplementReel=\u88DC\u5145\u76E4\u6578
smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88DD smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88DD
smfcore.component.storeError=\u8ACB\u8F38\u5165\u6B63\u78BA\u7684\u5EAB\u5B58\uFF0C\u6700\u5C0F\u5EAB\u5B58<=\u5B89\u5168\u5EAB\u5B58<=\u6700\u5927\u5EAB\u5B58 smfcore.component.storeError=\u8ACB\u8F38\u5165\u6B63\u78BA\u7684\u5EAB\u5B58\uFF0C\u6700\u5C0F\u5EAB\u5B58<=\u5B89\u5168\u5EAB\u5B58<=\u6700\u5927\u5EAB\u5B58
smfcore.equipmentView=\u8A2D\u5099\u4E92\u806F
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!